├── .github
├── dependabot.yml
└── workflows
│ ├── build-linux.yml
│ ├── main.yml
│ ├── nightly.yml
│ ├── update-repo.yml
│ ├── verify-debian.yml
│ └── verify-ubuntu.yml
├── LICENSE
├── README.MD
└── version.txt
/.github/dependabot.yml:
--------------------------------------------------------------------------------
1 | version: 2
2 | updates:
3 | - package-ecosystem: "github-actions"
4 | directory: "/"
5 | schedule:
6 | interval: "weekly"
7 |
--------------------------------------------------------------------------------
/.github/workflows/build-linux.yml:
--------------------------------------------------------------------------------
1 | name: Build linux packages
2 |
3 | on:
4 | workflow_call:
5 | inputs:
6 | channel:
7 | type: string
8 | default: nightly
9 | version:
10 | type: string
11 | default: "0.8.2"
12 | changelog:
13 | type: string
14 | default: ""
15 | versionsdbremote:
16 | type: string
17 | default: master
18 | shas:
19 | type: string
20 | default: "{}"
21 | env:
22 | ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true
23 | jobs:
24 | build-linux:
25 | runs-on: ${{ matrix.platform.label || 'ubuntu-latest' }}
26 | continue-on-error: ${{ matrix.platform.ignore-failure || false }}
27 | strategy:
28 | fail-fast: false
29 | matrix:
30 | repo:
31 | - mcpelauncher-manifest
32 | - mcpelauncher-ui-manifest
33 | - msa-manifest
34 | platform:
35 | - name: focal
36 | container: buildpack-deps:focal
37 | deps: apt-get update && apt-get install -y --no-install-recommends g++ clang cmake make git ca-certificates libssl-dev libsecret-1-dev libpng-dev libx11-dev libxcursor-dev libxinerama-dev libxi-dev libxrandr-dev libcurl4-openssl-dev libudev-dev libevdev-dev libegl1-mesa-dev libssl-dev libsecret-1-dev libasound2 qtbase5-dev qtwebengine5-dev qtdeclarative5-dev libqt5svg5-dev qml-module-qtquick2 qml-module-qtquick-layouts qml-module-qtquick-controls qml-module-qtquick-controls2 qml-module-qtquick-window2 qml-module-qtquick-dialogs qml-module-qt-labs-settings qml-module-qt-labs-folderlistmodel qml-module-qtwebengine libssl-dev libsecret-1-dev libcurl4-openssl-dev libuv1-dev libzip-dev libprotobuf-dev protobuf-compiler qtbase5-dev qtwebengine5-dev qtdeclarative5-dev libqt5svg5-dev qml-module-qtquick2 qml-module-qtquick-layouts qml-module-qtquick-controls qml-module-qtquick-controls2 qml-module-qtquick-window2 qml-module-qtquick-dialogs qml-module-qt-labs-settings qml-module-qt-labs-folderlistmodel libasound2-dev libpulse-dev libaudio-dev libsndio-dev
38 | generator: DEB
39 | pkg-deps: libc6, ca-certificates, libxcursor1, libxinerama1, libxi6, libxrandr2, qml-module-qtquick2, qml-module-qtquick-layouts, qml-module-qtquick-controls, qml-module-qtquick-controls2, qml-module-qtquick-window2, qml-module-qtquick-dialogs, qml-module-qt-labs-settings, qml-module-qt-labs-folderlistmodel, qml-module-qtwebengine, libqt5svg5, libqt5concurrent5, libqt5webenginewidgets5, libzip5, qml-module-qtquick-templates2, libprotobuf17, libsecret-1-0
40 | - name: focal
41 | container: ubuntu:focal
42 | deps: |
43 | echo "deb [arch=amd64,i386] http://archive.ubuntu.com/ubuntu/ focal main universe multiverse restricted" > /etc/apt/sources.list
44 | echo "deb [arch=amd64,i386] http://archive.ubuntu.com/ubuntu/ focal-updates main universe multiverse restricted" >> /etc/apt/sources.list
45 | echo "deb [arch=arm64,armhf] http://ports.ubuntu.com/ubuntu-ports/ focal main universe multiverse restricted" >> /etc/apt/sources.list
46 | echo "deb [arch=arm64,armhf] http://ports.ubuntu.com/ubuntu-ports/ focal-updates main universe multiverse restricted" >> /etc/apt/sources.list
47 | dpkg --add-architecture arm64 && dpkg --add-architecture armhf && apt update && DEBIAN_FRONTEND=noninteractive apt install -y docker.io libfuse-dev:arm64 wget texinfo apt-transport-https vim-common qemu-user clang chrpath libstdc++-9-dev:arm64 libatomic1:arm64 wget cmake g++-arm-linux-gnueabihf g++-aarch64-linux-gnu patchelf git cmake pkg-config qtbase5-dev:arm64 qtwebengine5-dev:arm64 libssl-dev:arm64 libcurl4-openssl-dev:arm64 libpng-dev:arm64 libx11-dev:arm64 libxcursor-dev:arm64 libxinerama-dev:arm64 libxi-dev:arm64 libxrandr-dev:arm64 libssl-dev:arm64 libudev-dev:arm64 libevdev-dev:arm64 libegl1-mesa-dev:arm64 libgl1-mesa-dev:arm64 libssl-dev:arm64 libuv1-dev:arm64 libzip-dev:arm64 libprotobuf-dev:arm64 protobuf-compiler qtdeclarative5-dev:arm64 libqt5svg5-dev:arm64 qml-module-qtwebengine:arm64 qml-module-qtquick2:arm64 qml-module-qtquick-layouts:arm64 qml-module-qtquick-controls:arm64 qml-module-qtquick-controls2:arm64 qml-module-qtquick-window2:arm64 qml-module-qtquick-dialogs:arm64 qml-module-qt-labs-settings:arm64 qml-module-qt-labs-folderlistmodel:arm64 jq curl binutils desktop-file-utils squashfs-tools qtdeclarative5-dev-tools:arm64 libssl-dev:arm64 libpulse-dev:arm64 libsecret-1-dev:arm64 libasound2-dev:arm64 libpulse-dev:arm64 libaudio-dev:arm64 libsndio-dev:arm64
48 | docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
49 | echo "PKG_CONFIG_LIBDIR=/usr/lib/aarch64-linux-gnu/pkgconfig/:/usr/share/pkgconfig" >> $GITHUB_ENV
50 | echo "/usr/lib/aarch64-linux-gnu/qt5/bin/" >> $GITHUB_PATH
51 | curl -L -O https://raw.githubusercontent.com/ChristopherHX/linux-packaging-scripts/main/arm64toolchain.txt
52 | generator: DEB
53 | cmakeflags:
54 | mcpelauncher-manifest: -DCMAKE_ASM_FLAGS="-latomic --target=aarch64-linux-gnu" -DCMAKE_C_FLAGS="-latomic --target=aarch64-linux-gnu" -DCMAKE_CXX_FLAGS="-latomic --target=aarch64-linux-gnu" -DCMAKE_TOOLCHAIN_FILE=$PWD/arm64toolchain.txt -DCPACK_DEBIAN_PACKAGE_ARCHITECTURE=arm64
55 | mcpelauncher-ui-manifest: -DCMAKE_ASM_FLAGS="-latomic --target=aarch64-linux-gnu" -DCMAKE_C_FLAGS="-latomic --target=aarch64-linux-gnu" -DCMAKE_CXX_FLAGS="-latomic --target=aarch64-linux-gnu" -DCMAKE_TOOLCHAIN_FILE=$PWD/arm64toolchain.txt -DCPACK_DEBIAN_PACKAGE_ARCHITECTURE=arm64
56 | msa-manifest: -DCMAKE_ASM_FLAGS="-latomic --target=aarch64-linux-gnu" -DCMAKE_C_FLAGS="-latomic --target=aarch64-linux-gnu" -DCMAKE_CXX_FLAGS="-latomic --target=aarch64-linux-gnu" -DCMAKE_TOOLCHAIN_FILE=$PWD/arm64toolchain.txt -DCPACK_DEBIAN_PACKAGE_ARCHITECTURE=arm64
57 | pkg-deps: libc6, ca-certificates, libxcursor1, libxinerama1, libxi6, libxrandr2, qml-module-qtquick2, qml-module-qtquick-layouts, qml-module-qtquick-controls, qml-module-qtquick-controls2, qml-module-qtquick-window2, qml-module-qtquick-dialogs, qml-module-qt-labs-settings, qml-module-qt-labs-folderlistmodel, qml-module-qtwebengine, libqt5svg5, libqt5concurrent5, libqt5webenginewidgets5, libzip5, qml-module-qtquick-templates2, libprotobuf17, libpulse0, libatomic1, libsecret-1-0
58 | - name: jammy
59 | container: buildpack-deps:jammy
60 | deps: apt-get update && apt-get install -y --no-install-recommends g++ clang cmake make git ca-certificates libssl-dev libsecret-1-dev libpng-dev libx11-dev libxcursor-dev libxinerama-dev libxi-dev libxrandr-dev libcurl4-openssl-dev libudev-dev libevdev-dev libegl1-mesa-dev libssl-dev libsecret-1-dev libasound2 qtbase5-dev qtwebengine5-dev qtdeclarative5-dev libqt5svg5-dev qml-module-qtquick2 qml-module-qtquick-layouts qml-module-qtquick-controls qml-module-qtquick-controls2 qml-module-qtquick-window2 qml-module-qtquick-dialogs qml-module-qt-labs-settings qml-module-qt-labs-folderlistmodel qml-module-qtwebengine libssl-dev libsecret-1-dev libcurl4-openssl-dev libuv1-dev libzip-dev libprotobuf-dev protobuf-compiler qtbase5-dev qtwebengine5-dev qtdeclarative5-dev libqt5svg5-dev qml-module-qtquick2 qml-module-qtquick-layouts qml-module-qtquick-controls qml-module-qtquick-controls2 qml-module-qtquick-window2 qml-module-qtquick-dialogs qml-module-qt-labs-settings qml-module-qt-labs-folderlistmodel libasound2-dev libpulse-dev libaudio-dev libsndio-dev libpipewire-0.3-dev
61 | generator: DEB
62 | - name: jammy
63 | container: buildpack-deps:jammy
64 | deps: apt-get update && apt-get install -y --no-install-recommends g++ clang cmake make git ca-certificates libssl-dev libsecret-1-dev libpng-dev libx11-dev libxcursor-dev libxinerama-dev libxi-dev libxrandr-dev libcurl4-openssl-dev libudev-dev libevdev-dev libegl1-mesa-dev libssl-dev libsecret-1-dev libasound2 qt6-base-dev libqt6opengl6-dev qt6-webengine-dev qt6-webengine-dev-tools qt6-declarative-dev qml6-module-qtquick qml6-module-qtquick-layouts qml6-module-qtquick-controls qml6-module-qtquick-window qml6-module-qtquick-dialogs qml6-module-qt-labs-settings qml6-module-qt-labs-folderlistmodel qml6-module-qtwebengine libssl-dev libsecret-1-dev libcurl4-openssl-dev libuv1-dev libzip-dev libprotobuf-dev protobuf-compiler qt6-base-dev libqt6opengl6-dev qt6-webengine-dev qt6-declarative-dev libqt6svg6-dev qml6-module-qtquick-layouts qml6-module-qtquick-controls qml6-module-qtquick-controls qml6-module-qtquick-dialogs qml6-module-qt-labs-settings qml6-module-qt-labs-folderlistmodel libasound2-dev libpulse-dev libaudio-dev libsndio-dev libpipewire-0.3-dev
65 | generator: DEB
66 | branch:
67 | mcpelauncher-manifest: qt6
68 | mcpelauncher-ui-manifest: qt6
69 | cmakeflags:
70 | msa-manifest: -DQT_VERSION=6
71 | pkg-deps: libc6, ca-certificates, libxcursor1, libxinerama1, libxi6, libxrandr2, qml6-module-qtquick, qml6-module-qtquick-layouts, qml6-module-qtquick-controls, qml6-module-qtquick-window, qml6-module-qtquick-dialogs, qml6-module-qt-labs-settings, qml6-module-qt-labs-folderlistmodel, qml6-module-qtwebengine, qml6-module-qtquick-layouts, qml6-module-qtquick-controls, qml6-module-qtquick-controls, qml6-module-qtquick-dialogs, qml6-module-qt-labs-settings, qml6-module-qt-labs-folderlistmodel, libqt6svg6, libqt6concurrent6, libqt6webenginewidgets6, libzip4, qml6-module-qtqml-workerscript, qml6-module-qt-labs-platform, qml6-module-qtquick-templates, libprotobuf23, libsecret-1-0
72 | suffix: qt6
73 | - name: jammy
74 | container: ubuntu:jammy
75 | deps: |
76 | echo "deb [arch=amd64,i386] http://archive.ubuntu.com/ubuntu/ jammy main universe multiverse restricted" > /etc/apt/sources.list
77 | echo "deb [arch=amd64,i386] http://archive.ubuntu.com/ubuntu/ jammy-updates main universe multiverse restricted" >> /etc/apt/sources.list
78 | echo "deb [arch=arm64,armhf] http://ports.ubuntu.com/ubuntu-ports/ jammy main universe multiverse restricted" >> /etc/apt/sources.list
79 | echo "deb [arch=arm64,armhf] http://ports.ubuntu.com/ubuntu-ports/ jammy-updates main universe multiverse restricted" >> /etc/apt/sources.list
80 | dpkg --add-architecture arm64 && dpkg --add-architecture armhf && apt update && DEBIAN_FRONTEND=noninteractive apt install -y docker.io libfuse-dev:arm64 wget texinfo apt-transport-https vim-common qemu-user clang chrpath libstdc++-10-dev:arm64 libatomic1:arm64 wget cmake g++-arm-linux-gnueabihf g++-aarch64-linux-gnu patchelf git cmake pkg-config qtbase5-dev:arm64 qtwebengine5-dev:arm64 libssl-dev:arm64 libcurl4-openssl-dev:arm64 libpng-dev:arm64 libx11-dev:arm64 libxcursor-dev:arm64 libxinerama-dev:arm64 libxi-dev:arm64 libxrandr-dev:arm64 libssl-dev:arm64 libudev-dev:arm64 libevdev-dev:arm64 libegl1-mesa-dev:arm64 libgl1-mesa-dev:arm64 libssl-dev:arm64 libuv1-dev:arm64 libzip-dev:arm64 libprotobuf-dev:arm64 protobuf-compiler qtdeclarative5-dev:arm64 libqt5svg5-dev:arm64 qml-module-qtwebengine:arm64 qml-module-qtquick2:arm64 qml-module-qtquick-layouts:arm64 qml-module-qtquick-controls:arm64 qml-module-qtquick-controls2:arm64 qml-module-qtquick-window2:arm64 qml-module-qtquick-dialogs:arm64 qml-module-qt-labs-settings:arm64 qml-module-qt-labs-folderlistmodel:arm64 jq curl binutils desktop-file-utils squashfs-tools qtdeclarative5-dev-tools:arm64 libssl-dev:arm64 libpulse-dev:arm64 libsecret-1-dev:arm64 libasound2-dev:arm64 libpulse-dev:arm64 libaudio-dev:arm64 libsndio-dev:arm64 libpipewire-0.3-dev:arm64
81 | docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
82 | echo "PKG_CONFIG_LIBDIR=/usr/lib/aarch64-linux-gnu/pkgconfig/:/usr/share/pkgconfig" >> $GITHUB_ENV
83 | echo "/usr/lib/aarch64-linux-gnu/qt5/bin/" >> $GITHUB_PATH
84 | curl -L -O https://raw.githubusercontent.com/ChristopherHX/linux-packaging-scripts/main/arm64toolchain.txt
85 | generator: DEB
86 | cmakeflags:
87 | mcpelauncher-manifest: -DCMAKE_ASM_FLAGS="-latomic --target=aarch64-linux-gnu" -DCMAKE_C_FLAGS="-latomic --target=aarch64-linux-gnu" -DCMAKE_CXX_FLAGS="-latomic --target=aarch64-linux-gnu" -DCMAKE_TOOLCHAIN_FILE=$PWD/arm64toolchain.txt -DCPACK_DEBIAN_PACKAGE_ARCHITECTURE=arm64
88 | mcpelauncher-ui-manifest: -DCMAKE_ASM_FLAGS="-latomic --target=aarch64-linux-gnu" -DCMAKE_C_FLAGS="-latomic --target=aarch64-linux-gnu" -DCMAKE_CXX_FLAGS="-latomic --target=aarch64-linux-gnu" -DCMAKE_TOOLCHAIN_FILE=$PWD/arm64toolchain.txt -DCPACK_DEBIAN_PACKAGE_ARCHITECTURE=arm64
89 | msa-manifest: -DCMAKE_ASM_FLAGS="-latomic --target=aarch64-linux-gnu" -DCMAKE_C_FLAGS="-latomic --target=aarch64-linux-gnu" -DCMAKE_CXX_FLAGS="-latomic --target=aarch64-linux-gnu" -DCMAKE_TOOLCHAIN_FILE=$PWD/arm64toolchain.txt -DCPACK_DEBIAN_PACKAGE_ARCHITECTURE=arm64
90 | pkg-deps: libc6, ca-certificates, libxcursor1, libxinerama1, libxi6, libxrandr2, qml-module-qtquick2, qml-module-qtquick-layouts, qml-module-qtquick-controls, qml-module-qtquick-controls2, qml-module-qtquick-window2, qml-module-qtquick-dialogs, qml-module-qt-labs-settings, qml-module-qt-labs-folderlistmodel, qml-module-qtwebengine, libqt5svg5, libqt5concurrent5, libqt5webenginewidgets5, libzip4, qml-module-qtquick-templates2, libprotobuf23, libpulse0, libatomic1, libsecret-1-0
91 | - name: noble
92 | container: buildpack-deps:noble
93 | ignore-failure: true
94 | deps: apt-get update && apt-get install -y --no-install-recommends g++ clang cmake make git ca-certificates libssl-dev libsecret-1-dev libpng-dev libx11-dev libxcursor-dev libxinerama-dev libxi-dev libxrandr-dev libcurl4-openssl-dev libudev-dev libevdev-dev libegl1-mesa-dev libssl-dev libsecret-1-dev qt6-base-dev libqt6opengl6-dev qt6-webengine-dev qt6-webengine-dev-tools qt6-declarative-dev qml6-module-qtquick qml6-module-qtquick-layouts qml6-module-qtquick-controls qml6-module-qtquick-window qml6-module-qtquick-dialogs qml6-module-qt-labs-settings qml6-module-qt-labs-folderlistmodel qml6-module-qtwebengine libssl-dev libsecret-1-dev libcurl4-openssl-dev libuv1-dev libzip-dev libprotobuf-dev protobuf-compiler qt6-base-dev libqt6opengl6-dev qt6-webengine-dev qt6-declarative-dev libqt6svg6-dev qml6-module-qtquick-layouts qml6-module-qtquick-controls qml6-module-qtquick-controls qml6-module-qtquick-dialogs qml6-module-qt-labs-settings qml6-module-qt-labs-folderlistmodel libasound2-dev libpulse-dev libaudio-dev libsndio-dev libpipewire-0.3-dev
95 | generator: DEB
96 | branch:
97 | mcpelauncher-manifest: qt6
98 | mcpelauncher-ui-manifest: qt6
99 | cmakeflags:
100 | msa-manifest: -DQT_VERSION=6
101 | pkg-deps: libc6, ca-certificates, libxcursor1, libxinerama1, libxi6, libxrandr2, qml6-module-qtquick, qml6-module-qtquick-layouts, qml6-module-qtquick-controls, qml6-module-qtquick-window, qml6-module-qtquick-dialogs, qml6-module-qt-labs-settings, qml6-module-qt-labs-folderlistmodel, qml6-module-qtwebengine, qml6-module-qtquick-layouts, qml6-module-qtquick-controls, qml6-module-qtquick-controls, qml6-module-qtquick-dialogs, qml6-module-qt-labs-settings, qml6-module-qt-labs-folderlistmodel, libqt6svg6, libqt6concurrent6, libqt6webenginewidgets6, libzip4, qml6-module-qtqml-workerscript, qml6-module-qt-labs-platform, qml6-module-qtquick-templates, libprotobuf32t64, libsecret-1-0
102 | - name: noble
103 | container: ubuntu:noble
104 | ignore-failure: true
105 | deps: |
106 | rm /etc/apt/sources.list.d/ubuntu.sources
107 | echo "deb [arch=amd64,i386] http://archive.ubuntu.com/ubuntu/ noble main universe multiverse restricted" > /etc/apt/sources.list
108 | echo "deb [arch=amd64,i386] http://archive.ubuntu.com/ubuntu/ noble-updates main universe multiverse restricted" >> /etc/apt/sources.list
109 | echo "deb [arch=arm64,armhf] http://ports.ubuntu.com/ubuntu-ports/ noble main universe multiverse restricted" >> /etc/apt/sources.list
110 | echo "deb [arch=arm64,armhf] http://ports.ubuntu.com/ubuntu-ports/ noble-updates main universe multiverse restricted" >> /etc/apt/sources.list
111 | dpkg --add-architecture arm64 && dpkg --add-architecture armhf && apt update && apt-mark hold linux-libc-dev:amd64 && DEBIAN_FRONTEND=noninteractive apt install -y docker.io libfuse-dev:arm64 wget texinfo apt-transport-https vim-common qemu-user chrpath libstdc++-10-dev:arm64 libatomic1:arm64 wget cmake g++-arm-linux-gnueabihf g++-aarch64-linux-gnu patchelf git cmake pkg-config libssl-dev:arm64 libcurl4-openssl-dev:arm64 libpng-dev:arm64 libx11-dev:arm64 libxcursor-dev:arm64 libxinerama-dev:arm64 libxi-dev:arm64 libxrandr-dev:arm64 libssl-dev:arm64 libudev-dev:arm64 libevdev-dev:arm64 libegl1-mesa-dev:arm64 libgl1-mesa-dev:arm64 libssl-dev:arm64 libuv1-dev:arm64 libzip-dev:arm64 libprotobuf-dev:arm64 protobuf-compiler jq curl binutils desktop-file-utils squashfs-tools libssl-dev:arm64 libpulse-dev:arm64 libsecret-1-dev:arm64 qt6-base-dev:arm64 libqt6opengl6-dev:arm64 qt6-webengine-dev:arm64 qt6-webengine-dev-tools:arm64 qt6-declarative-dev:arm64 qml6-module-qtquick:arm64 qml6-module-qtquick-layouts:arm64 qml6-module-qtquick-controls:arm64 qml6-module-qtquick-window:arm64 qml6-module-qtquick-dialogs:arm64 qml6-module-qt-labs-settings:arm64 qml6-module-qt-labs-folderlistmodel:arm64 qml6-module-qtwebengine:arm64 qt6-base-dev:arm64 libqt6opengl6-dev:arm64 qt6-webengine-dev:arm64 qt6-declarative-dev:arm64 libqt6svg6-dev:arm64 qml6-module-qtquick-layouts:arm64 qml6-module-qtquick-controls:arm64 qml6-module-qtquick-controls:arm64 qml6-module-qtquick-dialogs:arm64 qml6-module-qt-labs-settings:arm64 qml6-module-qt-labs-folderlistmodel:arm64 libasound2-dev:arm64 libpulse-dev:arm64 libaudio-dev:arm64 libsndio-dev:arm64 libpipewire-0.3-dev:arm64
112 | docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
113 | echo "PKG_CONFIG_LIBDIR=/usr/lib/aarch64-linux-gnu/pkgconfig/:/usr/share/pkgconfig" >> $GITHUB_ENV
114 | echo PATH=/usr/lib/aarch64-linux-gnu/qt6/bin/:$PATH >> $GITHUB_PATH
115 | curl -L -O https://raw.githubusercontent.com/ChristopherHX/linux-packaging-scripts/main/arm64toolchain.txt
116 | curl -L https://github.com/llvm/llvm-project/releases/download/llvmorg-15.0.6/clang+llvm-15.0.6-x86_64-linux-gnu-ubuntu-18.04.tar.xz --output llvm.tar.xz
117 | tar --no-same-owner -xf llvm.tar.xz
118 | echo "$PWD/clang+llvm-15.0.6-x86_64-linux-gnu-ubuntu-18.04/bin" >> $GITHUB_PATH
119 | generator: DEB
120 | branch:
121 | mcpelauncher-manifest: qt6
122 | mcpelauncher-ui-manifest: qt6
123 | cmakeflags:
124 | mcpelauncher-manifest: -DCMAKE_ASM_FLAGS="-latomic --target=aarch64-linux-gnu" -DCMAKE_C_FLAGS="-latomic --target=aarch64-linux-gnu" -DCMAKE_CXX_FLAGS="-latomic --target=aarch64-linux-gnu" -DCMAKE_TOOLCHAIN_FILE=$PWD/arm64toolchain.txt -DCPACK_DEBIAN_PACKAGE_ARCHITECTURE=arm64
125 | mcpelauncher-ui-manifest: -DCMAKE_ASM_FLAGS="-latomic --target=aarch64-linux-gnu" -DCMAKE_C_FLAGS="-latomic --target=aarch64-linux-gnu" -DCMAKE_CXX_FLAGS="-latomic --target=aarch64-linux-gnu" -DCMAKE_TOOLCHAIN_FILE=$PWD/arm64toolchain.txt -DCPACK_DEBIAN_PACKAGE_ARCHITECTURE=arm64
126 | msa-manifest: -DQT_VERSION=6 -DCMAKE_ASM_FLAGS="-latomic --target=aarch64-linux-gnu" -DCMAKE_C_FLAGS="-latomic --target=aarch64-linux-gnu" -DCMAKE_CXX_FLAGS="-latomic --target=aarch64-linux-gnu" -DCMAKE_TOOLCHAIN_FILE=$PWD/arm64toolchain.txt -DCPACK_DEBIAN_PACKAGE_ARCHITECTURE=arm64
127 | pkg-deps: libc6, ca-certificates, libxcursor1, libxinerama1, libxi6, libxrandr2, qml6-module-qtquick, qml6-module-qtquick-layouts, qml6-module-qtquick-controls, qml6-module-qtquick-window, qml6-module-qtquick-dialogs, qml6-module-qt-labs-settings, qml6-module-qt-labs-folderlistmodel, qml6-module-qtwebengine, qml6-module-qtquick-layouts, qml6-module-qtquick-controls, qml6-module-qtquick-controls, qml6-module-qtquick-dialogs, qml6-module-qt-labs-settings, qml6-module-qt-labs-folderlistmodel, libqt6svg6, libqt6concurrent6, libqt6webenginewidgets6, libzip4, qml6-module-qtqml-workerscript, qml6-module-qt-labs-platform, qml6-module-qtquick-templates, libprotobuf32t64, libpulse0, libatomic1, libsecret-1-0
128 | - name: oracular
129 | container: buildpack-deps:oracular
130 | ignore-failure: true
131 | deps: apt-get update && apt-get install -y --no-install-recommends g++ clang cmake make git ca-certificates libssl-dev libsecret-1-dev libpng-dev libx11-dev libxcursor-dev libxinerama-dev libxi-dev libxrandr-dev libcurl4-openssl-dev libudev-dev libevdev-dev libegl1-mesa-dev libssl-dev libsecret-1-dev qt6-base-dev libqt6opengl6-dev qt6-webengine-dev qt6-webengine-dev-tools qt6-declarative-dev qml6-module-qtquick qml6-module-qtquick-layouts qml6-module-qtquick-controls qml6-module-qtquick-window qml6-module-qtquick-dialogs qml6-module-qt-labs-settings qml6-module-qt-labs-folderlistmodel qml6-module-qtwebengine libssl-dev libsecret-1-dev libcurl4-openssl-dev libuv1-dev libzip-dev libprotobuf-dev protobuf-compiler qt6-base-dev libqt6opengl6-dev qt6-webengine-dev qt6-declarative-dev libqt6svg6-dev qml6-module-qtquick-layouts qml6-module-qtquick-controls qml6-module-qtquick-controls qml6-module-qtquick-dialogs qml6-module-qt-labs-settings qml6-module-qt-labs-folderlistmodel libasound2-dev libpulse-dev libaudio-dev libsndio-dev libpipewire-0.3-dev
132 | generator: DEB
133 | branch:
134 | mcpelauncher-manifest: qt6
135 | mcpelauncher-ui-manifest: qt6
136 | cmakeflags:
137 | msa-manifest: -DQT_VERSION=6
138 | pkg-deps: libc6, ca-certificates, libxcursor1, libxinerama1, libxi6, libxrandr2, qml6-module-qtquick, qml6-module-qtquick-layouts, qml6-module-qtquick-controls, qml6-module-qtquick-window, qml6-module-qtquick-dialogs, qml6-module-qt-labs-settings, qml6-module-qt-labs-folderlistmodel, qml6-module-qtwebengine, qml6-module-qtquick-layouts, qml6-module-qtquick-controls, qml6-module-qtquick-controls, qml6-module-qtquick-dialogs, qml6-module-qt-labs-settings, qml6-module-qt-labs-folderlistmodel, libqt6svg6, libqt6concurrent6, libqt6webenginewidgets6, libzip4, qml6-module-qtqml-workerscript, qml6-module-qt-labs-platform, qml6-module-qtquick-templates, libprotobuf32t64, libsecret-1-0
139 | - name: oracular
140 | container: ubuntu:oracular
141 | ignore-failure: true
142 | deps: |
143 | rm /etc/apt/sources.list.d/ubuntu.sources
144 | echo "deb [arch=amd64,i386] http://archive.ubuntu.com/ubuntu/ oracular main universe multiverse restricted" > /etc/apt/sources.list
145 | echo "deb [arch=amd64,i386] http://archive.ubuntu.com/ubuntu/ oracular-updates main universe multiverse restricted" >> /etc/apt/sources.list
146 | echo "deb [arch=arm64,armhf] http://ports.ubuntu.com/ubuntu-ports/ oracular main universe multiverse restricted" >> /etc/apt/sources.list
147 | echo "deb [arch=arm64,armhf] http://ports.ubuntu.com/ubuntu-ports/ oracular-updates main universe multiverse restricted" >> /etc/apt/sources.list
148 | dpkg --add-architecture arm64 && dpkg --add-architecture armhf && apt update && apt-mark hold linux-libc-dev:amd64 && DEBIAN_FRONTEND=noninteractive apt install -y docker.io libfuse-dev:arm64 wget texinfo apt-transport-https vim-common qemu-user chrpath libstdc++-11-dev:arm64 libatomic1:arm64 wget cmake g++-arm-linux-gnueabihf g++-aarch64-linux-gnu patchelf git cmake pkg-config libssl-dev:arm64 libcurl4-openssl-dev:arm64 libpng-dev:arm64 libx11-dev:arm64 libxcursor-dev:arm64 libxinerama-dev:arm64 libxi-dev:arm64 libxrandr-dev:arm64 libssl-dev:arm64 libudev-dev:arm64 libevdev-dev:arm64 libegl1-mesa-dev:arm64 libgl1-mesa-dev:arm64 libssl-dev:arm64 libuv1-dev:arm64 libzip-dev:arm64 libprotobuf-dev:arm64 protobuf-compiler jq curl binutils desktop-file-utils squashfs-tools libssl-dev:arm64 libpulse-dev:arm64 libsecret-1-dev:arm64 qt6-base-dev:arm64 libqt6opengl6-dev:arm64 qt6-webengine-dev:arm64 qt6-webengine-dev-tools:arm64 qt6-declarative-dev:arm64 qml6-module-qtquick:arm64 qml6-module-qtquick-layouts:arm64 qml6-module-qtquick-controls:arm64 qml6-module-qtquick-window:arm64 qml6-module-qtquick-dialogs:arm64 qml6-module-qt-labs-settings:arm64 qml6-module-qt-labs-folderlistmodel:arm64 qml6-module-qtwebengine:arm64 qt6-base-dev:arm64 libqt6opengl6-dev:arm64 qt6-webengine-dev:arm64 qt6-declarative-dev:arm64 libqt6svg6-dev:arm64 qml6-module-qtquick-layouts:arm64 qml6-module-qtquick-controls:arm64 qml6-module-qtquick-controls:arm64 qml6-module-qtquick-dialogs:arm64 qml6-module-qt-labs-settings:arm64 qml6-module-qt-labs-folderlistmodel:arm64 libasound2-dev:arm64 libpulse-dev:arm64 libaudio-dev:arm64 libsndio-dev:arm64 libpipewire-0.3-dev:arm64
149 | docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
150 | echo "PKG_CONFIG_LIBDIR=/usr/lib/aarch64-linux-gnu/pkgconfig/:/usr/share/pkgconfig" >> $GITHUB_ENV
151 | echo PATH=/usr/lib/aarch64-linux-gnu/qt6/bin/:$PATH >> $GITHUB_PATH
152 | curl -L -O https://raw.githubusercontent.com/ChristopherHX/linux-packaging-scripts/main/arm64toolchain.txt
153 | curl -L https://github.com/llvm/llvm-project/releases/download/llvmorg-15.0.6/clang+llvm-15.0.6-x86_64-linux-gnu-ubuntu-18.04.tar.xz --output llvm.tar.xz
154 | tar --no-same-owner -xf llvm.tar.xz
155 | echo "$PWD/clang+llvm-15.0.6-x86_64-linux-gnu-ubuntu-18.04/bin" >> $GITHUB_PATH
156 | generator: DEB
157 | branch:
158 | mcpelauncher-manifest: qt6
159 | mcpelauncher-ui-manifest: qt6
160 | cmakeflags:
161 | mcpelauncher-manifest: -DCMAKE_ASM_FLAGS="-latomic --target=aarch64-linux-gnu" -DCMAKE_C_FLAGS="-latomic --target=aarch64-linux-gnu" -DCMAKE_CXX_FLAGS="-latomic --target=aarch64-linux-gnu" -DCMAKE_TOOLCHAIN_FILE=$PWD/arm64toolchain.txt -DCPACK_DEBIAN_PACKAGE_ARCHITECTURE=arm64
162 | mcpelauncher-ui-manifest: -DCMAKE_ASM_FLAGS="-latomic --target=aarch64-linux-gnu" -DCMAKE_C_FLAGS="-latomic --target=aarch64-linux-gnu" -DCMAKE_CXX_FLAGS="-latomic --target=aarch64-linux-gnu" -DCMAKE_TOOLCHAIN_FILE=$PWD/arm64toolchain.txt -DCPACK_DEBIAN_PACKAGE_ARCHITECTURE=arm64
163 | msa-manifest: -DQT_VERSION=6 -DCMAKE_ASM_FLAGS="-latomic --target=aarch64-linux-gnu" -DCMAKE_C_FLAGS="-latomic --target=aarch64-linux-gnu" -DCMAKE_CXX_FLAGS="-latomic --target=aarch64-linux-gnu" -DCMAKE_TOOLCHAIN_FILE=$PWD/arm64toolchain.txt -DCPACK_DEBIAN_PACKAGE_ARCHITECTURE=arm64
164 | pkg-deps: libc6, ca-certificates, libxcursor1, libxinerama1, libxi6, libxrandr2, qml6-module-qtquick, qml6-module-qtquick-layouts, qml6-module-qtquick-controls, qml6-module-qtquick-window, qml6-module-qtquick-dialogs, qml6-module-qt-labs-settings, qml6-module-qt-labs-folderlistmodel, qml6-module-qtwebengine, qml6-module-qtquick-layouts, qml6-module-qtquick-controls, qml6-module-qtquick-controls, qml6-module-qtquick-dialogs, qml6-module-qt-labs-settings, qml6-module-qt-labs-folderlistmodel, libqt6svg6, libqt6concurrent6, libqt6webenginewidgets6, libzip4, qml6-module-qtqml-workerscript, qml6-module-qt-labs-platform, qml6-module-qtquick-templates, libprotobuf32t64, libpulse0, libatomic1, libsecret-1-0
165 | - name: plucky
166 | container: buildpack-deps:oracular
167 | ignore-failure: true
168 | deps: apt-get update && apt-get install -y --no-install-recommends g++ clang cmake make git ca-certificates libssl-dev libsecret-1-dev libpng-dev libx11-dev libxcursor-dev libxinerama-dev libxi-dev libxrandr-dev libcurl4-openssl-dev libudev-dev libevdev-dev libegl1-mesa-dev libssl-dev libsecret-1-dev qt6-base-dev libqt6opengl6-dev qt6-webengine-dev qt6-webengine-dev-tools qt6-declarative-dev qml6-module-qtquick qml6-module-qtquick-layouts qml6-module-qtquick-controls qml6-module-qtquick-window qml6-module-qtquick-dialogs qml6-module-qt-labs-settings qml6-module-qt-labs-folderlistmodel qml6-module-qtwebengine libssl-dev libsecret-1-dev libcurl4-openssl-dev libuv1-dev libzip-dev libprotobuf-dev protobuf-compiler qt6-base-dev libqt6opengl6-dev qt6-webengine-dev qt6-declarative-dev libqt6svg6-dev qml6-module-qtquick-layouts qml6-module-qtquick-controls qml6-module-qtquick-controls qml6-module-qtquick-dialogs qml6-module-qt-labs-settings qml6-module-qt-labs-folderlistmodel libasound2-dev libpulse-dev libaudio-dev libsndio-dev libpipewire-0.3-dev
169 | generator: DEB
170 | branch:
171 | mcpelauncher-manifest: qt6
172 | mcpelauncher-ui-manifest: qt6
173 | cmakeflags:
174 | msa-manifest: -DQT_VERSION=6
175 | pkg-deps: libc6, ca-certificates, libxcursor1, libxinerama1, libxi6, libxrandr2, qml6-module-qtquick, qml6-module-qtquick-layouts, qml6-module-qtquick-controls, qml6-module-qtquick-window, qml6-module-qtquick-dialogs, qml6-module-qt-labs-settings, qml6-module-qt-labs-folderlistmodel, qml6-module-qtwebengine, qml6-module-qtquick-layouts, qml6-module-qtquick-controls, qml6-module-qtquick-controls, qml6-module-qtquick-dialogs, qml6-module-qt-labs-settings, qml6-module-qt-labs-folderlistmodel, libqt6svg6, libqt6concurrent6, libqt6webenginewidgets6, libzip4, qml6-module-qtqml-workerscript, qml6-module-qt-labs-platform, qml6-module-qtquick-templates, libprotobuf32t64, libsecret-1-0
176 | - name: plucky
177 | container: ubuntu:plucky
178 | ignore-failure: true
179 | deps: |
180 | rm /etc/apt/sources.list.d/ubuntu.sources
181 | echo "deb [arch=amd64,i386] http://archive.ubuntu.com/ubuntu/ plucky main universe multiverse restricted" > /etc/apt/sources.list
182 | echo "deb [arch=amd64,i386] http://archive.ubuntu.com/ubuntu/ plucky-updates main universe multiverse restricted" >> /etc/apt/sources.list
183 | echo "deb [arch=arm64,armhf] http://ports.ubuntu.com/ubuntu-ports/ plucky main universe multiverse restricted" >> /etc/apt/sources.list
184 | echo "deb [arch=arm64,armhf] http://ports.ubuntu.com/ubuntu-ports/ plucky-updates main universe multiverse restricted" >> /etc/apt/sources.list
185 | dpkg --add-architecture arm64 && dpkg --add-architecture armhf && apt update && apt-mark hold linux-libc-dev:amd64 && DEBIAN_FRONTEND=noninteractive apt install -y docker.io libfuse-dev:arm64 wget texinfo apt-transport-https vim-common qemu-user chrpath libstdc++-11-dev:arm64 libatomic1:arm64 wget cmake g++-arm-linux-gnueabihf g++-aarch64-linux-gnu patchelf git cmake pkg-config libssl-dev:arm64 libcurl4-openssl-dev:arm64 libpng-dev:arm64 libx11-dev:arm64 libxcursor-dev:arm64 libxinerama-dev:arm64 libxi-dev:arm64 libxrandr-dev:arm64 libssl-dev:arm64 libudev-dev:arm64 libevdev-dev:arm64 libegl1-mesa-dev:arm64 libgl1-mesa-dev:arm64 libssl-dev:arm64 libuv1-dev:arm64 libzip-dev:arm64 libprotobuf-dev:arm64 protobuf-compiler jq curl binutils desktop-file-utils squashfs-tools libssl-dev:arm64 libpulse-dev:arm64 libsecret-1-dev:arm64 qt6-base-dev:arm64 libqt6opengl6-dev:arm64 qt6-webengine-dev:arm64 qt6-webengine-dev-tools:arm64 qt6-declarative-dev:arm64 qml6-module-qtquick:arm64 qml6-module-qtquick-layouts:arm64 qml6-module-qtquick-controls:arm64 qml6-module-qtquick-window:arm64 qml6-module-qtquick-dialogs:arm64 qml6-module-qt-labs-settings:arm64 qml6-module-qt-labs-folderlistmodel:arm64 qml6-module-qtwebengine:arm64 qt6-base-dev:arm64 libqt6opengl6-dev:arm64 qt6-webengine-dev:arm64 qt6-declarative-dev:arm64 libqt6svg6-dev:arm64 qml6-module-qtquick-layouts:arm64 qml6-module-qtquick-controls:arm64 qml6-module-qtquick-controls:arm64 qml6-module-qtquick-dialogs:arm64 qml6-module-qt-labs-settings:arm64 qml6-module-qt-labs-folderlistmodel:arm64 libasound2-dev:arm64 libpulse-dev:arm64 libaudio-dev:arm64 libsndio-dev:arm64 libpipewire-0.3-dev:arm64
186 | docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
187 | echo "PKG_CONFIG_LIBDIR=/usr/lib/aarch64-linux-gnu/pkgconfig/:/usr/share/pkgconfig" >> $GITHUB_ENV
188 | echo PATH=/usr/lib/aarch64-linux-gnu/qt6/bin/:$PATH >> $GITHUB_PATH
189 | curl -L -O https://raw.githubusercontent.com/ChristopherHX/linux-packaging-scripts/main/arm64toolchain.txt
190 | curl -L https://github.com/llvm/llvm-project/releases/download/llvmorg-15.0.6/clang+llvm-15.0.6-x86_64-linux-gnu-ubuntu-18.04.tar.xz --output llvm.tar.xz
191 | tar --no-same-owner -xf llvm.tar.xz
192 | echo "$PWD/clang+llvm-15.0.6-x86_64-linux-gnu-ubuntu-18.04/bin" >> $GITHUB_PATH
193 | generator: DEB
194 | branch:
195 | mcpelauncher-manifest: qt6
196 | mcpelauncher-ui-manifest: qt6
197 | cmakeflags:
198 | mcpelauncher-manifest: -DCMAKE_ASM_FLAGS="-latomic --target=aarch64-linux-gnu" -DCMAKE_C_FLAGS="-latomic --target=aarch64-linux-gnu" -DCMAKE_CXX_FLAGS="-latomic --target=aarch64-linux-gnu" -DCMAKE_TOOLCHAIN_FILE=$PWD/arm64toolchain.txt -DCPACK_DEBIAN_PACKAGE_ARCHITECTURE=arm64
199 | mcpelauncher-ui-manifest: -DCMAKE_ASM_FLAGS="-latomic --target=aarch64-linux-gnu" -DCMAKE_C_FLAGS="-latomic --target=aarch64-linux-gnu" -DCMAKE_CXX_FLAGS="-latomic --target=aarch64-linux-gnu" -DCMAKE_TOOLCHAIN_FILE=$PWD/arm64toolchain.txt -DCPACK_DEBIAN_PACKAGE_ARCHITECTURE=arm64
200 | msa-manifest: -DQT_VERSION=6 -DCMAKE_ASM_FLAGS="-latomic --target=aarch64-linux-gnu" -DCMAKE_C_FLAGS="-latomic --target=aarch64-linux-gnu" -DCMAKE_CXX_FLAGS="-latomic --target=aarch64-linux-gnu" -DCMAKE_TOOLCHAIN_FILE=$PWD/arm64toolchain.txt -DCPACK_DEBIAN_PACKAGE_ARCHITECTURE=arm64
201 | pkg-deps: libc6, ca-certificates, libxcursor1, libxinerama1, libxi6, libxrandr2, qml6-module-qtquick, qml6-module-qtquick-layouts, qml6-module-qtquick-controls, qml6-module-qtquick-window, qml6-module-qtquick-dialogs, qml6-module-qt-labs-settings, qml6-module-qt-labs-folderlistmodel, qml6-module-qtwebengine, qml6-module-qtquick-layouts, qml6-module-qtquick-controls, qml6-module-qtquick-controls, qml6-module-qtquick-dialogs, qml6-module-qt-labs-settings, qml6-module-qt-labs-folderlistmodel, libqt6svg6, libqt6concurrent6, libqt6webenginewidgets6, libzip4, qml6-module-qtqml-workerscript, qml6-module-qt-labs-platform, qml6-module-qtquick-templates, libprotobuf32t64, libpulse0, libatomic1, libsecret-1-0
202 | - name: bullseye
203 | container: buildpack-deps:bullseye
204 | deps: apt-get update && apt-get install -y --no-install-recommends g++ clang cmake make git ca-certificates libssl-dev libsecret-1-dev libpng-dev libx11-dev libxcursor-dev libxinerama-dev libxi-dev libxrandr-dev libcurl4-openssl-dev libudev-dev libevdev-dev libegl1-mesa-dev libssl-dev libsecret-1-dev libasound2 qtbase5-dev qtwebengine5-dev qtdeclarative5-dev libqt5svg5-dev qml-module-qtquick2 qml-module-qtquick-layouts qml-module-qtquick-controls qml-module-qtquick-controls2 qml-module-qtquick-window2 qml-module-qtquick-dialogs qml-module-qt-labs-settings qml-module-qt-labs-folderlistmodel qml-module-qtwebengine libssl-dev libsecret-1-dev libcurl4-openssl-dev libuv1-dev libzip-dev libprotobuf-dev protobuf-compiler qtbase5-dev qtwebengine5-dev qtdeclarative5-dev libqt5svg5-dev qml-module-qtquick2 qml-module-qtquick-layouts qml-module-qtquick-controls qml-module-qtquick-controls2 qml-module-qtquick-window2 qml-module-qtquick-dialogs qml-module-qt-labs-settings qml-module-qt-labs-folderlistmodel libasound2-dev libpulse-dev libaudio-dev libsndio-dev libpipewire-0.3-dev
205 | generator: DEB
206 | - name: bullseye
207 | container: debian:bullseye
208 | deps: |
209 | dpkg --add-architecture arm64 && dpkg --add-architecture armhf && apt update && DEBIAN_FRONTEND=noninteractive apt install -y docker.io libfuse-dev:arm64 wget texinfo apt-transport-https vim-common qemu-user clang chrpath libstdc++-10-dev:arm64 libatomic1:arm64 wget cmake g++-arm-linux-gnueabihf g++-aarch64-linux-gnu patchelf git cmake pkg-config qtbase5-dev:arm64 qtwebengine5-dev:arm64 libssl-dev:arm64 libcurl4-openssl-dev:arm64 libpng-dev:arm64 libx11-dev:arm64 libxcursor-dev:arm64 libxinerama-dev:arm64 libxi-dev:arm64 libxrandr-dev:arm64 libssl-dev:arm64 libudev-dev:arm64 libevdev-dev:arm64 libegl1-mesa-dev:arm64 libgl1-mesa-dev:arm64 libssl-dev:arm64 libuv1-dev:arm64 libzip-dev:arm64 libprotobuf-dev:arm64 protobuf-compiler qtdeclarative5-dev:arm64 libqt5svg5-dev:arm64 qml-module-qtwebengine:arm64 qml-module-qtquick2:arm64 qml-module-qtquick-layouts:arm64 qml-module-qtquick-controls:arm64 qml-module-qtquick-controls2:arm64 qml-module-qtquick-window2:arm64 qml-module-qtquick-dialogs:arm64 qml-module-qt-labs-settings:arm64 qml-module-qt-labs-folderlistmodel:arm64 jq curl binutils desktop-file-utils squashfs-tools qtdeclarative5-dev-tools:arm64 libssl-dev:arm64 libpulse-dev:arm64 libsecret-1-dev:arm64 libasound2-dev:arm64 libpulse-dev:arm64 libaudio-dev:arm64 libsndio-dev:arm64 libpipewire-0.3-dev:arm64
210 | docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
211 | echo "PKG_CONFIG_LIBDIR=/usr/lib/aarch64-linux-gnu/pkgconfig/:/usr/share/pkgconfig" >> $GITHUB_ENV
212 | echo "/usr/lib/aarch64-linux-gnu/qt5/bin/" >> $GITHUB_PATH
213 | curl -L -O https://raw.githubusercontent.com/ChristopherHX/linux-packaging-scripts/main/arm64toolchain.txt
214 | generator: DEB
215 | cmakeflags:
216 | mcpelauncher-manifest: -DCMAKE_ASM_FLAGS="-latomic --target=aarch64-linux-gnu" -DCMAKE_C_FLAGS="-latomic --target=aarch64-linux-gnu" -DCMAKE_CXX_FLAGS="-latomic --target=aarch64-linux-gnu" -DCMAKE_TOOLCHAIN_FILE=$PWD/arm64toolchain.txt -DCPACK_DEBIAN_PACKAGE_ARCHITECTURE=arm64
217 | mcpelauncher-ui-manifest: -DCMAKE_ASM_FLAGS="-latomic --target=aarch64-linux-gnu" -DCMAKE_C_FLAGS="-latomic --target=aarch64-linux-gnu" -DCMAKE_CXX_FLAGS="-latomic --target=aarch64-linux-gnu" -DCMAKE_TOOLCHAIN_FILE=$PWD/arm64toolchain.txt -DCPACK_DEBIAN_PACKAGE_ARCHITECTURE=arm64
218 | msa-manifest: -DCMAKE_ASM_FLAGS="-latomic --target=aarch64-linux-gnu" -DCMAKE_C_FLAGS="-latomic --target=aarch64-linux-gnu" -DCMAKE_CXX_FLAGS="-latomic --target=aarch64-linux-gnu" -DCMAKE_TOOLCHAIN_FILE=$PWD/arm64toolchain.txt -DCPACK_DEBIAN_PACKAGE_ARCHITECTURE=arm64
219 | pkg-deps: libc6, ca-certificates, libxcursor1, libxinerama1, libxi6, libxrandr2, qml-module-qtquick2, qml-module-qtquick-layouts, qml-module-qtquick-controls, qml-module-qtquick-controls2, qml-module-qtquick-window2, qml-module-qtquick-dialogs, qml-module-qt-labs-settings, qml-module-qt-labs-folderlistmodel, qml-module-qtwebengine, libqt5svg5, libqt5concurrent5, libqt5webenginewidgets5, libzip4, qml-module-qtquick-templates2, libprotobuf23, libpulse0, libatomic1, libsecret-1-0
220 | - name: bullseye
221 | container: debian:bullseye
222 | deps: |
223 | dpkg --add-architecture armhf && dpkg --add-architecture armhf && apt update && DEBIAN_FRONTEND=noninteractive apt install -y docker.io libfuse-dev:armhf wget texinfo apt-transport-https vim-common qemu-user clang chrpath libstdc++-10-dev:armhf libatomic1:armhf wget cmake g++-arm-linux-gnueabihf g++-arm-linux-gnueabihf patchelf git cmake pkg-config qtbase5-dev:armhf qtwebengine5-dev:armhf libssl-dev:armhf libcurl4-openssl-dev:armhf libpng-dev:armhf libx11-dev:armhf libxcursor-dev:armhf libxinerama-dev:armhf libxi-dev:armhf libxrandr-dev:armhf libssl-dev:armhf libudev-dev:armhf libevdev-dev:armhf libegl1-mesa-dev:armhf libgl1-mesa-dev:armhf libssl-dev:armhf libuv1-dev:armhf libzip-dev:armhf libprotobuf-dev:armhf protobuf-compiler qtdeclarative5-dev:armhf libqt5svg5-dev:armhf qml-module-qtwebengine:armhf qml-module-qtquick2:armhf qml-module-qtquick-layouts:armhf qml-module-qtquick-controls:armhf qml-module-qtquick-controls2:armhf qml-module-qtquick-window2:armhf qml-module-qtquick-dialogs:armhf qml-module-qt-labs-settings:armhf qml-module-qt-labs-folderlistmodel:armhf jq curl binutils desktop-file-utils squashfs-tools qtdeclarative5-dev-tools:armhf libssl-dev:armhf libasound2-dev:armhf libpulse-dev:armhf libaudio-dev:armhf libsndio-dev:armhf libpipewire-0.3-dev:armhf
224 | docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
225 | echo "PKG_CONFIG_LIBDIR=/usr/lib/arm-linux-gnueabihf/pkgconfig/:/usr/share/pkgconfig" >> $GITHUB_ENV
226 | echo "/usr/lib/arm-linux-gnueabihf/qt5/bin/" >> $GITHUB_PATH
227 | curl -L -O https://raw.githubusercontent.com/ChristopherHX/linux-packaging-scripts/main/armhftoolchain.txt
228 | generator: DEB
229 | cmakeflags:
230 | mcpelauncher-manifest: -DCMAKE_ASM_FLAGS="-latomic --target=arm-linux-gnueabihf -march=armv7 -mfpu=neon" -DCMAKE_C_FLAGS="-latomic --target=arm-linux-gnueabihf -march=armv7 -mfpu=neon" -DCMAKE_CXX_FLAGS="-latomic --target=arm-linux-gnueabihf -march=armv7 -mfpu=neon" -DCMAKE_TOOLCHAIN_FILE=$PWD/armhftoolchain.txt -DCPACK_DEBIAN_PACKAGE_ARCHITECTURE=armhf
231 | mcpelauncher-ui-manifest: -DCMAKE_ASM_FLAGS="-latomic --target=arm-linux-gnueabihf -march=armv7 -mfpu=neon" -DCMAKE_C_FLAGS="-latomic --target=arm-linux-gnueabihf -march=armv7 -mfpu=neon" -DCMAKE_CXX_FLAGS="-latomic --target=arm-linux-gnueabihf -march=armv7 -mfpu=neon" -DCMAKE_TOOLCHAIN_FILE=$PWD/armhftoolchain.txt -DCPACK_DEBIAN_PACKAGE_ARCHITECTURE=armhf
232 | msa-manifest: -DCMAKE_ASM_FLAGS="-latomic --target=arm-linux-gnueabihf -march=armv7 -mfpu=neon" -DCMAKE_C_FLAGS="-latomic --target=arm-linux-gnueabihf -march=armv7 -mfpu=neon" -DCMAKE_CXX_FLAGS="-latomic --target=arm-linux-gnueabihf -march=armv7 -mfpu=neon" -DCMAKE_TOOLCHAIN_FILE=$PWD/armhftoolchain.txt -DCPACK_DEBIAN_PACKAGE_ARCHITECTURE=armhf
233 | pkg-deps: libc6, ca-certificates, libxcursor1, libxinerama1, libxi6, libxrandr2, qml-module-qtquick2, qml-module-qtquick-layouts, qml-module-qtquick-controls, qml-module-qtquick-controls2, qml-module-qtquick-window2, qml-module-qtquick-dialogs, qml-module-qt-labs-settings, qml-module-qt-labs-folderlistmodel, qml-module-qtwebengine, libqt5svg5, libqt5concurrent5, libqt5webenginewidgets5, libzip4, qml-module-qtquick-templates2, libprotobuf23, libpulse0, libatomic1, libsecret-1-0
234 | - name: bookworm
235 | container: buildpack-deps:bookworm
236 | deps: apt-get update && apt-get install -y --no-install-recommends g++ clang cmake make git ca-certificates libssl-dev libsecret-1-dev libpng-dev libx11-dev libxcursor-dev libxinerama-dev libxi-dev libxrandr-dev libcurl4-openssl-dev libudev-dev libevdev-dev libegl1-mesa-dev libssl-dev libsecret-1-dev libasound2 qt6-base-dev libqt6opengl6-dev qt6-webengine-dev qt6-declarative-dev qml6-module-qtquick qml6-module-qtquick-layouts qml6-module-qtquick-controls qml6-module-qtquick-window qml6-module-qtquick-dialogs qml6-module-qt-labs-settings qml6-module-qt-labs-folderlistmodel qml6-module-qtwebengine libssl-dev libsecret-1-dev libcurl4-openssl-dev libuv1-dev libzip-dev libprotobuf-dev protobuf-compiler qt6-base-dev libqt6opengl6-dev qt6-webengine-dev qt6-declarative-dev libqt6svg6-dev qml6-module-qtquick-layouts qml6-module-qtquick-controls qml6-module-qtquick-controls qml6-module-qtquick-dialogs qml6-module-qt-labs-settings qml6-module-qt-labs-folderlistmodel libasound2-dev libpulse-dev libaudio-dev libsndio-dev libpipewire-0.3-dev
237 | generator: DEB
238 | branch:
239 | mcpelauncher-manifest: qt6
240 | mcpelauncher-ui-manifest: qt6
241 | cmakeflags:
242 | msa-manifest: -DQT_VERSION=6
243 | pkg-deps: libc6, ca-certificates, libxcursor1, libxinerama1, libxi6, libxrandr2, qml6-module-qtquick, qml6-module-qtquick-layouts, qml6-module-qtquick-controls, qml6-module-qtquick-window, qml6-module-qtquick-dialogs, qml6-module-qt-labs-settings, qml6-module-qt-labs-folderlistmodel, qml6-module-qtwebengine, qml6-module-qtquick-layouts, qml6-module-qtquick-controls, qml6-module-qtquick-controls, qml6-module-qtquick-dialogs, qml6-module-qt-labs-settings, qml6-module-qt-labs-folderlistmodel, libqt6svg6, libqt6concurrent6, libqt6webenginewidgets6, libzip4, qml6-module-qtqml-workerscript, qml6-module-qt-labs-platform, qml6-module-qtquick-templates, libprotobuf32, libsecret-1-0
244 | - name: bookworm
245 | container: debian:bookworm
246 | deps: |
247 | dpkg --add-architecture arm64 && dpkg --add-architecture armhf && apt update && apt-mark hold linux-libc-dev:amd64 && DEBIAN_FRONTEND=noninteractive apt install -y docker.io libfuse-dev:arm64 wget texinfo apt-transport-https vim-common qemu-user chrpath libstdc++-11-dev:arm64 libatomic1:arm64 wget cmake g++-arm-linux-gnueabihf g++-aarch64-linux-gnu patchelf git cmake pkg-config libssl-dev:arm64 libcurl4-openssl-dev:arm64 libpng-dev:arm64 libx11-dev:arm64 libxcursor-dev:arm64 libxinerama-dev:arm64 libxi-dev:arm64 libxrandr-dev:arm64 libssl-dev:arm64 libudev-dev:arm64 libevdev-dev:arm64 libegl1-mesa-dev:arm64 libgl1-mesa-dev:arm64 libssl-dev:arm64 libuv1-dev:arm64 libzip-dev:arm64 libprotobuf-dev:arm64 protobuf-compiler jq curl binutils desktop-file-utils squashfs-tools libssl-dev:arm64 libpulse-dev:arm64 libsecret-1-dev:arm64 qt6-base-dev:arm64 libqt6opengl6-dev:arm64 qt6-webengine-dev:arm64 qt6-webengine-dev-tools:arm64 qt6-declarative-dev:arm64 qml6-module-qtquick:arm64 qml6-module-qtquick-layouts:arm64 qml6-module-qtquick-controls:arm64 qml6-module-qtquick-window:arm64 qml6-module-qtquick-dialogs:arm64 qml6-module-qt-labs-settings:arm64 qml6-module-qt-labs-folderlistmodel:arm64 qml6-module-qtwebengine:arm64 qt6-base-dev:arm64 libqt6opengl6-dev:arm64 qt6-webengine-dev:arm64 qt6-declarative-dev:arm64 libqt6svg6-dev:arm64 qml6-module-qtquick-layouts:arm64 qml6-module-qtquick-controls:arm64 qml6-module-qtquick-controls:arm64 qml6-module-qtquick-dialogs:arm64 qml6-module-qt-labs-settings:arm64 qml6-module-qt-labs-folderlistmodel:arm64 libasound2-dev:arm64 libpulse-dev:arm64 libaudio-dev:arm64 libsndio-dev:arm64 libpipewire-0.3-dev:arm64
248 | docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
249 | echo "PKG_CONFIG_LIBDIR=/usr/lib/aarch64-linux-gnu/pkgconfig/:/usr/share/pkgconfig" >> $GITHUB_ENV
250 | echo PATH=/usr/lib/aarch64-linux-gnu/qt6/bin/:$PATH >> $GITHUB_PATH
251 | curl -L -O https://raw.githubusercontent.com/ChristopherHX/linux-packaging-scripts/main/arm64toolchain.txt
252 | curl -L https://github.com/llvm/llvm-project/releases/download/llvmorg-15.0.6/clang+llvm-15.0.6-x86_64-linux-gnu-ubuntu-18.04.tar.xz --output llvm.tar.xz
253 | tar --no-same-owner -xf llvm.tar.xz
254 | echo "$PWD/clang+llvm-15.0.6-x86_64-linux-gnu-ubuntu-18.04/bin" >> $GITHUB_PATH
255 | generator: DEB
256 | branch:
257 | mcpelauncher-manifest: qt6
258 | mcpelauncher-ui-manifest: qt6
259 | cmakeflags:
260 | mcpelauncher-manifest: -DCMAKE_ASM_FLAGS="-latomic --target=aarch64-linux-gnu" -DCMAKE_C_FLAGS="-latomic --target=aarch64-linux-gnu" -DCMAKE_CXX_FLAGS="-latomic --target=aarch64-linux-gnu" -DCMAKE_TOOLCHAIN_FILE=$PWD/arm64toolchain.txt -DCPACK_DEBIAN_PACKAGE_ARCHITECTURE=arm64
261 | mcpelauncher-ui-manifest: -DCMAKE_ASM_FLAGS="-latomic --target=aarch64-linux-gnu" -DCMAKE_C_FLAGS="-latomic --target=aarch64-linux-gnu" -DCMAKE_CXX_FLAGS="-latomic --target=aarch64-linux-gnu" -DCMAKE_TOOLCHAIN_FILE=$PWD/arm64toolchain.txt -DCPACK_DEBIAN_PACKAGE_ARCHITECTURE=arm64
262 | msa-manifest: -DQT_VERSION=6 -DCMAKE_ASM_FLAGS="-latomic --target=aarch64-linux-gnu" -DCMAKE_C_FLAGS="-latomic --target=aarch64-linux-gnu" -DCMAKE_CXX_FLAGS="-latomic --target=aarch64-linux-gnu" -DCMAKE_TOOLCHAIN_FILE=$PWD/arm64toolchain.txt -DCPACK_DEBIAN_PACKAGE_ARCHITECTURE=arm64
263 | pkg-deps: libc6, ca-certificates, libxcursor1, libxinerama1, libxi6, libxrandr2, qml6-module-qtquick, qml6-module-qtquick-layouts, qml6-module-qtquick-controls, qml6-module-qtquick-window, qml6-module-qtquick-dialogs, qml6-module-qt-labs-settings, qml6-module-qt-labs-folderlistmodel, qml6-module-qtwebengine, qml6-module-qtquick-layouts, qml6-module-qtquick-controls, qml6-module-qtquick-controls, qml6-module-qtquick-dialogs, qml6-module-qt-labs-settings, qml6-module-qt-labs-folderlistmodel, libqt6svg6, libqt6concurrent6, libqt6webenginewidgets6, libzip4, qml6-module-qtqml-workerscript, qml6-module-qt-labs-platform, qml6-module-qtquick-templates, libprotobuf32, libpulse0, libatomic1, libsecret-1-0
264 | - name: bookworm
265 | container: debian:bookworm
266 | deps: |
267 | dpkg --add-architecture armhf && dpkg --add-architecture armhf && apt update && apt-mark hold linux-libc-dev:amd64 && DEBIAN_FRONTEND=noninteractive apt install -y docker.io libfuse-dev:armhf wget texinfo apt-transport-https vim-common qemu-user chrpath libstdc++-11-dev:armhf libatomic1:armhf wget cmake g++-arm-linux-gnueabihf g++-arm-linux-gnueabihf patchelf git cmake pkg-config libssl-dev:armhf libcurl4-openssl-dev:armhf libpng-dev:armhf libx11-dev:armhf libxcursor-dev:armhf libxinerama-dev:armhf libxi-dev:armhf libxrandr-dev:armhf libssl-dev:armhf libudev-dev:armhf libevdev-dev:armhf libegl1-mesa-dev:armhf libgl1-mesa-dev:armhf libssl-dev:armhf libuv1-dev:armhf libzip-dev:armhf libprotobuf-dev:armhf protobuf-compiler jq curl binutils desktop-file-utils squashfs-tools libssl-dev:armhf libpulse-dev:armhf qt6-base-dev:armhf libqt6opengl6-dev:armhf qt6-webengine-dev:armhf qt6-webengine-dev-tools:armhf qt6-declarative-dev:armhf qml6-module-qtquick:armhf qml6-module-qtquick-layouts:armhf qml6-module-qtquick-controls:armhf qml6-module-qtquick-window:armhf qml6-module-qtquick-dialogs:armhf qml6-module-qt-labs-settings:armhf qml6-module-qt-labs-folderlistmodel:armhf qml6-module-qtwebengine:armhf qt6-base-dev:armhf libqt6opengl6-dev:armhf qt6-webengine-dev:armhf qt6-declarative-dev:armhf libqt6svg6-dev:armhf qml6-module-qtquick-layouts:armhf qml6-module-qtquick-controls:armhf qml6-module-qtquick-controls:armhf qml6-module-qtquick-dialogs:armhf qml6-module-qt-labs-settings:armhf qml6-module-qt-labs-folderlistmodel:armhf libasound2-dev:armhf libpulse-dev:armhf libaudio-dev:armhf libsndio-dev:armhf libpipewire-0.3-dev:armhf
268 | docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
269 | echo "PKG_CONFIG_LIBDIR=/usr/lib/arm-linux-gnueabihf/pkgconfig/:/usr/share/pkgconfig" >> $GITHUB_ENV
270 | echo PATH=/usr/lib/arm-linux-gnueabihf/qt6/bin/:$PATH >> $GITHUB_PATH
271 | curl -L -O https://raw.githubusercontent.com/ChristopherHX/linux-packaging-scripts/main/armhftoolchain.txt
272 | curl -L https://github.com/llvm/llvm-project/releases/download/llvmorg-15.0.6/clang+llvm-15.0.6-x86_64-linux-gnu-ubuntu-18.04.tar.xz --output llvm.tar.xz
273 | tar --no-same-owner -xf llvm.tar.xz
274 | echo "$PWD/clang+llvm-15.0.6-x86_64-linux-gnu-ubuntu-18.04/bin" >> $GITHUB_PATH
275 | generator: DEB
276 | branch:
277 | mcpelauncher-manifest: qt6
278 | mcpelauncher-ui-manifest: qt6
279 | cmakeflags:
280 | mcpelauncher-manifest: -DCMAKE_ASM_FLAGS="-latomic --target=arm-linux-gnueabihf -march=armv7 -mfpu=neon" -DCMAKE_C_FLAGS="-latomic --target=arm-linux-gnueabihf -march=armv7 -mfpu=neon" -DCMAKE_CXX_FLAGS="-latomic --target=arm-linux-gnueabihf -march=armv7 -mfpu=neon" -DCMAKE_TOOLCHAIN_FILE=$PWD/armhftoolchain.txt -DCPACK_DEBIAN_PACKAGE_ARCHITECTURE=armhf
281 | mcpelauncher-ui-manifest: -DCMAKE_ASM_FLAGS="-latomic --target=arm-linux-gnueabihf -march=armv7 -mfpu=neon" -DCMAKE_C_FLAGS="-latomic --target=arm-linux-gnueabihf -march=armv7 -mfpu=neon" -DCMAKE_CXX_FLAGS="-latomic --target=arm-linux-gnueabihf -march=armv7 -mfpu=neon" -DCMAKE_TOOLCHAIN_FILE=$PWD/armhftoolchain.txt -DCPACK_DEBIAN_PACKAGE_ARCHITECTURE=armhf
282 | msa-manifest: -DQT_VERSION=6 -DCMAKE_ASM_FLAGS="-latomic --target=arm-linux-gnueabihf -march=armv7 -mfpu=neon" -DCMAKE_C_FLAGS="-latomic --target=arm-linux-gnueabihf -march=armv7 -mfpu=neon" -DCMAKE_CXX_FLAGS="-latomic --target=arm-linux-gnueabihf -march=armv7 -mfpu=neon" -DCMAKE_TOOLCHAIN_FILE=$PWD/armhftoolchain.txt -DCPACK_DEBIAN_PACKAGE_ARCHITECTURE=armhf
283 | pkg-deps: libc6, ca-certificates, libxcursor1, libxinerama1, libxi6, libxrandr2, qml6-module-qtquick, qml6-module-qtquick-layouts, qml6-module-qtquick-controls, qml6-module-qtquick-window, qml6-module-qtquick-dialogs, qml6-module-qt-labs-settings, qml6-module-qt-labs-folderlistmodel, qml6-module-qtwebengine, qml6-module-qtquick-layouts, qml6-module-qtquick-controls, qml6-module-qtquick-controls, qml6-module-qtquick-dialogs, qml6-module-qt-labs-settings, qml6-module-qt-labs-folderlistmodel, libqt6svg6, libqt6concurrent6, libqt6webenginewidgets6, libzip4, qml6-module-qtqml-workerscript, qml6-module-qt-labs-platform, qml6-module-qtquick-templates, libprotobuf32, libpulse0, libatomic1, libsecret-1-0
284 | - name: fedora-38
285 | container: fedora:38
286 | ignore-failure: true # Deprecated
287 | deps: dnf install -y gcc-c++ clang cmake make git ca-certificates libstdc++ glibc-devel libpng-devel zlib-devel libX11-devel libXcursor-devel libXi-devel libXinerama-devel libXrandr-devel libcurl-devel systemd-devel libevdev-devel mesa-libEGL-devel alsa-lib pulseaudio-libs mesa-dri-drivers systemd-devel libXtst-devel openssl-devel qt6-qtbase-devel qt6-qtwebengine-devel qt6-qtdeclarative-devel qt6-qtsvg-devel libuv-devel libzip-devel protobuf-devel protobuf-compiler qt6-qtbase-devel qt6-qtwebengine-devel qt6-qtdeclarative-devel qt6-qtsvg-devel fedora-packager rpmdevtools alsa-lib-devel pulseaudio-libs-devel nas-devel pipewire-devel libX11-devel libXext-devel libXrandr-devel libXcursor-devel libXfixes-devel libXi-devel libXScrnSaver-devel dbus-devel ibus-devel fcitx-devel systemd-devel mesa-libGL-devel libxkbcommon-devel mesa-libGLES-devel mesa-libEGL-devel vulkan-devel wayland-devel wayland-protocols-devel libdrm-devel mesa-libgbm-devel libdecor-devel pipewire-jack-audio-connection-kit-devel wayland-devel libxkbcommon-devel wayland-protocols-devel extra-cmake-modules libsecret-devel
288 | generator: RPM
289 | branch:
290 | mcpelauncher-manifest: qt6
291 | mcpelauncher-ui-manifest: qt6
292 | cmakeflags:
293 | msa-manifest: -DQT_VERSION=6
294 | mcpelauncher-manifest: -DCURL_EXT_EXTRA_OPTIONS="-DCMAKE_INSTALL_LIBDIR=lib"
295 | - name: fedora-38
296 | label: ubuntu-24.04-arm
297 | container: fedora:38
298 | ignore-failure: true # Deprecated
299 | deps: dnf install -y gcc-c++ clang cmake make git ca-certificates libstdc++ glibc-devel libpng-devel zlib-devel libX11-devel libXcursor-devel libXi-devel libXinerama-devel libXrandr-devel libcurl-devel systemd-devel libevdev-devel mesa-libEGL-devel alsa-lib pulseaudio-libs mesa-dri-drivers systemd-devel libXtst-devel openssl-devel qt6-qtbase-devel qt6-qtwebengine-devel qt6-qtdeclarative-devel qt6-qtsvg-devel libuv-devel libzip-devel protobuf-devel protobuf-compiler qt6-qtbase-devel qt6-qtwebengine-devel qt6-qtdeclarative-devel qt6-qtsvg-devel fedora-packager rpmdevtools alsa-lib-devel pulseaudio-libs-devel nas-devel pipewire-devel libX11-devel libXext-devel libXrandr-devel libXcursor-devel libXfixes-devel libXi-devel libXScrnSaver-devel dbus-devel ibus-devel fcitx-devel systemd-devel mesa-libGL-devel libxkbcommon-devel mesa-libGLES-devel mesa-libEGL-devel vulkan-devel wayland-devel wayland-protocols-devel libdrm-devel mesa-libgbm-devel libdecor-devel pipewire-jack-audio-connection-kit-devel wayland-devel libxkbcommon-devel wayland-protocols-devel extra-cmake-modules libsecret-devel
300 | generator: RPM
301 | branch:
302 | mcpelauncher-manifest: qt6
303 | mcpelauncher-ui-manifest: qt6
304 | cmakeflags:
305 | msa-manifest: -DQT_VERSION=6
306 | mcpelauncher-manifest: -DCURL_EXT_EXTRA_OPTIONS="-DCMAKE_INSTALL_LIBDIR=lib"
307 | - name: fedora-39
308 | container: fedora:39
309 | deps: dnf install -y gcc-c++ clang cmake make git ca-certificates libstdc++ glibc-devel libpng-devel zlib-devel libX11-devel libXcursor-devel libXi-devel libXinerama-devel libXrandr-devel libcurl-devel systemd-devel libevdev-devel mesa-libEGL-devel alsa-lib pulseaudio-libs mesa-dri-drivers systemd-devel libXtst-devel openssl-devel qt6-qtbase-devel qt6-qtwebengine-devel qt6-qtdeclarative-devel qt6-qtsvg-devel libuv-devel libzip-devel protobuf-devel protobuf-compiler qt6-qtbase-devel qt6-qtwebengine-devel qt6-qtdeclarative-devel qt6-qtsvg-devel fedora-packager rpmdevtools alsa-lib-devel pulseaudio-libs-devel nas-devel pipewire-devel libX11-devel libXext-devel libXrandr-devel libXcursor-devel libXfixes-devel libXi-devel libXScrnSaver-devel dbus-devel ibus-devel fcitx-devel systemd-devel mesa-libGL-devel libxkbcommon-devel mesa-libGLES-devel mesa-libEGL-devel vulkan-devel wayland-devel wayland-protocols-devel libdrm-devel mesa-libgbm-devel libdecor-devel pipewire-jack-audio-connection-kit-devel wayland-devel libxkbcommon-devel wayland-protocols-devel extra-cmake-modules libsecret-devel
310 | generator: RPM
311 | branch:
312 | mcpelauncher-manifest: qt6
313 | mcpelauncher-ui-manifest: qt6
314 | cmakeflags:
315 | msa-manifest: -DQT_VERSION=6
316 | mcpelauncher-manifest: -DCURL_EXT_EXTRA_OPTIONS="-DCMAKE_INSTALL_LIBDIR=lib"
317 | - name: fedora-39
318 | label: ubuntu-24.04-arm
319 | container: fedora:39
320 | deps: dnf install -y gcc-c++ clang cmake make git ca-certificates libstdc++ glibc-devel libpng-devel zlib-devel libX11-devel libXcursor-devel libXi-devel libXinerama-devel libXrandr-devel libcurl-devel systemd-devel libevdev-devel mesa-libEGL-devel alsa-lib pulseaudio-libs mesa-dri-drivers systemd-devel libXtst-devel openssl-devel qt6-qtbase-devel qt6-qtwebengine-devel qt6-qtdeclarative-devel qt6-qtsvg-devel libuv-devel libzip-devel protobuf-devel protobuf-compiler qt6-qtbase-devel qt6-qtwebengine-devel qt6-qtdeclarative-devel qt6-qtsvg-devel fedora-packager rpmdevtools alsa-lib-devel pulseaudio-libs-devel nas-devel pipewire-devel libX11-devel libXext-devel libXrandr-devel libXcursor-devel libXfixes-devel libXi-devel libXScrnSaver-devel dbus-devel ibus-devel fcitx-devel systemd-devel mesa-libGL-devel libxkbcommon-devel mesa-libGLES-devel mesa-libEGL-devel vulkan-devel wayland-devel wayland-protocols-devel libdrm-devel mesa-libgbm-devel libdecor-devel pipewire-jack-audio-connection-kit-devel wayland-devel libxkbcommon-devel wayland-protocols-devel extra-cmake-modules libsecret-devel
321 | generator: RPM
322 | branch:
323 | mcpelauncher-manifest: qt6
324 | mcpelauncher-ui-manifest: qt6
325 | cmakeflags:
326 | msa-manifest: -DQT_VERSION=6
327 | mcpelauncher-manifest: -DCURL_EXT_EXTRA_OPTIONS="-DCMAKE_INSTALL_LIBDIR=lib"
328 | - name: fedora-40
329 | ignore-failure: true
330 | container: fedora:40
331 | deps: dnf install -y gcc-c++ clang cmake make git ca-certificates libstdc++ glibc-devel libpng-devel zlib-devel libX11-devel libXcursor-devel libXi-devel libXinerama-devel libXrandr-devel libcurl-devel systemd-devel libevdev-devel mesa-libEGL-devel alsa-lib pulseaudio-libs mesa-dri-drivers systemd-devel libXtst-devel openssl-devel qt6-qtbase-devel qt6-qtwebengine-devel qt6-qtdeclarative-devel qt6-qtsvg-devel libuv-devel libzip-devel protobuf-devel protobuf-compiler qt6-qtbase-devel qt6-qtwebengine-devel qt6-qtdeclarative-devel qt6-qtsvg-devel fedora-packager rpmdevtools alsa-lib-devel pulseaudio-libs-devel nas-devel pipewire-devel libX11-devel libXext-devel libXrandr-devel libXcursor-devel libXfixes-devel libXi-devel libXScrnSaver-devel dbus-devel ibus-devel fcitx-devel systemd-devel mesa-libGL-devel libxkbcommon-devel mesa-libGLES-devel mesa-libEGL-devel vulkan-devel wayland-devel wayland-protocols-devel libdrm-devel mesa-libgbm-devel libdecor-devel pipewire-jack-audio-connection-kit-devel wayland-devel libxkbcommon-devel wayland-protocols-devel extra-cmake-modules libsecret-devel
332 | generator: RPM
333 | branch:
334 | mcpelauncher-manifest: qt6
335 | mcpelauncher-ui-manifest: qt6
336 | cmakeflags:
337 | msa-manifest: -DQT_VERSION=6
338 | mcpelauncher-manifest: -DCURL_EXT_EXTRA_OPTIONS="-DCMAKE_INSTALL_LIBDIR=lib"
339 | - name: fedora-40
340 | ignore-failure: true
341 | container:
342 | image: fedora:39
343 | options: --privileged --cap-add=SYS_ADMIN
344 | deps: |
345 | dnf install -y dnf-plugins-core
346 | dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo
347 | dnf install -y docker-ce-cli clang cmake make git ca-certificates fedora-packager rpmdevtools which lld
348 | docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
349 | CONTAINER="$(docker run --platform linux/arm64 --rm -d fedora:40 tail -f /dev/null)"
350 | mkdir fedora-sysroot
351 | docker cp -a "$CONTAINER:/" - | tar -x -C "$PWD/fedora-sysroot/"
352 | docker stop "$CONTAINER"
353 | dnf --installroot="$PWD/fedora-sysroot/" --forcearch=aarch64 --releasever=40 -y install gcc-c++ clang cmake make git ca-certificates libstdc++ glibc-devel libpng-devel zlib-devel libX11-devel libXcursor-devel libXi-devel libXinerama-devel libXrandr-devel libcurl-devel systemd-devel libevdev-devel mesa-libEGL-devel alsa-lib pulseaudio-libs mesa-dri-drivers systemd-devel libXtst-devel openssl-devel qt6-qtbase-devel qt6-qtwebengine-devel qt6-qtdeclarative-devel qt6-qtsvg-devel libuv-devel libzip-devel protobuf-devel protobuf-compiler qt6-qtbase-devel qt6-qtwebengine-devel qt6-qtdeclarative-devel qt6-qtsvg-devel fedora-packager rpmdevtools pulseaudio-libs-devel alsa-lib-devel pulseaudio-libs-devel nas-devel pipewire-devel libX11-devel libXext-devel libXrandr-devel libXcursor-devel libXfixes-devel libXi-devel libXScrnSaver-devel dbus-devel ibus-devel fcitx-devel systemd-devel mesa-libGL-devel libxkbcommon-devel mesa-libGLES-devel mesa-libEGL-devel vulkan-devel wayland-devel wayland-protocols-devel libdrm-devel mesa-libgbm-devel libdecor-devel pipewire-jack-audio-connection-kit-devel wayland-devel libxkbcommon-devel wayland-protocols-devel extra-cmake-modules libsecret-devel
354 | ln -s "$PWD/fedora-sysroot/lib/ld-linux-aarch64.so.1" /lib/ld-linux-aarch64.so.1
355 | mkdir -p /usr/lib/rpm/
356 | mount --bind "$PWD/fedora-sysroot/usr/lib/rpm/" /usr/lib/rpm/
357 | mkdir -p /var/lib/rpm/
358 | mount --bind "$PWD/fedora-sysroot/var/lib/rpm/" /var/lib/rpm/
359 | mkdir -p /usr/lib/sysimage/rpm/
360 | mount --bind "$PWD/fedora-sysroot/usr/lib/sysimage/rpm/" /usr/lib/sysimage/rpm/
361 | echo "PATH=$PATH:$PWD/fedora-sysroot/bin:$PWD/fedora-sysroot/usr/bin" >> $GITHUB_ENV
362 | echo "LD_LIBRARY_PATH=$PWD/fedora-sysroot/lib64:$PWD/fedora-sysroot/lib64/libproxy" >> $GITHUB_ENV
363 | echo "PKG_CONFIG_LIBDIR=$PWD/fedora-sysroot/usr/lib64/pkgconfig:$PWD/fedora-sysroot/usr/share/pkgconfig" >> $GITHUB_ENV
364 | echo "PKG_CONFIG_SYSROOT_DIR=$PWD/fedora-sysroot" >> $GITHUB_ENV
365 | cat > toolchain.txt << EOF
366 | set(CMAKE_SYSTEM_NAME Linux)
367 | set(CMAKE_SYSROOT $PWD/fedora-sysroot)
368 | set(CMAKE_SYSTEM_PROCESSOR aarch64)
369 | set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM BOTH)
370 | set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
371 | set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
372 | set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
373 | EOF
374 | generator: RPM
375 | branch:
376 | mcpelauncher-manifest: qt6
377 | mcpelauncher-ui-manifest: qt6
378 | cmakeflags:
379 | msa-manifest: -DQT_VERSION=6 -DCMAKE_C_FLAGS="--target=aarch64-linux-gnu -fuse-ld=lld" -DCMAKE_CXX_FLAGS="--target=aarch64-linux-gnu -fuse-ld=lld --std=c++17" -DCMAKE_TOOLCHAIN_FILE="$PWD/toolchain.txt" -DCMAKE_MAKE_PROGRAM="$(which make)" -DCPACK_RPM_PACKAGE_ARCHITECTURE=aarch64
380 | mcpelauncher-manifest: -DCURL_EXT_EXTRA_OPTIONS="-DCMAKE_INSTALL_LIBDIR=lib" -DCMAKE_C_FLAGS="--target=aarch64-linux-gnu -fuse-ld=lld" -DCMAKE_CXX_FLAGS="--target=aarch64-linux-gnu -fuse-ld=lld --std=c++17" -DCMAKE_TOOLCHAIN_FILE="$PWD/toolchain.txt" -DCMAKE_MAKE_PROGRAM="$(which make)" -DCPACK_RPM_PACKAGE_ARCHITECTURE=aarch64
381 | mcpelauncher-ui-manifest: -DCMAKE_C_FLAGS="--target=aarch64-linux-gnu -fuse-ld=lld" -DCMAKE_CXX_FLAGS="--target=aarch64-linux-gnu -fuse-ld=lld --std=c++17" -DCMAKE_TOOLCHAIN_FILE="$PWD/toolchain.txt" -DCMAKE_MAKE_PROGRAM="$(which make)" -DCPACK_RPM_PACKAGE_ARCHITECTURE=aarch64
382 | - name: fedora-41
383 | ignore-failure: true
384 | container: fedora:41
385 | deps: dnf install -y gcc-c++ clang cmake make git ca-certificates libstdc++ glibc-devel libpng-devel zlib-devel libX11-devel libXcursor-devel libXi-devel libXinerama-devel libXrandr-devel libcurl-devel systemd-devel libevdev-devel mesa-libEGL-devel alsa-lib pulseaudio-libs mesa-dri-drivers systemd-devel libXtst-devel openssl-devel qt6-qtbase-devel qt6-qtwebengine-devel qt6-qtdeclarative-devel qt6-qtsvg-devel libuv-devel libzip-devel protobuf-devel protobuf-compiler qt6-qtbase-devel qt6-qtwebengine-devel qt6-qtdeclarative-devel qt6-qtsvg-devel fedora-packager rpmdevtools alsa-lib-devel pulseaudio-libs-devel nas-devel pipewire-devel libX11-devel libXext-devel libXrandr-devel libXcursor-devel libXfixes-devel libXi-devel libXScrnSaver-devel dbus-devel ibus-devel fcitx-devel systemd-devel mesa-libGL-devel libxkbcommon-devel mesa-libGLES-devel mesa-libEGL-devel vulkan-devel wayland-devel wayland-protocols-devel libdrm-devel mesa-libgbm-devel libdecor-devel pipewire-jack-audio-connection-kit-devel wayland-devel libxkbcommon-devel wayland-protocols-devel extra-cmake-modules libsecret-devel
386 | generator: RPM
387 | branch:
388 | mcpelauncher-manifest: qt6
389 | mcpelauncher-ui-manifest: qt6
390 | cmakeflags:
391 | msa-manifest: -DQT_VERSION=6
392 | mcpelauncher-manifest: -DCURL_EXT_EXTRA_OPTIONS="-DCMAKE_INSTALL_LIBDIR=lib"
393 | - name: fedora-41
394 | ignore-failure: true
395 | container:
396 | image: fedora:41
397 | options: --privileged --cap-add=SYS_ADMIN
398 | deps: |
399 | dnf install -y dnf-plugins-core
400 | dnf config-manager addrepo --from-repofile=https://download.docker.com/linux/fedora/docker-ce.repo
401 | dnf install -y docker-ce-cli clang cmake make git ca-certificates fedora-packager rpmdevtools which lld
402 | docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
403 | CONTAINER="$(docker run --platform linux/arm64 --rm -d fedora:41 tail -f /dev/null)"
404 | mkdir fedora-sysroot
405 | docker cp -a "$CONTAINER:/" - | tar -x -C "$PWD/fedora-sysroot/"
406 | docker stop "$CONTAINER"
407 | dnf --installroot="$PWD/fedora-sysroot/" --forcearch=aarch64 --releasever=41 -y install gcc-c++ clang cmake make git ca-certificates libstdc++ glibc-devel libpng-devel zlib-devel libX11-devel libXcursor-devel libXi-devel libXinerama-devel libXrandr-devel libcurl-devel systemd-devel libevdev-devel mesa-libEGL-devel alsa-lib pulseaudio-libs mesa-dri-drivers systemd-devel libXtst-devel openssl-devel qt6-qtbase-devel qt6-qtwebengine-devel qt6-qtdeclarative-devel qt6-qtsvg-devel libuv-devel libzip-devel protobuf-devel protobuf-compiler qt6-qtbase-devel qt6-qtwebengine-devel qt6-qtdeclarative-devel qt6-qtsvg-devel fedora-packager rpmdevtools pulseaudio-libs-devel alsa-lib-devel pulseaudio-libs-devel nas-devel pipewire-devel libX11-devel libXext-devel libXrandr-devel libXcursor-devel libXfixes-devel libXi-devel libXScrnSaver-devel dbus-devel ibus-devel fcitx-devel systemd-devel mesa-libGL-devel libxkbcommon-devel mesa-libGLES-devel mesa-libEGL-devel vulkan-devel wayland-devel wayland-protocols-devel libdrm-devel mesa-libgbm-devel libdecor-devel pipewire-jack-audio-connection-kit-devel wayland-devel libxkbcommon-devel wayland-protocols-devel extra-cmake-modules libsecret-devel
408 | ln -s "$PWD/fedora-sysroot/lib/ld-linux-aarch64.so.1" /lib/ld-linux-aarch64.so.1
409 | mkdir -p /usr/lib/rpm/
410 | mount --bind "$PWD/fedora-sysroot/usr/lib/rpm/" /usr/lib/rpm/
411 | mkdir -p /var/lib/rpm/
412 | mount --bind "$PWD/fedora-sysroot/var/lib/rpm/" /var/lib/rpm/
413 | mkdir -p /usr/lib/sysimage/rpm/
414 | mount --bind "$PWD/fedora-sysroot/usr/lib/sysimage/rpm/" /usr/lib/sysimage/rpm/
415 | echo "PATH=$PATH:$PWD/fedora-sysroot/bin:$PWD/fedora-sysroot/usr/bin" >> $GITHUB_ENV
416 | echo "LD_LIBRARY_PATH=$PWD/fedora-sysroot/lib64:$PWD/fedora-sysroot/lib64/libproxy" >> $GITHUB_ENV
417 | echo "PKG_CONFIG_LIBDIR=$PWD/fedora-sysroot/usr/lib64/pkgconfig:$PWD/fedora-sysroot/usr/share/pkgconfig" >> $GITHUB_ENV
418 | echo "PKG_CONFIG_SYSROOT_DIR=$PWD/fedora-sysroot" >> $GITHUB_ENV
419 | cat > toolchain.txt << EOF
420 | set(CMAKE_SYSTEM_NAME Linux)
421 | set(CMAKE_SYSROOT $PWD/fedora-sysroot)
422 | set(CMAKE_SYSTEM_PROCESSOR aarch64)
423 | set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM BOTH)
424 | set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
425 | set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
426 | set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
427 | EOF
428 | generator: RPM
429 | branch:
430 | mcpelauncher-manifest: qt6
431 | mcpelauncher-ui-manifest: qt6
432 | cmakeflags:
433 | msa-manifest: -DQT_VERSION=6 -DCMAKE_C_FLAGS="--target=aarch64-linux-gnu -fclang-abi-compat=17 -fuse-ld=lld" -DCMAKE_CXX_FLAGS="--target=aarch64-linux-gnu -fclang-abi-compat=17 -fuse-ld=lld --std=c++17" -DCMAKE_TOOLCHAIN_FILE="$PWD/toolchain.txt" -DCMAKE_MAKE_PROGRAM="$(which make)" -DCPACK_RPM_PACKAGE_ARCHITECTURE=aarch64
434 | mcpelauncher-manifest: -DCURL_EXT_EXTRA_OPTIONS="-DCMAKE_INSTALL_LIBDIR=lib" -DCMAKE_C_FLAGS="--target=aarch64-linux-gnu -fclang-abi-compat=17 -fuse-ld=lld" -DCMAKE_CXX_FLAGS="--target=aarch64-linux-gnu -fclang-abi-compat=17 -fuse-ld=lld --std=c++17" -DCMAKE_TOOLCHAIN_FILE="$PWD/toolchain.txt" -DCMAKE_MAKE_PROGRAM="$(which make)" -DCPACK_RPM_PACKAGE_ARCHITECTURE=aarch64
435 | mcpelauncher-ui-manifest: -DCMAKE_C_FLAGS="--target=aarch64-linux-gnu -fclang-abi-compat=17 -fuse-ld=lld" -DCMAKE_CXX_FLAGS="--target=aarch64-linux-gnu -fclang-abi-compat=17 -fuse-ld=lld --std=c++17" -DCMAKE_TOOLCHAIN_FILE="$PWD/toolchain.txt" -DCMAKE_MAKE_PROGRAM="$(which make)" -DCPACK_RPM_PACKAGE_ARCHITECTURE=aarch64
436 | - name: fedora-42
437 | ignore-failure: true
438 | container: fedora:42
439 | deps: dnf install -y gcc-c++ clang cmake make git ca-certificates libstdc++ glibc-devel libpng-devel zlib-devel libX11-devel libXcursor-devel libXi-devel libXinerama-devel libXrandr-devel libcurl-devel systemd-devel libevdev-devel mesa-libEGL-devel alsa-lib pulseaudio-libs mesa-dri-drivers systemd-devel libXtst-devel openssl-devel qt6-qtbase-devel qt6-qtwebengine-devel qt6-qtdeclarative-devel qt6-qtsvg-devel libuv-devel libzip-devel protobuf-devel protobuf-compiler qt6-qtbase-devel qt6-qtwebengine-devel qt6-qtdeclarative-devel qt6-qtsvg-devel fedora-packager rpmdevtools alsa-lib-devel pulseaudio-libs-devel nas-devel pipewire-devel libX11-devel libXext-devel libXrandr-devel libXcursor-devel libXfixes-devel libXi-devel libXScrnSaver-devel dbus-devel ibus-devel fcitx-devel systemd-devel mesa-libGL-devel libxkbcommon-devel mesa-libGLES-devel mesa-libEGL-devel vulkan-devel wayland-devel wayland-protocols-devel libdrm-devel mesa-libgbm-devel libdecor-devel pipewire-jack-audio-connection-kit-devel wayland-devel libxkbcommon-devel wayland-protocols-devel extra-cmake-modules libsecret-devel
440 | generator: RPM
441 | branch:
442 | mcpelauncher-manifest: qt6
443 | mcpelauncher-ui-manifest: qt6
444 | cmakeflags:
445 | msa-manifest: -DQT_VERSION=6
446 | mcpelauncher-manifest: -DCURL_EXT_EXTRA_OPTIONS="-DCMAKE_INSTALL_LIBDIR=lib"
447 | - name: fedora-42
448 | ignore-failure: true
449 | container:
450 | image: fedora:42
451 | options: --privileged --cap-add=SYS_ADMIN
452 | deps: |
453 | dnf install -y dnf-plugins-core
454 | dnf config-manager addrepo --from-repofile=https://download.docker.com/linux/fedora/docker-ce.repo
455 | dnf install -y docker-ce-cli clang cmake make git ca-certificates fedora-packager rpmdevtools which lld
456 | docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
457 | CONTAINER="$(docker run --platform linux/arm64 --rm -d fedora:42 tail -f /dev/null)"
458 | mkdir fedora-sysroot
459 | docker cp -a "$CONTAINER:/" - | tar -x -C "$PWD/fedora-sysroot/"
460 | docker stop "$CONTAINER"
461 | dnf --installroot="$PWD/fedora-sysroot/" --forcearch=aarch64 --releasever=42 -y install gcc-c++ clang cmake make git ca-certificates libstdc++ glibc-devel libpng-devel zlib-devel libX11-devel libXcursor-devel libXi-devel libXinerama-devel libXrandr-devel libcurl-devel systemd-devel libevdev-devel mesa-libEGL-devel alsa-lib pulseaudio-libs mesa-dri-drivers systemd-devel libXtst-devel openssl-devel qt6-qtbase-devel qt6-qtwebengine-devel qt6-qtdeclarative-devel qt6-qtsvg-devel libuv-devel libzip-devel protobuf-devel protobuf-compiler qt6-qtbase-devel qt6-qtwebengine-devel qt6-qtdeclarative-devel qt6-qtsvg-devel fedora-packager rpmdevtools pulseaudio-libs-devel alsa-lib-devel pulseaudio-libs-devel nas-devel pipewire-devel libX11-devel libXext-devel libXrandr-devel libXcursor-devel libXfixes-devel libXi-devel libXScrnSaver-devel dbus-devel ibus-devel fcitx-devel systemd-devel mesa-libGL-devel libxkbcommon-devel mesa-libGLES-devel mesa-libEGL-devel vulkan-devel wayland-devel wayland-protocols-devel libdrm-devel mesa-libgbm-devel libdecor-devel pipewire-jack-audio-connection-kit-devel wayland-devel libxkbcommon-devel wayland-protocols-devel extra-cmake-modules libsecret-devel
462 | ln -s "$PWD/fedora-sysroot/lib/ld-linux-aarch64.so.1" /lib/ld-linux-aarch64.so.1
463 | mkdir -p /usr/lib/rpm/
464 | mount --bind "$PWD/fedora-sysroot/usr/lib/rpm/" /usr/lib/rpm/
465 | mkdir -p /var/lib/rpm/
466 | mount --bind "$PWD/fedora-sysroot/var/lib/rpm/" /var/lib/rpm/
467 | mkdir -p /usr/lib/sysimage/rpm/
468 | mount --bind "$PWD/fedora-sysroot/usr/lib/sysimage/rpm/" /usr/lib/sysimage/rpm/
469 | echo "PATH=$PATH:$PWD/fedora-sysroot/bin:$PWD/fedora-sysroot/usr/bin" >> $GITHUB_ENV
470 | echo "LD_LIBRARY_PATH=$PWD/fedora-sysroot/lib64:$PWD/fedora-sysroot/lib64/libproxy" >> $GITHUB_ENV
471 | echo "PKG_CONFIG_LIBDIR=$PWD/fedora-sysroot/usr/lib64/pkgconfig:$PWD/fedora-sysroot/usr/share/pkgconfig" >> $GITHUB_ENV
472 | echo "PKG_CONFIG_SYSROOT_DIR=$PWD/fedora-sysroot" >> $GITHUB_ENV
473 | cat > toolchain.txt << EOF
474 | set(CMAKE_SYSTEM_NAME Linux)
475 | set(CMAKE_SYSROOT $PWD/fedora-sysroot)
476 | set(CMAKE_SYSTEM_PROCESSOR aarch64)
477 | set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM BOTH)
478 | set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
479 | set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
480 | set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
481 | EOF
482 | generator: RPM
483 | branch:
484 | mcpelauncher-manifest: qt6
485 | mcpelauncher-ui-manifest: qt6
486 | cmakeflags:
487 | msa-manifest: -DQT_VERSION=6 -DCMAKE_C_FLAGS="--target=aarch64-linux-gnu -fclang-abi-compat=17 -fuse-ld=lld" -DCMAKE_CXX_FLAGS="--target=aarch64-linux-gnu -fclang-abi-compat=17 -fuse-ld=lld --std=c++17" -DCMAKE_TOOLCHAIN_FILE="$PWD/toolchain.txt" -DCMAKE_MAKE_PROGRAM="$(which make)" -DCPACK_RPM_PACKAGE_ARCHITECTURE=aarch64
488 | mcpelauncher-manifest: -DCURL_EXT_EXTRA_OPTIONS="-DCMAKE_INSTALL_LIBDIR=lib" -DCMAKE_C_FLAGS="--target=aarch64-linux-gnu -fclang-abi-compat=17 -fuse-ld=lld" -DCMAKE_CXX_FLAGS="--target=aarch64-linux-gnu -fclang-abi-compat=17 -fuse-ld=lld --std=c++17" -DCMAKE_TOOLCHAIN_FILE="$PWD/toolchain.txt" -DCMAKE_MAKE_PROGRAM="$(which make)" -DCPACK_RPM_PACKAGE_ARCHITECTURE=aarch64
489 | mcpelauncher-ui-manifest: -DCMAKE_C_FLAGS="--target=aarch64-linux-gnu -fclang-abi-compat=17 -fuse-ld=lld" -DCMAKE_CXX_FLAGS="--target=aarch64-linux-gnu -fclang-abi-compat=17 -fuse-ld=lld --std=c++17" -DCMAKE_TOOLCHAIN_FILE="$PWD/toolchain.txt" -DCMAKE_MAKE_PROGRAM="$(which make)" -DCPACK_RPM_PACKAGE_ARCHITECTURE=aarch64
490 | glfw:
491 | - true
492 | - false
493 | # We are cross compiling so we have to set the ca bundle path or stop building curl
494 | curlflags:
495 | - DEB: -DCURL_EXT_EXTRA_OPTIONS="-DCURL_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt"
496 | RPM: -DCURL_EXT_EXTRA_OPTIONS="-DCURL_CA_BUNDLE=/etc/pki/tls/certs/ca-bundle.crt"
497 | include:
498 | - cmakeflags:
499 | mcpelauncher-manifest: -DENABLE_DEV_PATHS=OFF
500 | mcpelauncher-ui-manifest: -DLAUNCHER_VERSION_NAME="${{ inputs.version }}.${{ github.run_id }}.${{ github.run_attempt }}" -DLAUNCHER_VERSION_CODE="${{ github.run_id }}" -DLAUNCHER_CHANGE_LOG="Launcher ${{ inputs.version }}
${{ inputs.changelog }}" -DLAUNCHER_VERSIONDB_URL=https://raw.githubusercontent.com/minecraft-linux/mcpelauncher-versiondb/${{ inputs.versionsdbremote }} -DLAUNCHER_DISABLE_DEV_MODE=ON
501 | msa-manifest: -DENABLE_MSA_QT_UI=ON -DMSA_UI_PATH_DEV=OFF
502 | exclude:
503 | - glfw: true
504 | repo: mcpelauncher-ui-manifest
505 | - glfw: true
506 | repo: msa-manifest
507 |
508 | container: ${{ matrix.platform.container}}
509 | env:
510 | CC: clang
511 | CXX: clang++
512 | steps:
513 | - name: Install Deps
514 | run: ${{ matrix.platform.deps }}
515 | shell: bash
516 | - name: Get Sources
517 | run: |
518 | if [[ "$SHA" = "" ]]
519 | then
520 | git clone --recursive https://github.com/minecraft-linux/${{ matrix.repo }} mcpelauncher ${{ matrix.platform.branch[matrix.repo] && format('-b {0}', matrix.platform.branch[matrix.repo]) }}
521 | else
522 | mkdir mcpelauncher
523 | git -C mcpelauncher init
524 | git -C mcpelauncher remote add origin https://github.com/minecraft-linux/${{ matrix.repo }}
525 | git -C mcpelauncher fetch origin "$SHA"
526 | git -C mcpelauncher reset --hard FETCH_HEAD
527 | git -C mcpelauncher submodule update --init --recursive
528 | fi
529 | mv mcpelauncher/CMakeLists.txt mcpelauncher/CMakeLists.org.txt
530 | if [[ "$GLFW" = "true" ]]
531 | then
532 | git clone https://github.com/glfw/glfw glfw
533 | fi
534 | env:
535 | SHA: ${{ fromjson(inputs.shas)[matrix.repo][matrix.platform.branch[matrix.repo]] }}
536 | GLFW: ${{ matrix.glfw }}
537 | shell: bash
538 | - name: Create CMakeLists.txt
539 | run: |
540 | cmake_minimum_required(VERSION 3.0)
541 | project(${{ matrix.repo }}${{ matrix.platform.suffix && format('-{0}', matrix.platform.suffix) }}${{ matrix.glfw && '-glfw' || ''}})
542 | include(./CMakeLists.org.txt)
543 |
544 | set(CPACK_GENERATOR "TGZ;${{ matrix.platform.generator }}")
545 | set(CPACK_PACKAGE_CONTACT "https://github.com/minecraft-linux/${{ matrix.repo }}/issues")
546 | set(CPACK_PACKAGE_FILE_NAME "${{ matrix.repo }}${{ matrix.platform.suffix && format('-{0}', matrix.platform.suffix) }}${{ matrix.glfw && '-glfw' || ''}}-${{ inputs.version }}.${{ github.run_id }}.${{ github.run_attempt }}.${{ matrix.platform.name }}")
547 | set(CPACK_DEBIAN_PACKAGE_DEPENDS "${{ matrix.platform.pkg-deps || 'libc6, ca-certificates, libxcursor1, libxinerama1, libxi6, libxrandr2, qml-module-qtquick2, qml-module-qtquick-layouts, qml-module-qtquick-controls, qml-module-qtquick-controls2, qml-module-qtquick-window2, qml-module-qtquick-dialogs, qml-module-qt-labs-settings, qml-module-qt-labs-folderlistmodel, qml-module-qtwebengine, libqt5svg5, libqt5concurrent5, libqt5webenginewidgets5, libzip4, qml-module-qtquick-templates2, libprotobuf23, libsecret-1-0' }}")
548 | set(CPACK_DEBIAN_PACKAGE_VERSION "${{ inputs.version }}.${{ github.run_id }}.${{ github.run_attempt }}~${{ matrix.platform.name }}")
549 | set(CPACK_DEBIAN_FILE_NAME DEB-DEFAULT)
550 | set(CPACK_RPM_PACKAGE_VERSION "${{ inputs.version }}.${{ github.run_id }}.${{ github.run_attempt }}~${{ matrix.platform.name }}")
551 | set(CPACK_RPM_SPEC_MORE_DEFINE "%define __spec_install_post /bin/true")
552 | set(CPACK_RPM_REQUIRES_EXCLUDE_FROM "share/mcpelauncher/.*")
553 | ${{ matrix.platform.pkg-deps && format('set(CPACK_RPM_PACKAGE_REQUIRES "{0}")', matrix.platform.pkg-deps) || '' }}
554 | set(CPACK_RPM_FILE_NAME RPM-DEFAULT)
555 |
556 | include(CPack)
557 | shell: cp {0} mcpelauncher/CMakeLists.txt
558 | - name: Configure
559 | run: cmake -S mcpelauncher -B mcpelauncher-build -DCMAKE_BUILD_TYPE=Release ${{ matrix.cmakeflags[matrix.repo] }} ${{ matrix.platform.cmakeflags[matrix.repo] }} ${{ matrix.glfw && '-DGAMEWINDOW_SYSTEM=GLFW -DFETCHCONTENT_SOURCE_DIR_GLFW3_EXT=$PWD/glfw' || '' }} ${{ matrix.glfw && matrix.platform.generator != 'RPM' && '-DGLFW_BUILD_WAYLAND=OFF' || '' }} ${{ matrix.curlflags[matrix.platform.generator] }}
560 | - name: Package Source
561 | if: "false"
562 | run: cmake --build mcpelauncher-build --target package_source --parallel
563 | - name: Build
564 | run: cmake --build mcpelauncher-build --target package --parallel
565 | - name: Upload artifacts
566 | if: always()
567 | uses: actions/upload-artifact@v4
568 | with:
569 | name: ${{ matrix.platform.name }}${{inputs.channel && inputs.channel != 'release' && format('-{0}', inputs.channel) || '' }}-${{ strategy.job-index }}
570 | path: |
571 | mcpelauncher-build/*.tar.*
572 | mcpelauncher-build/*.deb
573 | mcpelauncher-build/*.rpm
574 |
--------------------------------------------------------------------------------
/.github/workflows/main.yml:
--------------------------------------------------------------------------------
1 | name: Deploy Manually
2 |
3 | on:
4 | workflow_dispatch:
5 | inputs:
6 | redeploy:
7 | type: boolean
8 | default: false
9 | channel:
10 | type: string
11 | default: release
12 | findBy:
13 | type: string
14 | default: ""
15 | version:
16 | type: string
17 | default: "1.2.0"
18 | changelog:
19 | type: string
20 | default: ""
21 | versionsdbremote:
22 | type: string
23 | default: master
24 | mcpelauncher-manifest:
25 | type: string
26 | default: ""
27 | mcpelauncher-manifest-qt6:
28 | type: string
29 | default: ""
30 | mcpelauncher-ui-manifest:
31 | type: string
32 | default: ""
33 | mcpelauncher-ui-manifest-qt6:
34 | type: string
35 | default: ""
36 |
37 | jobs:
38 | build:
39 | if: "!inputs.redeploy"
40 | uses: ./.github/workflows/build-linux.yml
41 | with:
42 | channel: ${{ inputs.channel }}
43 | version: ${{ inputs.version }}
44 | changelog: ${{ inputs.changelog }}
45 | versionsdbremote: ${{ inputs.versionsdbremote }}
46 | shas: |-
47 | {
48 | "mcpelauncher-manifest": {
49 | "": ${{ tojson(inputs.mcpelauncher-manifest || '') }},
50 | "qt6": ${{ tojson(inputs.mcpelauncher-manifest-qt6 || '') }}
51 | },
52 | "mcpelauncher-ui-manifest": {
53 | "": ${{ tojson(inputs.mcpelauncher-ui-manifest || '') }},
54 | "qt6": ${{ tojson(inputs.mcpelauncher-ui-manifest-qt6 || '') }}
55 | }
56 | }
57 |
58 | deploy:
59 | if: "!failure() && !cancelled()"
60 | permissions:
61 | contents: read
62 | pages: write
63 | id-token: write
64 | actions: read
65 | needs: build
66 | uses: ./.github/workflows/update-repo.yml
67 | secrets: inherit
68 | with:
69 | channel: ${{ inputs.channel }}
70 | findBy: ${{ inputs.findBy }}
71 |
72 | update-version:
73 | if: "!failure() && !cancelled() && !inputs.redeploy && inputs.channel == 'release'"
74 | runs-on: ubuntu-latest
75 | needs: deploy
76 | steps:
77 | - uses: actions/checkout@v3
78 | - run: echo "${{ inputs.version }}" > version.txt
79 | - name: Commit changes
80 | run: |
81 | # from https://github.com/orgs/community/discussions/26560
82 | git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
83 | git config user.name "github-actions[bot]"
84 | git add .
85 | git commit -m "Released ${{ inputs.version }}"
86 | git push
--------------------------------------------------------------------------------
/.github/workflows/nightly.yml:
--------------------------------------------------------------------------------
1 | name: Deploy Nightly
2 |
3 | on:
4 | push:
5 | schedule:
6 | - cron: '30 7 * * *'
7 | workflow_dispatch:
8 |
9 | jobs:
10 | pre-build:
11 | runs-on: ubuntu-latest
12 | steps:
13 | - uses: actions/checkout@v3
14 | - run: npm install -g semver
15 | - run: echo "version=$(semver "$(cat version.txt)" -i patch)" > $GITHUB_OUTPUT
16 | id: out
17 | outputs:
18 | version: ${{ steps.out.outputs.version }}
19 |
20 | build:
21 | needs: pre-build
22 | uses: ./.github/workflows/build-linux.yml
23 | with:
24 | channel: nightly
25 | version: ${{ needs.pre-build.outputs.version }}
26 | changelog: "New Nightly Snapshot"
27 | versionsdbremote: master
28 |
29 | deploy:
30 | if: ${{ github.event_name != 'push' || github.ref_type == 'branch' && github.ref_name == github.event.repository.default_branch }}
31 | permissions:
32 | contents: read
33 | pages: write
34 | id-token: write
35 | actions: read
36 | needs: build
37 | uses: ./.github/workflows/update-repo.yml
38 | secrets: inherit
39 | with:
40 | channel: nightly
41 |
--------------------------------------------------------------------------------
/.github/workflows/update-repo.yml:
--------------------------------------------------------------------------------
1 |
2 | name: Deploy repo to Pages
3 |
4 | on:
5 | workflow_call:
6 | inputs:
7 | channel:
8 | type: string
9 | default: nightly
10 | config:
11 | type: string
12 | default: |-
13 | [
14 | {
15 | "artifact": "bionic",
16 | "distro": "bionic",
17 | "component": "main",
18 | "type": "apt",
19 | "channel": "release"
20 | },
21 | {
22 | "artifact": "focal",
23 | "distro": "focal",
24 | "component": "main",
25 | "type": "apt",
26 | "channel": "release"
27 | },
28 | {
29 | "artifact": "jammy",
30 | "distro": "jammy",
31 | "component": "main",
32 | "type": "apt",
33 | "channel": "release"
34 | },
35 | {
36 | "artifact": "kinetic",
37 | "distro": "kinetic",
38 | "component": "main",
39 | "type": "apt",
40 | "channel": "release"
41 | },
42 | {
43 | "artifact": "lunar",
44 | "distro": "lunar",
45 | "component": "main",
46 | "type": "apt",
47 | "channel": "release"
48 | },
49 | {
50 | "artifact": "mantic",
51 | "distro": "mantic",
52 | "component": "main",
53 | "type": "apt",
54 | "channel": "release"
55 | },
56 | {
57 | "artifact": "noble",
58 | "distro": "noble",
59 | "component": "main",
60 | "type": "apt",
61 | "channel": "release"
62 | },
63 | {
64 | "artifact": "oracular",
65 | "distro": "oracular",
66 | "component": "main",
67 | "type": "apt",
68 | "channel": "release"
69 | },
70 | {
71 | "artifact": "plucky",
72 | "distro": "plucky",
73 | "component": "main",
74 | "type": "apt",
75 | "channel": "release"
76 | },
77 | {
78 | "artifact": "bullseye",
79 | "distro": "bullseye",
80 | "component": "main",
81 | "type": "apt",
82 | "channel": "release"
83 | },
84 | {
85 | "artifact": "bookworm",
86 | "distro": "bookworm",
87 | "component": "main",
88 | "type": "apt",
89 | "channel": "release"
90 | },
91 | {
92 | "artifact": "fedora-36",
93 | "path": "fedora-36",
94 | "type": "rpm",
95 | "channel": "release"
96 | },
97 | {
98 | "artifact": "fedora-37",
99 | "path": "fedora-37",
100 | "type": "rpm",
101 | "channel": "release"
102 | },
103 | {
104 | "artifact": "fedora-38",
105 | "path": "fedora-38",
106 | "type": "rpm",
107 | "channel": "release"
108 | },
109 | {
110 | "artifact": "fedora-39",
111 | "path": "fedora-39",
112 | "type": "rpm",
113 | "channel": "release"
114 | },
115 | {
116 | "artifact": "fedora-40",
117 | "path": "fedora-40",
118 | "type": "rpm",
119 | "channel": "release"
120 | },
121 | {
122 | "artifact": "fedora-41",
123 | "path": "fedora-41",
124 | "type": "rpm",
125 | "channel": "release"
126 | },
127 | {
128 | "artifact": "fedora-42",
129 | "path": "fedora-42",
130 | "type": "rpm",
131 | "channel": "release"
132 | },
133 | {
134 | "artifact": "bionic-nightly",
135 | "distro": "bionic-nightly",
136 | "component": "main",
137 | "type": "apt",
138 | "channel": "nightly"
139 | },
140 | {
141 | "artifact": "focal-nightly",
142 | "distro": "focal-nightly",
143 | "component": "main",
144 | "type": "apt",
145 | "channel": "nightly"
146 | },
147 | {
148 | "artifact": "jammy-nightly",
149 | "distro": "jammy-nightly",
150 | "component": "main",
151 | "type": "apt",
152 | "channel": "nightly"
153 | },
154 | {
155 | "artifact": "kinetic-nightly",
156 | "distro": "kinetic-nightly",
157 | "component": "main",
158 | "type": "apt",
159 | "channel": "nightly"
160 | },
161 | {
162 | "artifact": "lunar-nightly",
163 | "distro": "lunar-nightly",
164 | "component": "main",
165 | "type": "apt",
166 | "channel": "nightly"
167 | },
168 | {
169 | "artifact": "mantic-nightly",
170 | "distro": "mantic-nightly",
171 | "component": "main",
172 | "type": "apt",
173 | "channel": "nightly"
174 | },
175 | {
176 | "artifact": "noble-nightly",
177 | "distro": "noble-nightly",
178 | "component": "main",
179 | "type": "apt",
180 | "channel": "nightly"
181 | },
182 | {
183 | "artifact": "oracular-nightly",
184 | "distro": "oracular-nightly",
185 | "component": "main",
186 | "type": "apt",
187 | "channel": "nightly"
188 | },
189 | {
190 | "artifact": "plucky-nightly",
191 | "distro": "plucky-nightly",
192 | "component": "main",
193 | "type": "apt",
194 | "channel": "nightly"
195 | },
196 | {
197 | "artifact": "bullseye-nightly",
198 | "distro": "bullseye-nightly",
199 | "component": "main",
200 | "type": "apt",
201 | "channel": "nightly"
202 | },
203 | {
204 | "artifact": "bookworm-nightly",
205 | "distro": "bookworm-nightly",
206 | "component": "main",
207 | "type": "apt",
208 | "channel": "nightly"
209 | },
210 | {
211 | "artifact": "fedora-36-nightly",
212 | "path": "fedora-36-nightly",
213 | "type": "rpm",
214 | "channel": "nightly"
215 | },
216 | {
217 | "artifact": "fedora-37-nightly",
218 | "path": "fedora-37-nightly",
219 | "type": "rpm",
220 | "channel": "nightly"
221 | },
222 | {
223 | "artifact": "fedora-38-nightly",
224 | "path": "fedora-38-nightly",
225 | "type": "rpm",
226 | "channel": "nightly"
227 | },
228 | {
229 | "artifact": "fedora-39-nightly",
230 | "path": "fedora-39-nightly",
231 | "type": "rpm",
232 | "channel": "nightly"
233 | },
234 | {
235 | "artifact": "fedora-40-nightly",
236 | "path": "fedora-40-nightly",
237 | "type": "rpm",
238 | "channel": "nightly"
239 | },
240 | {
241 | "artifact": "fedora-41-nightly",
242 | "path": "fedora-41-nightly",
243 | "type": "rpm",
244 | "channel": "nightly"
245 | },
246 | {
247 | "artifact": "fedora-42-nightly",
248 | "path": "fedora-42-nightly",
249 | "type": "rpm",
250 | "channel": "nightly"
251 | }
252 | ]
253 | channelconfig:
254 | type: string
255 | default: |-
256 | {
257 | "nightly": 2,
258 | "release": 5
259 | }
260 | findBy:
261 | # findBy of artifacts action as json
262 | type: string
263 | default: ""
264 | secrets:
265 | GPG_PRIVATE_KEY: {}
266 | jobs:
267 | deploy:
268 | # Allow one concurrent deployment
269 | concurrency:
270 | group: "pages"
271 | cancel-in-progress: true
272 | # Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
273 | permissions:
274 | contents: read
275 | pages: write
276 | id-token: write
277 | actions: read
278 | environment:
279 | name: github-pages
280 | url: ${{ steps.deployment.outputs.page_url }}
281 | # gpg breaks for rpm somehow in 24.04 / latest
282 | runs-on: ubuntu-22.04
283 | env:
284 | BASE_URL: https://${{ github.repository_owner }}.github.io${{ github.repository_owner != github.event.repository.name && format('/{0}', github.event.repository.name) || '' }}
285 | REPO_NAME: ${{ github.repository_owner != github.event.repository.name && format('{0}-{1}', github.repository_owner, github.event.repository.name) || github.repository_owner }}
286 | steps:
287 | - name: Import gpg private key
288 | run: |
289 | echo "$GPG_PRIVATE_KEY" | gpg --import
290 | env:
291 | GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }}
292 |
293 | - name: install actions/artifact
294 | run: npm install @actions/artifact
295 |
296 | - name: create release index and sync packages
297 | uses: actions/github-script@v7
298 | with:
299 | github-token: _
300 | script: |
301 | var artifact = require("@actions/artifact");
302 | var config = JSON.parse(${{ tojson(inputs.config) }});
303 | var rootUrl = "${{ env.BASE_URL }}";
304 | var channelconfig = JSON.parse(${{ tojson(inputs.channelconfig) }});
305 | var path = require("path");
306 | var fs = require("fs");
307 | var index = {};
308 | try {
309 | const response = await fetch(`${rootUrl}/index.json`);
310 | index = await response.json();
311 | } catch {
312 | console.log("Previous index is unavailable");
313 | }
314 | const artifactClient = new artifact.DefaultArtifactClient()
315 | var findByData = JSON.parse(${{ tojson(inputs.findBy || 'null') }});
316 | if(findByData && !findByData.token) {
317 | findByData.token = ${{ tojson(github.token) }};
318 | }
319 | const listArtifactResponse = await artifactClient.listArtifacts({
320 | latest: true,
321 | findBy: findByData
322 | })
323 | let artifacts = listArtifactResponse.artifacts;
324 |
325 | console.log(JSON.stringify(artifacts))
326 | for(var repo of config) {
327 | try {
328 | const path = `packages/${repo.artifact}`
329 | const options = {
330 | createArtifactFolder: false,
331 | path,
332 | findBy: findByData
333 | }
334 | console.log("downloading " + repo.artifact + " to " + path)
335 |
336 | for(var art of artifacts.filter(a => a.name === repo.artifact || a.name && a.name.startsWith(repo.artifact + "-"))) {
337 | try {
338 | console.log(JSON.stringify({name: art.name, id: art.id, path, options}));
339 | const downloadResponse = await artifactClient.downloadArtifact(art.id, options);
340 | } catch(err) {
341 | console.log(err)
342 | }
343 | }
344 | } catch(err) {
345 | console.log(err)
346 | }
347 | }
348 | const globber = await glob.create("packages/**", { matchDirectories: false });
349 | var packages = [];
350 | for await (const file of globber.globGenerator()) {
351 | var rfile = path.relative(path.join(process.cwd(), "packages"), file);
352 | packages.push(rfile);
353 | }
354 | downloadedfiles = {};
355 | var currentChannel = ${{ tojson(inputs.channel) }};
356 | var fixupTable = {};
357 | if(index.allfiles) {
358 | for(var file of index.allfiles) {
359 | fixupTable[path.basename(file)] = file;
360 | }
361 | }
362 | if(index.versions) {
363 | for(var channel in index.versions) {
364 | var builds = index.versions[channel];
365 | if(builds) {
366 | var buildstokeep = channelconfig[channel] || 0;
367 | if(packages.length > 0 && currentChannel === channel) {
368 | buildstokeep--;
369 | }
370 | while(builds.length > buildstokeep) {
371 | builds.shift();
372 | }
373 | for(var build of builds) {
374 | if(build.buildfiles) {
375 | for(var f of build.buildfiles) {
376 | console.log(JSON.stringify(f));
377 | var fullpath = path.join("packages", f.pkgpath);
378 | if(fullpath in downloadedfiles) {
379 | console.log("skipping build artifact due to duplicated entry")
380 | continue;
381 | } else {
382 | downloadedfiles[fullpath] = f;
383 | }
384 | var urlPath = fixupTable[path.basename(f.path)] || f.path;
385 | fs.mkdirSync(path.dirname(fullpath), {recursive: true});
386 | try {
387 | await exec.exec("curl", ["-f", "-L", `${rootUrl}/${urlPath}`, "--output", fullpath]);
388 | } catch {
389 | }
390 | }
391 | }
392 | }
393 | }
394 | }
395 | }
396 | fs.writeFileSync("release-index.json", JSON.stringify({ packages: packages, index }));
397 |
398 | - name: add cppfw repo to install myci scripts from
399 | uses: myci-actions/add-deb-repo@HEAD
400 | with:
401 | repo: deb http://gagis.hopto.org/repo/cppfw/$(lsb_release --id --short | tr '[:upper:]' '[:lower:]') $(lsb_release --codename --short) main
402 | repo-name: cppfw
403 | keys-asc: http://gagis.hopto.org/repo/cppfw/pubkey.gpg
404 | - name: add cppfw repo to install myci scripts from
405 | uses: myci-actions/add-deb-repo@HEAD
406 | with:
407 | repo: deb http://gagis.hopto.org/repo/igagis/$(lsb_release --id --short | tr '[:upper:]' '[:lower:]') $(lsb_release --codename --short) main
408 | repo-name: igagis
409 | keys-asc: http://gagis.hopto.org/repo/igagis/pubkey.gpg
410 | - name: install debian package tools
411 | run: |
412 | sudo apt --quiet update
413 | sudo apt --quiet install --assume-yes dpkg-dev debhelper devscripts myci rpm aptian
414 |
415 | - name: rpm setup signing macro
416 | run: |
417 | first_key_email=$(gpg --list-keys | sed -E -n -e 's/.*<([^ >]*)>.*/\1/p' | head -1)
418 | echo "%_signature gpg" > ~/.rpmmacros
419 | echo "%_gpg_name \"$first_key_email\"" >> ~/.rpmmacros
420 |
421 | - name: Add package
422 | uses: actions/github-script@v7
423 | with:
424 | github-token: _
425 | script: |
426 | var config = JSON.parse(${{ tojson(inputs.config) }});
427 | var path = require("path");
428 | var fs = require("fs");
429 | var rpmrepos = [];
430 | for(var repo of config) {
431 | if(repo.type === "apt") {
432 | const globber = await glob.create(`packages/${repo.artifact}/**/*.deb`, { matchDirectories: false });
433 | var packages = [];
434 | for await (const file of globber.globGenerator()) {
435 | await exec.exec("myci-aptian-add.sh", ["--base-dir", process.cwd(), "--repo", "webpage/deb", "--distro", repo.distro, "--component", repo.component, file]);
436 | }
437 | } else if(repo.type === "rpm") {
438 | const globber = await glob.create(`packages/${repo.artifact}/**/*.rpm`, { matchDirectories: false });
439 | var packages = [];
440 | fs.mkdirSync(path.join("webpage", repo.path), {recursive: true});
441 | for await (const file of globber.globGenerator()) {
442 | var destPath = path.join("webpage", repo.path, path.basename(file));
443 | console.log(`copy ${file} to ${destPath}`);
444 | fs.copyFileSync(file, destPath);
445 | await exec.exec("rpm", ["--addsign", destPath]);
446 | }
447 | rpmrepos.push(`createrepo ${path.join("/webpage", repo.path)}`);
448 | }
449 | }
450 | if(rpmrepos.length > 0) {
451 | await exec.exec("docker", ["run", "--rm", "-v", `${path.join(process.cwd(), "webpage")}:/webpage`, "fedora:latest", "bash", "-c", `dnf install -y createrepo && ${rpmrepos.join(" && ")}`]);
452 | }
453 |
454 | - name: Fix webpage permissions
455 | run: |
456 | sudo chown -R "$UID:$UID" webpage
457 |
458 | - name: Add default html
459 | run: |
460 |
461 |
deb ${{ env.BASE_URL }}/deb focal main
464 |deb ${{ env.BASE_URL }}/deb jammy main
465 |deb ${{ env.BASE_URL }}/deb kinetic main
466 |deb ${{ env.BASE_URL }}/deb bullseye main
467 |deb ${{ env.BASE_URL }}/deb bookworm main
468 |curl -sS ${{ env.BASE_URL }}/deb/pubkey.gpg | sudo tee -a /etc/apt/trusted.gpg.d/${{ env.REPO_NAME }}.asc
469 |
472 | [${{ env.REPO_NAME }}]
473 | name=${{ env.REPO_NAME }}
474 | baseurl=${{ env.BASE_URL }}/fedora-36
475 | enabled=1
476 | countme=1
477 | repo_gpgcheck=0
478 | type=rpm
479 | gpgcheck=1
480 | skip_if_unavailable=False
481 | gpgkey=${{ env.BASE_URL }}/deb/pubkey.gpg
482 |
485 | [${{ env.REPO_NAME }}]
486 | name=${{ env.REPO_NAME }}
487 | baseurl=${{ env.BASE_URL }}/fedora-37
488 | enabled=1
489 | countme=1
490 | repo_gpgcheck=0
491 | type=rpm
492 | gpgcheck=1
493 | skip_if_unavailable=False
494 | gpgkey=${{ env.BASE_URL }}/deb/pubkey.gpg
495 |