Separate Ubuntu .deb packages per Ubuntu release (#4357)

Our .deb packages are now very Ubuntu-specific and are packages based on our CI builds.
This commit is contained in:
Wissididom
2023-02-11 23:50:01 +01:00
committed by GitHub
parent cf80ae8434
commit 98c2ff5607
10 changed files with 288 additions and 24 deletions
+54
View File
@@ -0,0 +1,54 @@
FROM ubuntu:20.04
ENV TZ=UTC
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
RUN apt-get update && apt-get -y install --no-install-recommends \
cmake \
virtualenv \
rapidjson-dev \
libfuse2 \
libssl-dev \
libboost-dev \
libxcb-randr0-dev \
libboost-system-dev \
libboost-filesystem-dev \
libpulse-dev \
libxkbcommon-x11-0 \
build-essential \
libgl1-mesa-dev \
libxcb-icccm4 \
libxcb-image0 \
libxcb-keysyms1 \
libxcb-render-util0 \
libxcb-xinerama0
RUN apt-get -y install \
git \
lsb-release \
python3-pip && \
apt-get clean all
# Install Qt as we do in CI
RUN pip3 install -U pip && \
pip3 install aqtinstall && \
aqt install-qt linux desktop 5.12.12 && \
mkdir -p /opt/qt512 && \
mv /5.12.12/gcc_64/* /opt/qt512
ADD . /src
RUN mkdir /src/build
# cmake
RUN cd /src/build && \
CXXFLAGS=-fno-sized-deallocation cmake \
-DCMAKE_INSTALL_PREFIX=appdir/usr/ \
-DCMAKE_PREFIX_PATH=/opt/qt512/lib/cmake \
-DBUILD_WITH_QTKEYCHAIN=OFF \
..
# build
RUN cd /src/build && \
make -j8
+13
View File
@@ -0,0 +1,13 @@
FROM chatterino-ubuntu-20.04-build
ADD .CI /src/.CI
WORKDIR /src/build
# RUN apt-get install -y wget
# create appimage
# RUN pwd && ./../.CI/CreateAppImage.sh
# package deb
RUN pwd && ./../.CI/CreateUbuntuDeb.sh
+57
View File
@@ -0,0 +1,57 @@
FROM ubuntu:22.04
ENV TZ=UTC
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
RUN apt-get update && apt-get -y install --no-install-recommends \
cmake \
virtualenv \
rapidjson-dev \
libfuse2 \
libssl-dev \
libboost-dev \
libxcb-randr0-dev \
libboost-system-dev \
libboost-filesystem-dev \
libpulse-dev \
libxkbcommon-x11-0 \
build-essential \
libgl1-mesa-dev \
libxcb-icccm4 \
libxcb-image0 \
libxcb-keysyms1 \
libxcb-render-util0 \
libxcb-xinerama0
RUN apt-get -y install \
git \
lsb-release \
python3-pip && \
apt-get clean all
# Install Qt as we do in CI
RUN pip3 install -U pip && \
pip3 install aqtinstall && \
aqt install-qt linux desktop 5.15.2 && \
mkdir -p /opt/qt515 && \
mv /5.15.2/gcc_64/* /opt/qt515
ADD . /src
RUN mkdir /src/build
# Apply Qt patches
RUN patch "/opt/qt515/include/QtConcurrent/qtconcurrentthreadengine.h" /src/.patches/qt5-on-newer-gcc.patch
# cmake
RUN cd /src/build && \
CXXFLAGS=-fno-sized-deallocation cmake \
-DCMAKE_INSTALL_PREFIX=appdir/usr/ \
-DCMAKE_PREFIX_PATH=/opt/qt515/lib/cmake \
-DBUILD_WITH_QTKEYCHAIN=OFF \
..
# build
RUN cd /src/build && \
make -j8
+8
View File
@@ -0,0 +1,8 @@
FROM chatterino-ubuntu-22.04-build
ADD .CI /src/.CI
WORKDIR /src/build
# package deb
RUN ./../.CI/CreateUbuntuDeb.sh
+29
View File
@@ -0,0 +1,29 @@
## Groups
### Ubuntu 20.04 package
`Dockerfile-ubuntu-20.04-package` relies on `Dockerfile-ubuntu-20.04-build`
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
`docker 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
`docker 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:
`docker run -v $PWD:/opt/mount --rm -it chatterino-ubuntu-20.04-package bash -c "cp /src/build/Chatterino-x86_64.deb /opt/mount/"`
### Ubuntu 22.04 package
`Dockerfile-ubuntu-22.04-package` relies on `Dockerfile-ubuntu-22.04-build`
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
`docker 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
`docker 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:
`docker run -v $PWD:/opt/mount --rm -it chatterino-ubuntu-22.04-package bash -c "cp /src/build/Chatterino-x86_64.deb /opt/mount/"`