Skip to content

Commit

Permalink
Release/v0.12.1 (#23)
Browse files Browse the repository at this point in the history
* Release v0.12.1 via Buildbot

* experiment buildarmappimage64-bookworm (#22)

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
  • Loading branch information
ChristopherHX and github-actions[bot] authored Nov 16, 2023
1 parent c3649bc commit d62dcc6
Show file tree
Hide file tree
Showing 11 changed files with 333 additions and 16 deletions.
98 changes: 95 additions & 3 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,19 @@ on:
default: https://github.com/minecraft-linux/mcpelauncher-manifest
mcpelauncher-ref:
type: string
default: ${{ github.repository == 'minecraft-linux/mcpelauncher-manifest' && (github.sha || github.ref) || 'ng' }}
default: ${{ github.repository == 'minecraft-linux/mcpelauncher-manifest' && (github.ref_name == 'ng' && github.sha) || 'ng' }}
mcpelauncher-qt6-ref:
type: string
default: ${{ github.repository == 'minecraft-linux/mcpelauncher-manifest' && (github.ref_name == 'qt6' && github.sha) || 'qt6' }}
mcpelauncher-ui-repo:
type: string
default: https://github.com/minecraft-linux/mcpelauncher-ui-manifest
mcpelauncher-ui-ref:
type: string
default: ${{ github.repository == 'minecraft-linux/mcpelauncher-ui-manifest' && (github.sha || github.ref) || 'ng' }}
default: ${{ github.repository == 'minecraft-linux/mcpelauncher-ui-manifest' && (github.ref_name == 'ng' && github.sha) || 'ng' }}
mcpelauncher-ui-qt6-ref:
type: string
default: ${{ github.repository == 'minecraft-linux/mcpelauncher-ui-manifest' && (github.ref_name == 'qt6' && github.sha) || 'qt6' }}
msa-repo:
type: string
default: https://github.com/minecraft-linux/msa-manifest
Expand Down Expand Up @@ -291,10 +297,96 @@ jobs:
with:
name: arm64appimagebuster
path: output/
appimage-bookworm:
runs-on: ubuntu-latest
strategy:
matrix:
arch:
- x86
- armhf
- x86_64
- arm64
darch:
- x86: i386
armhf: armhf
x86_64: amd64
arm64: arm64
include:
- arch: x86
gxx: g++-multilib
triple: i386-linux-gnu
qmaketriple: i686-linux-gnu
- arch: x86_64
arch32: x86
gxx: g++-multilib
triple: x86_64-linux-gnu
extra-opts: -q quirks-bookworm.sh
extra-pkgs: libegl1-mesa:amd64 zlib1g:amd64 libstdc++6:amd64 libgl1-mesa-dri:amd64 libasound2:amd64
extra-env: CMAKE_PREFIX_PATH=/usr/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu/cmake
- arch: armhf
gxx: g++-arm-linux-gnueabihf
triple: arm-linux-gnueabihf
- arch: arm64
arch32: armhf
gxx: g++-arm-linux-gnueabihf g++-aarch64-linux-gnu
triple: aarch64-linux-gnu
fail-fast: false
name: bookworm ( ${{ matrix.arch }} )
steps:
- uses: ChristopherHX/oidc@f8f35d97bc37ffbe779bb3ab8453920fedf6fb37
id: oidc
continue-on-error: true
- uses: actions/checkout@v3
with:
repository: ${{ steps.oidc.outputs.job_workflow_repo_name_and_owner || inputs.submodule-refs && 'minecraft-linux/appimage-builder' || github.repository }}
ref: ${{ steps.oidc.outputs.job_workflow_repo_ref || inputs.submodule-refs && 'main' || github.sha || github.ref }}
- name: Sync Submodule Sources
if: ${{ inputs.submodule-refs }}
uses: actions/github-script@v6
with:
github-token: none
script: |
var downloadRepo = async function(path, repo, ref) {
await io.mkdirP(path);
await exec.exec("git", ["init"], { cwd: path });
await exec.exec("git", ["remote", "add", "origin", repo], { cwd: path });
await exec.exec("git", ["fetch", "origin", ref], { cwd: path });
await exec.exec("git", ["reset", "--hard", "FETCH_HEAD"], { cwd: path });
await exec.exec("git", ["submodule", "update", "--init", "--recursive"], { cwd: path });
};
await downloadRepo("source/mcpelauncher", process.env.MCPELAUNCHER_REPO, process.env.MCPELAUNCHER_REF);
await downloadRepo("source/mcpelauncher-ui", process.env.MCPELAUNCHER_UI_REPO, process.env.MCPELAUNCHER_UI_REF);
await downloadRepo("source/msa", process.env.MSA_REPO, process.env.MSA_REF);
var submoduleRefs = JSON.parse(process.env.SUBMODULEREFS);
for(var submoduleRef of submoduleRefs) {
await exec.exec("git", ["fetch", submoduleRef.origin || "origin", submoduleRef.ref], { cwd: `source/${submoduleRef.project}/${submoduleRef.path}` });
await exec.exec("git", ["checkout", "FETCH_HEAD"], { cwd: `source/${submoduleRef.project}/${submoduleRef.path}` });
}
env:
SUBMODULEREFS: ${{ inputs.submodule-refs }}
MCPELAUNCHER_REPO: ${{ inputs.mcpelauncher-repo }}
MCPELAUNCHER_REF: ${{ inputs.mcpelauncher-qt6-ref }}
MCPELAUNCHER_UI_REPO: ${{ inputs.mcpelauncher-ui-repo }}
MCPELAUNCHER_UI_REF: ${{ inputs.mcpelauncher-ui-qt6-ref }}
MSA_REPO: ${{ inputs.msa-repo }}
MSA_REF: ${{ inputs.msa-ref }}
- name: Build
run: |
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
docker pull buildpack-deps:bookworm
curl -L https://github.com/Kitware/CMake/releases/download/v3.16.2/cmake-3.16.2-Linux-x86_64.tar.gz --output cmake.tar.gz
tar --no-same-owner -xf cmake.tar.gz
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
tar --no-same-owner -xf llvm.tar.xz
docker run -e GITHUB_RUN_NUMBER=${GITHUB_RUN_NUMBER} -v $PWD/ldd-bookworm:/usr/bin/ldd -v $PWD:$PWD -w $PWD --rm buildpack-deps:bookworm bash -c "dpkg --add-architecture i386 && dpkg --add-architecture ${{ matrix.darch[matrix.arch] }} && dpkg --add-architecture ${{ matrix.darch[matrix.arch32 || matrix.arch] }} && apt update && DEBIAN_FRONTEND=noninteractive apt install -y libegl1-mesa:i386 zlib1g:i386 libstdc++6:i386 libgl1-mesa-dri:i386 libasound2:i386 ${{ matrix.extra-pkgs }} qmake6:${{ matrix.darch[matrix.arch] }} qt6-wayland:${{ matrix.darch[matrix.arch] }} libfuse-dev:${{ matrix.darch[matrix.arch] }} wget texinfo apt-transport-https vim-common qemu-user clang chrpath libstdc++-*-dev:${{ matrix.darch[matrix.arch] }} libstdc++-*-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libatomic1:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libatomic1:${{ matrix.darch[matrix.arch] }} wget cmake ${{ matrix.gxx }} patchelf libpng-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libx11-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libxcursor-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libxinerama-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libxi-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libxrandr-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libudev-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libevdev-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libegl1-mesa-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libasound2:${{ matrix.darch[matrix.arch32 || matrix.arch] }} git cmake pkg-config libssl-dev:${{ matrix.darch[matrix.arch] }} libcurl4-openssl-dev:${{ matrix.darch[matrix.arch] }} libpng-dev:${{ matrix.darch[matrix.arch] }} libx11-dev:${{ matrix.darch[matrix.arch] }} libxcursor-dev:${{ matrix.darch[matrix.arch] }} libxinerama-dev:${{ matrix.darch[matrix.arch] }} libxi-dev:${{ matrix.darch[matrix.arch] }} libxrandr-dev:${{ matrix.darch[matrix.arch] }} libssl-dev:${{ matrix.darch[matrix.arch] }} libudev-dev:${{ matrix.darch[matrix.arch] }} libevdev-dev:${{ matrix.darch[matrix.arch] }} libegl1-mesa-dev:${{ matrix.darch[matrix.arch] }} libgl1-mesa-dev:${{ matrix.darch[matrix.arch] }} libssl-dev:${{ matrix.darch[matrix.arch] }} libuv1-dev:${{ matrix.darch[matrix.arch] }} libzip-dev:${{ matrix.darch[matrix.arch] }} libprotobuf-dev:${{ matrix.darch[matrix.arch] }} protobuf-compiler jq curl binutils desktop-file-utils squashfs-tools qtdeclarative5-dev-tools:${{ matrix.darch[matrix.arch] }} libssl-dev:${{ matrix.darch[matrix.arch] }} libpulse-dev:${{ matrix.darch[matrix.arch] }} libssl-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libpulse-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} qt6-base-dev:${{ matrix.darch[matrix.arch] }} libqt6opengl6-dev:${{ matrix.darch[matrix.arch] }} qt6-webengine-dev:${{ matrix.darch[matrix.arch] }} qt6-webengine-dev-tools:${{ matrix.darch[matrix.arch] }} libqt6webenginecore6-bin:${{ matrix.darch[matrix.arch] }} qt6-declarative-dev:${{ matrix.darch[matrix.arch] }} qml6-module-qtquick:${{ matrix.darch[matrix.arch] }} qml6-module-qtquick-layouts:${{ matrix.darch[matrix.arch] }} qml6-module-qtquick-controls:${{ matrix.darch[matrix.arch] }} qml6-module-qtquick-window:${{ matrix.darch[matrix.arch] }} qml6-module-qtquick-dialogs:${{ matrix.darch[matrix.arch] }} qml6-module-qt-labs-settings:${{ matrix.darch[matrix.arch] }} qml6-module-qt-labs-folderlistmodel:${{ matrix.darch[matrix.arch] }} qml6-module-qtwebengine:${{ matrix.darch[matrix.arch] }} qt6-base-dev:${{ matrix.darch[matrix.arch] }} libqt6opengl6-dev:${{ matrix.darch[matrix.arch] }} qt6-webengine-dev:${{ matrix.darch[matrix.arch] }} qt6-declarative-dev:${{ matrix.darch[matrix.arch] }} libqt6svg6-dev:${{ matrix.darch[matrix.arch] }} qml6-module-qtquick-layouts:${{ matrix.darch[matrix.arch] }} qml6-module-qtquick-controls:${{ matrix.darch[matrix.arch] }} qml6-module-qtquick-controls:${{ matrix.darch[matrix.arch] }} qml6-module-qtquick-dialogs:${{ matrix.darch[matrix.arch] }} qml6-module-qt-labs-settings:${{ matrix.darch[matrix.arch] }} qml6-module-qt-labs-folderlistmodel:${{ matrix.darch[matrix.arch] }} qml6-module-qt-labs-platform:${{ matrix.darch[matrix.arch] }} qml6-module-qtquick-shapes:${{ matrix.darch[matrix.arch] }} qml6-module-qtqml:${{ matrix.darch[matrix.arch] }} qml6-module-qtqml-workerscript:${{ matrix.darch[matrix.arch] }} 'qml6-module-*:${{ matrix.darch[matrix.arch] }}' 'libopengl-dev:${{ matrix.darch[matrix.arch] }}' && ${{ matrix.extra-env }} QMAKE=/usr/bin/${{ matrix.qmaketriple || matrix.triple }}-qmake6 PKG_CONFIG_PATH=/usr/lib/${{ matrix.triple }}/pkgconfig/ PATH=/usr/lib/${{ matrix.triple }}/qt6/bin/:$PWD/cmake-3.16.2-Linux-x86_64/bin:$PWD/clang+llvm-15.0.6-x86_64-linux-gnu-ubuntu-18.04/bin:$PATH LD_LIBRARY_PATH=${PWD}/build/AppDir/usr/lib NO_STRIP=1 CC=clang CXX=clang++ CFLAGS32="-lstdc++fs" CFLAGS="-lstdc++fs" ./build_appimage.sh ${{ matrix.extra-opts }} -p "-bookworm" -o -t ${{ matrix.arch }} -j4 -k 'zsync|https://github.com/minecraft-linux/appimage-builder/releases/download/ng.appimage/version-bookworm.${{ matrix.arch }}.zsync' -i ${GITHUB_RUN_NUMBER}${{ inputs.submodule-refs && ' -s' || '' }}"
- uses: actions/upload-artifact@v1
with:
name: appimage-bookworm-${{ matrix.arch }}
path: output/
publish:
permissions: write-all
runs-on: ubuntu-latest
needs: [ build, build32, buildbusterappimage, buildarmappimage64 ]
needs: [ build, build32, buildbusterappimage, buildarmappimage64, appimage-bookworm ]
if: ${{ !cancelled() && github.event_name == 'push' && github.server_url == 'https://github.com' && github.repository == 'minecraft-linux/appimage-builder' }}
steps:
- uses: actions/checkout@v3
Expand Down
37 changes: 29 additions & 8 deletions build_appimage.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,11 @@ APP_DIR=${BUILD_DIR}/AppDir
UPDATE_CMAKE_OPTIONS=""
BUILD_NUM="0"
TARGETARCH="x86_64"
COMMIT_FILE_SUFFIX=""
MSA_QT6_OPT=""
OUTPUT_SUFFIX=""

while getopts "h?q:j:u:i:k:t:n?m?s?" opt; do
while getopts "h?q:j:u:i:k:t:n?m?o?s?p:" opt; do
case "$opt" in
h|\?)
echo "build.sh"
Expand All @@ -20,6 +23,8 @@ while getopts "h?q:j:u:i:k:t:n?m?s?" opt; do
echo "-t Specify the target arch of the appimage"
echo "-n Disable compiling mcpelauncher-client32 for 64bit targets"
echo "-m Disable compiling msa"
echo "-o Build qt6 AppImage"
echo "-p Suffix"
echo "-s Skip sync sources"
exit 0
;;
Expand All @@ -41,6 +46,11 @@ while getopts "h?q:j:u:i:k:t:n?m?s?" opt; do
;;
m) DISABLE_MSA="1"
;;
o) COMMIT_FILE_SUFFIX="-qt6"
MSA_QT6_OPT="-DQT_VERSION=6"
;;
p) OUTPUT_SUFFIX="$OPTARG"
;;
s) SKIP_SOURCES="1"
;;
esac
Expand Down Expand Up @@ -129,8 +139,8 @@ if [ -z "$SKIP_SOURCES" ]
then
show_status "Downloading sources"
download_repo msa https://github.com/minecraft-linux/msa-manifest.git $(cat msa.commit)
download_repo mcpelauncher https://github.com/minecraft-linux/mcpelauncher-manifest.git $(cat mcpelauncher.commit)
download_repo mcpelauncher-ui https://github.com/minecraft-linux/mcpelauncher-ui-manifest.git $(cat mcpelauncher-ui.commit)
download_repo mcpelauncher https://github.com/minecraft-linux/mcpelauncher-manifest.git $(cat "mcpelauncher${COMMIT_FILE_SUFFIX}.commit")
download_repo mcpelauncher-ui https://github.com/minecraft-linux/mcpelauncher-ui-manifest.git $(cat "mcpelauncher-ui${COMMIT_FILE_SUFFIX}.commit")
fi
download_repo versionsdb https://github.com/minecraft-linux/mcpelauncher-versiondb.git $(cat versionsdb.txt)
if [ -n "$UPDATE_INFORMATION" ]
Expand Down Expand Up @@ -180,7 +190,7 @@ if [ -z "$DISABLE_MSA" ]
then
reset_cmake_options
add_cmake_options "${DEFAULT_CMAKE_OPTIONS[@]}" -DCMAKE_ASM_FLAGS="$MSA_CFLAGS $CFLAGS" -DCMAKE_C_FLAGS="$MSA_CFLAGS $CFLAGS" -DCMAKE_CXX_FLAGS="$MSA_CXXFLAGS $MSA_CFLAGS $CXXFLAGS $CFLAGS"
add_cmake_options -DCMAKE_INSTALL_PREFIX=/usr -DENABLE_MSA_QT_UI=ON -DMSA_UI_PATH_DEV=OFF
add_cmake_options -DCMAKE_INSTALL_PREFIX=/usr -DENABLE_MSA_QT_UI=ON -DMSA_UI_PATH_DEV=OFF $MSA_QT6_OPT
call_quirk build_msa
build_component64 msa
install_component msa
Expand Down Expand Up @@ -255,10 +265,21 @@ export LD_LIBRARY_PATH=${LD_LIBRARY_PATH+"${LD_LIBRARY_PATH}:"}"$APP_DIR/usr/lib
check_run "$LINUXDEPLOY_BIN" --appdir "$APP_DIR" -i "$BUILD_DIR/mcpelauncher-ui-qt.svg" -d "$BUILD_DIR/mcpelauncher-ui-qt.desktop"

export QML_SOURCES_PATHS="$SOURCE_DIR/mcpelauncher-ui/mcpelauncher-ui-qt/qml/:$SOURCE_DIR/mcpelauncher/mcpelauncher-webview"
if [ -n "$MSA_QT6_OPT" ]
then
export EXTRA_PLATFORM_PLUGINS="libqwayland-egl.so;libqwayland-generic.so"
export EXTRA_QT_PLUGINS="wayland-decoration-client;wayland-graphics-integration-client;wayland-shell-integration"
check_run mkdir -p "$APP_DIR/usr/plugins/"
check_run cp -R "/usr/lib/$DEBIANTARGET/qt6/plugins/wayland-decoration-client" "/usr/lib/$DEBIANTARGET/qt6/plugins/wayland-graphics-integration-client" "/usr/lib/$DEBIANTARGET/qt6/plugins/wayland-shell-integration" "$APP_DIR/usr/plugins/"
fi
check_run "$LINUXDEPLOY_PLUGIN_QT_BIN" --appdir "$APP_DIR"

# libnss needs it's subdirectory to load the google login view
check_run cp -r "/usr/lib/$DEBIANTARGET/nss" "$APP_DIR/usr/lib/"
# Bookworm AppImage doesn't have it anymore?
if [ -z "$MSA_QT6_OPT" ]
then
# libnss needs it's subdirectory to load the google login view
check_run cp -r "/usr/lib/$DEBIANTARGET/nss" "$APP_DIR/usr/lib/"
fi
# glib is excluded by appimagekit, but gmodule isn't which causes issues
check_run rm -rf "$APP_DIR/usr/lib/libgmodule-2.0.so.0"
# these files where removed from the exclude list
Expand All @@ -275,7 +296,7 @@ then
check_run chmod +x $APP_DIR/AppRun
fi

export OUTPUT="Minecraft_Bedrock_Launcher-${TARGETARCH}-$(cat version.txt).${BUILD_NUM}.AppImage"
export OUTPUT="Minecraft_Bedrock_Launcher${OUTPUT_SUFFIX}-${TARGETARCH}-$(cat version.txt).${BUILD_NUM}.AppImage"
export ARCH="$APPIMAGE_ARCH"
if [ -n "$UPDATE_INFORMATION" ]
then
Expand All @@ -285,7 +306,7 @@ check_run "$APPIMAGETOOL_BIN" --comp xz --runtime-file "tools/$APPIMAGE_RUNTIME_

mkdir -p output/
check_run mv Minecraft*.AppImage output/
cat *.zsync | sed -e "s/\(URL: \)\(.*\)/\1..\/$(cat version.txt)-${BUILD_NUM}\/\2/g" > "output/version.${ARCH}.zsync"
cat *.zsync | sed -e "s/\(URL: \)\(.*\)/\1..\/$(cat version.txt)-${BUILD_NUM}\/\2/g" > "output/version${OUTPUT_SUFFIX}.${ARCH}.zsync"
rm *.zsync

cleanup_build
2 changes: 1 addition & 1 deletion changelog.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
<p>apple m-series macs are unable to use intel builds of the game, due to the macOS 14 update you have to switch to arm64, which may need manual changes to profiles and older versions of the game may no longer work at all</p><p>apple m-series macs should now be enrolled to the experimental native arm64 game client you may have to disable all dev options you might have been using</p><p>Fixed stabilty issues of text input changes of the previous update</p>
<p>Fix fake AAsset loader to work with 1.20.50.21 (ChristopherHX)</p><p>AInputQueue mouse input for breaking changes in 1.20.50.22 (GameParrot)</p><p>Build bookworm based AppImages (ChristopherHX)</p><p>Fix xbox live ssl problems in arm64 debs (ChristopherHX)</p>
Loading

0 comments on commit d62dcc6

Please sign in to comment.