mirror of
https://github.com/Chatterino/chatterino2.git
synced 2024-11-13 19:49:51 +01:00
Fix AppImage not containing all SSL dependencies (#4400)
This means the AppImage is built on Ubuntu 20.04 using Qt 5.12
This commit is contained in:
parent
621b5d9163
commit
7e005ba661
|
@ -2,13 +2,18 @@
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
|
# Print all commands as they are run
|
||||||
|
set -x
|
||||||
|
|
||||||
if [ ! -f ./bin/chatterino ] || [ ! -x ./bin/chatterino ]; then
|
if [ ! -f ./bin/chatterino ] || [ ! -x ./bin/chatterino ]; then
|
||||||
echo "ERROR: No chatterino binary file found. This script must be run in the build folder, and chatterino must be built first."
|
echo "ERROR: No chatterino binary file found. This script must be run in the build folder, and chatterino must be built first."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/opt/qt512/lib/"
|
echo "Qt5_DIR set to: ${Qt5_DIR}"
|
||||||
export PATH="/opt/qt512/bin:$PATH"
|
|
||||||
|
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${Qt5_DIR}/lib"
|
||||||
|
export PATH="${Qt5_DIR}/bin:$PATH"
|
||||||
|
|
||||||
script_path=$(readlink -f "$0")
|
script_path=$(readlink -f "$0")
|
||||||
script_dir=$(dirname "$script_path")
|
script_dir=$(dirname "$script_path")
|
||||||
|
@ -25,20 +30,32 @@ echo ""
|
||||||
|
|
||||||
cp "$chatterino_dir"/resources/icon.png ./appdir/chatterino.png
|
cp "$chatterino_dir"/resources/icon.png ./appdir/chatterino.png
|
||||||
|
|
||||||
linuxdeployqt_path="linuxdeployqt-6-x86_64.AppImage"
|
linuxdeployqt_path="linuxdeployqt-x86_64.AppImage"
|
||||||
linuxdeployqt_url="https://github.com/probonopd/linuxdeployqt/releases/download/6/linuxdeployqt-6-x86_64.AppImage"
|
linuxdeployqt_url="https://github.com/probonopd/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-x86_64.AppImage"
|
||||||
|
|
||||||
if [ ! -f "$linuxdeployqt_path" ]; then
|
if [ ! -f "$linuxdeployqt_path" ]; then
|
||||||
wget -nv "$linuxdeployqt_url"
|
echo "Downloading LinuxDeployQT from $linuxdeployqt_url to $linuxdeployqt_path"
|
||||||
|
curl --location --fail --silent "$linuxdeployqt_url" -o "$linuxdeployqt_path"
|
||||||
chmod a+x "$linuxdeployqt_path"
|
chmod a+x "$linuxdeployqt_path"
|
||||||
fi
|
fi
|
||||||
if [ ! -f appimagetool-x86_64.AppImage ]; then
|
|
||||||
wget -nv "https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage"
|
appimagetool_path="appimagetool-x86_64.AppImage"
|
||||||
chmod a+x appimagetool-x86_64.AppImage
|
appimagetool_url="https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage"
|
||||||
|
|
||||||
|
if [ ! -f "$appimagetool_path" ]; then
|
||||||
|
echo "Downloading AppImageTool from $appimagetool_url to $appimagetool_path"
|
||||||
|
curl --location --fail --silent "$appimagetool_url" -o "$appimagetool_path"
|
||||||
|
chmod a+x "$appimagetool_path"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# For some reason, the copyright file for libc was not found. We need to manually copy it from the host system
|
||||||
|
mkdir -p appdir/usr/share/doc/libc6/
|
||||||
|
cp /usr/share/doc/libc6/copyright appdir/usr/share/doc/libc6/
|
||||||
|
|
||||||
echo "Run LinuxDeployQT"
|
echo "Run LinuxDeployQT"
|
||||||
./"$linuxdeployqt_path" \
|
./"$linuxdeployqt_path" \
|
||||||
appdir/usr/share/applications/*.desktop \
|
--appimage-extract-and-run \
|
||||||
|
appdir/usr/share/applications/com.chatterino.chatterino.desktop \
|
||||||
-no-translations \
|
-no-translations \
|
||||||
-bundle-non-qt-libs \
|
-bundle-non-qt-libs \
|
||||||
-unsupported-allow-new-glibc
|
-unsupported-allow-new-glibc
|
||||||
|
@ -56,7 +73,9 @@ cd "$here/usr"
|
||||||
exec "$here/usr/bin/chatterino" "$@"' > appdir/AppRun
|
exec "$here/usr/bin/chatterino" "$@"' > appdir/AppRun
|
||||||
chmod a+x appdir/AppRun
|
chmod a+x appdir/AppRun
|
||||||
|
|
||||||
./appimagetool-x86_64.AppImage appdir
|
./"$appimagetool_path" \
|
||||||
|
--appimage-extract-and-run \
|
||||||
|
appdir
|
||||||
|
|
||||||
# TODO: Create appimage in a unique directory instead maybe idk?
|
# TODO: Create appimage in a unique directory instead maybe idk?
|
||||||
rm -rf appdir
|
rm -rf appdir
|
||||||
|
|
|
@ -1,13 +1,21 @@
|
||||||
FROM chatterino-ubuntu-20.04-build
|
FROM chatterino-ubuntu-20.04-build
|
||||||
|
|
||||||
ADD .CI /src/.CI
|
# In CI, this is set from the aqtinstall action
|
||||||
|
ENV Qt5_DIR=/opt/qt512
|
||||||
|
|
||||||
WORKDIR /src/build
|
WORKDIR /src/build
|
||||||
|
|
||||||
# RUN apt-get install -y wget
|
ADD .CI /src/.CI
|
||||||
|
|
||||||
# create appimage
|
# Install dependencies necessary for AppImage packaging
|
||||||
# RUN pwd && ./../.CI/CreateAppImage.sh
|
RUN apt-get update && apt-get -y install --no-install-recommends \
|
||||||
|
curl \
|
||||||
|
libfontconfig \
|
||||||
|
libxrender1 \
|
||||||
|
file
|
||||||
|
|
||||||
# package deb
|
# package deb
|
||||||
RUN pwd && ./../.CI/CreateUbuntuDeb.sh
|
RUN ./../.CI/CreateUbuntuDeb.sh
|
||||||
|
|
||||||
|
# package appimage
|
||||||
|
RUN ./../.CI/CreateAppImage.sh
|
||||||
|
|
|
@ -1,8 +1,21 @@
|
||||||
FROM chatterino-ubuntu-22.04-build
|
FROM chatterino-ubuntu-22.04-build
|
||||||
|
|
||||||
ADD .CI /src/.CI
|
# In CI, this is set from the aqtinstall action
|
||||||
|
ENV Qt5_DIR=/opt/qt515
|
||||||
|
|
||||||
WORKDIR /src/build
|
WORKDIR /src/build
|
||||||
|
|
||||||
|
ADD .CI /src/.CI
|
||||||
|
|
||||||
|
# Install dependencies necessary for AppImage packaging
|
||||||
|
RUN apt-get update && apt-get -y install --no-install-recommends \
|
||||||
|
curl \
|
||||||
|
libxcb-shape0 \
|
||||||
|
libfontconfig1 \
|
||||||
|
file
|
||||||
|
|
||||||
# package deb
|
# package deb
|
||||||
RUN ./../.CI/CreateUbuntuDeb.sh
|
RUN ./../.CI/CreateUbuntuDeb.sh
|
||||||
|
|
||||||
|
# package appimage
|
||||||
|
RUN ./../.CI/CreateAppImage.sh
|
||||||
|
|
|
@ -7,9 +7,9 @@
|
||||||
To build, from the repo root
|
To build, from the repo root
|
||||||
|
|
||||||
1. Build a docker image that contains all the build artifacts and source from building Chatterino on Ubuntu 20.04
|
1. Build a docker image that contains all the build artifacts and source from building Chatterino on Ubuntu 20.04
|
||||||
`docker build -t chatterino-ubuntu-20.04-build -f .docker/Dockerfile-ubuntu-20.04-build .`
|
`docker buildx build -t chatterino-ubuntu-20.04-build -f .docker/Dockerfile-ubuntu-20.04-build .`
|
||||||
1. Build a docker image that uses the above-built image & packages it into a .deb file
|
1. Build a docker image that uses the above-built image & packages it into a .deb file
|
||||||
`docker build -t chatterino-ubuntu-20.04-package -f .docker/Dockerfile-ubuntu-20.04-package .`
|
`docker buildx build -t chatterino-ubuntu-20.04-package -f .docker/Dockerfile-ubuntu-20.04-package .`
|
||||||
|
|
||||||
To extract the final package, you can run the following command:
|
To extract the final package, you can run the following command:
|
||||||
`docker run -v $PWD:/opt/mount --rm -it chatterino-ubuntu-20.04-package bash -c "cp /src/build/Chatterino-x86_64.deb /opt/mount/"`
|
`docker run -v $PWD:/opt/mount --rm -it chatterino-ubuntu-20.04-package bash -c "cp /src/build/Chatterino-x86_64.deb /opt/mount/"`
|
||||||
|
@ -21,9 +21,11 @@ To extract the final package, you can run the following command:
|
||||||
To build, from the repo root
|
To build, from the repo root
|
||||||
|
|
||||||
1. Build a docker image that contains all the build artifacts and source from building Chatterino on Ubuntu 22.04
|
1. Build a docker image that contains all the build artifacts and source from building Chatterino on Ubuntu 22.04
|
||||||
`docker build -t chatterino-ubuntu-22.04-build -f .docker/Dockerfile-ubuntu-22.04-build .`
|
`docker buildx build -t chatterino-ubuntu-22.04-build -f .docker/Dockerfile-ubuntu-22.04-build .`
|
||||||
1. Build a docker image that uses the above-built image & packages it into a .deb file
|
1. Build a docker image that uses the above-built image & packages it into a .deb file
|
||||||
`docker build -t chatterino-ubuntu-22.04-package -f .docker/Dockerfile-ubuntu-22.04-package .`
|
`docker buildx build -t chatterino-ubuntu-22.04-package -f .docker/Dockerfile-ubuntu-22.04-package .`
|
||||||
|
|
||||||
To extract the final package, you can run the following command:
|
To extract the final package, you can run the following command:
|
||||||
`docker run -v $PWD:/opt/mount --rm -it chatterino-ubuntu-22.04-package bash -c "cp /src/build/Chatterino-x86_64.deb /opt/mount/"`
|
`docker run -v $PWD:/opt/mount --rm -it chatterino-ubuntu-22.04-package bash -c "cp /src/build/Chatterino-x86_64.deb /opt/mount/"`
|
||||||
|
|
||||||
|
NOTE: The AppImage from Ubuntu 22.04 is broken. Approach with caution
|
||||||
|
|
6
.github/workflows/build.yml
vendored
6
.github/workflows/build.yml
vendored
|
@ -263,7 +263,7 @@ jobs:
|
||||||
clang-tidy-review-metadata.json
|
clang-tidy-review-metadata.json
|
||||||
|
|
||||||
- name: Package - AppImage (Ubuntu)
|
- name: Package - AppImage (Ubuntu)
|
||||||
if: startsWith(matrix.os, 'ubuntu') && matrix.skip_artifact != 'yes'
|
if: startsWith(matrix.os, 'ubuntu-20.04') && matrix.skip_artifact != 'yes'
|
||||||
run: |
|
run: |
|
||||||
cd build
|
cd build
|
||||||
sh ./../.CI/CreateAppImage.sh
|
sh ./../.CI/CreateAppImage.sh
|
||||||
|
@ -277,7 +277,7 @@ jobs:
|
||||||
shell: bash
|
shell: bash
|
||||||
|
|
||||||
- name: Upload artifact - AppImage (Ubuntu)
|
- name: Upload artifact - AppImage (Ubuntu)
|
||||||
if: startsWith(matrix.os, 'ubuntu') && matrix.skip_artifact != 'yes'
|
if: startsWith(matrix.os, 'ubuntu-20.04') && matrix.skip_artifact != 'yes'
|
||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: Chatterino-x86_64-${{ matrix.qt-version }}.AppImage
|
name: Chatterino-x86_64-${{ matrix.qt-version }}.AppImage
|
||||||
|
@ -351,7 +351,7 @@ jobs:
|
||||||
|
|
||||||
- uses: actions/download-artifact@v3
|
- uses: actions/download-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: Chatterino-x86_64-5.15.2.AppImage
|
name: Chatterino-x86_64-5.12.12.AppImage
|
||||||
path: release-artifacts/
|
path: release-artifacts/
|
||||||
|
|
||||||
- uses: actions/download-artifact@v3
|
- uses: actions/download-artifact@v3
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
## Unversioned
|
## Unversioned
|
||||||
|
|
||||||
- Minor: Delete all but the last 5 crashdumps on application start. (#4392)
|
- Minor: Delete all but the last 5 crashdumps on application start. (#4392)
|
||||||
|
- Bugfix: Fixed uploaded AppImage not being able most web requests. (#4400)
|
||||||
- Dev: Add capability to build Chatterino with Qt6. (#4393)
|
- Dev: Add capability to build Chatterino with Qt6. (#4393)
|
||||||
- Dev: Fix homebrew update action. (#4394)
|
- Dev: Fix homebrew update action. (#4394)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue