diff options
-rwxr-xr-x | .semaphore/semaphore-runner.sh | 9 | ||||
-rw-r--r-- | src/shared/install.c | 7 | ||||
-rw-r--r-- | test/README.testsuite | 13 |
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 |