Files
Matt Pharoah 0d83ebb78c Rebase: fast-forward 163 commits onto current master
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Brings the 'rebase' branch (52fc98dde, 163 commits, 11 authors) onto
current master (08ec54708) as a single squashed change. Authorship of
the underlying commits — predominantly Matt Pharoah (105), aglab2 (44),
plus smaller contributions from Denis Kopyrin, mudlord, devwizard,
Mr-Wiseguy, zoltanvb, twinaphex, libretroadmin, LibretroAdmin, and
Eric Warmenhoven — is recorded in the upstream 'rebase' branch
(libretro/parallel-n64).

Resolves conflicts in 6 files:

 .gitlab-ci.yml
   Kept linux-aarch64 + webOS jobs from master alongside osx-arm64,
   macOS HAVE_THR_AL, and iOS-disabled stanza from rebase HEAD.

 libretro/libretro.c
   Kept rebase's retro_core_options_v2 setup_variables; forward-ported
   astick_snap_active / astick_snap_max_angle /
   astick_snap_min_displacement_percent globals and their
   update_variables reads from PR #794, aligned to the registration key
   parallel-n64-astick-snap-max-angle (fixes the latent typo in #794
   where the read key omitted '-max-' and the option had no effect).

 libretro/libretro_core_options.h
   Added entries for astick-snap-angle-active, astick-snap-max-angle,
   and astick-snap-min-displacement-percent so the snap options surface
   under the v2 options system.

 mupen64plus-core/src/pi/pi_controller.c
   Kept both extern blocks: g_rom_size (master, security fix) and
   AllowUnalignedDMA / AllowLargeRoms / SdCardEmulationEnabled (rebase).

 mupen64plus-core/src/plugin/emulate_game_controller_via_libretro.c
   Added M_PI guard, snap externs, and the snap-angle math from PR #794
   into scale_joystick (refactored helper on rebase) rather than
   inputGetKeys_reuse.

 mupen64plus-core/src/rsp/rsp_core.c
   In read_rsp_regs2/write_rsp_regs2, combined SP_REGS2_COUNT bounds
   check (master) with SP_PC_REG masking (rebase).

 mupen64plus-rsp-paraLLEl/rsp_disasm.hpp
   Kept <stdint.h> rather than <cstdint> for consistency with the other
   headers in the paraLLEl-RSP module.

Also fixes a pre-existing inconsistency in the rebase branch that
strict GCC rejects under -Wincompatible-pointer-types:

 mupen64plus-core/src/si/game_controller.h
   Changed the get_gcn_input struct field's analogMode parameter from
   uint8_t to int, matching init_game_controller's parameter type,
   game_controller_gcn_get_input's signature, and the egcvip_get_gcn_input
   implementation (all three already used int).
2026-05-16 18:10:59 +02:00

183 lines
3.9 KiB
Docker

FROM ubuntu:xenial
ENV DEBIAN_FRONTEND="noninteractive"
ARG uid
ARG branch=master
ENV branch=$branch
ARG NUMPROC
ENV PACKAGES \
build-essential \
bash \
bc \
bzip2 \
diffutils \
ccache \
curl \
doxygen \
fuse \
gcc \
g++ \
g++-multilib \
gettext \
git \
gnupg \
gnupg2 \
gawk \
make \
nsis \
texinfo \
autoconf \
automake \
autopoint \
bison \
bzip2 \
gzip \
flex \
gettext \
gperf \
intltool \
less \
libasound2 \
libass-dev \
libbz2-dev \
libc6-dev-i386 \
libffi-dev \
libgdbm-dev \
libgdk-pixbuf2.0-dev \
libglib2.0-dev \
libglu1-mesa-dev \
libltdl-dev \
libpcap-dev \
libssl-dev \
libreadline-dev \
libtool \
libtool-bin \
libxml-parser-perl \
libjson-perl \
libncurses5-dev \
libssl-dev \
libx11-dev \
lzip \
lzop \
mesa-common-dev \
meson \
p7zip-full \
patch \
patchutils \
perl \
pkg-config \
ruby \
sed \
sudo \
swig \
tar \
texinfo \
unzip \
u-boot-tools \
uuid-dev \
wget \
nasm \
bsdmainutils \
xfonts-utils \
xsltproc \
xz-utils \
libwxgtk3.0-dev \
libgtk2.0-dev \
libgtk-3-dev \
liblzma-dev \
libaio-dev
RUN set -eux; \
apt-get -y update; \
apt-get -y install -y unzip; \
useradd -d /developer -m developer; \
chown -R developer:developer /developer
RUN set -eux; \
apt-get update -y; \
apt-get -y install $PACKAGES; \
apt-get -y autoremove; \
apt-get -y clean; \
rm -rf /var/lib/apt/lists/*
RUN set -eux; \
apt-get update -y; \
apt-get -y install software-properties-common;
RUN set -eux; \
apt-get upgrade -y; \
apt-get dist-upgrade -y; \
add-apt-repository -y --update ppa:ubuntu-toolchain-r/test; \
apt-get update -y; \
apt-get -y install gcc-9 g++-9; \
rm -rf /var/lib/apt/lists/*
RUN set -eux; \
echo "1" | update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 60 --slave /usr/bin/g++ g++ /usr/bin/g++-9; \
echo "1" | update-alternatives --config gcc
RUN set -eux; \
apt-get update -y; \
apt-get -y install apt-transport-https ca-certificates; \
wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | sudo tee /etc/apt/trusted.gpg.d/kitware.gpg >/dev/null; \
apt-add-repository -y 'deb https://apt.kitware.com/ubuntu/ xenial main'; \
apt-get update -y; \
apt-get -y install kitware-archive-keyring; \
rm /etc/apt/trusted.gpg.d/kitware.gpg; \
apt-get -y install cmake; \
rm -rf /var/lib/apt/lists/*
RUN set -eux; \
cd /tmp; \
wget --no-check-certificate -nv "https://www.openssl.org/source/openssl-1.1.1o.tar.gz" -O- | tar xz; \
cd openssl-*; \
CC=gcc-9 CXX=g++-9 ./config --prefix=/usr/local; \
make -j$(nproc); \
make install -j$(nproc); \
cd ..; \
rm -rf *; \
rm -rf /usr/local/share/doc/*; \
rm -rf /usr/local/share/man/*; \
ldconfig
RUN set -eux; \
cd /tmp; \
wget -nv "https://www.python.org/ftp/python/3.10.4/Python-3.10.4.tar.xz" -O- | tar xJ; \
mkdir build; \
cd build; \
CC=gcc-9 CXX=g++-9 ../Python-*/configure \
--prefix=/usr/local \
--enable-optimizations \
; \
make -j$(nproc); \
make altinstall; \
ln -sf /usr/local/bin/python3.10 /usr/local/bin/python3; \
cd ..; \
rm -rf *; \
rm -rf /usr/local/share/doc/*; \
rm -rf /usr/local/share/man/*; \
ldconfig
RUN set -eux; \
python3 -m pip install --upgrade --no-cache-dir pip; \
python3 -m pip install --no-cache-dir \
mako \
ninja \
pyyaml \
setuptools \
sphinx \
;
RUN echo "developer:developer" | chpasswd && adduser developer sudo
ENV HOME=/developer
USER root
WORKDIR /developer
VOLUME /developer
CMD /bin/bash