summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-x.semaphore/semaphore-runner.sh9
-rw-r--r--src/shared/install.c7
-rw-r--r--test/README.testsuite13
3 files changed, 24 insertions, 5 deletions
diff --git a/.semaphore/semaphore-runner.sh b/.semaphore/semaphore-runner.sh
index 5219172570..1b0b29e73e 100755
--- a/.semaphore/semaphore-runner.sh
+++ b/.semaphore/semaphore-runner.sh
@@ -7,7 +7,7 @@ set -o pipefail
# default to Debian testing
DISTRO="${DISTRO:-debian}"
RELEASE="${RELEASE:-bookworm}"
-BRANCH="${BRANCH:-upstream-ci}"
+BRANCH="${BRANCH:-debian/master}"
ARCH="${ARCH:-amd64}"
CONTAINER="${RELEASE}-${ARCH}"
CACHE_DIR="${SEMAPHORE_CACHE_DIR:-/tmp}"
@@ -29,6 +29,7 @@ create_container() {
# enable source repositories so that apt-get build-dep works
sudo lxc-attach -n "$CONTAINER" -- sh -ex <<EOF
sed 's/^deb/deb-src/' /etc/apt/sources.list >>/etc/apt/sources.list.d/sources.list
+echo "deb http://deb.debian.org/debian $RELEASE-backports main" >/etc/apt/sources.list.d/backports.list
# We might attach the console too soon
until systemctl --quiet --wait is-system-running; do sleep 1; done
# Manpages database trigger takes a lot of time and is not useful in a CI
@@ -44,6 +45,8 @@ apt-get -y dist-upgrade
apt-get install -y eatmydata
# The following four are needed as long as these deps are not covered by Debian's own packaging
apt-get install -y fdisk tree libfdisk-dev libp11-kit-dev libssl-dev libpwquality-dev rpm
+# autopkgtest doesn't consider backports
+apt-get install -y -t $RELEASE-backports debhelper libcurl4-openssl-dev libarchive-dev
apt-get purge --auto-remove -y unattended-upgrades
systemctl unmask systemd-networkd
systemctl enable systemd-networkd
@@ -101,7 +104,9 @@ EOF
rm -rf "$ARTIFACTS_DIR"
# autopkgtest exits with 2 for "some tests skipped", accept that
sudo "$AUTOPKGTEST_DIR/runner/autopkgtest" --env DEB_BUILD_OPTIONS=noudeb \
- --env TEST_UPSTREAM=1 ../systemd_*.dsc \
+ --env DEB_BUILD_PROFILES=pkg.systemd.upstream \
+ --env TEST_UPSTREAM=1 \
+ ../systemd_*.dsc \
-o "$ARTIFACTS_DIR" \
-- lxc -s "$CONTAINER" \
|| [ $? -eq 2 ]
diff --git a/src/shared/install.c b/src/shared/install.c
index fabf5db7ed..c3a94d1912 100644
--- a/src/shared/install.c
+++ b/src/shared/install.c
@@ -340,9 +340,12 @@ void install_changes_dump(int r, const char *verb, const InstallChange *changes,
assert(verb || r >= 0);
for (size_t i = 0; i < n_changes; i++) {
- if (changes[i].type < 0)
- assert(verb);
assert(changes[i].path);
+ /* This tries to tell the compiler that it's safe to use 'verb' in a string format if there
+ * was an error, but the compiler doesn't care and fails anyway, so strna(verb) is used
+ * too. */
+ assert(verb || changes[i].type >= 0);
+ verb = strna(verb);
/* When making changes here, make sure to also change install_error() in dbus-manager.c. */
diff --git a/test/README.testsuite b/test/README.testsuite
index 9174e1695f..48c871f5e8 100644
--- a/test/README.testsuite
+++ b/test/README.testsuite
@@ -170,7 +170,18 @@ places:
if jobs are started and running but no status is visible on the PR, then it is
likely that reporting back is not working
-For infrastructure help, reaching out to Canonical via the #ubuntu-devel channel
+The CI job needs a PPA in order to be accepted, and the upstream-systemd-ci/systemd-ci
+PPA is used. Note that this is necessary even when there are no packages to backport,
+but by default a PPA won't have a repository for a release if there are no packages
+built for it. To work around this problem, when a new empty release is needed the
+mark-suite-dirty tool from the https://git.launchpad.net/ubuntu-archive-tools can
+be used to force the PPA to publish an empty repository, for example:
+
+ $ ./mark-suite-dirty -A ppa:upstream-systemd-ci/ubuntu/systemd-ci -s noble
+
+will create an empty 'noble' repository that can be used for 'noble' CI jobs.
+
+For infrastructure help, reaching out to Canonical via the #ubuntu-quality channel
on libera.chat is an effective way to receive support in general.
Manually running a part of the Ubuntu CI test suite