diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9f35af6..f9ae8b0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -10,7 +10,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - image: ["linux-appimage", "linux-clang-format", "linux-flatpak", "linux-fresh", "linux-frozen", "linux-mingw", "linux-transifex"] + image: ["linux-appimage", "linux-fresh"] steps: - uses: actions/checkout@v3 diff --git a/linux-appimage/Dockerfile b/linux-appimage/Dockerfile index 49c6d7f..b78fd0b 100644 --- a/linux-appimage/Dockerfile +++ b/linux-appimage/Dockerfile @@ -24,18 +24,6 @@ RUN apt-get install -y \ gcc-11 \ g++-11 \ cpp-11 \ -# Qt 5 - qtbase5-dev \ - qtbase5-private-dev \ - libqt5opengl5-dev \ - qtmultimedia5-dev \ - qttools5-dev \ - qttools5-dev-tools \ - qt5-gtk-platformtheme \ - qt5ct \ - qt5-style-plugins \ - libqt5opengl5-dev \ - libqt5multimedia5-plugins \ # Qt 6 qt6-base-dev \ qt6-base-private-dev \ diff --git a/linux-clang-format/Dockerfile b/linux-clang-format/Dockerfile deleted file mode 100644 index c07a048..0000000 --- a/linux-clang-format/Dockerfile +++ /dev/null @@ -1,5 +0,0 @@ -FROM ubuntu:22.04 -LABEL maintainer="citraemu" -ENV DEBIAN_FRONTEND=noninteractive -RUN apt-get update && apt-get -y full-upgrade -RUN apt-get install -y git clang-format-12 p7zip-full diff --git a/linux-flatpak/Dockerfile b/linux-flatpak/Dockerfile deleted file mode 100644 index 775f285..0000000 --- a/linux-flatpak/Dockerfile +++ /dev/null @@ -1,7 +0,0 @@ -FROM ubuntu:22.04 -LABEL maintainer="citraemu" -ENV DEBIAN_FRONTEND=noninteractive -RUN apt-get update && apt-get -y full-upgrade -RUN apt-get install -y p7zip-full wget git flatpak flatpak-builder glslang-dev glslang-tools ca-certificates sshfs curl dnsutils gnupg2 sudo -RUN flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo -RUN flatpak install -y flathub org.kde.Platform//5.15-22.08 org.kde.Sdk//5.15-22.08 org.kde.Platform//6.4 org.kde.Sdk//6.4 diff --git a/linux-fresh/Dockerfile b/linux-fresh/Dockerfile index acd1172..2d29376 100644 --- a/linux-fresh/Dockerfile +++ b/linux-fresh/Dockerfile @@ -4,38 +4,41 @@ ENV DEBIAN_FRONTEND=noninteractive # Create a user account citra (UID 1027) that the container will run as RUN useradd -m -u 1027 -s /bin/bash citra + RUN apt-get update && apt-get -y full-upgrade RUN apt-get install -y \ - p7zip-full \ + # Tools build-essential \ + ccache \ + clang-format-12 \ + cmake \ + curl \ + git \ + ninja-build \ + p7zip-full \ + python3-pip \ software-properties-common \ - libsdl2-dev \ - qtbase5-dev \ - qtbase5-private-dev \ - libqt5opengl5-dev \ - qtmultimedia5-dev \ - qttools5-dev \ - qttools5-dev-tools \ + unzip \ + wget \ + zip \ + # Qt 6 qt6-base-dev \ qt6-base-private-dev \ - libqt6opengl6-dev \ qt6-multimedia-dev \ qt6-l10n-tools \ qt6-tools-dev \ - qt6-tools-dev-tools \ - libavcodec-dev \ - libavfilter-dev \ - libavformat-dev \ - libswscale-dev \ - wget \ - git \ - ccache \ - cmake \ - ninja-build \ - && \ + qt6-tools-dev-tools + # Install updated version of glslang - add-apt-repository -y ppa:theofficialgman/gpu-tools && \ - apt-get update -y && \ +RUN add-apt-repository -y ppa:theofficialgman/gpu-tools +RUN apt-get update -y && \ apt-get install --no-install-recommends -y \ glslang-dev \ glslang-tools + +# Install Transifex client +RUN curl -O -L https://github.com/transifex/cli/releases/latest/download/tx-linux-amd64.tar.gz && \ + tar xf tx-linux-amd64.tar.gz tx && \ + mv tx /usr/bin/tx && \ + rm tx-linux-amd64.tar.gz + diff --git a/linux-frozen/Dockerfile b/linux-frozen/Dockerfile deleted file mode 100644 index e61c752..0000000 --- a/linux-frozen/Dockerfile +++ /dev/null @@ -1,42 +0,0 @@ -FROM ubuntu:22.04 -LABEL maintainer="citraemu" -ENV DEBIAN_FRONTEND=noninteractive -RUN mkdir -p /tmp/pkgs -COPY install_package.py /tmp/pkgs -RUN apt-get update && apt-get install -y \ - p7zip-full \ - build-essential \ - software-properties-common \ - wget \ - git \ - python3-launchpadlib \ - ccache \ - ninja-build \ - && \ -# Install updated version of glslang - add-apt-repository -y ppa:theofficialgman/gpu-tools && \ - apt-get update -y && \ - apt-get install --no-install-recommends -y \ - glslang-dev \ - glslang-tools - -RUN cd /tmp/pkgs && python3 install_package.py \ - libsdl2-dev 2.0.20+dfsg-2build1 jammy \ - qtbase5-dev 5.15.3+dfsg-2 jammy \ - qtbase5-private-dev 5.15.3+dfsg-2 jammy \ - libqt5opengl5-dev 5.15.3+dfsg-2 jammy \ - qt5-qmltooling-plugins 5.15.3+dfsg-1 jammy \ - qtdeclarative5-dev 5.15.3+dfsg-1 jammy \ - qtmultimedia5-dev 5.15.3-1 jammy \ - qt6-base-dev 6.2.4+dfsg-2ubuntu1 jammy \ - qt6-base-private-dev 6.2.4+dfsg-2ubuntu1 jammy \ - libqt6opengl6-dev 6.2.4+dfsg-2ubuntu1 jammy \ - qt6-qmltooling-plugins 6.2.4+dfsg-3ubuntu1 jammy \ - qt6-declarative-dev 6.2.4+dfsg-3ubuntu1 jammy \ - qt6-multimedia-dev 6.2.4-1 jammy \ - libicu70 70.1-2 jammy \ - cmake 3.22.1-1ubuntu1 jammy \ - libavcodec-dev 7:4.4.2-0ubuntu0.22.04.1 jammy \ - libavformat-dev 7:4.4.2-0ubuntu0.22.04.1 jammy \ - libswscale-dev 7:4.4.2-0ubuntu0.22.04.1 jammy -RUN rm -rf /tmp/pkgs diff --git a/linux-frozen/install_package.py b/linux-frozen/install_package.py deleted file mode 100755 index c154f8e..0000000 --- a/linux-frozen/install_package.py +++ /dev/null @@ -1,54 +0,0 @@ -#!/usr/bin/python3 - -import sys -import re -import subprocess -from launchpadlib.launchpad import Launchpad - -if sys.version_info[0] > 2: - xrange = range - -cachedir = '/.launchpadlib/cache/' -launchpad = Launchpad.login_anonymously( - 'grab build info', 'production', cachedir, version='devel') - -processed_packages = [] -deb_file_list = [] - - -def get_url(pkg, distro): - build_ref = launchpad.archives.getByReference(reference='ubuntu').getPublishedBinaries( - binary_name=pkg[0], distro_arch_series='https://api.launchpad.net/devel/ubuntu/' + distro + '/amd64', version=pkg[1], exact_match=True, order_by_date=True).entries[0] - build_link = build_ref['build_link'] - deb_name = '{}_{}_{}.deb'.format(pkg[0], pkg[1].split(':', 1)[-1], 'amd64' if build_ref['architecture_specific'] else 'all') - deb_link = build_link + '/+files/' + deb_name - return [deb_link, deb_name] - - -def list_dependencies(deb_file): - t = subprocess.check_output( - ['bash', '-c', '(dpkg -I {} | grep -oP "^ Depends\\: \\K.*$") || true'.format(deb_file)]) - deps = [i.split(b'|')[0].decode('utf-8').strip() for i in t.split(b',')] - equals_re = re.compile(r'^(.*) \(= (.*)\)$') - return [equals_re.sub(r'\1=\2', i).split('=') for i in filter(equals_re.match, deps)] - - -def get_package(pkg, distro): - if pkg in processed_packages: - return - print('Getting {}...'.format(pkg[0])) - url = get_url(pkg, distro) - subprocess.check_call(['wget', '--quiet', url[0], '-O', url[1]]) - for dep in list_dependencies(url[1]): - # qt6-base-abi is a virtual package, which breaks the script. - if dep[0] != 'qt6-base-abi': - get_package(dep, distro) - processed_packages.append(pkg) - deb_file_list.append('./' + url[1]) - - -for i in xrange(1, len(sys.argv), 3): - get_package([sys.argv[i], sys.argv[i + 1]], sys.argv[i + 2]) - -subprocess.check_call( - ['apt-get', 'install', '-y', '--force-yes'] + deb_file_list) diff --git a/linux-mingw/Dockerfile b/linux-mingw/Dockerfile deleted file mode 100644 index 05ff1d7..0000000 --- a/linux-mingw/Dockerfile +++ /dev/null @@ -1,52 +0,0 @@ -FROM archlinux:latest -LABEL maintainer="citraemu" - -# Add mingw-repo "ownstuff" is a AUR with an up to date mingw64 -# Runs pacman -Syu twice in order to work around pacman issues where the first run only updates the -# current distro packages, and the second run actually pulls the updates from the repos. -RUN useradd -m -u 1027 -s /bin/bash citra && mkdir -p /tmp/pkgs && \ - echo "[ownstuff]" >> /etc/pacman.conf && \ - echo "SigLevel = Optional TrustAll" >> /etc/pacman.conf && \ - echo "Server = https://martchus.no-ip.biz/repo/arch/ownstuff/os/\$arch" >> /etc/pacman.conf && \ - pacman -Syu --noconfirm && \ - pacman -Syu --noconfirm && \ - pacman -S --needed --noconfirm --noprogressbar \ - base-devel \ - sudo \ - gnupg \ - wget \ - git \ - glslang \ - python-pip \ - python \ - ccache \ - p7zip \ - cmake \ - ninja \ - qt6-base \ - qt6-tools \ - mingw-w64-boost \ - mingw-w64-gcc \ - mingw-w64-libusb \ - mingw-w64-lz4 \ - mingw-w64-nlohmann-json \ - mingw-w64-qt5-base \ - mingw-w64-qt5-multimedia \ - mingw-w64-qt5-tools \ - mingw-w64-qt5-winextras \ - mingw-w64-qt6-base \ - mingw-w64-qt6-multimedia \ - mingw-w64-qt6-tools \ - mingw-w64-tools \ - mingw-w64-sdl2 \ - mingw-w64-vulkan-headers \ - mingw-w64-winpthreads \ - mingw-w64-zlib \ - mingw-w64-zstd \ - mingw-w64-glslang \ - && \ - pacman -Scc --noconfirm && \ - rm -rf /usr/share/man/ /tmp/* /var/tmp/ /usr/{i686-w64-mingw32,lib32} /usr/lib/gcc/i686-w64-mingw32 && \ - mkdir -p /tmp/pkgs -COPY mingw-setup.sh /tmp/pkgs -RUN cd /tmp/pkgs && bash -e mingw-setup.sh diff --git a/linux-mingw/errno.h b/linux-mingw/errno.h deleted file mode 100644 index 390f77c..0000000 --- a/linux-mingw/errno.h +++ /dev/null @@ -1,241 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#ifndef _INC_ERRNO -#define _INC_ERRNO - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -#ifndef _CRT_ERRNO_DEFINED -#define _CRT_ERRNO_DEFINED -_CRTIMP extern int *__cdecl _errno(void); -#define errno (*_errno()) - -errno_t __cdecl _set_errno(int _Value); -errno_t __cdecl _get_errno(int *_Value); -#endif /* _CRT_ERRNO_DEFINED */ - -#define EPERM 1 -#define ENOENT 2 -#define ENOFILE ENOENT -#define ESRCH 3 -#define EINTR 4 -#define EIO 5 -#define ENXIO 6 -#define E2BIG 7 -#define ENOEXEC 8 -#define EBADF 9 -#define ECHILD 10 -#define EAGAIN 11 -#define ENOMEM 12 -#define EACCES 13 -#define EFAULT 14 -#define EBUSY 16 -#define EEXIST 17 -#define EXDEV 18 -#define ENODEV 19 -#define ENOTDIR 20 -#define EISDIR 21 -#define ENFILE 23 -#define EMFILE 24 -#define ENOTTY 25 -#define EFBIG 27 -#define ENOSPC 28 -#define ESPIPE 29 -#define EROFS 30 -#define EMLINK 31 -#define EPIPE 32 -#define EDOM 33 -#define EDEADLK 36 -#define ENAMETOOLONG 38 -#define ENOLCK 39 -#define ENOSYS 40 -#define ENOTEMPTY 41 - -#ifndef RC_INVOKED -#if !defined(_SECURECRT_ERRCODE_VALUES_DEFINED) -#define _SECURECRT_ERRCODE_VALUES_DEFINED -#define EINVAL 22 -#define ERANGE 34 -#define EILSEQ 42 -#define STRUNCATE 80 -#endif -#endif - -#define EDEADLOCK EDEADLK - -/* Posix thread extensions. */ - -#ifndef ENOTSUP -#define ENOTSUP 129 -#endif - -/* Extension defined as by report VC 10+ defines error-numbers. */ - -#ifndef EAFNOSUPPORT -#define EAFNOSUPPORT 102 -#endif - -#ifndef EADDRINUSE -#define EADDRINUSE 100 -#endif - -#ifndef EADDRNOTAVAIL -#define EADDRNOTAVAIL 101 -#endif - -#ifndef EISCONN -#define EISCONN 113 -#endif - -#ifndef ENOBUFS -#define ENOBUFS 119 -#endif - -#ifndef ECONNABORTED -#define ECONNABORTED 106 -#endif - -#ifndef EALREADY -#define EALREADY 103 -#endif - -#ifndef ECONNREFUSED -#define ECONNREFUSED 107 -#endif - -#ifndef ECONNRESET -#define ECONNRESET 108 -#endif - -#ifndef EDESTADDRREQ -#define EDESTADDRREQ 109 -#endif - -#ifndef EHOSTUNREACH -#define EHOSTUNREACH 110 -#endif - -#ifndef EMSGSIZE -#define EMSGSIZE 115 -#endif - -#ifndef ENETDOWN -#define ENETDOWN 116 -#endif - -#ifndef ENETRESET -#define ENETRESET 117 -#endif - -#ifndef ENETUNREACH -#define ENETUNREACH 118 -#endif - -#ifndef ENOPROTOOPT -#define ENOPROTOOPT 123 -#endif - -#ifndef ENOTSOCK -#define ENOTSOCK 128 -#endif - -#ifndef ENOTCONN -#define ENOTCONN 126 -#endif - -#ifndef ECANCELED -#define ECANCELED 105 -#endif - -#ifndef EINPROGRESS -#define EINPROGRESS 112 -#endif - -#ifndef EOPNOTSUPP -#define EOPNOTSUPP 130 -#endif - -#ifndef EWOULDBLOCK -#define EWOULDBLOCK 140 -#endif - -#ifndef EOWNERDEAD -#define EOWNERDEAD 133 -#endif - -#ifndef EPROTO -#define EPROTO 134 -#endif - -#ifndef EPROTONOSUPPORT -#define EPROTONOSUPPORT 135 -#endif - -#ifndef EBADMSG -#define EBADMSG 104 -#endif - -#ifndef EIDRM -#define EIDRM 111 -#endif - -#ifndef ENODATA -#define ENODATA 120 -#endif - -#ifndef ENOLINK -#define ENOLINK 121 -#endif - -#ifndef ENOMSG -#define ENOMSG 122 -#endif - -#ifndef ENOSR -#define ENOSR 124 -#endif - -#ifndef ENOSTR -#define ENOSTR 125 -#endif - -#ifndef ENOTRECOVERABLE -#define ENOTRECOVERABLE 127 -#endif - -#ifndef ETIME -#define ETIME 137 -#endif - -#ifndef ETXTBSY -#define ETXTBSY 139 -#endif - -/* Defined as WSAETIMEDOUT. */ -#ifndef ETIMEDOUT -#define ETIMEDOUT 138 -#endif - -#ifndef ELOOP -#define ELOOP 114 -#endif - -#ifndef EPROTOTYPE -#define EPROTOTYPE 136 -#endif - -#ifndef EOVERFLOW -#define EOVERFLOW 132 -#endif - -#ifdef __cplusplus -} -#endif -#endif diff --git a/linux-mingw/mingw-setup.sh b/linux-mingw/mingw-setup.sh deleted file mode 100644 index 903fb45..0000000 --- a/linux-mingw/mingw-setup.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/usr/bin/bash -e -# install pefile -pip3 install pefile - -# ffmpeg -FFMPEG_VER='6.0' -LINK_PATH="autobuild-2023-03-31-12-50/ffmpeg-n6.0-11-g3980415627-win64-gpl-shared-6.0" -FILENAME="${LINK_PATH##*/}" -echo "Downloading ffmpeg (${FFMPEG_VER})..." -wget -c "https://github.com/BtbN/FFmpeg-Builds/releases/download/${LINK_PATH}.zip" -7z x "${FILENAME}.zip" - -echo "Copying ffmpeg ${FFMPEG_VER} files to sysroot..." -cp -v "${FILENAME}"/bin/*.dll /usr/x86_64-w64-mingw32/lib/ -cp -vr "${FILENAME}"/include /usr/x86_64-w64-mingw32/ -cp -v "${FILENAME}"/lib/*.{a,def} /usr/x86_64-w64-mingw32/lib/ - -# remove the directory -ABS_PATH="$(readlink -f $0)" -rm -rf "$(dirname ${ABS_PATH})" diff --git a/linux-transifex/Dockerfile b/linux-transifex/Dockerfile deleted file mode 100644 index 45d927f..0000000 --- a/linux-transifex/Dockerfile +++ /dev/null @@ -1,16 +0,0 @@ -FROM debian:bullseye-backports -LABEL maintainer="citraemu" - -ENV DEBIAN_FRONTEND=noninteractive -ENV CMAKE_VER=3.22.6 - -RUN apt-get update && apt-get -y full-upgrade -RUN apt-get install -y git p7zip-full libqt5opengl5-dev qtmultimedia5-dev qttools5-dev qttools5-dev-tools libqt6opengl6-dev qt6-multimedia-dev qt6-l10n-tools qt6-tools-dev qt6-tools-dev-tools python3-pip cmake curl unzip zip -RUN curl -O -L https://github.com/transifex/cli/releases/latest/download/tx-linux-amd64.tar.gz && tar xf tx-linux-amd64.tar.gz tx && mv tx /usr/bin/tx && rm tx-linux-amd64.tar.gz - -# Install CMake from upstream -RUN cd /tmp -RUN curl -OL https://github.com/Kitware/CMake/releases/download/v${CMAKE_VER}/cmake-${CMAKE_VER}-linux-x86_64.tar.gz && \ - tar xvf cmake-${CMAKE_VER}-linux-x86_64.tar.gz && \ - cp -rv cmake-${CMAKE_VER}-linux-x86_64/* /usr && \ - rm -rf cmake-*