[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#930234: unblock: unattended-upgrades/1.11.2



Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org

Dear Release Team,

Per your request in #928108 I have uploaded the fixes for making sure
that autopkgtest results are usable for the whole lifetime of each
release.

Please consider accepting the update to testing.

Changes:
 unattended-upgrades (1.11.2) unstable; urgency=medium
 .
   * Test upgrades to -updates and to -proposed in
upgrade-all-security autopkgtest.
     Also enable -updates, too, while testing in Debian.
   * Skip upgrade-all-security test when there are no updates to test with.
     Shortly after a release there may not be security updates against the
     packages used in the chroot used for the test.
   * Test with latest stable in upgrade-all-security on testing
   * Fix testing Debian's updates in upgrade-all-security

Thanks,
Balint
diff -Nru unattended-upgrades-1.11.1/debian/changelog unattended-upgrades-1.11.2/debian/changelog
--- unattended-upgrades-1.11.1/debian/changelog	2019-05-21 09:37:03.000000000 +0200
+++ unattended-upgrades-1.11.2/debian/changelog	2019-06-08 16:59:45.000000000 +0200
@@ -1,3 +1,15 @@
+unattended-upgrades (1.11.2) unstable; urgency=medium
+
+  * Test upgrades to -updates and to -proposed in upgrade-all-security autopkgtest.
+    Also enable -updates, too, while testing in Debian.
+  * Skip upgrade-all-security test when there are no updates to test with.
+    Shortly after a release there may not be security updates against the
+    packages used in the chroot used for the test.
+  * Test with latest stable in upgrade-all-security on testing
+  * Fix testing Debian's updates in upgrade-all-security
+
+ -- Balint Reczey <rbalint@ubuntu.com>  Sat, 08 Jun 2019 16:59:45 +0200
+
 unattended-upgrades (1.11.1) unstable; urgency=medium
 
   * Skip sending email when no package had to be installed, upgraded or removed
diff -Nru unattended-upgrades-1.11.1/debian/tests/common-functions unattended-upgrades-1.11.2/debian/tests/common-functions
--- unattended-upgrades-1.11.1/debian/tests/common-functions	2019-05-21 09:37:03.000000000 +0200
+++ unattended-upgrades-1.11.2/debian/tests/common-functions	2019-06-08 16:59:45.000000000 +0200
@@ -44,44 +44,42 @@
     trap "umount \"$chroot_dir/proc\"; umount \"$chroot_dir/dev/pts\"; rm -rf \"$chroot_dir\"" EXIT
 }
 
-enable_security_updates() {
-    local chroot_dir distro
+# pocket can be "proposed", "updates" or "security", not the actual distro-specific pocket name
+enable_pocket() {
+    local chroot_dir pocket distro mirror_dir_postfix real_pocket
     chroot_dir="$1"
-    distro="$2"
-
+    pocket="$2"
+    distro=$(awk '{ print $3; exit}' "$chroot_dir/etc/apt/sources.list")
     case "$(dpkg-vendor --query Vendor)" in
         "Ubuntu")
-            sed "s/$distro/$distro-security/" < "$chroot_dir/etc/apt/sources.list" \
-                > "$chroot_dir/etc/apt/sources.list.d/security.list"
+            sed "s/$distro/$distro-$pocket/" < "$chroot_dir/etc/apt/sources.list" \
+                > "$chroot_dir/etc/apt/sources.list.d/$pocket.list"
             ;;
         "Debian")
-            echo "deb http://security.debian.org/ $distro/updates main" \
-                 > "$chroot_dir/etc/apt/sources.list.d/security.list"
+            case "$pocket" in
+                proposed)
+                    pocket_dir="${distro}-proposed-updates"
+                    ;;
+                security)
+                    pocket_dir="$distro/updates"
+                    mirror_dir_postfix="-security"
+                    ;;
+                *)
+                    pocket_dir="${distro}-$pocket"
+                    ;;
+            esac
+            sed "s|/debian |/debian$mirror_dir_postfix |;s|$distro|$pocket_dir|" < "$chroot_dir/etc/apt/sources.list" \
+                > "$chroot_dir/etc/apt/sources.list.d/$pocket.list"
             ;;
     esac
 }
 
-disable_security_updates() {
-    local chroot_dir
-    chroot_dir="$1"
-
-    rm "$chroot_dir/etc/apt/sources.list.d/security.list"
-}
-
-enable_release_updates() {
-    local chroot_dir distro
+# pocket can be "proposed", "updates" or "security", not the actual distro-specific pocket name
+disable_pocket() {
+    local chroot_dir pocket
     chroot_dir="$1"
-    distro="$2"
-
-    sed "s/$distro/$distro-updates/" < "$chroot_dir/etc/apt/sources.list" \
-        > "$chroot_dir/etc/apt/sources.list.d/updates.list"
-}
-
-disable_release_updates() {
-    local chroot_dir
-    chroot_dir="$1"
-
-    rm "$chroot_dir/etc/apt/sources.list.d/updates.list"
+    pocket="$2"
+    rm "$chroot_dir/etc/apt/sources.list.d/$pocket.list"
 }
 
 upgrade_python_apt() {
@@ -93,12 +91,12 @@
     # systems are running most likely. This also contains latest stability fixes
     # and speed optimizations, thus speed regressions nd improvements can be
     # tracked in autopkgtest runs.
-    enable_security_updates "$chroot_dir" "$distro"
-    enable_release_updates "$chroot_dir" "$distro"
+    enable_pocket "$chroot_dir" security
+    enable_pocket "$chroot_dir" updates
     chroot_exec "$chroot_dir" apt-get update
     chroot_exec "$chroot_dir" apt-get install -y python3-apt 2>&1
-    disable_release_updates "$chroot_dir"
-    disable_security_updates "$chroot_dir"
+    disable_pocket "$chroot_dir" updates
+    disable_pocket "$chroot_dir" security
     chroot_exec "$chroot_dir" apt-get update
 }
 
diff -Nru unattended-upgrades-1.11.1/debian/tests/control unattended-upgrades-1.11.2/debian/tests/control
--- unattended-upgrades-1.11.1/debian/tests/control	2019-05-21 09:37:03.000000000 +0200
+++ unattended-upgrades-1.11.2/debian/tests/control	2019-06-08 16:59:45.000000000 +0200
@@ -4,7 +4,7 @@
 
 Tests: upgrade-all-security
 Depends: @, @builddeps@, debootstrap, distro-info
-Restrictions: needs-root, build-needed
+Restrictions: needs-root, build-needed, skippable
 
 Tests: upgrade-between-snapshots
 Depends: @, @builddeps@, debootstrap
diff -Nru unattended-upgrades-1.11.1/debian/tests/upgrade-all-security unattended-upgrades-1.11.2/debian/tests/upgrade-all-security
--- unattended-upgrades-1.11.1/debian/tests/upgrade-all-security	2019-05-21 09:37:03.000000000 +0200
+++ unattended-upgrades-1.11.2/debian/tests/upgrade-all-security	2019-06-08 16:59:45.000000000 +0200
@@ -4,13 +4,17 @@
 # On development releases the latest stable release is tested since there are no
 # security updates to test with.
 
+# Also test if packages can be upgraded to -updates and -proposed, but failures
+# in -proposed are ignored since those can be issues in the packages.
+
 set -e
 
 chroot_dir=$AUTOPKGTEST_TMP/chroot
 
 distro="$(lsb_release -c -s)"
 # fall back to latest release on any development release
-if [ "$distro" = sid ] || lsb_release -d -s | grep -q 'development branch'; then
+if [ "$distro" = sid ] || lsb_release -d -s | grep -q 'development branch' \
+       || ( distro-info -t 2> /dev/null && [ "$(distro-info -t)" = "$distro" ] ) ; then
     distro="$(distro-info -s)"
 fi
 
@@ -49,8 +53,14 @@
 chroot_exec "$chroot_dir" bash -c 'apt install -y /tmp/unattended-upgrades_*deb' 2>&1
 
 
-enable_security_updates "$chroot_dir" "$distro"
-enable_release_updates "$chroot_dir" "$distro"
+enable_pocket "$chroot_dir" security
+chroot_exec "$chroot_dir" apt-get update
+if ! chroot_exec "$chroot_dir" apt-get dist-upgrade -s | grep -q "^Ins"; then
+    echo "There are no security upgrades, skipping test..."
+    exit 77
+fi
+
+enable_pocket "$chroot_dir" updates
 chroot_exec "$chroot_dir" apt-get update
 
 # save list of manually installed packages
@@ -62,11 +72,25 @@
 run_u_u "$chroot_dir"
 
 echo "Checking if there is anything left not upgraded:"
-disable_release_updates "$chroot_dir"
+disable_pocket "$chroot_dir" updates
 chroot_exec "$chroot_dir" apt-get update
 chroot_exec "$chroot_dir" apt-get upgrade --with-new-pkgs -s | tee "$chroot_dir/tmp/updates-left"
 
-! grep "/$distro-security " "$chroot_dir/tmp/updates-left" || (echo "Security upgrades are held back! Exiting..." && exit 1)
+! grep "^Inst" "$chroot_dir/tmp/updates-left" || (echo "Security upgrades are held back! Exiting..." && exit 1)
 
 echo "Checking if originally auto-removable packages are kept:"
 chroot_exec "$chroot_dir" dpkg -l hello | grep 'ii  hello'
+
+echo "Checking if package versions from -updates can be upgraded to as well.."
+enable_pocket "$chroot_dir" updates
+chroot_exec "$chroot_dir" apt-get update
+
+echo 'Unattended-Upgrade::Allowed-Origins:: "*:*";' > "$chroot_dir/etc/apt/apt.conf.d/51u-u-all-origins"
+chroot_exec "$chroot_dir" unattended-upgrade --verbose --debug
+
+echo "Checking if package versions from -proposed can be upgraded to as well."
+echo "Failing here does not make the whole test fail because the root cause can be in other packages in -proposed"
+enable_pocket "$chroot_dir" proposed
+chroot_exec "$chroot_dir" apt-get update
+
+chroot_exec "$chroot_dir" unattended-upgrade --verbose --debug || true

Reply to: