diff options
author | Daniel Calviño Sánchez <danxuliu@gmail.com> | 2023-09-20 16:02:11 +0200 |
---|---|---|
committer | Daniel Calviño Sánchez <danxuliu@gmail.com> | 2023-10-02 12:36:28 +0200 |
commit | 2b27419c5db40e8520a2a727149deb57b7a427d5 (patch) | |
tree | 23cfa4e3371af4aff3c7a35c5676e22626f26df8 | |
parent | f1528c844d89f6c7b6d6f5b4473b3dd24bdb89da (diff) |
Add support for building packages in Debian 11
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
-rw-r--r-- | recording/packaging/Makefile | 4 | ||||
-rwxr-xr-x | recording/packaging/build.sh | 20 |
2 files changed, 24 insertions, 0 deletions
diff --git a/recording/packaging/Makefile b/recording/packaging/Makefile index 6dadb4323..526184057 100644 --- a/recording/packaging/Makefile +++ b/recording/packaging/Makefile @@ -95,6 +95,7 @@ $(BUILD_DIR)/deb/nextcloud-talk-recording_$(NEXTCLOUD_TALK_RECORDING_VERSION)-$( # Builds the Python dependencies that are not included in at least one of the # Ubuntu supported releases: +# - Debian 11 (bullseye): pulsectl, pyvirtualdisplay >= 2.0, selenium >= 4.6.0 # - Ubuntu 20.04 (focal): pulsectl, pyvirtualdisplay >= 2.0, requests >= 2.25, selenium >= 4.6.0 # - Ubuntu 22.04 (jammy): pulsectl, selenium >= 4.6.0 # @@ -103,6 +104,7 @@ $(BUILD_DIR)/deb/nextcloud-talk-recording_$(NEXTCLOUD_TALK_RECORDING_VERSION)-$( # required by selenium. build-packages-deb-nextcloud-talk-recording-dependencies: build-packages-deb-nextcloud-talk-recording-dependencies-$(OS_VERSION) +build-packages-deb-nextcloud-talk-recording-dependencies-debian11: build-packages-deb-pulsectl build-packages-deb-pyvirtualdisplay build-packages-deb-selenium build-packages-deb-selenium-dependencies build-packages-deb-nextcloud-talk-recording-dependencies-ubuntu20.04: build-packages-deb-pulsectl build-packages-deb-pyvirtualdisplay build-packages-deb-requests build-packages-deb-selenium build-packages-deb-selenium-dependencies build-packages-deb-nextcloud-talk-recording-dependencies-ubuntu22.04: build-packages-deb-pulsectl build-packages-deb-selenium build-packages-deb-selenium-dependencies @@ -140,10 +142,12 @@ $(BUILD_DIR)/deb/python3-selenium_$(SELENIUM_VERSION)-$(DEBIAN_VERSION)_all.deb: # Builds the Python dependencies that are not included in at least one of the # Ubuntu supported releases: +# - Debian 11 (bullseye): python3-certifi >= 2021.10.8, python3-trio ~= 0.17, python3-trio-websocket ~= 0.9 # - Ubuntu 20.04 (focal): python3-certifi >= 2021.10.8, python3-trio ~= 0.17, python3-trio-websocket ~= 0.9, python3-urllib3 ~= 1.26 # - Ubuntu 22.04 (jammy): python3-certifi >= 2021.10.8, python3-trio-websocket ~= 0.9 build-packages-deb-selenium-dependencies: build-packages-deb-selenium-dependencies-$(OS_VERSION) +build-packages-deb-selenium-dependencies-debian11: build-packages-deb-certifi build-packages-deb-trio build-packages-deb-trio-websocket build-packages-deb-selenium-dependencies-ubuntu20.04: build-packages-deb-certifi build-packages-deb-trio build-packages-deb-trio-websocket build-packages-deb-urllib build-packages-deb-selenium-dependencies-ubuntu22.04: build-packages-deb-certifi build-packages-deb-trio-websocket diff --git a/recording/packaging/build.sh b/recording/packaging/build.sh index 3eeea1f04..5493133e0 100755 --- a/recording/packaging/build.sh +++ b/recording/packaging/build.sh @@ -87,6 +87,10 @@ function cleanUp() { # The name filter must be specified as "^/XXX$" to get an exact match; using # just "XXX" would match every name that contained "XXX". + if [ -n "$(docker ps --all --quiet --filter status=created --filter name="^/$CONTAINER-debian11$")" ]; then + echo "Removing Docker container $CONTAINER-debian11" + docker rm --volumes --force $CONTAINER-debian11 + fi if [ -n "$(docker ps --all --quiet --filter status=created --filter name="^/$CONTAINER-ubuntu20.04$")" ]; then echo "Removing Docker container $CONTAINER-ubuntu20.04" docker rm --volumes --force $CONTAINER-ubuntu20.04 @@ -142,6 +146,19 @@ setOperatingSystemAbstractionVariables # # The name filter must be specified as "^/XXX$" to get an exact match; using # just "XXX" would match every name that contained "XXX". +if [ -z "$(docker ps --all --quiet --filter name="^/$CONTAINER-debian11$")" ]; then + echo "Creating Nextcloud Talk recording packages builder container for Debian 11" + # The main Talk directory is mounted rather than just the recording + # directory to be able to get the timestamp from git for reproducible + # builds. + docker run --detach --tty --volume "$(realpath ../../)":/spreed/ --name=$CONTAINER-debian11 $DOCKER_OPTIONS debian:11 bash + + echo "Installing required build dependencies" + # "noninteractive" is used to provide default settings instead of asking for + # them (for example, for tzdata). + docker exec $CONTAINER-debian11 bash -c "apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install --assume-yes make python3 python3-pip python3-venv python3-all debhelper dh-python git dh-exec" + docker exec $CONTAINER-debian11 bash -c "python3 -m pip install stdeb build 'setuptools >= 61.0'" +fi if [ -z "$(docker ps --all --quiet --filter name="^/$CONTAINER-ubuntu20.04$")" ]; then echo "Creating Nextcloud Talk recording packages builder container for Ubuntu 20.04" # The main Talk directory is mounted rather than just the recording @@ -184,6 +201,9 @@ fi USER=$(ls -l --numeric-uid-gid --directory . | sed 's/ \+/ /g' | cut --delimiter " " --fields 3) +echo "Building recording backend packages for Debian 11" +docker exec --tty --interactive --user $USER --workdir /spreed/recording/packaging $CONTAINER-debian11 make + echo "Building recording backend packages for Ubuntu 20.04" docker exec --tty --interactive --user $USER --workdir /spreed/recording/packaging $CONTAINER-ubuntu20.04 make |