summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Calviño Sánchez <danxuliu@gmail.com>2023-09-20 16:02:11 +0200
committerDaniel Calviño Sánchez <danxuliu@gmail.com>2023-10-02 12:36:28 +0200
commit2b27419c5db40e8520a2a727149deb57b7a427d5 (patch)
tree23cfa4e3371af4aff3c7a35c5676e22626f26df8
parentf1528c844d89f6c7b6d6f5b4473b3dd24bdb89da (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/Makefile4
-rwxr-xr-xrecording/packaging/build.sh20
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