0s autopkgtest [21:18:19]: starting date and time: 2025-07-08 21:18:19+0000 0s autopkgtest [21:18:19]: git checkout: 508d4a25 a-v-ssh wait_for_ssh: demote "ssh connection failed" to a debug message 0s autopkgtest [21:18:19]: host juju-7f2275-prod-proposed-migration-environment-15; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.7clznabl/out --timeout-copy=6000 --setup-commands /home/ubuntu/autopkgtest-cloud/worker-config-production/setup-canonical.sh --apt-pocket=proposed=src:systemd --apt-upgrade apport --timeout-short=300 --timeout-copy=20000 --timeout-build=20000 --env=ADT_TEST_TRIGGERS=systemd/255.4-1ubuntu8.10 -- ssh -s /home/ubuntu/autopkgtest/ssh-setup/nova -- --flavor autopkgtest-cpu2-ram4-disk20-amd64 --security-groups autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@sto01-2.secgroup --name adt-noble-amd64-apport-20250708-211819-juju-7f2275-prod-proposed-migration-environment-15-b187dafa-ee0f-4625-ab20-9a9154093723 --image adt/ubuntu-noble-amd64-server --keyname testbed-juju-7f2275-prod-proposed-migration-environment-15 --net-id=net_prod-autopkgtest-workers-amd64 -e TERM=linux --mirror=http://ftpmaster.internal/ubuntu/ 3s Creating nova instance adt-noble-amd64-apport-20250708-211819-juju-7f2275-prod-proposed-migration-environment-15-b187dafa-ee0f-4625-ab20-9a9154093723 from image adt/ubuntu-noble-amd64-server-20250708.img (UUID 86eed7e5-af97-4e18-9b72-d5f6b253f87b)... 139s autopkgtest [21:20:38]: testbed dpkg architecture: amd64 139s autopkgtest [21:20:38]: testbed apt version: 2.8.3 140s autopkgtest [21:20:39]: @@@@@@@@@@@@@@@@@@@@ test bed setup 140s autopkgtest [21:20:39]: testbed release detected to be: None 140s autopkgtest [21:20:39]: updating testbed package index (apt update) 141s Get:1 http://ftpmaster.internal/ubuntu noble-proposed InRelease [265 kB] 141s Hit:2 http://ftpmaster.internal/ubuntu noble InRelease 141s Hit:3 http://ftpmaster.internal/ubuntu noble-updates InRelease 141s Hit:4 http://ftpmaster.internal/ubuntu noble-security InRelease 141s Get:5 http://ftpmaster.internal/ubuntu noble-proposed/main Sources [61.9 kB] 141s Get:6 http://ftpmaster.internal/ubuntu noble-proposed/multiverse Sources [11.4 kB] 141s Get:7 http://ftpmaster.internal/ubuntu noble-proposed/restricted Sources [30.3 kB] 141s Get:8 http://ftpmaster.internal/ubuntu noble-proposed/universe Sources [63.2 kB] 141s Get:9 http://ftpmaster.internal/ubuntu noble-proposed/main amd64 Packages [278 kB] 141s Get:10 http://ftpmaster.internal/ubuntu noble-proposed/main i386 Packages [53.2 kB] 141s Get:11 http://ftpmaster.internal/ubuntu noble-proposed/main amd64 c-n-f Metadata [2248 B] 141s Get:12 http://ftpmaster.internal/ubuntu noble-proposed/restricted i386 Packages [9956 B] 141s Get:13 http://ftpmaster.internal/ubuntu noble-proposed/restricted amd64 Packages [434 kB] 141s Get:14 http://ftpmaster.internal/ubuntu noble-proposed/restricted amd64 c-n-f Metadata [116 B] 141s Get:15 http://ftpmaster.internal/ubuntu noble-proposed/universe i386 Packages [347 kB] 141s Get:16 http://ftpmaster.internal/ubuntu noble-proposed/universe amd64 Packages [450 kB] 141s Get:17 http://ftpmaster.internal/ubuntu noble-proposed/universe amd64 c-n-f Metadata [7448 B] 141s Get:18 http://ftpmaster.internal/ubuntu noble-proposed/multiverse i386 Packages [5460 B] 141s Get:19 http://ftpmaster.internal/ubuntu noble-proposed/multiverse amd64 Packages [21.3 kB] 141s Get:20 http://ftpmaster.internal/ubuntu noble-proposed/multiverse amd64 c-n-f Metadata [116 B] 144s Fetched 2040 kB in 1s (2816 kB/s) 144s Reading package lists... 145s autopkgtest [21:20:44]: upgrading testbed (apt dist-upgrade and autopurge) 145s Reading package lists... 145s Building dependency tree... 145s Reading state information... 145s Calculating upgrade...Starting pkgProblemResolver with broken count: 0 145s Starting 2 pkgProblemResolver with broken count: 0 145s Done 146s Entering ResolveByKeep 146s 146s The following packages will be upgraded: 146s bsdextrautils bsdutils eject fdisk libblkid1 libfdisk1 libmount1 146s libnss-systemd libpam-systemd libsmartcols1 libsystemd-shared libsystemd0 146s libudev1 libuuid1 mount systemd systemd-dev systemd-resolved systemd-sysv 146s systemd-timesyncd ubuntu-pro-client ubuntu-pro-client-l10n udev util-linux 146s uuid-runtime 146s 25 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 146s Need to get 11.3 MB of archives. 146s After this operation, 38.9 kB of additional disk space will be used. 146s Get:1 http://ftpmaster.internal/ubuntu noble-updates/main amd64 bsdutils amd64 1:2.39.3-9ubuntu6.3 [95.9 kB] 146s Get:2 http://ftpmaster.internal/ubuntu noble-updates/main amd64 util-linux amd64 2.39.3-9ubuntu6.3 [1128 kB] 146s Get:3 http://ftpmaster.internal/ubuntu noble-updates/main amd64 mount amd64 2.39.3-9ubuntu6.3 [118 kB] 146s Get:4 http://ftpmaster.internal/ubuntu noble-proposed/main amd64 libnss-systemd amd64 255.4-1ubuntu8.10 [159 kB] 146s Get:5 http://ftpmaster.internal/ubuntu noble-proposed/main amd64 systemd-dev all 255.4-1ubuntu8.10 [105 kB] 146s Get:6 http://ftpmaster.internal/ubuntu noble-updates/main amd64 libblkid1 amd64 2.39.3-9ubuntu6.3 [123 kB] 146s Get:7 http://ftpmaster.internal/ubuntu noble-proposed/main amd64 systemd-timesyncd amd64 255.4-1ubuntu8.10 [35.3 kB] 146s Get:8 http://ftpmaster.internal/ubuntu noble-proposed/main amd64 systemd-resolved amd64 255.4-1ubuntu8.10 [296 kB] 146s Get:9 http://ftpmaster.internal/ubuntu noble-proposed/main amd64 libsystemd-shared amd64 255.4-1ubuntu8.10 [2074 kB] 146s Get:10 http://ftpmaster.internal/ubuntu noble-proposed/main amd64 libsystemd0 amd64 255.4-1ubuntu8.10 [434 kB] 146s Get:11 http://ftpmaster.internal/ubuntu noble-proposed/main amd64 systemd-sysv amd64 255.4-1ubuntu8.10 [11.9 kB] 146s Get:12 http://ftpmaster.internal/ubuntu noble-proposed/main amd64 libpam-systemd amd64 255.4-1ubuntu8.10 [235 kB] 146s Get:13 http://ftpmaster.internal/ubuntu noble-proposed/main amd64 systemd amd64 255.4-1ubuntu8.10 [3475 kB] 147s Get:14 http://ftpmaster.internal/ubuntu noble-proposed/main amd64 udev amd64 255.4-1ubuntu8.10 [1873 kB] 147s Get:15 http://ftpmaster.internal/ubuntu noble-proposed/main amd64 libudev1 amd64 255.4-1ubuntu8.10 [176 kB] 147s Get:16 http://ftpmaster.internal/ubuntu noble-updates/main amd64 libmount1 amd64 2.39.3-9ubuntu6.3 [134 kB] 147s Get:17 http://ftpmaster.internal/ubuntu noble-updates/main amd64 libuuid1 amd64 2.39.3-9ubuntu6.3 [35.8 kB] 147s Get:18 http://ftpmaster.internal/ubuntu noble-updates/main amd64 libfdisk1 amd64 2.39.3-9ubuntu6.3 [146 kB] 147s Get:19 http://ftpmaster.internal/ubuntu noble-updates/main amd64 libsmartcols1 amd64 2.39.3-9ubuntu6.3 [65.4 kB] 147s Get:20 http://ftpmaster.internal/ubuntu noble-updates/main amd64 uuid-runtime amd64 2.39.3-9ubuntu6.3 [33.1 kB] 147s Get:21 http://ftpmaster.internal/ubuntu noble-updates/main amd64 eject amd64 2.39.3-9ubuntu6.3 [26.3 kB] 147s Get:22 http://ftpmaster.internal/ubuntu noble-proposed/main amd64 ubuntu-pro-client-l10n amd64 36ubuntu0~24.04 [19.8 kB] 147s Get:23 http://ftpmaster.internal/ubuntu noble-proposed/main amd64 ubuntu-pro-client amd64 36ubuntu0~24.04 [258 kB] 147s Get:24 http://ftpmaster.internal/ubuntu noble-updates/main amd64 bsdextrautils amd64 2.39.3-9ubuntu6.3 [73.7 kB] 147s Get:25 http://ftpmaster.internal/ubuntu noble-updates/main amd64 fdisk amd64 2.39.3-9ubuntu6.3 [122 kB] 147s Fetched 11.3 MB in 1s (13.6 MB/s) 147s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 106307 files and directories currently installed.) 147s Preparing to unpack .../bsdutils_1%3a2.39.3-9ubuntu6.3_amd64.deb ... 147s Unpacking bsdutils (1:2.39.3-9ubuntu6.3) over (1:2.39.3-9ubuntu6.2) ... 147s Setting up bsdutils (1:2.39.3-9ubuntu6.3) ... 147s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 106307 files and directories currently installed.) 147s Preparing to unpack .../util-linux_2.39.3-9ubuntu6.3_amd64.deb ... 147s Unpacking util-linux (2.39.3-9ubuntu6.3) over (2.39.3-9ubuntu6.2) ... 147s Setting up util-linux (2.39.3-9ubuntu6.3) ... 148s fstrim.service is a disabled or a static unit not running, not starting it. 148s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 106307 files and directories currently installed.) 148s Preparing to unpack .../mount_2.39.3-9ubuntu6.3_amd64.deb ... 148s Unpacking mount (2.39.3-9ubuntu6.3) over (2.39.3-9ubuntu6.2) ... 148s Preparing to unpack .../libnss-systemd_255.4-1ubuntu8.10_amd64.deb ... 148s Unpacking libnss-systemd:amd64 (255.4-1ubuntu8.10) over (255.4-1ubuntu8.8) ... 148s Preparing to unpack .../systemd-dev_255.4-1ubuntu8.10_all.deb ... 148s Unpacking systemd-dev (255.4-1ubuntu8.10) over (255.4-1ubuntu8.8) ... 148s Preparing to unpack .../libblkid1_2.39.3-9ubuntu6.3_amd64.deb ... 148s Unpacking libblkid1:amd64 (2.39.3-9ubuntu6.3) over (2.39.3-9ubuntu6.2) ... 148s Setting up libblkid1:amd64 (2.39.3-9ubuntu6.3) ... 148s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 106307 files and directories currently installed.) 148s Preparing to unpack .../systemd-timesyncd_255.4-1ubuntu8.10_amd64.deb ... 148s Unpacking systemd-timesyncd (255.4-1ubuntu8.10) over (255.4-1ubuntu8.8) ... 148s Preparing to unpack .../systemd-resolved_255.4-1ubuntu8.10_amd64.deb ... 148s Unpacking systemd-resolved (255.4-1ubuntu8.10) over (255.4-1ubuntu8.8) ... 148s Preparing to unpack .../libsystemd-shared_255.4-1ubuntu8.10_amd64.deb ... 148s Unpacking libsystemd-shared:amd64 (255.4-1ubuntu8.10) over (255.4-1ubuntu8.8) ... 148s Preparing to unpack .../libsystemd0_255.4-1ubuntu8.10_amd64.deb ... 148s Unpacking libsystemd0:amd64 (255.4-1ubuntu8.10) over (255.4-1ubuntu8.8) ... 148s Setting up libsystemd0:amd64 (255.4-1ubuntu8.10) ... 148s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 106307 files and directories currently installed.) 148s Preparing to unpack .../systemd-sysv_255.4-1ubuntu8.10_amd64.deb ... 148s Unpacking systemd-sysv (255.4-1ubuntu8.10) over (255.4-1ubuntu8.8) ... 148s Preparing to unpack .../libpam-systemd_255.4-1ubuntu8.10_amd64.deb ... 148s Unpacking libpam-systemd:amd64 (255.4-1ubuntu8.10) over (255.4-1ubuntu8.8) ... 148s Preparing to unpack .../systemd_255.4-1ubuntu8.10_amd64.deb ... 148s Unpacking systemd (255.4-1ubuntu8.10) over (255.4-1ubuntu8.8) ... 149s Preparing to unpack .../udev_255.4-1ubuntu8.10_amd64.deb ... 149s Unpacking udev (255.4-1ubuntu8.10) over (255.4-1ubuntu8.8) ... 149s Preparing to unpack .../libudev1_255.4-1ubuntu8.10_amd64.deb ... 149s Unpacking libudev1:amd64 (255.4-1ubuntu8.10) over (255.4-1ubuntu8.8) ... 149s Setting up libudev1:amd64 (255.4-1ubuntu8.10) ... 149s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 106307 files and directories currently installed.) 149s Preparing to unpack .../libmount1_2.39.3-9ubuntu6.3_amd64.deb ... 149s Unpacking libmount1:amd64 (2.39.3-9ubuntu6.3) over (2.39.3-9ubuntu6.2) ... 149s Setting up libmount1:amd64 (2.39.3-9ubuntu6.3) ... 149s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 106307 files and directories currently installed.) 149s Preparing to unpack .../libuuid1_2.39.3-9ubuntu6.3_amd64.deb ... 149s Unpacking libuuid1:amd64 (2.39.3-9ubuntu6.3) over (2.39.3-9ubuntu6.2) ... 149s Setting up libuuid1:amd64 (2.39.3-9ubuntu6.3) ... 149s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 106307 files and directories currently installed.) 149s Preparing to unpack .../libfdisk1_2.39.3-9ubuntu6.3_amd64.deb ... 149s Unpacking libfdisk1:amd64 (2.39.3-9ubuntu6.3) over (2.39.3-9ubuntu6.2) ... 149s Preparing to unpack .../libsmartcols1_2.39.3-9ubuntu6.3_amd64.deb ... 149s Unpacking libsmartcols1:amd64 (2.39.3-9ubuntu6.3) over (2.39.3-9ubuntu6.2) ... 149s Setting up libsmartcols1:amd64 (2.39.3-9ubuntu6.3) ... 149s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 106307 files and directories currently installed.) 149s Preparing to unpack .../0-uuid-runtime_2.39.3-9ubuntu6.3_amd64.deb ... 149s Unpacking uuid-runtime (2.39.3-9ubuntu6.3) over (2.39.3-9ubuntu6.2) ... 149s Preparing to unpack .../1-eject_2.39.3-9ubuntu6.3_amd64.deb ... 149s Unpacking eject (2.39.3-9ubuntu6.3) over (2.39.3-9ubuntu6.2) ... 149s Preparing to unpack .../2-ubuntu-pro-client-l10n_36ubuntu0~24.04_amd64.deb ... 149s Unpacking ubuntu-pro-client-l10n (36ubuntu0~24.04) over (35.1ubuntu0~24.04) ... 149s Preparing to unpack .../3-ubuntu-pro-client_36ubuntu0~24.04_amd64.deb ... 149s Unpacking ubuntu-pro-client (36ubuntu0~24.04) over (35.1ubuntu0~24.04) ... 149s Preparing to unpack .../4-bsdextrautils_2.39.3-9ubuntu6.3_amd64.deb ... 149s Unpacking bsdextrautils (2.39.3-9ubuntu6.3) over (2.39.3-9ubuntu6.2) ... 149s Preparing to unpack .../5-fdisk_2.39.3-9ubuntu6.3_amd64.deb ... 149s Unpacking fdisk (2.39.3-9ubuntu6.3) over (2.39.3-9ubuntu6.2) ... 149s Setting up bsdextrautils (2.39.3-9ubuntu6.3) ... 149s Setting up systemd-dev (255.4-1ubuntu8.10) ... 149s Setting up eject (2.39.3-9ubuntu6.3) ... 149s Setting up libsystemd-shared:amd64 (255.4-1ubuntu8.10) ... 149s Setting up libfdisk1:amd64 (2.39.3-9ubuntu6.3) ... 149s Setting up mount (2.39.3-9ubuntu6.3) ... 149s Setting up uuid-runtime (2.39.3-9ubuntu6.3) ... 150s uuidd.service is a disabled or a static unit not running, not starting it. 150s Setting up ubuntu-pro-client (36ubuntu0~24.04) ... 150s Installing new version of config file /etc/apparmor.d/ubuntu_pro_esm_cache ... 151s Setting up ubuntu-pro-client-l10n (36ubuntu0~24.04) ... 151s Setting up systemd (255.4-1ubuntu8.10) ... 151s Setting up fdisk (2.39.3-9ubuntu6.3) ... 151s Setting up systemd-timesyncd (255.4-1ubuntu8.10) ... 152s Setting up udev (255.4-1ubuntu8.10) ... 152s Setting up systemd-resolved (255.4-1ubuntu8.10) ... 152s Setting up systemd-sysv (255.4-1ubuntu8.10) ... 153s Setting up libnss-systemd:amd64 (255.4-1ubuntu8.10) ... 153s Setting up libpam-systemd:amd64 (255.4-1ubuntu8.10) ... 153s Processing triggers for libc-bin (2.39-0ubuntu8.4) ... 153s Processing triggers for man-db (2.12.0-4build2) ... 153s Processing triggers for dbus (1.14.10-4ubuntu4.1) ... 153s Processing triggers for initramfs-tools (0.142ubuntu25.5) ... 153s update-initramfs: Generating /boot/initrd.img-6.8.0-63-generic 159s Reading package lists... 159s Building dependency tree... 159s Reading state information... 159s Starting pkgProblemResolver with broken count: 0 159s Starting 2 pkgProblemResolver with broken count: 0 159s Done 159s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 159s autopkgtest [21:20:58]: rebooting testbed after setup commands that affected boot 185s autopkgtest [21:21:24]: testbed running kernel: Linux 6.8.0-63-generic #66-Ubuntu SMP PREEMPT_DYNAMIC Fri Jun 13 20:25:30 UTC 2025 187s autopkgtest [21:21:26]: @@@@@@@@@@@@@@@@@@@@ apt-source apport 193s Get:1 http://ftpmaster.internal/ubuntu noble-updates/main apport 2.28.1-0ubuntu3.7 (dsc) [3557 B] 193s Get:2 http://ftpmaster.internal/ubuntu noble-updates/main apport 2.28.1-0ubuntu3.7 (tar) [641 kB] 193s Get:3 http://ftpmaster.internal/ubuntu noble-updates/main apport 2.28.1-0ubuntu3.7 (asc) [833 B] 193s Get:4 http://ftpmaster.internal/ubuntu noble-updates/main apport 2.28.1-0ubuntu3.7 (diff) [204 kB] 193s gpgv: Signature made Wed Jun 4 21:16:19 2025 UTC 193s gpgv: using RSA key 47F22AE7A2754291722BF090F6E140F6DB359E58 193s gpgv: Can't check signature: No public key 193s dpkg-source: warning: cannot verify inline signature for ./apport_2.28.1-0ubuntu3.7.dsc: no acceptable signature found 193s autopkgtest [21:21:32]: testing package apport version 2.28.1-0ubuntu3.7 193s autopkgtest [21:21:32]: build not needed 194s autopkgtest [21:21:33]: test unit-and-integration-tests: preparing testbed 194s Reading package lists... 194s Building dependency tree... 194s Reading state information... 194s Starting pkgProblemResolver with broken count: 0 194s Starting 2 pkgProblemResolver with broken count: 0 195s Done 195s The following NEW packages will be installed: 195s adwaita-icon-theme apport-gtk apport-retrace apport-valgrind at-spi2-common 195s ca-certificates-java cpp cpp-13 cpp-13-x86-64-linux-gnu cpp-x86-64-linux-gnu 195s dconf-gsettings-backend dconf-service default-jdk-headless 195s default-jre-headless dictionaries-common emacsen-common fontconfig gcc 195s gcc-13 gcc-13-base gcc-13-x86-64-linux-gnu gcc-x86-64-linux-gnu gdb 195s gir1.2-atk-1.0 gir1.2-freedesktop gir1.2-gdkpixbuf-2.0 gir1.2-gtk-3.0 195s gir1.2-harfbuzz-0.0 gir1.2-pango-1.0 gir1.2-wnck-3.0 gnome-terminal 195s gnome-terminal-data gsettings-desktop-schemas gtk-update-icon-cache 195s hicolor-icon-theme humanity-icon-theme java-common libasan8 195s libatk-bridge2.0-0t64 libatk1.0-0t64 libatomic1 libatspi2.0-0t64 195s libavahi-client3 libavahi-common-data libavahi-common3 libbabeltrace1 195s libc6-dbg libcairo-gobject2 libcairo2 libcc1-0 libcolord2 libcups2t64 195s libdatrie1 libdconf1 libdebuginfod-common libdebuginfod1t64 libepoxy0 195s libgcc-13-dev libgdk-pixbuf-2.0-0 libgdk-pixbuf2.0-common libgomp1 195s libgraphite2-3 libgtk-3-0t64 libgtk-3-common libhandy-1-0 195s libharfbuzz-gobject0 libharfbuzz0b libhwasan0 libice6 libipt2 libisl23 195s libitm1 liblcms2-2 liblsan0 libmpc3 libpango-1.0-0 libpangocairo-1.0-0 195s libpangoft2-1.0-0 libpangoxft-1.0-0 libpcsclite1 libpixman-1-0 libquadmath0 195s libsm6 libsource-highlight-common libsource-highlight4t64 195s libstartup-notification0 libthai-data libthai0 libtsan2 libubsan1 195s libvte-2.91-0 libvte-2.91-common libwayland-client0 libwayland-cursor0 195s libwayland-egl1 libwhoopsie-preferences0 libwhoopsie0 libwnck-3-0 195s libwnck-3-common libx11-xcb1 libxaw7 libxcb-render0 libxcb-shm0 libxcb-util1 195s libxcomposite1 libxcursor1 libxdamage1 libxfixes3 libxft2 libxi6 195s libxinerama1 libxmu6 libxrandr2 libxrender1 libxres1 libxt6t64 195s openjdk-21-jdk-headless openjdk-21-jre-headless python3-iniconfig 195s python3-packaging python3-pluggy python3-psutil python3-pytest 195s python3-zstandard session-migration ubuntu-mono valgrind 195s whoopsie-preferences x11-common xbitmaps xterm 195s 0 upgraded, 131 newly installed, 0 to remove and 0 not upgraded. 195s Need to get 217 MB of archives. 195s After this operation, 633 MB of additional disk space will be used. 195s Get:1 http://ftpmaster.internal/ubuntu noble-updates/main amd64 libdebuginfod-common all 0.190-1.1ubuntu0.1 [14.6 kB] 195s Get:2 http://ftpmaster.internal/ubuntu noble-updates/main amd64 libgdk-pixbuf2.0-common all 2.42.10+dfsg-3ubuntu3.1 [8024 B] 195s Get:3 http://ftpmaster.internal/ubuntu noble-updates/main amd64 libgdk-pixbuf-2.0-0 amd64 2.42.10+dfsg-3ubuntu3.1 [147 kB] 195s Get:4 http://ftpmaster.internal/ubuntu noble-updates/main amd64 gtk-update-icon-cache amd64 3.24.41-4ubuntu1.3 [51.9 kB] 195s Get:5 http://ftpmaster.internal/ubuntu noble/main amd64 hicolor-icon-theme all 0.17-2 [9976 B] 195s Get:6 http://ftpmaster.internal/ubuntu noble/main amd64 humanity-icon-theme all 0.6.16 [1282 kB] 195s Get:7 http://ftpmaster.internal/ubuntu noble/main amd64 ubuntu-mono all 24.04-0ubuntu1 [151 kB] 195s Get:8 http://ftpmaster.internal/ubuntu noble/main amd64 adwaita-icon-theme all 46.0-1 [723 kB] 195s Get:9 http://ftpmaster.internal/ubuntu noble/main amd64 at-spi2-common all 2.52.0-1build1 [8674 B] 195s Get:10 http://ftpmaster.internal/ubuntu noble/main amd64 libatk1.0-0t64 amd64 2.52.0-1build1 [55.3 kB] 195s Get:11 http://ftpmaster.internal/ubuntu noble/main amd64 gir1.2-atk-1.0 amd64 2.52.0-1build1 [23.1 kB] 195s Get:12 http://ftpmaster.internal/ubuntu noble/main amd64 libpixman-1-0 amd64 0.42.2-1build1 [279 kB] 195s Get:13 http://ftpmaster.internal/ubuntu noble/main amd64 libxcb-render0 amd64 1.15-1ubuntu2 [16.2 kB] 195s Get:14 http://ftpmaster.internal/ubuntu noble/main amd64 libxcb-shm0 amd64 1.15-1ubuntu2 [5756 B] 195s Get:15 http://ftpmaster.internal/ubuntu noble/main amd64 libxrender1 amd64 1:0.9.10-1.1build1 [19.0 kB] 195s Get:16 http://ftpmaster.internal/ubuntu noble/main amd64 libcairo2 amd64 1.18.0-3build1 [566 kB] 195s Get:17 http://ftpmaster.internal/ubuntu noble/main amd64 libcairo-gobject2 amd64 1.18.0-3build1 [127 kB] 195s Get:18 http://ftpmaster.internal/ubuntu noble/main amd64 gir1.2-freedesktop amd64 1.80.1-1 [49.7 kB] 195s Get:19 http://ftpmaster.internal/ubuntu noble-updates/main amd64 gir1.2-gdkpixbuf-2.0 amd64 2.42.10+dfsg-3ubuntu3.1 [9486 B] 195s Get:20 http://ftpmaster.internal/ubuntu noble/main amd64 libgraphite2-3 amd64 1.3.14-2build1 [73.0 kB] 195s Get:21 http://ftpmaster.internal/ubuntu noble/main amd64 libharfbuzz0b amd64 8.3.0-2build2 [469 kB] 195s Get:22 http://ftpmaster.internal/ubuntu noble/main amd64 libharfbuzz-gobject0 amd64 8.3.0-2build2 [34.3 kB] 195s Get:23 http://ftpmaster.internal/ubuntu noble/main amd64 gir1.2-harfbuzz-0.0 amd64 8.3.0-2build2 [44.5 kB] 195s Get:24 http://ftpmaster.internal/ubuntu noble/main amd64 fontconfig amd64 2.15.0-1.1ubuntu2 [180 kB] 195s Get:25 http://ftpmaster.internal/ubuntu noble/main amd64 libthai-data all 0.1.29-2build1 [158 kB] 195s Get:26 http://ftpmaster.internal/ubuntu noble/main amd64 libdatrie1 amd64 0.2.13-3build1 [19.0 kB] 195s Get:27 http://ftpmaster.internal/ubuntu noble/main amd64 libthai0 amd64 0.1.29-2build1 [18.9 kB] 195s Get:28 http://ftpmaster.internal/ubuntu noble/main amd64 libpango-1.0-0 amd64 1.52.1+ds-1build1 [231 kB] 195s Get:29 http://ftpmaster.internal/ubuntu noble/main amd64 libpangoft2-1.0-0 amd64 1.52.1+ds-1build1 [42.5 kB] 195s Get:30 http://ftpmaster.internal/ubuntu noble/main amd64 libpangocairo-1.0-0 amd64 1.52.1+ds-1build1 [28.8 kB] 195s Get:31 http://ftpmaster.internal/ubuntu noble/main amd64 libxft2 amd64 2.3.6-1build1 [45.3 kB] 195s Get:32 http://ftpmaster.internal/ubuntu noble/main amd64 libpangoxft-1.0-0 amd64 1.52.1+ds-1build1 [20.3 kB] 195s Get:33 http://ftpmaster.internal/ubuntu noble/main amd64 gir1.2-pango-1.0 amd64 1.52.1+ds-1build1 [34.8 kB] 195s Get:34 http://ftpmaster.internal/ubuntu noble/main amd64 libxi6 amd64 2:1.8.1-1build1 [32.4 kB] 195s Get:35 http://ftpmaster.internal/ubuntu noble/main amd64 libatspi2.0-0t64 amd64 2.52.0-1build1 [80.5 kB] 195s Get:36 http://ftpmaster.internal/ubuntu noble/main amd64 libatk-bridge2.0-0t64 amd64 2.52.0-1build1 [66.0 kB] 195s Get:37 http://ftpmaster.internal/ubuntu noble/main amd64 liblcms2-2 amd64 2.14-2build1 [161 kB] 195s Get:38 http://ftpmaster.internal/ubuntu noble/main amd64 libcolord2 amd64 1.4.7-1build2 [149 kB] 195s Get:39 http://ftpmaster.internal/ubuntu noble/main amd64 libavahi-common-data amd64 0.8-13ubuntu6 [29.7 kB] 195s Get:40 http://ftpmaster.internal/ubuntu noble/main amd64 libavahi-common3 amd64 0.8-13ubuntu6 [23.3 kB] 195s Get:41 http://ftpmaster.internal/ubuntu noble/main amd64 libavahi-client3 amd64 0.8-13ubuntu6 [26.8 kB] 195s Get:42 http://ftpmaster.internal/ubuntu noble-updates/main amd64 libcups2t64 amd64 2.4.7-1.2ubuntu7.3 [272 kB] 195s Get:43 http://ftpmaster.internal/ubuntu noble/main amd64 libepoxy0 amd64 1.5.10-1build1 [220 kB] 195s Get:44 http://ftpmaster.internal/ubuntu noble/main amd64 libwayland-client0 amd64 1.22.0-2.1build1 [26.4 kB] 195s Get:45 http://ftpmaster.internal/ubuntu noble/main amd64 libwayland-cursor0 amd64 1.22.0-2.1build1 [10.4 kB] 195s Get:46 http://ftpmaster.internal/ubuntu noble/main amd64 libwayland-egl1 amd64 1.22.0-2.1build1 [5628 B] 195s Get:47 http://ftpmaster.internal/ubuntu noble/main amd64 libxcomposite1 amd64 1:0.4.5-1build3 [6320 B] 195s Get:48 http://ftpmaster.internal/ubuntu noble/main amd64 libxfixes3 amd64 1:6.0.0-2build1 [10.8 kB] 195s Get:49 http://ftpmaster.internal/ubuntu noble/main amd64 libxcursor1 amd64 1:1.2.1-1build1 [20.7 kB] 195s Get:50 http://ftpmaster.internal/ubuntu noble/main amd64 libxdamage1 amd64 1:1.1.6-1build1 [6150 B] 195s Get:51 http://ftpmaster.internal/ubuntu noble/main amd64 libxinerama1 amd64 2:1.1.4-3build1 [6396 B] 195s Get:52 http://ftpmaster.internal/ubuntu noble/main amd64 libxrandr2 amd64 2:1.5.2-2build1 [19.7 kB] 195s Get:53 http://ftpmaster.internal/ubuntu noble/main amd64 libdconf1 amd64 0.40.0-4build2 [39.4 kB] 195s Get:54 http://ftpmaster.internal/ubuntu noble/main amd64 dconf-service amd64 0.40.0-4build2 [27.5 kB] 195s Get:55 http://ftpmaster.internal/ubuntu noble/main amd64 dconf-gsettings-backend amd64 0.40.0-4build2 [22.1 kB] 195s Get:56 http://ftpmaster.internal/ubuntu noble-updates/main amd64 libgtk-3-common all 3.24.41-4ubuntu1.3 [1426 kB] 195s Get:57 http://ftpmaster.internal/ubuntu noble-updates/main amd64 libgtk-3-0t64 amd64 3.24.41-4ubuntu1.3 [2913 kB] 195s Get:58 http://ftpmaster.internal/ubuntu noble-updates/main amd64 gir1.2-gtk-3.0 amd64 3.24.41-4ubuntu1.3 [245 kB] 195s Get:59 http://ftpmaster.internal/ubuntu noble/main amd64 libx11-xcb1 amd64 2:1.8.7-1build1 [7800 B] 195s Get:60 http://ftpmaster.internal/ubuntu noble/main amd64 libxcb-util1 amd64 0.4.0-1build3 [10.7 kB] 195s Get:61 http://ftpmaster.internal/ubuntu noble/main amd64 libstartup-notification0 amd64 0.12-6build3 [18.4 kB] 195s Get:62 http://ftpmaster.internal/ubuntu noble/main amd64 libxres1 amd64 2:1.2.1-1build1 [6778 B] 195s Get:63 http://ftpmaster.internal/ubuntu noble/main amd64 libwnck-3-common all 43.0-3build4 [19.5 kB] 195s Get:64 http://ftpmaster.internal/ubuntu noble/main amd64 libwnck-3-0 amd64 43.0-3build4 [113 kB] 195s Get:65 http://ftpmaster.internal/ubuntu noble/main amd64 gir1.2-wnck-3.0 amd64 43.0-3build4 [10.2 kB] 195s Get:66 http://ftpmaster.internal/ubuntu noble/main amd64 gnome-terminal-data all 3.52.0-1ubuntu2 [38.5 kB] 195s Get:67 http://ftpmaster.internal/ubuntu noble/main amd64 session-migration amd64 0.3.9build1 [9034 B] 195s Get:68 http://ftpmaster.internal/ubuntu noble-updates/main amd64 gsettings-desktop-schemas all 46.1-0ubuntu1 [35.6 kB] 195s Get:69 http://ftpmaster.internal/ubuntu noble/main amd64 libhandy-1-0 amd64 1.8.3-1build2 [232 kB] 195s Get:70 http://ftpmaster.internal/ubuntu noble-updates/main amd64 libvte-2.91-common amd64 0.76.0-1ubuntu0.1 [13.5 kB] 195s Get:71 http://ftpmaster.internal/ubuntu noble-updates/main amd64 libvte-2.91-0 amd64 0.76.0-1ubuntu0.1 [230 kB] 195s Get:72 http://ftpmaster.internal/ubuntu noble/main amd64 gnome-terminal amd64 3.52.0-1ubuntu2 [217 kB] 195s Get:73 http://ftpmaster.internal/ubuntu noble/main amd64 xbitmaps all 1.1.1-2.2 [22.4 kB] 195s Get:74 http://ftpmaster.internal/ubuntu noble/main amd64 x11-common all 1:7.7+23ubuntu3 [21.7 kB] 195s Get:75 http://ftpmaster.internal/ubuntu noble/main amd64 libice6 amd64 2:1.0.10-1build3 [41.4 kB] 195s Get:76 http://ftpmaster.internal/ubuntu noble/main amd64 libsm6 amd64 2:1.2.3-1build3 [15.7 kB] 195s Get:77 http://ftpmaster.internal/ubuntu noble/main amd64 libxt6t64 amd64 1:1.2.1-1.2build1 [171 kB] 195s Get:78 http://ftpmaster.internal/ubuntu noble/main amd64 libxmu6 amd64 2:1.1.3-3build2 [47.6 kB] 195s Get:79 http://ftpmaster.internal/ubuntu noble/main amd64 libxaw7 amd64 2:1.0.14-1build2 [187 kB] 195s Get:80 http://ftpmaster.internal/ubuntu noble/universe amd64 xterm amd64 390-1ubuntu3 [883 kB] 195s Get:81 http://ftpmaster.internal/ubuntu noble/main amd64 libwhoopsie-preferences0 amd64 23build3 [14.4 kB] 195s Get:82 http://ftpmaster.internal/ubuntu noble/main amd64 libwhoopsie0 amd64 0.2.77build3 [10.9 kB] 195s Get:83 http://ftpmaster.internal/ubuntu noble/main amd64 whoopsie-preferences amd64 23build3 [8850 B] 195s Get:84 http://ftpmaster.internal/ubuntu noble-updates/main amd64 apport-gtk all 2.28.1-0ubuntu3.7 [9750 B] 195s Get:85 http://ftpmaster.internal/ubuntu noble/main amd64 libbabeltrace1 amd64 1.5.11-3build3 [164 kB] 195s Get:86 http://ftpmaster.internal/ubuntu noble-updates/main amd64 libdebuginfod1t64 amd64 0.190-1.1ubuntu0.1 [17.1 kB] 195s Get:87 http://ftpmaster.internal/ubuntu noble/main amd64 libipt2 amd64 2.0.6-1build1 [45.7 kB] 195s Get:88 http://ftpmaster.internal/ubuntu noble/main amd64 libsource-highlight-common all 3.1.9-4.3build1 [64.2 kB] 195s Get:89 http://ftpmaster.internal/ubuntu noble/main amd64 libsource-highlight4t64 amd64 3.1.9-4.3build1 [258 kB] 195s Get:90 http://ftpmaster.internal/ubuntu noble/main amd64 gdb amd64 15.0.50.20240403-0ubuntu1 [4010 kB] 196s Get:91 http://ftpmaster.internal/ubuntu noble-updates/main amd64 libc6-dbg amd64 2.39-0ubuntu8.4 [7460 kB] 196s Get:92 http://ftpmaster.internal/ubuntu noble-updates/main amd64 apport-retrace all 2.28.1-0ubuntu3.7 [14.4 kB] 196s Get:93 http://ftpmaster.internal/ubuntu noble/main amd64 valgrind amd64 1:3.22.0-0ubuntu3 [14.9 MB] 196s Get:94 http://ftpmaster.internal/ubuntu noble-updates/universe amd64 apport-valgrind all 2.28.1-0ubuntu3.7 [5230 B] 196s Get:95 http://ftpmaster.internal/ubuntu noble/main amd64 ca-certificates-java all 20240118 [11.6 kB] 196s Get:96 http://ftpmaster.internal/ubuntu noble-updates/main amd64 gcc-13-base amd64 13.3.0-6ubuntu2~24.04 [51.5 kB] 196s Get:97 http://ftpmaster.internal/ubuntu noble-updates/main amd64 libisl23 amd64 0.26-3build1.1 [680 kB] 196s Get:98 http://ftpmaster.internal/ubuntu noble-updates/main amd64 libmpc3 amd64 1.3.1-1build1.1 [54.6 kB] 196s Get:99 http://ftpmaster.internal/ubuntu noble-updates/main amd64 cpp-13-x86-64-linux-gnu amd64 13.3.0-6ubuntu2~24.04 [10.7 MB] 196s Get:100 http://ftpmaster.internal/ubuntu noble-updates/main amd64 cpp-13 amd64 13.3.0-6ubuntu2~24.04 [1038 B] 196s Get:101 http://ftpmaster.internal/ubuntu noble/main amd64 cpp-x86-64-linux-gnu amd64 4:13.2.0-7ubuntu1 [5326 B] 196s Get:102 http://ftpmaster.internal/ubuntu noble/main amd64 cpp amd64 4:13.2.0-7ubuntu1 [22.4 kB] 196s Get:103 http://ftpmaster.internal/ubuntu noble/main amd64 java-common all 0.75+exp1 [6798 B] 196s Get:104 http://ftpmaster.internal/ubuntu noble/main amd64 libpcsclite1 amd64 2.0.3-1build1 [21.4 kB] 196s Get:105 http://ftpmaster.internal/ubuntu noble-updates/main amd64 openjdk-21-jre-headless amd64 21.0.7+6~us1-0ubuntu1~24.04 [46.4 MB] 197s Get:106 http://ftpmaster.internal/ubuntu noble/main amd64 default-jre-headless amd64 2:1.21-75+exp1 [3094 B] 197s Get:107 http://ftpmaster.internal/ubuntu noble-updates/main amd64 openjdk-21-jdk-headless amd64 21.0.7+6~us1-0ubuntu1~24.04 [82.6 MB] 198s Get:108 http://ftpmaster.internal/ubuntu noble/main amd64 default-jdk-headless amd64 2:1.21-75+exp1 [960 B] 198s Get:109 http://ftpmaster.internal/ubuntu noble/main amd64 emacsen-common all 3.0.5 [12.1 kB] 198s Get:110 http://ftpmaster.internal/ubuntu noble/main amd64 dictionaries-common all 1.29.7 [188 kB] 198s Get:111 http://ftpmaster.internal/ubuntu noble-updates/main amd64 libcc1-0 amd64 14.2.0-4ubuntu2~24.04 [48.0 kB] 198s Get:112 http://ftpmaster.internal/ubuntu noble-updates/main amd64 libgomp1 amd64 14.2.0-4ubuntu2~24.04 [148 kB] 198s Get:113 http://ftpmaster.internal/ubuntu noble-updates/main amd64 libitm1 amd64 14.2.0-4ubuntu2~24.04 [29.7 kB] 198s Get:114 http://ftpmaster.internal/ubuntu noble-updates/main amd64 libatomic1 amd64 14.2.0-4ubuntu2~24.04 [10.5 kB] 198s Get:115 http://ftpmaster.internal/ubuntu noble-updates/main amd64 libasan8 amd64 14.2.0-4ubuntu2~24.04 [3031 kB] 198s Get:116 http://ftpmaster.internal/ubuntu noble-updates/main amd64 liblsan0 amd64 14.2.0-4ubuntu2~24.04 [1322 kB] 198s Get:117 http://ftpmaster.internal/ubuntu noble-updates/main amd64 libtsan2 amd64 14.2.0-4ubuntu2~24.04 [2772 kB] 198s Get:118 http://ftpmaster.internal/ubuntu noble-updates/main amd64 libubsan1 amd64 14.2.0-4ubuntu2~24.04 [1184 kB] 198s Get:119 http://ftpmaster.internal/ubuntu noble-updates/main amd64 libhwasan0 amd64 14.2.0-4ubuntu2~24.04 [1641 kB] 198s Get:120 http://ftpmaster.internal/ubuntu noble-updates/main amd64 libquadmath0 amd64 14.2.0-4ubuntu2~24.04 [153 kB] 198s Get:121 http://ftpmaster.internal/ubuntu noble-updates/main amd64 libgcc-13-dev amd64 13.3.0-6ubuntu2~24.04 [2681 kB] 198s Get:122 http://ftpmaster.internal/ubuntu noble-updates/main amd64 gcc-13-x86-64-linux-gnu amd64 13.3.0-6ubuntu2~24.04 [21.1 MB] 198s Get:123 http://ftpmaster.internal/ubuntu noble-updates/main amd64 gcc-13 amd64 13.3.0-6ubuntu2~24.04 [494 kB] 198s Get:124 http://ftpmaster.internal/ubuntu noble/main amd64 gcc-x86-64-linux-gnu amd64 4:13.2.0-7ubuntu1 [1212 B] 198s Get:125 http://ftpmaster.internal/ubuntu noble/main amd64 gcc amd64 4:13.2.0-7ubuntu1 [5018 B] 198s Get:126 http://ftpmaster.internal/ubuntu noble/universe amd64 python3-iniconfig all 1.1.1-2 [6024 B] 198s Get:127 http://ftpmaster.internal/ubuntu noble/main amd64 python3-packaging all 24.0-1 [41.1 kB] 198s Get:128 http://ftpmaster.internal/ubuntu noble/universe amd64 python3-pluggy all 1.4.0-1 [20.4 kB] 198s Get:129 http://ftpmaster.internal/ubuntu noble/main amd64 python3-psutil amd64 5.9.8-2build2 [195 kB] 198s Get:130 http://ftpmaster.internal/ubuntu noble/universe amd64 python3-pytest all 7.4.4-1 [305 kB] 198s Get:131 http://ftpmaster.internal/ubuntu noble/universe amd64 python3-zstandard amd64 0.22.0-1build1 [360 kB] 199s Preconfiguring packages ... 199s Fetched 217 MB in 3s (62.5 MB/s) 199s Selecting previously unselected package libdebuginfod-common. 199s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 106307 files and directories currently installed.) 199s Preparing to unpack .../000-libdebuginfod-common_0.190-1.1ubuntu0.1_all.deb ... 199s Unpacking libdebuginfod-common (0.190-1.1ubuntu0.1) ... 199s Selecting previously unselected package libgdk-pixbuf2.0-common. 199s Preparing to unpack .../001-libgdk-pixbuf2.0-common_2.42.10+dfsg-3ubuntu3.1_all.deb ... 199s Unpacking libgdk-pixbuf2.0-common (2.42.10+dfsg-3ubuntu3.1) ... 199s Selecting previously unselected package libgdk-pixbuf-2.0-0:amd64. 199s Preparing to unpack .../002-libgdk-pixbuf-2.0-0_2.42.10+dfsg-3ubuntu3.1_amd64.deb ... 199s Unpacking libgdk-pixbuf-2.0-0:amd64 (2.42.10+dfsg-3ubuntu3.1) ... 199s Selecting previously unselected package gtk-update-icon-cache. 199s Preparing to unpack .../003-gtk-update-icon-cache_3.24.41-4ubuntu1.3_amd64.deb ... 199s Unpacking gtk-update-icon-cache (3.24.41-4ubuntu1.3) ... 199s Selecting previously unselected package hicolor-icon-theme. 199s Preparing to unpack .../004-hicolor-icon-theme_0.17-2_all.deb ... 199s Unpacking hicolor-icon-theme (0.17-2) ... 199s Selecting previously unselected package humanity-icon-theme. 199s Preparing to unpack .../005-humanity-icon-theme_0.6.16_all.deb ... 199s Unpacking humanity-icon-theme (0.6.16) ... 200s Selecting previously unselected package ubuntu-mono. 200s Preparing to unpack .../006-ubuntu-mono_24.04-0ubuntu1_all.deb ... 200s Unpacking ubuntu-mono (24.04-0ubuntu1) ... 200s Selecting previously unselected package adwaita-icon-theme. 200s Preparing to unpack .../007-adwaita-icon-theme_46.0-1_all.deb ... 200s Unpacking adwaita-icon-theme (46.0-1) ... 200s Selecting previously unselected package at-spi2-common. 200s Preparing to unpack .../008-at-spi2-common_2.52.0-1build1_all.deb ... 200s Unpacking at-spi2-common (2.52.0-1build1) ... 200s Selecting previously unselected package libatk1.0-0t64:amd64. 200s Preparing to unpack .../009-libatk1.0-0t64_2.52.0-1build1_amd64.deb ... 200s Unpacking libatk1.0-0t64:amd64 (2.52.0-1build1) ... 200s Selecting previously unselected package gir1.2-atk-1.0:amd64. 200s Preparing to unpack .../010-gir1.2-atk-1.0_2.52.0-1build1_amd64.deb ... 200s Unpacking gir1.2-atk-1.0:amd64 (2.52.0-1build1) ... 200s Selecting previously unselected package libpixman-1-0:amd64. 200s Preparing to unpack .../011-libpixman-1-0_0.42.2-1build1_amd64.deb ... 200s Unpacking libpixman-1-0:amd64 (0.42.2-1build1) ... 200s Selecting previously unselected package libxcb-render0:amd64. 200s Preparing to unpack .../012-libxcb-render0_1.15-1ubuntu2_amd64.deb ... 200s Unpacking libxcb-render0:amd64 (1.15-1ubuntu2) ... 200s Selecting previously unselected package libxcb-shm0:amd64. 200s Preparing to unpack .../013-libxcb-shm0_1.15-1ubuntu2_amd64.deb ... 200s Unpacking libxcb-shm0:amd64 (1.15-1ubuntu2) ... 200s Selecting previously unselected package libxrender1:amd64. 200s Preparing to unpack .../014-libxrender1_1%3a0.9.10-1.1build1_amd64.deb ... 200s Unpacking libxrender1:amd64 (1:0.9.10-1.1build1) ... 200s Selecting previously unselected package libcairo2:amd64. 200s Preparing to unpack .../015-libcairo2_1.18.0-3build1_amd64.deb ... 200s Unpacking libcairo2:amd64 (1.18.0-3build1) ... 200s Selecting previously unselected package libcairo-gobject2:amd64. 200s Preparing to unpack .../016-libcairo-gobject2_1.18.0-3build1_amd64.deb ... 200s Unpacking libcairo-gobject2:amd64 (1.18.0-3build1) ... 200s Selecting previously unselected package gir1.2-freedesktop:amd64. 200s Preparing to unpack .../017-gir1.2-freedesktop_1.80.1-1_amd64.deb ... 200s Unpacking gir1.2-freedesktop:amd64 (1.80.1-1) ... 200s Selecting previously unselected package gir1.2-gdkpixbuf-2.0:amd64. 200s Preparing to unpack .../018-gir1.2-gdkpixbuf-2.0_2.42.10+dfsg-3ubuntu3.1_amd64.deb ... 200s Unpacking gir1.2-gdkpixbuf-2.0:amd64 (2.42.10+dfsg-3ubuntu3.1) ... 200s Selecting previously unselected package libgraphite2-3:amd64. 200s Preparing to unpack .../019-libgraphite2-3_1.3.14-2build1_amd64.deb ... 200s Unpacking libgraphite2-3:amd64 (1.3.14-2build1) ... 200s Selecting previously unselected package libharfbuzz0b:amd64. 200s Preparing to unpack .../020-libharfbuzz0b_8.3.0-2build2_amd64.deb ... 200s Unpacking libharfbuzz0b:amd64 (8.3.0-2build2) ... 200s Selecting previously unselected package libharfbuzz-gobject0:amd64. 200s Preparing to unpack .../021-libharfbuzz-gobject0_8.3.0-2build2_amd64.deb ... 200s Unpacking libharfbuzz-gobject0:amd64 (8.3.0-2build2) ... 200s Selecting previously unselected package gir1.2-harfbuzz-0.0:amd64. 200s Preparing to unpack .../022-gir1.2-harfbuzz-0.0_8.3.0-2build2_amd64.deb ... 200s Unpacking gir1.2-harfbuzz-0.0:amd64 (8.3.0-2build2) ... 200s Selecting previously unselected package fontconfig. 200s Preparing to unpack .../023-fontconfig_2.15.0-1.1ubuntu2_amd64.deb ... 200s Unpacking fontconfig (2.15.0-1.1ubuntu2) ... 200s Selecting previously unselected package libthai-data. 200s Preparing to unpack .../024-libthai-data_0.1.29-2build1_all.deb ... 200s Unpacking libthai-data (0.1.29-2build1) ... 200s Selecting previously unselected package libdatrie1:amd64. 200s Preparing to unpack .../025-libdatrie1_0.2.13-3build1_amd64.deb ... 200s Unpacking libdatrie1:amd64 (0.2.13-3build1) ... 200s Selecting previously unselected package libthai0:amd64. 200s Preparing to unpack .../026-libthai0_0.1.29-2build1_amd64.deb ... 200s Unpacking libthai0:amd64 (0.1.29-2build1) ... 200s Selecting previously unselected package libpango-1.0-0:amd64. 200s Preparing to unpack .../027-libpango-1.0-0_1.52.1+ds-1build1_amd64.deb ... 200s Unpacking libpango-1.0-0:amd64 (1.52.1+ds-1build1) ... 200s Selecting previously unselected package libpangoft2-1.0-0:amd64. 200s Preparing to unpack .../028-libpangoft2-1.0-0_1.52.1+ds-1build1_amd64.deb ... 200s Unpacking libpangoft2-1.0-0:amd64 (1.52.1+ds-1build1) ... 200s Selecting previously unselected package libpangocairo-1.0-0:amd64. 200s Preparing to unpack .../029-libpangocairo-1.0-0_1.52.1+ds-1build1_amd64.deb ... 200s Unpacking libpangocairo-1.0-0:amd64 (1.52.1+ds-1build1) ... 200s Selecting previously unselected package libxft2:amd64. 200s Preparing to unpack .../030-libxft2_2.3.6-1build1_amd64.deb ... 200s Unpacking libxft2:amd64 (2.3.6-1build1) ... 200s Selecting previously unselected package libpangoxft-1.0-0:amd64. 200s Preparing to unpack .../031-libpangoxft-1.0-0_1.52.1+ds-1build1_amd64.deb ... 200s Unpacking libpangoxft-1.0-0:amd64 (1.52.1+ds-1build1) ... 200s Selecting previously unselected package gir1.2-pango-1.0:amd64. 200s Preparing to unpack .../032-gir1.2-pango-1.0_1.52.1+ds-1build1_amd64.deb ... 200s Unpacking gir1.2-pango-1.0:amd64 (1.52.1+ds-1build1) ... 200s Selecting previously unselected package libxi6:amd64. 200s Preparing to unpack .../033-libxi6_2%3a1.8.1-1build1_amd64.deb ... 200s Unpacking libxi6:amd64 (2:1.8.1-1build1) ... 201s Selecting previously unselected package libatspi2.0-0t64:amd64. 201s Preparing to unpack .../034-libatspi2.0-0t64_2.52.0-1build1_amd64.deb ... 201s Unpacking libatspi2.0-0t64:amd64 (2.52.0-1build1) ... 201s Selecting previously unselected package libatk-bridge2.0-0t64:amd64. 201s Preparing to unpack .../035-libatk-bridge2.0-0t64_2.52.0-1build1_amd64.deb ... 201s Unpacking libatk-bridge2.0-0t64:amd64 (2.52.0-1build1) ... 201s Selecting previously unselected package liblcms2-2:amd64. 201s Preparing to unpack .../036-liblcms2-2_2.14-2build1_amd64.deb ... 201s Unpacking liblcms2-2:amd64 (2.14-2build1) ... 201s Selecting previously unselected package libcolord2:amd64. 201s Preparing to unpack .../037-libcolord2_1.4.7-1build2_amd64.deb ... 201s Unpacking libcolord2:amd64 (1.4.7-1build2) ... 201s Selecting previously unselected package libavahi-common-data:amd64. 201s Preparing to unpack .../038-libavahi-common-data_0.8-13ubuntu6_amd64.deb ... 201s Unpacking libavahi-common-data:amd64 (0.8-13ubuntu6) ... 201s Selecting previously unselected package libavahi-common3:amd64. 201s Preparing to unpack .../039-libavahi-common3_0.8-13ubuntu6_amd64.deb ... 201s Unpacking libavahi-common3:amd64 (0.8-13ubuntu6) ... 201s Selecting previously unselected package libavahi-client3:amd64. 201s Preparing to unpack .../040-libavahi-client3_0.8-13ubuntu6_amd64.deb ... 201s Unpacking libavahi-client3:amd64 (0.8-13ubuntu6) ... 201s Selecting previously unselected package libcups2t64:amd64. 201s Preparing to unpack .../041-libcups2t64_2.4.7-1.2ubuntu7.3_amd64.deb ... 201s Unpacking libcups2t64:amd64 (2.4.7-1.2ubuntu7.3) ... 201s Selecting previously unselected package libepoxy0:amd64. 201s Preparing to unpack .../042-libepoxy0_1.5.10-1build1_amd64.deb ... 201s Unpacking libepoxy0:amd64 (1.5.10-1build1) ... 201s Selecting previously unselected package libwayland-client0:amd64. 201s Preparing to unpack .../043-libwayland-client0_1.22.0-2.1build1_amd64.deb ... 201s Unpacking libwayland-client0:amd64 (1.22.0-2.1build1) ... 201s Selecting previously unselected package libwayland-cursor0:amd64. 201s Preparing to unpack .../044-libwayland-cursor0_1.22.0-2.1build1_amd64.deb ... 201s Unpacking libwayland-cursor0:amd64 (1.22.0-2.1build1) ... 201s Selecting previously unselected package libwayland-egl1:amd64. 201s Preparing to unpack .../045-libwayland-egl1_1.22.0-2.1build1_amd64.deb ... 201s Unpacking libwayland-egl1:amd64 (1.22.0-2.1build1) ... 201s Selecting previously unselected package libxcomposite1:amd64. 201s Preparing to unpack .../046-libxcomposite1_1%3a0.4.5-1build3_amd64.deb ... 201s Unpacking libxcomposite1:amd64 (1:0.4.5-1build3) ... 201s Selecting previously unselected package libxfixes3:amd64. 201s Preparing to unpack .../047-libxfixes3_1%3a6.0.0-2build1_amd64.deb ... 201s Unpacking libxfixes3:amd64 (1:6.0.0-2build1) ... 201s Selecting previously unselected package libxcursor1:amd64. 201s Preparing to unpack .../048-libxcursor1_1%3a1.2.1-1build1_amd64.deb ... 201s Unpacking libxcursor1:amd64 (1:1.2.1-1build1) ... 201s Selecting previously unselected package libxdamage1:amd64. 201s Preparing to unpack .../049-libxdamage1_1%3a1.1.6-1build1_amd64.deb ... 201s Unpacking libxdamage1:amd64 (1:1.1.6-1build1) ... 201s Selecting previously unselected package libxinerama1:amd64. 201s Preparing to unpack .../050-libxinerama1_2%3a1.1.4-3build1_amd64.deb ... 201s Unpacking libxinerama1:amd64 (2:1.1.4-3build1) ... 201s Selecting previously unselected package libxrandr2:amd64. 201s Preparing to unpack .../051-libxrandr2_2%3a1.5.2-2build1_amd64.deb ... 201s Unpacking libxrandr2:amd64 (2:1.5.2-2build1) ... 201s Selecting previously unselected package libdconf1:amd64. 201s Preparing to unpack .../052-libdconf1_0.40.0-4build2_amd64.deb ... 201s Unpacking libdconf1:amd64 (0.40.0-4build2) ... 201s Selecting previously unselected package dconf-service. 201s Preparing to unpack .../053-dconf-service_0.40.0-4build2_amd64.deb ... 201s Unpacking dconf-service (0.40.0-4build2) ... 201s Selecting previously unselected package dconf-gsettings-backend:amd64. 201s Preparing to unpack .../054-dconf-gsettings-backend_0.40.0-4build2_amd64.deb ... 201s Unpacking dconf-gsettings-backend:amd64 (0.40.0-4build2) ... 201s Selecting previously unselected package libgtk-3-common. 201s Preparing to unpack .../055-libgtk-3-common_3.24.41-4ubuntu1.3_all.deb ... 201s Unpacking libgtk-3-common (3.24.41-4ubuntu1.3) ... 201s Selecting previously unselected package libgtk-3-0t64:amd64. 201s Preparing to unpack .../056-libgtk-3-0t64_3.24.41-4ubuntu1.3_amd64.deb ... 201s Unpacking libgtk-3-0t64:amd64 (3.24.41-4ubuntu1.3) ... 201s Selecting previously unselected package gir1.2-gtk-3.0:amd64. 201s Preparing to unpack .../057-gir1.2-gtk-3.0_3.24.41-4ubuntu1.3_amd64.deb ... 201s Unpacking gir1.2-gtk-3.0:amd64 (3.24.41-4ubuntu1.3) ... 201s Selecting previously unselected package libx11-xcb1:amd64. 201s Preparing to unpack .../058-libx11-xcb1_2%3a1.8.7-1build1_amd64.deb ... 201s Unpacking libx11-xcb1:amd64 (2:1.8.7-1build1) ... 201s Selecting previously unselected package libxcb-util1:amd64. 201s Preparing to unpack .../059-libxcb-util1_0.4.0-1build3_amd64.deb ... 201s Unpacking libxcb-util1:amd64 (0.4.0-1build3) ... 201s Selecting previously unselected package libstartup-notification0:amd64. 201s Preparing to unpack .../060-libstartup-notification0_0.12-6build3_amd64.deb ... 201s Unpacking libstartup-notification0:amd64 (0.12-6build3) ... 201s Selecting previously unselected package libxres1:amd64. 201s Preparing to unpack .../061-libxres1_2%3a1.2.1-1build1_amd64.deb ... 201s Unpacking libxres1:amd64 (2:1.2.1-1build1) ... 201s Selecting previously unselected package libwnck-3-common. 201s Preparing to unpack .../062-libwnck-3-common_43.0-3build4_all.deb ... 201s Unpacking libwnck-3-common (43.0-3build4) ... 201s Selecting previously unselected package libwnck-3-0:amd64. 201s Preparing to unpack .../063-libwnck-3-0_43.0-3build4_amd64.deb ... 201s Unpacking libwnck-3-0:amd64 (43.0-3build4) ... 201s Selecting previously unselected package gir1.2-wnck-3.0:amd64. 201s Preparing to unpack .../064-gir1.2-wnck-3.0_43.0-3build4_amd64.deb ... 201s Unpacking gir1.2-wnck-3.0:amd64 (43.0-3build4) ... 201s Selecting previously unselected package gnome-terminal-data. 201s Preparing to unpack .../065-gnome-terminal-data_3.52.0-1ubuntu2_all.deb ... 201s Unpacking gnome-terminal-data (3.52.0-1ubuntu2) ... 201s Selecting previously unselected package session-migration. 201s Preparing to unpack .../066-session-migration_0.3.9build1_amd64.deb ... 201s Unpacking session-migration (0.3.9build1) ... 201s Selecting previously unselected package gsettings-desktop-schemas. 201s Preparing to unpack .../067-gsettings-desktop-schemas_46.1-0ubuntu1_all.deb ... 201s Unpacking gsettings-desktop-schemas (46.1-0ubuntu1) ... 201s Selecting previously unselected package libhandy-1-0:amd64. 201s Preparing to unpack .../068-libhandy-1-0_1.8.3-1build2_amd64.deb ... 201s Unpacking libhandy-1-0:amd64 (1.8.3-1build2) ... 201s Selecting previously unselected package libvte-2.91-common. 201s Preparing to unpack .../069-libvte-2.91-common_0.76.0-1ubuntu0.1_amd64.deb ... 201s Unpacking libvte-2.91-common (0.76.0-1ubuntu0.1) ... 201s Selecting previously unselected package libvte-2.91-0:amd64. 201s Preparing to unpack .../070-libvte-2.91-0_0.76.0-1ubuntu0.1_amd64.deb ... 201s Unpacking libvte-2.91-0:amd64 (0.76.0-1ubuntu0.1) ... 201s Selecting previously unselected package gnome-terminal. 201s Preparing to unpack .../071-gnome-terminal_3.52.0-1ubuntu2_amd64.deb ... 201s Unpacking gnome-terminal (3.52.0-1ubuntu2) ... 201s Selecting previously unselected package xbitmaps. 201s Preparing to unpack .../072-xbitmaps_1.1.1-2.2_all.deb ... 201s Unpacking xbitmaps (1.1.1-2.2) ... 201s Selecting previously unselected package x11-common. 201s Preparing to unpack .../073-x11-common_1%3a7.7+23ubuntu3_all.deb ... 201s Unpacking x11-common (1:7.7+23ubuntu3) ... 201s Selecting previously unselected package libice6:amd64. 201s Preparing to unpack .../074-libice6_2%3a1.0.10-1build3_amd64.deb ... 201s Unpacking libice6:amd64 (2:1.0.10-1build3) ... 201s Selecting previously unselected package libsm6:amd64. 202s Preparing to unpack .../075-libsm6_2%3a1.2.3-1build3_amd64.deb ... 202s Unpacking libsm6:amd64 (2:1.2.3-1build3) ... 202s Selecting previously unselected package libxt6t64:amd64. 202s Preparing to unpack .../076-libxt6t64_1%3a1.2.1-1.2build1_amd64.deb ... 202s Unpacking libxt6t64:amd64 (1:1.2.1-1.2build1) ... 202s Selecting previously unselected package libxmu6:amd64. 202s Preparing to unpack .../077-libxmu6_2%3a1.1.3-3build2_amd64.deb ... 202s Unpacking libxmu6:amd64 (2:1.1.3-3build2) ... 202s Selecting previously unselected package libxaw7:amd64. 202s Preparing to unpack .../078-libxaw7_2%3a1.0.14-1build2_amd64.deb ... 202s Unpacking libxaw7:amd64 (2:1.0.14-1build2) ... 202s Selecting previously unselected package xterm. 202s Preparing to unpack .../079-xterm_390-1ubuntu3_amd64.deb ... 202s Unpacking xterm (390-1ubuntu3) ... 202s Selecting previously unselected package libwhoopsie-preferences0. 202s Preparing to unpack .../080-libwhoopsie-preferences0_23build3_amd64.deb ... 202s Unpacking libwhoopsie-preferences0 (23build3) ... 202s Selecting previously unselected package libwhoopsie0:amd64. 202s Preparing to unpack .../081-libwhoopsie0_0.2.77build3_amd64.deb ... 202s Unpacking libwhoopsie0:amd64 (0.2.77build3) ... 202s Selecting previously unselected package whoopsie-preferences. 202s Preparing to unpack .../082-whoopsie-preferences_23build3_amd64.deb ... 202s Unpacking whoopsie-preferences (23build3) ... 202s Selecting previously unselected package apport-gtk. 202s Preparing to unpack .../083-apport-gtk_2.28.1-0ubuntu3.7_all.deb ... 202s Unpacking apport-gtk (2.28.1-0ubuntu3.7) ... 202s Selecting previously unselected package libbabeltrace1:amd64. 202s Preparing to unpack .../084-libbabeltrace1_1.5.11-3build3_amd64.deb ... 202s Unpacking libbabeltrace1:amd64 (1.5.11-3build3) ... 202s Selecting previously unselected package libdebuginfod1t64:amd64. 202s Preparing to unpack .../085-libdebuginfod1t64_0.190-1.1ubuntu0.1_amd64.deb ... 202s Unpacking libdebuginfod1t64:amd64 (0.190-1.1ubuntu0.1) ... 202s Selecting previously unselected package libipt2. 202s Preparing to unpack .../086-libipt2_2.0.6-1build1_amd64.deb ... 202s Unpacking libipt2 (2.0.6-1build1) ... 202s Selecting previously unselected package libsource-highlight-common. 202s Preparing to unpack .../087-libsource-highlight-common_3.1.9-4.3build1_all.deb ... 202s Unpacking libsource-highlight-common (3.1.9-4.3build1) ... 202s Selecting previously unselected package libsource-highlight4t64:amd64. 202s Preparing to unpack .../088-libsource-highlight4t64_3.1.9-4.3build1_amd64.deb ... 202s Unpacking libsource-highlight4t64:amd64 (3.1.9-4.3build1) ... 202s Selecting previously unselected package gdb. 202s Preparing to unpack .../089-gdb_15.0.50.20240403-0ubuntu1_amd64.deb ... 202s Unpacking gdb (15.0.50.20240403-0ubuntu1) ... 202s Selecting previously unselected package libc6-dbg:amd64. 202s Preparing to unpack .../090-libc6-dbg_2.39-0ubuntu8.4_amd64.deb ... 202s Unpacking libc6-dbg:amd64 (2.39-0ubuntu8.4) ... 202s Selecting previously unselected package apport-retrace. 202s Preparing to unpack .../091-apport-retrace_2.28.1-0ubuntu3.7_all.deb ... 202s Unpacking apport-retrace (2.28.1-0ubuntu3.7) ... 202s Selecting previously unselected package valgrind. 202s Preparing to unpack .../092-valgrind_1%3a3.22.0-0ubuntu3_amd64.deb ... 202s Unpacking valgrind (1:3.22.0-0ubuntu3) ... 202s Selecting previously unselected package apport-valgrind. 202s Preparing to unpack .../093-apport-valgrind_2.28.1-0ubuntu3.7_all.deb ... 202s Unpacking apport-valgrind (2.28.1-0ubuntu3.7) ... 202s Selecting previously unselected package ca-certificates-java. 202s Preparing to unpack .../094-ca-certificates-java_20240118_all.deb ... 202s Unpacking ca-certificates-java (20240118) ... 202s Selecting previously unselected package gcc-13-base:amd64. 202s Preparing to unpack .../095-gcc-13-base_13.3.0-6ubuntu2~24.04_amd64.deb ... 202s Unpacking gcc-13-base:amd64 (13.3.0-6ubuntu2~24.04) ... 202s Selecting previously unselected package libisl23:amd64. 202s Preparing to unpack .../096-libisl23_0.26-3build1.1_amd64.deb ... 202s Unpacking libisl23:amd64 (0.26-3build1.1) ... 202s Selecting previously unselected package libmpc3:amd64. 202s Preparing to unpack .../097-libmpc3_1.3.1-1build1.1_amd64.deb ... 202s Unpacking libmpc3:amd64 (1.3.1-1build1.1) ... 202s Selecting previously unselected package cpp-13-x86-64-linux-gnu. 203s Preparing to unpack .../098-cpp-13-x86-64-linux-gnu_13.3.0-6ubuntu2~24.04_amd64.deb ... 203s Unpacking cpp-13-x86-64-linux-gnu (13.3.0-6ubuntu2~24.04) ... 203s Selecting previously unselected package cpp-13. 203s Preparing to unpack .../099-cpp-13_13.3.0-6ubuntu2~24.04_amd64.deb ... 203s Unpacking cpp-13 (13.3.0-6ubuntu2~24.04) ... 203s Selecting previously unselected package cpp-x86-64-linux-gnu. 203s Preparing to unpack .../100-cpp-x86-64-linux-gnu_4%3a13.2.0-7ubuntu1_amd64.deb ... 203s Unpacking cpp-x86-64-linux-gnu (4:13.2.0-7ubuntu1) ... 203s Selecting previously unselected package cpp. 203s Preparing to unpack .../101-cpp_4%3a13.2.0-7ubuntu1_amd64.deb ... 203s Unpacking cpp (4:13.2.0-7ubuntu1) ... 203s Selecting previously unselected package java-common. 203s Preparing to unpack .../102-java-common_0.75+exp1_all.deb ... 203s Unpacking java-common (0.75+exp1) ... 203s Selecting previously unselected package libpcsclite1:amd64. 203s Preparing to unpack .../103-libpcsclite1_2.0.3-1build1_amd64.deb ... 203s Unpacking libpcsclite1:amd64 (2.0.3-1build1) ... 203s Selecting previously unselected package openjdk-21-jre-headless:amd64. 203s Preparing to unpack .../104-openjdk-21-jre-headless_21.0.7+6~us1-0ubuntu1~24.04_amd64.deb ... 203s Unpacking openjdk-21-jre-headless:amd64 (21.0.7+6~us1-0ubuntu1~24.04) ... 203s Selecting previously unselected package default-jre-headless. 204s Preparing to unpack .../105-default-jre-headless_2%3a1.21-75+exp1_amd64.deb ... 204s Unpacking default-jre-headless (2:1.21-75+exp1) ... 204s Selecting previously unselected package openjdk-21-jdk-headless:amd64. 204s Preparing to unpack .../106-openjdk-21-jdk-headless_21.0.7+6~us1-0ubuntu1~24.04_amd64.deb ... 204s Unpacking openjdk-21-jdk-headless:amd64 (21.0.7+6~us1-0ubuntu1~24.04) ... 204s Selecting previously unselected package default-jdk-headless. 204s Preparing to unpack .../107-default-jdk-headless_2%3a1.21-75+exp1_amd64.deb ... 204s Unpacking default-jdk-headless (2:1.21-75+exp1) ... 204s Selecting previously unselected package emacsen-common. 204s Preparing to unpack .../108-emacsen-common_3.0.5_all.deb ... 204s Unpacking emacsen-common (3.0.5) ... 204s Selecting previously unselected package dictionaries-common. 204s Preparing to unpack .../109-dictionaries-common_1.29.7_all.deb ... 204s Adding 'diversion of /usr/share/dict/words to /usr/share/dict/words.pre-dictionaries-common by dictionaries-common' 204s Unpacking dictionaries-common (1.29.7) ... 204s Selecting previously unselected package libcc1-0:amd64. 204s Preparing to unpack .../110-libcc1-0_14.2.0-4ubuntu2~24.04_amd64.deb ... 204s Unpacking libcc1-0:amd64 (14.2.0-4ubuntu2~24.04) ... 204s Selecting previously unselected package libgomp1:amd64. 204s Preparing to unpack .../111-libgomp1_14.2.0-4ubuntu2~24.04_amd64.deb ... 204s Unpacking libgomp1:amd64 (14.2.0-4ubuntu2~24.04) ... 204s Selecting previously unselected package libitm1:amd64. 204s Preparing to unpack .../112-libitm1_14.2.0-4ubuntu2~24.04_amd64.deb ... 204s Unpacking libitm1:amd64 (14.2.0-4ubuntu2~24.04) ... 204s Selecting previously unselected package libatomic1:amd64. 204s Preparing to unpack .../113-libatomic1_14.2.0-4ubuntu2~24.04_amd64.deb ... 204s Unpacking libatomic1:amd64 (14.2.0-4ubuntu2~24.04) ... 204s Selecting previously unselected package libasan8:amd64. 204s Preparing to unpack .../114-libasan8_14.2.0-4ubuntu2~24.04_amd64.deb ... 204s Unpacking libasan8:amd64 (14.2.0-4ubuntu2~24.04) ... 204s Selecting previously unselected package liblsan0:amd64. 204s Preparing to unpack .../115-liblsan0_14.2.0-4ubuntu2~24.04_amd64.deb ... 204s Unpacking liblsan0:amd64 (14.2.0-4ubuntu2~24.04) ... 204s Selecting previously unselected package libtsan2:amd64. 204s Preparing to unpack .../116-libtsan2_14.2.0-4ubuntu2~24.04_amd64.deb ... 204s Unpacking libtsan2:amd64 (14.2.0-4ubuntu2~24.04) ... 204s Selecting previously unselected package libubsan1:amd64. 204s Preparing to unpack .../117-libubsan1_14.2.0-4ubuntu2~24.04_amd64.deb ... 204s Unpacking libubsan1:amd64 (14.2.0-4ubuntu2~24.04) ... 204s Selecting previously unselected package libhwasan0:amd64. 204s Preparing to unpack .../118-libhwasan0_14.2.0-4ubuntu2~24.04_amd64.deb ... 204s Unpacking libhwasan0:amd64 (14.2.0-4ubuntu2~24.04) ... 204s Selecting previously unselected package libquadmath0:amd64. 204s Preparing to unpack .../119-libquadmath0_14.2.0-4ubuntu2~24.04_amd64.deb ... 204s Unpacking libquadmath0:amd64 (14.2.0-4ubuntu2~24.04) ... 204s Selecting previously unselected package libgcc-13-dev:amd64. 204s Preparing to unpack .../120-libgcc-13-dev_13.3.0-6ubuntu2~24.04_amd64.deb ... 204s Unpacking libgcc-13-dev:amd64 (13.3.0-6ubuntu2~24.04) ... 204s Selecting previously unselected package gcc-13-x86-64-linux-gnu. 204s Preparing to unpack .../121-gcc-13-x86-64-linux-gnu_13.3.0-6ubuntu2~24.04_amd64.deb ... 204s Unpacking gcc-13-x86-64-linux-gnu (13.3.0-6ubuntu2~24.04) ... 205s Selecting previously unselected package gcc-13. 205s Preparing to unpack .../122-gcc-13_13.3.0-6ubuntu2~24.04_amd64.deb ... 205s Unpacking gcc-13 (13.3.0-6ubuntu2~24.04) ... 205s Selecting previously unselected package gcc-x86-64-linux-gnu. 205s Preparing to unpack .../123-gcc-x86-64-linux-gnu_4%3a13.2.0-7ubuntu1_amd64.deb ... 205s Unpacking gcc-x86-64-linux-gnu (4:13.2.0-7ubuntu1) ... 205s Selecting previously unselected package gcc. 205s Preparing to unpack .../124-gcc_4%3a13.2.0-7ubuntu1_amd64.deb ... 205s Unpacking gcc (4:13.2.0-7ubuntu1) ... 205s Selecting previously unselected package python3-iniconfig. 205s Preparing to unpack .../125-python3-iniconfig_1.1.1-2_all.deb ... 205s Unpacking python3-iniconfig (1.1.1-2) ... 205s Selecting previously unselected package python3-packaging. 205s Preparing to unpack .../126-python3-packaging_24.0-1_all.deb ... 205s Unpacking python3-packaging (24.0-1) ... 205s Selecting previously unselected package python3-pluggy. 205s Preparing to unpack .../127-python3-pluggy_1.4.0-1_all.deb ... 205s Unpacking python3-pluggy (1.4.0-1) ... 205s Selecting previously unselected package python3-psutil. 205s Preparing to unpack .../128-python3-psutil_5.9.8-2build2_amd64.deb ... 205s Unpacking python3-psutil (5.9.8-2build2) ... 205s Selecting previously unselected package python3-pytest. 205s Preparing to unpack .../129-python3-pytest_7.4.4-1_all.deb ... 205s Unpacking python3-pytest (7.4.4-1) ... 205s Selecting previously unselected package python3-zstandard. 205s Preparing to unpack .../130-python3-zstandard_0.22.0-1build1_amd64.deb ... 205s Unpacking python3-zstandard (0.22.0-1build1) ... 205s Setting up libgraphite2-3:amd64 (1.3.14-2build1) ... 205s Setting up liblcms2-2:amd64 (2.14-2build1) ... 205s Setting up python3-iniconfig (1.1.1-2) ... 205s Setting up libpixman-1-0:amd64 (0.42.2-1build1) ... 205s Setting up libx11-xcb1:amd64 (2:1.8.7-1build1) ... 205s Setting up libwhoopsie-preferences0 (23build3) ... 205s Setting up session-migration (0.3.9build1) ... 205s Created symlink /etc/systemd/user/graphical-session-pre.target.wants/session-migration.service → /usr/lib/systemd/user/session-migration.service. 205s Setting up fontconfig (2.15.0-1.1ubuntu2) ... 207s Regenerating fonts cache... done. 207s Setting up libxdamage1:amd64 (1:1.1.6-1build1) ... 207s Setting up hicolor-icon-theme (0.17-2) ... 207s Setting up libxi6:amd64 (2:1.8.1-1build1) ... 207s Setting up java-common (0.75+exp1) ... 207s Setting up libxrender1:amd64 (1:0.9.10-1.1build1) ... 207s Setting up libvte-2.91-common (0.76.0-1ubuntu0.1) ... 207s Setting up libdatrie1:amd64 (0.2.13-3build1) ... 207s Setting up libdebuginfod-common (0.190-1.1ubuntu0.1) ... 207s Setting up libxcb-render0:amd64 (1.15-1ubuntu2) ... 207s Setting up libwnck-3-common (43.0-3build4) ... 207s Setting up libgdk-pixbuf2.0-common (2.42.10+dfsg-3ubuntu3.1) ... 207s Setting up x11-common (1:7.7+23ubuntu3) ... 207s Setting up libxcb-shm0:amd64 (1.15-1ubuntu2) ... 207s Setting up libwhoopsie0:amd64 (0.2.77build3) ... 207s Setting up libgomp1:amd64 (14.2.0-4ubuntu2~24.04) ... 207s Setting up libcairo2:amd64 (1.18.0-3build1) ... 207s Setting up libcolord2:amd64 (1.4.7-1build2) ... 207s Setting up python3-psutil (5.9.8-2build2) ... 208s Setting up gnome-terminal-data (3.52.0-1ubuntu2) ... 208s Setting up libsource-highlight-common (3.1.9-4.3build1) ... 208s Setting up libxcb-util1:amd64 (0.4.0-1build3) ... 208s Setting up libc6-dbg:amd64 (2.39-0ubuntu8.4) ... 208s Setting up libdconf1:amd64 (0.40.0-4build2) ... 208s Setting up python3-zstandard (0.22.0-1build1) ... 208s Setting up python3-packaging (24.0-1) ... 208s Setting up gcc-13-base:amd64 (13.3.0-6ubuntu2~24.04) ... 208s Setting up emacsen-common (3.0.5) ... 208s Setting up libepoxy0:amd64 (1.5.10-1build1) ... 208s Setting up libxfixes3:amd64 (1:6.0.0-2build1) ... 208s Setting up libavahi-common-data:amd64 (0.8-13ubuntu6) ... 208s Setting up libatspi2.0-0t64:amd64 (2.52.0-1build1) ... 208s Setting up libquadmath0:amd64 (14.2.0-4ubuntu2~24.04) ... 208s Setting up libxinerama1:amd64 (2:1.1.4-3build1) ... 208s Setting up libmpc3:amd64 (1.3.1-1build1.1) ... 208s Setting up libatomic1:amd64 (14.2.0-4ubuntu2~24.04) ... 208s Setting up libxrandr2:amd64 (2:1.5.2-2build1) ... 208s Setting up libipt2 (2.0.6-1build1) ... 208s Setting up libpcsclite1:amd64 (2.0.3-1build1) ... 208s Setting up libbabeltrace1:amd64 (1.5.11-3build3) ... 208s Setting up python3-pluggy (1.4.0-1) ... 208s Setting up libubsan1:amd64 (14.2.0-4ubuntu2~24.04) ... 208s Setting up libhwasan0:amd64 (14.2.0-4ubuntu2~24.04) ... 208s Setting up at-spi2-common (2.52.0-1build1) ... 208s Setting up libasan8:amd64 (14.2.0-4ubuntu2~24.04) ... 208s Setting up libharfbuzz0b:amd64 (8.3.0-2build2) ... 208s Setting up libthai-data (0.1.29-2build1) ... 208s Setting up libgdk-pixbuf-2.0-0:amd64 (2.42.10+dfsg-3ubuntu3.1) ... 208s Setting up libcairo-gobject2:amd64 (1.18.0-3build1) ... 208s Setting up libwayland-egl1:amd64 (1.22.0-2.1build1) ... 208s Setting up libtsan2:amd64 (14.2.0-4ubuntu2~24.04) ... 208s Setting up ca-certificates-java (20240118) ... 208s No JRE found. Skipping Java certificates setup. 208s Setting up libisl23:amd64 (0.26-3build1.1) ... 208s Setting up valgrind (1:3.22.0-0ubuntu3) ... 208s Setting up libxcomposite1:amd64 (1:0.4.5-1build3) ... 208s Setting up libcc1-0:amd64 (14.2.0-4ubuntu2~24.04) ... 208s Setting up xbitmaps (1.1.1-2.2) ... 208s Setting up liblsan0:amd64 (14.2.0-4ubuntu2~24.04) ... 208s Setting up libitm1:amd64 (14.2.0-4ubuntu2~24.04) ... 208s Setting up libxres1:amd64 (2:1.2.1-1build1) ... 208s Setting up libstartup-notification0:amd64 (0.12-6build3) ... 208s Setting up libwayland-client0:amd64 (1.22.0-2.1build1) ... 208s Setting up gtk-update-icon-cache (3.24.41-4ubuntu1.3) ... 208s Setting up libdebuginfod1t64:amd64 (0.190-1.1ubuntu0.1) ... 208s Setting up libice6:amd64 (2:1.0.10-1build3) ... 208s Setting up libxft2:amd64 (2.3.6-1build1) ... 208s Setting up gir1.2-freedesktop:amd64 (1.80.1-1) ... 208s Setting up libatk1.0-0t64:amd64 (2.52.0-1build1) ... 208s Setting up openjdk-21-jre-headless:amd64 (21.0.7+6~us1-0ubuntu1~24.04) ... 208s update-alternatives: using /usr/lib/jvm/java-21-openjdk-amd64/bin/java to provide /usr/bin/java (java) in auto mode 208s update-alternatives: using /usr/lib/jvm/java-21-openjdk-amd64/bin/jpackage to provide /usr/bin/jpackage (jpackage) in auto mode 208s update-alternatives: using /usr/lib/jvm/java-21-openjdk-amd64/bin/keytool to provide /usr/bin/keytool (keytool) in auto mode 208s update-alternatives: using /usr/lib/jvm/java-21-openjdk-amd64/bin/rmiregistry to provide /usr/bin/rmiregistry (rmiregistry) in auto mode 208s update-alternatives: using /usr/lib/jvm/java-21-openjdk-amd64/lib/jexec to provide /usr/bin/jexec (jexec) in auto mode 208s Setting up gir1.2-gdkpixbuf-2.0:amd64 (2.42.10+dfsg-3ubuntu3.1) ... 208s Setting up dictionaries-common (1.29.7) ... 208s Setting up gir1.2-atk-1.0:amd64 (2.52.0-1build1) ... 208s Setting up cpp-13-x86-64-linux-gnu (13.3.0-6ubuntu2~24.04) ... 208s Setting up python3-pytest (7.4.4-1) ... 208s Setting up libxcursor1:amd64 (1:1.2.1-1build1) ... 208s Setting up libavahi-common3:amd64 (0.8-13ubuntu6) ... 208s Setting up apport-valgrind (2.28.1-0ubuntu3.7) ... 208s Setting up dconf-service (0.40.0-4build2) ... 208s Setting up libsource-highlight4t64:amd64 (3.1.9-4.3build1) ... 208s Setting up whoopsie-preferences (23build3) ... 208s Setting up libharfbuzz-gobject0:amd64 (8.3.0-2build2) ... 208s Setting up gir1.2-harfbuzz-0.0:amd64 (8.3.0-2build2) ... 208s Setting up libthai0:amd64 (0.1.29-2build1) ... 208s Setting up gdb (15.0.50.20240403-0ubuntu1) ... 208s Setting up libgcc-13-dev:amd64 (13.3.0-6ubuntu2~24.04) ... 208s Setting up libwayland-cursor0:amd64 (1.22.0-2.1build1) ... 208s Setting up libsm6:amd64 (2:1.2.3-1build3) ... 208s Setting up libavahi-client3:amd64 (0.8-13ubuntu6) ... 208s Setting up cpp-x86-64-linux-gnu (4:13.2.0-7ubuntu1) ... 208s Setting up libatk-bridge2.0-0t64:amd64 (2.52.0-1build1) ... 208s Setting up cpp-13 (13.3.0-6ubuntu2~24.04) ... 208s Setting up dconf-gsettings-backend:amd64 (0.40.0-4build2) ... 208s Setting up gcc-13-x86-64-linux-gnu (13.3.0-6ubuntu2~24.04) ... 208s Setting up libpango-1.0-0:amd64 (1.52.1+ds-1build1) ... 208s Setting up apport-retrace (2.28.1-0ubuntu3.7) ... 208s Setting up libxt6t64:amd64 (1:1.2.1-1.2build1) ... 208s Setting up gcc-13 (13.3.0-6ubuntu2~24.04) ... 208s Setting up cpp (4:13.2.0-7ubuntu1) ... 208s Setting up libpangoft2-1.0-0:amd64 (1.52.1+ds-1build1) ... 208s Setting up libcups2t64:amd64 (2.4.7-1.2ubuntu7.3) ... 208s Setting up libgtk-3-common (3.24.41-4ubuntu1.3) ... 208s Setting up libpangocairo-1.0-0:amd64 (1.52.1+ds-1build1) ... 208s Setting up gsettings-desktop-schemas (46.1-0ubuntu1) ... 208s Setting up libxmu6:amd64 (2:1.1.3-3build2) ... 208s Setting up libpangoxft-1.0-0:amd64 (1.52.1+ds-1build1) ... 208s Setting up gcc-x86-64-linux-gnu (4:13.2.0-7ubuntu1) ... 208s Setting up libxaw7:amd64 (2:1.0.14-1build2) ... 208s Setting up gcc (4:13.2.0-7ubuntu1) ... 208s Setting up gir1.2-pango-1.0:amd64 (1.52.1+ds-1build1) ... 208s Setting up xterm (390-1ubuntu3) ... 208s update-alternatives: using /usr/bin/xterm to provide /usr/bin/x-terminal-emulator (x-terminal-emulator) in auto mode 209s update-alternatives: using /usr/bin/lxterm to provide /usr/bin/x-terminal-emulator (x-terminal-emulator) in auto mode 209s Setting up adwaita-icon-theme (46.0-1) ... 209s update-alternatives: using /usr/share/icons/Adwaita/cursor.theme to provide /usr/share/icons/default/index.theme (x-cursor-theme) in auto mode 209s Setting up humanity-icon-theme (0.6.16) ... 209s Setting up ubuntu-mono (24.04-0ubuntu1) ... 209s Processing triggers for man-db (2.12.0-4build2) ... 210s Processing triggers for libglib2.0-0t64:amd64 (2.80.0-6ubuntu3.4) ... 210s Processing triggers for dbus (1.14.10-4ubuntu4.1) ... 210s Setting up libgtk-3-0t64:amd64 (3.24.41-4ubuntu1.3) ... 210s Setting up libwnck-3-0:amd64 (43.0-3build4) ... 210s Setting up libhandy-1-0:amd64 (1.8.3-1build2) ... 210s Processing triggers for libc-bin (2.39-0ubuntu8.4) ... 210s Setting up gir1.2-gtk-3.0:amd64 (3.24.41-4ubuntu1.3) ... 210s Setting up libvte-2.91-0:amd64 (0.76.0-1ubuntu0.1) ... 210s Setting up gir1.2-wnck-3.0:amd64 (43.0-3build4) ... 210s Setting up apport-gtk (2.28.1-0ubuntu3.7) ... 210s Setting up gnome-terminal (3.52.0-1ubuntu2) ... 210s update-alternatives: using /usr/bin/gnome-terminal.wrapper to provide /usr/bin/x-terminal-emulator (x-terminal-emulator) in auto mode 210s Processing triggers for ca-certificates-java (20240118) ... 210s Adding debian:ACCVRAIZ1.pem 210s Adding debian:AC_RAIZ_FNMT-RCM.pem 210s Adding debian:AC_RAIZ_FNMT-RCM_SERVIDORES_SEGUROS.pem 210s Adding debian:ANF_Secure_Server_Root_CA.pem 210s Adding debian:Actalis_Authentication_Root_CA.pem 210s Adding debian:AffirmTrust_Commercial.pem 210s Adding debian:AffirmTrust_Networking.pem 210s Adding debian:AffirmTrust_Premium.pem 210s Adding debian:AffirmTrust_Premium_ECC.pem 210s Adding debian:Amazon_Root_CA_1.pem 210s Adding debian:Amazon_Root_CA_2.pem 210s Adding debian:Amazon_Root_CA_3.pem 210s Adding debian:Amazon_Root_CA_4.pem 210s Adding debian:Atos_TrustedRoot_2011.pem 210s Adding debian:Atos_TrustedRoot_Root_CA_ECC_TLS_2021.pem 210s Adding debian:Atos_TrustedRoot_Root_CA_RSA_TLS_2021.pem 210s Adding debian:Autoridad_de_Certificacion_Firmaprofesional_CIF_A62634068.pem 210s Adding debian:BJCA_Global_Root_CA1.pem 210s Adding debian:BJCA_Global_Root_CA2.pem 210s Adding debian:Baltimore_CyberTrust_Root.pem 210s Adding debian:Buypass_Class_2_Root_CA.pem 210s Adding debian:Buypass_Class_3_Root_CA.pem 210s Adding debian:CA_Disig_Root_R2.pem 210s Adding debian:CFCA_EV_ROOT.pem 210s Adding debian:COMODO_Certification_Authority.pem 210s Adding debian:COMODO_ECC_Certification_Authority.pem 210s Adding debian:COMODO_RSA_Certification_Authority.pem 210s Adding debian:Certainly_Root_E1.pem 210s Adding debian:Certainly_Root_R1.pem 210s Adding debian:Certigna.pem 210s Adding debian:Certigna_Root_CA.pem 210s Adding debian:Certum_EC-384_CA.pem 210s Adding debian:Certum_Trusted_Network_CA.pem 210s Adding debian:Certum_Trusted_Network_CA_2.pem 210s Adding debian:Certum_Trusted_Root_CA.pem 210s Adding debian:CommScope_Public_Trust_ECC_Root-01.pem 210s Adding debian:CommScope_Public_Trust_ECC_Root-02.pem 210s Adding debian:CommScope_Public_Trust_RSA_Root-01.pem 210s Adding debian:CommScope_Public_Trust_RSA_Root-02.pem 210s Adding debian:Comodo_AAA_Services_root.pem 210s Adding debian:D-TRUST_BR_Root_CA_1_2020.pem 210s Adding debian:D-TRUST_EV_Root_CA_1_2020.pem 210s Adding debian:D-TRUST_Root_Class_3_CA_2_2009.pem 210s Adding debian:D-TRUST_Root_Class_3_CA_2_EV_2009.pem 210s Adding debian:DigiCert_Assured_ID_Root_CA.pem 210s Adding debian:DigiCert_Assured_ID_Root_G2.pem 210s Adding debian:DigiCert_Assured_ID_Root_G3.pem 210s Adding debian:DigiCert_Global_Root_CA.pem 210s Adding debian:DigiCert_Global_Root_G2.pem 210s Adding debian:DigiCert_Global_Root_G3.pem 210s Adding debian:DigiCert_High_Assurance_EV_Root_CA.pem 210s Adding debian:DigiCert_TLS_ECC_P384_Root_G5.pem 210s Adding debian:DigiCert_TLS_RSA4096_Root_G5.pem 210s Adding debian:DigiCert_Trusted_Root_G4.pem 210s Adding debian:Entrust.net_Premium_2048_Secure_Server_CA.pem 210s Adding debian:Entrust_Root_Certification_Authority.pem 210s Adding debian:Entrust_Root_Certification_Authority_-_EC1.pem 210s Adding debian:Entrust_Root_Certification_Authority_-_G2.pem 210s Adding debian:Entrust_Root_Certification_Authority_-_G4.pem 210s Adding debian:GDCA_TrustAUTH_R5_ROOT.pem 210s Adding debian:GLOBALTRUST_2020.pem 210s Adding debian:GTS_Root_R1.pem 210s Adding debian:GTS_Root_R2.pem 210s Adding debian:GTS_Root_R3.pem 211s Adding debian:GTS_Root_R4.pem 211s Adding debian:GlobalSign_ECC_Root_CA_-_R4.pem 211s Adding debian:GlobalSign_ECC_Root_CA_-_R5.pem 211s Adding debian:GlobalSign_Root_CA.pem 211s Adding debian:GlobalSign_Root_CA_-_R3.pem 211s Adding debian:GlobalSign_Root_CA_-_R6.pem 211s Adding debian:GlobalSign_Root_E46.pem 211s Adding debian:GlobalSign_Root_R46.pem 211s Adding debian:Go_Daddy_Class_2_CA.pem 211s Adding debian:Go_Daddy_Root_Certificate_Authority_-_G2.pem 211s Adding debian:HARICA_TLS_ECC_Root_CA_2021.pem 211s Adding debian:HARICA_TLS_RSA_Root_CA_2021.pem 211s Adding debian:Hellenic_Academic_and_Research_Institutions_ECC_RootCA_2015.pem 211s Adding debian:Hellenic_Academic_and_Research_Institutions_RootCA_2015.pem 211s Adding debian:HiPKI_Root_CA_-_G1.pem 211s Adding debian:Hongkong_Post_Root_CA_3.pem 211s Adding debian:ISRG_Root_X1.pem 211s Adding debian:ISRG_Root_X2.pem 211s Adding debian:IdenTrust_Commercial_Root_CA_1.pem 211s Adding debian:IdenTrust_Public_Sector_Root_CA_1.pem 211s Adding debian:Izenpe.com.pem 211s Adding debian:Microsec_e-Szigno_Root_CA_2009.pem 211s Adding debian:Microsoft_ECC_Root_Certificate_Authority_2017.pem 211s Adding debian:Microsoft_RSA_Root_Certificate_Authority_2017.pem 211s Adding debian:NAVER_Global_Root_Certification_Authority.pem 211s Adding debian:NetLock_Arany_=Class_Gold=_Főtanúsítvány.pem 211s Adding debian:OISTE_WISeKey_Global_Root_GB_CA.pem 211s Adding debian:OISTE_WISeKey_Global_Root_GC_CA.pem 211s Adding debian:QuoVadis_Root_CA_1_G3.pem 211s Adding debian:QuoVadis_Root_CA_2.pem 211s Adding debian:QuoVadis_Root_CA_2_G3.pem 211s Adding debian:QuoVadis_Root_CA_3.pem 211s Adding debian:QuoVadis_Root_CA_3_G3.pem 211s Adding debian:SSL.com_EV_Root_Certification_Authority_ECC.pem 211s Adding debian:SSL.com_EV_Root_Certification_Authority_RSA_R2.pem 211s Adding debian:SSL.com_Root_Certification_Authority_ECC.pem 211s Adding debian:SSL.com_Root_Certification_Authority_RSA.pem 211s Adding debian:SSL.com_TLS_ECC_Root_CA_2022.pem 211s Adding debian:SSL.com_TLS_RSA_Root_CA_2022.pem 211s Adding debian:SZAFIR_ROOT_CA2.pem 211s Adding debian:Sectigo_Public_Server_Authentication_Root_E46.pem 211s Adding debian:Sectigo_Public_Server_Authentication_Root_R46.pem 211s Adding debian:SecureSign_RootCA11.pem 211s Adding debian:SecureTrust_CA.pem 211s Adding debian:Secure_Global_CA.pem 211s Adding debian:Security_Communication_ECC_RootCA1.pem 211s Adding debian:Security_Communication_RootCA2.pem 211s Adding debian:Security_Communication_RootCA3.pem 211s Adding debian:Security_Communication_Root_CA.pem 211s Adding debian:Starfield_Class_2_CA.pem 211s Adding debian:Starfield_Root_Certificate_Authority_-_G2.pem 211s Adding debian:Starfield_Services_Root_Certificate_Authority_-_G2.pem 211s Adding debian:SwissSign_Gold_CA_-_G2.pem 211s Adding debian:SwissSign_Silver_CA_-_G2.pem 211s Adding debian:T-TeleSec_GlobalRoot_Class_2.pem 211s Adding debian:T-TeleSec_GlobalRoot_Class_3.pem 211s Adding debian:TUBITAK_Kamu_SM_SSL_Kok_Sertifikasi_-_Surum_1.pem 211s Adding debian:TWCA_Global_Root_CA.pem 211s Adding debian:TWCA_Root_Certification_Authority.pem 211s Adding debian:TeliaSonera_Root_CA_v1.pem 211s Adding debian:Telia_Root_CA_v2.pem 211s Adding debian:TrustAsia_Global_Root_CA_G3.pem 211s Adding debian:TrustAsia_Global_Root_CA_G4.pem 211s Adding debian:Trustwave_Global_Certification_Authority.pem 211s Adding debian:Trustwave_Global_ECC_P256_Certification_Authority.pem 211s Adding debian:Trustwave_Global_ECC_P384_Certification_Authority.pem 211s Adding debian:TunTrust_Root_CA.pem 211s Adding debian:UCA_Extended_Validation_Root.pem 211s Adding debian:UCA_Global_G2_Root.pem 211s Adding debian:USERTrust_ECC_Certification_Authority.pem 211s Adding debian:USERTrust_RSA_Certification_Authority.pem 211s Adding debian:XRamp_Global_CA_Root.pem 211s Adding debian:certSIGN_ROOT_CA.pem 211s Adding debian:certSIGN_Root_CA_G2.pem 211s Adding debian:e-Szigno_Root_CA_2017.pem 211s Adding debian:ePKI_Root_Certification_Authority.pem 211s Adding debian:emSign_ECC_Root_CA_-_C3.pem 211s Adding debian:emSign_ECC_Root_CA_-_G3.pem 211s Adding debian:emSign_Root_CA_-_C1.pem 211s Adding debian:emSign_Root_CA_-_G1.pem 211s Adding debian:vTrus_ECC_Root_CA.pem 211s Adding debian:vTrus_Root_CA.pem 211s done. 211s Setting up default-jre-headless (2:1.21-75+exp1) ... 211s Setting up openjdk-21-jdk-headless:amd64 (21.0.7+6~us1-0ubuntu1~24.04) ... 211s update-alternatives: using /usr/lib/jvm/java-21-openjdk-amd64/bin/jar to provide /usr/bin/jar (jar) in auto mode 211s update-alternatives: using /usr/lib/jvm/java-21-openjdk-amd64/bin/jarsigner to provide /usr/bin/jarsigner (jarsigner) in auto mode 211s update-alternatives: using /usr/lib/jvm/java-21-openjdk-amd64/bin/javac to provide /usr/bin/javac (javac) in auto mode 211s update-alternatives: using /usr/lib/jvm/java-21-openjdk-amd64/bin/javadoc to provide /usr/bin/javadoc (javadoc) in auto mode 211s update-alternatives: using /usr/lib/jvm/java-21-openjdk-amd64/bin/javap to provide /usr/bin/javap (javap) in auto mode 211s update-alternatives: using /usr/lib/jvm/java-21-openjdk-amd64/bin/jcmd to provide /usr/bin/jcmd (jcmd) in auto mode 211s update-alternatives: using /usr/lib/jvm/java-21-openjdk-amd64/bin/jdb to provide /usr/bin/jdb (jdb) in auto mode 211s update-alternatives: using /usr/lib/jvm/java-21-openjdk-amd64/bin/jdeprscan to provide /usr/bin/jdeprscan (jdeprscan) in auto mode 211s update-alternatives: using /usr/lib/jvm/java-21-openjdk-amd64/bin/jdeps to provide /usr/bin/jdeps (jdeps) in auto mode 211s update-alternatives: using /usr/lib/jvm/java-21-openjdk-amd64/bin/jfr to provide /usr/bin/jfr (jfr) in auto mode 211s update-alternatives: using /usr/lib/jvm/java-21-openjdk-amd64/bin/jimage to provide /usr/bin/jimage (jimage) in auto mode 211s update-alternatives: using /usr/lib/jvm/java-21-openjdk-amd64/bin/jinfo to provide /usr/bin/jinfo (jinfo) in auto mode 211s update-alternatives: using /usr/lib/jvm/java-21-openjdk-amd64/bin/jlink to provide /usr/bin/jlink (jlink) in auto mode 211s update-alternatives: using /usr/lib/jvm/java-21-openjdk-amd64/bin/jmap to provide /usr/bin/jmap (jmap) in auto mode 211s update-alternatives: using /usr/lib/jvm/java-21-openjdk-amd64/bin/jmod to provide /usr/bin/jmod (jmod) in auto mode 211s update-alternatives: using /usr/lib/jvm/java-21-openjdk-amd64/bin/jps to provide /usr/bin/jps (jps) in auto mode 211s update-alternatives: using /usr/lib/jvm/java-21-openjdk-amd64/bin/jrunscript to provide /usr/bin/jrunscript (jrunscript) in auto mode 211s update-alternatives: using /usr/lib/jvm/java-21-openjdk-amd64/bin/jshell to provide /usr/bin/jshell (jshell) in auto mode 211s update-alternatives: using /usr/lib/jvm/java-21-openjdk-amd64/bin/jstack to provide /usr/bin/jstack (jstack) in auto mode 211s update-alternatives: using /usr/lib/jvm/java-21-openjdk-amd64/bin/jstat to provide /usr/bin/jstat (jstat) in auto mode 211s update-alternatives: using /usr/lib/jvm/java-21-openjdk-amd64/bin/jstatd to provide /usr/bin/jstatd (jstatd) in auto mode 211s update-alternatives: using /usr/lib/jvm/java-21-openjdk-amd64/bin/jwebserver to provide /usr/bin/jwebserver (jwebserver) in auto mode 211s update-alternatives: using /usr/lib/jvm/java-21-openjdk-amd64/bin/serialver to provide /usr/bin/serialver (serialver) in auto mode 211s update-alternatives: using /usr/lib/jvm/java-21-openjdk-amd64/bin/jhsdb to provide /usr/bin/jhsdb (jhsdb) in auto mode 211s Setting up default-jdk-headless (2:1.21-75+exp1) ... 211s Processing triggers for dictionaries-common (1.29.7) ... 211s Processing triggers for libc-bin (2.39-0ubuntu8.4) ... 212s autopkgtest [21:21:51]: test unit-and-integration-tests: cp -r tests "$AUTOPKGTEST_TMP" && cd "$AUTOPKGTEST_TMP" && python3 -m pytest -ra -v tests/unit/ tests/integration/ 212s autopkgtest [21:21:51]: test unit-and-integration-tests: [----------------------- 213s ============================= test session starts ============================== 213s platform linux -- Python 3.12.3, pytest-7.4.4, pluggy-1.4.0 -- /usr/bin/python3 213s cachedir: .pytest_cache 213s rootdir: /tmp/autopkgtest.BpvbPC/autopkgtest_tmp 213s collecting ... collected 528 items 213s 213s tests/unit/test_crashdb.py::T::test_accepts_default PASSED [ 0%] 213s tests/unit/test_crashdb.py::T::test_accepts_problem_types PASSED [ 0%] 213s tests/unit/test_crashdb.py::T::test_change_master_id PASSED [ 0%] 213s tests/unit/test_crashdb.py::T::test_check_duplicate PASSED [ 0%] 213s tests/unit/test_crashdb.py::T::test_check_duplicate_custom_signature PASSED [ 0%] 213s tests/unit/test_crashdb.py::T::test_check_duplicate_multiple_masters PASSED [ 1%] 213s tests/unit/test_crashdb.py::T::test_check_duplicate_multiple_regressions PASSED [ 1%] 213s tests/unit/test_crashdb.py::T::test_check_duplicate_report_arg PASSED [ 1%] 213s tests/unit/test_crashdb.py::T::test_check_duplicate_utf8 PASSED [ 1%] 213s tests/unit/test_crashdb.py::T::test_db_corruption PASSED [ 1%] 213s tests/unit/test_crashdb.py::T::test_duplicate_db_fixed PASSED [ 2%] 213s tests/unit/test_crashdb.py::T::test_duplicate_db_publish_long_sigs PASSED [ 2%] 213s tests/unit/test_crashdb.py::T::test_duplicate_db_remove PASSED [ 2%] 213s tests/unit/test_crashdb.py::T::test_dynamic_crashdb_conf PASSED [ 2%] 213s tests/unit/test_crashdb.py::T::test_get_affected_packages PASSED [ 2%] 213s tests/unit/test_crashdb.py::T::test_get_distro_release PASSED [ 3%] 213s tests/unit/test_crashdb.py::T::test_known_address_sig PASSED [ 3%] 213s tests/unit/test_crashdb.py::T::test_mark_regression PASSED [ 3%] 213s tests/unit/test_crashdb.py::T::test_no_sample_data PASSED [ 3%] 213s tests/unit/test_crashdb.py::T::test_retrace_markers PASSED [ 3%] 213s tests/unit/test_crashdb.py::T::test_status PASSED [ 3%] 213s tests/unit/test_crashdb.py::T::test_submit PASSED [ 4%] 213s tests/unit/test_crashdb.py::T::test_update PASSED [ 4%] 213s tests/unit/test_crashdb.py::T::test_update_filter PASSED [ 4%] 213s tests/unit/test_crashdb.py::T::test_update_traces PASSED [ 4%] 213s tests/unit/test_deprecation.py::TestDeprecation::test_unicode_gettext PASSED [ 4%] 213s tests/unit/test_fileutils.py::T::test_find_package_desktopfile_deleted PASSED [ 5%] 213s tests/unit/test_fileutils.py::T::test_get_core_path_missing_timestamp PASSED [ 5%] 213s tests/unit/test_fileutils.py::T::test_get_core_path_proc_pid_fd PASSED [ 5%] 213s tests/unit/test_fileutils.py::T::test_get_dbus_socket PASSED [ 5%] 213s tests/unit/test_fileutils.py::T::test_get_login_defs PASSED [ 5%] 213s tests/unit/test_fileutils.py::T::test_get_login_defs_missing PASSED [ 6%] 213s tests/unit/test_fileutils.py::T::test_get_process_environ PASSED [ 6%] 213s tests/unit/test_fileutils.py::T::test_get_process_environ_empty PASSED [ 6%] 213s tests/unit/test_fileutils.py::T::test_get_process_environ_malformed PASSED [ 6%] 213s tests/unit/test_fileutils.py::T::test_get_recent_crashes PASSED [ 6%] 213s tests/unit/test_fileutils.py::T::test_get_starttime PASSED [ 7%] 213s tests/unit/test_fileutils.py::T::test_get_sys_gid_max PASSED [ 7%] 213s tests/unit/test_fileutils.py::T::test_get_sys_gid_max_default PASSED [ 7%] 213s tests/unit/test_fileutils.py::T::test_get_sys_uid_max PASSED [ 7%] 213s tests/unit/test_fileutils.py::T::test_get_sys_uid_max_default PASSED [ 7%] 213s tests/unit/test_fileutils.py::T::test_get_uid_and_gid PASSED [ 7%] 213s tests/unit/test_fileutils.py::T::test_likely_packaged PASSED [ 8%] 213s tests/unit/test_helper.py::TestTestHelper::test_get_init_systemd PASSED [ 8%] 213s tests/unit/test_helper.py::TestTestHelper::test_wait_for_process_to_appear PASSED [ 8%] 213s tests/unit/test_helper.py::TestTestHelper::test_wait_for_process_to_appear_multiple PASSED [ 8%] 213s tests/unit/test_helper.py::TestTestHelper::test_wait_for_process_to_appear_timeout PASSED [ 8%] 213s tests/unit/test_helper.py::TestTestHelper::test_wait_for_sleeping_state PASSED [ 9%] 213s tests/unit/test_helper.py::TestTestHelper::test_wait_for_sleeping_state_timeout PASSED [ 9%] 213s tests/unit/test_helper.py::TestTestHelper::test_wrap_object_with_statement PASSED [ 9%] 213s tests/unit/test_hooks_image.py::TestGeneralHookImage::test_add_info PASSED [ 9%] 213s tests/unit/test_hooks_image.py::TestGeneralHookImage::test_add_info_empty_build_info PASSED [ 9%] 213s tests/unit/test_hooks_image.py::TestGeneralHookImage::test_add_info_unknown_field PASSED [ 10%] 213s tests/unit/test_hooks_image.py::TestGeneralHookImage::test_no_cloud_build_info PASSED [ 10%] 213s tests/unit/test_hooks_wayland_session.py::TestGeneralHookWaylandSession::test_is_no_wayland_session PASSED [ 10%] 213s tests/unit/test_hooks_wayland_session.py::TestGeneralHookWaylandSession::test_is_wayland_session PASSED [ 10%] 213s tests/unit/test_hookutils.py::TestHookutils::test_attach_dmesg PASSED [ 10%] 213s tests/unit/test_hookutils.py::TestHookutils::test_attach_dmi PASSED [ 10%] 213s tests/unit/test_hookutils.py::TestHookutils::test_attach_journal_errors_with_date PASSED [ 11%] 213s tests/unit/test_hookutils.py::TestHookutils::test_attach_journal_errors_without_date PASSED [ 11%] 213s tests/unit/test_hookutils.py::TestHookutils::test_deprecated_upstart_functions PASSED [ 11%] 213s tests/unit/test_hookutils.py::TestHookutils::test_dmesg_overwrite PASSED [ 11%] 213s tests/unit/test_hookutils.py::TestHookutils::test_path_to_key PASSED [ 11%] 213s tests/unit/test_hookutils.py::TestHookutils::test_recent_syslog_journald_cmd PASSED [ 12%] 213s tests/unit/test_hookutils.py::TestHookutils::test_recent_syslog_long_process PASSED [ 12%] 213s tests/unit/test_hookutils.py::TestHookutils::test_recent_syslog_race_condition PASSED [ 12%] 213s tests/unit/test_packaging_apt_dpkg.py::TestPackagingAptDpkg::test_is_distro_package_no_candidate PASSED [ 12%] 213s tests/unit/test_packaging_apt_dpkg.py::TestPackagingAptDpkg::test_is_distro_package_no_installed_version PASSED [ 12%] 213s tests/unit/test_packaging_apt_dpkg.py::TestPackagingAptDpkg::test_is_distro_package_ppa PASSED [ 13%] 213s tests/unit/test_packaging_apt_dpkg.py::TestPackagingAptDpkg::test_is_distro_package_system_image PASSED [ 13%] 213s tests/unit/test_packaging_apt_dpkg.py::TestPackagingAptDpkg::test_parse_deb822_sources_extra_lines PASSED [ 13%] 213s tests/unit/test_packaging_apt_dpkg.py::TestPackagingAptDpkg::test_read_mirror_file PASSED [ 13%] 213s tests/unit/test_packaging_impl.py::TestPackagingImpl::test_determine_debian_unstable PASSED [ 13%] 213s tests/unit/test_packaging_impl.py::TestPackagingImpl::test_determine_ubuntu PASSED [ 14%] 213s tests/unit/test_parse_segv.py::TestHookParseSegv::test_add_info_without_segv_reason PASSED [ 14%] 213s tests/unit/test_parse_segv.py::TestHookParseSegv::test_debug PASSED [ 14%] 213s tests/unit/test_parse_segv.py::TestHookParseSegv::test_invalid_00_registers PASSED [ 14%] 213s tests/unit/test_parse_segv.py::TestHookParseSegv::test_invalid_01_disassembly PASSED [ 14%] 213s tests/unit/test_parse_segv.py::TestHookParseSegv::test_invalid_02_maps PASSED [ 14%] 213s tests/unit/test_parse_segv.py::TestHookParseSegv::test_ioport_operation PASSED [ 15%] 213s tests/unit/test_parse_segv.py::TestHookParseSegv::test_register_values PASSED [ 15%] 213s tests/unit/test_parse_segv.py::TestHookParseSegv::test_segv_crackful_disasm PASSED [ 15%] 213s tests/unit/test_parse_segv.py::TestHookParseSegv::test_segv_dest_missing PASSED [ 15%] 213s tests/unit/test_parse_segv.py::TestHookParseSegv::test_segv_dest_not_writable PASSED [ 15%] 213s tests/unit/test_parse_segv.py::TestHookParseSegv::test_segv_dest_null PASSED [ 16%] 213s tests/unit/test_parse_segv.py::TestHookParseSegv::test_segv_pc_missing PASSED [ 16%] 213s tests/unit/test_parse_segv.py::TestHookParseSegv::test_segv_pc_null PASSED [ 16%] 213s tests/unit/test_parse_segv.py::TestHookParseSegv::test_segv_pc_nx_unwritable PASSED [ 16%] 213s tests/unit/test_parse_segv.py::TestHookParseSegv::test_segv_pc_nx_writable PASSED [ 16%] 213s tests/unit/test_parse_segv.py::TestHookParseSegv::test_segv_src_missing PASSED [ 17%] 213s tests/unit/test_parse_segv.py::TestHookParseSegv::test_segv_src_not_readable PASSED [ 17%] 213s tests/unit/test_parse_segv.py::TestHookParseSegv::test_segv_src_null PASSED [ 17%] 213s tests/unit/test_parse_segv.py::TestHookParseSegv::test_segv_stack_failure PASSED [ 17%] 213s tests/unit/test_parse_segv.py::TestHookParseSegv::test_segv_stack_kernel_segfault PASSED [ 17%] 213s tests/unit/test_parse_segv.py::TestHookParseSegv::test_segv_unknown PASSED [ 17%] 213s tests/unit/test_problem_report.py::T::test_add_tag_drop_duplicates PASSED [ 18%] 213s tests/unit/test_problem_report.py::T::test_add_tags PASSED [ 18%] 213s tests/unit/test_problem_report.py::T::test_basic_operations PASSED [ 18%] 213s tests/unit/test_problem_report.py::T::test_consistency_checks PASSED [ 18%] 213s tests/unit/test_problem_report.py::T::test_ctor_arguments PASSED [ 18%] 213s tests/unit/test_problem_report.py::T::test_get_on_disk_size PASSED [ 19%] 213s tests/unit/test_problem_report.py::T::test_get_timestamp PASSED [ 19%] 213s tests/unit/test_problem_report.py::T::test_get_timestamp_locale_german SKIPPED [ 19%] 213s tests/unit/test_problem_report.py::T::test_get_timestamp_returns_none PASSED [ 19%] 213s tests/unit/test_problem_report.py::T::test_import_dict PASSED [ 19%] 213s tests/unit/test_problem_report.py::T::test_iter PASSED [ 20%] 213s tests/unit/test_problem_report.py::T::test_load PASSED [ 20%] 213s tests/unit/test_problem_report.py::T::test_load_binary_blob PASSED [ 20%] 213s tests/unit/test_problem_report.py::T::test_load_incorrect_padding PASSED [ 20%] 213s tests/unit/test_problem_report.py::T::test_load_invalid_utf8 PASSED [ 20%] 213s tests/unit/test_problem_report.py::T::test_load_key_filter PASSED [ 21%] 213s tests/unit/test_problem_report.py::T::test_load_missing_colon PASSED [ 21%] 213s tests/unit/test_problem_report.py::T::test_load_zstd_compressed_data PASSED [ 21%] 213s tests/unit/test_problem_report.py::T::test_modify PASSED [ 21%] 213s tests/unit/test_problem_report.py::T::test_read_file PASSED [ 21%] 213s tests/unit/test_problem_report.py::T::test_read_file_legacy PASSED [ 21%] 213s tests/unit/test_problem_report.py::T::test_reading_zstd_compressed_value PASSED [ 22%] 213s tests/unit/test_problem_report.py::T::test_sorted_items PASSED [ 22%] 213s tests/unit/test_problem_report.py::T::test_updating PASSED [ 22%] 213s tests/unit/test_problem_report.py::T::test_write PASSED [ 22%] 213s tests/unit/test_problem_report.py::T::test_write_empty_fileobj PASSED [ 22%] 213s tests/unit/test_problem_report.py::T::test_write_fileobj PASSED [ 23%] 213s tests/unit/test_problem_report.py::T::test_write_mime_extra_headers PASSED [ 23%] 213s tests/unit/test_problem_report.py::T::test_write_mime_order PASSED [ 23%] 213s tests/unit/test_problem_report.py::T::test_write_mime_text PASSED [ 23%] 213s tests/unit/test_problem_report.py::T::test_writing_zstd_compressed_value PASSED [ 23%] 213s tests/unit/test_problem_report.py::T::test_zstandard_missing PASSED [ 24%] 213s tests/unit/test_problem_report.py::T::test_zstd_compressed_value_length PASSED [ 24%] 213s tests/unit/test_problem_report.py::TestEntryParser::test_parse PASSED [ 24%] 213s tests/unit/test_problem_report.py::TestEntryParser::test_skip_entries PASSED [ 24%] 213s tests/unit/test_problem_report.py::TestEntryParser::test_skip_last_entry PASSED [ 24%] 213s tests/unit/test_problem_report.py::TestEntryParser::test_skip_partial_entries PASSED [ 25%] 213s tests/unit/test_report.py::T::test_add_hooks_info_invalid_source PASSED [ 25%] 213s tests/unit/test_report.py::T::test_add_snap_contact_info_github PASSED [ 25%] 213s tests/unit/test_report.py::T::test_add_snap_contact_info_launchpad PASSED [ 25%] 213s tests/unit/test_report.py::T::test_add_snap_contact_launchpad_distro PASSED [ 25%] 213s tests/unit/test_report.py::T::test_address_to_offset PASSED [ 25%] 213s tests/unit/test_report.py::T::test_address_to_offset_arm PASSED [ 26%] 213s tests/unit/test_report.py::T::test_crash_signature PASSED [ 26%] 213s tests/unit/test_report.py::T::test_crash_signature_addresses PASSED [ 26%] 213s tests/unit/test_report.py::T::test_gdb_add_info_no_gdb PASSED [ 26%] 213s tests/unit/test_report.py::T::test_gen_stacktrace_top PASSED [ 26%] 213s tests/unit/test_report.py::T::test_has_useful_stacktrace PASSED [ 27%] 213s tests/unit/test_report.py::T::test_missing_uid PASSED [ 27%] 213s tests/unit/test_report.py::T::test_nonascii_data PASSED [ 27%] 213s tests/unit/test_report.py::T::test_report_from_systemd_coredump_default PASSED [ 27%] 213s tests/unit/test_report.py::T::test_report_from_systemd_coredump_missing_crash PASSED [ 27%] 213s tests/unit/test_report.py::T::test_report_from_systemd_coredump_storage_journal PASSED [ 28%] 213s tests/unit/test_report.py::T::test_report_from_systemd_coredump_storage_none PASSED [ 28%] 213s tests/unit/test_report.py::T::test_standard_title PASSED [ 28%] 213s tests/unit/test_report.py::T::test_suspend_resume PASSED [ 28%] 213s tests/unit/test_rethread.py::T::test_exc_raise PASSED [ 28%] 213s tests/unit/test_rethread.py::T::test_exc_raise_complex PASSED [ 28%] 213s tests/unit/test_rethread.py::T::test_exception PASSED [ 29%] 214s tests/unit/test_rethread.py::T::test_no_return_value PASSED [ 29%] 214s tests/unit/test_rethread.py::T::test_return_value PASSED [ 29%] 214s tests/unit/test_sandboxutils.py::TestSandboxutils::test_make_sandbox PASSED [ 29%] 214s tests/unit/test_sandboxutils.py::TestSandboxutils::test_make_sandbox_install_packages_failure PASSED [ 29%] 214s tests/unit/test_sandboxutils.py::TestSandboxutils::test_make_sandbox_with_sandbox_dir PASSED [ 30%] 214s tests/unit/test_sandboxutils.py::TestSandboxutils::test_move_base_files_first_existing PASSED [ 30%] 214s tests/unit/test_sandboxutils.py::TestSandboxutils::test_move_base_files_first_missing PASSED [ 30%] 214s tests/unit/test_signal_crashes.py::TestApport::test_check_kernel_crash PASSED [ 30%] 214s tests/unit/test_signal_crashes.py::TestApport::test_check_lock_not_writable PASSED [ 30%] 214s tests/unit/test_signal_crashes.py::TestApport::test_check_lock_taken PASSED [ 31%] 214s tests/unit/test_signal_crashes.py::TestApport::test_consistency_checks_before_forwarding PASSED [ 31%] 214s tests/unit/test_signal_crashes.py::TestApport::test_consistency_checks_mismatching_uid PASSED [ 31%] 214s tests/unit/test_signal_crashes.py::TestApport::test_consistency_checks_replaced_process PASSED [ 31%] 214s tests/unit/test_signal_crashes.py::TestApport::test_forward_crash_to_container PASSED [ 31%] 214s tests/unit/test_signal_crashes.py::TestApport::test_init_error_log_is_tty PASSED [ 32%] 214s tests/unit/test_signal_crashes.py::TestApport::test_is_closing_session PASSED [ 32%] 214s tests/unit/test_signal_crashes.py::TestApport::test_is_closing_session_gdbus_failure PASSED [ 32%] 214s tests/unit/test_signal_crashes.py::TestApport::test_is_closing_session_no_determine_socket PASSED [ 32%] 214s tests/unit/test_signal_crashes.py::TestApport::test_is_closing_session_no_environ PASSED [ 32%] 214s tests/unit/test_signal_crashes.py::TestApport::test_is_closing_session_socket_not_exists PASSED [ 32%] 214s tests/unit/test_signal_crashes.py::TestApport::test_main_ignore_watchdog_restart PASSED [ 33%] 214s tests/unit/test_signal_crashes.py::TestApport::test_main_start PASSED [ 33%] 214s tests/unit/test_signal_crashes.py::TestApport::test_main_stop PASSED [ 33%] 214s tests/unit/test_signal_crashes.py::TestApport::test_missing_proc_pid PASSED [ 33%] 214s tests/unit/test_signal_crashes.py::TestApport::test_non_existing_systemd_coredump PASSED [ 33%] 214s tests/unit/test_signal_crashes.py::TestApport::test_parse_arguments PASSED [ 34%] 214s tests/unit/test_signal_crashes.py::TestApport::test_parse_arguments_kernel_without_pidfd PASSED [ 34%] 214s tests/unit/test_signal_crashes.py::TestApport::test_pidfd_getpid_on_stdout PASSED [ 34%] 214s tests/unit/test_signal_crashes.py::TestApport::test_pidfd_getpid_process_gone PASSED [ 34%] 214s tests/unit/test_signal_crashes.py::TestApport::test_proc_pid_has_same_pid PASSED [ 34%] 214s tests/unit/test_signal_crashes.py::TestApport::test_proc_pid_has_same_pid_false PASSED [ 35%] 214s tests/unit/test_signal_crashes.py::TestApport::test_proc_pid_not_exist PASSED [ 35%] 214s tests/unit/test_signal_crashes.py::TestApport::test_process_crash_from_kernel_replaced_process PASSED [ 35%] 214s tests/unit/test_signal_crashes.py::TestApport::test_reading_core_from_journal_log PASSED [ 35%] 214s tests/unit/test_signal_crashes.py::TestApport::test_receive_arguments_via_socket_import_error PASSED [ 35%] 214s tests/unit/test_signal_crashes.py::TestApport::test_receive_arguments_via_socket_invalid_socket PASSED [ 35%] 214s tests/unit/test_signal_crashes.py::TestApport::test_refine_core_ulimit_huge PASSED [ 36%] 214s tests/unit/test_signal_crashes.py::TestApport::test_start PASSED [ 36%] 214s tests/unit/test_signal_crashes.py::TestApport::test_stop PASSED [ 36%] 214s tests/unit/test_signal_crashes.py::TestApport::test_systemd_journal_import_error PASSED [ 36%] 214s tests/unit/test_ui.py::TestUI::test_open_url PASSED [ 36%] 214s tests/unit/test_ui.py::TestUI::test_open_url_webbrowser_fails PASSED [ 37%] 214s tests/unit/test_ui.py::TestUI::test_open_url_webbrowser_fallback PASSED [ 37%] 214s tests/unit/test_user_group.py::TestUserGroup::test_get_process_user_and_group_is_not_root PASSED [ 37%] 214s tests/unit/test_user_group.py::TestUserGroup::test_get_process_user_and_group_is_root PASSED [ 37%] 214s tests/integration/test_apport_checkreports.py::TestApportCheckreports::test_has_no_system_report PASSED [ 37%] 214s tests/integration/test_apport_checkreports.py::TestApportCheckreports::test_has_system_report PASSED [ 38%] 214s tests/integration/test_apport_checkreports.py::TestApportCheckreports::test_has_user_report PASSED [ 38%] 214s tests/integration/test_apport_checkreports.py::TestApportCheckreports::test_no_report PASSED [ 38%] 214s tests/integration/test_apport_unpack.py::TestApportUnpack::test_broken_core_dump PASSED [ 38%] 214s tests/integration/test_apport_unpack.py::TestApportUnpack::test_broken_report PASSED [ 38%] 215s tests/integration/test_apport_unpack.py::TestApportUnpack::test_error PASSED [ 39%] 215s tests/integration/test_apport_unpack.py::TestApportUnpack::test_help PASSED [ 39%] 215s tests/integration/test_apport_unpack.py::TestApportUnpack::test_unpack PASSED [ 39%] 215s tests/integration/test_apport_unpack.py::TestApportUnpack::test_unpack_stdin PASSED [ 39%] 215s tests/integration/test_apport_valgrind.py::TestApportValgrind::test_help_display PASSED [ 39%] 215s tests/integration/test_apport_valgrind.py::TestApportValgrind::test_intentional_mem_leak_detection PASSED [ 39%] 216s tests/integration/test_apport_valgrind.py::TestApportValgrind::test_invalid_args PASSED [ 40%] 216s tests/integration/test_apport_valgrind.py::TestApportValgrind::test_unpackaged_exe PASSED [ 40%] 216s tests/integration/test_apport_valgrind.py::TestApportValgrind::test_valgrind_min_installed PASSED [ 40%] 217s tests/integration/test_apport_valgrind.py::TestApportValgrind::test_vlog_created PASSED [ 40%] 217s tests/integration/test_crash_digger.py::T::test_alternate_crashdb PASSED [ 40%] 217s tests/integration/test_crash_digger.py::T::test_crash_gdb_sandbox PASSED [ 41%] 217s tests/integration/test_crash_digger.py::T::test_crashes PASSED [ 41%] 217s tests/integration/test_crash_digger.py::T::test_crashes_error PASSED [ 41%] 218s tests/integration/test_crash_digger.py::T::test_crashes_transient_error PASSED [ 41%] 218s tests/integration/test_crash_digger.py::T::test_dupcheck PASSED [ 41%] 218s tests/integration/test_crash_digger.py::T::test_publish_db PASSED [ 42%] 218s tests/integration/test_crash_digger.py::T::test_stderr_redirection PASSED [ 42%] 218s tests/integration/test_crashdb_launchpad.py::T::test_1_download SKIPPED [ 42%] 218s tests/integration/test_crashdb_launchpad.py::T::test_2_update_traces SKIPPED [ 42%] 218s tests/integration/test_crashdb_launchpad.py::T::test_can_update SKIPPED [ 42%] 218s tests/integration/test_crashdb_launchpad.py::T::test_download_robustness SKIPPED [ 42%] 218s tests/integration/test_crashdb_launchpad.py::T::test_duplicates SKIPPED [ 43%] 218s tests/integration/test_crashdb_launchpad.py::T::test_escalation SKIPPED [ 43%] 218s tests/integration/test_crashdb_launchpad.py::T::test_get_affected_packages SKIPPED [ 43%] 218s tests/integration/test_crashdb_launchpad.py::T::test_get_comment_url SKIPPED [ 43%] 218s tests/integration/test_crashdb_launchpad.py::T::test_get_distro_release SKIPPED [ 43%] 218s tests/integration/test_crashdb_launchpad.py::T::test_get_fixed_version SKIPPED [ 44%] 218s tests/integration/test_crashdb_launchpad.py::T::test_is_reporter SKIPPED [ 44%] 218s tests/integration/test_crashdb_launchpad.py::T::test_marking_foreign_arch SKIPPED [ 44%] 218s tests/integration/test_crashdb_launchpad.py::T::test_marking_project SKIPPED [ 44%] 218s tests/integration/test_crashdb_launchpad.py::T::test_marking_python SKIPPED [ 44%] 218s tests/integration/test_crashdb_launchpad.py::T::test_marking_python_task_mangle SKIPPED [ 45%] 218s tests/integration/test_crashdb_launchpad.py::T::test_marking_segv SKIPPED [ 45%] 218s tests/integration/test_crashdb_launchpad.py::T::test_project SKIPPED [ 45%] 218s tests/integration/test_crashdb_launchpad.py::T::test_update_comment SKIPPED [ 45%] 218s tests/integration/test_crashdb_launchpad.py::T::test_update_description SKIPPED [ 45%] 218s tests/integration/test_crashdb_launchpad.py::T::test_update_filter SKIPPED [ 46%] 218s tests/integration/test_crashdb_launchpad.py::T::test_update_traces_invalid SKIPPED [ 46%] 218s tests/integration/test_dupdb_admin.py::TestDupdbAdmin::test_changeid PASSED [ 46%] 218s tests/integration/test_dupdb_admin.py::TestDupdbAdmin::test_changeid_missing_argument PASSED [ 46%] 218s tests/integration/test_dupdb_admin.py::TestDupdbAdmin::test_dump_database PASSED [ 46%] 218s tests/integration/test_dupdb_admin.py::TestDupdbAdmin::test_dump_empty_database PASSED [ 46%] 218s tests/integration/test_dupdb_admin.py::TestDupdbAdmin::test_missing_db_file PASSED [ 47%] 218s tests/integration/test_dupdb_admin.py::TestDupdbAdmin::test_no_command PASSED [ 47%] 219s tests/integration/test_dupdb_admin.py::TestDupdbAdmin::test_publish PASSED [ 47%] 219s tests/integration/test_dupdb_admin.py::TestDupdbAdmin::test_publish_missing_argument PASSED [ 47%] 219s tests/integration/test_dupdb_admin.py::TestDupdbAdmin::test_removeid PASSED [ 47%] 219s tests/integration/test_dupdb_admin.py::TestDupdbAdmin::test_removeid_missing_argument PASSED [ 48%] 219s tests/integration/test_dupdb_admin.py::TestDupdbAdmin::test_unknown_command PASSED [ 48%] 219s tests/integration/test_fileutils.py::T::test_check_files_md5 PASSED [ 48%] 228s tests/integration/test_fileutils.py::T::test_clean_core_directory PASSED [ 48%] 228s tests/integration/test_fileutils.py::T::test_delete_report PASSED [ 48%] 228s tests/integration/test_fileutils.py::T::test_find_file_package PASSED [ 49%] 228s tests/integration/test_fileutils.py::T::test_find_package_desktopfile_multiple PASSED [ 49%] 228s tests/integration/test_fileutils.py::T::test_find_package_desktopfile_no_display PASSED [ 49%] 228s tests/integration/test_fileutils.py::T::test_find_package_desktopfile_none PASSED [ 49%] 228s tests/integration/test_fileutils.py::T::test_find_package_desktopfile_one PASSED [ 49%] 228s tests/integration/test_fileutils.py::T::test_get_all_reports PASSED [ 50%] 228s tests/integration/test_fileutils.py::T::test_get_config PASSED [ 50%] 228s tests/integration/test_fileutils.py::T::test_get_core_path PASSED [ 50%] 228s tests/integration/test_fileutils.py::T::test_get_system_reports PASSED [ 50%] 228s tests/integration/test_fileutils.py::T::test_get_system_reports_guest PASSED [ 50%] 228s tests/integration/test_fileutils.py::T::test_links_with_shared_library PASSED [ 50%] 228s tests/integration/test_fileutils.py::T::test_make_report_file PASSED [ 51%] 230s tests/integration/test_fileutils.py::T::test_mark_2nd_report_upload PASSED [ 51%] 230s tests/integration/test_fileutils.py::T::test_mark_hanging_process PASSED [ 51%] 230s tests/integration/test_fileutils.py::T::test_mark_report_upload PASSED [ 51%] 230s tests/integration/test_fileutils.py::T::test_seen PASSED [ 51%] 230s tests/integration/test_fileutils.py::T::test_shared_libraries PASSED [ 52%] 230s tests/integration/test_fileutils.py::T::test_unwritable_report PASSED [ 52%] 230s tests/integration/test_github.py::TestGitHub::test__format_report PASSED [ 52%] 230s tests/integration/test_github.py::TestGitHub::test_authentication_complete PASSED [ 52%] 230s tests/integration/test_github.py::TestGitHub::test_not_implemented_methods PASSED [ 52%] 230s tests/integration/test_github.py::TestGitHub::test_upload PASSED [ 53%] 230s tests/integration/test_helper.py::TestHelper::test_pidof_non_existing_program PASSED [ 53%] 230s tests/integration/test_helper.py::TestHelper::test_pidof_running_python PASSED [ 53%] 230s tests/integration/test_helper.py::TestHelper::test_read_shebang_binary PASSED [ 53%] 230s tests/integration/test_helper.py::TestHelper::test_read_shebang_shell_script PASSED [ 53%] 231s tests/integration/test_hooks.py::T::test_gcc_ide_hook_file PASSED [ 53%] 231s tests/integration/test_hooks.py::T::test_gcc_ide_hook_file_binary PASSED [ 54%] 231s tests/integration/test_hooks.py::T::test_gcc_ide_hook_pipe PASSED [ 54%] 232s tests/integration/test_hooks.py::T::test_general_hook_generic PASSED [ 54%] 232s tests/integration/test_hooks.py::T::test_kernel_crashdump_kdump PASSED [ 54%] 233s tests/integration/test_hooks.py::T::test_kernel_crashdump_kdump_log_dir_symlink PASSED [ 54%] 233s tests/integration/test_hooks.py::T::test_kernel_crashdump_kdump_log_symlink PASSED [ 55%] 233s tests/integration/test_hooks.py::T::test_kernel_crashdump_kexec PASSED [ 55%] 234s tests/integration/test_hooks.py::T::test_kernel_crashdump_log_symlink PASSED [ 55%] 234s tests/integration/test_hooks.py::T::test_kernel_oops_hook PASSED [ 55%] 235s tests/integration/test_hooks.py::T::test_package_hook_logs PASSED [ 55%] 235s tests/integration/test_hooks.py::T::test_package_hook_nologs PASSED [ 56%] 236s tests/integration/test_hooks.py::T::test_package_hook_non_existing_package PASSED [ 56%] 236s tests/integration/test_hooks.py::T::test_package_hook_tags PASSED [ 56%] 236s tests/integration/test_hooks.py::T::test_package_hook_uninstalled PASSED [ 56%] 236s tests/integration/test_hookutils.py::T::test_attach_file PASSED [ 56%] 236s tests/integration/test_hookutils.py::T::test_attach_file_binary PASSED [ 57%] 236s tests/integration/test_hookutils.py::T::test_attach_file_if_exists PASSED [ 57%] 236s tests/integration/test_hookutils.py::T::test_attach_mac_events PASSED [ 57%] 236s tests/integration/test_hookutils.py::T::test_command_output PASSED [ 57%] 236s tests/integration/test_hookutils.py::T::test_in_session_of_problem SKIPPED [ 57%] 236s tests/integration/test_hookutils.py::T::test_module_license_evaluation PASSED [ 57%] 237s tests/integration/test_hookutils.py::T::test_no_crashes PASSED [ 58%] 237s tests/integration/test_hookutils.py::T::test_real_module_license_evaluation PASSED [ 58%] 237s tests/integration/test_hookutils.py::T::test_recent_syslog PASSED [ 58%] 237s tests/integration/test_hookutils.py::T::test_recent_syslog_overflow PASSED [ 58%] 237s tests/integration/test_hookutils.py::T::test_xsession_errors PASSED [ 58%] 237s tests/integration/test_java_crashes.py::TestJavaCrashes::test_crash_class PASSED [ 59%] 237s tests/integration/test_java_crashes.py::TestJavaCrashes::test_crash_jar PASSED [ 59%] 237s tests/integration/test_packaging.py::T::test_get_os_version PASSED [ 59%] 237s tests/integration/test_packaging.py::T::test_get_uninstalled_package PASSED [ 59%] 237s tests/integration/test_packaging_apt_dpkg.py::T::test_check_files_md5 PASSED [ 59%] 237s tests/integration/test_packaging_apt_dpkg.py::T::test_compare_versions PASSED [ 60%] 237s tests/integration/test_packaging_apt_dpkg.py::T::test_enabled PASSED [ 60%] 238s tests/integration/test_packaging_apt_dpkg.py::T::test_get_architecture PASSED [ 60%] 238s tests/integration/test_packaging_apt_dpkg.py::T::test_get_available_version PASSED [ 60%] 238s tests/integration/test_packaging_apt_dpkg.py::T::test_get_dependencies_depends_and_pre_depends PASSED [ 60%] 239s tests/integration/test_packaging_apt_dpkg.py::T::test_get_dependencies_depends_only PASSED [ 60%] 239s tests/integration/test_packaging_apt_dpkg.py::T::test_get_dependencies_pre_depends_only PASSED [ 61%] 239s tests/integration/test_packaging_apt_dpkg.py::T::test_get_file_package PASSED [ 61%] 239s tests/integration/test_packaging_apt_dpkg.py::T::test_get_file_package_diversion PASSED [ 61%] 239s tests/integration/test_packaging_apt_dpkg.py::T::test_get_file_package_uninstalled PASSED [ 61%] 239s tests/integration/test_packaging_apt_dpkg.py::T::test_get_file_package_uninstalled_multiarch PASSED [ 61%] 239s tests/integration/test_packaging_apt_dpkg.py::T::test_get_files PASSED [ 62%] 239s tests/integration/test_packaging_apt_dpkg.py::T::test_get_kernel_package PASSED [ 62%] 239s tests/integration/test_packaging_apt_dpkg.py::T::test_get_library_paths PASSED [ 62%] 239s tests/integration/test_packaging_apt_dpkg.py::T::test_get_modified_conffiles PASSED [ 62%] 239s tests/integration/test_packaging_apt_dpkg.py::T::test_get_package_origin PASSED [ 62%] 240s tests/integration/test_packaging_apt_dpkg.py::T::test_get_source PASSED [ 63%] 240s tests/integration/test_packaging_apt_dpkg.py::T::test_get_system_architecture PASSED [ 63%] 240s tests/integration/test_packaging_apt_dpkg.py::T::test_get_version PASSED [ 63%] 240s tests/integration/test_packaging_apt_dpkg.py::T::test_is_distro_package PASSED [ 63%] 240s tests/integration/test_packaging_apt_dpkg.py::T::test_mirror_from_apt_sources PASSED [ 63%] 240s tests/integration/test_packaging_apt_dpkg.py::T::test_mirror_from_apt_sources_with_options PASSED [ 64%] 240s tests/integration/test_packaging_apt_dpkg.py::T::test_mirror_from_deb822_apt_sources PASSED [ 64%] 240s tests/integration/test_packaging_apt_dpkg.py::T::test_package_name_glob PASSED [ 64%] 240s tests/integration/test_packaging_rpm.py::TestPackagingRpm::test_get_dependencies SKIPPED [ 64%] 240s tests/integration/test_packaging_rpm.py::TestPackagingRpm::test_get_header SKIPPED [ 64%] 240s tests/integration/test_packaging_rpm.py::TestPackagingRpm::test_get_headers_by_tag SKIPPED [ 64%] 240s tests/integration/test_packaging_rpm.py::TestPackagingRpm::test_get_system_architecture SKIPPED [ 65%] 240s tests/integration/test_packaging_rpm.py::TestPackagingRpm::test_get_version SKIPPED [ 65%] 242s tests/integration/test_problem_report.py::T::test_add_to_existing PASSED [ 65%] 243s tests/integration/test_problem_report.py::T::test_big_file PASSED [ 65%] 243s tests/integration/test_problem_report.py::T::test_compressed_values PASSED [ 65%] 243s tests/integration/test_problem_report.py::T::test_extract_keys PASSED [ 66%] 243s tests/integration/test_problem_report.py::T::test_size_limit PASSED [ 66%] 243s tests/integration/test_problem_report.py::T::test_write_append PASSED [ 66%] 244s tests/integration/test_problem_report.py::T::test_write_delayed_fileobj PASSED [ 66%] 244s tests/integration/test_problem_report.py::T::test_write_file PASSED [ 66%] 244s tests/integration/test_problem_report.py::T::test_write_mime_binary PASSED [ 67%] 244s tests/integration/test_problem_report.py::T::test_write_mime_filter PASSED [ 67%] 244s tests/integration/test_python_crashes.py::T::test_deleted_working_directory PASSED [ 67%] 244s tests/integration/test_python_crashes.py::T::test_existing PASSED [ 67%] 244s tests/integration/test_python_crashes.py::T::test_general PASSED [ 67%] 244s tests/integration/test_python_crashes.py::T::test_generic_os_error PASSED [ 67%] 244s tests/integration/test_python_crashes.py::T::test_generic_os_error_no_errno PASSED [ 68%] 245s tests/integration/test_python_crashes.py::T::test_getcwd_error PASSED [ 68%] 245s tests/integration/test_python_crashes.py::T::test_ignoring PASSED [ 68%] 245s tests/integration/test_python_crashes.py::T::test_interactive PASSED [ 68%] 245s tests/integration/test_python_crashes.py::T::test_no_argv PASSED [ 68%] 245s tests/integration/test_python_crashes.py::T::test_no_flooding PASSED [ 69%] 246s tests/integration/test_python_crashes.py::T::test_python_env PASSED [ 69%] 246s tests/integration/test_python_crashes.py::T::test_subclassed_os_error PASSED [ 69%] 246s tests/integration/test_python_crashes.py::T::test_symlink PASSED [ 69%] 246s tests/integration/test_recoverable_problem.py::TestRecoverableProblem::test_invalid_data PASSED [ 69%] 246s tests/integration/test_recoverable_problem.py::TestRecoverableProblem::test_recoverable_problem PASSED [ 70%] 246s tests/integration/test_recoverable_problem.py::TestRecoverableProblem::test_recoverable_problem_dupe_sig PASSED [ 70%] 246s tests/integration/test_recoverable_problem.py::TestRecoverableProblem::test_wait_for_report_timeout PASSED [ 70%] 247s tests/integration/test_report.py::T::test_add_gdb_info PASSED [ 70%] 248s tests/integration/test_report.py::T::test_add_gdb_info_abort PASSED [ 70%] 248s tests/integration/test_report.py::T::test_add_gdb_info_damaged PASSED [ 71%] 249s tests/integration/test_report.py::T::test_add_gdb_info_damaged_gz_core PASSED [ 71%] 249s tests/integration/test_report.py::T::test_add_gdb_info_exe_missing PASSED [ 71%] 250s tests/integration/test_report.py::T::test_add_gdb_info_load PASSED [ 71%] 250s tests/integration/test_report.py::T::test_add_gdb_info_script PASSED [ 71%] 250s tests/integration/test_report.py::T::test_add_gdb_info_short_core_file PASSED [ 71%] 251s tests/integration/test_report.py::T::test_add_hooks_info PASSED [ 72%] 251s tests/integration/test_report.py::T::test_add_hooks_info_errors PASSED [ 72%] 251s tests/integration/test_report.py::T::test_add_hooks_info_opt PASSED [ 72%] 251s tests/integration/test_report.py::T::test_add_os_info PASSED [ 72%] 251s tests/integration/test_report.py::T::test_add_package_info PASSED [ 72%] 251s tests/integration/test_report.py::T::test_add_path_classification PASSED [ 73%] 251s tests/integration/test_report.py::T::test_add_proc_info PASSED [ 73%] 251s tests/integration/test_report.py::T::test_add_proc_info_current_desktop PASSED [ 73%] 252s tests/integration/test_report.py::T::test_add_proc_info_nonascii PASSED [ 73%] 252s tests/integration/test_report.py::T::test_add_user_info PASSED [ 73%] 252s tests/integration/test_report.py::T::test_add_user_info_missing_user PASSED [ 74%] 253s tests/integration/test_report.py::T::test_add_zz_parse_segv_details PASSED [ 74%] 253s tests/integration/test_report.py::T::test_address_to_offset_live PASSED [ 74%] 253s tests/integration/test_report.py::T::test_allowlisting PASSED [ 74%] 253s tests/integration/test_report.py::T::test_check_interpreted PASSED [ 74%] 253s tests/integration/test_report.py::T::test_check_interpreted_no_exec PASSED [ 75%] 253s tests/integration/test_report.py::T::test_check_interpreted_twistd SKIPPED [ 75%] 253s tests/integration/test_report.py::T::test_command_output PASSED [ 75%] 253s tests/integration/test_report.py::T::test_command_output_passes_env PASSED [ 75%] 253s tests/integration/test_report.py::T::test_command_output_raises_error PASSED [ 75%] 253s tests/integration/test_report.py::T::test_command_output_timeout PASSED [ 75%] 253s tests/integration/test_report.py::T::test_command_output_timeout_no_output PASSED [ 76%] 253s tests/integration/test_report.py::T::test_denylisting PASSED [ 76%] 253s tests/integration/test_report.py::T::test_extrapath_preferred PASSED [ 76%] 254s tests/integration/test_report.py::T::test_ignoring PASSED [ 76%] 254s tests/integration/test_report.py::T::test_obsolete_packages PASSED [ 76%] 254s tests/integration/test_report.py::T::test_search_bug_patterns PASSED [ 77%] 254s tests/integration/test_report.py::T::test_wait_for_proc_cmdline_failure PASSED [ 77%] 262s tests/integration/test_signal_crashes.py::T::test_core_dump_packaged PASSED [ 77%] 262s tests/integration/test_signal_crashes.py::T::test_core_dump_packaged_sigquit PASSED [ 77%] 263s tests/integration/test_signal_crashes.py::T::test_core_dump_packaged_sigquit_via_socket PASSED [ 77%] 266s tests/integration/test_signal_crashes.py::T::test_core_dump_unpackaged PASSED [ 78%] 267s tests/integration/test_signal_crashes.py::T::test_core_file_injection PASSED [ 78%] 268s tests/integration/test_signal_crashes.py::T::test_coredump_from_socket PASSED [ 78%] 270s tests/integration/test_signal_crashes.py::T::test_crash_apport PASSED [ 78%] 270s tests/integration/test_signal_crashes.py::T::test_crash_apport_from_systemd_coredump PASSED [ 78%] 271s tests/integration/test_signal_crashes.py::T::test_crash_setuid_drop PASSED [ 78%] 272s tests/integration/test_signal_crashes.py::T::test_crash_setuid_drop_via_socket PASSED [ 79%] 273s tests/integration/test_signal_crashes.py::T::test_crash_setuid_keep PASSED [ 79%] 273s tests/integration/test_signal_crashes.py::T::test_crash_setuid_unpackaged PASSED [ 79%] 275s tests/integration/test_signal_crashes.py::T::test_crash_suid_dumpable_debug PASSED [ 79%] 275s tests/integration/test_signal_crashes.py::T::test_create_test_non_sleep_process PASSED [ 79%] 275s tests/integration/test_signal_crashes.py::T::test_create_test_sleep_process PASSED [ 80%] 275s tests/integration/test_signal_crashes.py::T::test_empty_core_dump PASSED [ 80%] 277s tests/integration/test_signal_crashes.py::T::test_flood_limit PASSED [ 80%] 278s tests/integration/test_signal_crashes.py::T::test_ignore PASSED [ 80%] 278s tests/integration/test_signal_crashes.py::T::test_ignore_sigquit PASSED [ 80%] 279s tests/integration/test_signal_crashes.py::T::test_ignore_sigxcpu PASSED [ 81%] 279s tests/integration/test_signal_crashes.py::T::test_is_not_same_ns PASSED [ 81%] 280s tests/integration/test_signal_crashes.py::T::test_leak_inaccessible_files PASSED [ 81%] 280s tests/integration/test_signal_crashes.py::T::test_logging_file PASSED [ 81%] 281s tests/integration/test_signal_crashes.py::T::test_logging_stderr PASSED [ 81%] 283s tests/integration/test_signal_crashes.py::T::test_modify_after_start PASSED [ 82%] 284s tests/integration/test_signal_crashes.py::T::test_nonreadable_exe PASSED [ 82%] 284s tests/integration/test_signal_crashes.py::T::test_parallel_crash SKIPPED [ 82%] 284s tests/integration/test_signal_crashes.py::T::test_unpackaged_binary PASSED [ 82%] 285s tests/integration/test_signal_crashes.py::T::test_unpackaged_script PASSED [ 82%] 285s tests/integration/test_signal_crashes.py::T::test_unsupported_arguments_no_stderr PASSED [ 82%] 285s tests/integration/test_signal_crashes.py::T::test_wait_for_core_file_core_not_created PASSED [ 83%] 285s tests/integration/test_signal_crashes.py::T::test_wait_for_core_file_timeout PASSED [ 83%] 285s tests/integration/test_signal_crashes.py::T::test_wait_for_gdb_sleeping_child_process PASSED [ 83%] 285s tests/integration/test_signal_crashes.py::T::test_wait_for_gdb_sleeping_child_process_timeout PASSED [ 83%] 285s tests/integration/test_ui.py::T::test_can_examine_locally_crash PASSED [ 83%] 285s tests/integration/test_ui.py::T::test_can_examine_locally_nocrash PASSED [ 84%] 286s tests/integration/test_ui.py::T::test_collect_info_crashdb_errors PASSED [ 84%] 286s tests/integration/test_ui.py::T::test_collect_info_crashdb_name PASSED [ 84%] 286s tests/integration/test_ui.py::T::test_collect_info_crashdb_spec PASSED [ 84%] 286s tests/integration/test_ui.py::T::test_collect_info_distro PASSED [ 84%] 286s tests/integration/test_ui.py::T::test_collect_info_exepath PASSED [ 85%] 287s tests/integration/test_ui.py::T::test_collect_info_package PASSED [ 85%] 287s tests/integration/test_ui.py::T::test_collect_info_permissions PASSED [ 85%] 287s tests/integration/test_ui.py::T::test_db_no_accept PASSED [ 85%] 287s tests/integration/test_ui.py::T::test_file_report_http_error PASSED [ 85%] 287s tests/integration/test_ui.py::T::test_file_report_nodelay PASSED [ 85%] 287s tests/integration/test_ui.py::T::test_file_report_upload_delay PASSED [ 86%] 287s tests/integration/test_ui.py::T::test_file_report_upload_message PASSED [ 86%] 287s tests/integration/test_ui.py::T::test_format_filesize PASSED [ 86%] 287s tests/integration/test_ui.py::T::test_get_desktop_entry PASSED [ 86%] 287s tests/integration/test_ui.py::T::test_get_desktop_entry_broken PASSED [ 86%] 287s tests/integration/test_ui.py::T::test_get_size_constructed PASSED [ 87%] 287s tests/integration/test_ui.py::T::test_get_size_loaded PASSED [ 87%] 287s tests/integration/test_ui.py::T::test_handle_duplicate PASSED [ 87%] 288s tests/integration/test_ui.py::T::test_hooks_choices_db_no_accept PASSED [ 87%] 288s tests/integration/test_ui.py::T::test_interactive_hooks_cancel PASSED [ 87%] 288s tests/integration/test_ui.py::T::test_interactive_hooks_choices PASSED [ 88%] 289s tests/integration/test_ui.py::T::test_interactive_hooks_file PASSED [ 88%] 289s tests/integration/test_ui.py::T::test_interactive_hooks_information PASSED [ 88%] 290s tests/integration/test_ui.py::T::test_interactive_hooks_yesno PASSED [ 88%] 290s tests/integration/test_ui.py::T::test_load_report PASSED [ 88%] 290s tests/integration/test_ui.py::T::test_parse_argv_apport_bug PASSED [ 89%] 290s tests/integration/test_ui.py::T::test_parse_argv_single_arg PASSED [ 89%] 292s tests/integration/test_ui.py::T::test_restart PASSED [ 89%] 292s tests/integration/test_ui.py::T::test_run_as_real_user PASSED [ 89%] 292s tests/integration/test_ui.py::T::test_run_as_real_user_no_gvfsd PASSED [ 89%] 292s tests/integration/test_ui.py::T::test_run_as_real_user_no_sudo PASSED [ 89%] 292s tests/integration/test_ui.py::T::test_run_as_real_user_non_root PASSED [ 90%] 293s tests/integration/test_ui.py::T::test_run_crash PASSED [ 90%] 294s tests/integration/test_ui.py::T::test_run_crash_abort PASSED [ 90%] 294s tests/integration/test_ui.py::T::test_run_crash_anonymity PASSED [ 90%] 295s tests/integration/test_ui.py::T::test_run_crash_anonymity_escaping PASSED [ 90%] 295s tests/integration/test_ui.py::T::test_run_crash_anonymity_order PASSED [ 91%] 296s tests/integration/test_ui.py::T::test_run_crash_anonymity_substring PASSED [ 91%] 296s tests/integration/test_ui.py::T::test_run_crash_argv_file PASSED [ 91%] 296s tests/integration/test_ui.py::T::test_run_crash_broken PASSED [ 91%] 296s tests/integration/test_ui.py::T::test_run_crash_errors PASSED [ 91%] 296s tests/integration/test_ui.py::T::test_run_crash_ignore PASSED [ 92%] 297s tests/integration/test_ui.py::T::test_run_crash_kernel PASSED [ 92%] 298s tests/integration/test_ui.py::T::test_run_crash_known PASSED [ 92%] 298s tests/integration/test_ui.py::T::test_run_crash_malicious_crashdb PASSED [ 92%] 299s tests/integration/test_ui.py::T::test_run_crash_malicious_exec_path PASSED [ 92%] 299s tests/integration/test_ui.py::T::test_run_crash_malicious_package PASSED [ 92%] 299s tests/integration/test_ui.py::T::test_run_crash_nocore PASSED [ 93%] 299s tests/integration/test_ui.py::T::test_run_crash_package PASSED [ 93%] 300s tests/integration/test_ui.py::T::test_run_crash_precollected PASSED [ 93%] 300s tests/integration/test_ui.py::T::test_run_crash_preretraced PASSED [ 93%] 301s tests/integration/test_ui.py::T::test_run_crash_private_keys PASSED [ 93%] 301s tests/integration/test_ui.py::T::test_run_crash_uninstalled PASSED [ 94%] 301s tests/integration/test_ui.py::T::test_run_crash_unreportable PASSED [ 94%] 301s tests/integration/test_ui.py::T::test_run_crash_updated_binary PASSED [ 94%] 301s tests/integration/test_ui.py::T::test_run_nopending PASSED [ 94%] 301s tests/integration/test_ui.py::T::test_run_report_bug_file PASSED [ 94%] 301s tests/integration/test_ui.py::T::test_run_report_bug_kernel_thread PASSED [ 95%] 302s tests/integration/test_ui.py::T::test_run_report_bug_list_symptoms PASSED [ 95%] 302s tests/integration/test_ui.py::T::test_run_report_bug_noargs PASSED [ 95%] 302s tests/integration/test_ui.py::T::test_run_report_bug_noperm_pid PASSED [ 95%] 302s tests/integration/test_ui.py::T::test_run_report_bug_package PASSED [ 95%] 302s tests/integration/test_ui.py::T::test_run_report_bug_pid_tags PASSED [ 96%] 303s tests/integration/test_ui.py::T::test_run_report_bug_unpackaged_pid PASSED [ 96%] 303s tests/integration/test_ui.py::T::test_run_report_bug_wrong_pid PASSED [ 96%] 303s tests/integration/test_ui.py::T::test_run_report_hanging PASSED [ 96%] 303s tests/integration/test_ui.py::T::test_run_restart PASSED [ 96%] 304s tests/integration/test_ui.py::T::test_run_symptom PASSED [ 96%] 304s tests/integration/test_ui.py::T::test_run_update_report_different_binary_source PASSED [ 97%] 304s tests/integration/test_ui.py::T::test_run_update_report_existing_package_cli_cmdname PASSED [ 97%] 304s tests/integration/test_ui.py::T::test_run_update_report_existing_package_cli_tags PASSED [ 97%] 305s tests/integration/test_ui.py::T::test_run_update_report_existing_package_from_bug PASSED [ 97%] 305s tests/integration/test_ui.py::T::test_run_update_report_nonexisting_package_cli PASSED [ 97%] 305s tests/integration/test_ui.py::T::test_run_update_report_nonexisting_package_from_bug PASSED [ 98%] 305s tests/integration/test_ui.py::T::test_run_update_report_noninstalled_but_hook PASSED [ 98%] 305s tests/integration/test_ui.py::T::test_run_version PASSED [ 98%] 305s tests/integration/test_ui.py::T::test_wait_for_pid PASSED [ 98%] 305s tests/integration/test_ui_cli.py::TestApportCli::test_save_report_in_temp_directory PASSED [ 98%] 305s tests/integration/test_ui_cli.py::TestApportCli::test_ui_update_view PASSED [ 99%] 305s tests/integration/test_ui_gtk.py::test_unusable_display PASSED [ 99%] 305s tests/integration/test_unkillable_shutdown.py::TestUnkillableShutdown::test_omit_all_processes PASSED [ 99%] 305s tests/integration/test_unkillable_shutdown.py::TestUnkillableShutdown::test_omit_all_processes_except_one PASSED [ 99%] 306s tests/integration/test_unkillable_shutdown.py::TestUnkillableShutdown::test_write_reports PASSED [ 99%] 306s tests/integration/test_whoopsie_upload_all.py::TestWhoopsieUploadAll::test_process_report_malformed_report PASSED [100%] 306s 306s =========================== short test summary info ============================ 306s SKIPPED [1] tests/unit/test_problem_report.py:86: Missing German locale support 306s SKIPPED [1] tests/integration/test_crashdb_launchpad.py:196: Need Launchpad access with bug control permission. Set TEST_LAUNCHPAD to run. 306s SKIPPED [1] tests/integration/test_crashdb_launchpad.py:246: Need Launchpad access with bug control permission. Set TEST_LAUNCHPAD to run. 306s SKIPPED [1] tests/integration/test_crashdb_launchpad.py:494: Need Launchpad access with bug control permission. Set TEST_LAUNCHPAD to run. 306s SKIPPED [1] tests/integration/test_crashdb_launchpad.py:887: Need Launchpad access with bug control permission. Set TEST_LAUNCHPAD to run. 306s SKIPPED [1] tests/integration/test_crashdb_launchpad.py:499: Need Launchpad access with bug control permission. Set TEST_LAUNCHPAD to run. 306s SKIPPED [1] tests/integration/test_crashdb_launchpad.py:895: Need Launchpad access with bug control permission. Set TEST_LAUNCHPAD to run. 306s SKIPPED [1] tests/integration/test_crashdb_launchpad.py:482: Need Launchpad access with bug control permission. Set TEST_LAUNCHPAD to run. 306s SKIPPED [1] tests/integration/test_crashdb_launchpad.py:340: Need Launchpad access with bug control permission. Set TEST_LAUNCHPAD to run. 306s SKIPPED [1] tests/integration/test_crashdb_launchpad.py:475: Need Launchpad access with bug control permission. Set TEST_LAUNCHPAD to run. 306s SKIPPED [1] tests/integration/test_crashdb_launchpad.py:693: Need Launchpad access with bug control permission. Set TEST_LAUNCHPAD to run. 306s SKIPPED [1] tests/integration/test_crashdb_launchpad.py:489: Need Launchpad access with bug control permission. Set TEST_LAUNCHPAD to run. 306s SKIPPED [1] tests/integration/test_crashdb_launchpad.py:624: Need Launchpad access with bug control permission. Set TEST_LAUNCHPAD to run. 306s SKIPPED [1] tests/integration/test_crashdb_launchpad.py:588: Need Launchpad access with bug control permission. Set TEST_LAUNCHPAD to run. 306s SKIPPED [1] tests/integration/test_crashdb_launchpad.py:657: Need Launchpad access with bug control permission. Set TEST_LAUNCHPAD to run. 306s SKIPPED [1] tests/integration/test_crashdb_launchpad.py:934: Need Launchpad access with bug control permission. Set TEST_LAUNCHPAD to run. 306s SKIPPED [1] tests/integration/test_crashdb_launchpad.py:550: Need Launchpad access with bug control permission. Set TEST_LAUNCHPAD to run. 306s SKIPPED [1] tests/integration/test_crashdb_launchpad.py:830: Need Launchpad access with bug control permission. Set TEST_LAUNCHPAD to run. 306s SKIPPED [1] tests/integration/test_crashdb_launchpad.py:401: Need Launchpad access with bug control permission. Set TEST_LAUNCHPAD to run. 306s SKIPPED [1] tests/integration/test_crashdb_launchpad.py:368: Need Launchpad access with bug control permission. Set TEST_LAUNCHPAD to run. 306s SKIPPED [1] tests/integration/test_crashdb_launchpad.py:437: Need Launchpad access with bug control permission. Set TEST_LAUNCHPAD to run. 306s SKIPPED [1] tests/integration/test_crashdb_launchpad.py:670: Need Launchpad access with bug control permission. Set TEST_LAUNCHPAD to run. 306s SKIPPED [1] tests/integration/test_hookutils.py:376: no logind session 306s SKIPPED [1] tests/integration/test_packaging_rpm.py:20: rpm module not available 306s SKIPPED [1] tests/integration/test_packaging_rpm.py:25: rpm module not available 306s SKIPPED [1] tests/integration/test_packaging_rpm.py:31: rpm module not available 306s SKIPPED [1] tests/integration/test_packaging_rpm.py:38: rpm module not available 306s SKIPPED [1] tests/integration/test_packaging_rpm.py:45: rpm module not available 306s SKIPPED [1] tests/integration/test_report.py:563: twistd not installed 306s SKIPPED [1] tests/integration/test_signal_crashes.py:237: fix test as multiple instances can be started within 30s 306s ================== 498 passed, 30 skipped in 93.01s (0:01:33) ================== 306s autopkgtest [21:23:25]: test unit-and-integration-tests: -----------------------] 306s autopkgtest [21:23:25]: test unit-and-integration-tests: - - - - - - - - - - results - - - - - - - - - - 306s unit-and-integration-tests PASS 307s autopkgtest [21:23:26]: test system-tests: preparing testbed 313s Creating nova instance adt-noble-amd64-apport-20250708-211819-juju-7f2275-prod-proposed-migration-environment-15-b187dafa-ee0f-4625-ab20-9a9154093723 from image adt/ubuntu-noble-amd64-server-20250708.img (UUID 86eed7e5-af97-4e18-9b72-d5f6b253f87b)... 952s autopkgtest [21:34:11]: testbed dpkg architecture: amd64 952s autopkgtest [21:34:11]: testbed apt version: 2.8.3 953s autopkgtest [21:34:12]: @@@@@@@@@@@@@@@@@@@@ test bed setup 953s autopkgtest [21:34:12]: testbed release detected to be: noble 954s autopkgtest [21:34:13]: updating testbed package index (apt update) 954s Get:1 http://ftpmaster.internal/ubuntu noble-proposed InRelease [265 kB] 954s Hit:2 http://ftpmaster.internal/ubuntu noble InRelease 954s Hit:3 http://ftpmaster.internal/ubuntu noble-updates InRelease 954s Hit:4 http://ftpmaster.internal/ubuntu noble-security InRelease 954s Get:5 http://ftpmaster.internal/ubuntu noble-proposed/restricted Sources [30.3 kB] 954s Get:6 http://ftpmaster.internal/ubuntu noble-proposed/universe Sources [63.2 kB] 954s Get:7 http://ftpmaster.internal/ubuntu noble-proposed/main Sources [61.9 kB] 954s Get:8 http://ftpmaster.internal/ubuntu noble-proposed/multiverse Sources [11.4 kB] 954s Get:9 http://ftpmaster.internal/ubuntu noble-proposed/main i386 Packages [53.2 kB] 954s Get:10 http://ftpmaster.internal/ubuntu noble-proposed/main amd64 Packages [278 kB] 954s Get:11 http://ftpmaster.internal/ubuntu noble-proposed/main amd64 c-n-f Metadata [2248 B] 954s Get:12 http://ftpmaster.internal/ubuntu noble-proposed/restricted amd64 Packages [434 kB] 954s Get:13 http://ftpmaster.internal/ubuntu noble-proposed/restricted i386 Packages [9956 B] 954s Get:14 http://ftpmaster.internal/ubuntu noble-proposed/restricted amd64 c-n-f Metadata [116 B] 954s Get:15 http://ftpmaster.internal/ubuntu noble-proposed/universe i386 Packages [347 kB] 954s Get:16 http://ftpmaster.internal/ubuntu noble-proposed/universe amd64 Packages [450 kB] 955s Get:17 http://ftpmaster.internal/ubuntu noble-proposed/universe amd64 c-n-f Metadata [7448 B] 955s Get:18 http://ftpmaster.internal/ubuntu noble-proposed/multiverse i386 Packages [5460 B] 955s Get:19 http://ftpmaster.internal/ubuntu noble-proposed/multiverse amd64 Packages [21.3 kB] 955s Get:20 http://ftpmaster.internal/ubuntu noble-proposed/multiverse amd64 c-n-f Metadata [116 B] 959s Fetched 2040 kB in 1s (2803 kB/s) 960s Reading package lists... 961s autopkgtest [21:34:20]: upgrading testbed (apt dist-upgrade and autopurge) 961s Reading package lists... 961s Building dependency tree... 961s Reading state information... 961s Calculating upgrade...Starting pkgProblemResolver with broken count: 0 961s Starting 2 pkgProblemResolver with broken count: 0 961s Done 962s Entering ResolveByKeep 962s 962s The following packages will be upgraded: 962s bsdextrautils bsdutils eject fdisk libblkid1 libfdisk1 libmount1 962s libnss-systemd libpam-systemd libsmartcols1 libsystemd-shared libsystemd0 962s libudev1 libuuid1 mount systemd systemd-dev systemd-resolved systemd-sysv 962s systemd-timesyncd ubuntu-pro-client ubuntu-pro-client-l10n udev util-linux 962s uuid-runtime 962s 25 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 962s Need to get 11.3 MB of archives. 962s After this operation, 38.9 kB of additional disk space will be used. 962s Get:1 http://ftpmaster.internal/ubuntu noble-updates/main amd64 bsdutils amd64 1:2.39.3-9ubuntu6.3 [95.9 kB] 962s Get:2 http://ftpmaster.internal/ubuntu noble-updates/main amd64 util-linux amd64 2.39.3-9ubuntu6.3 [1128 kB] 963s Get:3 http://ftpmaster.internal/ubuntu noble-updates/main amd64 mount amd64 2.39.3-9ubuntu6.3 [118 kB] 963s Get:4 http://ftpmaster.internal/ubuntu noble-proposed/main amd64 libnss-systemd amd64 255.4-1ubuntu8.10 [159 kB] 963s Get:5 http://ftpmaster.internal/ubuntu noble-proposed/main amd64 systemd-dev all 255.4-1ubuntu8.10 [105 kB] 963s Get:6 http://ftpmaster.internal/ubuntu noble-updates/main amd64 libblkid1 amd64 2.39.3-9ubuntu6.3 [123 kB] 963s Get:7 http://ftpmaster.internal/ubuntu noble-proposed/main amd64 systemd-timesyncd amd64 255.4-1ubuntu8.10 [35.3 kB] 963s Get:8 http://ftpmaster.internal/ubuntu noble-proposed/main amd64 systemd-resolved amd64 255.4-1ubuntu8.10 [296 kB] 963s Get:9 http://ftpmaster.internal/ubuntu noble-proposed/main amd64 libsystemd-shared amd64 255.4-1ubuntu8.10 [2074 kB] 963s Get:10 http://ftpmaster.internal/ubuntu noble-proposed/main amd64 libsystemd0 amd64 255.4-1ubuntu8.10 [434 kB] 963s Get:11 http://ftpmaster.internal/ubuntu noble-proposed/main amd64 systemd-sysv amd64 255.4-1ubuntu8.10 [11.9 kB] 963s Get:12 http://ftpmaster.internal/ubuntu noble-proposed/main amd64 libpam-systemd amd64 255.4-1ubuntu8.10 [235 kB] 963s Get:13 http://ftpmaster.internal/ubuntu noble-proposed/main amd64 systemd amd64 255.4-1ubuntu8.10 [3475 kB] 964s Get:14 http://ftpmaster.internal/ubuntu noble-proposed/main amd64 udev amd64 255.4-1ubuntu8.10 [1873 kB] 964s Get:15 http://ftpmaster.internal/ubuntu noble-proposed/main amd64 libudev1 amd64 255.4-1ubuntu8.10 [176 kB] 964s Get:16 http://ftpmaster.internal/ubuntu noble-updates/main amd64 libmount1 amd64 2.39.3-9ubuntu6.3 [134 kB] 964s Get:17 http://ftpmaster.internal/ubuntu noble-updates/main amd64 libuuid1 amd64 2.39.3-9ubuntu6.3 [35.8 kB] 964s Get:18 http://ftpmaster.internal/ubuntu noble-updates/main amd64 libfdisk1 amd64 2.39.3-9ubuntu6.3 [146 kB] 964s Get:19 http://ftpmaster.internal/ubuntu noble-updates/main amd64 libsmartcols1 amd64 2.39.3-9ubuntu6.3 [65.4 kB] 964s Get:20 http://ftpmaster.internal/ubuntu noble-updates/main amd64 uuid-runtime amd64 2.39.3-9ubuntu6.3 [33.1 kB] 964s Get:21 http://ftpmaster.internal/ubuntu noble-updates/main amd64 eject amd64 2.39.3-9ubuntu6.3 [26.3 kB] 964s Get:22 http://ftpmaster.internal/ubuntu noble-proposed/main amd64 ubuntu-pro-client-l10n amd64 36ubuntu0~24.04 [19.8 kB] 964s Get:23 http://ftpmaster.internal/ubuntu noble-proposed/main amd64 ubuntu-pro-client amd64 36ubuntu0~24.04 [258 kB] 964s Get:24 http://ftpmaster.internal/ubuntu noble-updates/main amd64 bsdextrautils amd64 2.39.3-9ubuntu6.3 [73.7 kB] 964s Get:25 http://ftpmaster.internal/ubuntu noble-updates/main amd64 fdisk amd64 2.39.3-9ubuntu6.3 [122 kB] 964s Fetched 11.3 MB in 1s (8796 kB/s) 964s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 106307 files and directories currently installed.) 964s Preparing to unpack .../bsdutils_1%3a2.39.3-9ubuntu6.3_amd64.deb ... 964s Unpacking bsdutils (1:2.39.3-9ubuntu6.3) over (1:2.39.3-9ubuntu6.2) ... 964s Setting up bsdutils (1:2.39.3-9ubuntu6.3) ... 964s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 106307 files and directories currently installed.) 964s Preparing to unpack .../util-linux_2.39.3-9ubuntu6.3_amd64.deb ... 964s Unpacking util-linux (2.39.3-9ubuntu6.3) over (2.39.3-9ubuntu6.2) ... 965s Setting up util-linux (2.39.3-9ubuntu6.3) ... 966s fstrim.service is a disabled or a static unit not running, not starting it. 966s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 106307 files and directories currently installed.) 966s Preparing to unpack .../mount_2.39.3-9ubuntu6.3_amd64.deb ... 966s Unpacking mount (2.39.3-9ubuntu6.3) over (2.39.3-9ubuntu6.2) ... 966s Preparing to unpack .../libnss-systemd_255.4-1ubuntu8.10_amd64.deb ... 966s Unpacking libnss-systemd:amd64 (255.4-1ubuntu8.10) over (255.4-1ubuntu8.8) ... 966s Preparing to unpack .../systemd-dev_255.4-1ubuntu8.10_all.deb ... 966s Unpacking systemd-dev (255.4-1ubuntu8.10) over (255.4-1ubuntu8.8) ... 966s Preparing to unpack .../libblkid1_2.39.3-9ubuntu6.3_amd64.deb ... 966s Unpacking libblkid1:amd64 (2.39.3-9ubuntu6.3) over (2.39.3-9ubuntu6.2) ... 966s Setting up libblkid1:amd64 (2.39.3-9ubuntu6.3) ... 966s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 106307 files and directories currently installed.) 966s Preparing to unpack .../systemd-timesyncd_255.4-1ubuntu8.10_amd64.deb ... 966s Unpacking systemd-timesyncd (255.4-1ubuntu8.10) over (255.4-1ubuntu8.8) ... 966s Preparing to unpack .../systemd-resolved_255.4-1ubuntu8.10_amd64.deb ... 966s Unpacking systemd-resolved (255.4-1ubuntu8.10) over (255.4-1ubuntu8.8) ... 966s Preparing to unpack .../libsystemd-shared_255.4-1ubuntu8.10_amd64.deb ... 966s Unpacking libsystemd-shared:amd64 (255.4-1ubuntu8.10) over (255.4-1ubuntu8.8) ... 966s Preparing to unpack .../libsystemd0_255.4-1ubuntu8.10_amd64.deb ... 966s Unpacking libsystemd0:amd64 (255.4-1ubuntu8.10) over (255.4-1ubuntu8.8) ... 966s Setting up libsystemd0:amd64 (255.4-1ubuntu8.10) ... 966s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 106307 files and directories currently installed.) 966s Preparing to unpack .../systemd-sysv_255.4-1ubuntu8.10_amd64.deb ... 966s Unpacking systemd-sysv (255.4-1ubuntu8.10) over (255.4-1ubuntu8.8) ... 966s Preparing to unpack .../libpam-systemd_255.4-1ubuntu8.10_amd64.deb ... 966s Unpacking libpam-systemd:amd64 (255.4-1ubuntu8.10) over (255.4-1ubuntu8.8) ... 966s Preparing to unpack .../systemd_255.4-1ubuntu8.10_amd64.deb ... 966s Unpacking systemd (255.4-1ubuntu8.10) over (255.4-1ubuntu8.8) ... 967s Preparing to unpack .../udev_255.4-1ubuntu8.10_amd64.deb ... 967s Unpacking udev (255.4-1ubuntu8.10) over (255.4-1ubuntu8.8) ... 967s Preparing to unpack .../libudev1_255.4-1ubuntu8.10_amd64.deb ... 967s Unpacking libudev1:amd64 (255.4-1ubuntu8.10) over (255.4-1ubuntu8.8) ... 967s Setting up libudev1:amd64 (255.4-1ubuntu8.10) ... 967s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 106307 files and directories currently installed.) 967s Preparing to unpack .../libmount1_2.39.3-9ubuntu6.3_amd64.deb ... 967s Unpacking libmount1:amd64 (2.39.3-9ubuntu6.3) over (2.39.3-9ubuntu6.2) ... 967s Setting up libmount1:amd64 (2.39.3-9ubuntu6.3) ... 967s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 106307 files and directories currently installed.) 967s Preparing to unpack .../libuuid1_2.39.3-9ubuntu6.3_amd64.deb ... 967s Unpacking libuuid1:amd64 (2.39.3-9ubuntu6.3) over (2.39.3-9ubuntu6.2) ... 967s Setting up libuuid1:amd64 (2.39.3-9ubuntu6.3) ... 967s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 106307 files and directories currently installed.) 967s Preparing to unpack .../libfdisk1_2.39.3-9ubuntu6.3_amd64.deb ... 967s Unpacking libfdisk1:amd64 (2.39.3-9ubuntu6.3) over (2.39.3-9ubuntu6.2) ... 967s Preparing to unpack .../libsmartcols1_2.39.3-9ubuntu6.3_amd64.deb ... 967s Unpacking libsmartcols1:amd64 (2.39.3-9ubuntu6.3) over (2.39.3-9ubuntu6.2) ... 967s Setting up libsmartcols1:amd64 (2.39.3-9ubuntu6.3) ... 967s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 106307 files and directories currently installed.) 967s Preparing to unpack .../0-uuid-runtime_2.39.3-9ubuntu6.3_amd64.deb ... 967s Unpacking uuid-runtime (2.39.3-9ubuntu6.3) over (2.39.3-9ubuntu6.2) ... 967s Preparing to unpack .../1-eject_2.39.3-9ubuntu6.3_amd64.deb ... 967s Unpacking eject (2.39.3-9ubuntu6.3) over (2.39.3-9ubuntu6.2) ... 967s Preparing to unpack .../2-ubuntu-pro-client-l10n_36ubuntu0~24.04_amd64.deb ... 967s Unpacking ubuntu-pro-client-l10n (36ubuntu0~24.04) over (35.1ubuntu0~24.04) ... 967s Preparing to unpack .../3-ubuntu-pro-client_36ubuntu0~24.04_amd64.deb ... 968s Unpacking ubuntu-pro-client (36ubuntu0~24.04) over (35.1ubuntu0~24.04) ... 968s Preparing to unpack .../4-bsdextrautils_2.39.3-9ubuntu6.3_amd64.deb ... 968s Unpacking bsdextrautils (2.39.3-9ubuntu6.3) over (2.39.3-9ubuntu6.2) ... 968s Preparing to unpack .../5-fdisk_2.39.3-9ubuntu6.3_amd64.deb ... 968s Unpacking fdisk (2.39.3-9ubuntu6.3) over (2.39.3-9ubuntu6.2) ... 968s Setting up bsdextrautils (2.39.3-9ubuntu6.3) ... 968s Setting up systemd-dev (255.4-1ubuntu8.10) ... 968s Setting up eject (2.39.3-9ubuntu6.3) ... 968s Setting up libsystemd-shared:amd64 (255.4-1ubuntu8.10) ... 968s Setting up libfdisk1:amd64 (2.39.3-9ubuntu6.3) ... 968s Setting up mount (2.39.3-9ubuntu6.3) ... 968s Setting up uuid-runtime (2.39.3-9ubuntu6.3) ... 969s uuidd.service is a disabled or a static unit not running, not starting it. 969s Setting up ubuntu-pro-client (36ubuntu0~24.04) ... 969s Installing new version of config file /etc/apparmor.d/ubuntu_pro_esm_cache ... 971s Setting up ubuntu-pro-client-l10n (36ubuntu0~24.04) ... 971s Setting up systemd (255.4-1ubuntu8.10) ... 972s Setting up fdisk (2.39.3-9ubuntu6.3) ... 972s Setting up systemd-timesyncd (255.4-1ubuntu8.10) ... 972s Setting up udev (255.4-1ubuntu8.10) ... 973s Setting up systemd-resolved (255.4-1ubuntu8.10) ... 974s Setting up systemd-sysv (255.4-1ubuntu8.10) ... 974s Setting up libnss-systemd:amd64 (255.4-1ubuntu8.10) ... 974s Setting up libpam-systemd:amd64 (255.4-1ubuntu8.10) ... 974s Processing triggers for libc-bin (2.39-0ubuntu8.4) ... 974s Processing triggers for man-db (2.12.0-4build2) ... 975s Processing triggers for dbus (1.14.10-4ubuntu4.1) ... 975s Processing triggers for initramfs-tools (0.142ubuntu25.5) ... 975s update-initramfs: Generating /boot/initrd.img-6.8.0-63-generic 985s Reading package lists... 985s Building dependency tree... 985s Reading state information... 985s Starting pkgProblemResolver with broken count: 0 986s Starting 2 pkgProblemResolver with broken count: 0 986s Done 986s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 986s autopkgtest [21:34:45]: rebooting testbed after setup commands that affected boot 1020s Reading package lists... 1020s Building dependency tree... 1020s Reading state information... 1020s Starting pkgProblemResolver with broken count: 0 1020s Starting 2 pkgProblemResolver with broken count: 0 1020s Done 1021s The following NEW packages will be installed: 1021s adwaita-icon-theme apport-gtk apport-kde apport-retrace apport-valgrind 1021s at-spi2-common chaos-marmosets cpp cpp-13 cpp-13-x86-64-linux-gnu 1021s cpp-x86-64-linux-gnu dbus-x11 dconf-gsettings-backend dconf-service 1021s desktop-file-utils fontconfig gcc gcc-13 gcc-13-base gcc-13-x86-64-linux-gnu 1021s gcc-x86-64-linux-gnu gdb gdb-multiarch gir1.2-atk-1.0 gir1.2-freedesktop 1021s gir1.2-gdkpixbuf-2.0 gir1.2-gtk-3.0 gir1.2-harfbuzz-0.0 gir1.2-pango-1.0 1021s gir1.2-wnck-3.0 gnome-icon-theme gnome-terminal gnome-terminal-data 1021s gsettings-desktop-schemas gtk-update-icon-cache gvfs-common gvfs-daemons 1021s gvfs-libs hicolor-icon-theme humanity-icon-theme libasan8 1021s libatk-bridge2.0-0t64 libatk1.0-0t64 libatomic1 libatspi2.0-0t64 1021s libavahi-client3 libavahi-common-data libavahi-common3 libbabeltrace1 1021s libc6-dbg libcairo-gobject2 libcairo2 libcc1-0 libcolord2 libcups2t64 1021s libdatrie1 libdconf1 libdebuginfod-common libdebuginfod1t64 1021s libdouble-conversion3 libdrm-amdgpu1 libdrm-intel1 libdrm-radeon1 1021s libegl-mesa0 libegl1 libepoxy0 libfontenc1 libgbm1 libgcc-13-dev libgck-2-2 1021s libgcr-4-4 libgdk-pixbuf-2.0-0 libgdk-pixbuf2.0-common libgl1 1021s libgl1-mesa-dri libglapi-mesa libglvnd0 libglx-mesa0 libglx0 libgomp1 1021s libgraphite2-3 libgtk-3-0t64 libgtk-3-common libhandy-1-0 1021s libharfbuzz-gobject0 libharfbuzz0b libhwasan0 libice6 libinput-bin 1021s libinput10 libipt2 libisl23 libitm1 liblcms2-2 libllvm19 liblsan0 libmd4c0 1021s libmpc3 libmtdev1t64 libpango-1.0-0 libpangocairo-1.0-0 libpangoft2-1.0-0 1021s libpangoxft-1.0-0 libpciaccess0 libpcre2-16-0 libpixman-1-0 libqt5core5t64 1021s libqt5dbus5t64 libqt5designer5 libqt5gui5t64 libqt5help5 libqt5network5t64 1021s libqt5printsupport5t64 libqt5sql5t64 libqt5test5t64 libqt5widgets5t64 1021s libqt5xml5t64 libquadmath0 librsvg2-2 librsvg2-common libsecret-1-0 1021s libsecret-common libsm6 libsource-highlight-common libsource-highlight4t64 1021s libstartup-notification0 libthai-data libthai0 libtsan2 libubsan1 1021s libvte-2.91-0 libvte-2.91-common libvulkan1 libwacom-common libwacom9 1021s libwayland-client0 libwayland-cursor0 libwayland-egl1 libwayland-server0 1021s libwhoopsie-preferences0 libwhoopsie0 libwnck-3-0 libwnck-3-common 1021s libx11-xcb1 libxaw7 libxcb-dri2-0 libxcb-dri3-0 libxcb-glx0 libxcb-icccm4 1021s libxcb-image0 libxcb-keysyms1 libxcb-present0 libxcb-randr0 1021s libxcb-render-util0 libxcb-render0 libxcb-shape0 libxcb-shm0 libxcb-sync1 1021s libxcb-util1 libxcb-xfixes0 libxcb-xinerama0 libxcb-xinput0 libxcb-xkb1 1021s libxcomposite1 libxcursor1 libxdamage1 libxfixes3 libxfont2 libxft2 libxi6 1021s libxinerama1 libxkbcommon-x11-0 libxkbfile1 libxmu6 libxrandr2 libxrender1 1021s libxres1 libxshmfence1 libxt6t64 libxxf86vm1 mesa-libgallium 1021s python3-iniconfig python3-packaging python3-pluggy python3-psutil 1021s python3-pyqt5 python3-pyqt5.sip python3-pytest session-migration 1021s ubuntu-dbgsym-keyring ubuntu-mono valgrind whoopsie-preferences x11-common 1021s x11-xkb-utils xserver-common xvfb 1021s 0 upgraded, 197 newly installed, 0 to remove and 0 not upgraded. 1021s Need to get 161 MB of archives. 1021s After this operation, 611 MB of additional disk space will be used. 1021s Get:1 http://ftpmaster.internal/ubuntu noble-updates/main amd64 libdebuginfod-common all 0.190-1.1ubuntu0.1 [14.6 kB] 1021s Get:2 http://ftpmaster.internal/ubuntu noble-updates/main amd64 libgdk-pixbuf2.0-common all 2.42.10+dfsg-3ubuntu3.1 [8024 B] 1021s Get:3 http://ftpmaster.internal/ubuntu noble-updates/main amd64 libgdk-pixbuf-2.0-0 amd64 2.42.10+dfsg-3ubuntu3.1 [147 kB] 1021s Get:4 http://ftpmaster.internal/ubuntu noble-updates/main amd64 gtk-update-icon-cache amd64 3.24.41-4ubuntu1.3 [51.9 kB] 1021s Get:5 http://ftpmaster.internal/ubuntu noble/main amd64 hicolor-icon-theme all 0.17-2 [9976 B] 1021s Get:6 http://ftpmaster.internal/ubuntu noble/main amd64 humanity-icon-theme all 0.6.16 [1282 kB] 1022s Get:7 http://ftpmaster.internal/ubuntu noble/main amd64 ubuntu-mono all 24.04-0ubuntu1 [151 kB] 1022s Get:8 http://ftpmaster.internal/ubuntu noble/main amd64 adwaita-icon-theme all 46.0-1 [723 kB] 1022s Get:9 http://ftpmaster.internal/ubuntu noble/main amd64 at-spi2-common all 2.52.0-1build1 [8674 B] 1022s Get:10 http://ftpmaster.internal/ubuntu noble/main amd64 libatk1.0-0t64 amd64 2.52.0-1build1 [55.3 kB] 1022s Get:11 http://ftpmaster.internal/ubuntu noble/main amd64 gir1.2-atk-1.0 amd64 2.52.0-1build1 [23.1 kB] 1022s Get:12 http://ftpmaster.internal/ubuntu noble/main amd64 libpixman-1-0 amd64 0.42.2-1build1 [279 kB] 1022s Get:13 http://ftpmaster.internal/ubuntu noble/main amd64 libxcb-render0 amd64 1.15-1ubuntu2 [16.2 kB] 1022s Get:14 http://ftpmaster.internal/ubuntu noble/main amd64 libxcb-shm0 amd64 1.15-1ubuntu2 [5756 B] 1022s Get:15 http://ftpmaster.internal/ubuntu noble/main amd64 libxrender1 amd64 1:0.9.10-1.1build1 [19.0 kB] 1022s Get:16 http://ftpmaster.internal/ubuntu noble/main amd64 libcairo2 amd64 1.18.0-3build1 [566 kB] 1022s Get:17 http://ftpmaster.internal/ubuntu noble/main amd64 libcairo-gobject2 amd64 1.18.0-3build1 [127 kB] 1022s Get:18 http://ftpmaster.internal/ubuntu noble/main amd64 gir1.2-freedesktop amd64 1.80.1-1 [49.7 kB] 1022s Get:19 http://ftpmaster.internal/ubuntu noble-updates/main amd64 gir1.2-gdkpixbuf-2.0 amd64 2.42.10+dfsg-3ubuntu3.1 [9486 B] 1022s Get:20 http://ftpmaster.internal/ubuntu noble/main amd64 libgraphite2-3 amd64 1.3.14-2build1 [73.0 kB] 1022s Get:21 http://ftpmaster.internal/ubuntu noble/main amd64 libharfbuzz0b amd64 8.3.0-2build2 [469 kB] 1022s Get:22 http://ftpmaster.internal/ubuntu noble/main amd64 libharfbuzz-gobject0 amd64 8.3.0-2build2 [34.3 kB] 1022s Get:23 http://ftpmaster.internal/ubuntu noble/main amd64 gir1.2-harfbuzz-0.0 amd64 8.3.0-2build2 [44.5 kB] 1022s Get:24 http://ftpmaster.internal/ubuntu noble/main amd64 fontconfig amd64 2.15.0-1.1ubuntu2 [180 kB] 1022s Get:25 http://ftpmaster.internal/ubuntu noble/main amd64 libthai-data all 0.1.29-2build1 [158 kB] 1022s Get:26 http://ftpmaster.internal/ubuntu noble/main amd64 libdatrie1 amd64 0.2.13-3build1 [19.0 kB] 1022s Get:27 http://ftpmaster.internal/ubuntu noble/main amd64 libthai0 amd64 0.1.29-2build1 [18.9 kB] 1022s Get:28 http://ftpmaster.internal/ubuntu noble/main amd64 libpango-1.0-0 amd64 1.52.1+ds-1build1 [231 kB] 1022s Get:29 http://ftpmaster.internal/ubuntu noble/main amd64 libpangoft2-1.0-0 amd64 1.52.1+ds-1build1 [42.5 kB] 1022s Get:30 http://ftpmaster.internal/ubuntu noble/main amd64 libpangocairo-1.0-0 amd64 1.52.1+ds-1build1 [28.8 kB] 1022s Get:31 http://ftpmaster.internal/ubuntu noble/main amd64 libxft2 amd64 2.3.6-1build1 [45.3 kB] 1022s Get:32 http://ftpmaster.internal/ubuntu noble/main amd64 libpangoxft-1.0-0 amd64 1.52.1+ds-1build1 [20.3 kB] 1022s Get:33 http://ftpmaster.internal/ubuntu noble/main amd64 gir1.2-pango-1.0 amd64 1.52.1+ds-1build1 [34.8 kB] 1022s Get:34 http://ftpmaster.internal/ubuntu noble/main amd64 libxi6 amd64 2:1.8.1-1build1 [32.4 kB] 1022s Get:35 http://ftpmaster.internal/ubuntu noble/main amd64 libatspi2.0-0t64 amd64 2.52.0-1build1 [80.5 kB] 1022s Get:36 http://ftpmaster.internal/ubuntu noble/main amd64 libatk-bridge2.0-0t64 amd64 2.52.0-1build1 [66.0 kB] 1022s Get:37 http://ftpmaster.internal/ubuntu noble/main amd64 liblcms2-2 amd64 2.14-2build1 [161 kB] 1022s Get:38 http://ftpmaster.internal/ubuntu noble/main amd64 libcolord2 amd64 1.4.7-1build2 [149 kB] 1022s Get:39 http://ftpmaster.internal/ubuntu noble/main amd64 libavahi-common-data amd64 0.8-13ubuntu6 [29.7 kB] 1022s Get:40 http://ftpmaster.internal/ubuntu noble/main amd64 libavahi-common3 amd64 0.8-13ubuntu6 [23.3 kB] 1022s Get:41 http://ftpmaster.internal/ubuntu noble/main amd64 libavahi-client3 amd64 0.8-13ubuntu6 [26.8 kB] 1022s Get:42 http://ftpmaster.internal/ubuntu noble-updates/main amd64 libcups2t64 amd64 2.4.7-1.2ubuntu7.3 [272 kB] 1022s Get:43 http://ftpmaster.internal/ubuntu noble/main amd64 libepoxy0 amd64 1.5.10-1build1 [220 kB] 1022s Get:44 http://ftpmaster.internal/ubuntu noble/main amd64 libwayland-client0 amd64 1.22.0-2.1build1 [26.4 kB] 1022s Get:45 http://ftpmaster.internal/ubuntu noble/main amd64 libwayland-cursor0 amd64 1.22.0-2.1build1 [10.4 kB] 1022s Get:46 http://ftpmaster.internal/ubuntu noble/main amd64 libwayland-egl1 amd64 1.22.0-2.1build1 [5628 B] 1022s Get:47 http://ftpmaster.internal/ubuntu noble/main amd64 libxcomposite1 amd64 1:0.4.5-1build3 [6320 B] 1022s Get:48 http://ftpmaster.internal/ubuntu noble/main amd64 libxfixes3 amd64 1:6.0.0-2build1 [10.8 kB] 1022s Get:49 http://ftpmaster.internal/ubuntu noble/main amd64 libxcursor1 amd64 1:1.2.1-1build1 [20.7 kB] 1022s Get:50 http://ftpmaster.internal/ubuntu noble/main amd64 libxdamage1 amd64 1:1.1.6-1build1 [6150 B] 1022s Get:51 http://ftpmaster.internal/ubuntu noble/main amd64 libxinerama1 amd64 2:1.1.4-3build1 [6396 B] 1022s Get:52 http://ftpmaster.internal/ubuntu noble/main amd64 libxrandr2 amd64 2:1.5.2-2build1 [19.7 kB] 1022s Get:53 http://ftpmaster.internal/ubuntu noble-updates/main amd64 dbus-x11 amd64 1.14.10-4ubuntu4.1 [23.3 kB] 1022s Get:54 http://ftpmaster.internal/ubuntu noble/main amd64 libdconf1 amd64 0.40.0-4build2 [39.4 kB] 1022s Get:55 http://ftpmaster.internal/ubuntu noble/main amd64 dconf-service amd64 0.40.0-4build2 [27.5 kB] 1022s Get:56 http://ftpmaster.internal/ubuntu noble/main amd64 dconf-gsettings-backend amd64 0.40.0-4build2 [22.1 kB] 1022s Get:57 http://ftpmaster.internal/ubuntu noble-updates/main amd64 libgtk-3-common all 3.24.41-4ubuntu1.3 [1426 kB] 1022s Get:58 http://ftpmaster.internal/ubuntu noble-updates/main amd64 libgtk-3-0t64 amd64 3.24.41-4ubuntu1.3 [2913 kB] 1023s Get:59 http://ftpmaster.internal/ubuntu noble-updates/main amd64 gir1.2-gtk-3.0 amd64 3.24.41-4ubuntu1.3 [245 kB] 1023s Get:60 http://ftpmaster.internal/ubuntu noble/main amd64 libx11-xcb1 amd64 2:1.8.7-1build1 [7800 B] 1023s Get:61 http://ftpmaster.internal/ubuntu noble/main amd64 libxcb-util1 amd64 0.4.0-1build3 [10.7 kB] 1023s Get:62 http://ftpmaster.internal/ubuntu noble/main amd64 libstartup-notification0 amd64 0.12-6build3 [18.4 kB] 1023s Get:63 http://ftpmaster.internal/ubuntu noble/main amd64 libxres1 amd64 2:1.2.1-1build1 [6778 B] 1023s Get:64 http://ftpmaster.internal/ubuntu noble/main amd64 libwnck-3-common all 43.0-3build4 [19.5 kB] 1023s Get:65 http://ftpmaster.internal/ubuntu noble/main amd64 libwnck-3-0 amd64 43.0-3build4 [113 kB] 1023s Get:66 http://ftpmaster.internal/ubuntu noble/main amd64 gir1.2-wnck-3.0 amd64 43.0-3build4 [10.2 kB] 1023s Get:67 http://ftpmaster.internal/ubuntu noble/main amd64 gnome-terminal-data all 3.52.0-1ubuntu2 [38.5 kB] 1023s Get:68 http://ftpmaster.internal/ubuntu noble/main amd64 session-migration amd64 0.3.9build1 [9034 B] 1023s Get:69 http://ftpmaster.internal/ubuntu noble-updates/main amd64 gsettings-desktop-schemas all 46.1-0ubuntu1 [35.6 kB] 1023s Get:70 http://ftpmaster.internal/ubuntu noble/main amd64 libhandy-1-0 amd64 1.8.3-1build2 [232 kB] 1023s Get:71 http://ftpmaster.internal/ubuntu noble-updates/main amd64 libvte-2.91-common amd64 0.76.0-1ubuntu0.1 [13.5 kB] 1023s Get:72 http://ftpmaster.internal/ubuntu noble-updates/main amd64 libvte-2.91-0 amd64 0.76.0-1ubuntu0.1 [230 kB] 1023s Get:73 http://ftpmaster.internal/ubuntu noble/main amd64 gnome-terminal amd64 3.52.0-1ubuntu2 [217 kB] 1023s Get:74 http://ftpmaster.internal/ubuntu noble/main amd64 libwhoopsie-preferences0 amd64 23build3 [14.4 kB] 1023s Get:75 http://ftpmaster.internal/ubuntu noble/main amd64 libwhoopsie0 amd64 0.2.77build3 [10.9 kB] 1023s Get:76 http://ftpmaster.internal/ubuntu noble/main amd64 whoopsie-preferences amd64 23build3 [8850 B] 1023s Get:77 http://ftpmaster.internal/ubuntu noble-updates/main amd64 apport-gtk all 2.28.1-0ubuntu3.7 [9750 B] 1023s Get:78 http://ftpmaster.internal/ubuntu noble/universe amd64 python3-pyqt5.sip amd64 12.13.0-1build3 [61.3 kB] 1023s Get:79 http://ftpmaster.internal/ubuntu noble/universe amd64 libdouble-conversion3 amd64 3.3.0-1build1 [40.3 kB] 1023s Get:80 http://ftpmaster.internal/ubuntu noble-updates/main amd64 libpcre2-16-0 amd64 10.42-4ubuntu2.1 [210 kB] 1023s Get:81 http://ftpmaster.internal/ubuntu noble/universe amd64 libqt5core5t64 amd64 5.15.13+dfsg-1ubuntu1 [2011 kB] 1023s Get:82 http://ftpmaster.internal/ubuntu noble/universe amd64 libqt5dbus5t64 amd64 5.15.13+dfsg-1ubuntu1 [220 kB] 1023s Get:83 http://ftpmaster.internal/ubuntu noble/main amd64 libglvnd0 amd64 1.7.0-1build1 [69.6 kB] 1023s Get:84 http://ftpmaster.internal/ubuntu noble/main amd64 libwayland-server0 amd64 1.22.0-2.1build1 [33.9 kB] 1023s Get:85 http://ftpmaster.internal/ubuntu noble/main amd64 libxcb-randr0 amd64 1.15-1ubuntu2 [17.9 kB] 1023s Get:86 http://ftpmaster.internal/ubuntu noble-updates/main amd64 libdrm-amdgpu1 amd64 2.4.122-1~ubuntu0.24.04.1 [20.7 kB] 1023s Get:87 http://ftpmaster.internal/ubuntu noble-updates/main amd64 libpciaccess0 amd64 0.17-3ubuntu0.24.04.2 [18.9 kB] 1023s Get:88 http://ftpmaster.internal/ubuntu noble-updates/main amd64 libdrm-intel1 amd64 2.4.122-1~ubuntu0.24.04.1 [63.8 kB] 1023s Get:89 http://ftpmaster.internal/ubuntu noble-updates/main amd64 libdrm-radeon1 amd64 2.4.122-1~ubuntu0.24.04.1 [20.8 kB] 1023s Get:90 http://ftpmaster.internal/ubuntu noble-updates/main amd64 libglapi-mesa amd64 24.2.8-1ubuntu1~24.04.1 [44.3 kB] 1023s Get:91 http://ftpmaster.internal/ubuntu noble-updates/main amd64 libllvm19 amd64 1:19.1.1-1ubuntu1~24.04.2 [28.7 MB] 1024s Get:92 http://ftpmaster.internal/ubuntu noble/main amd64 libxcb-dri2-0 amd64 1.15-1ubuntu2 [7222 B] 1024s Get:93 http://ftpmaster.internal/ubuntu noble/main amd64 libxcb-dri3-0 amd64 1.15-1ubuntu2 [7142 B] 1024s Get:94 http://ftpmaster.internal/ubuntu noble/main amd64 libxcb-present0 amd64 1.15-1ubuntu2 [5676 B] 1024s Get:95 http://ftpmaster.internal/ubuntu noble/main amd64 libxcb-sync1 amd64 1.15-1ubuntu2 [9312 B] 1024s Get:96 http://ftpmaster.internal/ubuntu noble/main amd64 libxcb-xfixes0 amd64 1.15-1ubuntu2 [10.2 kB] 1024s Get:97 http://ftpmaster.internal/ubuntu noble/main amd64 libxshmfence1 amd64 1.3-1build5 [4764 B] 1024s Get:98 http://ftpmaster.internal/ubuntu noble-updates/main amd64 mesa-libgallium amd64 24.2.8-1ubuntu1~24.04.1 [9847 kB] 1024s Get:99 http://ftpmaster.internal/ubuntu noble-updates/main amd64 libgbm1 amd64 24.2.8-1ubuntu1~24.04.1 [31.6 kB] 1024s Get:100 http://ftpmaster.internal/ubuntu noble-updates/main amd64 libegl-mesa0 amd64 24.2.8-1ubuntu1~24.04.1 [129 kB] 1024s Get:101 http://ftpmaster.internal/ubuntu noble/main amd64 libegl1 amd64 1.7.0-1build1 [28.7 kB] 1024s Get:102 http://ftpmaster.internal/ubuntu noble/main amd64 libxcb-glx0 amd64 1.15-1ubuntu2 [24.8 kB] 1024s Get:103 http://ftpmaster.internal/ubuntu noble/main amd64 libxxf86vm1 amd64 1:1.1.4-1build4 [9282 B] 1024s Get:104 http://ftpmaster.internal/ubuntu noble/main amd64 libvulkan1 amd64 1.3.275.0-1build1 [142 kB] 1024s Get:105 http://ftpmaster.internal/ubuntu noble-updates/main amd64 libgl1-mesa-dri amd64 24.2.8-1ubuntu1~24.04.1 [34.6 kB] 1024s Get:106 http://ftpmaster.internal/ubuntu noble-updates/main amd64 libglx-mesa0 amd64 24.2.8-1ubuntu1~24.04.1 [154 kB] 1024s Get:107 http://ftpmaster.internal/ubuntu noble/main amd64 libglx0 amd64 1.7.0-1build1 [38.6 kB] 1024s Get:108 http://ftpmaster.internal/ubuntu noble/main amd64 libgl1 amd64 1.7.0-1build1 [102 kB] 1024s Get:109 http://ftpmaster.internal/ubuntu noble/main amd64 x11-common all 1:7.7+23ubuntu3 [21.7 kB] 1024s Get:110 http://ftpmaster.internal/ubuntu noble/main amd64 libice6 amd64 2:1.0.10-1build3 [41.4 kB] 1024s Get:111 http://ftpmaster.internal/ubuntu noble/main amd64 libmtdev1t64 amd64 1.1.6-1.1build1 [14.4 kB] 1024s Get:112 http://ftpmaster.internal/ubuntu noble/main amd64 libwacom-common all 2.10.0-2 [63.4 kB] 1024s Get:113 http://ftpmaster.internal/ubuntu noble/main amd64 libwacom9 amd64 2.10.0-2 [23.9 kB] 1024s Get:114 http://ftpmaster.internal/ubuntu noble-updates/main amd64 libinput-bin amd64 1.25.0-1ubuntu3.1 [22.6 kB] 1024s Get:115 http://ftpmaster.internal/ubuntu noble-updates/main amd64 libinput10 amd64 1.25.0-1ubuntu3.1 [133 kB] 1024s Get:116 http://ftpmaster.internal/ubuntu noble/universe amd64 libmd4c0 amd64 0.4.8-1build1 [42.3 kB] 1024s Get:117 http://ftpmaster.internal/ubuntu noble/universe amd64 libqt5network5t64 amd64 5.15.13+dfsg-1ubuntu1 [723 kB] 1024s Get:118 http://ftpmaster.internal/ubuntu noble/main amd64 libsm6 amd64 2:1.2.3-1build3 [15.7 kB] 1024s Get:119 http://ftpmaster.internal/ubuntu noble/main amd64 libxcb-icccm4 amd64 0.4.1-1.1build3 [10.8 kB] 1024s Get:120 http://ftpmaster.internal/ubuntu noble/main amd64 libxcb-image0 amd64 0.4.0-2build1 [10.8 kB] 1024s Get:121 http://ftpmaster.internal/ubuntu noble/main amd64 libxcb-keysyms1 amd64 0.4.0-1build4 [7956 B] 1024s Get:122 http://ftpmaster.internal/ubuntu noble/main amd64 libxcb-render-util0 amd64 0.3.9-1build4 [9608 B] 1024s Get:123 http://ftpmaster.internal/ubuntu noble/main amd64 libxcb-shape0 amd64 1.15-1ubuntu2 [6100 B] 1024s Get:124 http://ftpmaster.internal/ubuntu noble/main amd64 libxcb-xinerama0 amd64 1.15-1ubuntu2 [5410 B] 1024s Get:125 http://ftpmaster.internal/ubuntu noble/main amd64 libxcb-xinput0 amd64 1.15-1ubuntu2 [33.2 kB] 1024s Get:126 http://ftpmaster.internal/ubuntu noble/main amd64 libxcb-xkb1 amd64 1.15-1ubuntu2 [32.3 kB] 1024s Get:127 http://ftpmaster.internal/ubuntu noble/main amd64 libxkbcommon-x11-0 amd64 1.6.0-1build1 [14.5 kB] 1024s Get:128 http://ftpmaster.internal/ubuntu noble/universe amd64 libqt5gui5t64 amd64 5.15.13+dfsg-1ubuntu1 [3748 kB] 1024s Get:129 http://ftpmaster.internal/ubuntu noble/universe amd64 libqt5widgets5t64 amd64 5.15.13+dfsg-1ubuntu1 [2561 kB] 1024s Get:130 http://ftpmaster.internal/ubuntu noble/universe amd64 libqt5xml5t64 amd64 5.15.13+dfsg-1ubuntu1 [124 kB] 1025s Get:131 http://ftpmaster.internal/ubuntu noble/universe amd64 libqt5designer5 amd64 5.15.13-1 [2824 kB] 1025s Get:132 http://ftpmaster.internal/ubuntu noble/universe amd64 libqt5sql5t64 amd64 5.15.13+dfsg-1ubuntu1 [122 kB] 1025s Get:133 http://ftpmaster.internal/ubuntu noble/universe amd64 libqt5help5 amd64 5.15.13-1 [161 kB] 1025s Get:134 http://ftpmaster.internal/ubuntu noble/universe amd64 libqt5printsupport5t64 amd64 5.15.13+dfsg-1ubuntu1 [208 kB] 1025s Get:135 http://ftpmaster.internal/ubuntu noble/universe amd64 libqt5test5t64 amd64 5.15.13+dfsg-1ubuntu1 [148 kB] 1025s Get:136 http://ftpmaster.internal/ubuntu noble/universe amd64 python3-pyqt5 amd64 5.15.10+dfsg-1build6 [2753 kB] 1025s Get:137 http://ftpmaster.internal/ubuntu noble-updates/universe amd64 apport-kde all 2.28.1-0ubuntu3.7 [18.8 kB] 1025s Get:138 http://ftpmaster.internal/ubuntu noble/main amd64 libbabeltrace1 amd64 1.5.11-3build3 [164 kB] 1025s Get:139 http://ftpmaster.internal/ubuntu noble-updates/main amd64 libdebuginfod1t64 amd64 0.190-1.1ubuntu0.1 [17.1 kB] 1025s Get:140 http://ftpmaster.internal/ubuntu noble/main amd64 libipt2 amd64 2.0.6-1build1 [45.7 kB] 1025s Get:141 http://ftpmaster.internal/ubuntu noble/main amd64 libsource-highlight-common all 3.1.9-4.3build1 [64.2 kB] 1025s Get:142 http://ftpmaster.internal/ubuntu noble/main amd64 libsource-highlight4t64 amd64 3.1.9-4.3build1 [258 kB] 1025s Get:143 http://ftpmaster.internal/ubuntu noble/main amd64 gdb amd64 15.0.50.20240403-0ubuntu1 [4010 kB] 1025s Get:144 http://ftpmaster.internal/ubuntu noble-updates/main amd64 libc6-dbg amd64 2.39-0ubuntu8.4 [7460 kB] 1025s Get:145 http://ftpmaster.internal/ubuntu noble-updates/main amd64 apport-retrace all 2.28.1-0ubuntu3.7 [14.4 kB] 1025s Get:146 http://ftpmaster.internal/ubuntu noble/main amd64 valgrind amd64 1:3.22.0-0ubuntu3 [14.9 MB] 1025s Get:147 http://ftpmaster.internal/ubuntu noble-updates/universe amd64 apport-valgrind all 2.28.1-0ubuntu3.7 [5230 B] 1025s Get:148 http://ftpmaster.internal/ubuntu noble/universe amd64 chaos-marmosets amd64 0.1.2-2 [8808 B] 1025s Get:149 http://ftpmaster.internal/ubuntu noble-updates/main amd64 gcc-13-base amd64 13.3.0-6ubuntu2~24.04 [51.5 kB] 1025s Get:150 http://ftpmaster.internal/ubuntu noble-updates/main amd64 libisl23 amd64 0.26-3build1.1 [680 kB] 1025s Get:151 http://ftpmaster.internal/ubuntu noble-updates/main amd64 libmpc3 amd64 1.3.1-1build1.1 [54.6 kB] 1025s Get:152 http://ftpmaster.internal/ubuntu noble-updates/main amd64 cpp-13-x86-64-linux-gnu amd64 13.3.0-6ubuntu2~24.04 [10.7 MB] 1025s Get:153 http://ftpmaster.internal/ubuntu noble-updates/main amd64 cpp-13 amd64 13.3.0-6ubuntu2~24.04 [1038 B] 1025s Get:154 http://ftpmaster.internal/ubuntu noble/main amd64 cpp-x86-64-linux-gnu amd64 4:13.2.0-7ubuntu1 [5326 B] 1025s Get:155 http://ftpmaster.internal/ubuntu noble/main amd64 cpp amd64 4:13.2.0-7ubuntu1 [22.4 kB] 1025s Get:156 http://ftpmaster.internal/ubuntu noble/main amd64 desktop-file-utils amd64 0.27-2build1 [53.8 kB] 1025s Get:157 http://ftpmaster.internal/ubuntu noble-updates/main amd64 libcc1-0 amd64 14.2.0-4ubuntu2~24.04 [48.0 kB] 1025s Get:158 http://ftpmaster.internal/ubuntu noble-updates/main amd64 libgomp1 amd64 14.2.0-4ubuntu2~24.04 [148 kB] 1025s Get:159 http://ftpmaster.internal/ubuntu noble-updates/main amd64 libitm1 amd64 14.2.0-4ubuntu2~24.04 [29.7 kB] 1025s Get:160 http://ftpmaster.internal/ubuntu noble-updates/main amd64 libatomic1 amd64 14.2.0-4ubuntu2~24.04 [10.5 kB] 1025s Get:161 http://ftpmaster.internal/ubuntu noble-updates/main amd64 libasan8 amd64 14.2.0-4ubuntu2~24.04 [3031 kB] 1025s Get:162 http://ftpmaster.internal/ubuntu noble-updates/main amd64 liblsan0 amd64 14.2.0-4ubuntu2~24.04 [1322 kB] 1026s Get:163 http://ftpmaster.internal/ubuntu noble-updates/main amd64 libtsan2 amd64 14.2.0-4ubuntu2~24.04 [2772 kB] 1026s Get:164 http://ftpmaster.internal/ubuntu noble-updates/main amd64 libubsan1 amd64 14.2.0-4ubuntu2~24.04 [1184 kB] 1026s Get:165 http://ftpmaster.internal/ubuntu noble-updates/main amd64 libhwasan0 amd64 14.2.0-4ubuntu2~24.04 [1641 kB] 1026s Get:166 http://ftpmaster.internal/ubuntu noble-updates/main amd64 libquadmath0 amd64 14.2.0-4ubuntu2~24.04 [153 kB] 1026s Get:167 http://ftpmaster.internal/ubuntu noble-updates/main amd64 libgcc-13-dev amd64 13.3.0-6ubuntu2~24.04 [2681 kB] 1026s Get:168 http://ftpmaster.internal/ubuntu noble-updates/main amd64 gcc-13-x86-64-linux-gnu amd64 13.3.0-6ubuntu2~24.04 [21.1 MB] 1026s Get:169 http://ftpmaster.internal/ubuntu noble-updates/main amd64 gcc-13 amd64 13.3.0-6ubuntu2~24.04 [494 kB] 1026s Get:170 http://ftpmaster.internal/ubuntu noble/main amd64 gcc-x86-64-linux-gnu amd64 4:13.2.0-7ubuntu1 [1212 B] 1026s Get:171 http://ftpmaster.internal/ubuntu noble/main amd64 gcc amd64 4:13.2.0-7ubuntu1 [5018 B] 1026s Get:172 http://ftpmaster.internal/ubuntu noble/universe amd64 gdb-multiarch amd64 15.0.50.20240403-0ubuntu1 [5152 kB] 1026s Get:173 http://ftpmaster.internal/ubuntu noble/main amd64 librsvg2-2 amd64 2.58.0+dfsg-1build1 [2135 kB] 1026s Get:174 http://ftpmaster.internal/ubuntu noble/main amd64 librsvg2-common amd64 2.58.0+dfsg-1build1 [11.8 kB] 1026s Get:175 http://ftpmaster.internal/ubuntu noble/universe amd64 gnome-icon-theme all 3.12.0-5 [9619 kB] 1027s Get:176 http://ftpmaster.internal/ubuntu noble/main amd64 gvfs-common all 1.54.0-1ubuntu2 [13.5 kB] 1027s Get:177 http://ftpmaster.internal/ubuntu noble/main amd64 libgck-2-2 amd64 4.2.0-5 [77.0 kB] 1027s Get:178 http://ftpmaster.internal/ubuntu noble/main amd64 libgcr-4-4 amd64 4.2.0-5 [192 kB] 1027s Get:179 http://ftpmaster.internal/ubuntu noble/main amd64 libsecret-common all 0.21.4-1build3 [4962 B] 1027s Get:180 http://ftpmaster.internal/ubuntu noble/main amd64 libsecret-1-0 amd64 0.21.4-1build3 [116 kB] 1027s Get:181 http://ftpmaster.internal/ubuntu noble/main amd64 gvfs-libs amd64 1.54.0-1ubuntu2 [107 kB] 1027s Get:182 http://ftpmaster.internal/ubuntu noble/main amd64 gvfs-daemons amd64 1.54.0-1ubuntu2 [116 kB] 1027s Get:183 http://ftpmaster.internal/ubuntu noble/main amd64 libfontenc1 amd64 1:1.1.8-1build1 [14.0 kB] 1027s Get:184 http://ftpmaster.internal/ubuntu noble/main amd64 libxt6t64 amd64 1:1.2.1-1.2build1 [171 kB] 1027s Get:185 http://ftpmaster.internal/ubuntu noble/main amd64 libxmu6 amd64 2:1.1.3-3build2 [47.6 kB] 1027s Get:186 http://ftpmaster.internal/ubuntu noble/main amd64 libxaw7 amd64 2:1.0.14-1build2 [187 kB] 1027s Get:187 http://ftpmaster.internal/ubuntu noble/main amd64 libxfont2 amd64 1:2.0.6-1build1 [93.0 kB] 1027s Get:188 http://ftpmaster.internal/ubuntu noble/main amd64 libxkbfile1 amd64 1:1.1.0-1build4 [70.0 kB] 1027s Get:189 http://ftpmaster.internal/ubuntu noble/universe amd64 python3-iniconfig all 1.1.1-2 [6024 B] 1027s Get:190 http://ftpmaster.internal/ubuntu noble/main amd64 python3-packaging all 24.0-1 [41.1 kB] 1027s Get:191 http://ftpmaster.internal/ubuntu noble/universe amd64 python3-pluggy all 1.4.0-1 [20.4 kB] 1027s Get:192 http://ftpmaster.internal/ubuntu noble/main amd64 python3-psutil amd64 5.9.8-2build2 [195 kB] 1027s Get:193 http://ftpmaster.internal/ubuntu noble/universe amd64 python3-pytest all 7.4.4-1 [305 kB] 1027s Get:194 http://ftpmaster.internal/ubuntu noble/main amd64 ubuntu-dbgsym-keyring all 2023.11.28.1 [4528 B] 1027s Get:195 http://ftpmaster.internal/ubuntu noble/main amd64 x11-xkb-utils amd64 7.7+8build2 [170 kB] 1027s Get:196 http://ftpmaster.internal/ubuntu noble-updates/main amd64 xserver-common all 2:21.1.12-1ubuntu1.4 [34.4 kB] 1027s Get:197 http://ftpmaster.internal/ubuntu noble-updates/universe amd64 xvfb amd64 2:21.1.12-1ubuntu1.4 [877 kB] 1027s Preconfiguring packages ... 1027s Fetched 161 MB in 5s (29.5 MB/s) 1027s Selecting previously unselected package libdebuginfod-common. 1028s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 106307 files and directories currently installed.) 1028s Preparing to unpack .../000-libdebuginfod-common_0.190-1.1ubuntu0.1_all.deb ... 1028s Unpacking libdebuginfod-common (0.190-1.1ubuntu0.1) ... 1028s Selecting previously unselected package libgdk-pixbuf2.0-common. 1028s Preparing to unpack .../001-libgdk-pixbuf2.0-common_2.42.10+dfsg-3ubuntu3.1_all.deb ... 1028s Unpacking libgdk-pixbuf2.0-common (2.42.10+dfsg-3ubuntu3.1) ... 1028s Selecting previously unselected package libgdk-pixbuf-2.0-0:amd64. 1028s Preparing to unpack .../002-libgdk-pixbuf-2.0-0_2.42.10+dfsg-3ubuntu3.1_amd64.deb ... 1028s Unpacking libgdk-pixbuf-2.0-0:amd64 (2.42.10+dfsg-3ubuntu3.1) ... 1028s Selecting previously unselected package gtk-update-icon-cache. 1028s Preparing to unpack .../003-gtk-update-icon-cache_3.24.41-4ubuntu1.3_amd64.deb ... 1028s Unpacking gtk-update-icon-cache (3.24.41-4ubuntu1.3) ... 1028s Selecting previously unselected package hicolor-icon-theme. 1028s Preparing to unpack .../004-hicolor-icon-theme_0.17-2_all.deb ... 1028s Unpacking hicolor-icon-theme (0.17-2) ... 1028s Selecting previously unselected package humanity-icon-theme. 1028s Preparing to unpack .../005-humanity-icon-theme_0.6.16_all.deb ... 1028s Unpacking humanity-icon-theme (0.6.16) ... 1029s Selecting previously unselected package ubuntu-mono. 1029s Preparing to unpack .../006-ubuntu-mono_24.04-0ubuntu1_all.deb ... 1029s Unpacking ubuntu-mono (24.04-0ubuntu1) ... 1030s Selecting previously unselected package adwaita-icon-theme. 1030s Preparing to unpack .../007-adwaita-icon-theme_46.0-1_all.deb ... 1030s Unpacking adwaita-icon-theme (46.0-1) ... 1030s Selecting previously unselected package at-spi2-common. 1030s Preparing to unpack .../008-at-spi2-common_2.52.0-1build1_all.deb ... 1030s Unpacking at-spi2-common (2.52.0-1build1) ... 1030s Selecting previously unselected package libatk1.0-0t64:amd64. 1030s Preparing to unpack .../009-libatk1.0-0t64_2.52.0-1build1_amd64.deb ... 1030s Unpacking libatk1.0-0t64:amd64 (2.52.0-1build1) ... 1030s Selecting previously unselected package gir1.2-atk-1.0:amd64. 1030s Preparing to unpack .../010-gir1.2-atk-1.0_2.52.0-1build1_amd64.deb ... 1030s Unpacking gir1.2-atk-1.0:amd64 (2.52.0-1build1) ... 1030s Selecting previously unselected package libpixman-1-0:amd64. 1030s Preparing to unpack .../011-libpixman-1-0_0.42.2-1build1_amd64.deb ... 1030s Unpacking libpixman-1-0:amd64 (0.42.2-1build1) ... 1030s Selecting previously unselected package libxcb-render0:amd64. 1030s Preparing to unpack .../012-libxcb-render0_1.15-1ubuntu2_amd64.deb ... 1030s Unpacking libxcb-render0:amd64 (1.15-1ubuntu2) ... 1030s Selecting previously unselected package libxcb-shm0:amd64. 1030s Preparing to unpack .../013-libxcb-shm0_1.15-1ubuntu2_amd64.deb ... 1030s Unpacking libxcb-shm0:amd64 (1.15-1ubuntu2) ... 1030s Selecting previously unselected package libxrender1:amd64. 1030s Preparing to unpack .../014-libxrender1_1%3a0.9.10-1.1build1_amd64.deb ... 1030s Unpacking libxrender1:amd64 (1:0.9.10-1.1build1) ... 1030s Selecting previously unselected package libcairo2:amd64. 1030s Preparing to unpack .../015-libcairo2_1.18.0-3build1_amd64.deb ... 1030s Unpacking libcairo2:amd64 (1.18.0-3build1) ... 1030s Selecting previously unselected package libcairo-gobject2:amd64. 1030s Preparing to unpack .../016-libcairo-gobject2_1.18.0-3build1_amd64.deb ... 1030s Unpacking libcairo-gobject2:amd64 (1.18.0-3build1) ... 1030s Selecting previously unselected package gir1.2-freedesktop:amd64. 1030s Preparing to unpack .../017-gir1.2-freedesktop_1.80.1-1_amd64.deb ... 1030s Unpacking gir1.2-freedesktop:amd64 (1.80.1-1) ... 1030s Selecting previously unselected package gir1.2-gdkpixbuf-2.0:amd64. 1030s Preparing to unpack .../018-gir1.2-gdkpixbuf-2.0_2.42.10+dfsg-3ubuntu3.1_amd64.deb ... 1030s Unpacking gir1.2-gdkpixbuf-2.0:amd64 (2.42.10+dfsg-3ubuntu3.1) ... 1030s Selecting previously unselected package libgraphite2-3:amd64. 1030s Preparing to unpack .../019-libgraphite2-3_1.3.14-2build1_amd64.deb ... 1030s Unpacking libgraphite2-3:amd64 (1.3.14-2build1) ... 1030s Selecting previously unselected package libharfbuzz0b:amd64. 1030s Preparing to unpack .../020-libharfbuzz0b_8.3.0-2build2_amd64.deb ... 1030s Unpacking libharfbuzz0b:amd64 (8.3.0-2build2) ... 1030s Selecting previously unselected package libharfbuzz-gobject0:amd64. 1030s Preparing to unpack .../021-libharfbuzz-gobject0_8.3.0-2build2_amd64.deb ... 1030s Unpacking libharfbuzz-gobject0:amd64 (8.3.0-2build2) ... 1030s Selecting previously unselected package gir1.2-harfbuzz-0.0:amd64. 1030s Preparing to unpack .../022-gir1.2-harfbuzz-0.0_8.3.0-2build2_amd64.deb ... 1030s Unpacking gir1.2-harfbuzz-0.0:amd64 (8.3.0-2build2) ... 1030s Selecting previously unselected package fontconfig. 1030s Preparing to unpack .../023-fontconfig_2.15.0-1.1ubuntu2_amd64.deb ... 1030s Unpacking fontconfig (2.15.0-1.1ubuntu2) ... 1030s Selecting previously unselected package libthai-data. 1030s Preparing to unpack .../024-libthai-data_0.1.29-2build1_all.deb ... 1030s Unpacking libthai-data (0.1.29-2build1) ... 1030s Selecting previously unselected package libdatrie1:amd64. 1030s Preparing to unpack .../025-libdatrie1_0.2.13-3build1_amd64.deb ... 1030s Unpacking libdatrie1:amd64 (0.2.13-3build1) ... 1030s Selecting previously unselected package libthai0:amd64. 1030s Preparing to unpack .../026-libthai0_0.1.29-2build1_amd64.deb ... 1030s Unpacking libthai0:amd64 (0.1.29-2build1) ... 1030s Selecting previously unselected package libpango-1.0-0:amd64. 1030s Preparing to unpack .../027-libpango-1.0-0_1.52.1+ds-1build1_amd64.deb ... 1030s Unpacking libpango-1.0-0:amd64 (1.52.1+ds-1build1) ... 1030s Selecting previously unselected package libpangoft2-1.0-0:amd64. 1030s Preparing to unpack .../028-libpangoft2-1.0-0_1.52.1+ds-1build1_amd64.deb ... 1030s Unpacking libpangoft2-1.0-0:amd64 (1.52.1+ds-1build1) ... 1031s Selecting previously unselected package libpangocairo-1.0-0:amd64. 1031s Preparing to unpack .../029-libpangocairo-1.0-0_1.52.1+ds-1build1_amd64.deb ... 1031s Unpacking libpangocairo-1.0-0:amd64 (1.52.1+ds-1build1) ... 1031s Selecting previously unselected package libxft2:amd64. 1031s Preparing to unpack .../030-libxft2_2.3.6-1build1_amd64.deb ... 1031s Unpacking libxft2:amd64 (2.3.6-1build1) ... 1031s Selecting previously unselected package libpangoxft-1.0-0:amd64. 1031s Preparing to unpack .../031-libpangoxft-1.0-0_1.52.1+ds-1build1_amd64.deb ... 1031s Unpacking libpangoxft-1.0-0:amd64 (1.52.1+ds-1build1) ... 1031s Selecting previously unselected package gir1.2-pango-1.0:amd64. 1031s Preparing to unpack .../032-gir1.2-pango-1.0_1.52.1+ds-1build1_amd64.deb ... 1031s Unpacking gir1.2-pango-1.0:amd64 (1.52.1+ds-1build1) ... 1031s Selecting previously unselected package libxi6:amd64. 1031s Preparing to unpack .../033-libxi6_2%3a1.8.1-1build1_amd64.deb ... 1031s Unpacking libxi6:amd64 (2:1.8.1-1build1) ... 1031s Selecting previously unselected package libatspi2.0-0t64:amd64. 1031s Preparing to unpack .../034-libatspi2.0-0t64_2.52.0-1build1_amd64.deb ... 1031s Unpacking libatspi2.0-0t64:amd64 (2.52.0-1build1) ... 1031s Selecting previously unselected package libatk-bridge2.0-0t64:amd64. 1031s Preparing to unpack .../035-libatk-bridge2.0-0t64_2.52.0-1build1_amd64.deb ... 1031s Unpacking libatk-bridge2.0-0t64:amd64 (2.52.0-1build1) ... 1031s Selecting previously unselected package liblcms2-2:amd64. 1031s Preparing to unpack .../036-liblcms2-2_2.14-2build1_amd64.deb ... 1031s Unpacking liblcms2-2:amd64 (2.14-2build1) ... 1031s Selecting previously unselected package libcolord2:amd64. 1031s Preparing to unpack .../037-libcolord2_1.4.7-1build2_amd64.deb ... 1031s Unpacking libcolord2:amd64 (1.4.7-1build2) ... 1031s Selecting previously unselected package libavahi-common-data:amd64. 1031s Preparing to unpack .../038-libavahi-common-data_0.8-13ubuntu6_amd64.deb ... 1031s Unpacking libavahi-common-data:amd64 (0.8-13ubuntu6) ... 1031s Selecting previously unselected package libavahi-common3:amd64. 1031s Preparing to unpack .../039-libavahi-common3_0.8-13ubuntu6_amd64.deb ... 1031s Unpacking libavahi-common3:amd64 (0.8-13ubuntu6) ... 1031s Selecting previously unselected package libavahi-client3:amd64. 1031s Preparing to unpack .../040-libavahi-client3_0.8-13ubuntu6_amd64.deb ... 1031s Unpacking libavahi-client3:amd64 (0.8-13ubuntu6) ... 1031s Selecting previously unselected package libcups2t64:amd64. 1031s Preparing to unpack .../041-libcups2t64_2.4.7-1.2ubuntu7.3_amd64.deb ... 1031s Unpacking libcups2t64:amd64 (2.4.7-1.2ubuntu7.3) ... 1031s Selecting previously unselected package libepoxy0:amd64. 1031s Preparing to unpack .../042-libepoxy0_1.5.10-1build1_amd64.deb ... 1031s Unpacking libepoxy0:amd64 (1.5.10-1build1) ... 1031s Selecting previously unselected package libwayland-client0:amd64. 1031s Preparing to unpack .../043-libwayland-client0_1.22.0-2.1build1_amd64.deb ... 1031s Unpacking libwayland-client0:amd64 (1.22.0-2.1build1) ... 1031s Selecting previously unselected package libwayland-cursor0:amd64. 1031s Preparing to unpack .../044-libwayland-cursor0_1.22.0-2.1build1_amd64.deb ... 1031s Unpacking libwayland-cursor0:amd64 (1.22.0-2.1build1) ... 1031s Selecting previously unselected package libwayland-egl1:amd64. 1031s Preparing to unpack .../045-libwayland-egl1_1.22.0-2.1build1_amd64.deb ... 1031s Unpacking libwayland-egl1:amd64 (1.22.0-2.1build1) ... 1031s Selecting previously unselected package libxcomposite1:amd64. 1031s Preparing to unpack .../046-libxcomposite1_1%3a0.4.5-1build3_amd64.deb ... 1031s Unpacking libxcomposite1:amd64 (1:0.4.5-1build3) ... 1031s Selecting previously unselected package libxfixes3:amd64. 1031s Preparing to unpack .../047-libxfixes3_1%3a6.0.0-2build1_amd64.deb ... 1031s Unpacking libxfixes3:amd64 (1:6.0.0-2build1) ... 1031s Selecting previously unselected package libxcursor1:amd64. 1031s Preparing to unpack .../048-libxcursor1_1%3a1.2.1-1build1_amd64.deb ... 1031s Unpacking libxcursor1:amd64 (1:1.2.1-1build1) ... 1031s Selecting previously unselected package libxdamage1:amd64. 1031s Preparing to unpack .../049-libxdamage1_1%3a1.1.6-1build1_amd64.deb ... 1031s Unpacking libxdamage1:amd64 (1:1.1.6-1build1) ... 1031s Selecting previously unselected package libxinerama1:amd64. 1031s Preparing to unpack .../050-libxinerama1_2%3a1.1.4-3build1_amd64.deb ... 1031s Unpacking libxinerama1:amd64 (2:1.1.4-3build1) ... 1031s Selecting previously unselected package libxrandr2:amd64. 1031s Preparing to unpack .../051-libxrandr2_2%3a1.5.2-2build1_amd64.deb ... 1031s Unpacking libxrandr2:amd64 (2:1.5.2-2build1) ... 1031s Selecting previously unselected package dbus-x11. 1031s Preparing to unpack .../052-dbus-x11_1.14.10-4ubuntu4.1_amd64.deb ... 1031s Unpacking dbus-x11 (1.14.10-4ubuntu4.1) ... 1031s Selecting previously unselected package libdconf1:amd64. 1031s Preparing to unpack .../053-libdconf1_0.40.0-4build2_amd64.deb ... 1031s Unpacking libdconf1:amd64 (0.40.0-4build2) ... 1031s Selecting previously unselected package dconf-service. 1031s Preparing to unpack .../054-dconf-service_0.40.0-4build2_amd64.deb ... 1031s Unpacking dconf-service (0.40.0-4build2) ... 1031s Selecting previously unselected package dconf-gsettings-backend:amd64. 1031s Preparing to unpack .../055-dconf-gsettings-backend_0.40.0-4build2_amd64.deb ... 1031s Unpacking dconf-gsettings-backend:amd64 (0.40.0-4build2) ... 1032s Selecting previously unselected package libgtk-3-common. 1032s Preparing to unpack .../056-libgtk-3-common_3.24.41-4ubuntu1.3_all.deb ... 1032s Unpacking libgtk-3-common (3.24.41-4ubuntu1.3) ... 1032s Selecting previously unselected package libgtk-3-0t64:amd64. 1032s Preparing to unpack .../057-libgtk-3-0t64_3.24.41-4ubuntu1.3_amd64.deb ... 1032s Unpacking libgtk-3-0t64:amd64 (3.24.41-4ubuntu1.3) ... 1032s Selecting previously unselected package gir1.2-gtk-3.0:amd64. 1032s Preparing to unpack .../058-gir1.2-gtk-3.0_3.24.41-4ubuntu1.3_amd64.deb ... 1032s Unpacking gir1.2-gtk-3.0:amd64 (3.24.41-4ubuntu1.3) ... 1032s Selecting previously unselected package libx11-xcb1:amd64. 1032s Preparing to unpack .../059-libx11-xcb1_2%3a1.8.7-1build1_amd64.deb ... 1032s Unpacking libx11-xcb1:amd64 (2:1.8.7-1build1) ... 1032s Selecting previously unselected package libxcb-util1:amd64. 1032s Preparing to unpack .../060-libxcb-util1_0.4.0-1build3_amd64.deb ... 1032s Unpacking libxcb-util1:amd64 (0.4.0-1build3) ... 1032s Selecting previously unselected package libstartup-notification0:amd64. 1032s Preparing to unpack .../061-libstartup-notification0_0.12-6build3_amd64.deb ... 1032s Unpacking libstartup-notification0:amd64 (0.12-6build3) ... 1032s Selecting previously unselected package libxres1:amd64. 1032s Preparing to unpack .../062-libxres1_2%3a1.2.1-1build1_amd64.deb ... 1032s Unpacking libxres1:amd64 (2:1.2.1-1build1) ... 1032s Selecting previously unselected package libwnck-3-common. 1032s Preparing to unpack .../063-libwnck-3-common_43.0-3build4_all.deb ... 1032s Unpacking libwnck-3-common (43.0-3build4) ... 1032s Selecting previously unselected package libwnck-3-0:amd64. 1032s Preparing to unpack .../064-libwnck-3-0_43.0-3build4_amd64.deb ... 1032s Unpacking libwnck-3-0:amd64 (43.0-3build4) ... 1032s Selecting previously unselected package gir1.2-wnck-3.0:amd64. 1032s Preparing to unpack .../065-gir1.2-wnck-3.0_43.0-3build4_amd64.deb ... 1032s Unpacking gir1.2-wnck-3.0:amd64 (43.0-3build4) ... 1032s Selecting previously unselected package gnome-terminal-data. 1032s Preparing to unpack .../066-gnome-terminal-data_3.52.0-1ubuntu2_all.deb ... 1032s Unpacking gnome-terminal-data (3.52.0-1ubuntu2) ... 1032s Selecting previously unselected package session-migration. 1032s Preparing to unpack .../067-session-migration_0.3.9build1_amd64.deb ... 1032s Unpacking session-migration (0.3.9build1) ... 1032s Selecting previously unselected package gsettings-desktop-schemas. 1032s Preparing to unpack .../068-gsettings-desktop-schemas_46.1-0ubuntu1_all.deb ... 1032s Unpacking gsettings-desktop-schemas (46.1-0ubuntu1) ... 1032s Selecting previously unselected package libhandy-1-0:amd64. 1032s Preparing to unpack .../069-libhandy-1-0_1.8.3-1build2_amd64.deb ... 1032s Unpacking libhandy-1-0:amd64 (1.8.3-1build2) ... 1032s Selecting previously unselected package libvte-2.91-common. 1032s Preparing to unpack .../070-libvte-2.91-common_0.76.0-1ubuntu0.1_amd64.deb ... 1032s Unpacking libvte-2.91-common (0.76.0-1ubuntu0.1) ... 1032s Selecting previously unselected package libvte-2.91-0:amd64. 1032s Preparing to unpack .../071-libvte-2.91-0_0.76.0-1ubuntu0.1_amd64.deb ... 1032s Unpacking libvte-2.91-0:amd64 (0.76.0-1ubuntu0.1) ... 1032s Selecting previously unselected package gnome-terminal. 1032s Preparing to unpack .../072-gnome-terminal_3.52.0-1ubuntu2_amd64.deb ... 1032s Unpacking gnome-terminal (3.52.0-1ubuntu2) ... 1032s Selecting previously unselected package libwhoopsie-preferences0. 1032s Preparing to unpack .../073-libwhoopsie-preferences0_23build3_amd64.deb ... 1032s Unpacking libwhoopsie-preferences0 (23build3) ... 1032s Selecting previously unselected package libwhoopsie0:amd64. 1032s Preparing to unpack .../074-libwhoopsie0_0.2.77build3_amd64.deb ... 1032s Unpacking libwhoopsie0:amd64 (0.2.77build3) ... 1032s Selecting previously unselected package whoopsie-preferences. 1032s Preparing to unpack .../075-whoopsie-preferences_23build3_amd64.deb ... 1032s Unpacking whoopsie-preferences (23build3) ... 1032s Selecting previously unselected package apport-gtk. 1032s Preparing to unpack .../076-apport-gtk_2.28.1-0ubuntu3.7_all.deb ... 1032s Unpacking apport-gtk (2.28.1-0ubuntu3.7) ... 1033s Selecting previously unselected package python3-pyqt5.sip. 1033s Preparing to unpack .../077-python3-pyqt5.sip_12.13.0-1build3_amd64.deb ... 1033s Unpacking python3-pyqt5.sip (12.13.0-1build3) ... 1033s Selecting previously unselected package libdouble-conversion3:amd64. 1033s Preparing to unpack .../078-libdouble-conversion3_3.3.0-1build1_amd64.deb ... 1033s Unpacking libdouble-conversion3:amd64 (3.3.0-1build1) ... 1033s Selecting previously unselected package libpcre2-16-0:amd64. 1033s Preparing to unpack .../079-libpcre2-16-0_10.42-4ubuntu2.1_amd64.deb ... 1033s Unpacking libpcre2-16-0:amd64 (10.42-4ubuntu2.1) ... 1033s Selecting previously unselected package libqt5core5t64:amd64. 1033s Preparing to unpack .../080-libqt5core5t64_5.15.13+dfsg-1ubuntu1_amd64.deb ... 1033s Unpacking libqt5core5t64:amd64 (5.15.13+dfsg-1ubuntu1) ... 1033s Selecting previously unselected package libqt5dbus5t64:amd64. 1033s Preparing to unpack .../081-libqt5dbus5t64_5.15.13+dfsg-1ubuntu1_amd64.deb ... 1033s Unpacking libqt5dbus5t64:amd64 (5.15.13+dfsg-1ubuntu1) ... 1033s Selecting previously unselected package libglvnd0:amd64. 1033s Preparing to unpack .../082-libglvnd0_1.7.0-1build1_amd64.deb ... 1033s Unpacking libglvnd0:amd64 (1.7.0-1build1) ... 1033s Selecting previously unselected package libwayland-server0:amd64. 1033s Preparing to unpack .../083-libwayland-server0_1.22.0-2.1build1_amd64.deb ... 1033s Unpacking libwayland-server0:amd64 (1.22.0-2.1build1) ... 1033s Selecting previously unselected package libxcb-randr0:amd64. 1033s Preparing to unpack .../084-libxcb-randr0_1.15-1ubuntu2_amd64.deb ... 1033s Unpacking libxcb-randr0:amd64 (1.15-1ubuntu2) ... 1033s Selecting previously unselected package libdrm-amdgpu1:amd64. 1033s Preparing to unpack .../085-libdrm-amdgpu1_2.4.122-1~ubuntu0.24.04.1_amd64.deb ... 1033s Unpacking libdrm-amdgpu1:amd64 (2.4.122-1~ubuntu0.24.04.1) ... 1033s Selecting previously unselected package libpciaccess0:amd64. 1033s Preparing to unpack .../086-libpciaccess0_0.17-3ubuntu0.24.04.2_amd64.deb ... 1033s Unpacking libpciaccess0:amd64 (0.17-3ubuntu0.24.04.2) ... 1033s Selecting previously unselected package libdrm-intel1:amd64. 1033s Preparing to unpack .../087-libdrm-intel1_2.4.122-1~ubuntu0.24.04.1_amd64.deb ... 1033s Unpacking libdrm-intel1:amd64 (2.4.122-1~ubuntu0.24.04.1) ... 1033s Selecting previously unselected package libdrm-radeon1:amd64. 1033s Preparing to unpack .../088-libdrm-radeon1_2.4.122-1~ubuntu0.24.04.1_amd64.deb ... 1033s Unpacking libdrm-radeon1:amd64 (2.4.122-1~ubuntu0.24.04.1) ... 1033s Selecting previously unselected package libglapi-mesa:amd64. 1033s Preparing to unpack .../089-libglapi-mesa_24.2.8-1ubuntu1~24.04.1_amd64.deb ... 1033s Unpacking libglapi-mesa:amd64 (24.2.8-1ubuntu1~24.04.1) ... 1033s Selecting previously unselected package libllvm19:amd64. 1033s Preparing to unpack .../090-libllvm19_1%3a19.1.1-1ubuntu1~24.04.2_amd64.deb ... 1033s Unpacking libllvm19:amd64 (1:19.1.1-1ubuntu1~24.04.2) ... 1034s Selecting previously unselected package libxcb-dri2-0:amd64. 1034s Preparing to unpack .../091-libxcb-dri2-0_1.15-1ubuntu2_amd64.deb ... 1034s Unpacking libxcb-dri2-0:amd64 (1.15-1ubuntu2) ... 1034s Selecting previously unselected package libxcb-dri3-0:amd64. 1034s Preparing to unpack .../092-libxcb-dri3-0_1.15-1ubuntu2_amd64.deb ... 1034s Unpacking libxcb-dri3-0:amd64 (1.15-1ubuntu2) ... 1034s Selecting previously unselected package libxcb-present0:amd64. 1034s Preparing to unpack .../093-libxcb-present0_1.15-1ubuntu2_amd64.deb ... 1034s Unpacking libxcb-present0:amd64 (1.15-1ubuntu2) ... 1034s Selecting previously unselected package libxcb-sync1:amd64. 1034s Preparing to unpack .../094-libxcb-sync1_1.15-1ubuntu2_amd64.deb ... 1034s Unpacking libxcb-sync1:amd64 (1.15-1ubuntu2) ... 1034s Selecting previously unselected package libxcb-xfixes0:amd64. 1034s Preparing to unpack .../095-libxcb-xfixes0_1.15-1ubuntu2_amd64.deb ... 1034s Unpacking libxcb-xfixes0:amd64 (1.15-1ubuntu2) ... 1034s Selecting previously unselected package libxshmfence1:amd64. 1034s Preparing to unpack .../096-libxshmfence1_1.3-1build5_amd64.deb ... 1034s Unpacking libxshmfence1:amd64 (1.3-1build5) ... 1034s Selecting previously unselected package mesa-libgallium:amd64. 1034s Preparing to unpack .../097-mesa-libgallium_24.2.8-1ubuntu1~24.04.1_amd64.deb ... 1034s Unpacking mesa-libgallium:amd64 (24.2.8-1ubuntu1~24.04.1) ... 1034s Selecting previously unselected package libgbm1:amd64. 1034s Preparing to unpack .../098-libgbm1_24.2.8-1ubuntu1~24.04.1_amd64.deb ... 1034s Unpacking libgbm1:amd64 (24.2.8-1ubuntu1~24.04.1) ... 1034s Selecting previously unselected package libegl-mesa0:amd64. 1034s Preparing to unpack .../099-libegl-mesa0_24.2.8-1ubuntu1~24.04.1_amd64.deb ... 1034s Unpacking libegl-mesa0:amd64 (24.2.8-1ubuntu1~24.04.1) ... 1034s Selecting previously unselected package libegl1:amd64. 1034s Preparing to unpack .../100-libegl1_1.7.0-1build1_amd64.deb ... 1034s Unpacking libegl1:amd64 (1.7.0-1build1) ... 1034s Selecting previously unselected package libxcb-glx0:amd64. 1034s Preparing to unpack .../101-libxcb-glx0_1.15-1ubuntu2_amd64.deb ... 1034s Unpacking libxcb-glx0:amd64 (1.15-1ubuntu2) ... 1034s Selecting previously unselected package libxxf86vm1:amd64. 1034s Preparing to unpack .../102-libxxf86vm1_1%3a1.1.4-1build4_amd64.deb ... 1034s Unpacking libxxf86vm1:amd64 (1:1.1.4-1build4) ... 1034s Selecting previously unselected package libvulkan1:amd64. 1034s Preparing to unpack .../103-libvulkan1_1.3.275.0-1build1_amd64.deb ... 1034s Unpacking libvulkan1:amd64 (1.3.275.0-1build1) ... 1035s Selecting previously unselected package libgl1-mesa-dri:amd64. 1035s Preparing to unpack .../104-libgl1-mesa-dri_24.2.8-1ubuntu1~24.04.1_amd64.deb ... 1035s Unpacking libgl1-mesa-dri:amd64 (24.2.8-1ubuntu1~24.04.1) ... 1035s Selecting previously unselected package libglx-mesa0:amd64. 1035s Preparing to unpack .../105-libglx-mesa0_24.2.8-1ubuntu1~24.04.1_amd64.deb ... 1035s Unpacking libglx-mesa0:amd64 (24.2.8-1ubuntu1~24.04.1) ... 1035s Selecting previously unselected package libglx0:amd64. 1035s Preparing to unpack .../106-libglx0_1.7.0-1build1_amd64.deb ... 1035s Unpacking libglx0:amd64 (1.7.0-1build1) ... 1035s Selecting previously unselected package libgl1:amd64. 1035s Preparing to unpack .../107-libgl1_1.7.0-1build1_amd64.deb ... 1035s Unpacking libgl1:amd64 (1.7.0-1build1) ... 1035s Selecting previously unselected package x11-common. 1035s Preparing to unpack .../108-x11-common_1%3a7.7+23ubuntu3_all.deb ... 1035s Unpacking x11-common (1:7.7+23ubuntu3) ... 1035s Selecting previously unselected package libice6:amd64. 1035s Preparing to unpack .../109-libice6_2%3a1.0.10-1build3_amd64.deb ... 1035s Unpacking libice6:amd64 (2:1.0.10-1build3) ... 1035s Selecting previously unselected package libmtdev1t64:amd64. 1035s Preparing to unpack .../110-libmtdev1t64_1.1.6-1.1build1_amd64.deb ... 1035s Unpacking libmtdev1t64:amd64 (1.1.6-1.1build1) ... 1035s Selecting previously unselected package libwacom-common. 1035s Preparing to unpack .../111-libwacom-common_2.10.0-2_all.deb ... 1035s Unpacking libwacom-common (2.10.0-2) ... 1035s Selecting previously unselected package libwacom9:amd64. 1035s Preparing to unpack .../112-libwacom9_2.10.0-2_amd64.deb ... 1035s Unpacking libwacom9:amd64 (2.10.0-2) ... 1035s Selecting previously unselected package libinput-bin. 1035s Preparing to unpack .../113-libinput-bin_1.25.0-1ubuntu3.1_amd64.deb ... 1035s Unpacking libinput-bin (1.25.0-1ubuntu3.1) ... 1035s Selecting previously unselected package libinput10:amd64. 1035s Preparing to unpack .../114-libinput10_1.25.0-1ubuntu3.1_amd64.deb ... 1035s Unpacking libinput10:amd64 (1.25.0-1ubuntu3.1) ... 1035s Selecting previously unselected package libmd4c0:amd64. 1035s Preparing to unpack .../115-libmd4c0_0.4.8-1build1_amd64.deb ... 1035s Unpacking libmd4c0:amd64 (0.4.8-1build1) ... 1035s Selecting previously unselected package libqt5network5t64:amd64. 1035s Preparing to unpack .../116-libqt5network5t64_5.15.13+dfsg-1ubuntu1_amd64.deb ... 1035s Unpacking libqt5network5t64:amd64 (5.15.13+dfsg-1ubuntu1) ... 1035s Selecting previously unselected package libsm6:amd64. 1035s Preparing to unpack .../117-libsm6_2%3a1.2.3-1build3_amd64.deb ... 1035s Unpacking libsm6:amd64 (2:1.2.3-1build3) ... 1035s Selecting previously unselected package libxcb-icccm4:amd64. 1035s Preparing to unpack .../118-libxcb-icccm4_0.4.1-1.1build3_amd64.deb ... 1035s Unpacking libxcb-icccm4:amd64 (0.4.1-1.1build3) ... 1035s Selecting previously unselected package libxcb-image0:amd64. 1035s Preparing to unpack .../119-libxcb-image0_0.4.0-2build1_amd64.deb ... 1035s Unpacking libxcb-image0:amd64 (0.4.0-2build1) ... 1035s Selecting previously unselected package libxcb-keysyms1:amd64. 1035s Preparing to unpack .../120-libxcb-keysyms1_0.4.0-1build4_amd64.deb ... 1035s Unpacking libxcb-keysyms1:amd64 (0.4.0-1build4) ... 1035s Selecting previously unselected package libxcb-render-util0:amd64. 1035s Preparing to unpack .../121-libxcb-render-util0_0.3.9-1build4_amd64.deb ... 1035s Unpacking libxcb-render-util0:amd64 (0.3.9-1build4) ... 1035s Selecting previously unselected package libxcb-shape0:amd64. 1035s Preparing to unpack .../122-libxcb-shape0_1.15-1ubuntu2_amd64.deb ... 1035s Unpacking libxcb-shape0:amd64 (1.15-1ubuntu2) ... 1035s Selecting previously unselected package libxcb-xinerama0:amd64. 1035s Preparing to unpack .../123-libxcb-xinerama0_1.15-1ubuntu2_amd64.deb ... 1035s Unpacking libxcb-xinerama0:amd64 (1.15-1ubuntu2) ... 1035s Selecting previously unselected package libxcb-xinput0:amd64. 1035s Preparing to unpack .../124-libxcb-xinput0_1.15-1ubuntu2_amd64.deb ... 1035s Unpacking libxcb-xinput0:amd64 (1.15-1ubuntu2) ... 1035s Selecting previously unselected package libxcb-xkb1:amd64. 1035s Preparing to unpack .../125-libxcb-xkb1_1.15-1ubuntu2_amd64.deb ... 1035s Unpacking libxcb-xkb1:amd64 (1.15-1ubuntu2) ... 1035s Selecting previously unselected package libxkbcommon-x11-0:amd64. 1035s Preparing to unpack .../126-libxkbcommon-x11-0_1.6.0-1build1_amd64.deb ... 1035s Unpacking libxkbcommon-x11-0:amd64 (1.6.0-1build1) ... 1035s Selecting previously unselected package libqt5gui5t64:amd64. 1036s Preparing to unpack .../127-libqt5gui5t64_5.15.13+dfsg-1ubuntu1_amd64.deb ... 1036s Unpacking libqt5gui5t64:amd64 (5.15.13+dfsg-1ubuntu1) ... 1036s Selecting previously unselected package libqt5widgets5t64:amd64. 1036s Preparing to unpack .../128-libqt5widgets5t64_5.15.13+dfsg-1ubuntu1_amd64.deb ... 1036s Unpacking libqt5widgets5t64:amd64 (5.15.13+dfsg-1ubuntu1) ... 1036s Selecting previously unselected package libqt5xml5t64:amd64. 1036s Preparing to unpack .../129-libqt5xml5t64_5.15.13+dfsg-1ubuntu1_amd64.deb ... 1036s Unpacking libqt5xml5t64:amd64 (5.15.13+dfsg-1ubuntu1) ... 1036s Selecting previously unselected package libqt5designer5:amd64. 1036s Preparing to unpack .../130-libqt5designer5_5.15.13-1_amd64.deb ... 1036s Unpacking libqt5designer5:amd64 (5.15.13-1) ... 1036s Selecting previously unselected package libqt5sql5t64:amd64. 1036s Preparing to unpack .../131-libqt5sql5t64_5.15.13+dfsg-1ubuntu1_amd64.deb ... 1036s Unpacking libqt5sql5t64:amd64 (5.15.13+dfsg-1ubuntu1) ... 1036s Selecting previously unselected package libqt5help5:amd64. 1036s Preparing to unpack .../132-libqt5help5_5.15.13-1_amd64.deb ... 1036s Unpacking libqt5help5:amd64 (5.15.13-1) ... 1036s Selecting previously unselected package libqt5printsupport5t64:amd64. 1036s Preparing to unpack .../133-libqt5printsupport5t64_5.15.13+dfsg-1ubuntu1_amd64.deb ... 1036s Unpacking libqt5printsupport5t64:amd64 (5.15.13+dfsg-1ubuntu1) ... 1036s Selecting previously unselected package libqt5test5t64:amd64. 1036s Preparing to unpack .../134-libqt5test5t64_5.15.13+dfsg-1ubuntu1_amd64.deb ... 1036s Unpacking libqt5test5t64:amd64 (5.15.13+dfsg-1ubuntu1) ... 1036s Selecting previously unselected package python3-pyqt5. 1036s Preparing to unpack .../135-python3-pyqt5_5.15.10+dfsg-1build6_amd64.deb ... 1036s Unpacking python3-pyqt5 (5.15.10+dfsg-1build6) ... 1036s Selecting previously unselected package apport-kde. 1036s Preparing to unpack .../136-apport-kde_2.28.1-0ubuntu3.7_all.deb ... 1036s Unpacking apport-kde (2.28.1-0ubuntu3.7) ... 1036s Selecting previously unselected package libbabeltrace1:amd64. 1036s Preparing to unpack .../137-libbabeltrace1_1.5.11-3build3_amd64.deb ... 1036s Unpacking libbabeltrace1:amd64 (1.5.11-3build3) ... 1036s Selecting previously unselected package libdebuginfod1t64:amd64. 1036s Preparing to unpack .../138-libdebuginfod1t64_0.190-1.1ubuntu0.1_amd64.deb ... 1036s Unpacking libdebuginfod1t64:amd64 (0.190-1.1ubuntu0.1) ... 1036s Selecting previously unselected package libipt2. 1036s Preparing to unpack .../139-libipt2_2.0.6-1build1_amd64.deb ... 1036s Unpacking libipt2 (2.0.6-1build1) ... 1036s Selecting previously unselected package libsource-highlight-common. 1036s Preparing to unpack .../140-libsource-highlight-common_3.1.9-4.3build1_all.deb ... 1036s Unpacking libsource-highlight-common (3.1.9-4.3build1) ... 1036s Selecting previously unselected package libsource-highlight4t64:amd64. 1036s Preparing to unpack .../141-libsource-highlight4t64_3.1.9-4.3build1_amd64.deb ... 1036s Unpacking libsource-highlight4t64:amd64 (3.1.9-4.3build1) ... 1036s Selecting previously unselected package gdb. 1036s Preparing to unpack .../142-gdb_15.0.50.20240403-0ubuntu1_amd64.deb ... 1036s Unpacking gdb (15.0.50.20240403-0ubuntu1) ... 1037s Selecting previously unselected package libc6-dbg:amd64. 1037s Preparing to unpack .../143-libc6-dbg_2.39-0ubuntu8.4_amd64.deb ... 1037s Unpacking libc6-dbg:amd64 (2.39-0ubuntu8.4) ... 1037s Selecting previously unselected package apport-retrace. 1037s Preparing to unpack .../144-apport-retrace_2.28.1-0ubuntu3.7_all.deb ... 1037s Unpacking apport-retrace (2.28.1-0ubuntu3.7) ... 1037s Selecting previously unselected package valgrind. 1037s Preparing to unpack .../145-valgrind_1%3a3.22.0-0ubuntu3_amd64.deb ... 1037s Unpacking valgrind (1:3.22.0-0ubuntu3) ... 1037s Selecting previously unselected package apport-valgrind. 1037s Preparing to unpack .../146-apport-valgrind_2.28.1-0ubuntu3.7_all.deb ... 1037s Unpacking apport-valgrind (2.28.1-0ubuntu3.7) ... 1037s Selecting previously unselected package chaos-marmosets. 1037s Preparing to unpack .../147-chaos-marmosets_0.1.2-2_amd64.deb ... 1037s Unpacking chaos-marmosets (0.1.2-2) ... 1037s Selecting previously unselected package gcc-13-base:amd64. 1037s Preparing to unpack .../148-gcc-13-base_13.3.0-6ubuntu2~24.04_amd64.deb ... 1037s Unpacking gcc-13-base:amd64 (13.3.0-6ubuntu2~24.04) ... 1037s Selecting previously unselected package libisl23:amd64. 1037s Preparing to unpack .../149-libisl23_0.26-3build1.1_amd64.deb ... 1037s Unpacking libisl23:amd64 (0.26-3build1.1) ... 1038s Selecting previously unselected package libmpc3:amd64. 1038s Preparing to unpack .../150-libmpc3_1.3.1-1build1.1_amd64.deb ... 1038s Unpacking libmpc3:amd64 (1.3.1-1build1.1) ... 1038s Selecting previously unselected package cpp-13-x86-64-linux-gnu. 1038s Preparing to unpack .../151-cpp-13-x86-64-linux-gnu_13.3.0-6ubuntu2~24.04_amd64.deb ... 1038s Unpacking cpp-13-x86-64-linux-gnu (13.3.0-6ubuntu2~24.04) ... 1038s Selecting previously unselected package cpp-13. 1038s Preparing to unpack .../152-cpp-13_13.3.0-6ubuntu2~24.04_amd64.deb ... 1038s Unpacking cpp-13 (13.3.0-6ubuntu2~24.04) ... 1038s Selecting previously unselected package cpp-x86-64-linux-gnu. 1038s Preparing to unpack .../153-cpp-x86-64-linux-gnu_4%3a13.2.0-7ubuntu1_amd64.deb ... 1038s Unpacking cpp-x86-64-linux-gnu (4:13.2.0-7ubuntu1) ... 1038s Selecting previously unselected package cpp. 1038s Preparing to unpack .../154-cpp_4%3a13.2.0-7ubuntu1_amd64.deb ... 1038s Unpacking cpp (4:13.2.0-7ubuntu1) ... 1038s Selecting previously unselected package desktop-file-utils. 1038s Preparing to unpack .../155-desktop-file-utils_0.27-2build1_amd64.deb ... 1038s Unpacking desktop-file-utils (0.27-2build1) ... 1038s Selecting previously unselected package libcc1-0:amd64. 1038s Preparing to unpack .../156-libcc1-0_14.2.0-4ubuntu2~24.04_amd64.deb ... 1038s Unpacking libcc1-0:amd64 (14.2.0-4ubuntu2~24.04) ... 1038s Selecting previously unselected package libgomp1:amd64. 1038s Preparing to unpack .../157-libgomp1_14.2.0-4ubuntu2~24.04_amd64.deb ... 1038s Unpacking libgomp1:amd64 (14.2.0-4ubuntu2~24.04) ... 1038s Selecting previously unselected package libitm1:amd64. 1038s Preparing to unpack .../158-libitm1_14.2.0-4ubuntu2~24.04_amd64.deb ... 1038s Unpacking libitm1:amd64 (14.2.0-4ubuntu2~24.04) ... 1038s Selecting previously unselected package libatomic1:amd64. 1038s Preparing to unpack .../159-libatomic1_14.2.0-4ubuntu2~24.04_amd64.deb ... 1038s Unpacking libatomic1:amd64 (14.2.0-4ubuntu2~24.04) ... 1038s Selecting previously unselected package libasan8:amd64. 1038s Preparing to unpack .../160-libasan8_14.2.0-4ubuntu2~24.04_amd64.deb ... 1038s Unpacking libasan8:amd64 (14.2.0-4ubuntu2~24.04) ... 1038s Selecting previously unselected package liblsan0:amd64. 1038s Preparing to unpack .../161-liblsan0_14.2.0-4ubuntu2~24.04_amd64.deb ... 1038s Unpacking liblsan0:amd64 (14.2.0-4ubuntu2~24.04) ... 1038s Selecting previously unselected package libtsan2:amd64. 1038s Preparing to unpack .../162-libtsan2_14.2.0-4ubuntu2~24.04_amd64.deb ... 1038s Unpacking libtsan2:amd64 (14.2.0-4ubuntu2~24.04) ... 1038s Selecting previously unselected package libubsan1:amd64. 1038s Preparing to unpack .../163-libubsan1_14.2.0-4ubuntu2~24.04_amd64.deb ... 1038s Unpacking libubsan1:amd64 (14.2.0-4ubuntu2~24.04) ... 1038s Selecting previously unselected package libhwasan0:amd64. 1039s Preparing to unpack .../164-libhwasan0_14.2.0-4ubuntu2~24.04_amd64.deb ... 1039s Unpacking libhwasan0:amd64 (14.2.0-4ubuntu2~24.04) ... 1039s Selecting previously unselected package libquadmath0:amd64. 1039s Preparing to unpack .../165-libquadmath0_14.2.0-4ubuntu2~24.04_amd64.deb ... 1039s Unpacking libquadmath0:amd64 (14.2.0-4ubuntu2~24.04) ... 1039s Selecting previously unselected package libgcc-13-dev:amd64. 1039s Preparing to unpack .../166-libgcc-13-dev_13.3.0-6ubuntu2~24.04_amd64.deb ... 1039s Unpacking libgcc-13-dev:amd64 (13.3.0-6ubuntu2~24.04) ... 1039s Selecting previously unselected package gcc-13-x86-64-linux-gnu. 1039s Preparing to unpack .../167-gcc-13-x86-64-linux-gnu_13.3.0-6ubuntu2~24.04_amd64.deb ... 1039s Unpacking gcc-13-x86-64-linux-gnu (13.3.0-6ubuntu2~24.04) ... 1039s Selecting previously unselected package gcc-13. 1039s Preparing to unpack .../168-gcc-13_13.3.0-6ubuntu2~24.04_amd64.deb ... 1039s Unpacking gcc-13 (13.3.0-6ubuntu2~24.04) ... 1039s Selecting previously unselected package gcc-x86-64-linux-gnu. 1039s Preparing to unpack .../169-gcc-x86-64-linux-gnu_4%3a13.2.0-7ubuntu1_amd64.deb ... 1039s Unpacking gcc-x86-64-linux-gnu (4:13.2.0-7ubuntu1) ... 1039s Selecting previously unselected package gcc. 1039s Preparing to unpack .../170-gcc_4%3a13.2.0-7ubuntu1_amd64.deb ... 1039s Unpacking gcc (4:13.2.0-7ubuntu1) ... 1039s Selecting previously unselected package gdb-multiarch. 1039s Preparing to unpack .../171-gdb-multiarch_15.0.50.20240403-0ubuntu1_amd64.deb ... 1039s Unpacking gdb-multiarch (15.0.50.20240403-0ubuntu1) ... 1040s Selecting previously unselected package librsvg2-2:amd64. 1040s Preparing to unpack .../172-librsvg2-2_2.58.0+dfsg-1build1_amd64.deb ... 1040s Unpacking librsvg2-2:amd64 (2.58.0+dfsg-1build1) ... 1040s Selecting previously unselected package librsvg2-common:amd64. 1040s Preparing to unpack .../173-librsvg2-common_2.58.0+dfsg-1build1_amd64.deb ... 1040s Unpacking librsvg2-common:amd64 (2.58.0+dfsg-1build1) ... 1040s Selecting previously unselected package gnome-icon-theme. 1040s Preparing to unpack .../174-gnome-icon-theme_3.12.0-5_all.deb ... 1040s Unpacking gnome-icon-theme (3.12.0-5) ... 1041s Selecting previously unselected package gvfs-common. 1041s Preparing to unpack .../175-gvfs-common_1.54.0-1ubuntu2_all.deb ... 1041s Unpacking gvfs-common (1.54.0-1ubuntu2) ... 1041s Selecting previously unselected package libgck-2-2:amd64. 1041s Preparing to unpack .../176-libgck-2-2_4.2.0-5_amd64.deb ... 1041s Unpacking libgck-2-2:amd64 (4.2.0-5) ... 1041s Selecting previously unselected package libgcr-4-4:amd64. 1041s Preparing to unpack .../177-libgcr-4-4_4.2.0-5_amd64.deb ... 1041s Unpacking libgcr-4-4:amd64 (4.2.0-5) ... 1041s Selecting previously unselected package libsecret-common. 1041s Preparing to unpack .../178-libsecret-common_0.21.4-1build3_all.deb ... 1041s Unpacking libsecret-common (0.21.4-1build3) ... 1041s Selecting previously unselected package libsecret-1-0:amd64. 1041s Preparing to unpack .../179-libsecret-1-0_0.21.4-1build3_amd64.deb ... 1041s Unpacking libsecret-1-0:amd64 (0.21.4-1build3) ... 1041s Selecting previously unselected package gvfs-libs:amd64. 1041s Preparing to unpack .../180-gvfs-libs_1.54.0-1ubuntu2_amd64.deb ... 1041s Unpacking gvfs-libs:amd64 (1.54.0-1ubuntu2) ... 1041s Selecting previously unselected package gvfs-daemons. 1041s Preparing to unpack .../181-gvfs-daemons_1.54.0-1ubuntu2_amd64.deb ... 1041s Unpacking gvfs-daemons (1.54.0-1ubuntu2) ... 1041s Selecting previously unselected package libfontenc1:amd64. 1041s Preparing to unpack .../182-libfontenc1_1%3a1.1.8-1build1_amd64.deb ... 1041s Unpacking libfontenc1:amd64 (1:1.1.8-1build1) ... 1041s Selecting previously unselected package libxt6t64:amd64. 1041s Preparing to unpack .../183-libxt6t64_1%3a1.2.1-1.2build1_amd64.deb ... 1041s Unpacking libxt6t64:amd64 (1:1.2.1-1.2build1) ... 1041s Selecting previously unselected package libxmu6:amd64. 1041s Preparing to unpack .../184-libxmu6_2%3a1.1.3-3build2_amd64.deb ... 1041s Unpacking libxmu6:amd64 (2:1.1.3-3build2) ... 1041s Selecting previously unselected package libxaw7:amd64. 1041s Preparing to unpack .../185-libxaw7_2%3a1.0.14-1build2_amd64.deb ... 1041s Unpacking libxaw7:amd64 (2:1.0.14-1build2) ... 1041s Selecting previously unselected package libxfont2:amd64. 1041s Preparing to unpack .../186-libxfont2_1%3a2.0.6-1build1_amd64.deb ... 1041s Unpacking libxfont2:amd64 (1:2.0.6-1build1) ... 1041s Selecting previously unselected package libxkbfile1:amd64. 1041s Preparing to unpack .../187-libxkbfile1_1%3a1.1.0-1build4_amd64.deb ... 1041s Unpacking libxkbfile1:amd64 (1:1.1.0-1build4) ... 1041s Selecting previously unselected package python3-iniconfig. 1041s Preparing to unpack .../188-python3-iniconfig_1.1.1-2_all.deb ... 1041s Unpacking python3-iniconfig (1.1.1-2) ... 1041s Selecting previously unselected package python3-packaging. 1041s Preparing to unpack .../189-python3-packaging_24.0-1_all.deb ... 1041s Unpacking python3-packaging (24.0-1) ... 1041s Selecting previously unselected package python3-pluggy. 1041s Preparing to unpack .../190-python3-pluggy_1.4.0-1_all.deb ... 1041s Unpacking python3-pluggy (1.4.0-1) ... 1041s Selecting previously unselected package python3-psutil. 1041s Preparing to unpack .../191-python3-psutil_5.9.8-2build2_amd64.deb ... 1041s Unpacking python3-psutil (5.9.8-2build2) ... 1041s Selecting previously unselected package python3-pytest. 1041s Preparing to unpack .../192-python3-pytest_7.4.4-1_all.deb ... 1041s Unpacking python3-pytest (7.4.4-1) ... 1041s Selecting previously unselected package ubuntu-dbgsym-keyring. 1041s Preparing to unpack .../193-ubuntu-dbgsym-keyring_2023.11.28.1_all.deb ... 1041s Unpacking ubuntu-dbgsym-keyring (2023.11.28.1) ... 1041s Selecting previously unselected package x11-xkb-utils. 1041s Preparing to unpack .../194-x11-xkb-utils_7.7+8build2_amd64.deb ... 1041s Unpacking x11-xkb-utils (7.7+8build2) ... 1041s Selecting previously unselected package xserver-common. 1041s Preparing to unpack .../195-xserver-common_2%3a21.1.12-1ubuntu1.4_all.deb ... 1041s Unpacking xserver-common (2:21.1.12-1ubuntu1.4) ... 1041s Selecting previously unselected package xvfb. 1041s Preparing to unpack .../196-xvfb_2%3a21.1.12-1ubuntu1.4_amd64.deb ... 1041s Unpacking xvfb (2:21.1.12-1ubuntu1.4) ... 1042s Setting up libgraphite2-3:amd64 (1.3.14-2build1) ... 1042s Setting up libxcb-dri3-0:amd64 (1.15-1ubuntu2) ... 1042s Setting up liblcms2-2:amd64 (2.14-2build1) ... 1042s Setting up python3-iniconfig (1.1.1-2) ... 1042s Setting up libpixman-1-0:amd64 (0.42.2-1build1) ... 1042s Setting up libllvm19:amd64 (1:19.1.1-1ubuntu1~24.04.2) ... 1042s Setting up libwayland-server0:amd64 (1.22.0-2.1build1) ... 1042s Setting up libx11-xcb1:amd64 (2:1.8.7-1build1) ... 1042s Setting up libwhoopsie-preferences0 (23build3) ... 1042s Setting up libpciaccess0:amd64 (0.17-3ubuntu0.24.04.2) ... 1042s Setting up session-migration (0.3.9build1) ... 1042s Created symlink /etc/systemd/user/graphical-session-pre.target.wants/session-migration.service → /usr/lib/systemd/user/session-migration.service. 1042s Setting up fontconfig (2.15.0-1.1ubuntu2) ... 1044s Regenerating fonts cache... done. 1044s Setting up libdouble-conversion3:amd64 (3.3.0-1build1) ... 1044s Setting up libgck-2-2:amd64 (4.2.0-5) ... 1044s Setting up libxdamage1:amd64 (1:1.1.6-1build1) ... 1044s Setting up libxcb-xfixes0:amd64 (1.15-1ubuntu2) ... 1044s Setting up desktop-file-utils (0.27-2build1) ... 1044s Setting up libgcr-4-4:amd64 (4.2.0-5) ... 1044s Setting up hicolor-icon-theme (0.17-2) ... 1044s Setting up libxi6:amd64 (2:1.8.1-1build1) ... 1044s Setting up libxcb-xinput0:amd64 (1.15-1ubuntu2) ... 1044s Setting up libxrender1:amd64 (1:0.9.10-1.1build1) ... 1044s Setting up libvte-2.91-common (0.76.0-1ubuntu0.1) ... 1044s Setting up libdatrie1:amd64 (0.2.13-3build1) ... 1044s Setting up libdebuginfod-common (0.190-1.1ubuntu0.1) ... 1044s Setting up libxcb-render0:amd64 (1.15-1ubuntu2) ... 1044s Setting up libdrm-radeon1:amd64 (2.4.122-1~ubuntu0.24.04.1) ... 1044s Setting up libglvnd0:amd64 (1.7.0-1build1) ... 1044s Setting up libwnck-3-common (43.0-3build4) ... 1044s Setting up libxcb-glx0:amd64 (1.15-1ubuntu2) ... 1044s Setting up ubuntu-dbgsym-keyring (2023.11.28.1) ... 1044s Setting up libdrm-intel1:amd64 (2.4.122-1~ubuntu0.24.04.1) ... 1044s Setting up libgdk-pixbuf2.0-common (2.42.10+dfsg-3ubuntu3.1) ... 1044s Setting up libxcb-keysyms1:amd64 (0.4.0-1build4) ... 1044s Setting up libxcb-shape0:amd64 (1.15-1ubuntu2) ... 1044s Setting up x11-common (1:7.7+23ubuntu3) ... 1045s Setting up libxcb-render-util0:amd64 (0.3.9-1build4) ... 1045s Setting up libxcb-shm0:amd64 (1.15-1ubuntu2) ... 1045s Setting up libxcb-icccm4:amd64 (0.4.1-1.1build3) ... 1045s Setting up libwhoopsie0:amd64 (0.2.77build3) ... 1045s Setting up libgomp1:amd64 (14.2.0-4ubuntu2~24.04) ... 1045s Setting up libcairo2:amd64 (1.18.0-3build1) ... 1045s Setting up libpcre2-16-0:amd64 (10.42-4ubuntu2.1) ... 1045s Setting up libcolord2:amd64 (1.4.7-1build2) ... 1045s Setting up python3-psutil (5.9.8-2build2) ... 1045s Setting up gnome-terminal-data (3.52.0-1ubuntu2) ... 1045s Setting up libsource-highlight-common (3.1.9-4.3build1) ... 1045s Setting up libxcb-util1:amd64 (0.4.0-1build3) ... 1045s Setting up libxxf86vm1:amd64 (1:1.1.4-1build4) ... 1045s Setting up libc6-dbg:amd64 (2.39-0ubuntu8.4) ... 1045s Setting up libxcb-xkb1:amd64 (1.15-1ubuntu2) ... 1045s Setting up libxcb-image0:amd64 (0.4.0-2build1) ... 1045s Setting up libxcb-present0:amd64 (1.15-1ubuntu2) ... 1045s Setting up libdconf1:amd64 (0.40.0-4build2) ... 1045s Setting up libqt5core5t64:amd64 (5.15.13+dfsg-1ubuntu1) ... 1045s Setting up libfontenc1:amd64 (1:1.1.8-1build1) ... 1045s Setting up python3-packaging (24.0-1) ... 1045s Setting up libxcb-xinerama0:amd64 (1.15-1ubuntu2) ... 1045s Setting up gcc-13-base:amd64 (13.3.0-6ubuntu2~24.04) ... 1045s Setting up libepoxy0:amd64 (1.5.10-1build1) ... 1045s Setting up libxfixes3:amd64 (1:6.0.0-2build1) ... 1045s Setting up libxcb-sync1:amd64 (1.15-1ubuntu2) ... 1045s Setting up libavahi-common-data:amd64 (0.8-13ubuntu6) ... 1045s Setting up libatspi2.0-0t64:amd64 (2.52.0-1build1) ... 1045s Setting up libquadmath0:amd64 (14.2.0-4ubuntu2~24.04) ... 1045s Setting up chaos-marmosets (0.1.2-2) ... 1045s Setting up libxinerama1:amd64 (2:1.1.4-3build1) ... 1045s Setting up libxkbcommon-x11-0:amd64 (1.6.0-1build1) ... 1045s Setting up libmpc3:amd64 (1.3.1-1build1.1) ... 1045s Setting up libatomic1:amd64 (14.2.0-4ubuntu2~24.04) ... 1045s Setting up libxrandr2:amd64 (2:1.5.2-2build1) ... 1045s Setting up libipt2 (2.0.6-1build1) ... 1045s Setting up libbabeltrace1:amd64 (1.5.11-3build3) ... 1045s Setting up libglapi-mesa:amd64 (24.2.8-1ubuntu1~24.04.1) ... 1045s Setting up libvulkan1:amd64 (1.3.275.0-1build1) ... 1045s Setting up python3-pluggy (1.4.0-1) ... 1045s Setting up libubsan1:amd64 (14.2.0-4ubuntu2~24.04) ... 1045s Setting up libxcb-dri2-0:amd64 (1.15-1ubuntu2) ... 1045s Setting up python3-pyqt5.sip (12.13.0-1build3) ... 1045s Setting up libmtdev1t64:amd64 (1.1.6-1.1build1) ... 1045s Setting up libxshmfence1:amd64 (1.3-1build5) ... 1045s Setting up libhwasan0:amd64 (14.2.0-4ubuntu2~24.04) ... 1045s Setting up at-spi2-common (2.52.0-1build1) ... 1045s Setting up dbus-x11 (1.14.10-4ubuntu4.1) ... 1045s Setting up libxcb-randr0:amd64 (1.15-1ubuntu2) ... 1045s Setting up libasan8:amd64 (14.2.0-4ubuntu2~24.04) ... 1045s Setting up libqt5sql5t64:amd64 (5.15.13+dfsg-1ubuntu1) ... 1045s Setting up libmd4c0:amd64 (0.4.8-1build1) ... 1045s Setting up libharfbuzz0b:amd64 (8.3.0-2build2) ... 1045s Setting up libthai-data (0.1.29-2build1) ... 1045s Setting up libgdk-pixbuf-2.0-0:amd64 (2.42.10+dfsg-3ubuntu3.1) ... 1045s Setting up libcairo-gobject2:amd64 (1.18.0-3build1) ... 1045s Setting up libwayland-egl1:amd64 (1.22.0-2.1build1) ... 1045s Setting up libxkbfile1:amd64 (1:1.1.0-1build4) ... 1045s Setting up libtsan2:amd64 (14.2.0-4ubuntu2~24.04) ... 1045s Setting up libisl23:amd64 (0.26-3build1.1) ... 1045s Setting up valgrind (1:3.22.0-0ubuntu3) ... 1045s Setting up gvfs-common (1.54.0-1ubuntu2) ... 1045s Setting up libxcomposite1:amd64 (1:0.4.5-1build3) ... 1045s Setting up libxfont2:amd64 (1:2.0.6-1build1) ... 1045s Setting up libcc1-0:amd64 (14.2.0-4ubuntu2~24.04) ... 1045s Setting up libsecret-common (0.21.4-1build3) ... 1045s Setting up liblsan0:amd64 (14.2.0-4ubuntu2~24.04) ... 1045s Setting up libitm1:amd64 (14.2.0-4ubuntu2~24.04) ... 1045s Setting up libxres1:amd64 (2:1.2.1-1build1) ... 1045s Setting up libdrm-amdgpu1:amd64 (2.4.122-1~ubuntu0.24.04.1) ... 1045s Setting up libwacom-common (2.10.0-2) ... 1045s Setting up libstartup-notification0:amd64 (0.12-6build3) ... 1045s Setting up libwayland-client0:amd64 (1.22.0-2.1build1) ... 1045s Setting up gtk-update-icon-cache (3.24.41-4ubuntu1.3) ... 1045s Setting up libdebuginfod1t64:amd64 (0.190-1.1ubuntu0.1) ... 1045s Setting up libice6:amd64 (2:1.0.10-1build3) ... 1045s Setting up mesa-libgallium:amd64 (24.2.8-1ubuntu1~24.04.1) ... 1045s Setting up libxft2:amd64 (2.3.6-1build1) ... 1045s Setting up libqt5dbus5t64:amd64 (5.15.13+dfsg-1ubuntu1) ... 1045s Setting up gir1.2-freedesktop:amd64 (1.80.1-1) ... 1045s Setting up libatk1.0-0t64:amd64 (2.52.0-1build1) ... 1045s Setting up gir1.2-gdkpixbuf-2.0:amd64 (2.42.10+dfsg-3ubuntu3.1) ... 1045s Setting up libgbm1:amd64 (24.2.8-1ubuntu1~24.04.1) ... 1045s Setting up gir1.2-atk-1.0:amd64 (2.52.0-1build1) ... 1045s Setting up libwacom9:amd64 (2.10.0-2) ... 1045s Setting up cpp-13-x86-64-linux-gnu (13.3.0-6ubuntu2~24.04) ... 1045s Setting up python3-pytest (7.4.4-1) ... 1046s Setting up libxcursor1:amd64 (1:1.2.1-1build1) ... 1046s Setting up libgl1-mesa-dri:amd64 (24.2.8-1ubuntu1~24.04.1) ... 1046s Setting up libqt5network5t64:amd64 (5.15.13+dfsg-1ubuntu1) ... 1046s Setting up libavahi-common3:amd64 (0.8-13ubuntu6) ... 1046s Setting up apport-valgrind (2.28.1-0ubuntu3.7) ... 1046s Setting up libqt5xml5t64:amd64 (5.15.13+dfsg-1ubuntu1) ... 1046s Setting up dconf-service (0.40.0-4build2) ... 1046s Setting up libsource-highlight4t64:amd64 (3.1.9-4.3build1) ... 1046s Setting up whoopsie-preferences (23build3) ... 1046s Setting up libharfbuzz-gobject0:amd64 (8.3.0-2build2) ... 1046s Setting up libqt5test5t64:amd64 (5.15.13+dfsg-1ubuntu1) ... 1046s Setting up gir1.2-harfbuzz-0.0:amd64 (8.3.0-2build2) ... 1046s Setting up libinput-bin (1.25.0-1ubuntu3.1) ... 1046s Setting up libthai0:amd64 (0.1.29-2build1) ... 1046s Setting up libsecret-1-0:amd64 (0.21.4-1build3) ... 1046s Setting up libegl-mesa0:amd64 (24.2.8-1ubuntu1~24.04.1) ... 1046s Setting up gdb (15.0.50.20240403-0ubuntu1) ... 1046s Setting up gdb-multiarch (15.0.50.20240403-0ubuntu1) ... 1046s Setting up libgcc-13-dev:amd64 (13.3.0-6ubuntu2~24.04) ... 1046s Setting up libwayland-cursor0:amd64 (1.22.0-2.1build1) ... 1046s Setting up libegl1:amd64 (1.7.0-1build1) ... 1046s Setting up libsm6:amd64 (2:1.2.3-1build3) ... 1046s Setting up libavahi-client3:amd64 (0.8-13ubuntu6) ... 1046s Setting up cpp-x86-64-linux-gnu (4:13.2.0-7ubuntu1) ... 1046s Setting up libatk-bridge2.0-0t64:amd64 (2.52.0-1build1) ... 1046s Setting up libinput10:amd64 (1.25.0-1ubuntu3.1) ... 1046s Setting up libglx-mesa0:amd64 (24.2.8-1ubuntu1~24.04.1) ... 1046s Setting up libglx0:amd64 (1.7.0-1build1) ... 1046s Setting up cpp-13 (13.3.0-6ubuntu2~24.04) ... 1046s Setting up dconf-gsettings-backend:amd64 (0.40.0-4build2) ... 1046s Setting up gcc-13-x86-64-linux-gnu (13.3.0-6ubuntu2~24.04) ... 1046s Setting up libpango-1.0-0:amd64 (1.52.1+ds-1build1) ... 1046s Setting up apport-retrace (2.28.1-0ubuntu3.7) ... 1046s Setting up libgl1:amd64 (1.7.0-1build1) ... 1046s Setting up libxt6t64:amd64 (1:1.2.1-1.2build1) ... 1046s Setting up gcc-13 (13.3.0-6ubuntu2~24.04) ... 1046s Setting up cpp (4:13.2.0-7ubuntu1) ... 1046s Setting up libpangoft2-1.0-0:amd64 (1.52.1+ds-1build1) ... 1046s Setting up libcups2t64:amd64 (2.4.7-1.2ubuntu7.3) ... 1046s Setting up libgtk-3-common (3.24.41-4ubuntu1.3) ... 1046s Setting up libpangocairo-1.0-0:amd64 (1.52.1+ds-1build1) ... 1046s Setting up gsettings-desktop-schemas (46.1-0ubuntu1) ... 1046s Setting up libxmu6:amd64 (2:1.1.3-3build2) ... 1046s Setting up libpangoxft-1.0-0:amd64 (1.52.1+ds-1build1) ... 1046s Setting up gcc-x86-64-linux-gnu (4:13.2.0-7ubuntu1) ... 1046s Setting up libxaw7:amd64 (2:1.0.14-1build2) ... 1046s Setting up gcc (4:13.2.0-7ubuntu1) ... 1046s Setting up librsvg2-2:amd64 (2.58.0+dfsg-1build1) ... 1046s Setting up gir1.2-pango-1.0:amd64 (1.52.1+ds-1build1) ... 1046s Setting up libqt5gui5t64:amd64 (5.15.13+dfsg-1ubuntu1) ... 1046s Setting up librsvg2-common:amd64 (2.58.0+dfsg-1build1) ... 1046s Setting up libqt5widgets5t64:amd64 (5.15.13+dfsg-1ubuntu1) ... 1046s Setting up x11-xkb-utils (7.7+8build2) ... 1046s Setting up libqt5help5:amd64 (5.15.13-1) ... 1046s Setting up gnome-icon-theme (3.12.0-5) ... 1046s update-alternatives: using /usr/share/icons/gnome/scalable/places/debian-swirl.svg to provide /usr/share/icons/gnome/scalable/places/start-here.svg (start-here.svg) in auto mode 1046s Setting up xserver-common (2:21.1.12-1ubuntu1.4) ... 1046s Setting up libqt5printsupport5t64:amd64 (5.15.13+dfsg-1ubuntu1) ... 1046s Setting up libqt5designer5:amd64 (5.15.13-1) ... 1046s Setting up xvfb (2:21.1.12-1ubuntu1.4) ... 1046s Setting up python3-pyqt5 (5.15.10+dfsg-1build6) ... 1046s Setting up adwaita-icon-theme (46.0-1) ... 1046s update-alternatives: using /usr/share/icons/Adwaita/cursor.theme to provide /usr/share/icons/default/index.theme (x-cursor-theme) in auto mode 1046s Setting up humanity-icon-theme (0.6.16) ... 1046s Setting up ubuntu-mono (24.04-0ubuntu1) ... 1047s Processing triggers for man-db (2.12.0-4build2) ... 1048s Processing triggers for libglib2.0-0t64:amd64 (2.80.0-6ubuntu3.4) ... 1048s Processing triggers for dbus (1.14.10-4ubuntu4.1) ... 1048s Setting up libgtk-3-0t64:amd64 (3.24.41-4ubuntu1.3) ... 1048s Processing triggers for udev (255.4-1ubuntu8.10) ... 1048s Setting up gvfs-libs:amd64 (1.54.0-1ubuntu2) ... 1048s Setting up libwnck-3-0:amd64 (43.0-3build4) ... 1048s Setting up libhandy-1-0:amd64 (1.8.3-1build2) ... 1048s Processing triggers for libc-bin (2.39-0ubuntu8.4) ... 1048s Setting up gir1.2-gtk-3.0:amd64 (3.24.41-4ubuntu1.3) ... 1048s Setting up libvte-2.91-0:amd64 (0.76.0-1ubuntu0.1) ... 1048s Setting up gvfs-daemons (1.54.0-1ubuntu2) ... 1048s Setting up gir1.2-wnck-3.0:amd64 (43.0-3build4) ... 1048s Setting up gnome-terminal (3.52.0-1ubuntu2) ... 1048s update-alternatives: using /usr/bin/gnome-terminal.wrapper to provide /usr/bin/x-terminal-emulator (x-terminal-emulator) in auto mode 1048s Setting up apport-kde (2.28.1-0ubuntu3.7) ... 1048s Setting up apport-gtk (2.28.1-0ubuntu3.7) ... 1048s Processing triggers for libgdk-pixbuf-2.0-0:amd64 (2.42.10+dfsg-3ubuntu3.1) ... 1048s Processing triggers for libc-bin (2.39-0ubuntu8.4) ... 1052s autopkgtest [21:35:51]: test system-tests: [----------------------- 1053s ============================= test session starts ============================== 1053s platform linux -- Python 3.12.3, pytest-7.4.4, pluggy-1.4.0 -- /usr/bin/python3 1053s cachedir: .pytest_cache 1053s rootdir: /tmp/autopkgtest.BpvbPC/autopkgtest_tmp 1054s collecting ... collected 102 items 1054s 1282s tests/system/test_apport_retrace.py::test_retrace_system_sandbox FAILED [ 0%] 1502s tests/system/test_apport_retrace.py::test_retrace_system_sandbox_gdb_sandbox FAILED [ 1%] 1913s tests/system/test_apport_retrace.py::test_retrace_jammy_sandbox FAILED [ 2%] 2141s tests/system/test_apport_retrace.py::test_retrace_jammy_sandbox_gdb_sandbox FAILED [ 3%] 2381s tests/system/test_apport_valgrind.py::TestApportValgrind::test_sandbox_cache_options FAILED [ 4%] 2382s tests/system/test_github_query.py::TestGitHubQuery::test_api_authentication PASSED [ 5%] 2402s tests/system/test_packaging_apt_dpkg.py::test_install_packages_versioned[one-line] PASSED [ 6%] 2431s tests/system/test_packaging_apt_dpkg.py::test_install_packages_versioned[deb822] PASSED [ 7%] 2435s tests/system/test_packaging_apt_dpkg.py::test_install_packages_unversioned[one-line] PASSED [ 8%] 2439s tests/system/test_packaging_apt_dpkg.py::test_install_packages_unversioned[deb822] PASSED [ 9%] 2453s tests/system/test_packaging_apt_dpkg.py::test_install_packages_dependencies[one-line] PASSED [ 10%] 2469s tests/system/test_packaging_apt_dpkg.py::test_install_packages_dependencies[deb822] PASSED [ 11%] 2694s tests/system/test_packaging_apt_dpkg.py::test_install_packages_system[one-line] FAILED [ 12%] 2920s tests/system/test_packaging_apt_dpkg.py::test_install_packages_system[deb822] FAILED [ 13%] 2922s tests/system/test_packaging_apt_dpkg.py::test_install_packages_error[one-line] PASSED [ 14%] 2925s tests/system/test_packaging_apt_dpkg.py::test_install_packages_error[deb822] PASSED [ 15%] 3293s tests/system/test_packaging_apt_dpkg.py::test_install_packages_permanent_sandbox[one-line] PASSED [ 16%] 3660s tests/system/test_packaging_apt_dpkg.py::test_install_packages_permanent_sandbox[deb822] PASSED [ 17%] 3670s tests/system/test_packaging_apt_dpkg.py::test_install_packages_permanent_sandbox_repack[one-line] PASSED [ 18%] 3678s tests/system/test_packaging_apt_dpkg.py::test_install_packages_permanent_sandbox_repack[deb822] PASSED [ 19%] 3681s tests/system/test_packaging_apt_dpkg.py::test_install_packages_armhf[one-line] FAILED [ 20%] 3684s tests/system/test_packaging_apt_dpkg.py::test_install_packages_armhf[deb822] FAILED [ 21%] 3911s tests/system/test_packaging_apt_dpkg.py::test_install_packages_from_launchpad[one-line] FAILED [ 22%] 4137s tests/system/test_packaging_apt_dpkg.py::test_install_packages_from_launchpad[deb822] FAILED [ 23%] 4357s tests/system/test_packaging_apt_dpkg.py::test_install_old_packages[one-line] FAILED [ 24%] 4580s tests/system/test_packaging_apt_dpkg.py::test_install_old_packages[deb822] FAILED [ 25%] 4585s tests/system/test_packaging_apt_dpkg.py::test_get_source_tree_sandbox[one-line] PASSED [ 26%] 4587s tests/system/test_packaging_apt_dpkg.py::test_get_source_tree_sandbox[deb822] PASSED [ 27%] 4803s tests/system/test_packaging_apt_dpkg.py::test_get_source_tree_lp_sandbox[one-line] FAILED [ 28%] 5019s tests/system/test_packaging_apt_dpkg.py::test_get_source_tree_lp_sandbox[deb822] FAILED [ 29%] 5066s tests/system/test_packaging_apt_dpkg.py::test_create_sources_for_a_named_ppa[one-line] FAILED [ 30%] 5097s tests/system/test_packaging_apt_dpkg.py::test_create_sources_for_a_named_ppa[deb822] FAILED [ 31%] 5128s tests/system/test_packaging_apt_dpkg.py::test_create_sources_for_an_unnamed_ppa[one-line] PASSED [ 32%] 5174s tests/system/test_packaging_apt_dpkg.py::test_create_sources_for_an_unnamed_ppa[deb822] PASSED [ 33%] 5175s tests/system/test_packaging_apt_dpkg.py::test_use_sources_for_a_ppa[one-line] PASSED [ 34%] 5176s tests/system/test_packaging_apt_dpkg.py::test_use_sources_for_a_ppa[deb822] PASSED [ 35%] 5210s tests/system/test_packaging_apt_dpkg.py::test_install_package_from_a_ppa[one-line] FAILED [ 36%] 5245s tests/system/test_packaging_apt_dpkg.py::test_install_package_from_a_ppa[deb822] FAILED [ 37%] 5246s tests/system/test_python_crashes.py::T::test_dbus_service_other_error PASSED [ 38%] 5272s tests/system/test_python_crashes.py::T::test_dbus_service_timeout_running PASSED [ 39%] 5272s tests/system/test_python_crashes.py::T::test_dbus_service_unknown_invalid PASSED [ 40%] 5272s tests/system/test_python_crashes.py::T::test_dbus_service_unknown_wrongbus_notrunning PASSED [ 41%] 5273s tests/system/test_python_crashes.py::T::test_dbus_service_unknown_wrongbus_running PASSED [ 42%] 5273s tests/system/test_signal_crashes.py::T::test_crash_system_slice PASSED [ 43%] 5274s tests/system/test_signal_crashes.py::T::test_create_test_non_sleep_process PASSED [ 44%] 5274s tests/system/test_signal_crashes.py::T::test_create_test_sleep_process PASSED [ 45%] 5291s tests/system/test_signal_crashes.py::T::test_limit_size PASSED [ 46%] 5292s tests/system/test_ui_gtk.py::T::test_administrator_disabled_reporting PASSED [ 47%] 5292s tests/system/test_ui_gtk.py::T::test_apport_bug_package_layout PASSED [ 48%] 5292s tests/system/test_ui_gtk.py::T::test_apport_bug_package_layout_load_file PASSED [ 49%] 5292s tests/system/test_ui_gtk.py::T::test_broken_crash_details PASSED [ 50%] 5294s tests/system/test_ui_gtk.py::T::test_bug_report_installed_package PASSED [ 50%] 5294s tests/system/test_ui_gtk.py::T::test_bug_report_uninstalled_package PASSED [ 51%] 5294s tests/system/test_ui_gtk.py::T::test_close_button PASSED [ 52%] 5294s tests/system/test_ui_gtk.py::T::test_close_during_collect PASSED [ 53%] 5294s tests/system/test_ui_gtk.py::T::test_crash_details PASSED [ 54%] 5295s tests/system/test_ui_gtk.py::T::test_crash_noaccept PASSED [ 55%] 5295s tests/system/test_ui_gtk.py::T::test_crash_nodetails PASSED [ 56%] 5295s tests/system/test_ui_gtk.py::T::test_dialog_nonascii PASSED [ 57%] 5295s tests/system/test_ui_gtk.py::T::test_examine_button PASSED [ 58%] 5295s tests/system/test_ui_gtk.py::T::test_hang_layout PASSED [ 59%] 5295s tests/system/test_ui_gtk.py::T::test_immediate_close PASSED [ 60%] 5295s tests/system/test_ui_gtk.py::T::test_kernel_crash_layout PASSED [ 61%] 5298s tests/system/test_ui_gtk.py::T::test_kerneloops_nodetails PASSED [ 62%] 5298s tests/system/test_ui_gtk.py::T::test_missing_icon PASSED [ 63%] 5298s tests/system/test_ui_gtk.py::T::test_package_crash_layout PASSED [ 64%] 5298s tests/system/test_ui_gtk.py::T::test_recoverable_crash_layout PASSED [ 65%] 5298s tests/system/test_ui_gtk.py::T::test_regular_crash_layout PASSED [ 66%] 5298s tests/system/test_ui_gtk.py::T::test_regular_crash_layout_norestart PASSED [ 67%] 5298s tests/system/test_ui_gtk.py::T::test_regular_crash_layout_restart PASSED [ 68%] 5298s tests/system/test_ui_gtk.py::T::test_regular_crash_thread_layout PASSED [ 69%] 5299s tests/system/test_ui_gtk.py::T::test_resizing PASSED [ 70%] 5299s tests/system/test_ui_gtk.py::T::test_system_crash_from_console_layout PASSED [ 71%] 5299s tests/system/test_ui_gtk.py::T::test_system_crash_layout PASSED [ 72%] 5299s tests/system/test_ui_gtk.py::T::test_text_to_markup PASSED [ 73%] 5299s tests/system/test_ui_gtk.py::T::test_text_to_markup_url_followed_by_dot PASSED [ 74%] 5299s tests/system/test_ui_gtk.py::T::test_ui_run_terminal PASSED [ 75%] 5299s tests/system/test_ui_gtk.py::T::test_ui_update_view_destroyed PASSED [ 76%] 5299s tests/system/test_ui_gtk.py::T::test_update_report PASSED [ 77%] 5299s tests/system/test_ui_gtk.py::T::test_update_report_different_binary_source PASSED [ 78%] 5301s tests/system/test_ui_kde.py::T::test_1_crash_details PASSED [ 79%] 5302s tests/system/test_ui_kde.py::T::test_1_crash_noaccept PASSED [ 80%] 5303s tests/system/test_ui_kde.py::T::test_1_crash_nodetails PASSED [ 81%] 5303s tests/system/test_ui_kde.py::T::test_1_update_report PASSED [ 82%] 5303s tests/system/test_ui_kde.py::T::test_1_update_report_different_binary_source PASSED [ 83%] 5303s tests/system/test_ui_kde.py::T::test_administrator_disabled_reporting PASSED [ 84%] 5304s tests/system/test_ui_kde.py::T::test_apport_bug_package_layout PASSED [ 85%] 5305s tests/system/test_ui_kde.py::T::test_bug_report_installed_package PASSED [ 86%] 5306s tests/system/test_ui_kde.py::T::test_bug_report_uninstalled_package PASSED [ 87%] 5306s tests/system/test_ui_kde.py::T::test_close_button PASSED [ 88%] 5306s tests/system/test_ui_kde.py::T::test_kernel_crash_layout PASSED [ 89%] 5306s tests/system/test_ui_kde.py::T::test_package_crash_layout PASSED [ 90%] 5306s tests/system/test_ui_kde.py::T::test_recoverable_crash_layout PASSED [ 91%] 5306s tests/system/test_ui_kde.py::T::test_regular_crash_layout PASSED [ 92%] 5306s tests/system/test_ui_kde.py::T::test_regular_crash_layout_norestart PASSED [ 93%] 5306s tests/system/test_ui_kde.py::T::test_regular_crash_layout_restart PASSED [ 94%] 5306s tests/system/test_ui_kde.py::T::test_regular_crash_thread_layout PASSED [ 95%] 5306s tests/system/test_ui_kde.py::T::test_system_crash_layout PASSED [ 96%] 5306s tests/system/test_ui_kde.py::T::test_ui_question_choice_hide_dialog PASSED [ 97%] 5306s tests/system/test_ui_kde.py::T::test_ui_question_file_close PASSED [ 98%] 5307s tests/system/test_ui_kde.py::T::test_ui_run_terminal PASSED [ 99%] 5307s tests/system/test_ui_kde.py::T::test_ui_set_upload_progress PASSED [100%] 5307s 5307s =================================== FAILURES =================================== 5307s _________________________ test_retrace_system_sandbox __________________________ 5307s 5307s workdir = PosixPath('/tmp/tmplx8awzw4') 5307s module_cachedir = PosixPath('/tmp/tmpjqleor2b/cache') 5307s divide_by_zero_crash = '/tmp/tmpjqleor2b/divide-by-zero.crash' 5307s 5307s @pytest.mark.skipif(not has_internet(), reason="online test") 5307s @pytest.mark.skipif( 5307s impl.get_system_architecture() != "amd64", 5307s reason="Test only works on amd64. See https://launchpad.net/bugs/2069815", 5307s ) 5307s def test_retrace_system_sandbox( 5307s workdir: pathlib.Path, module_cachedir: pathlib.Path, divide_by_zero_crash: str 5307s ) -> None: 5307s """Retrace a divide-by-zero crash in a system sandbox.""" 5307s retraced_report_filename = workdir / "retraced.crash" 5307s env = os.environ | local_test_environment() 5307s cmd = [ 5307s "apport-retrace", 5307s "-v", 5307s "-o", 5307s str(retraced_report_filename), 5307s "--sandbox", 5307s "system", 5307s "--cache", 5307s str(module_cachedir), 5307s divide_by_zero_crash, 5307s ] 5307s > subprocess.run(cmd, check=True, env=env) 5307s 5307s tests/system/test_apport_retrace.py:194: 5307s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 5307s 5307s input = None, capture_output = False, timeout = None, check = True 5307s popenargs = (['apport-retrace', '-v', '-o', '/tmp/tmplx8awzw4/retraced.crash', '--sandbox', 'system', ...],) 5307s kwargs = {'env': {'ADTTMP': '/tmp/autopkgtest.BpvbPC/autopkgtest_tmp', 'ADT_ARTIFACTS': '/tmp/autopkgtest.BpvbPC/system-tests-artifacts', 'ADT_NORMAL_USER': 'ubuntu', 'ADT_TEST_TRIGGERS': 'systemd/255.4-1ubuntu8.10', ...}} 5307s process = 5307s stdout = None, stderr = None, retcode = 1 5307s 5307s def run(*popenargs, 5307s input=None, capture_output=False, timeout=None, check=False, **kwargs): 5307s """Run command with arguments and return a CompletedProcess instance. 5307s 5307s The returned instance will have attributes args, returncode, stdout and 5307s stderr. By default, stdout and stderr are not captured, and those attributes 5307s will be None. Pass stdout=PIPE and/or stderr=PIPE in order to capture them, 5307s or pass capture_output=True to capture both. 5307s 5307s If check is True and the exit code was non-zero, it raises a 5307s CalledProcessError. The CalledProcessError object will have the return code 5307s in the returncode attribute, and output & stderr attributes if those streams 5307s were captured. 5307s 5307s If timeout is given, and the process takes too long, a TimeoutExpired 5307s exception will be raised. 5307s 5307s There is an optional argument "input", allowing you to 5307s pass bytes or a string to the subprocess's stdin. If you use this argument 5307s you may not also use the Popen constructor's "stdin" argument, as 5307s it will be used internally. 5307s 5307s By default, all communication is in bytes, and therefore any "input" should 5307s be bytes, and the stdout and stderr will be bytes. If in text mode, any 5307s "input" should be a string, and stdout and stderr will be strings decoded 5307s according to locale encoding, or by "encoding" if set. Text mode is 5307s triggered by setting any of text, encoding, errors or universal_newlines. 5307s 5307s The other arguments are the same as for the Popen constructor. 5307s """ 5307s if input is not None: 5307s if kwargs.get('stdin') is not None: 5307s raise ValueError('stdin and input arguments may not both be used.') 5307s kwargs['stdin'] = PIPE 5307s 5307s if capture_output: 5307s if kwargs.get('stdout') is not None or kwargs.get('stderr') is not None: 5307s raise ValueError('stdout and stderr arguments may not be used ' 5307s 'with capture_output.') 5307s kwargs['stdout'] = PIPE 5307s kwargs['stderr'] = PIPE 5307s 5307s with Popen(*popenargs, **kwargs) as process: 5307s try: 5307s stdout, stderr = process.communicate(input, timeout=timeout) 5307s except TimeoutExpired as exc: 5307s process.kill() 5307s if _mswindows: 5307s # Windows accumulates the output in a single blocking 5307s # read() call run on child threads, with the timeout 5307s # being done in a join() on those threads. communicate() 5307s # _after_ kill() is required to collect that and add it 5307s # to the exception. 5307s exc.stdout, exc.stderr = process.communicate() 5307s else: 5307s # POSIX _communicate already populated the output so 5307s # far into the TimeoutExpired exception. 5307s process.wait() 5307s raise 5307s except: # Including KeyboardInterrupt, communicate handled that. 5307s process.kill() 5307s # We don't call process.wait() as .__exit__ does that for us. 5307s raise 5307s retcode = process.poll() 5307s if check and retcode: 5307s > raise CalledProcessError(retcode, process.args, 5307s output=stdout, stderr=stderr) 5307s E subprocess.CalledProcessError: Command '['apport-retrace', '-v', '-o', '/tmp/tmplx8awzw4/retraced.crash', '--sandbox', 'system', '--cache', '/tmp/tmpjqleor2b/cache', '/tmp/tmpjqleor2b/divide-by-zero.crash']' returned non-zero exit status 1. 5307s 5307s /usr/lib/python3.12/subprocess.py:571: CalledProcessError 5307s ---------------------------- Captured stdout setup ----------------------------- 5307s [Thread debugging using libthread_db enabled] 5307s Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". 5307s 5307s Program received signal SIGILL, Illegal instruction. 5307s 0x00005555555551a0 in ?? () 5307s Saved corefile /tmp/tmpjqleor2b/divide-by-zero.core 5307s ---------------------------- Captured stderr setup ----------------------------- 5307s 5307s warning: could not find '.gnu_debugaltlink' file for /usr/bin/divide-by-zero 5307s warning: Memory read failed for corefile section, 4096 bytes at 0xffffffffff600000. 5307s ----------------------------- Captured stdout call ----------------------------- 5307s Get:1 http://ftpmaster.internal/ubuntu noble-proposed InRelease [265 kB] 5307s Get:2 http://ftpmaster.internal/ubuntu noble InRelease [256 kB] 5307s Get:3 http://ftpmaster.internal/ubuntu noble-updates InRelease [126 kB] 5307s Get:4 http://ftpmaster.internal/ubuntu noble-security InRelease [126 kB] 5307s Get:5 http://ftpmaster.internal/ubuntu noble-proposed/universe Sources [63.2 kB] 5307s Get:6 http://ftpmaster.internal/ubuntu noble-proposed/main Sources [61.9 kB] 5307s Get:7 http://ftpmaster.internal/ubuntu noble-proposed/multiverse Sources [11.4 kB] 5307s Get:8 http://ftpmaster.internal/ubuntu noble-proposed/restricted Sources [30.4 kB] 5307s Get:9 http://ftpmaster.internal/ubuntu noble-proposed/main amd64 Packages [283 kB] 5307s Get:10 http://ftpmaster.internal/ubuntu noble-proposed/main amd64 c-n-f Metadata [2248 B] 5307s Get:11 http://ftpmaster.internal/ubuntu noble-proposed/restricted amd64 Packages [448 kB] 5307s Get:12 http://ftpmaster.internal/ubuntu noble-proposed/restricted amd64 c-n-f Metadata [116 B] 5307s Get:13 http://ftpmaster.internal/ubuntu noble-proposed/universe amd64 Packages [450 kB] 5307s Get:14 http://ftpmaster.internal/ubuntu noble-proposed/universe amd64 c-n-f Metadata [7448 B] 5307s Get:15 http://ftpmaster.internal/ubuntu noble-proposed/multiverse amd64 Packages [21.3 kB] 5307s Get:16 http://ftpmaster.internal/ubuntu noble-proposed/multiverse amd64 c-n-f Metadata [116 B] 5307s Get:17 http://ftpmaster.internal/ubuntu noble/restricted Sources [18.7 kB] 5307s Get:18 http://ftpmaster.internal/ubuntu noble/main Sources [1384 kB] 5307s Get:19 http://ftpmaster.internal/ubuntu noble/multiverse Sources [299 kB] 5307s Get:20 http://ftpmaster.internal/ubuntu noble/universe Sources [19.8 MB] 5307s Get:21 http://ftpmaster.internal/ubuntu noble/main amd64 Packages [1401 kB] 5307s Get:22 http://ftpmaster.internal/ubuntu noble/main amd64 c-n-f Metadata [30.5 kB] 5307s Get:23 http://ftpmaster.internal/ubuntu noble/restricted amd64 Packages [93.9 kB] 5307s Get:24 http://ftpmaster.internal/ubuntu noble/restricted amd64 c-n-f Metadata [416 B] 5307s Get:25 http://ftpmaster.internal/ubuntu noble/universe amd64 Packages [15.0 MB] 5307s Get:26 http://ftpmaster.internal/ubuntu noble/universe amd64 c-n-f Metadata [301 kB] 5307s Get:27 http://ftpmaster.internal/ubuntu noble/multiverse amd64 Packages [269 kB] 5307s Get:28 http://ftpmaster.internal/ubuntu noble/multiverse amd64 c-n-f Metadata [8328 B] 5307s Get:29 http://ftpmaster.internal/ubuntu noble-updates/restricted Sources [44.9 kB] 5307s Get:30 http://ftpmaster.internal/ubuntu noble-updates/universe Sources [442 kB] 5307s Get:31 http://ftpmaster.internal/ubuntu noble-updates/multiverse Sources [16.0 kB] 5307s Get:32 http://ftpmaster.internal/ubuntu noble-updates/main Sources [431 kB] 5307s Get:33 http://ftpmaster.internal/ubuntu noble-updates/main amd64 Packages [1234 kB] 5307s Get:34 http://ftpmaster.internal/ubuntu noble-updates/main amd64 c-n-f Metadata [13.5 kB] 5307s Get:35 http://ftpmaster.internal/ubuntu noble-updates/restricted amd64 Packages [1412 kB] 5307s Get:36 http://ftpmaster.internal/ubuntu noble-updates/restricted amd64 c-n-f Metadata [492 B] 5307s Get:37 http://ftpmaster.internal/ubuntu noble-updates/universe amd64 Packages [1104 kB] 5307s Get:38 http://ftpmaster.internal/ubuntu noble-updates/universe amd64 c-n-f Metadata [26.0 kB] 5307s Get:39 http://ftpmaster.internal/ubuntu noble-updates/multiverse amd64 Packages [22.8 kB] 5307s Get:40 http://ftpmaster.internal/ubuntu noble-updates/multiverse amd64 c-n-f Metadata [592 B] 5307s Get:41 http://ftpmaster.internal/ubuntu noble-security/multiverse Sources [10.2 kB] 5307s Get:42 http://ftpmaster.internal/ubuntu noble-security/restricted Sources [41.7 kB] 5307s Get:43 http://ftpmaster.internal/ubuntu noble-security/main Sources [190 kB] 5307s Get:44 http://ftpmaster.internal/ubuntu noble-security/universe Sources [315 kB] 5307s Get:45 http://ftpmaster.internal/ubuntu noble-security/main amd64 Packages [983 kB] 5307s Get:46 http://ftpmaster.internal/ubuntu noble-security/main amd64 c-n-f Metadata [7068 B] 5307s Get:47 http://ftpmaster.internal/ubuntu noble-security/restricted amd64 Packages [1368 kB] 5307s Get:48 http://ftpmaster.internal/ubuntu noble-security/restricted amd64 c-n-f Metadata [468 B] 5307s Get:49 http://ftpmaster.internal/ubuntu noble-security/universe amd64 Packages [869 kB] 5307s Get:50 http://ftpmaster.internal/ubuntu noble-security/universe amd64 c-n-f Metadata [17.0 kB] 5307s Get:51 http://ftpmaster.internal/ubuntu noble-security/multiverse amd64 Packages [18.5 kB] 5307s Get:52 http://ftpmaster.internal/ubuntu noble-security/multiverse amd64 c-n-f Metadata [380 B] 5307s Fetched 49.4 MB in 6s (8099 kB/s) 5307s Get:1 http://ftpmaster.internal/ubuntu noble-updates/main amd64 gcc-14-base amd64 14.2.0-4ubuntu2~24.04 [50.8 kB] 5307s Get:2 http://ftpmaster.internal/ubuntu noble-updates/main amd64 libgcc-s1 amd64 14.2.0-4ubuntu2~24.04 [78.6 kB] 5307s Get:3 http://ftpmaster.internal/ubuntu noble-updates/main amd64 libc6 amd64 2.39-0ubuntu8.4 [3264 kB] 5307s Get:4 http://ftpmaster.internal/ubuntu noble-updates/main amd64 libunistring5 amd64 1.1-2build1.1 [536 kB] 5307s Get:5 http://ftpmaster.internal/ubuntu noble-updates/main amd64 libidn2-0 amd64 2.3.7-2build1.1 [66.2 kB] 5307s Get:6 http://ftpmaster.internal/ubuntu noble/universe amd64 chaos-marmosets amd64 0.1.2-2 [8808 B] 5307s Get:7 http://ftpmaster.internal/ubuntu noble-updates/universe amd64 lib32stdc++6-14-dbg amd64 14.2.0-4ubuntu2~24.04 [12.5 MB] 5307s Get:8 http://ftpmaster.internal/ubuntu noble-updates/universe amd64 libstdc++6-14-dbg amd64 14.2.0-4ubuntu2~24.04 [12.7 MB] 5307s Get:9 http://ftpmaster.internal/ubuntu noble-updates/universe amd64 libx32stdc++6-14-dbg amd64 14.2.0-4ubuntu2~24.04 [12.6 MB] 5307s Get:10 http://ftpmaster.internal/ubuntu noble-updates/main amd64 libc6-dbg amd64 2.39-0ubuntu8.4 [7460 kB] 5307s Ign 5307s Ign 5307s Ign 5307s Ign 5307s Ign 5307s Ign 5307s Ign 5307s Ign 5307s Ign 5307s Ign 5307s Ign 5307s Ign 5307s Ign 5307s Ign 5307s Ign 5307s Ign 5307s Ign 5307s Ign 5307s Ign 5307s Ign 5307s Ign 5307s Ign 5307s Ign 5307s Ign 5307s Ign 5307s Ign 5307s Ign 5307s Ign 5307s Ign 5307s Ign 5307s Err 5307s Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::3ba). - connect (101: Network is unreachable) Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::f3). - connect (101: Network is unreachable) Could not connect to launchpad.net:443 (185.125.189.223), connection timed out Could not connect to launchpad.net:443 (185.125.189.222), connection timed out 5307s Err 5307s Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::3ba). - connect (101: Network is unreachable) Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::f3). - connect (101: Network is unreachable) 5307s Err 5307s Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::3ba). - connect (101: Network is unreachable) Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::f3). - connect (101: Network is unreachable) 5307s Fetched 49.3 MB in 6s (0 B/s) 5307s ----------------------------- Captured stderr call ----------------------------- 5307s /usr/lib/python3/dist-packages/apt/cache.py:562: Warning: W:Download is performed unsandboxed as root as file '/tmp/tmpjqleor2b/cache/system/apt/var/lib/apt/lists/partial/ftpmaster.internal_ubuntu_dists_noble-proposed_InRelease' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied) 5307s res = self._cache.update(fetch_progress, slist, pulse_interval) 5307s ERROR: Package download error, try again later: Failed to fetch https://launchpad.net/ubuntu/%2barchive/primary/%2bfiles/chaos-marmosets-dbgsym_0.1.2-2_amd64.ddeb Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::3ba). - connect (101: Network is unreachable) Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::f3). - connect (101: Network is unreachable) Could not connect to launchpad.net:443 (185.125.189.223), connection timed out Could not connect to launchpad.net:443 (185.125.189.222), connection timed out 5307s Failed to fetch https://launchpad.net/ubuntu/%2barchive/primary/%2bfiles/libidn2-0-dbgsym_2.3.7-2build1.1_amd64.ddeb Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::3ba). - connect (101: Network is unreachable) Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::f3). - connect (101: Network is unreachable) 5307s Failed to fetch https://launchpad.net/ubuntu/%2barchive/primary/%2bfiles/libunistring5-dbgsym_1.1-2build1.1_amd64.ddeb Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::3ba). - connect (101: Network is unreachable) Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::f3). - connect (101: Network is unreachable) 5307s 5307s ___________________ test_retrace_system_sandbox_gdb_sandbox ____________________ 5307s 5307s workdir = PosixPath('/tmp/tmpjfj_zprd') 5307s module_cachedir = PosixPath('/tmp/tmpjqleor2b/cache') 5307s divide_by_zero_crash = '/tmp/tmpjqleor2b/divide-by-zero.crash' 5307s 5307s @pytest.mark.skipif(not has_internet(), reason="online test") 5307s @pytest.mark.skipif( 5307s impl.get_system_architecture() != "amd64", 5307s reason="GDB sandbox only available on amd64", 5307s ) 5307s def test_retrace_system_sandbox_gdb_sandbox( 5307s workdir: pathlib.Path, module_cachedir: pathlib.Path, divide_by_zero_crash: str 5307s ) -> None: 5307s """Retrace a divide-by-zero crash in a system sandbox with a GDB sandbox.""" 5307s retraced_report_filename = workdir / "retraced.crash" 5307s env = os.environ | local_test_environment() 5307s cmd = [ 5307s "apport-retrace", 5307s "-v", 5307s "-o", 5307s str(retraced_report_filename), 5307s "--sandbox", 5307s "system", 5307s "--gdb-sandbox", 5307s "--cache", 5307s str(module_cachedir), 5307s divide_by_zero_crash, 5307s ] 5307s > subprocess.run(cmd, check=True, env=env) 5307s 5307s tests/system/test_apport_retrace.py:224: 5307s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 5307s 5307s input = None, capture_output = False, timeout = None, check = True 5307s popenargs = (['apport-retrace', '-v', '-o', '/tmp/tmpjfj_zprd/retraced.crash', '--sandbox', 'system', ...],) 5307s kwargs = {'env': {'ADTTMP': '/tmp/autopkgtest.BpvbPC/autopkgtest_tmp', 'ADT_ARTIFACTS': '/tmp/autopkgtest.BpvbPC/system-tests-artifacts', 'ADT_NORMAL_USER': 'ubuntu', 'ADT_TEST_TRIGGERS': 'systemd/255.4-1ubuntu8.10', ...}} 5307s process = 5307s stdout = None, stderr = None, retcode = 1 5307s 5307s def run(*popenargs, 5307s input=None, capture_output=False, timeout=None, check=False, **kwargs): 5307s """Run command with arguments and return a CompletedProcess instance. 5307s 5307s The returned instance will have attributes args, returncode, stdout and 5307s stderr. By default, stdout and stderr are not captured, and those attributes 5307s will be None. Pass stdout=PIPE and/or stderr=PIPE in order to capture them, 5307s or pass capture_output=True to capture both. 5307s 5307s If check is True and the exit code was non-zero, it raises a 5307s CalledProcessError. The CalledProcessError object will have the return code 5307s in the returncode attribute, and output & stderr attributes if those streams 5307s were captured. 5307s 5307s If timeout is given, and the process takes too long, a TimeoutExpired 5307s exception will be raised. 5307s 5307s There is an optional argument "input", allowing you to 5307s pass bytes or a string to the subprocess's stdin. If you use this argument 5307s you may not also use the Popen constructor's "stdin" argument, as 5307s it will be used internally. 5307s 5307s By default, all communication is in bytes, and therefore any "input" should 5307s be bytes, and the stdout and stderr will be bytes. If in text mode, any 5307s "input" should be a string, and stdout and stderr will be strings decoded 5307s according to locale encoding, or by "encoding" if set. Text mode is 5307s triggered by setting any of text, encoding, errors or universal_newlines. 5307s 5307s The other arguments are the same as for the Popen constructor. 5307s """ 5307s if input is not None: 5307s if kwargs.get('stdin') is not None: 5307s raise ValueError('stdin and input arguments may not both be used.') 5307s kwargs['stdin'] = PIPE 5307s 5307s if capture_output: 5307s if kwargs.get('stdout') is not None or kwargs.get('stderr') is not None: 5307s raise ValueError('stdout and stderr arguments may not be used ' 5307s 'with capture_output.') 5307s kwargs['stdout'] = PIPE 5307s kwargs['stderr'] = PIPE 5307s 5307s with Popen(*popenargs, **kwargs) as process: 5307s try: 5307s stdout, stderr = process.communicate(input, timeout=timeout) 5307s except TimeoutExpired as exc: 5307s process.kill() 5307s if _mswindows: 5307s # Windows accumulates the output in a single blocking 5307s # read() call run on child threads, with the timeout 5307s # being done in a join() on those threads. communicate() 5307s # _after_ kill() is required to collect that and add it 5307s # to the exception. 5307s exc.stdout, exc.stderr = process.communicate() 5307s else: 5307s # POSIX _communicate already populated the output so 5307s # far into the TimeoutExpired exception. 5307s process.wait() 5307s raise 5307s except: # Including KeyboardInterrupt, communicate handled that. 5307s process.kill() 5307s # We don't call process.wait() as .__exit__ does that for us. 5307s raise 5307s retcode = process.poll() 5307s if check and retcode: 5307s > raise CalledProcessError(retcode, process.args, 5307s output=stdout, stderr=stderr) 5307s E subprocess.CalledProcessError: Command '['apport-retrace', '-v', '-o', '/tmp/tmpjfj_zprd/retraced.crash', '--sandbox', 'system', '--gdb-sandbox', '--cache', '/tmp/tmpjqleor2b/cache', '/tmp/tmpjqleor2b/divide-by-zero.crash']' returned non-zero exit status 1. 5307s 5307s /usr/lib/python3.12/subprocess.py:571: CalledProcessError 5307s ----------------------------- Captured stdout call ----------------------------- 5307s Hit http://ftpmaster.internal/ubuntu noble-proposed InRelease 5307s Hit http://ftpmaster.internal/ubuntu noble InRelease 5307s Hit http://ftpmaster.internal/ubuntu noble-updates InRelease 5307s Hit http://ftpmaster.internal/ubuntu noble-security InRelease 5307s Fetched 0 B in 0s (0 B/s) 5307s Ign 5307s Ign 5307s Ign 5307s Ign 5307s Ign 5307s Ign 5307s Ign 5307s Ign 5307s Ign 5307s Ign 5307s Ign 5307s Ign 5307s Ign 5307s Ign 5307s Ign 5307s Ign 5307s Ign 5307s Ign 5307s Ign 5307s Ign 5307s Ign 5307s Ign 5307s Ign 5307s Ign 5307s Ign 5307s Ign 5307s Ign 5307s Ign 5307s Ign 5307s Ign 5307s Err 5307s Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::3ba). - connect (101: Network is unreachable) Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::f3). - connect (101: Network is unreachable) Could not connect to launchpad.net:443 (185.125.189.223), connection timed out Could not connect to launchpad.net:443 (185.125.189.222), connection timed out 5307s Err 5307s Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::3ba). - connect (101: Network is unreachable) Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::f3). - connect (101: Network is unreachable) 5307s Err 5307s Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::3ba). - connect (101: Network is unreachable) Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::f3). - connect (101: Network is unreachable) 5307s Fetched 0 B in 6s (0 B/s) 5307s ----------------------------- Captured stderr call ----------------------------- 5307s /usr/lib/python3/dist-packages/apt/cache.py:562: Warning: W:Download is performed unsandboxed as root as file '/tmp/tmpjqleor2b/cache/system/apt/var/lib/apt/lists/partial/ftpmaster.internal_ubuntu_dists_noble-proposed_InRelease' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied) 5307s res = self._cache.update(fetch_progress, slist, pulse_interval) 5307s ERROR: Package download error, try again later: Failed to fetch https://launchpad.net/ubuntu/%2barchive/primary/%2bfiles/chaos-marmosets-dbgsym_0.1.2-2_amd64.ddeb Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::3ba). - connect (101: Network is unreachable) Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::f3). - connect (101: Network is unreachable) Could not connect to launchpad.net:443 (185.125.189.223), connection timed out Could not connect to launchpad.net:443 (185.125.189.222), connection timed out 5307s Failed to fetch https://launchpad.net/ubuntu/%2barchive/primary/%2bfiles/libidn2-0-dbgsym_2.3.7-2build1.1_amd64.ddeb Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::3ba). - connect (101: Network is unreachable) Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::f3). - connect (101: Network is unreachable) 5307s Failed to fetch https://launchpad.net/ubuntu/%2barchive/primary/%2bfiles/libunistring5-dbgsym_1.1-2build1.1_amd64.ddeb Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::3ba). - connect (101: Network is unreachable) Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::f3). - connect (101: Network is unreachable) 5307s 5307s __________________________ test_retrace_jammy_sandbox __________________________ 5307s 5307s workdir = PosixPath('/tmp/tmpom5houxc') 5307s module_cachedir = PosixPath('/tmp/tmpjqleor2b/cache') 5307s sandbox_config = '/tmp/tmpom5houxc/config' 5307s 5307s @pytest.mark.skipif(not has_internet(), reason="online test") 5307s @pytest.mark.skipif( 5307s impl.get_system_architecture() != "amd64", 5307s reason="Test only works on amd64. See https://launchpad.net/bugs/2069815", 5307s ) 5307s def test_retrace_jammy_sandbox( 5307s workdir: pathlib.Path, module_cachedir: pathlib.Path, sandbox_config: pathlib.Path 5307s ) -> None: 5307s """Retrace a sleep crash from jammy in a sandbox.""" 5307s crash = get_test_data_directory() / "jammy_usr_bin_sleep.1000.crash" 5307s retraced_report_filename = workdir / "retraced.crash" 5307s env = os.environ | local_test_environment() 5307s cmd = [ 5307s "apport-retrace", 5307s "-v", 5307s "-o", 5307s str(retraced_report_filename), 5307s "--sandbox", 5307s str(sandbox_config), 5307s "--cache", 5307s str(module_cachedir), 5307s "--sandbox-dir", 5307s str(workdir / "apport_sandbox"), 5307s str(crash), 5307s ] 5307s > subprocess.run(cmd, check=True, env=env) 5307s 5307s tests/system/test_apport_retrace.py:256: 5307s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 5307s 5307s input = None, capture_output = False, timeout = None, check = True 5307s popenargs = (['apport-retrace', '-v', '-o', '/tmp/tmpom5houxc/retraced.crash', '--sandbox', '/tmp/tmpom5houxc/config', ...],) 5307s kwargs = {'env': {'ADTTMP': '/tmp/autopkgtest.BpvbPC/autopkgtest_tmp', 'ADT_ARTIFACTS': '/tmp/autopkgtest.BpvbPC/system-tests-artifacts', 'ADT_NORMAL_USER': 'ubuntu', 'ADT_TEST_TRIGGERS': 'systemd/255.4-1ubuntu8.10', ...}} 5307s process = 5307s stdout = None, stderr = None, retcode = 1 5307s 5307s def run(*popenargs, 5307s input=None, capture_output=False, timeout=None, check=False, **kwargs): 5307s """Run command with arguments and return a CompletedProcess instance. 5307s 5307s The returned instance will have attributes args, returncode, stdout and 5307s stderr. By default, stdout and stderr are not captured, and those attributes 5307s will be None. Pass stdout=PIPE and/or stderr=PIPE in order to capture them, 5307s or pass capture_output=True to capture both. 5307s 5307s If check is True and the exit code was non-zero, it raises a 5307s CalledProcessError. The CalledProcessError object will have the return code 5307s in the returncode attribute, and output & stderr attributes if those streams 5307s were captured. 5307s 5307s If timeout is given, and the process takes too long, a TimeoutExpired 5307s exception will be raised. 5307s 5307s There is an optional argument "input", allowing you to 5307s pass bytes or a string to the subprocess's stdin. If you use this argument 5307s you may not also use the Popen constructor's "stdin" argument, as 5307s it will be used internally. 5307s 5307s By default, all communication is in bytes, and therefore any "input" should 5307s be bytes, and the stdout and stderr will be bytes. If in text mode, any 5307s "input" should be a string, and stdout and stderr will be strings decoded 5307s according to locale encoding, or by "encoding" if set. Text mode is 5307s triggered by setting any of text, encoding, errors or universal_newlines. 5307s 5307s The other arguments are the same as for the Popen constructor. 5307s """ 5307s if input is not None: 5307s if kwargs.get('stdin') is not None: 5307s raise ValueError('stdin and input arguments may not both be used.') 5307s kwargs['stdin'] = PIPE 5307s 5307s if capture_output: 5307s if kwargs.get('stdout') is not None or kwargs.get('stderr') is not None: 5307s raise ValueError('stdout and stderr arguments may not be used ' 5307s 'with capture_output.') 5307s kwargs['stdout'] = PIPE 5307s kwargs['stderr'] = PIPE 5307s 5307s with Popen(*popenargs, **kwargs) as process: 5307s try: 5307s stdout, stderr = process.communicate(input, timeout=timeout) 5307s except TimeoutExpired as exc: 5307s process.kill() 5307s if _mswindows: 5307s # Windows accumulates the output in a single blocking 5307s # read() call run on child threads, with the timeout 5307s # being done in a join() on those threads. communicate() 5307s # _after_ kill() is required to collect that and add it 5307s # to the exception. 5307s exc.stdout, exc.stderr = process.communicate() 5307s else: 5307s # POSIX _communicate already populated the output so 5307s # far into the TimeoutExpired exception. 5307s process.wait() 5307s raise 5307s except: # Including KeyboardInterrupt, communicate handled that. 5307s process.kill() 5307s # We don't call process.wait() as .__exit__ does that for us. 5307s raise 5307s retcode = process.poll() 5307s if check and retcode: 5307s > raise CalledProcessError(retcode, process.args, 5307s output=stdout, stderr=stderr) 5307s E subprocess.CalledProcessError: Command '['apport-retrace', '-v', '-o', '/tmp/tmpom5houxc/retraced.crash', '--sandbox', '/tmp/tmpom5houxc/config', '--cache', '/tmp/tmpjqleor2b/cache', '--sandbox-dir', '/tmp/tmpom5houxc/apport_sandbox', '/tmp/autopkgtest.BpvbPC/autopkgtest_tmp/tests/data/jammy_usr_bin_sleep.1000.crash']' returned non-zero exit status 1. 5307s 5307s /usr/lib/python3.12/subprocess.py:571: CalledProcessError 5307s ----------------------------- Captured stdout call ----------------------------- 5307s Get:1 http://ftpmaster.internal/ubuntu jammy InRelease [270 kB] 5307s Get:2 http://ftpmaster.internal/ubuntu jammy/main Sources [1340 kB] 5307s Get:3 http://ftpmaster.internal/ubuntu jammy/main amd64 Packages [1395 kB] 5307s Get:4 http://ftpmaster.internal/ubuntu jammy/main amd64 c-n-f Metadata [30.3 kB] 5307s Fetched 3035 kB in 0s (0 B/s) 5307s Fetched 0 B in 0s (0 B/s) 5307s Extracting downloaded debs... 5307s dynamically loaded /usr/lib/x86_64-linux-gnu/libc.so.6 needs package libc6, queueing 5307s dynamically loaded /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 needs package libc6, queueing 5307s Installing extra package coreutils to get ExecutablePath 5307s Get:1 http://ftpmaster.internal/ubuntu jammy/main amd64 libc6 amd64 2.35-0ubuntu3 [3235 kB] 5307s Get:2 http://ftpmaster.internal/ubuntu jammy/main amd64 coreutils amd64 8.32-4.1ubuntu1 [1438 kB] 5307s Get:3 http://ftpmaster.internal/ubuntu jammy/main amd64 libc6-dbg amd64 2.35-0ubuntu3 [13.9 MB] 5307s Ign 5307s Ign 5307s Ign 5307s Ign 5307s Ign 5307s Ign 5307s Ign 5307s Ign 5307s Ign 5307s Ign 5307s Err 5307s Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::f3). - connect (101: Network is unreachable) Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::3ba). - connect (101: Network is unreachable) Could not connect to launchpad.net:443 (185.125.189.223), connection timed out Could not connect to launchpad.net:443 (185.125.189.222), connection timed out 5307s Fetched 18.6 MB in 6s (0 B/s) 5307s ----------------------------- Captured stderr call ----------------------------- 5307s /usr/lib/python3/dist-packages/apt/cache.py:562: Warning: W:Download is performed unsandboxed as root as file '/tmp/tmpjqleor2b/cache/Ubuntu 22.04/apt/var/lib/apt/lists/partial/ftpmaster.internal_ubuntu_dists_jammy_InRelease' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied) 5307s res = self._cache.update(fetch_progress, slist, pulse_interval) 5307s ERROR: Package download error, try again later: Failed to fetch https://launchpad.net/ubuntu/%2barchive/primary/%2bfiles/coreutils-dbgsym_8.32-4.1ubuntu1_amd64.ddeb Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::f3). - connect (101: Network is unreachable) Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::3ba). - connect (101: Network is unreachable) Could not connect to launchpad.net:443 (185.125.189.223), connection timed out Could not connect to launchpad.net:443 (185.125.189.222), connection timed out 5307s 5307s ____________________ test_retrace_jammy_sandbox_gdb_sandbox ____________________ 5307s 5307s workdir = PosixPath('/tmp/tmppxxk3x96') 5307s module_cachedir = PosixPath('/tmp/tmpjqleor2b/cache') 5307s sandbox_config = '/tmp/tmppxxk3x96/config' 5307s 5307s @pytest.mark.skipif(not has_internet(), reason="online test") 5307s @pytest.mark.skipif( 5307s impl.get_system_architecture() != "amd64", 5307s reason="GDB sandbox only available on amd64", 5307s ) 5307s def test_retrace_jammy_sandbox_gdb_sandbox( 5307s workdir: pathlib.Path, module_cachedir: pathlib.Path, sandbox_config: pathlib.Path 5307s ) -> None: 5307s """Retrace a sleep crash from jammy in a sandbox with a GDB sandbox.""" 5307s crash = get_test_data_directory() / "jammy_usr_bin_sleep.1000.crash" 5307s retraced_report_filename = workdir / "retraced.crash" 5307s env = os.environ | local_test_environment() 5307s cmd = [ 5307s "apport-retrace", 5307s "-v", 5307s "-o", 5307s str(retraced_report_filename), 5307s "--sandbox", 5307s str(sandbox_config), 5307s "--gdb-sandbox", 5307s "--cache", 5307s str(module_cachedir), 5307s "--sandbox-dir", 5307s str(workdir / "apport_sandbox"), 5307s str(crash), 5307s ] 5307s > subprocess.run(cmd, check=True, env=env) 5307s 5307s tests/system/test_apport_retrace.py:290: 5307s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 5307s 5307s input = None, capture_output = False, timeout = None, check = True 5307s popenargs = (['apport-retrace', '-v', '-o', '/tmp/tmppxxk3x96/retraced.crash', '--sandbox', '/tmp/tmppxxk3x96/config', ...],) 5307s kwargs = {'env': {'ADTTMP': '/tmp/autopkgtest.BpvbPC/autopkgtest_tmp', 'ADT_ARTIFACTS': '/tmp/autopkgtest.BpvbPC/system-tests-artifacts', 'ADT_NORMAL_USER': 'ubuntu', 'ADT_TEST_TRIGGERS': 'systemd/255.4-1ubuntu8.10', ...}} 5307s process = 5307s stdout = None, stderr = None, retcode = 1 5307s 5307s def run(*popenargs, 5307s input=None, capture_output=False, timeout=None, check=False, **kwargs): 5307s """Run command with arguments and return a CompletedProcess instance. 5307s 5307s The returned instance will have attributes args, returncode, stdout and 5307s stderr. By default, stdout and stderr are not captured, and those attributes 5307s will be None. Pass stdout=PIPE and/or stderr=PIPE in order to capture them, 5307s or pass capture_output=True to capture both. 5307s 5307s If check is True and the exit code was non-zero, it raises a 5307s CalledProcessError. The CalledProcessError object will have the return code 5307s in the returncode attribute, and output & stderr attributes if those streams 5307s were captured. 5307s 5307s If timeout is given, and the process takes too long, a TimeoutExpired 5307s exception will be raised. 5307s 5307s There is an optional argument "input", allowing you to 5307s pass bytes or a string to the subprocess's stdin. If you use this argument 5307s you may not also use the Popen constructor's "stdin" argument, as 5307s it will be used internally. 5307s 5307s By default, all communication is in bytes, and therefore any "input" should 5307s be bytes, and the stdout and stderr will be bytes. If in text mode, any 5307s "input" should be a string, and stdout and stderr will be strings decoded 5307s according to locale encoding, or by "encoding" if set. Text mode is 5307s triggered by setting any of text, encoding, errors or universal_newlines. 5307s 5307s The other arguments are the same as for the Popen constructor. 5307s """ 5307s if input is not None: 5307s if kwargs.get('stdin') is not None: 5307s raise ValueError('stdin and input arguments may not both be used.') 5307s kwargs['stdin'] = PIPE 5307s 5307s if capture_output: 5307s if kwargs.get('stdout') is not None or kwargs.get('stderr') is not None: 5307s raise ValueError('stdout and stderr arguments may not be used ' 5307s 'with capture_output.') 5307s kwargs['stdout'] = PIPE 5307s kwargs['stderr'] = PIPE 5307s 5307s with Popen(*popenargs, **kwargs) as process: 5307s try: 5307s stdout, stderr = process.communicate(input, timeout=timeout) 5307s except TimeoutExpired as exc: 5307s process.kill() 5307s if _mswindows: 5307s # Windows accumulates the output in a single blocking 5307s # read() call run on child threads, with the timeout 5307s # being done in a join() on those threads. communicate() 5307s # _after_ kill() is required to collect that and add it 5307s # to the exception. 5307s exc.stdout, exc.stderr = process.communicate() 5307s else: 5307s # POSIX _communicate already populated the output so 5307s # far into the TimeoutExpired exception. 5307s process.wait() 5307s raise 5307s except: # Including KeyboardInterrupt, communicate handled that. 5307s process.kill() 5307s # We don't call process.wait() as .__exit__ does that for us. 5307s raise 5307s retcode = process.poll() 5307s if check and retcode: 5307s > raise CalledProcessError(retcode, process.args, 5307s output=stdout, stderr=stderr) 5307s E subprocess.CalledProcessError: Command '['apport-retrace', '-v', '-o', '/tmp/tmppxxk3x96/retraced.crash', '--sandbox', '/tmp/tmppxxk3x96/config', '--gdb-sandbox', '--cache', '/tmp/tmpjqleor2b/cache', '--sandbox-dir', '/tmp/tmppxxk3x96/apport_sandbox', '/tmp/autopkgtest.BpvbPC/autopkgtest_tmp/tests/data/jammy_usr_bin_sleep.1000.crash']' returned non-zero exit status 1. 5307s 5307s /usr/lib/python3.12/subprocess.py:571: CalledProcessError 5307s ----------------------------- Captured stdout call ----------------------------- 5307s Hit http://ftpmaster.internal/ubuntu jammy InRelease 5307s Fetched 0 B in 0s (0 B/s) 5307s Fetched 0 B in 0s (0 B/s) 5307s Extracting downloaded debs... 5307s Get:1 http://ftpmaster.internal/ubuntu jammy/main amd64 gcc-12-base amd64 12-20220319-1ubuntu1 [18.9 kB] 5307s Get:2 http://ftpmaster.internal/ubuntu jammy/main amd64 libcrypt1 amd64 1:4.4.27-1 [82.0 kB] 5307s Get:3 http://ftpmaster.internal/ubuntu jammy/main amd64 libgcc-s1 amd64 12-20220319-1ubuntu1 [54.2 kB] 5307s Get:4 http://ftpmaster.internal/ubuntu jammy/main amd64 libacl1 amd64 2.3.1-1 [16.2 kB] 5307s Get:5 http://ftpmaster.internal/ubuntu jammy/main amd64 libattr1 amd64 1:2.5.1-1build1 [13.3 kB] 5307s Get:6 http://ftpmaster.internal/ubuntu jammy/main amd64 libgmp10 amd64 2:6.2.1+dfsg-3ubuntu1 [250 kB] 5307s Get:7 http://ftpmaster.internal/ubuntu jammy/main amd64 libpcre2-8-0 amd64 10.39-3build1 [220 kB] 5307s Get:8 http://ftpmaster.internal/ubuntu jammy/main amd64 libselinux1 amd64 3.3-1build2 [74.6 kB] 5307s Get:9 http://ftpmaster.internal/ubuntu jammy/main amd64 libbz2-1.0 amd64 1.0.8-5build1 [34.4 kB] 5307s Get:10 http://ftpmaster.internal/ubuntu jammy/main amd64 liblzma5 amd64 5.2.5-2ubuntu1 [99.5 kB] 5307s Get:11 http://ftpmaster.internal/ubuntu jammy/main amd64 libzstd1 amd64 1.4.8+dfsg-3build1 [324 kB] 5307s Get:12 http://ftpmaster.internal/ubuntu jammy/main amd64 zlib1g amd64 1:1.2.11.dfsg-2ubuntu9 [58.2 kB] 5307s Get:13 http://ftpmaster.internal/ubuntu jammy/main amd64 tar amd64 1.34+dfsg-1build3 [295 kB] 5307s Get:14 http://ftpmaster.internal/ubuntu jammy/main amd64 dpkg amd64 1.21.1ubuntu2 [1240 kB] 5307s Get:15 http://ftpmaster.internal/ubuntu jammy/main amd64 perl-base amd64 5.34.0-3ubuntu1 [1762 kB] 5307s Get:16 http://ftpmaster.internal/ubuntu jammy/main amd64 debconf all 1.5.79ubuntu1 [126 kB] 5307s Get:17 http://ftpmaster.internal/ubuntu jammy/main amd64 sensible-utils all 0.0.17 [20.1 kB] 5307s Get:18 http://ftpmaster.internal/ubuntu jammy/main amd64 ucf all 3.0043 [56.1 kB] 5307s Get:19 http://ftpmaster.internal/ubuntu jammy/main amd64 libdebuginfod-common all 0.186-1build1 [7878 B] 5307s Get:20 http://ftpmaster.internal/ubuntu jammy/main amd64 libblkid1 amd64 2.37.2-4ubuntu3 [104 kB] 5307s Get:21 http://ftpmaster.internal/ubuntu jammy/main amd64 libcom-err2 amd64 1.46.5-2ubuntu1 [9846 B] 5307s Get:22 http://ftpmaster.internal/ubuntu jammy/main amd64 libdb5.3 amd64 5.3.28+dfsg1-0.8ubuntu3 [722 kB] 5307s Get:23 http://ftpmaster.internal/ubuntu jammy/main amd64 libkrb5support0 amd64 1.19.2-2 [32.4 kB] 5307s Get:24 http://ftpmaster.internal/ubuntu jammy/main amd64 libk5crypto3 amd64 1.19.2-2 [86.4 kB] 5307s Get:25 http://ftpmaster.internal/ubuntu jammy/main amd64 libkeyutils1 amd64 1.6.1-2ubuntu3 [10.4 kB] 5307s Get:26 http://ftpmaster.internal/ubuntu jammy/main amd64 libssl3 amd64 3.0.2-0ubuntu1 [1899 kB] 5307s Get:27 http://ftpmaster.internal/ubuntu jammy/main amd64 libkrb5-3 amd64 1.19.2-2 [356 kB] 5307s Get:28 http://ftpmaster.internal/ubuntu jammy/main amd64 libgssapi-krb5-2 amd64 1.19.2-2 [144 kB] 5307s Get:29 http://ftpmaster.internal/ubuntu jammy/main amd64 libmount1 amd64 2.37.2-4ubuntu3 [122 kB] 5307s Get:30 http://ftpmaster.internal/ubuntu jammy/main amd64 libtinfo6 amd64 6.3-2 [104 kB] 5307s Get:31 http://ftpmaster.internal/ubuntu jammy/main amd64 libncursesw6 amd64 6.3-2 [149 kB] 5307s Get:32 http://ftpmaster.internal/ubuntu jammy/main amd64 libtirpc-common all 1.3.2-2build1 [7616 B] 5307s Get:33 http://ftpmaster.internal/ubuntu jammy/main amd64 libtirpc3 amd64 1.3.2-2build1 [81.1 kB] 5307s Get:34 http://ftpmaster.internal/ubuntu jammy/main amd64 libnsl2 amd64 1.3.0-2build2 [42.3 kB] 5307s Get:35 http://ftpmaster.internal/ubuntu jammy/main amd64 libpcre3 amd64 2:8.39-13build5 [245 kB] 5307s Get:36 http://ftpmaster.internal/ubuntu jammy/main amd64 libuuid1 amd64 2.37.2-4ubuntu3 [24.2 kB] 5307s Get:37 http://ftpmaster.internal/ubuntu jammy/main amd64 libelf1 amd64 0.186-1build1 [51.0 kB] 5307s Get:38 http://ftpmaster.internal/ubuntu jammy/main amd64 libexpat1 amd64 2.4.7-1 [90.7 kB] 5307s Get:39 http://ftpmaster.internal/ubuntu jammy/main amd64 libffi8 amd64 3.4.2-4 [22.3 kB] 5307s Get:40 http://ftpmaster.internal/ubuntu jammy/main amd64 libglib2.0-0 amd64 2.72.1-1 [1460 kB] 5307s Get:41 http://ftpmaster.internal/ubuntu jammy/main amd64 libnettle8 amd64 3.7.3-1build2 [159 kB] 5307s Get:42 http://ftpmaster.internal/ubuntu jammy/main amd64 libhogweed6 amd64 3.7.3-1build2 [199 kB] 5307s Get:43 http://ftpmaster.internal/ubuntu jammy/main amd64 libunistring2 amd64 1.0-1 [554 kB] 5307s Get:44 http://ftpmaster.internal/ubuntu jammy/main amd64 libidn2-0 amd64 2.3.2-2build1 [66.4 kB] 5307s Get:45 http://ftpmaster.internal/ubuntu jammy/main amd64 libp11-kit0 amd64 0.24.0-6build1 [252 kB] 5307s Get:46 http://ftpmaster.internal/ubuntu jammy/main amd64 libtasn1-6 amd64 4.18.0-4build1 [42.9 kB] 5307s Get:47 http://ftpmaster.internal/ubuntu jammy/main amd64 libgnutls30 amd64 3.7.3-4ubuntu1 [968 kB] 5307s Get:48 http://ftpmaster.internal/ubuntu jammy/main amd64 libstdc++6 amd64 12-20220319-1ubuntu1 [699 kB] 5307s Get:49 http://ftpmaster.internal/ubuntu jammy/main amd64 libicu70 amd64 70.1-2 [10.6 MB] 5307s Get:50 http://ftpmaster.internal/ubuntu jammy/main amd64 libmpdec3 amd64 2.5.1-2build2 [86.8 kB] 5307s Get:51 http://ftpmaster.internal/ubuntu jammy/main amd64 libpython3.10-minimal amd64 3.10.4-3 [809 kB] 5307s Get:52 http://ftpmaster.internal/ubuntu jammy/main amd64 media-types all 7.0.0 [25.5 kB] 5307s Get:53 http://ftpmaster.internal/ubuntu jammy/main amd64 readline-common all 8.1.2-1 [53.5 kB] 5307s Get:54 http://ftpmaster.internal/ubuntu jammy/main amd64 libreadline8 amd64 8.1.2-1 [153 kB] 5307s Get:55 http://ftpmaster.internal/ubuntu jammy/main amd64 libsqlite3-0 amd64 3.37.2-2 [643 kB] 5307s Get:56 http://ftpmaster.internal/ubuntu jammy/main amd64 libpython3.10-stdlib amd64 3.10.4-3 [1830 kB] 5307s Get:57 http://ftpmaster.internal/ubuntu jammy/main amd64 libxxhash0 amd64 0.8.1-1 [27.3 kB] 5307s Get:58 http://ftpmaster.internal/ubuntu jammy/main amd64 libnghttp2-14 amd64 1.43.0-1build3 [76.3 kB] 5307s Get:59 http://ftpmaster.internal/ubuntu jammy/main amd64 libpsl5 amd64 0.21.0-1.2build2 [58.4 kB] 5307s Get:60 http://ftpmaster.internal/ubuntu jammy/main amd64 libdw1 amd64 0.186-1build1 [250 kB] 5307s Get:61 http://ftpmaster.internal/ubuntu jammy/main amd64 libbabeltrace1 amd64 1.5.8-2build1 [160 kB] 5307s Get:62 http://ftpmaster.internal/ubuntu jammy/main amd64 libbrotli1 amd64 1.0.9-2build6 [315 kB] 5307s Get:63 http://ftpmaster.internal/ubuntu jammy/main amd64 libsasl2-modules-db amd64 2.1.27+dfsg2-3ubuntu1 [20.8 kB] 5307s Get:64 http://ftpmaster.internal/ubuntu jammy/main amd64 libsasl2-2 amd64 2.1.27+dfsg2-3ubuntu1 [53.9 kB] 5307s Get:65 http://ftpmaster.internal/ubuntu jammy/main amd64 libldap-2.5-0 amd64 2.5.11+dfsg-1~exp1ubuntu3 [184 kB] 5307s Get:66 http://ftpmaster.internal/ubuntu jammy/main amd64 librtmp1 amd64 2.4+20151223.gitfa8646d.1-2build4 [58.2 kB] 5307s Get:67 http://ftpmaster.internal/ubuntu jammy/main amd64 libssh-4 amd64 0.9.6-2build1 [184 kB] 5307s Get:68 http://ftpmaster.internal/ubuntu jammy/main amd64 libcurl3-gnutls amd64 7.81.0-1 [282 kB] 5307s Get:69 http://ftpmaster.internal/ubuntu jammy/main amd64 libdebuginfod1 amd64 0.186-1build1 [12.7 kB] 5307s Get:70 http://ftpmaster.internal/ubuntu jammy/main amd64 libipt2 amd64 2.0.5-1 [46.4 kB] 5307s Get:71 http://ftpmaster.internal/ubuntu jammy/main amd64 libmpfr6 amd64 4.1.0-3build3 [1425 kB] 5307s Get:72 http://ftpmaster.internal/ubuntu jammy/main amd64 libpython3.10 amd64 3.10.4-3 [1951 kB] 5307s Get:73 http://ftpmaster.internal/ubuntu jammy/main amd64 libsource-highlight-common all 3.1.9-4.1build2 [64.5 kB] 5307s Get:74 http://ftpmaster.internal/ubuntu jammy/main amd64 libboost-regex1.74.0 amd64 1.74.0-14ubuntu3 [511 kB] 5307s Get:75 http://ftpmaster.internal/ubuntu jammy/main amd64 libsource-highlight4v5 amd64 3.1.9-4.1build2 [207 kB] 5307s Get:76 http://ftpmaster.internal/ubuntu jammy/main amd64 gdb amd64 12.0.90-0ubuntu1 [3930 kB] 5307s Fetched 37.5 MB in 0s (0 B/s) 5307s Extracting downloaded debs... 5307s dynamically loaded /usr/lib/x86_64-linux-gnu/libc.so.6 needs package libc6, queueing 5307s dynamically loaded /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 needs package libc6, queueing 5307s Installing extra package coreutils to get ExecutablePath 5307s Ign 5307s Ign 5307s Ign 5307s Ign 5307s Ign 5307s Ign 5307s Ign 5307s Ign 5307s Ign 5307s Ign 5307s Err 5307s Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::3ba). - connect (101: Network is unreachable) Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::f3). - connect (101: Network is unreachable) Could not connect to launchpad.net:443 (185.125.189.223), connection timed out Could not connect to launchpad.net:443 (185.125.189.222), connection timed out 5307s Fetched 0 B in 6s (0 B/s) 5307s ----------------------------- Captured stderr call ----------------------------- 5307s /usr/lib/python3/dist-packages/apt/cache.py:562: Warning: W:Download is performed unsandboxed as root as file '/tmp/tmpjqleor2b/cache/Ubuntu 22.04/apt/var/lib/apt/lists/partial/ftpmaster.internal_ubuntu_dists_jammy_InRelease' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied) 5307s res = self._cache.update(fetch_progress, slist, pulse_interval) 5307s ERROR: Package download error, try again later: Failed to fetch https://launchpad.net/ubuntu/%2barchive/primary/%2bfiles/coreutils-dbgsym_8.32-4.1ubuntu1_amd64.ddeb Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::3ba). - connect (101: Network is unreachable) Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::f3). - connect (101: Network is unreachable) Could not connect to launchpad.net:443 (185.125.189.223), connection timed out Could not connect to launchpad.net:443 (185.125.189.222), connection timed out 5307s 5307s ________________ TestApportValgrind.test_sandbox_cache_options _________________ 5307s 5307s self = 5307s 5307s @unittest.skipIf(MEM_TOTAL_MiB < 2000, f"{MEM_TOTAL_MiB} MiB is not enough memory") 5307s def test_sandbox_cache_options(self): 5307s """apport-valgrind creates a user specified sandbox and cache""" 5307s sandbox = os.path.join(self.workdir, "test-sandbox") 5307s cache = os.path.join(self.workdir, "test-cache") 5307s 5307s cmd = [ 5307s "apport-valgrind", 5307s "--sandbox-dir", 5307s sandbox, 5307s "--cache", 5307s cache, 5307s "/usr/bin/true", 5307s ] 5307s > subprocess.check_call(cmd, env=self.env) 5307s 5307s tests/system/test_apport_valgrind.py:58: 5307s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 5307s 5307s popenargs = (['apport-valgrind', '--sandbox-dir', '/tmp/tmpvl4gb5vl/test-sandbox', '--cache', '/tmp/tmpvl4gb5vl/test-cache', '/usr/bin/true'],) 5307s kwargs = {'env': {'ADTTMP': '/tmp/autopkgtest.BpvbPC/autopkgtest_tmp', 'ADT_ARTIFACTS': '/tmp/autopkgtest.BpvbPC/system-tests-artifacts', 'ADT_NORMAL_USER': 'ubuntu', 'ADT_TEST_TRIGGERS': 'systemd/255.4-1ubuntu8.10', ...}} 5307s retcode = 1 5307s cmd = ['apport-valgrind', '--sandbox-dir', '/tmp/tmpvl4gb5vl/test-sandbox', '--cache', '/tmp/tmpvl4gb5vl/test-cache', '/usr/bin/true'] 5307s 5307s def check_call(*popenargs, **kwargs): 5307s """Run command with arguments. Wait for command to complete. If 5307s the exit code was zero then return, otherwise raise 5307s CalledProcessError. The CalledProcessError object will have the 5307s return code in the returncode attribute. 5307s 5307s The arguments are the same as for the call function. Example: 5307s 5307s check_call(["ls", "-l"]) 5307s """ 5307s retcode = call(*popenargs, **kwargs) 5307s if retcode: 5307s cmd = kwargs.get("args") 5307s if cmd is None: 5307s cmd = popenargs[0] 5307s > raise CalledProcessError(retcode, cmd) 5307s E subprocess.CalledProcessError: Command '['apport-valgrind', '--sandbox-dir', '/tmp/tmpvl4gb5vl/test-sandbox', '--cache', '/tmp/tmpvl4gb5vl/test-cache', '/usr/bin/true']' returned non-zero exit status 1. 5307s 5307s /usr/lib/python3.12/subprocess.py:413: CalledProcessError 5307s ----------------------------- Captured stderr call ----------------------------- 5307s /usr/lib/python3/dist-packages/apt/cache.py:562: Warning: W:Download is performed unsandboxed as root as file '/tmp/tmpvl4gb5vl/test-cache/system/apt/var/lib/apt/lists/partial/ftpmaster.internal_ubuntu_dists_noble-proposed_InRelease' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied) 5307s res = self._cache.update(fetch_progress, slist, pulse_interval) 5307s ERROR: Package download error, try again later: Failed to fetch https://launchpad.net/ubuntu/%2barchive/primary/%2bfiles/coreutils-dbgsym_9.4-3ubuntu6_amd64.ddeb Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::f3). - connect (101: Network is unreachable) Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::3ba). - connect (101: Network is unreachable) Could not connect to launchpad.net:443 (185.125.189.223), connection timed out Could not connect to launchpad.net:443 (185.125.189.222), connection timed out 5307s Failed to fetch https://launchpad.net/ubuntu/%2barchive/primary/%2bfiles/libacl1-dbgsym_2.3.2-1build1.1_amd64.ddeb Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::f3). - connect (101: Network is unreachable) Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::3ba). - connect (101: Network is unreachable) 5307s Failed to fetch https://launchpad.net/ubuntu/%2barchive/primary/%2bfiles/libattr1-dbgsym_2.5.2-1build1.1_amd64.ddeb Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::f3). - connect (101: Network is unreachable) Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::3ba). - connect (101: Network is unreachable) 5307s Failed to fetch https://launchpad.net/ubuntu/%2barchive/primary/%2bfiles/libgmp10-dbgsym_6.3.0%2bdfsg-2ubuntu6.1_amd64.ddeb Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::f3). - connect (101: Network is unreachable) Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::3ba). - connect (101: Network is unreachable) 5307s Failed to fetch https://launchpad.net/ubuntu/%2barchive/primary/%2bfiles/libidn2-0-dbgsym_2.3.7-2build1.1_amd64.ddeb Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::f3). - connect (101: Network is unreachable) Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::3ba). - connect (101: Network is unreachable) 5307s Failed to fetch https://launchpad.net/ubuntu/%2barchive/primary/%2bfiles/libpcre2-8-0-dbgsym_10.42-4ubuntu2.1_amd64.ddeb Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::f3). - connect (101: Network is unreachable) Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::3ba). - connect (101: Network is unreachable) 5307s Failed to fetch https://launchpad.net/ubuntu/%2barchive/primary/%2bfiles/libselinux1-dbgsym_3.5-2ubuntu2.1_amd64.ddeb Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::f3). - connect (101: Network is unreachable) Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::3ba). - connect (101: Network is unreachable) 5307s Failed to fetch https://launchpad.net/ubuntu/%2barchive/primary/%2bfiles/libssl3t64-dbgsym_3.0.13-0ubuntu3.5_amd64.ddeb Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::f3). - connect (101: Network is unreachable) Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::3ba). - connect (101: Network is unreachable) 5307s Failed to fetch https://launchpad.net/ubuntu/%2barchive/primary/%2bfiles/libunistring5-dbgsym_1.1-2build1.1_amd64.ddeb Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::f3). - connect (101: Network is unreachable) Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::3ba). - connect (101: Network is unreachable) 5307s 5307s 5307s Interrupted while creating sandbox 5307s ____________________ test_install_packages_system[one-line] ____________________ 5307s 5307s self = 5307s rootdir = '/tmp/tmpdtm57n6l/root', configdir = None, release = 'Ubuntu 24.04' 5307s packages = [('coreutils', '9.4-3ubuntu6'), ('tzdata', '1.1')], verbose = False 5307s cache_dir = '/tmp/tmpdtm57n6l/cache', permanent_rootdir = False 5307s architecture = 'amd64', origins = None, install_dbg = True, install_deps = False 5307s 5307s def install_packages( 5307s self, 5307s rootdir, 5307s configdir, 5307s release, 5307s packages, 5307s verbose=False, 5307s cache_dir=None, 5307s permanent_rootdir=False, 5307s architecture=None, 5307s origins=None, 5307s install_dbg=True, 5307s install_deps=False, 5307s ): # pylint: disable=too-many-arguments 5307s # TODO: Split into smaller functions/methods 5307s # pylint: disable=too-many-branches,too-many-locals 5307s # pylint: disable=too-many-nested-blocks,too-many-statements 5307s """Install packages into a sandbox (for apport-retrace). 5307s 5307s In order to work without any special permissions and without touching 5307s the running system, this should only download and unpack packages into 5307s the given root directory, not install them into the system. 5307s 5307s configdir points to a directory with by-release configuration files for 5307s the packaging system; this is completely dependent on the backend 5307s implementation, the only assumption is that this looks into 5307s configdir/release/, so that you can use retracing for multiple 5307s DistroReleases. As a special case, if configdir is None, it uses the 5307s current system configuration, and "release" is ignored. 5307s 5307s release is the value of the report's 'DistroRelease' field. 5307s 5307s packages is a list of ('packagename', 'version') tuples. If the version 5307s is None, it should install the most current available version. 5307s 5307s If cache_dir is given, then the downloaded packages will be stored 5307s there, to speed up subsequent retraces. 5307s 5307s If permanent_rootdir is True, then the sandbox created from the 5307s downloaded packages will be reused, to speed up subsequent retraces. 5307s 5307s If architecture is given, the sandbox will be created with packages of 5307s the given architecture (as specified in a report's "Architecture" 5307s field). If not given it defaults to the host system's architecture. 5307s 5307s If origins is given, the sandbox will be created with apt data sources 5307s for foreign origins. 5307s 5307s If install_deps is True, then the dependencies of packages will also 5307s be installed. 5307s 5307s Return a string with outdated packages, or an empty string if all 5307s packages were installed. 5307s 5307s If something is wrong with the environment (invalid configuration, 5307s package servers down, etc.), this should raise a SystemError with a 5307s meaningful error message. 5307s """ 5307s if not architecture: 5307s architecture = self.get_system_architecture() 5307s if not configdir: 5307s apt_dir = "/etc/apt" 5307s self._current_release_codename = self.get_distro_codename() 5307s else: 5307s # support architecture specific config, fall back to global config 5307s apt_dir = os.path.join(configdir, release) 5307s if architecture != self.get_system_architecture(): 5307s arch_apt_dir = os.path.join(configdir, release, architecture) 5307s arch_old_sources = os.path.join(arch_apt_dir, "sources.list") 5307s arch_sources_dir = os.path.join(arch_apt_dir, "sources.list.d") 5307s if os.path.exists(arch_old_sources) or ( 5307s os.path.exists(arch_sources_dir) and os.listdir(arch_sources_dir) 5307s ): 5307s apt_dir = arch_apt_dir 5307s 5307s # set mirror for get_file_package() 5307s try: 5307s self.set_mirror(self._get_primary_mirror_from_apt_sources(apt_dir)) 5307s except SystemError as error: 5307s apport.logging.warning("cannot determine mirror: %s", str(error)) 5307s 5307s # set current release code name for _distro_release_to_codename 5307s with open( 5307s os.path.join(configdir, release, "codename"), encoding="utf-8" 5307s ) as f: 5307s self._current_release_codename = f.read().strip() 5307s 5307s # create apt sandbox 5307s if cache_dir: 5307s tmp_aptroot = False 5307s if architecture != self.get_system_architecture(): 5307s aptroot_arch = architecture 5307s else: 5307s aptroot_arch = "" 5307s if configdir: 5307s aptroot = os.path.join(cache_dir, release, aptroot_arch, "apt") 5307s else: 5307s aptroot = os.path.join(cache_dir, "system", aptroot_arch, "apt") 5307s if not os.path.isdir(aptroot): 5307s os.makedirs(aptroot) 5307s else: 5307s tmp_aptroot = True 5307s aptroot = tempfile.mkdtemp() 5307s 5307s apt.apt_pkg.config.set("APT::Architecture", architecture) 5307s apt.apt_pkg.config.set("Acquire::Languages", "none") 5307s # directly connect to Launchpad when downloading deb files 5307s apt.apt_pkg.config.set("Acquire::http::Proxy::api.launchpad.net", "DIRECT") 5307s apt.apt_pkg.config.set("Acquire::http::Proxy::launchpad.net", "DIRECT") 5307s 5307s if verbose: 5307s fetchProgress = apt.progress.text.AcquireProgress() 5307s else: 5307s fetchProgress = apt.progress.base.AcquireProgress() 5307s if not tmp_aptroot: 5307s apt_cache = self._sandbox_cache( 5307s aptroot, 5307s apt_dir, 5307s fetchProgress, 5307s self.get_distro_name(), 5307s self._current_release_codename, 5307s origins, 5307s architecture, 5307s ) 5307s else: 5307s self._build_apt_sandbox( 5307s aptroot, 5307s apt_dir, 5307s self.get_distro_name(), 5307s self._current_release_codename, 5307s origins, 5307s ) 5307s apt_cache = apt.Cache(rootdir=os.path.abspath(aptroot)) 5307s try: 5307s apt_cache.update(fetchProgress) 5307s except apt.cache.FetchFailedException as error: 5307s raise SystemError(str(error)) from error 5307s apt_cache.open() 5307s 5307s archivedir = apt.apt_pkg.config.find_dir("Dir::Cache::archives") 5307s 5307s obsolete = "" 5307s 5307s src_records = apt.apt_pkg.SourceRecords() 5307s 5307s # read original package list 5307s pkg_list = os.path.join(rootdir, "packages.txt") 5307s pkg_versions = {} 5307s if os.path.exists(pkg_list): 5307s with open(pkg_list, encoding="utf-8") as f: 5307s for line in f: 5307s line = line.strip() 5307s if not line: 5307s continue 5307s (p, v) = line.split() 5307s pkg_versions[p] = v 5307s 5307s # mark packages for installation 5307s real_pkgs = set() 5307s lp_cache = {} 5307s fetcher = apt.apt_pkg.Acquire(fetchProgress) 5307s # need to keep AcquireFile references 5307s acquire_queue = [] 5307s # add any dependencies to the packages list 5307s if install_deps: 5307s deps = [] 5307s for pkg, ver in packages: 5307s try: 5307s cache_pkg = apt_cache[pkg] 5307s except KeyError: 5307s m = f"package {pkg.replace('%', '%%')} does not exist, ignoring" 5307s obsolete += f"{m}\n" 5307s apport.logging.warning("%s", m) 5307s continue 5307s for dep in cache_pkg.candidate.dependencies: 5307s # the dependency may be satisfied by a different package 5307s if dep[0].name not in apt_cache: 5307s dep[0] = apt_cache.get_providing_packages(dep[0].name)[0] 5307s # the version in dep is the one from pkg's dependencies, 5307s # so use the version from the cache 5307s dep_pkg_vers = apt_cache[dep[0].name].candidate.version 5307s # if the dependency is in the list of packages we don't 5307s # need to look up its dependencies again 5307s if dep[0].name in [pkg[0] for pkg in packages]: 5307s continue 5307s # if the package is already extracted in the sandbox 5307s # because the report needs that package we don't want to 5307s # install a newer version which may cause a CRC mismatch 5307s # with the installed dbg symbols 5307s if dep[0].name in pkg_versions: 5307s inst_version = pkg_versions[dep[0].name] 5307s if self.compare_versions(inst_version, dep_pkg_vers) > -1: 5307s deps.append((dep[0].name, inst_version)) 5307s else: 5307s deps.append((dep[0].name, dep_pkg_vers)) 5307s else: 5307s deps.append((dep[0].name, dep_pkg_vers)) 5307s if dep[0].name not in [pkg[0] for pkg in packages]: 5307s packages.append((dep[0].name, None)) 5307s packages.extend(deps) 5307s 5307s for pkg, ver in packages: 5307s try: 5307s cache_pkg = apt_cache[pkg] 5307s except KeyError: 5307s m = f"package {pkg.replace('%', '%%')} does not exist, ignoring" 5307s obsolete += f"{m}\n" 5307s apport.logging.warning("%s", m) 5307s continue 5307s 5307s # try to select matching version 5307s try: 5307s if ver: 5307s cache_pkg.candidate = cache_pkg.versions[ver] 5307s except KeyError: 5307s (lp_url, sha1sum) = self.get_lp_binary_package( 5307s release, pkg, ver, architecture 5307s ) 5307s if lp_url: 5307s acquire_queue.append( 5307s apt.apt_pkg.AcquireFile( 5307s fetcher, lp_url, hash=f"sha1:{sha1sum}", destdir=archivedir 5307s ) 5307s ) 5307s lp_cache[pkg] = ver 5307s else: 5307s obsolete += ( 5307s f"{pkg} version {ver} required," 5307s f" but {cache_pkg.candidate.version} is available\n" 5307s ) 5307s ver = cache_pkg.candidate.version 5307s 5307s candidate = cache_pkg.candidate 5307s real_pkgs.add(pkg) 5307s 5307s if permanent_rootdir: 5307s virtual_mapping = self._virtual_mapping(aptroot) 5307s # Remember all the virtual packages that this package provides, 5307s # so that if we encounter that virtual package as a 5307s # Conflicts/Replaces later, we know to remove this package from 5307s # the cache. 5307s for p in candidate.provides: 5307s virtual_mapping.setdefault(p, set()).add(pkg) 5307s conflicts = [] 5307s if "Conflicts" in candidate.record: 5307s conflicts += apt.apt_pkg.parse_depends( 5307s candidate.record["Conflicts"] 5307s ) 5307s if "Replaces" in candidate.record: 5307s conflicts += apt.apt_pkg.parse_depends(candidate.record["Replaces"]) 5307s for conflict in conflicts: 5307s # if the package conflicts with itself its wonky e.g. 5307s # gdb in artful 5307s if conflict[0][0] == candidate.package.name: 5307s continue 5307s # apt_pkg.parse_depends needs to handle the or operator, 5307s # but as policy states it is invalid to use that in 5307s # Replaces/Depends, we can safely choose the first value 5307s # here. 5307s conflict = conflict[0] 5307s if apt_cache.is_virtual_package(conflict[0]): 5307s try: 5307s providers = virtual_mapping[conflict[0]] 5307s except KeyError: 5307s # We may not have seen the virtual package that 5307s # this conflicts with, so we can assume it's not 5307s # unpacked into the sandbox. 5307s continue 5307s for p in providers: 5307s # if the candidate package being installed 5307s # conflicts with but also provides a virtual 5307s # package don't act on the candidate e.g. 5307s # libpam-modules and libpam-mkhomedir in artful 5307s if p == candidate.package.name: 5307s continue 5307s debs = os.path.join(archivedir, f"{p}_*.deb") 5307s for path in glob.glob(debs): 5307s ver = self._deb_version(path) 5307s if apt.apt_pkg.check_dep(ver, conflict[2], conflict[1]): 5307s os.unlink(path) 5307s try: 5307s del pkg_versions[p] 5307s except KeyError: 5307s pass 5307s del providers 5307s else: 5307s debs = os.path.join(archivedir, f"{conflict[0]}_*.deb") 5307s for path in glob.glob(debs): 5307s ver = self._deb_version(path) 5307s if apt.apt_pkg.check_dep(ver, conflict[2], conflict[1]): 5307s os.unlink(path) 5307s try: 5307s del pkg_versions[conflict[0]] 5307s except KeyError: 5307s pass 5307s 5307s if candidate.architecture != "all" and install_dbg: 5307s try: 5307s dbg_pkg = f"{pkg}-dbg" 5307s dbg = apt_cache[dbg_pkg] 5307s pkg_found = False 5307s # try to get the same version as pkg 5307s if ver: 5307s try: 5307s dbg.candidate = dbg.versions[ver] 5307s pkg_found = True 5307s except KeyError: 5307s (lp_url, sha1sum) = self.get_lp_binary_package( 5307s release, dbg_pkg, ver, architecture 5307s ) 5307s if lp_url: 5307s acquire_queue.append( 5307s apt.apt_pkg.AcquireFile( 5307s fetcher, 5307s lp_url, 5307s hash=f"sha1:{sha1sum}", 5307s destdir=archivedir, 5307s ) 5307s ) 5307s lp_cache[dbg_pkg] = ver 5307s pkg_found = True 5307s # if it can't be found in Launchpad failover to a 5307s # code path that'll use -dbgsym packages 5307s else: 5307s raise 5307s if not pkg_found: 5307s try: 5307s dbg.candidate = dbg.versions[candidate.version] 5307s except KeyError: 5307s obsolete += ( 5307s f"outdated -dbg package for {pkg}:" 5307s f" package version {ver}" 5307s f" -dbg version {dbg.candidate.version}\n" 5307s ) 5307s real_pkgs.add(dbg_pkg) 5307s except KeyError: 5307s # install all -dbg from the source package; lookup() just 5307s # works from the current list pointer, we always need to 5307s # start from the beginning 5307s src_records.restart() 5307s if src_records.lookup(candidate.source_name): 5307s # ignore transitional packages 5307s # False positive, see 5307s # https://github.com/PyCQA/pylint/issues/7122 5307s # pylint: disable=not-an-iterable 5307s dbgs = [ 5307s p 5307s for p in src_records.binaries 5307s if p.endswith("-dbg") 5307s and p in apt_cache 5307s and "transitional" not in apt_cache[p].candidate.description 5307s ] 5307s # if a specific version of a package was requested 5307s # only install dbg pkgs whose version matches 5307s if ver: 5307s for dbg in dbgs: 5307s if apt_cache[dbg].candidate.version != ver: 5307s dbgs.remove(dbg) 5307s else: 5307s dbgs = [] 5307s if dbgs: 5307s for p in dbgs: 5307s # if the package has already been added to 5307s # real_pkgs don't search for it again 5307s if p in real_pkgs: 5307s continue 5307s pkg_found = False 5307s # prefer the version requested 5307s if ver: 5307s try: 5307s apt_cache[p].candidate = apt_cache[p].versions[ver] 5307s pkg_found = True 5307s except KeyError: 5307s (lp_url, sha1sum) = self.get_lp_binary_package( 5307s release, p, ver, architecture 5307s ) 5307s if lp_url: 5307s acquire_queue.append( 5307s apt.apt_pkg.AcquireFile( 5307s fetcher, 5307s lp_url, 5307s hash=f"sha1:{sha1sum}", 5307s destdir=archivedir, 5307s ) 5307s ) 5307s lp_cache[p] = ver 5307s pkg_found = True 5307s if not pkg_found: 5307s try: 5307s apt_cache[p].candidate = apt_cache[p].versions[ 5307s candidate.version 5307s ] 5307s except KeyError: 5307s # we don't really expect that, but it's 5307s # possible that other binaries have a 5307s # different version 5307s pass 5307s real_pkgs.add(p) 5307s else: 5307s pkg_found = False 5307s dbgsym_pkg = f"{pkg}-dbgsym" 5307s try: 5307s dbgsym = apt_cache[dbgsym_pkg] 5307s real_pkgs.add(dbgsym_pkg) 5307s # prefer the version requested 5307s if ver: 5307s try: 5307s dbgsym.candidate = dbgsym.versions[ver] 5307s pkg_found = True 5307s except KeyError: 5307s (lp_url, sha1sum) = self.get_lp_binary_package( 5307s release, dbgsym_pkg, ver, architecture 5307s ) 5307s if lp_url: 5307s acquire_queue.append( 5307s apt.apt_pkg.AcquireFile( 5307s fetcher, 5307s lp_url, 5307s hash=f"sha1:{sha1sum}", 5307s destdir=archivedir, 5307s ) 5307s ) 5307s lp_cache[dbgsym_pkg] = ver 5307s pkg_found = True 5307s if not pkg_found: 5307s try: 5307s dbgsym.candidate = dbgsym.versions[ 5307s candidate.version 5307s ] 5307s except KeyError: 5307s obsolete += ( 5307s f"outdated debug symbol package" 5307s f" for {pkg}: package version" 5307s f" {candidate.version}" 5307s f" dbgsym version" 5307s f" {dbgsym.candidate.version}\n" 5307s ) 5307s 5307s except KeyError: 5307s if ver: 5307s (lp_url, sha1sum) = self.get_lp_binary_package( 5307s release, dbgsym_pkg, ver, architecture 5307s ) 5307s if lp_url: 5307s acquire_queue.append( 5307s apt.apt_pkg.AcquireFile( 5307s fetcher, 5307s lp_url, 5307s hash=f"sha1:{sha1sum}", 5307s destdir=archivedir, 5307s ) 5307s ) 5307s lp_cache[dbgsym_pkg] = ver 5307s pkg_found = True 5307s if not pkg_found: 5307s obsolete += f"no debug symbol package found for {pkg}\n" 5307s 5307s # unpack packages, weed out the ones that are already installed (for 5307s # permanent sandboxes) 5307s logger = logging.getLogger(__name__) 5307s requested_pkgs = dict(packages) 5307s for p in real_pkgs.copy(): 5307s if p in requested_pkgs: 5307s if requested_pkgs[p] is None: 5307s # We already have the latest version of this package 5307s if pkg_versions.get(p) == apt_cache[p].candidate.version: 5307s logger.debug( 5307s "Removing %s which is already the right version", p 5307s ) 5307s real_pkgs.remove(p) 5307s else: 5307s logger.debug( 5307s "Installing %s version %s", 5307s p, 5307s apt_cache[p].candidate.version, 5307s ) 5307s apt_cache[p].mark_install(False, False) 5307s elif pkg_versions.get(p) != requested_pkgs[p]: 5307s logger.debug( 5307s "Installing %s version %s", p, apt_cache[p].candidate.version 5307s ) 5307s apt_cache[p].mark_install(False, False) 5307s elif pkg_versions.get(p) != apt_cache[p].candidate.version: 5307s logger.debug( 5307s "Installing %s version %s", p, apt_cache[p].candidate.version 5307s ) 5307s apt_cache[p].mark_install(False, False) 5307s else: 5307s logger.debug("Removing %s which is already the right version", p) 5307s real_pkgs.remove(p) 5307s elif pkg_versions.get(p) != apt_cache[p].candidate.version: 5307s logger.debug("Installing %s", p) 5307s apt_cache[p].mark_install(False, False) 5307s else: 5307s logger.debug("Removing %s which is already the right version", p) 5307s real_pkgs.remove(p) 5307s 5307s last_written = time.time() 5307s # fetch packages 5307s try: 5307s > apt_cache.fetch_archives(fetcher=fetcher) 5307s 5307s /usr/lib/python3/dist-packages/apport/packaging_impl/apt_dpkg.py:1321: 5307s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 5307s /usr/lib/python3/dist-packages/apt/cache.py:475: in fetch_archives 5307s return self._fetch_archives( 5307s /usr/lib/python3/dist-packages/apt/cache.py:443: in _fetch_archives 5307s return self._run_fetcher(fetcher, allow_unauthenticated) 5307s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 5307s 5307s self = 5307s fetcher = 5307s allow_unauthenticated = True 5307s 5307s def _run_fetcher( 5307s self, fetcher: apt_pkg.Acquire, allow_unauthenticated: bool | None 5307s ) -> int: 5307s if allow_unauthenticated is None: 5307s allow_unauthenticated = apt_pkg.config.find_b( 5307s "APT::Get::" "AllowUnauthenticated", False 5307s ) 5307s 5307s untrusted = [item for item in fetcher.items if not item.is_trusted] 5307s if untrusted and not allow_unauthenticated: 5307s raise UntrustedException( 5307s "Untrusted packages:\n%s" % "\n".join(i.desc_uri for i in untrusted) 5307s ) 5307s 5307s # do the actual fetching 5307s res = fetcher.run() 5307s 5307s # now check the result (this is the code from apt-get.cc) 5307s failed = False 5307s err_msg = "" 5307s for item in fetcher.items: 5307s if item.status == item.STAT_DONE: 5307s continue 5307s if item.STAT_IDLE: 5307s continue 5307s err_msg += f"Failed to fetch {item.desc_uri} {item.error_text}\n" 5307s failed = True 5307s 5307s # we raise a exception if the download failed or it was cancelt 5307s if res == fetcher.RESULT_CANCELLED: 5307s raise FetchCancelledException(err_msg) 5307s elif failed: 5307s > raise FetchFailedException(err_msg) 5307s E apt.cache.FetchFailedException: Failed to fetch https://launchpad.net/ubuntu/%2barchive/primary/%2bfiles/coreutils-dbgsym_9.4-3ubuntu6_amd64.ddeb Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::f3). - connect (101: Network is unreachable) Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::3ba). - connect (101: Network is unreachable) Could not connect to launchpad.net:443 (185.125.189.222), connection timed out Could not connect to launchpad.net:443 (185.125.189.223), connection timed out 5307s 5307s /usr/lib/python3/dist-packages/apt/cache.py:424: FetchFailedException 5307s 5307s During handling of the above exception, another exception occurred: 5307s 5307s cachedir = '/tmp/tmpdtm57n6l/cache', workdir = '/tmp/tmpdtm57n6l' 5307s rootdir = '/tmp/tmpdtm57n6l/root', apt_style = 'one-line' 5307s 5307s @pytest.mark.skipif(not has_internet(), reason="online test") 5307s def test_install_packages_system(cachedir, workdir, rootdir, apt_style): 5307s # pylint: disable=unused-argument 5307s """install_packages() with system configuration""" 5307s # trigger an unrelated package query here to get the cache set up, 5307s # reproducing an install failure when the internal caches are not 5307s # reset properly 5307s impl.get_version("dash") 5307s 5307s release = " ".join(impl.get_os_version()) 5307s cachedir = os.path.join(workdir, "cache") 5307s rootdir = os.path.join(workdir, "root") 5307s 5307s > result = impl.install_packages( 5307s rootdir, 5307s None, 5307s release, 5307s [("coreutils", impl.get_version("coreutils")), ("tzdata", "1.1")], 5307s False, 5307s cachedir, 5307s ) 5307s 5307s tests/system/test_packaging_apt_dpkg.py:316: 5307s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 5307s 5307s self = 5307s rootdir = '/tmp/tmpdtm57n6l/root', configdir = None, release = 'Ubuntu 24.04' 5307s packages = [('coreutils', '9.4-3ubuntu6'), ('tzdata', '1.1')], verbose = False 5307s cache_dir = '/tmp/tmpdtm57n6l/cache', permanent_rootdir = False 5307s architecture = 'amd64', origins = None, install_dbg = True, install_deps = False 5307s 5307s def install_packages( 5307s self, 5307s rootdir, 5307s configdir, 5307s release, 5307s packages, 5307s verbose=False, 5307s cache_dir=None, 5307s permanent_rootdir=False, 5307s architecture=None, 5307s origins=None, 5307s install_dbg=True, 5307s install_deps=False, 5307s ): # pylint: disable=too-many-arguments 5307s # TODO: Split into smaller functions/methods 5307s # pylint: disable=too-many-branches,too-many-locals 5307s # pylint: disable=too-many-nested-blocks,too-many-statements 5307s """Install packages into a sandbox (for apport-retrace). 5307s 5307s In order to work without any special permissions and without touching 5307s the running system, this should only download and unpack packages into 5307s the given root directory, not install them into the system. 5307s 5307s configdir points to a directory with by-release configuration files for 5307s the packaging system; this is completely dependent on the backend 5307s implementation, the only assumption is that this looks into 5307s configdir/release/, so that you can use retracing for multiple 5307s DistroReleases. As a special case, if configdir is None, it uses the 5307s current system configuration, and "release" is ignored. 5307s 5307s release is the value of the report's 'DistroRelease' field. 5307s 5307s packages is a list of ('packagename', 'version') tuples. If the version 5307s is None, it should install the most current available version. 5307s 5307s If cache_dir is given, then the downloaded packages will be stored 5307s there, to speed up subsequent retraces. 5307s 5307s If permanent_rootdir is True, then the sandbox created from the 5307s downloaded packages will be reused, to speed up subsequent retraces. 5307s 5307s If architecture is given, the sandbox will be created with packages of 5307s the given architecture (as specified in a report's "Architecture" 5307s field). If not given it defaults to the host system's architecture. 5307s 5307s If origins is given, the sandbox will be created with apt data sources 5307s for foreign origins. 5307s 5307s If install_deps is True, then the dependencies of packages will also 5307s be installed. 5307s 5307s Return a string with outdated packages, or an empty string if all 5307s packages were installed. 5307s 5307s If something is wrong with the environment (invalid configuration, 5307s package servers down, etc.), this should raise a SystemError with a 5307s meaningful error message. 5307s """ 5307s if not architecture: 5307s architecture = self.get_system_architecture() 5307s if not configdir: 5307s apt_dir = "/etc/apt" 5307s self._current_release_codename = self.get_distro_codename() 5307s else: 5307s # support architecture specific config, fall back to global config 5307s apt_dir = os.path.join(configdir, release) 5307s if architecture != self.get_system_architecture(): 5307s arch_apt_dir = os.path.join(configdir, release, architecture) 5307s arch_old_sources = os.path.join(arch_apt_dir, "sources.list") 5307s arch_sources_dir = os.path.join(arch_apt_dir, "sources.list.d") 5307s if os.path.exists(arch_old_sources) or ( 5307s os.path.exists(arch_sources_dir) and os.listdir(arch_sources_dir) 5307s ): 5307s apt_dir = arch_apt_dir 5307s 5307s # set mirror for get_file_package() 5307s try: 5307s self.set_mirror(self._get_primary_mirror_from_apt_sources(apt_dir)) 5307s except SystemError as error: 5307s apport.logging.warning("cannot determine mirror: %s", str(error)) 5307s 5307s # set current release code name for _distro_release_to_codename 5307s with open( 5307s os.path.join(configdir, release, "codename"), encoding="utf-8" 5307s ) as f: 5307s self._current_release_codename = f.read().strip() 5307s 5307s # create apt sandbox 5307s if cache_dir: 5307s tmp_aptroot = False 5307s if architecture != self.get_system_architecture(): 5307s aptroot_arch = architecture 5307s else: 5307s aptroot_arch = "" 5307s if configdir: 5307s aptroot = os.path.join(cache_dir, release, aptroot_arch, "apt") 5307s else: 5307s aptroot = os.path.join(cache_dir, "system", aptroot_arch, "apt") 5307s if not os.path.isdir(aptroot): 5307s os.makedirs(aptroot) 5307s else: 5307s tmp_aptroot = True 5307s aptroot = tempfile.mkdtemp() 5307s 5307s apt.apt_pkg.config.set("APT::Architecture", architecture) 5307s apt.apt_pkg.config.set("Acquire::Languages", "none") 5307s # directly connect to Launchpad when downloading deb files 5307s apt.apt_pkg.config.set("Acquire::http::Proxy::api.launchpad.net", "DIRECT") 5307s apt.apt_pkg.config.set("Acquire::http::Proxy::launchpad.net", "DIRECT") 5307s 5307s if verbose: 5307s fetchProgress = apt.progress.text.AcquireProgress() 5307s else: 5307s fetchProgress = apt.progress.base.AcquireProgress() 5307s if not tmp_aptroot: 5307s apt_cache = self._sandbox_cache( 5307s aptroot, 5307s apt_dir, 5307s fetchProgress, 5307s self.get_distro_name(), 5307s self._current_release_codename, 5307s origins, 5307s architecture, 5307s ) 5307s else: 5307s self._build_apt_sandbox( 5307s aptroot, 5307s apt_dir, 5307s self.get_distro_name(), 5307s self._current_release_codename, 5307s origins, 5307s ) 5307s apt_cache = apt.Cache(rootdir=os.path.abspath(aptroot)) 5307s try: 5307s apt_cache.update(fetchProgress) 5307s except apt.cache.FetchFailedException as error: 5307s raise SystemError(str(error)) from error 5307s apt_cache.open() 5307s 5307s archivedir = apt.apt_pkg.config.find_dir("Dir::Cache::archives") 5307s 5307s obsolete = "" 5307s 5307s src_records = apt.apt_pkg.SourceRecords() 5307s 5307s # read original package list 5307s pkg_list = os.path.join(rootdir, "packages.txt") 5307s pkg_versions = {} 5307s if os.path.exists(pkg_list): 5307s with open(pkg_list, encoding="utf-8") as f: 5307s for line in f: 5307s line = line.strip() 5307s if not line: 5307s continue 5307s (p, v) = line.split() 5307s pkg_versions[p] = v 5307s 5307s # mark packages for installation 5307s real_pkgs = set() 5307s lp_cache = {} 5307s fetcher = apt.apt_pkg.Acquire(fetchProgress) 5307s # need to keep AcquireFile references 5307s acquire_queue = [] 5307s # add any dependencies to the packages list 5307s if install_deps: 5307s deps = [] 5307s for pkg, ver in packages: 5307s try: 5307s cache_pkg = apt_cache[pkg] 5307s except KeyError: 5307s m = f"package {pkg.replace('%', '%%')} does not exist, ignoring" 5307s obsolete += f"{m}\n" 5307s apport.logging.warning("%s", m) 5307s continue 5307s for dep in cache_pkg.candidate.dependencies: 5307s # the dependency may be satisfied by a different package 5307s if dep[0].name not in apt_cache: 5307s dep[0] = apt_cache.get_providing_packages(dep[0].name)[0] 5307s # the version in dep is the one from pkg's dependencies, 5307s # so use the version from the cache 5307s dep_pkg_vers = apt_cache[dep[0].name].candidate.version 5307s # if the dependency is in the list of packages we don't 5307s # need to look up its dependencies again 5307s if dep[0].name in [pkg[0] for pkg in packages]: 5307s continue 5307s # if the package is already extracted in the sandbox 5307s # because the report needs that package we don't want to 5307s # install a newer version which may cause a CRC mismatch 5307s # with the installed dbg symbols 5307s if dep[0].name in pkg_versions: 5307s inst_version = pkg_versions[dep[0].name] 5307s if self.compare_versions(inst_version, dep_pkg_vers) > -1: 5307s deps.append((dep[0].name, inst_version)) 5307s else: 5307s deps.append((dep[0].name, dep_pkg_vers)) 5307s else: 5307s deps.append((dep[0].name, dep_pkg_vers)) 5307s if dep[0].name not in [pkg[0] for pkg in packages]: 5307s packages.append((dep[0].name, None)) 5307s packages.extend(deps) 5307s 5307s for pkg, ver in packages: 5307s try: 5307s cache_pkg = apt_cache[pkg] 5307s except KeyError: 5307s m = f"package {pkg.replace('%', '%%')} does not exist, ignoring" 5307s obsolete += f"{m}\n" 5307s apport.logging.warning("%s", m) 5307s continue 5307s 5307s # try to select matching version 5307s try: 5307s if ver: 5307s cache_pkg.candidate = cache_pkg.versions[ver] 5307s except KeyError: 5307s (lp_url, sha1sum) = self.get_lp_binary_package( 5307s release, pkg, ver, architecture 5307s ) 5307s if lp_url: 5307s acquire_queue.append( 5307s apt.apt_pkg.AcquireFile( 5307s fetcher, lp_url, hash=f"sha1:{sha1sum}", destdir=archivedir 5307s ) 5307s ) 5307s lp_cache[pkg] = ver 5307s else: 5307s obsolete += ( 5307s f"{pkg} version {ver} required," 5307s f" but {cache_pkg.candidate.version} is available\n" 5307s ) 5307s ver = cache_pkg.candidate.version 5307s 5307s candidate = cache_pkg.candidate 5307s real_pkgs.add(pkg) 5307s 5307s if permanent_rootdir: 5307s virtual_mapping = self._virtual_mapping(aptroot) 5307s # Remember all the virtual packages that this package provides, 5307s # so that if we encounter that virtual package as a 5307s # Conflicts/Replaces later, we know to remove this package from 5307s # the cache. 5307s for p in candidate.provides: 5307s virtual_mapping.setdefault(p, set()).add(pkg) 5307s conflicts = [] 5307s if "Conflicts" in candidate.record: 5307s conflicts += apt.apt_pkg.parse_depends( 5307s candidate.record["Conflicts"] 5307s ) 5307s if "Replaces" in candidate.record: 5307s conflicts += apt.apt_pkg.parse_depends(candidate.record["Replaces"]) 5307s for conflict in conflicts: 5307s # if the package conflicts with itself its wonky e.g. 5307s # gdb in artful 5307s if conflict[0][0] == candidate.package.name: 5307s continue 5307s # apt_pkg.parse_depends needs to handle the or operator, 5307s # but as policy states it is invalid to use that in 5307s # Replaces/Depends, we can safely choose the first value 5307s # here. 5307s conflict = conflict[0] 5307s if apt_cache.is_virtual_package(conflict[0]): 5307s try: 5307s providers = virtual_mapping[conflict[0]] 5307s except KeyError: 5307s # We may not have seen the virtual package that 5307s # this conflicts with, so we can assume it's not 5307s # unpacked into the sandbox. 5307s continue 5307s for p in providers: 5307s # if the candidate package being installed 5307s # conflicts with but also provides a virtual 5307s # package don't act on the candidate e.g. 5307s # libpam-modules and libpam-mkhomedir in artful 5307s if p == candidate.package.name: 5307s continue 5307s debs = os.path.join(archivedir, f"{p}_*.deb") 5307s for path in glob.glob(debs): 5307s ver = self._deb_version(path) 5307s if apt.apt_pkg.check_dep(ver, conflict[2], conflict[1]): 5307s os.unlink(path) 5307s try: 5307s del pkg_versions[p] 5307s except KeyError: 5307s pass 5307s del providers 5307s else: 5307s debs = os.path.join(archivedir, f"{conflict[0]}_*.deb") 5307s for path in glob.glob(debs): 5307s ver = self._deb_version(path) 5307s if apt.apt_pkg.check_dep(ver, conflict[2], conflict[1]): 5307s os.unlink(path) 5307s try: 5307s del pkg_versions[conflict[0]] 5307s except KeyError: 5307s pass 5307s 5307s if candidate.architecture != "all" and install_dbg: 5307s try: 5307s dbg_pkg = f"{pkg}-dbg" 5307s dbg = apt_cache[dbg_pkg] 5307s pkg_found = False 5307s # try to get the same version as pkg 5307s if ver: 5307s try: 5307s dbg.candidate = dbg.versions[ver] 5307s pkg_found = True 5307s except KeyError: 5307s (lp_url, sha1sum) = self.get_lp_binary_package( 5307s release, dbg_pkg, ver, architecture 5307s ) 5307s if lp_url: 5307s acquire_queue.append( 5307s apt.apt_pkg.AcquireFile( 5307s fetcher, 5307s lp_url, 5307s hash=f"sha1:{sha1sum}", 5307s destdir=archivedir, 5307s ) 5307s ) 5307s lp_cache[dbg_pkg] = ver 5307s pkg_found = True 5307s # if it can't be found in Launchpad failover to a 5307s # code path that'll use -dbgsym packages 5307s else: 5307s raise 5307s if not pkg_found: 5307s try: 5307s dbg.candidate = dbg.versions[candidate.version] 5307s except KeyError: 5307s obsolete += ( 5307s f"outdated -dbg package for {pkg}:" 5307s f" package version {ver}" 5307s f" -dbg version {dbg.candidate.version}\n" 5307s ) 5307s real_pkgs.add(dbg_pkg) 5307s except KeyError: 5307s # install all -dbg from the source package; lookup() just 5307s # works from the current list pointer, we always need to 5307s # start from the beginning 5307s src_records.restart() 5307s if src_records.lookup(candidate.source_name): 5307s # ignore transitional packages 5307s # False positive, see 5307s # https://github.com/PyCQA/pylint/issues/7122 5307s # pylint: disable=not-an-iterable 5307s dbgs = [ 5307s p 5307s for p in src_records.binaries 5307s if p.endswith("-dbg") 5307s and p in apt_cache 5307s and "transitional" not in apt_cache[p].candidate.description 5307s ] 5307s # if a specific version of a package was requested 5307s # only install dbg pkgs whose version matches 5307s if ver: 5307s for dbg in dbgs: 5307s if apt_cache[dbg].candidate.version != ver: 5307s dbgs.remove(dbg) 5307s else: 5307s dbgs = [] 5307s if dbgs: 5307s for p in dbgs: 5307s # if the package has already been added to 5307s # real_pkgs don't search for it again 5307s if p in real_pkgs: 5307s continue 5307s pkg_found = False 5307s # prefer the version requested 5307s if ver: 5307s try: 5307s apt_cache[p].candidate = apt_cache[p].versions[ver] 5307s pkg_found = True 5307s except KeyError: 5307s (lp_url, sha1sum) = self.get_lp_binary_package( 5307s release, p, ver, architecture 5307s ) 5307s if lp_url: 5307s acquire_queue.append( 5307s apt.apt_pkg.AcquireFile( 5307s fetcher, 5307s lp_url, 5307s hash=f"sha1:{sha1sum}", 5307s destdir=archivedir, 5307s ) 5307s ) 5307s lp_cache[p] = ver 5307s pkg_found = True 5307s if not pkg_found: 5307s try: 5307s apt_cache[p].candidate = apt_cache[p].versions[ 5307s candidate.version 5307s ] 5307s except KeyError: 5307s # we don't really expect that, but it's 5307s # possible that other binaries have a 5307s # different version 5307s pass 5307s real_pkgs.add(p) 5307s else: 5307s pkg_found = False 5307s dbgsym_pkg = f"{pkg}-dbgsym" 5307s try: 5307s dbgsym = apt_cache[dbgsym_pkg] 5307s real_pkgs.add(dbgsym_pkg) 5307s # prefer the version requested 5307s if ver: 5307s try: 5307s dbgsym.candidate = dbgsym.versions[ver] 5307s pkg_found = True 5307s except KeyError: 5307s (lp_url, sha1sum) = self.get_lp_binary_package( 5307s release, dbgsym_pkg, ver, architecture 5307s ) 5307s if lp_url: 5307s acquire_queue.append( 5307s apt.apt_pkg.AcquireFile( 5307s fetcher, 5307s lp_url, 5307s hash=f"sha1:{sha1sum}", 5307s destdir=archivedir, 5307s ) 5307s ) 5307s lp_cache[dbgsym_pkg] = ver 5307s pkg_found = True 5307s if not pkg_found: 5307s try: 5307s dbgsym.candidate = dbgsym.versions[ 5307s candidate.version 5307s ] 5307s except KeyError: 5307s obsolete += ( 5307s f"outdated debug symbol package" 5307s f" for {pkg}: package version" 5307s f" {candidate.version}" 5307s f" dbgsym version" 5307s f" {dbgsym.candidate.version}\n" 5307s ) 5307s 5307s except KeyError: 5307s if ver: 5307s (lp_url, sha1sum) = self.get_lp_binary_package( 5307s release, dbgsym_pkg, ver, architecture 5307s ) 5307s if lp_url: 5307s acquire_queue.append( 5307s apt.apt_pkg.AcquireFile( 5307s fetcher, 5307s lp_url, 5307s hash=f"sha1:{sha1sum}", 5307s destdir=archivedir, 5307s ) 5307s ) 5307s lp_cache[dbgsym_pkg] = ver 5307s pkg_found = True 5307s if not pkg_found: 5307s obsolete += f"no debug symbol package found for {pkg}\n" 5307s 5307s # unpack packages, weed out the ones that are already installed (for 5307s # permanent sandboxes) 5307s logger = logging.getLogger(__name__) 5307s requested_pkgs = dict(packages) 5307s for p in real_pkgs.copy(): 5307s if p in requested_pkgs: 5307s if requested_pkgs[p] is None: 5307s # We already have the latest version of this package 5307s if pkg_versions.get(p) == apt_cache[p].candidate.version: 5307s logger.debug( 5307s "Removing %s which is already the right version", p 5307s ) 5307s real_pkgs.remove(p) 5307s else: 5307s logger.debug( 5307s "Installing %s version %s", 5307s p, 5307s apt_cache[p].candidate.version, 5307s ) 5307s apt_cache[p].mark_install(False, False) 5307s elif pkg_versions.get(p) != requested_pkgs[p]: 5307s logger.debug( 5307s "Installing %s version %s", p, apt_cache[p].candidate.version 5307s ) 5307s apt_cache[p].mark_install(False, False) 5307s elif pkg_versions.get(p) != apt_cache[p].candidate.version: 5307s logger.debug( 5307s "Installing %s version %s", p, apt_cache[p].candidate.version 5307s ) 5307s apt_cache[p].mark_install(False, False) 5307s else: 5307s logger.debug("Removing %s which is already the right version", p) 5307s real_pkgs.remove(p) 5307s elif pkg_versions.get(p) != apt_cache[p].candidate.version: 5307s logger.debug("Installing %s", p) 5307s apt_cache[p].mark_install(False, False) 5307s else: 5307s logger.debug("Removing %s which is already the right version", p) 5307s real_pkgs.remove(p) 5307s 5307s last_written = time.time() 5307s # fetch packages 5307s try: 5307s apt_cache.fetch_archives(fetcher=fetcher) 5307s except apt.cache.FetchFailedException as error: 5307s apport.logging.error( 5307s "Package download error, try again later: %s", str(error) 5307s ) 5307s > sys.exit(1) # transient error 5307s E SystemExit: 1 5307s 5307s /usr/lib/python3/dist-packages/apport/packaging_impl/apt_dpkg.py:1326: SystemExit 5307s ----------------------------- Captured stderr call ----------------------------- 5307s ERROR: Package download error, try again later: Failed to fetch https://launchpad.net/ubuntu/%2barchive/primary/%2bfiles/coreutils-dbgsym_9.4-3ubuntu6_amd64.ddeb Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::f3). - connect (101: Network is unreachable) Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::3ba). - connect (101: Network is unreachable) Could not connect to launchpad.net:443 (185.125.189.222), connection timed out Could not connect to launchpad.net:443 (185.125.189.223), connection timed out 5307s 5307s _____________________ test_install_packages_system[deb822] _____________________ 5307s 5307s self = 5307s rootdir = '/tmp/tmpikrz5vus/root', configdir = None, release = 'Ubuntu 24.04' 5307s packages = [('coreutils', '9.4-3ubuntu6'), ('tzdata', '1.1')], verbose = False 5307s cache_dir = '/tmp/tmpikrz5vus/cache', permanent_rootdir = False 5307s architecture = 'amd64', origins = None, install_dbg = True, install_deps = False 5307s 5307s def install_packages( 5307s self, 5307s rootdir, 5307s configdir, 5307s release, 5307s packages, 5307s verbose=False, 5307s cache_dir=None, 5307s permanent_rootdir=False, 5307s architecture=None, 5307s origins=None, 5307s install_dbg=True, 5307s install_deps=False, 5307s ): # pylint: disable=too-many-arguments 5307s # TODO: Split into smaller functions/methods 5307s # pylint: disable=too-many-branches,too-many-locals 5307s # pylint: disable=too-many-nested-blocks,too-many-statements 5307s """Install packages into a sandbox (for apport-retrace). 5307s 5307s In order to work without any special permissions and without touching 5307s the running system, this should only download and unpack packages into 5307s the given root directory, not install them into the system. 5307s 5307s configdir points to a directory with by-release configuration files for 5307s the packaging system; this is completely dependent on the backend 5307s implementation, the only assumption is that this looks into 5307s configdir/release/, so that you can use retracing for multiple 5307s DistroReleases. As a special case, if configdir is None, it uses the 5307s current system configuration, and "release" is ignored. 5307s 5307s release is the value of the report's 'DistroRelease' field. 5307s 5307s packages is a list of ('packagename', 'version') tuples. If the version 5307s is None, it should install the most current available version. 5307s 5307s If cache_dir is given, then the downloaded packages will be stored 5307s there, to speed up subsequent retraces. 5307s 5307s If permanent_rootdir is True, then the sandbox created from the 5307s downloaded packages will be reused, to speed up subsequent retraces. 5307s 5307s If architecture is given, the sandbox will be created with packages of 5307s the given architecture (as specified in a report's "Architecture" 5307s field). If not given it defaults to the host system's architecture. 5307s 5307s If origins is given, the sandbox will be created with apt data sources 5307s for foreign origins. 5307s 5307s If install_deps is True, then the dependencies of packages will also 5307s be installed. 5307s 5307s Return a string with outdated packages, or an empty string if all 5307s packages were installed. 5307s 5307s If something is wrong with the environment (invalid configuration, 5307s package servers down, etc.), this should raise a SystemError with a 5307s meaningful error message. 5307s """ 5307s if not architecture: 5307s architecture = self.get_system_architecture() 5307s if not configdir: 5307s apt_dir = "/etc/apt" 5307s self._current_release_codename = self.get_distro_codename() 5307s else: 5307s # support architecture specific config, fall back to global config 5307s apt_dir = os.path.join(configdir, release) 5307s if architecture != self.get_system_architecture(): 5307s arch_apt_dir = os.path.join(configdir, release, architecture) 5307s arch_old_sources = os.path.join(arch_apt_dir, "sources.list") 5307s arch_sources_dir = os.path.join(arch_apt_dir, "sources.list.d") 5307s if os.path.exists(arch_old_sources) or ( 5307s os.path.exists(arch_sources_dir) and os.listdir(arch_sources_dir) 5307s ): 5307s apt_dir = arch_apt_dir 5307s 5307s # set mirror for get_file_package() 5307s try: 5307s self.set_mirror(self._get_primary_mirror_from_apt_sources(apt_dir)) 5307s except SystemError as error: 5307s apport.logging.warning("cannot determine mirror: %s", str(error)) 5307s 5307s # set current release code name for _distro_release_to_codename 5307s with open( 5307s os.path.join(configdir, release, "codename"), encoding="utf-8" 5307s ) as f: 5307s self._current_release_codename = f.read().strip() 5307s 5307s # create apt sandbox 5307s if cache_dir: 5307s tmp_aptroot = False 5307s if architecture != self.get_system_architecture(): 5307s aptroot_arch = architecture 5307s else: 5307s aptroot_arch = "" 5307s if configdir: 5307s aptroot = os.path.join(cache_dir, release, aptroot_arch, "apt") 5307s else: 5307s aptroot = os.path.join(cache_dir, "system", aptroot_arch, "apt") 5307s if not os.path.isdir(aptroot): 5307s os.makedirs(aptroot) 5307s else: 5307s tmp_aptroot = True 5307s aptroot = tempfile.mkdtemp() 5307s 5307s apt.apt_pkg.config.set("APT::Architecture", architecture) 5307s apt.apt_pkg.config.set("Acquire::Languages", "none") 5307s # directly connect to Launchpad when downloading deb files 5307s apt.apt_pkg.config.set("Acquire::http::Proxy::api.launchpad.net", "DIRECT") 5307s apt.apt_pkg.config.set("Acquire::http::Proxy::launchpad.net", "DIRECT") 5307s 5307s if verbose: 5307s fetchProgress = apt.progress.text.AcquireProgress() 5307s else: 5307s fetchProgress = apt.progress.base.AcquireProgress() 5307s if not tmp_aptroot: 5307s apt_cache = self._sandbox_cache( 5307s aptroot, 5307s apt_dir, 5307s fetchProgress, 5307s self.get_distro_name(), 5307s self._current_release_codename, 5307s origins, 5307s architecture, 5307s ) 5307s else: 5307s self._build_apt_sandbox( 5307s aptroot, 5307s apt_dir, 5307s self.get_distro_name(), 5307s self._current_release_codename, 5307s origins, 5307s ) 5307s apt_cache = apt.Cache(rootdir=os.path.abspath(aptroot)) 5307s try: 5307s apt_cache.update(fetchProgress) 5307s except apt.cache.FetchFailedException as error: 5307s raise SystemError(str(error)) from error 5307s apt_cache.open() 5307s 5307s archivedir = apt.apt_pkg.config.find_dir("Dir::Cache::archives") 5307s 5307s obsolete = "" 5307s 5307s src_records = apt.apt_pkg.SourceRecords() 5307s 5307s # read original package list 5307s pkg_list = os.path.join(rootdir, "packages.txt") 5307s pkg_versions = {} 5307s if os.path.exists(pkg_list): 5307s with open(pkg_list, encoding="utf-8") as f: 5307s for line in f: 5307s line = line.strip() 5307s if not line: 5307s continue 5307s (p, v) = line.split() 5307s pkg_versions[p] = v 5307s 5307s # mark packages for installation 5307s real_pkgs = set() 5307s lp_cache = {} 5307s fetcher = apt.apt_pkg.Acquire(fetchProgress) 5307s # need to keep AcquireFile references 5307s acquire_queue = [] 5307s # add any dependencies to the packages list 5307s if install_deps: 5307s deps = [] 5307s for pkg, ver in packages: 5307s try: 5307s cache_pkg = apt_cache[pkg] 5307s except KeyError: 5307s m = f"package {pkg.replace('%', '%%')} does not exist, ignoring" 5307s obsolete += f"{m}\n" 5307s apport.logging.warning("%s", m) 5307s continue 5307s for dep in cache_pkg.candidate.dependencies: 5307s # the dependency may be satisfied by a different package 5307s if dep[0].name not in apt_cache: 5307s dep[0] = apt_cache.get_providing_packages(dep[0].name)[0] 5307s # the version in dep is the one from pkg's dependencies, 5307s # so use the version from the cache 5307s dep_pkg_vers = apt_cache[dep[0].name].candidate.version 5307s # if the dependency is in the list of packages we don't 5307s # need to look up its dependencies again 5307s if dep[0].name in [pkg[0] for pkg in packages]: 5307s continue 5307s # if the package is already extracted in the sandbox 5307s # because the report needs that package we don't want to 5307s # install a newer version which may cause a CRC mismatch 5307s # with the installed dbg symbols 5307s if dep[0].name in pkg_versions: 5307s inst_version = pkg_versions[dep[0].name] 5307s if self.compare_versions(inst_version, dep_pkg_vers) > -1: 5307s deps.append((dep[0].name, inst_version)) 5307s else: 5307s deps.append((dep[0].name, dep_pkg_vers)) 5307s else: 5307s deps.append((dep[0].name, dep_pkg_vers)) 5307s if dep[0].name not in [pkg[0] for pkg in packages]: 5307s packages.append((dep[0].name, None)) 5307s packages.extend(deps) 5307s 5307s for pkg, ver in packages: 5307s try: 5307s cache_pkg = apt_cache[pkg] 5307s except KeyError: 5307s m = f"package {pkg.replace('%', '%%')} does not exist, ignoring" 5307s obsolete += f"{m}\n" 5307s apport.logging.warning("%s", m) 5307s continue 5307s 5307s # try to select matching version 5307s try: 5307s if ver: 5307s cache_pkg.candidate = cache_pkg.versions[ver] 5307s except KeyError: 5307s (lp_url, sha1sum) = self.get_lp_binary_package( 5307s release, pkg, ver, architecture 5307s ) 5307s if lp_url: 5307s acquire_queue.append( 5307s apt.apt_pkg.AcquireFile( 5307s fetcher, lp_url, hash=f"sha1:{sha1sum}", destdir=archivedir 5307s ) 5307s ) 5307s lp_cache[pkg] = ver 5307s else: 5307s obsolete += ( 5307s f"{pkg} version {ver} required," 5307s f" but {cache_pkg.candidate.version} is available\n" 5307s ) 5307s ver = cache_pkg.candidate.version 5307s 5307s candidate = cache_pkg.candidate 5307s real_pkgs.add(pkg) 5307s 5307s if permanent_rootdir: 5307s virtual_mapping = self._virtual_mapping(aptroot) 5307s # Remember all the virtual packages that this package provides, 5307s # so that if we encounter that virtual package as a 5307s # Conflicts/Replaces later, we know to remove this package from 5307s # the cache. 5307s for p in candidate.provides: 5307s virtual_mapping.setdefault(p, set()).add(pkg) 5307s conflicts = [] 5307s if "Conflicts" in candidate.record: 5307s conflicts += apt.apt_pkg.parse_depends( 5307s candidate.record["Conflicts"] 5307s ) 5307s if "Replaces" in candidate.record: 5307s conflicts += apt.apt_pkg.parse_depends(candidate.record["Replaces"]) 5307s for conflict in conflicts: 5307s # if the package conflicts with itself its wonky e.g. 5307s # gdb in artful 5307s if conflict[0][0] == candidate.package.name: 5307s continue 5307s # apt_pkg.parse_depends needs to handle the or operator, 5307s # but as policy states it is invalid to use that in 5307s # Replaces/Depends, we can safely choose the first value 5307s # here. 5307s conflict = conflict[0] 5307s if apt_cache.is_virtual_package(conflict[0]): 5307s try: 5307s providers = virtual_mapping[conflict[0]] 5307s except KeyError: 5307s # We may not have seen the virtual package that 5307s # this conflicts with, so we can assume it's not 5307s # unpacked into the sandbox. 5307s continue 5307s for p in providers: 5307s # if the candidate package being installed 5307s # conflicts with but also provides a virtual 5307s # package don't act on the candidate e.g. 5307s # libpam-modules and libpam-mkhomedir in artful 5307s if p == candidate.package.name: 5307s continue 5307s debs = os.path.join(archivedir, f"{p}_*.deb") 5307s for path in glob.glob(debs): 5307s ver = self._deb_version(path) 5307s if apt.apt_pkg.check_dep(ver, conflict[2], conflict[1]): 5307s os.unlink(path) 5307s try: 5307s del pkg_versions[p] 5307s except KeyError: 5307s pass 5307s del providers 5307s else: 5307s debs = os.path.join(archivedir, f"{conflict[0]}_*.deb") 5307s for path in glob.glob(debs): 5307s ver = self._deb_version(path) 5307s if apt.apt_pkg.check_dep(ver, conflict[2], conflict[1]): 5307s os.unlink(path) 5307s try: 5307s del pkg_versions[conflict[0]] 5307s except KeyError: 5307s pass 5307s 5307s if candidate.architecture != "all" and install_dbg: 5307s try: 5307s dbg_pkg = f"{pkg}-dbg" 5307s dbg = apt_cache[dbg_pkg] 5307s pkg_found = False 5307s # try to get the same version as pkg 5307s if ver: 5307s try: 5307s dbg.candidate = dbg.versions[ver] 5307s pkg_found = True 5307s except KeyError: 5307s (lp_url, sha1sum) = self.get_lp_binary_package( 5307s release, dbg_pkg, ver, architecture 5307s ) 5307s if lp_url: 5307s acquire_queue.append( 5307s apt.apt_pkg.AcquireFile( 5307s fetcher, 5307s lp_url, 5307s hash=f"sha1:{sha1sum}", 5307s destdir=archivedir, 5307s ) 5307s ) 5307s lp_cache[dbg_pkg] = ver 5307s pkg_found = True 5307s # if it can't be found in Launchpad failover to a 5307s # code path that'll use -dbgsym packages 5307s else: 5307s raise 5307s if not pkg_found: 5307s try: 5307s dbg.candidate = dbg.versions[candidate.version] 5307s except KeyError: 5307s obsolete += ( 5307s f"outdated -dbg package for {pkg}:" 5307s f" package version {ver}" 5307s f" -dbg version {dbg.candidate.version}\n" 5307s ) 5307s real_pkgs.add(dbg_pkg) 5307s except KeyError: 5307s # install all -dbg from the source package; lookup() just 5307s # works from the current list pointer, we always need to 5307s # start from the beginning 5307s src_records.restart() 5307s if src_records.lookup(candidate.source_name): 5307s # ignore transitional packages 5307s # False positive, see 5307s # https://github.com/PyCQA/pylint/issues/7122 5307s # pylint: disable=not-an-iterable 5307s dbgs = [ 5307s p 5307s for p in src_records.binaries 5307s if p.endswith("-dbg") 5307s and p in apt_cache 5307s and "transitional" not in apt_cache[p].candidate.description 5307s ] 5307s # if a specific version of a package was requested 5307s # only install dbg pkgs whose version matches 5307s if ver: 5307s for dbg in dbgs: 5307s if apt_cache[dbg].candidate.version != ver: 5307s dbgs.remove(dbg) 5307s else: 5307s dbgs = [] 5307s if dbgs: 5307s for p in dbgs: 5307s # if the package has already been added to 5307s # real_pkgs don't search for it again 5307s if p in real_pkgs: 5307s continue 5307s pkg_found = False 5307s # prefer the version requested 5307s if ver: 5307s try: 5307s apt_cache[p].candidate = apt_cache[p].versions[ver] 5307s pkg_found = True 5307s except KeyError: 5307s (lp_url, sha1sum) = self.get_lp_binary_package( 5307s release, p, ver, architecture 5307s ) 5307s if lp_url: 5307s acquire_queue.append( 5307s apt.apt_pkg.AcquireFile( 5307s fetcher, 5307s lp_url, 5307s hash=f"sha1:{sha1sum}", 5307s destdir=archivedir, 5307s ) 5307s ) 5307s lp_cache[p] = ver 5307s pkg_found = True 5307s if not pkg_found: 5307s try: 5307s apt_cache[p].candidate = apt_cache[p].versions[ 5307s candidate.version 5307s ] 5307s except KeyError: 5307s # we don't really expect that, but it's 5307s # possible that other binaries have a 5307s # different version 5307s pass 5307s real_pkgs.add(p) 5307s else: 5307s pkg_found = False 5307s dbgsym_pkg = f"{pkg}-dbgsym" 5307s try: 5307s dbgsym = apt_cache[dbgsym_pkg] 5307s real_pkgs.add(dbgsym_pkg) 5307s # prefer the version requested 5307s if ver: 5307s try: 5307s dbgsym.candidate = dbgsym.versions[ver] 5307s pkg_found = True 5307s except KeyError: 5307s (lp_url, sha1sum) = self.get_lp_binary_package( 5307s release, dbgsym_pkg, ver, architecture 5307s ) 5307s if lp_url: 5307s acquire_queue.append( 5307s apt.apt_pkg.AcquireFile( 5307s fetcher, 5307s lp_url, 5307s hash=f"sha1:{sha1sum}", 5307s destdir=archivedir, 5307s ) 5307s ) 5307s lp_cache[dbgsym_pkg] = ver 5307s pkg_found = True 5307s if not pkg_found: 5307s try: 5307s dbgsym.candidate = dbgsym.versions[ 5307s candidate.version 5307s ] 5307s except KeyError: 5307s obsolete += ( 5307s f"outdated debug symbol package" 5307s f" for {pkg}: package version" 5307s f" {candidate.version}" 5307s f" dbgsym version" 5307s f" {dbgsym.candidate.version}\n" 5307s ) 5307s 5307s except KeyError: 5307s if ver: 5307s (lp_url, sha1sum) = self.get_lp_binary_package( 5307s release, dbgsym_pkg, ver, architecture 5307s ) 5307s if lp_url: 5307s acquire_queue.append( 5307s apt.apt_pkg.AcquireFile( 5307s fetcher, 5307s lp_url, 5307s hash=f"sha1:{sha1sum}", 5307s destdir=archivedir, 5307s ) 5307s ) 5307s lp_cache[dbgsym_pkg] = ver 5307s pkg_found = True 5307s if not pkg_found: 5307s obsolete += f"no debug symbol package found for {pkg}\n" 5307s 5307s # unpack packages, weed out the ones that are already installed (for 5307s # permanent sandboxes) 5307s logger = logging.getLogger(__name__) 5307s requested_pkgs = dict(packages) 5307s for p in real_pkgs.copy(): 5307s if p in requested_pkgs: 5307s if requested_pkgs[p] is None: 5307s # We already have the latest version of this package 5307s if pkg_versions.get(p) == apt_cache[p].candidate.version: 5307s logger.debug( 5307s "Removing %s which is already the right version", p 5307s ) 5307s real_pkgs.remove(p) 5307s else: 5307s logger.debug( 5307s "Installing %s version %s", 5307s p, 5307s apt_cache[p].candidate.version, 5307s ) 5307s apt_cache[p].mark_install(False, False) 5307s elif pkg_versions.get(p) != requested_pkgs[p]: 5307s logger.debug( 5307s "Installing %s version %s", p, apt_cache[p].candidate.version 5307s ) 5307s apt_cache[p].mark_install(False, False) 5307s elif pkg_versions.get(p) != apt_cache[p].candidate.version: 5307s logger.debug( 5307s "Installing %s version %s", p, apt_cache[p].candidate.version 5307s ) 5307s apt_cache[p].mark_install(False, False) 5307s else: 5307s logger.debug("Removing %s which is already the right version", p) 5307s real_pkgs.remove(p) 5307s elif pkg_versions.get(p) != apt_cache[p].candidate.version: 5307s logger.debug("Installing %s", p) 5307s apt_cache[p].mark_install(False, False) 5307s else: 5307s logger.debug("Removing %s which is already the right version", p) 5307s real_pkgs.remove(p) 5307s 5307s last_written = time.time() 5307s # fetch packages 5307s try: 5307s > apt_cache.fetch_archives(fetcher=fetcher) 5307s 5307s /usr/lib/python3/dist-packages/apport/packaging_impl/apt_dpkg.py:1321: 5307s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 5307s /usr/lib/python3/dist-packages/apt/cache.py:475: in fetch_archives 5307s return self._fetch_archives( 5307s /usr/lib/python3/dist-packages/apt/cache.py:443: in _fetch_archives 5307s return self._run_fetcher(fetcher, allow_unauthenticated) 5307s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 5307s 5307s self = 5307s fetcher = 5307s allow_unauthenticated = True 5307s 5307s def _run_fetcher( 5307s self, fetcher: apt_pkg.Acquire, allow_unauthenticated: bool | None 5307s ) -> int: 5307s if allow_unauthenticated is None: 5307s allow_unauthenticated = apt_pkg.config.find_b( 5307s "APT::Get::" "AllowUnauthenticated", False 5307s ) 5307s 5307s untrusted = [item for item in fetcher.items if not item.is_trusted] 5307s if untrusted and not allow_unauthenticated: 5307s raise UntrustedException( 5307s "Untrusted packages:\n%s" % "\n".join(i.desc_uri for i in untrusted) 5307s ) 5307s 5307s # do the actual fetching 5307s res = fetcher.run() 5307s 5307s # now check the result (this is the code from apt-get.cc) 5307s failed = False 5307s err_msg = "" 5307s for item in fetcher.items: 5307s if item.status == item.STAT_DONE: 5307s continue 5307s if item.STAT_IDLE: 5307s continue 5307s err_msg += f"Failed to fetch {item.desc_uri} {item.error_text}\n" 5307s failed = True 5307s 5307s # we raise a exception if the download failed or it was cancelt 5307s if res == fetcher.RESULT_CANCELLED: 5307s raise FetchCancelledException(err_msg) 5307s elif failed: 5307s > raise FetchFailedException(err_msg) 5307s E apt.cache.FetchFailedException: Failed to fetch https://launchpad.net/ubuntu/%2barchive/primary/%2bfiles/coreutils-dbgsym_9.4-3ubuntu6_amd64.ddeb Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::f3). - connect (101: Network is unreachable) Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::3ba). - connect (101: Network is unreachable) Could not connect to launchpad.net:443 (185.125.189.223), connection timed out Could not connect to launchpad.net:443 (185.125.189.222), connection timed out 5307s 5307s /usr/lib/python3/dist-packages/apt/cache.py:424: FetchFailedException 5307s 5307s During handling of the above exception, another exception occurred: 5307s 5307s cachedir = '/tmp/tmpikrz5vus/cache', workdir = '/tmp/tmpikrz5vus' 5307s rootdir = '/tmp/tmpikrz5vus/root', apt_style = 'deb822' 5307s 5307s @pytest.mark.skipif(not has_internet(), reason="online test") 5307s def test_install_packages_system(cachedir, workdir, rootdir, apt_style): 5307s # pylint: disable=unused-argument 5307s """install_packages() with system configuration""" 5307s # trigger an unrelated package query here to get the cache set up, 5307s # reproducing an install failure when the internal caches are not 5307s # reset properly 5307s impl.get_version("dash") 5307s 5307s release = " ".join(impl.get_os_version()) 5307s cachedir = os.path.join(workdir, "cache") 5307s rootdir = os.path.join(workdir, "root") 5307s 5307s > result = impl.install_packages( 5307s rootdir, 5307s None, 5307s release, 5307s [("coreutils", impl.get_version("coreutils")), ("tzdata", "1.1")], 5307s False, 5307s cachedir, 5307s ) 5307s 5307s tests/system/test_packaging_apt_dpkg.py:316: 5307s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 5307s 5307s self = 5307s rootdir = '/tmp/tmpikrz5vus/root', configdir = None, release = 'Ubuntu 24.04' 5307s packages = [('coreutils', '9.4-3ubuntu6'), ('tzdata', '1.1')], verbose = False 5307s cache_dir = '/tmp/tmpikrz5vus/cache', permanent_rootdir = False 5307s architecture = 'amd64', origins = None, install_dbg = True, install_deps = False 5307s 5307s def install_packages( 5307s self, 5307s rootdir, 5307s configdir, 5307s release, 5307s packages, 5307s verbose=False, 5307s cache_dir=None, 5307s permanent_rootdir=False, 5307s architecture=None, 5307s origins=None, 5307s install_dbg=True, 5307s install_deps=False, 5307s ): # pylint: disable=too-many-arguments 5307s # TODO: Split into smaller functions/methods 5307s # pylint: disable=too-many-branches,too-many-locals 5307s # pylint: disable=too-many-nested-blocks,too-many-statements 5307s """Install packages into a sandbox (for apport-retrace). 5307s 5307s In order to work without any special permissions and without touching 5307s the running system, this should only download and unpack packages into 5307s the given root directory, not install them into the system. 5307s 5307s configdir points to a directory with by-release configuration files for 5307s the packaging system; this is completely dependent on the backend 5307s implementation, the only assumption is that this looks into 5307s configdir/release/, so that you can use retracing for multiple 5307s DistroReleases. As a special case, if configdir is None, it uses the 5307s current system configuration, and "release" is ignored. 5307s 5307s release is the value of the report's 'DistroRelease' field. 5307s 5307s packages is a list of ('packagename', 'version') tuples. If the version 5307s is None, it should install the most current available version. 5307s 5307s If cache_dir is given, then the downloaded packages will be stored 5307s there, to speed up subsequent retraces. 5307s 5307s If permanent_rootdir is True, then the sandbox created from the 5307s downloaded packages will be reused, to speed up subsequent retraces. 5307s 5307s If architecture is given, the sandbox will be created with packages of 5307s the given architecture (as specified in a report's "Architecture" 5307s field). If not given it defaults to the host system's architecture. 5307s 5307s If origins is given, the sandbox will be created with apt data sources 5307s for foreign origins. 5307s 5307s If install_deps is True, then the dependencies of packages will also 5307s be installed. 5307s 5307s Return a string with outdated packages, or an empty string if all 5307s packages were installed. 5307s 5307s If something is wrong with the environment (invalid configuration, 5307s package servers down, etc.), this should raise a SystemError with a 5307s meaningful error message. 5307s """ 5307s if not architecture: 5307s architecture = self.get_system_architecture() 5307s if not configdir: 5307s apt_dir = "/etc/apt" 5307s self._current_release_codename = self.get_distro_codename() 5307s else: 5307s # support architecture specific config, fall back to global config 5307s apt_dir = os.path.join(configdir, release) 5307s if architecture != self.get_system_architecture(): 5307s arch_apt_dir = os.path.join(configdir, release, architecture) 5307s arch_old_sources = os.path.join(arch_apt_dir, "sources.list") 5307s arch_sources_dir = os.path.join(arch_apt_dir, "sources.list.d") 5307s if os.path.exists(arch_old_sources) or ( 5307s os.path.exists(arch_sources_dir) and os.listdir(arch_sources_dir) 5307s ): 5307s apt_dir = arch_apt_dir 5307s 5307s # set mirror for get_file_package() 5307s try: 5307s self.set_mirror(self._get_primary_mirror_from_apt_sources(apt_dir)) 5307s except SystemError as error: 5307s apport.logging.warning("cannot determine mirror: %s", str(error)) 5307s 5307s # set current release code name for _distro_release_to_codename 5307s with open( 5307s os.path.join(configdir, release, "codename"), encoding="utf-8" 5307s ) as f: 5307s self._current_release_codename = f.read().strip() 5307s 5307s # create apt sandbox 5307s if cache_dir: 5307s tmp_aptroot = False 5307s if architecture != self.get_system_architecture(): 5307s aptroot_arch = architecture 5307s else: 5307s aptroot_arch = "" 5307s if configdir: 5307s aptroot = os.path.join(cache_dir, release, aptroot_arch, "apt") 5307s else: 5307s aptroot = os.path.join(cache_dir, "system", aptroot_arch, "apt") 5307s if not os.path.isdir(aptroot): 5307s os.makedirs(aptroot) 5307s else: 5307s tmp_aptroot = True 5307s aptroot = tempfile.mkdtemp() 5307s 5307s apt.apt_pkg.config.set("APT::Architecture", architecture) 5307s apt.apt_pkg.config.set("Acquire::Languages", "none") 5307s # directly connect to Launchpad when downloading deb files 5307s apt.apt_pkg.config.set("Acquire::http::Proxy::api.launchpad.net", "DIRECT") 5307s apt.apt_pkg.config.set("Acquire::http::Proxy::launchpad.net", "DIRECT") 5307s 5307s if verbose: 5307s fetchProgress = apt.progress.text.AcquireProgress() 5307s else: 5307s fetchProgress = apt.progress.base.AcquireProgress() 5307s if not tmp_aptroot: 5307s apt_cache = self._sandbox_cache( 5307s aptroot, 5307s apt_dir, 5307s fetchProgress, 5307s self.get_distro_name(), 5307s self._current_release_codename, 5307s origins, 5307s architecture, 5307s ) 5307s else: 5307s self._build_apt_sandbox( 5307s aptroot, 5307s apt_dir, 5307s self.get_distro_name(), 5307s self._current_release_codename, 5307s origins, 5307s ) 5307s apt_cache = apt.Cache(rootdir=os.path.abspath(aptroot)) 5307s try: 5307s apt_cache.update(fetchProgress) 5307s except apt.cache.FetchFailedException as error: 5307s raise SystemError(str(error)) from error 5307s apt_cache.open() 5307s 5307s archivedir = apt.apt_pkg.config.find_dir("Dir::Cache::archives") 5307s 5307s obsolete = "" 5307s 5307s src_records = apt.apt_pkg.SourceRecords() 5307s 5307s # read original package list 5307s pkg_list = os.path.join(rootdir, "packages.txt") 5307s pkg_versions = {} 5307s if os.path.exists(pkg_list): 5307s with open(pkg_list, encoding="utf-8") as f: 5307s for line in f: 5307s line = line.strip() 5307s if not line: 5307s continue 5307s (p, v) = line.split() 5307s pkg_versions[p] = v 5307s 5307s # mark packages for installation 5307s real_pkgs = set() 5307s lp_cache = {} 5307s fetcher = apt.apt_pkg.Acquire(fetchProgress) 5307s # need to keep AcquireFile references 5307s acquire_queue = [] 5307s # add any dependencies to the packages list 5307s if install_deps: 5307s deps = [] 5307s for pkg, ver in packages: 5307s try: 5307s cache_pkg = apt_cache[pkg] 5307s except KeyError: 5307s m = f"package {pkg.replace('%', '%%')} does not exist, ignoring" 5307s obsolete += f"{m}\n" 5307s apport.logging.warning("%s", m) 5307s continue 5307s for dep in cache_pkg.candidate.dependencies: 5307s # the dependency may be satisfied by a different package 5307s if dep[0].name not in apt_cache: 5307s dep[0] = apt_cache.get_providing_packages(dep[0].name)[0] 5307s # the version in dep is the one from pkg's dependencies, 5307s # so use the version from the cache 5307s dep_pkg_vers = apt_cache[dep[0].name].candidate.version 5307s # if the dependency is in the list of packages we don't 5307s # need to look up its dependencies again 5307s if dep[0].name in [pkg[0] for pkg in packages]: 5307s continue 5307s # if the package is already extracted in the sandbox 5307s # because the report needs that package we don't want to 5307s # install a newer version which may cause a CRC mismatch 5307s # with the installed dbg symbols 5307s if dep[0].name in pkg_versions: 5307s inst_version = pkg_versions[dep[0].name] 5307s if self.compare_versions(inst_version, dep_pkg_vers) > -1: 5307s deps.append((dep[0].name, inst_version)) 5307s else: 5307s deps.append((dep[0].name, dep_pkg_vers)) 5307s else: 5307s deps.append((dep[0].name, dep_pkg_vers)) 5307s if dep[0].name not in [pkg[0] for pkg in packages]: 5307s packages.append((dep[0].name, None)) 5307s packages.extend(deps) 5307s 5307s for pkg, ver in packages: 5307s try: 5307s cache_pkg = apt_cache[pkg] 5307s except KeyError: 5307s m = f"package {pkg.replace('%', '%%')} does not exist, ignoring" 5307s obsolete += f"{m}\n" 5307s apport.logging.warning("%s", m) 5307s continue 5307s 5307s # try to select matching version 5307s try: 5307s if ver: 5307s cache_pkg.candidate = cache_pkg.versions[ver] 5307s except KeyError: 5307s (lp_url, sha1sum) = self.get_lp_binary_package( 5307s release, pkg, ver, architecture 5307s ) 5307s if lp_url: 5307s acquire_queue.append( 5307s apt.apt_pkg.AcquireFile( 5307s fetcher, lp_url, hash=f"sha1:{sha1sum}", destdir=archivedir 5307s ) 5307s ) 5307s lp_cache[pkg] = ver 5307s else: 5307s obsolete += ( 5307s f"{pkg} version {ver} required," 5307s f" but {cache_pkg.candidate.version} is available\n" 5307s ) 5307s ver = cache_pkg.candidate.version 5307s 5307s candidate = cache_pkg.candidate 5307s real_pkgs.add(pkg) 5307s 5307s if permanent_rootdir: 5307s virtual_mapping = self._virtual_mapping(aptroot) 5307s # Remember all the virtual packages that this package provides, 5307s # so that if we encounter that virtual package as a 5307s # Conflicts/Replaces later, we know to remove this package from 5307s # the cache. 5307s for p in candidate.provides: 5307s virtual_mapping.setdefault(p, set()).add(pkg) 5307s conflicts = [] 5307s if "Conflicts" in candidate.record: 5307s conflicts += apt.apt_pkg.parse_depends( 5307s candidate.record["Conflicts"] 5307s ) 5307s if "Replaces" in candidate.record: 5307s conflicts += apt.apt_pkg.parse_depends(candidate.record["Replaces"]) 5307s for conflict in conflicts: 5307s # if the package conflicts with itself its wonky e.g. 5307s # gdb in artful 5307s if conflict[0][0] == candidate.package.name: 5307s continue 5307s # apt_pkg.parse_depends needs to handle the or operator, 5307s # but as policy states it is invalid to use that in 5307s # Replaces/Depends, we can safely choose the first value 5307s # here. 5307s conflict = conflict[0] 5307s if apt_cache.is_virtual_package(conflict[0]): 5307s try: 5307s providers = virtual_mapping[conflict[0]] 5307s except KeyError: 5307s # We may not have seen the virtual package that 5307s # this conflicts with, so we can assume it's not 5307s # unpacked into the sandbox. 5307s continue 5307s for p in providers: 5307s # if the candidate package being installed 5307s # conflicts with but also provides a virtual 5307s # package don't act on the candidate e.g. 5307s # libpam-modules and libpam-mkhomedir in artful 5307s if p == candidate.package.name: 5307s continue 5307s debs = os.path.join(archivedir, f"{p}_*.deb") 5307s for path in glob.glob(debs): 5307s ver = self._deb_version(path) 5307s if apt.apt_pkg.check_dep(ver, conflict[2], conflict[1]): 5307s os.unlink(path) 5307s try: 5307s del pkg_versions[p] 5307s except KeyError: 5307s pass 5307s del providers 5307s else: 5307s debs = os.path.join(archivedir, f"{conflict[0]}_*.deb") 5307s for path in glob.glob(debs): 5307s ver = self._deb_version(path) 5307s if apt.apt_pkg.check_dep(ver, conflict[2], conflict[1]): 5307s os.unlink(path) 5307s try: 5307s del pkg_versions[conflict[0]] 5307s except KeyError: 5307s pass 5307s 5307s if candidate.architecture != "all" and install_dbg: 5307s try: 5307s dbg_pkg = f"{pkg}-dbg" 5307s dbg = apt_cache[dbg_pkg] 5307s pkg_found = False 5307s # try to get the same version as pkg 5307s if ver: 5307s try: 5307s dbg.candidate = dbg.versions[ver] 5307s pkg_found = True 5307s except KeyError: 5307s (lp_url, sha1sum) = self.get_lp_binary_package( 5307s release, dbg_pkg, ver, architecture 5307s ) 5307s if lp_url: 5307s acquire_queue.append( 5307s apt.apt_pkg.AcquireFile( 5307s fetcher, 5307s lp_url, 5307s hash=f"sha1:{sha1sum}", 5307s destdir=archivedir, 5307s ) 5307s ) 5307s lp_cache[dbg_pkg] = ver 5307s pkg_found = True 5307s # if it can't be found in Launchpad failover to a 5307s # code path that'll use -dbgsym packages 5307s else: 5307s raise 5307s if not pkg_found: 5307s try: 5307s dbg.candidate = dbg.versions[candidate.version] 5307s except KeyError: 5307s obsolete += ( 5307s f"outdated -dbg package for {pkg}:" 5307s f" package version {ver}" 5307s f" -dbg version {dbg.candidate.version}\n" 5307s ) 5307s real_pkgs.add(dbg_pkg) 5307s except KeyError: 5307s # install all -dbg from the source package; lookup() just 5307s # works from the current list pointer, we always need to 5307s # start from the beginning 5307s src_records.restart() 5307s if src_records.lookup(candidate.source_name): 5307s # ignore transitional packages 5307s # False positive, see 5307s # https://github.com/PyCQA/pylint/issues/7122 5307s # pylint: disable=not-an-iterable 5307s dbgs = [ 5307s p 5307s for p in src_records.binaries 5307s if p.endswith("-dbg") 5307s and p in apt_cache 5307s and "transitional" not in apt_cache[p].candidate.description 5307s ] 5307s # if a specific version of a package was requested 5307s # only install dbg pkgs whose version matches 5307s if ver: 5307s for dbg in dbgs: 5307s if apt_cache[dbg].candidate.version != ver: 5307s dbgs.remove(dbg) 5307s else: 5307s dbgs = [] 5307s if dbgs: 5307s for p in dbgs: 5307s # if the package has already been added to 5307s # real_pkgs don't search for it again 5307s if p in real_pkgs: 5307s continue 5307s pkg_found = False 5307s # prefer the version requested 5307s if ver: 5307s try: 5307s apt_cache[p].candidate = apt_cache[p].versions[ver] 5307s pkg_found = True 5307s except KeyError: 5307s (lp_url, sha1sum) = self.get_lp_binary_package( 5307s release, p, ver, architecture 5307s ) 5307s if lp_url: 5307s acquire_queue.append( 5307s apt.apt_pkg.AcquireFile( 5307s fetcher, 5307s lp_url, 5307s hash=f"sha1:{sha1sum}", 5307s destdir=archivedir, 5307s ) 5307s ) 5307s lp_cache[p] = ver 5307s pkg_found = True 5307s if not pkg_found: 5307s try: 5307s apt_cache[p].candidate = apt_cache[p].versions[ 5307s candidate.version 5307s ] 5307s except KeyError: 5307s # we don't really expect that, but it's 5307s # possible that other binaries have a 5307s # different version 5307s pass 5307s real_pkgs.add(p) 5307s else: 5307s pkg_found = False 5307s dbgsym_pkg = f"{pkg}-dbgsym" 5307s try: 5307s dbgsym = apt_cache[dbgsym_pkg] 5307s real_pkgs.add(dbgsym_pkg) 5307s # prefer the version requested 5307s if ver: 5307s try: 5307s dbgsym.candidate = dbgsym.versions[ver] 5307s pkg_found = True 5307s except KeyError: 5307s (lp_url, sha1sum) = self.get_lp_binary_package( 5307s release, dbgsym_pkg, ver, architecture 5307s ) 5307s if lp_url: 5307s acquire_queue.append( 5307s apt.apt_pkg.AcquireFile( 5307s fetcher, 5307s lp_url, 5307s hash=f"sha1:{sha1sum}", 5307s destdir=archivedir, 5307s ) 5307s ) 5307s lp_cache[dbgsym_pkg] = ver 5307s pkg_found = True 5307s if not pkg_found: 5307s try: 5307s dbgsym.candidate = dbgsym.versions[ 5307s candidate.version 5307s ] 5307s except KeyError: 5307s obsolete += ( 5307s f"outdated debug symbol package" 5307s f" for {pkg}: package version" 5307s f" {candidate.version}" 5307s f" dbgsym version" 5307s f" {dbgsym.candidate.version}\n" 5307s ) 5307s 5307s except KeyError: 5307s if ver: 5307s (lp_url, sha1sum) = self.get_lp_binary_package( 5307s release, dbgsym_pkg, ver, architecture 5307s ) 5307s if lp_url: 5307s acquire_queue.append( 5307s apt.apt_pkg.AcquireFile( 5307s fetcher, 5307s lp_url, 5307s hash=f"sha1:{sha1sum}", 5307s destdir=archivedir, 5307s ) 5307s ) 5307s lp_cache[dbgsym_pkg] = ver 5307s pkg_found = True 5307s if not pkg_found: 5307s obsolete += f"no debug symbol package found for {pkg}\n" 5307s 5307s # unpack packages, weed out the ones that are already installed (for 5307s # permanent sandboxes) 5307s logger = logging.getLogger(__name__) 5307s requested_pkgs = dict(packages) 5307s for p in real_pkgs.copy(): 5307s if p in requested_pkgs: 5307s if requested_pkgs[p] is None: 5307s # We already have the latest version of this package 5307s if pkg_versions.get(p) == apt_cache[p].candidate.version: 5307s logger.debug( 5307s "Removing %s which is already the right version", p 5307s ) 5307s real_pkgs.remove(p) 5307s else: 5307s logger.debug( 5307s "Installing %s version %s", 5307s p, 5307s apt_cache[p].candidate.version, 5307s ) 5307s apt_cache[p].mark_install(False, False) 5307s elif pkg_versions.get(p) != requested_pkgs[p]: 5307s logger.debug( 5307s "Installing %s version %s", p, apt_cache[p].candidate.version 5307s ) 5307s apt_cache[p].mark_install(False, False) 5307s elif pkg_versions.get(p) != apt_cache[p].candidate.version: 5307s logger.debug( 5307s "Installing %s version %s", p, apt_cache[p].candidate.version 5307s ) 5307s apt_cache[p].mark_install(False, False) 5307s else: 5307s logger.debug("Removing %s which is already the right version", p) 5307s real_pkgs.remove(p) 5307s elif pkg_versions.get(p) != apt_cache[p].candidate.version: 5307s logger.debug("Installing %s", p) 5307s apt_cache[p].mark_install(False, False) 5307s else: 5307s logger.debug("Removing %s which is already the right version", p) 5307s real_pkgs.remove(p) 5307s 5307s last_written = time.time() 5307s # fetch packages 5307s try: 5307s apt_cache.fetch_archives(fetcher=fetcher) 5307s except apt.cache.FetchFailedException as error: 5307s apport.logging.error( 5307s "Package download error, try again later: %s", str(error) 5307s ) 5307s > sys.exit(1) # transient error 5307s E SystemExit: 1 5307s 5307s /usr/lib/python3/dist-packages/apport/packaging_impl/apt_dpkg.py:1326: SystemExit 5307s ----------------------------- Captured stderr call ----------------------------- 5307s ERROR: Package download error, try again later: Failed to fetch https://launchpad.net/ubuntu/%2barchive/primary/%2bfiles/coreutils-dbgsym_9.4-3ubuntu6_amd64.ddeb Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::f3). - connect (101: Network is unreachable) Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::3ba). - connect (101: Network is unreachable) Could not connect to launchpad.net:443 (185.125.189.223), connection timed out Could not connect to launchpad.net:443 (185.125.189.222), connection timed out 5307s 5307s ____________________ test_install_packages_armhf[one-line] _____________________ 5307s 5307s self = 5307s fetch_progress = 5307s pulse_interval = 0, raise_on_error = True, sources_list = None 5307s 5307s def update( 5307s self, 5307s fetch_progress: AcquireProgress | None = None, 5307s pulse_interval: int = 0, 5307s raise_on_error: bool = True, 5307s sources_list: str | None = None, 5307s ) -> int: 5307s """Run the equivalent of apt-get update. 5307s 5307s You probably want to call open() afterwards, in order to utilise the 5307s new cache. Otherwise, the old cache will be used which can lead to 5307s strange bugs. 5307s 5307s The first parameter *fetch_progress* may be set to an instance of 5307s apt.progress.FetchProgress, the default is apt.progress.FetchProgress() 5307s . 5307s sources_list -- Update a alternative sources.list than the default. 5307s Note that the sources.list.d directory is ignored in this case 5307s """ 5307s with _WrappedLock(apt_pkg.config.find_dir("Dir::State::Lists")): 5307s if sources_list: 5307s old_sources_list = apt_pkg.config.find("Dir::Etc::sourcelist") 5307s old_sources_list_d = apt_pkg.config.find("Dir::Etc::sourceparts") 5307s old_cleanup = apt_pkg.config.find("APT::List-Cleanup") 5307s apt_pkg.config.set( 5307s "Dir::Etc::sourcelist", os.path.abspath(sources_list) 5307s ) 5307s apt_pkg.config.set("Dir::Etc::sourceparts", "xxx") 5307s apt_pkg.config.set("APT::List-Cleanup", "0") 5307s slist = apt_pkg.SourceList() 5307s slist.read_main_list() 5307s else: 5307s slist = self._list 5307s 5307s try: 5307s if fetch_progress is None: 5307s fetch_progress = apt.progress.base.AcquireProgress() 5307s try: 5307s > res = self._cache.update(fetch_progress, slist, pulse_interval) 5307s E apt_pkg.Error: W:Download is performed unsandboxed as root as file '/tmp/tmpflle0c0s/cache/Foonux 22.04/armhf/apt/var/lib/apt/lists/partial/ports.ubuntu.com_ubuntu-ports_dists_jammy_InRelease' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied), E:Failed to fetch http://ports.ubuntu.com/ubuntu-ports/dists/jammy/InRelease 403 Forbidden [IP: 10.151.41.6 3128], E:The repository 'http://ports.ubuntu.com/ubuntu-ports jammy InRelease' is not signed. 5307s 5307s /usr/lib/python3/dist-packages/apt/cache.py:562: Error 5307s 5307s During handling of the above exception, another exception occurred: 5307s 5307s self = 5307s aptroot = '/tmp/tmpflle0c0s/cache/Foonux 22.04/armhf/apt' 5307s apt_dir = '/tmp/tmpflle0c0s/config/Foonux 22.04/armhf' 5307s fetchProgress = 5307s distro_name = 'ubuntu', release_codename = 'jammy', origins = None 5307s arch = 'armhf' 5307s 5307s def _sandbox_cache( 5307s self, 5307s aptroot, 5307s apt_dir, 5307s fetchProgress, 5307s distro_name, 5307s release_codename, 5307s origins, 5307s arch, 5307s ): # pylint: disable=too-many-arguments 5307s """Build apt sandbox and return apt.Cache(rootdir=) (initialized 5307s lazily). 5307s 5307s Clear the package selection on subsequent calls. 5307s """ 5307s if not self._sandbox_apt_cache or arch != self._sandbox_apt_cache_arch: 5307s self._clear_apt_cache() 5307s self._build_apt_sandbox( 5307s aptroot, apt_dir, distro_name, release_codename, origins 5307s ) 5307s rootdir = os.path.abspath(aptroot) 5307s self._sandbox_apt_cache = apt.Cache(rootdir=rootdir) 5307s self._sandbox_apt_cache_arch = arch 5307s try: 5307s # We don't need to update this multiple times. 5307s > self._sandbox_apt_cache.update(fetchProgress) 5307s 5307s /usr/lib/python3/dist-packages/apport/packaging_impl/apt_dpkg.py:261: 5307s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 5307s 5307s self = 5307s fetch_progress = 5307s pulse_interval = 0, raise_on_error = True, sources_list = None 5307s 5307s def update( 5307s self, 5307s fetch_progress: AcquireProgress | None = None, 5307s pulse_interval: int = 0, 5307s raise_on_error: bool = True, 5307s sources_list: str | None = None, 5307s ) -> int: 5307s """Run the equivalent of apt-get update. 5307s 5307s You probably want to call open() afterwards, in order to utilise the 5307s new cache. Otherwise, the old cache will be used which can lead to 5307s strange bugs. 5307s 5307s The first parameter *fetch_progress* may be set to an instance of 5307s apt.progress.FetchProgress, the default is apt.progress.FetchProgress() 5307s . 5307s sources_list -- Update a alternative sources.list than the default. 5307s Note that the sources.list.d directory is ignored in this case 5307s """ 5307s with _WrappedLock(apt_pkg.config.find_dir("Dir::State::Lists")): 5307s if sources_list: 5307s old_sources_list = apt_pkg.config.find("Dir::Etc::sourcelist") 5307s old_sources_list_d = apt_pkg.config.find("Dir::Etc::sourceparts") 5307s old_cleanup = apt_pkg.config.find("APT::List-Cleanup") 5307s apt_pkg.config.set( 5307s "Dir::Etc::sourcelist", os.path.abspath(sources_list) 5307s ) 5307s apt_pkg.config.set("Dir::Etc::sourceparts", "xxx") 5307s apt_pkg.config.set("APT::List-Cleanup", "0") 5307s slist = apt_pkg.SourceList() 5307s slist.read_main_list() 5307s else: 5307s slist = self._list 5307s 5307s try: 5307s if fetch_progress is None: 5307s fetch_progress = apt.progress.base.AcquireProgress() 5307s try: 5307s res = self._cache.update(fetch_progress, slist, pulse_interval) 5307s except SystemError as e: 5307s > raise FetchFailedException(e) 5307s E apt.cache.FetchFailedException: W:Download is performed unsandboxed as root as file '/tmp/tmpflle0c0s/cache/Foonux 22.04/armhf/apt/var/lib/apt/lists/partial/ports.ubuntu.com_ubuntu-ports_dists_jammy_InRelease' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied), E:Failed to fetch http://ports.ubuntu.com/ubuntu-ports/dists/jammy/InRelease 403 Forbidden [IP: 10.151.41.6 3128], E:The repository 'http://ports.ubuntu.com/ubuntu-ports jammy InRelease' is not signed. 5307s 5307s /usr/lib/python3/dist-packages/apt/cache.py:564: FetchFailedException 5307s 5307s The above exception was the direct cause of the following exception: 5307s 5307s configdir = '/tmp/tmpflle0c0s/config', cachedir = '/tmp/tmpflle0c0s/cache' 5307s rootdir = '/tmp/tmpflle0c0s/root', apt_style = 'one-line' 5307s 5307s @pytest.mark.skipif(not has_internet(), reason="online test") 5307s @pytest.mark.skipif( 5307s impl.get_system_architecture() == "armhf", reason="native armhf architecture" 5307s ) 5307s def test_install_packages_armhf(configdir, cachedir, rootdir, apt_style): 5307s """install_packages() for foreign architecture armhf""" 5307s release = _setup_foonux_config(configdir, apt_style) 5307s wanted_version = "2.35-0ubuntu0" 5307s got_version = "2.35-0ubuntu3" 5307s > obsolete = impl.install_packages( 5307s rootdir, 5307s configdir, 5307s release, 5307s [("coreutils", None), ("libc6", wanted_version)], 5307s False, 5307s cachedir, 5307s architecture="armhf", 5307s ) 5307s 5307s tests/system/test_packaging_apt_dpkg.py:544: 5307s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 5307s /usr/lib/python3/dist-packages/apport/packaging_impl/apt_dpkg.py:936: in install_packages 5307s apt_cache = self._sandbox_cache( 5307s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 5307s 5307s self = 5307s aptroot = '/tmp/tmpflle0c0s/cache/Foonux 22.04/armhf/apt' 5307s apt_dir = '/tmp/tmpflle0c0s/config/Foonux 22.04/armhf' 5307s fetchProgress = 5307s distro_name = 'ubuntu', release_codename = 'jammy', origins = None 5307s arch = 'armhf' 5307s 5307s def _sandbox_cache( 5307s self, 5307s aptroot, 5307s apt_dir, 5307s fetchProgress, 5307s distro_name, 5307s release_codename, 5307s origins, 5307s arch, 5307s ): # pylint: disable=too-many-arguments 5307s """Build apt sandbox and return apt.Cache(rootdir=) (initialized 5307s lazily). 5307s 5307s Clear the package selection on subsequent calls. 5307s """ 5307s if not self._sandbox_apt_cache or arch != self._sandbox_apt_cache_arch: 5307s self._clear_apt_cache() 5307s self._build_apt_sandbox( 5307s aptroot, apt_dir, distro_name, release_codename, origins 5307s ) 5307s rootdir = os.path.abspath(aptroot) 5307s self._sandbox_apt_cache = apt.Cache(rootdir=rootdir) 5307s self._sandbox_apt_cache_arch = arch 5307s try: 5307s # We don't need to update this multiple times. 5307s self._sandbox_apt_cache.update(fetchProgress) 5307s except apt.cache.FetchFailedException as error: 5307s > raise SystemError(str(error)) from error 5307s E SystemError: W:Download is performed unsandboxed as root as file '/tmp/tmpflle0c0s/cache/Foonux 22.04/armhf/apt/var/lib/apt/lists/partial/ports.ubuntu.com_ubuntu-ports_dists_jammy_InRelease' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied), E:Failed to fetch http://ports.ubuntu.com/ubuntu-ports/dists/jammy/InRelease 403 Forbidden [IP: 10.151.41.6 3128], E:The repository 'http://ports.ubuntu.com/ubuntu-ports jammy InRelease' is not signed. 5307s 5307s /usr/lib/python3/dist-packages/apport/packaging_impl/apt_dpkg.py:263: SystemError 5307s _____________________ test_install_packages_armhf[deb822] ______________________ 5307s 5307s self = 5307s fetch_progress = 5307s pulse_interval = 0, raise_on_error = True, sources_list = None 5307s 5307s def update( 5307s self, 5307s fetch_progress: AcquireProgress | None = None, 5307s pulse_interval: int = 0, 5307s raise_on_error: bool = True, 5307s sources_list: str | None = None, 5307s ) -> int: 5307s """Run the equivalent of apt-get update. 5307s 5307s You probably want to call open() afterwards, in order to utilise the 5307s new cache. Otherwise, the old cache will be used which can lead to 5307s strange bugs. 5307s 5307s The first parameter *fetch_progress* may be set to an instance of 5307s apt.progress.FetchProgress, the default is apt.progress.FetchProgress() 5307s . 5307s sources_list -- Update a alternative sources.list than the default. 5307s Note that the sources.list.d directory is ignored in this case 5307s """ 5307s with _WrappedLock(apt_pkg.config.find_dir("Dir::State::Lists")): 5307s if sources_list: 5307s old_sources_list = apt_pkg.config.find("Dir::Etc::sourcelist") 5307s old_sources_list_d = apt_pkg.config.find("Dir::Etc::sourceparts") 5307s old_cleanup = apt_pkg.config.find("APT::List-Cleanup") 5307s apt_pkg.config.set( 5307s "Dir::Etc::sourcelist", os.path.abspath(sources_list) 5307s ) 5307s apt_pkg.config.set("Dir::Etc::sourceparts", "xxx") 5307s apt_pkg.config.set("APT::List-Cleanup", "0") 5307s slist = apt_pkg.SourceList() 5307s slist.read_main_list() 5307s else: 5307s slist = self._list 5307s 5307s try: 5307s if fetch_progress is None: 5307s fetch_progress = apt.progress.base.AcquireProgress() 5307s try: 5307s > res = self._cache.update(fetch_progress, slist, pulse_interval) 5307s E apt_pkg.Error: W:Download is performed unsandboxed as root as file '/tmp/tmpkxg2wiuw/cache/Foonux 22.04/armhf/apt/var/lib/apt/lists/partial/ports.ubuntu.com_ubuntu-ports_dists_jammy_InRelease' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied), E:Failed to fetch http://ports.ubuntu.com/ubuntu-ports/dists/jammy/InRelease 403 Forbidden [IP: 10.151.41.6 3128], E:The repository 'http://ports.ubuntu.com/ubuntu-ports jammy InRelease' is not signed. 5307s 5307s /usr/lib/python3/dist-packages/apt/cache.py:562: Error 5307s 5307s During handling of the above exception, another exception occurred: 5307s 5307s self = 5307s aptroot = '/tmp/tmpkxg2wiuw/cache/Foonux 22.04/armhf/apt' 5307s apt_dir = '/tmp/tmpkxg2wiuw/config/Foonux 22.04/armhf' 5307s fetchProgress = 5307s distro_name = 'ubuntu', release_codename = 'jammy', origins = None 5307s arch = 'armhf' 5307s 5307s def _sandbox_cache( 5307s self, 5307s aptroot, 5307s apt_dir, 5307s fetchProgress, 5307s distro_name, 5307s release_codename, 5307s origins, 5307s arch, 5307s ): # pylint: disable=too-many-arguments 5307s """Build apt sandbox and return apt.Cache(rootdir=) (initialized 5307s lazily). 5307s 5307s Clear the package selection on subsequent calls. 5307s """ 5307s if not self._sandbox_apt_cache or arch != self._sandbox_apt_cache_arch: 5307s self._clear_apt_cache() 5307s self._build_apt_sandbox( 5307s aptroot, apt_dir, distro_name, release_codename, origins 5307s ) 5307s rootdir = os.path.abspath(aptroot) 5307s self._sandbox_apt_cache = apt.Cache(rootdir=rootdir) 5307s self._sandbox_apt_cache_arch = arch 5307s try: 5307s # We don't need to update this multiple times. 5307s > self._sandbox_apt_cache.update(fetchProgress) 5307s 5307s /usr/lib/python3/dist-packages/apport/packaging_impl/apt_dpkg.py:261: 5307s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 5307s 5307s self = 5307s fetch_progress = 5307s pulse_interval = 0, raise_on_error = True, sources_list = None 5307s 5307s def update( 5307s self, 5307s fetch_progress: AcquireProgress | None = None, 5307s pulse_interval: int = 0, 5307s raise_on_error: bool = True, 5307s sources_list: str | None = None, 5307s ) -> int: 5307s """Run the equivalent of apt-get update. 5307s 5307s You probably want to call open() afterwards, in order to utilise the 5307s new cache. Otherwise, the old cache will be used which can lead to 5307s strange bugs. 5307s 5307s The first parameter *fetch_progress* may be set to an instance of 5307s apt.progress.FetchProgress, the default is apt.progress.FetchProgress() 5307s . 5307s sources_list -- Update a alternative sources.list than the default. 5307s Note that the sources.list.d directory is ignored in this case 5307s """ 5307s with _WrappedLock(apt_pkg.config.find_dir("Dir::State::Lists")): 5307s if sources_list: 5307s old_sources_list = apt_pkg.config.find("Dir::Etc::sourcelist") 5307s old_sources_list_d = apt_pkg.config.find("Dir::Etc::sourceparts") 5307s old_cleanup = apt_pkg.config.find("APT::List-Cleanup") 5307s apt_pkg.config.set( 5307s "Dir::Etc::sourcelist", os.path.abspath(sources_list) 5307s ) 5307s apt_pkg.config.set("Dir::Etc::sourceparts", "xxx") 5307s apt_pkg.config.set("APT::List-Cleanup", "0") 5307s slist = apt_pkg.SourceList() 5307s slist.read_main_list() 5307s else: 5307s slist = self._list 5307s 5307s try: 5307s if fetch_progress is None: 5307s fetch_progress = apt.progress.base.AcquireProgress() 5307s try: 5307s res = self._cache.update(fetch_progress, slist, pulse_interval) 5307s except SystemError as e: 5307s > raise FetchFailedException(e) 5307s E apt.cache.FetchFailedException: W:Download is performed unsandboxed as root as file '/tmp/tmpkxg2wiuw/cache/Foonux 22.04/armhf/apt/var/lib/apt/lists/partial/ports.ubuntu.com_ubuntu-ports_dists_jammy_InRelease' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied), E:Failed to fetch http://ports.ubuntu.com/ubuntu-ports/dists/jammy/InRelease 403 Forbidden [IP: 10.151.41.6 3128], E:The repository 'http://ports.ubuntu.com/ubuntu-ports jammy InRelease' is not signed. 5307s 5307s /usr/lib/python3/dist-packages/apt/cache.py:564: FetchFailedException 5307s 5307s The above exception was the direct cause of the following exception: 5307s 5307s configdir = '/tmp/tmpkxg2wiuw/config', cachedir = '/tmp/tmpkxg2wiuw/cache' 5307s rootdir = '/tmp/tmpkxg2wiuw/root', apt_style = 'deb822' 5307s 5307s @pytest.mark.skipif(not has_internet(), reason="online test") 5307s @pytest.mark.skipif( 5307s impl.get_system_architecture() == "armhf", reason="native armhf architecture" 5307s ) 5307s def test_install_packages_armhf(configdir, cachedir, rootdir, apt_style): 5307s """install_packages() for foreign architecture armhf""" 5307s release = _setup_foonux_config(configdir, apt_style) 5307s wanted_version = "2.35-0ubuntu0" 5307s got_version = "2.35-0ubuntu3" 5307s > obsolete = impl.install_packages( 5307s rootdir, 5307s configdir, 5307s release, 5307s [("coreutils", None), ("libc6", wanted_version)], 5307s False, 5307s cachedir, 5307s architecture="armhf", 5307s ) 5307s 5307s tests/system/test_packaging_apt_dpkg.py:544: 5307s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 5307s /usr/lib/python3/dist-packages/apport/packaging_impl/apt_dpkg.py:936: in install_packages 5307s apt_cache = self._sandbox_cache( 5307s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 5307s 5307s self = 5307s aptroot = '/tmp/tmpkxg2wiuw/cache/Foonux 22.04/armhf/apt' 5307s apt_dir = '/tmp/tmpkxg2wiuw/config/Foonux 22.04/armhf' 5307s fetchProgress = 5307s distro_name = 'ubuntu', release_codename = 'jammy', origins = None 5307s arch = 'armhf' 5307s 5307s def _sandbox_cache( 5307s self, 5307s aptroot, 5307s apt_dir, 5307s fetchProgress, 5307s distro_name, 5307s release_codename, 5307s origins, 5307s arch, 5307s ): # pylint: disable=too-many-arguments 5307s """Build apt sandbox and return apt.Cache(rootdir=) (initialized 5307s lazily). 5307s 5307s Clear the package selection on subsequent calls. 5307s """ 5307s if not self._sandbox_apt_cache or arch != self._sandbox_apt_cache_arch: 5307s self._clear_apt_cache() 5307s self._build_apt_sandbox( 5307s aptroot, apt_dir, distro_name, release_codename, origins 5307s ) 5307s rootdir = os.path.abspath(aptroot) 5307s self._sandbox_apt_cache = apt.Cache(rootdir=rootdir) 5307s self._sandbox_apt_cache_arch = arch 5307s try: 5307s # We don't need to update this multiple times. 5307s self._sandbox_apt_cache.update(fetchProgress) 5307s except apt.cache.FetchFailedException as error: 5307s > raise SystemError(str(error)) from error 5307s E SystemError: W:Download is performed unsandboxed as root as file '/tmp/tmpkxg2wiuw/cache/Foonux 22.04/armhf/apt/var/lib/apt/lists/partial/ports.ubuntu.com_ubuntu-ports_dists_jammy_InRelease' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied), E:Failed to fetch http://ports.ubuntu.com/ubuntu-ports/dists/jammy/InRelease 403 Forbidden [IP: 10.151.41.6 3128], E:The repository 'http://ports.ubuntu.com/ubuntu-ports jammy InRelease' is not signed. 5307s 5307s /usr/lib/python3/dist-packages/apport/packaging_impl/apt_dpkg.py:263: SystemError 5307s ________________ test_install_packages_from_launchpad[one-line] ________________ 5307s 5307s self = 5307s rootdir = '/tmp/tmp94b6hill/root', configdir = '/tmp/tmp94b6hill/config' 5307s release = 'Foonux 20.04' 5307s packages = [('distro-info-data', '0.43ubuntu1.9'), ('libc6', '2.31-0ubuntu9.4'), ('qemu-utils', '1:4.2-3ubuntu6.1')] 5307s verbose = False, cache_dir = '/tmp/tmp94b6hill/cache', permanent_rootdir = False 5307s architecture = 'amd64', origins = None, install_dbg = True, install_deps = False 5307s 5307s def install_packages( 5307s self, 5307s rootdir, 5307s configdir, 5307s release, 5307s packages, 5307s verbose=False, 5307s cache_dir=None, 5307s permanent_rootdir=False, 5307s architecture=None, 5307s origins=None, 5307s install_dbg=True, 5307s install_deps=False, 5307s ): # pylint: disable=too-many-arguments 5307s # TODO: Split into smaller functions/methods 5307s # pylint: disable=too-many-branches,too-many-locals 5307s # pylint: disable=too-many-nested-blocks,too-many-statements 5307s """Install packages into a sandbox (for apport-retrace). 5307s 5307s In order to work without any special permissions and without touching 5307s the running system, this should only download and unpack packages into 5307s the given root directory, not install them into the system. 5307s 5307s configdir points to a directory with by-release configuration files for 5307s the packaging system; this is completely dependent on the backend 5307s implementation, the only assumption is that this looks into 5307s configdir/release/, so that you can use retracing for multiple 5307s DistroReleases. As a special case, if configdir is None, it uses the 5307s current system configuration, and "release" is ignored. 5307s 5307s release is the value of the report's 'DistroRelease' field. 5307s 5307s packages is a list of ('packagename', 'version') tuples. If the version 5307s is None, it should install the most current available version. 5307s 5307s If cache_dir is given, then the downloaded packages will be stored 5307s there, to speed up subsequent retraces. 5307s 5307s If permanent_rootdir is True, then the sandbox created from the 5307s downloaded packages will be reused, to speed up subsequent retraces. 5307s 5307s If architecture is given, the sandbox will be created with packages of 5307s the given architecture (as specified in a report's "Architecture" 5307s field). If not given it defaults to the host system's architecture. 5307s 5307s If origins is given, the sandbox will be created with apt data sources 5307s for foreign origins. 5307s 5307s If install_deps is True, then the dependencies of packages will also 5307s be installed. 5307s 5307s Return a string with outdated packages, or an empty string if all 5307s packages were installed. 5307s 5307s If something is wrong with the environment (invalid configuration, 5307s package servers down, etc.), this should raise a SystemError with a 5307s meaningful error message. 5307s """ 5307s if not architecture: 5307s architecture = self.get_system_architecture() 5307s if not configdir: 5307s apt_dir = "/etc/apt" 5307s self._current_release_codename = self.get_distro_codename() 5307s else: 5307s # support architecture specific config, fall back to global config 5307s apt_dir = os.path.join(configdir, release) 5307s if architecture != self.get_system_architecture(): 5307s arch_apt_dir = os.path.join(configdir, release, architecture) 5307s arch_old_sources = os.path.join(arch_apt_dir, "sources.list") 5307s arch_sources_dir = os.path.join(arch_apt_dir, "sources.list.d") 5307s if os.path.exists(arch_old_sources) or ( 5307s os.path.exists(arch_sources_dir) and os.listdir(arch_sources_dir) 5307s ): 5307s apt_dir = arch_apt_dir 5307s 5307s # set mirror for get_file_package() 5307s try: 5307s self.set_mirror(self._get_primary_mirror_from_apt_sources(apt_dir)) 5307s except SystemError as error: 5307s apport.logging.warning("cannot determine mirror: %s", str(error)) 5307s 5307s # set current release code name for _distro_release_to_codename 5307s with open( 5307s os.path.join(configdir, release, "codename"), encoding="utf-8" 5307s ) as f: 5307s self._current_release_codename = f.read().strip() 5307s 5307s # create apt sandbox 5307s if cache_dir: 5307s tmp_aptroot = False 5307s if architecture != self.get_system_architecture(): 5307s aptroot_arch = architecture 5307s else: 5307s aptroot_arch = "" 5307s if configdir: 5307s aptroot = os.path.join(cache_dir, release, aptroot_arch, "apt") 5307s else: 5307s aptroot = os.path.join(cache_dir, "system", aptroot_arch, "apt") 5307s if not os.path.isdir(aptroot): 5307s os.makedirs(aptroot) 5307s else: 5307s tmp_aptroot = True 5307s aptroot = tempfile.mkdtemp() 5307s 5307s apt.apt_pkg.config.set("APT::Architecture", architecture) 5307s apt.apt_pkg.config.set("Acquire::Languages", "none") 5307s # directly connect to Launchpad when downloading deb files 5307s apt.apt_pkg.config.set("Acquire::http::Proxy::api.launchpad.net", "DIRECT") 5307s apt.apt_pkg.config.set("Acquire::http::Proxy::launchpad.net", "DIRECT") 5307s 5307s if verbose: 5307s fetchProgress = apt.progress.text.AcquireProgress() 5307s else: 5307s fetchProgress = apt.progress.base.AcquireProgress() 5307s if not tmp_aptroot: 5307s apt_cache = self._sandbox_cache( 5307s aptroot, 5307s apt_dir, 5307s fetchProgress, 5307s self.get_distro_name(), 5307s self._current_release_codename, 5307s origins, 5307s architecture, 5307s ) 5307s else: 5307s self._build_apt_sandbox( 5307s aptroot, 5307s apt_dir, 5307s self.get_distro_name(), 5307s self._current_release_codename, 5307s origins, 5307s ) 5307s apt_cache = apt.Cache(rootdir=os.path.abspath(aptroot)) 5307s try: 5307s apt_cache.update(fetchProgress) 5307s except apt.cache.FetchFailedException as error: 5307s raise SystemError(str(error)) from error 5307s apt_cache.open() 5307s 5307s archivedir = apt.apt_pkg.config.find_dir("Dir::Cache::archives") 5307s 5307s obsolete = "" 5307s 5307s src_records = apt.apt_pkg.SourceRecords() 5307s 5307s # read original package list 5307s pkg_list = os.path.join(rootdir, "packages.txt") 5307s pkg_versions = {} 5307s if os.path.exists(pkg_list): 5307s with open(pkg_list, encoding="utf-8") as f: 5307s for line in f: 5307s line = line.strip() 5307s if not line: 5307s continue 5307s (p, v) = line.split() 5307s pkg_versions[p] = v 5307s 5307s # mark packages for installation 5307s real_pkgs = set() 5307s lp_cache = {} 5307s fetcher = apt.apt_pkg.Acquire(fetchProgress) 5307s # need to keep AcquireFile references 5307s acquire_queue = [] 5307s # add any dependencies to the packages list 5307s if install_deps: 5307s deps = [] 5307s for pkg, ver in packages: 5307s try: 5307s cache_pkg = apt_cache[pkg] 5307s except KeyError: 5307s m = f"package {pkg.replace('%', '%%')} does not exist, ignoring" 5307s obsolete += f"{m}\n" 5307s apport.logging.warning("%s", m) 5307s continue 5307s for dep in cache_pkg.candidate.dependencies: 5307s # the dependency may be satisfied by a different package 5307s if dep[0].name not in apt_cache: 5307s dep[0] = apt_cache.get_providing_packages(dep[0].name)[0] 5307s # the version in dep is the one from pkg's dependencies, 5307s # so use the version from the cache 5307s dep_pkg_vers = apt_cache[dep[0].name].candidate.version 5307s # if the dependency is in the list of packages we don't 5307s # need to look up its dependencies again 5307s if dep[0].name in [pkg[0] for pkg in packages]: 5307s continue 5307s # if the package is already extracted in the sandbox 5307s # because the report needs that package we don't want to 5307s # install a newer version which may cause a CRC mismatch 5307s # with the installed dbg symbols 5307s if dep[0].name in pkg_versions: 5307s inst_version = pkg_versions[dep[0].name] 5307s if self.compare_versions(inst_version, dep_pkg_vers) > -1: 5307s deps.append((dep[0].name, inst_version)) 5307s else: 5307s deps.append((dep[0].name, dep_pkg_vers)) 5307s else: 5307s deps.append((dep[0].name, dep_pkg_vers)) 5307s if dep[0].name not in [pkg[0] for pkg in packages]: 5307s packages.append((dep[0].name, None)) 5307s packages.extend(deps) 5307s 5307s for pkg, ver in packages: 5307s try: 5307s cache_pkg = apt_cache[pkg] 5307s except KeyError: 5307s m = f"package {pkg.replace('%', '%%')} does not exist, ignoring" 5307s obsolete += f"{m}\n" 5307s apport.logging.warning("%s", m) 5307s continue 5307s 5307s # try to select matching version 5307s try: 5307s if ver: 5307s cache_pkg.candidate = cache_pkg.versions[ver] 5307s except KeyError: 5307s (lp_url, sha1sum) = self.get_lp_binary_package( 5307s release, pkg, ver, architecture 5307s ) 5307s if lp_url: 5307s acquire_queue.append( 5307s apt.apt_pkg.AcquireFile( 5307s fetcher, lp_url, hash=f"sha1:{sha1sum}", destdir=archivedir 5307s ) 5307s ) 5307s lp_cache[pkg] = ver 5307s else: 5307s obsolete += ( 5307s f"{pkg} version {ver} required," 5307s f" but {cache_pkg.candidate.version} is available\n" 5307s ) 5307s ver = cache_pkg.candidate.version 5307s 5307s candidate = cache_pkg.candidate 5307s real_pkgs.add(pkg) 5307s 5307s if permanent_rootdir: 5307s virtual_mapping = self._virtual_mapping(aptroot) 5307s # Remember all the virtual packages that this package provides, 5307s # so that if we encounter that virtual package as a 5307s # Conflicts/Replaces later, we know to remove this package from 5307s # the cache. 5307s for p in candidate.provides: 5307s virtual_mapping.setdefault(p, set()).add(pkg) 5307s conflicts = [] 5307s if "Conflicts" in candidate.record: 5307s conflicts += apt.apt_pkg.parse_depends( 5307s candidate.record["Conflicts"] 5307s ) 5307s if "Replaces" in candidate.record: 5307s conflicts += apt.apt_pkg.parse_depends(candidate.record["Replaces"]) 5307s for conflict in conflicts: 5307s # if the package conflicts with itself its wonky e.g. 5307s # gdb in artful 5307s if conflict[0][0] == candidate.package.name: 5307s continue 5307s # apt_pkg.parse_depends needs to handle the or operator, 5307s # but as policy states it is invalid to use that in 5307s # Replaces/Depends, we can safely choose the first value 5307s # here. 5307s conflict = conflict[0] 5307s if apt_cache.is_virtual_package(conflict[0]): 5307s try: 5307s providers = virtual_mapping[conflict[0]] 5307s except KeyError: 5307s # We may not have seen the virtual package that 5307s # this conflicts with, so we can assume it's not 5307s # unpacked into the sandbox. 5307s continue 5307s for p in providers: 5307s # if the candidate package being installed 5307s # conflicts with but also provides a virtual 5307s # package don't act on the candidate e.g. 5307s # libpam-modules and libpam-mkhomedir in artful 5307s if p == candidate.package.name: 5307s continue 5307s debs = os.path.join(archivedir, f"{p}_*.deb") 5307s for path in glob.glob(debs): 5307s ver = self._deb_version(path) 5307s if apt.apt_pkg.check_dep(ver, conflict[2], conflict[1]): 5307s os.unlink(path) 5307s try: 5307s del pkg_versions[p] 5307s except KeyError: 5307s pass 5307s del providers 5307s else: 5307s debs = os.path.join(archivedir, f"{conflict[0]}_*.deb") 5307s for path in glob.glob(debs): 5307s ver = self._deb_version(path) 5307s if apt.apt_pkg.check_dep(ver, conflict[2], conflict[1]): 5307s os.unlink(path) 5307s try: 5307s del pkg_versions[conflict[0]] 5307s except KeyError: 5307s pass 5307s 5307s if candidate.architecture != "all" and install_dbg: 5307s try: 5307s dbg_pkg = f"{pkg}-dbg" 5307s dbg = apt_cache[dbg_pkg] 5307s pkg_found = False 5307s # try to get the same version as pkg 5307s if ver: 5307s try: 5307s dbg.candidate = dbg.versions[ver] 5307s pkg_found = True 5307s except KeyError: 5307s (lp_url, sha1sum) = self.get_lp_binary_package( 5307s release, dbg_pkg, ver, architecture 5307s ) 5307s if lp_url: 5307s acquire_queue.append( 5307s apt.apt_pkg.AcquireFile( 5307s fetcher, 5307s lp_url, 5307s hash=f"sha1:{sha1sum}", 5307s destdir=archivedir, 5307s ) 5307s ) 5307s lp_cache[dbg_pkg] = ver 5307s pkg_found = True 5307s # if it can't be found in Launchpad failover to a 5307s # code path that'll use -dbgsym packages 5307s else: 5307s raise 5307s if not pkg_found: 5307s try: 5307s dbg.candidate = dbg.versions[candidate.version] 5307s except KeyError: 5307s obsolete += ( 5307s f"outdated -dbg package for {pkg}:" 5307s f" package version {ver}" 5307s f" -dbg version {dbg.candidate.version}\n" 5307s ) 5307s real_pkgs.add(dbg_pkg) 5307s except KeyError: 5307s # install all -dbg from the source package; lookup() just 5307s # works from the current list pointer, we always need to 5307s # start from the beginning 5307s src_records.restart() 5307s if src_records.lookup(candidate.source_name): 5307s # ignore transitional packages 5307s # False positive, see 5307s # https://github.com/PyCQA/pylint/issues/7122 5307s # pylint: disable=not-an-iterable 5307s dbgs = [ 5307s p 5307s for p in src_records.binaries 5307s if p.endswith("-dbg") 5307s and p in apt_cache 5307s and "transitional" not in apt_cache[p].candidate.description 5307s ] 5307s # if a specific version of a package was requested 5307s # only install dbg pkgs whose version matches 5307s if ver: 5307s for dbg in dbgs: 5307s if apt_cache[dbg].candidate.version != ver: 5307s dbgs.remove(dbg) 5307s else: 5307s dbgs = [] 5307s if dbgs: 5307s for p in dbgs: 5307s # if the package has already been added to 5307s # real_pkgs don't search for it again 5307s if p in real_pkgs: 5307s continue 5307s pkg_found = False 5307s # prefer the version requested 5307s if ver: 5307s try: 5307s apt_cache[p].candidate = apt_cache[p].versions[ver] 5307s pkg_found = True 5307s except KeyError: 5307s (lp_url, sha1sum) = self.get_lp_binary_package( 5307s release, p, ver, architecture 5307s ) 5307s if lp_url: 5307s acquire_queue.append( 5307s apt.apt_pkg.AcquireFile( 5307s fetcher, 5307s lp_url, 5307s hash=f"sha1:{sha1sum}", 5307s destdir=archivedir, 5307s ) 5307s ) 5307s lp_cache[p] = ver 5307s pkg_found = True 5307s if not pkg_found: 5307s try: 5307s apt_cache[p].candidate = apt_cache[p].versions[ 5307s candidate.version 5307s ] 5307s except KeyError: 5307s # we don't really expect that, but it's 5307s # possible that other binaries have a 5307s # different version 5307s pass 5307s real_pkgs.add(p) 5307s else: 5307s pkg_found = False 5307s dbgsym_pkg = f"{pkg}-dbgsym" 5307s try: 5307s dbgsym = apt_cache[dbgsym_pkg] 5307s real_pkgs.add(dbgsym_pkg) 5307s # prefer the version requested 5307s if ver: 5307s try: 5307s dbgsym.candidate = dbgsym.versions[ver] 5307s pkg_found = True 5307s except KeyError: 5307s (lp_url, sha1sum) = self.get_lp_binary_package( 5307s release, dbgsym_pkg, ver, architecture 5307s ) 5307s if lp_url: 5307s acquire_queue.append( 5307s apt.apt_pkg.AcquireFile( 5307s fetcher, 5307s lp_url, 5307s hash=f"sha1:{sha1sum}", 5307s destdir=archivedir, 5307s ) 5307s ) 5307s lp_cache[dbgsym_pkg] = ver 5307s pkg_found = True 5307s if not pkg_found: 5307s try: 5307s dbgsym.candidate = dbgsym.versions[ 5307s candidate.version 5307s ] 5307s except KeyError: 5307s obsolete += ( 5307s f"outdated debug symbol package" 5307s f" for {pkg}: package version" 5307s f" {candidate.version}" 5307s f" dbgsym version" 5307s f" {dbgsym.candidate.version}\n" 5307s ) 5307s 5307s except KeyError: 5307s if ver: 5307s (lp_url, sha1sum) = self.get_lp_binary_package( 5307s release, dbgsym_pkg, ver, architecture 5307s ) 5307s if lp_url: 5307s acquire_queue.append( 5307s apt.apt_pkg.AcquireFile( 5307s fetcher, 5307s lp_url, 5307s hash=f"sha1:{sha1sum}", 5307s destdir=archivedir, 5307s ) 5307s ) 5307s lp_cache[dbgsym_pkg] = ver 5307s pkg_found = True 5307s if not pkg_found: 5307s obsolete += f"no debug symbol package found for {pkg}\n" 5307s 5307s # unpack packages, weed out the ones that are already installed (for 5307s # permanent sandboxes) 5307s logger = logging.getLogger(__name__) 5307s requested_pkgs = dict(packages) 5307s for p in real_pkgs.copy(): 5307s if p in requested_pkgs: 5307s if requested_pkgs[p] is None: 5307s # We already have the latest version of this package 5307s if pkg_versions.get(p) == apt_cache[p].candidate.version: 5307s logger.debug( 5307s "Removing %s which is already the right version", p 5307s ) 5307s real_pkgs.remove(p) 5307s else: 5307s logger.debug( 5307s "Installing %s version %s", 5307s p, 5307s apt_cache[p].candidate.version, 5307s ) 5307s apt_cache[p].mark_install(False, False) 5307s elif pkg_versions.get(p) != requested_pkgs[p]: 5307s logger.debug( 5307s "Installing %s version %s", p, apt_cache[p].candidate.version 5307s ) 5307s apt_cache[p].mark_install(False, False) 5307s elif pkg_versions.get(p) != apt_cache[p].candidate.version: 5307s logger.debug( 5307s "Installing %s version %s", p, apt_cache[p].candidate.version 5307s ) 5307s apt_cache[p].mark_install(False, False) 5307s else: 5307s logger.debug("Removing %s which is already the right version", p) 5307s real_pkgs.remove(p) 5307s elif pkg_versions.get(p) != apt_cache[p].candidate.version: 5307s logger.debug("Installing %s", p) 5307s apt_cache[p].mark_install(False, False) 5307s else: 5307s logger.debug("Removing %s which is already the right version", p) 5307s real_pkgs.remove(p) 5307s 5307s last_written = time.time() 5307s # fetch packages 5307s try: 5307s > apt_cache.fetch_archives(fetcher=fetcher) 5307s 5307s /usr/lib/python3/dist-packages/apport/packaging_impl/apt_dpkg.py:1321: 5307s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 5307s /usr/lib/python3/dist-packages/apt/cache.py:475: in fetch_archives 5307s return self._fetch_archives( 5307s /usr/lib/python3/dist-packages/apt/cache.py:443: in _fetch_archives 5307s return self._run_fetcher(fetcher, allow_unauthenticated) 5307s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 5307s 5307s self = 5307s fetcher = 5307s allow_unauthenticated = True 5307s 5307s def _run_fetcher( 5307s self, fetcher: apt_pkg.Acquire, allow_unauthenticated: bool | None 5307s ) -> int: 5307s if allow_unauthenticated is None: 5307s allow_unauthenticated = apt_pkg.config.find_b( 5307s "APT::Get::" "AllowUnauthenticated", False 5307s ) 5307s 5307s untrusted = [item for item in fetcher.items if not item.is_trusted] 5307s if untrusted and not allow_unauthenticated: 5307s raise UntrustedException( 5307s "Untrusted packages:\n%s" % "\n".join(i.desc_uri for i in untrusted) 5307s ) 5307s 5307s # do the actual fetching 5307s res = fetcher.run() 5307s 5307s # now check the result (this is the code from apt-get.cc) 5307s failed = False 5307s err_msg = "" 5307s for item in fetcher.items: 5307s if item.status == item.STAT_DONE: 5307s continue 5307s if item.STAT_IDLE: 5307s continue 5307s err_msg += f"Failed to fetch {item.desc_uri} {item.error_text}\n" 5307s failed = True 5307s 5307s # we raise a exception if the download failed or it was cancelt 5307s if res == fetcher.RESULT_CANCELLED: 5307s raise FetchCancelledException(err_msg) 5307s elif failed: 5307s > raise FetchFailedException(err_msg) 5307s E apt.cache.FetchFailedException: Failed to fetch https://launchpad.net/ubuntu/%2barchive/primary/%2bfiles/distro-info-data_0.43ubuntu1.9_all.deb Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::f3). - connect (101: Network is unreachable) Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::3ba). - connect (101: Network is unreachable) Could not connect to launchpad.net:443 (185.125.189.223), connection timed out Could not connect to launchpad.net:443 (185.125.189.222), connection timed out 5307s E Failed to fetch https://launchpad.net/ubuntu/%2barchive/primary/%2bfiles/libc6_2.31-0ubuntu9.4_amd64.deb Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::f3). - connect (101: Network is unreachable) Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::3ba). - connect (101: Network is unreachable) 5307s E Failed to fetch https://launchpad.net/ubuntu/%2barchive/primary/%2bfiles/libc6-dbg_2.31-0ubuntu9.4_amd64.deb Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::f3). - connect (101: Network is unreachable) Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::3ba). - connect (101: Network is unreachable) 5307s E Failed to fetch https://launchpad.net/ubuntu/%2barchive/primary/%2bfiles/qemu-utils_4.2-3ubuntu6.1_amd64.deb Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::f3). - connect (101: Network is unreachable) Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::3ba). - connect (101: Network is unreachable) 5307s E Failed to fetch https://launchpad.net/ubuntu/%2barchive/primary/%2bfiles/qemu-utils-dbgsym_4.2-3ubuntu6.1_amd64.ddeb Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::f3). - connect (101: Network is unreachable) Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::3ba). - connect (101: Network is unreachable) 5307s 5307s /usr/lib/python3/dist-packages/apt/cache.py:424: FetchFailedException 5307s 5307s During handling of the above exception, another exception occurred: 5307s 5307s configdir = '/tmp/tmp94b6hill/config', cachedir = '/tmp/tmp94b6hill/cache' 5307s rootdir = '/tmp/tmp94b6hill/root', apt_style = 'one-line' 5307s 5307s @pytest.mark.skipif(not has_internet(), reason="online test") 5307s def test_install_packages_from_launchpad(configdir, cachedir, rootdir, apt_style): 5307s """install_packages() using packages only available on Launchpad""" 5307s release = _setup_foonux_config(configdir, apt_style, release="focal") 5307s # Wanted are superseded versions from -updates or -security. 5307s wanted = { 5307s "distro-info-data": "0.43ubuntu1.9", # arch all 5307s "libc6": "2.31-0ubuntu9.4", # -dbg, arch specific 5307s "qemu-utils": "1:4.2-3ubuntu6.1", # -dbgsym, arch specific 5307s } 5307s > obsolete = impl.install_packages( 5307s rootdir, configdir, release, list(wanted.items()), False, cachedir 5307s ) 5307s 5307s tests/system/test_packaging_apt_dpkg.py:581: 5307s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 5307s 5307s self = 5307s rootdir = '/tmp/tmp94b6hill/root', configdir = '/tmp/tmp94b6hill/config' 5307s release = 'Foonux 20.04' 5307s packages = [('distro-info-data', '0.43ubuntu1.9'), ('libc6', '2.31-0ubuntu9.4'), ('qemu-utils', '1:4.2-3ubuntu6.1')] 5307s verbose = False, cache_dir = '/tmp/tmp94b6hill/cache', permanent_rootdir = False 5307s architecture = 'amd64', origins = None, install_dbg = True, install_deps = False 5307s 5307s def install_packages( 5307s self, 5307s rootdir, 5307s configdir, 5307s release, 5307s packages, 5307s verbose=False, 5307s cache_dir=None, 5307s permanent_rootdir=False, 5307s architecture=None, 5307s origins=None, 5307s install_dbg=True, 5307s install_deps=False, 5307s ): # pylint: disable=too-many-arguments 5307s # TODO: Split into smaller functions/methods 5307s # pylint: disable=too-many-branches,too-many-locals 5307s # pylint: disable=too-many-nested-blocks,too-many-statements 5307s """Install packages into a sandbox (for apport-retrace). 5307s 5307s In order to work without any special permissions and without touching 5307s the running system, this should only download and unpack packages into 5307s the given root directory, not install them into the system. 5307s 5307s configdir points to a directory with by-release configuration files for 5307s the packaging system; this is completely dependent on the backend 5307s implementation, the only assumption is that this looks into 5307s configdir/release/, so that you can use retracing for multiple 5307s DistroReleases. As a special case, if configdir is None, it uses the 5307s current system configuration, and "release" is ignored. 5307s 5307s release is the value of the report's 'DistroRelease' field. 5307s 5307s packages is a list of ('packagename', 'version') tuples. If the version 5307s is None, it should install the most current available version. 5307s 5307s If cache_dir is given, then the downloaded packages will be stored 5307s there, to speed up subsequent retraces. 5307s 5307s If permanent_rootdir is True, then the sandbox created from the 5307s downloaded packages will be reused, to speed up subsequent retraces. 5307s 5307s If architecture is given, the sandbox will be created with packages of 5307s the given architecture (as specified in a report's "Architecture" 5307s field). If not given it defaults to the host system's architecture. 5307s 5307s If origins is given, the sandbox will be created with apt data sources 5307s for foreign origins. 5307s 5307s If install_deps is True, then the dependencies of packages will also 5307s be installed. 5307s 5307s Return a string with outdated packages, or an empty string if all 5307s packages were installed. 5307s 5307s If something is wrong with the environment (invalid configuration, 5307s package servers down, etc.), this should raise a SystemError with a 5307s meaningful error message. 5307s """ 5307s if not architecture: 5307s architecture = self.get_system_architecture() 5307s if not configdir: 5307s apt_dir = "/etc/apt" 5307s self._current_release_codename = self.get_distro_codename() 5307s else: 5307s # support architecture specific config, fall back to global config 5307s apt_dir = os.path.join(configdir, release) 5307s if architecture != self.get_system_architecture(): 5307s arch_apt_dir = os.path.join(configdir, release, architecture) 5307s arch_old_sources = os.path.join(arch_apt_dir, "sources.list") 5307s arch_sources_dir = os.path.join(arch_apt_dir, "sources.list.d") 5307s if os.path.exists(arch_old_sources) or ( 5307s os.path.exists(arch_sources_dir) and os.listdir(arch_sources_dir) 5307s ): 5307s apt_dir = arch_apt_dir 5307s 5307s # set mirror for get_file_package() 5307s try: 5307s self.set_mirror(self._get_primary_mirror_from_apt_sources(apt_dir)) 5307s except SystemError as error: 5307s apport.logging.warning("cannot determine mirror: %s", str(error)) 5307s 5307s # set current release code name for _distro_release_to_codename 5307s with open( 5307s os.path.join(configdir, release, "codename"), encoding="utf-8" 5307s ) as f: 5307s self._current_release_codename = f.read().strip() 5307s 5307s # create apt sandbox 5307s if cache_dir: 5307s tmp_aptroot = False 5307s if architecture != self.get_system_architecture(): 5307s aptroot_arch = architecture 5307s else: 5307s aptroot_arch = "" 5307s if configdir: 5307s aptroot = os.path.join(cache_dir, release, aptroot_arch, "apt") 5307s else: 5307s aptroot = os.path.join(cache_dir, "system", aptroot_arch, "apt") 5307s if not os.path.isdir(aptroot): 5307s os.makedirs(aptroot) 5307s else: 5307s tmp_aptroot = True 5307s aptroot = tempfile.mkdtemp() 5307s 5307s apt.apt_pkg.config.set("APT::Architecture", architecture) 5307s apt.apt_pkg.config.set("Acquire::Languages", "none") 5307s # directly connect to Launchpad when downloading deb files 5307s apt.apt_pkg.config.set("Acquire::http::Proxy::api.launchpad.net", "DIRECT") 5307s apt.apt_pkg.config.set("Acquire::http::Proxy::launchpad.net", "DIRECT") 5307s 5307s if verbose: 5307s fetchProgress = apt.progress.text.AcquireProgress() 5307s else: 5307s fetchProgress = apt.progress.base.AcquireProgress() 5307s if not tmp_aptroot: 5307s apt_cache = self._sandbox_cache( 5307s aptroot, 5307s apt_dir, 5307s fetchProgress, 5307s self.get_distro_name(), 5307s self._current_release_codename, 5307s origins, 5307s architecture, 5307s ) 5307s else: 5307s self._build_apt_sandbox( 5307s aptroot, 5307s apt_dir, 5307s self.get_distro_name(), 5307s self._current_release_codename, 5307s origins, 5307s ) 5307s apt_cache = apt.Cache(rootdir=os.path.abspath(aptroot)) 5307s try: 5307s apt_cache.update(fetchProgress) 5307s except apt.cache.FetchFailedException as error: 5307s raise SystemError(str(error)) from error 5307s apt_cache.open() 5307s 5307s archivedir = apt.apt_pkg.config.find_dir("Dir::Cache::archives") 5307s 5307s obsolete = "" 5307s 5307s src_records = apt.apt_pkg.SourceRecords() 5307s 5307s # read original package list 5307s pkg_list = os.path.join(rootdir, "packages.txt") 5307s pkg_versions = {} 5307s if os.path.exists(pkg_list): 5307s with open(pkg_list, encoding="utf-8") as f: 5307s for line in f: 5307s line = line.strip() 5307s if not line: 5307s continue 5307s (p, v) = line.split() 5307s pkg_versions[p] = v 5307s 5307s # mark packages for installation 5307s real_pkgs = set() 5307s lp_cache = {} 5307s fetcher = apt.apt_pkg.Acquire(fetchProgress) 5307s # need to keep AcquireFile references 5307s acquire_queue = [] 5307s # add any dependencies to the packages list 5307s if install_deps: 5307s deps = [] 5307s for pkg, ver in packages: 5307s try: 5307s cache_pkg = apt_cache[pkg] 5307s except KeyError: 5307s m = f"package {pkg.replace('%', '%%')} does not exist, ignoring" 5307s obsolete += f"{m}\n" 5307s apport.logging.warning("%s", m) 5307s continue 5307s for dep in cache_pkg.candidate.dependencies: 5307s # the dependency may be satisfied by a different package 5307s if dep[0].name not in apt_cache: 5307s dep[0] = apt_cache.get_providing_packages(dep[0].name)[0] 5307s # the version in dep is the one from pkg's dependencies, 5307s # so use the version from the cache 5307s dep_pkg_vers = apt_cache[dep[0].name].candidate.version 5307s # if the dependency is in the list of packages we don't 5307s # need to look up its dependencies again 5307s if dep[0].name in [pkg[0] for pkg in packages]: 5307s continue 5307s # if the package is already extracted in the sandbox 5307s # because the report needs that package we don't want to 5307s # install a newer version which may cause a CRC mismatch 5307s # with the installed dbg symbols 5307s if dep[0].name in pkg_versions: 5307s inst_version = pkg_versions[dep[0].name] 5307s if self.compare_versions(inst_version, dep_pkg_vers) > -1: 5307s deps.append((dep[0].name, inst_version)) 5307s else: 5307s deps.append((dep[0].name, dep_pkg_vers)) 5307s else: 5307s deps.append((dep[0].name, dep_pkg_vers)) 5307s if dep[0].name not in [pkg[0] for pkg in packages]: 5307s packages.append((dep[0].name, None)) 5307s packages.extend(deps) 5307s 5307s for pkg, ver in packages: 5307s try: 5307s cache_pkg = apt_cache[pkg] 5307s except KeyError: 5307s m = f"package {pkg.replace('%', '%%')} does not exist, ignoring" 5307s obsolete += f"{m}\n" 5307s apport.logging.warning("%s", m) 5307s continue 5307s 5307s # try to select matching version 5307s try: 5307s if ver: 5307s cache_pkg.candidate = cache_pkg.versions[ver] 5307s except KeyError: 5307s (lp_url, sha1sum) = self.get_lp_binary_package( 5307s release, pkg, ver, architecture 5307s ) 5307s if lp_url: 5307s acquire_queue.append( 5307s apt.apt_pkg.AcquireFile( 5307s fetcher, lp_url, hash=f"sha1:{sha1sum}", destdir=archivedir 5307s ) 5307s ) 5307s lp_cache[pkg] = ver 5307s else: 5307s obsolete += ( 5307s f"{pkg} version {ver} required," 5307s f" but {cache_pkg.candidate.version} is available\n" 5307s ) 5307s ver = cache_pkg.candidate.version 5307s 5307s candidate = cache_pkg.candidate 5307s real_pkgs.add(pkg) 5307s 5307s if permanent_rootdir: 5307s virtual_mapping = self._virtual_mapping(aptroot) 5307s # Remember all the virtual packages that this package provides, 5307s # so that if we encounter that virtual package as a 5307s # Conflicts/Replaces later, we know to remove this package from 5307s # the cache. 5307s for p in candidate.provides: 5307s virtual_mapping.setdefault(p, set()).add(pkg) 5307s conflicts = [] 5307s if "Conflicts" in candidate.record: 5307s conflicts += apt.apt_pkg.parse_depends( 5307s candidate.record["Conflicts"] 5307s ) 5307s if "Replaces" in candidate.record: 5307s conflicts += apt.apt_pkg.parse_depends(candidate.record["Replaces"]) 5307s for conflict in conflicts: 5307s # if the package conflicts with itself its wonky e.g. 5307s # gdb in artful 5307s if conflict[0][0] == candidate.package.name: 5307s continue 5307s # apt_pkg.parse_depends needs to handle the or operator, 5307s # but as policy states it is invalid to use that in 5307s # Replaces/Depends, we can safely choose the first value 5307s # here. 5307s conflict = conflict[0] 5307s if apt_cache.is_virtual_package(conflict[0]): 5307s try: 5307s providers = virtual_mapping[conflict[0]] 5307s except KeyError: 5307s # We may not have seen the virtual package that 5307s # this conflicts with, so we can assume it's not 5307s # unpacked into the sandbox. 5307s continue 5307s for p in providers: 5307s # if the candidate package being installed 5307s # conflicts with but also provides a virtual 5307s # package don't act on the candidate e.g. 5307s # libpam-modules and libpam-mkhomedir in artful 5307s if p == candidate.package.name: 5307s continue 5307s debs = os.path.join(archivedir, f"{p}_*.deb") 5307s for path in glob.glob(debs): 5307s ver = self._deb_version(path) 5307s if apt.apt_pkg.check_dep(ver, conflict[2], conflict[1]): 5307s os.unlink(path) 5307s try: 5307s del pkg_versions[p] 5307s except KeyError: 5307s pass 5307s del providers 5307s else: 5307s debs = os.path.join(archivedir, f"{conflict[0]}_*.deb") 5307s for path in glob.glob(debs): 5307s ver = self._deb_version(path) 5307s if apt.apt_pkg.check_dep(ver, conflict[2], conflict[1]): 5307s os.unlink(path) 5307s try: 5307s del pkg_versions[conflict[0]] 5307s except KeyError: 5307s pass 5307s 5307s if candidate.architecture != "all" and install_dbg: 5307s try: 5307s dbg_pkg = f"{pkg}-dbg" 5307s dbg = apt_cache[dbg_pkg] 5307s pkg_found = False 5307s # try to get the same version as pkg 5307s if ver: 5307s try: 5307s dbg.candidate = dbg.versions[ver] 5307s pkg_found = True 5307s except KeyError: 5307s (lp_url, sha1sum) = self.get_lp_binary_package( 5307s release, dbg_pkg, ver, architecture 5307s ) 5307s if lp_url: 5307s acquire_queue.append( 5307s apt.apt_pkg.AcquireFile( 5307s fetcher, 5307s lp_url, 5307s hash=f"sha1:{sha1sum}", 5307s destdir=archivedir, 5307s ) 5307s ) 5307s lp_cache[dbg_pkg] = ver 5307s pkg_found = True 5307s # if it can't be found in Launchpad failover to a 5307s # code path that'll use -dbgsym packages 5307s else: 5307s raise 5307s if not pkg_found: 5307s try: 5307s dbg.candidate = dbg.versions[candidate.version] 5307s except KeyError: 5307s obsolete += ( 5307s f"outdated -dbg package for {pkg}:" 5307s f" package version {ver}" 5307s f" -dbg version {dbg.candidate.version}\n" 5307s ) 5307s real_pkgs.add(dbg_pkg) 5307s except KeyError: 5307s # install all -dbg from the source package; lookup() just 5307s # works from the current list pointer, we always need to 5307s # start from the beginning 5307s src_records.restart() 5307s if src_records.lookup(candidate.source_name): 5307s # ignore transitional packages 5307s # False positive, see 5307s # https://github.com/PyCQA/pylint/issues/7122 5307s # pylint: disable=not-an-iterable 5307s dbgs = [ 5307s p 5307s for p in src_records.binaries 5307s if p.endswith("-dbg") 5307s and p in apt_cache 5307s and "transitional" not in apt_cache[p].candidate.description 5307s ] 5307s # if a specific version of a package was requested 5307s # only install dbg pkgs whose version matches 5307s if ver: 5307s for dbg in dbgs: 5307s if apt_cache[dbg].candidate.version != ver: 5307s dbgs.remove(dbg) 5307s else: 5307s dbgs = [] 5307s if dbgs: 5307s for p in dbgs: 5307s # if the package has already been added to 5307s # real_pkgs don't search for it again 5307s if p in real_pkgs: 5307s continue 5307s pkg_found = False 5307s # prefer the version requested 5307s if ver: 5307s try: 5307s apt_cache[p].candidate = apt_cache[p].versions[ver] 5307s pkg_found = True 5307s except KeyError: 5307s (lp_url, sha1sum) = self.get_lp_binary_package( 5307s release, p, ver, architecture 5307s ) 5307s if lp_url: 5307s acquire_queue.append( 5307s apt.apt_pkg.AcquireFile( 5307s fetcher, 5307s lp_url, 5307s hash=f"sha1:{sha1sum}", 5307s destdir=archivedir, 5307s ) 5307s ) 5307s lp_cache[p] = ver 5307s pkg_found = True 5307s if not pkg_found: 5307s try: 5307s apt_cache[p].candidate = apt_cache[p].versions[ 5307s candidate.version 5307s ] 5307s except KeyError: 5307s # we don't really expect that, but it's 5307s # possible that other binaries have a 5307s # different version 5307s pass 5307s real_pkgs.add(p) 5307s else: 5307s pkg_found = False 5307s dbgsym_pkg = f"{pkg}-dbgsym" 5307s try: 5307s dbgsym = apt_cache[dbgsym_pkg] 5307s real_pkgs.add(dbgsym_pkg) 5307s # prefer the version requested 5307s if ver: 5307s try: 5307s dbgsym.candidate = dbgsym.versions[ver] 5307s pkg_found = True 5307s except KeyError: 5307s (lp_url, sha1sum) = self.get_lp_binary_package( 5307s release, dbgsym_pkg, ver, architecture 5307s ) 5307s if lp_url: 5307s acquire_queue.append( 5307s apt.apt_pkg.AcquireFile( 5307s fetcher, 5307s lp_url, 5307s hash=f"sha1:{sha1sum}", 5307s destdir=archivedir, 5307s ) 5307s ) 5307s lp_cache[dbgsym_pkg] = ver 5307s pkg_found = True 5307s if not pkg_found: 5307s try: 5307s dbgsym.candidate = dbgsym.versions[ 5307s candidate.version 5307s ] 5307s except KeyError: 5307s obsolete += ( 5307s f"outdated debug symbol package" 5307s f" for {pkg}: package version" 5307s f" {candidate.version}" 5307s f" dbgsym version" 5307s f" {dbgsym.candidate.version}\n" 5307s ) 5307s 5307s except KeyError: 5307s if ver: 5307s (lp_url, sha1sum) = self.get_lp_binary_package( 5307s release, dbgsym_pkg, ver, architecture 5307s ) 5307s if lp_url: 5307s acquire_queue.append( 5307s apt.apt_pkg.AcquireFile( 5307s fetcher, 5307s lp_url, 5307s hash=f"sha1:{sha1sum}", 5307s destdir=archivedir, 5307s ) 5307s ) 5307s lp_cache[dbgsym_pkg] = ver 5307s pkg_found = True 5307s if not pkg_found: 5307s obsolete += f"no debug symbol package found for {pkg}\n" 5307s 5307s # unpack packages, weed out the ones that are already installed (for 5307s # permanent sandboxes) 5307s logger = logging.getLogger(__name__) 5307s requested_pkgs = dict(packages) 5307s for p in real_pkgs.copy(): 5307s if p in requested_pkgs: 5307s if requested_pkgs[p] is None: 5307s # We already have the latest version of this package 5307s if pkg_versions.get(p) == apt_cache[p].candidate.version: 5307s logger.debug( 5307s "Removing %s which is already the right version", p 5307s ) 5307s real_pkgs.remove(p) 5307s else: 5307s logger.debug( 5307s "Installing %s version %s", 5307s p, 5307s apt_cache[p].candidate.version, 5307s ) 5307s apt_cache[p].mark_install(False, False) 5307s elif pkg_versions.get(p) != requested_pkgs[p]: 5307s logger.debug( 5307s "Installing %s version %s", p, apt_cache[p].candidate.version 5307s ) 5307s apt_cache[p].mark_install(False, False) 5307s elif pkg_versions.get(p) != apt_cache[p].candidate.version: 5307s logger.debug( 5307s "Installing %s version %s", p, apt_cache[p].candidate.version 5307s ) 5307s apt_cache[p].mark_install(False, False) 5307s else: 5307s logger.debug("Removing %s which is already the right version", p) 5307s real_pkgs.remove(p) 5307s elif pkg_versions.get(p) != apt_cache[p].candidate.version: 5307s logger.debug("Installing %s", p) 5307s apt_cache[p].mark_install(False, False) 5307s else: 5307s logger.debug("Removing %s which is already the right version", p) 5307s real_pkgs.remove(p) 5307s 5307s last_written = time.time() 5307s # fetch packages 5307s try: 5307s apt_cache.fetch_archives(fetcher=fetcher) 5307s except apt.cache.FetchFailedException as error: 5307s apport.logging.error( 5307s "Package download error, try again later: %s", str(error) 5307s ) 5307s > sys.exit(1) # transient error 5307s E SystemExit: 1 5307s 5307s /usr/lib/python3/dist-packages/apport/packaging_impl/apt_dpkg.py:1326: SystemExit 5307s ----------------------------- Captured stderr call ----------------------------- 5307s ERROR: Package download error, try again later: Failed to fetch https://launchpad.net/ubuntu/%2barchive/primary/%2bfiles/distro-info-data_0.43ubuntu1.9_all.deb Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::f3). - connect (101: Network is unreachable) Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::3ba). - connect (101: Network is unreachable) Could not connect to launchpad.net:443 (185.125.189.223), connection timed out Could not connect to launchpad.net:443 (185.125.189.222), connection timed out 5307s Failed to fetch https://launchpad.net/ubuntu/%2barchive/primary/%2bfiles/libc6_2.31-0ubuntu9.4_amd64.deb Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::f3). - connect (101: Network is unreachable) Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::3ba). - connect (101: Network is unreachable) 5307s Failed to fetch https://launchpad.net/ubuntu/%2barchive/primary/%2bfiles/libc6-dbg_2.31-0ubuntu9.4_amd64.deb Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::f3). - connect (101: Network is unreachable) Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::3ba). - connect (101: Network is unreachable) 5307s Failed to fetch https://launchpad.net/ubuntu/%2barchive/primary/%2bfiles/qemu-utils_4.2-3ubuntu6.1_amd64.deb Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::f3). - connect (101: Network is unreachable) Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::3ba). - connect (101: Network is unreachable) 5307s Failed to fetch https://launchpad.net/ubuntu/%2barchive/primary/%2bfiles/qemu-utils-dbgsym_4.2-3ubuntu6.1_amd64.ddeb Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::f3). - connect (101: Network is unreachable) Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::3ba). - connect (101: Network is unreachable) 5307s 5307s _________________ test_install_packages_from_launchpad[deb822] _________________ 5307s 5307s self = 5307s rootdir = '/tmp/tmp_gqoft60/root', configdir = '/tmp/tmp_gqoft60/config' 5307s release = 'Foonux 20.04' 5307s packages = [('distro-info-data', '0.43ubuntu1.9'), ('libc6', '2.31-0ubuntu9.4'), ('qemu-utils', '1:4.2-3ubuntu6.1')] 5307s verbose = False, cache_dir = '/tmp/tmp_gqoft60/cache', permanent_rootdir = False 5307s architecture = 'amd64', origins = None, install_dbg = True, install_deps = False 5307s 5307s def install_packages( 5307s self, 5307s rootdir, 5307s configdir, 5307s release, 5307s packages, 5307s verbose=False, 5307s cache_dir=None, 5307s permanent_rootdir=False, 5307s architecture=None, 5307s origins=None, 5307s install_dbg=True, 5307s install_deps=False, 5307s ): # pylint: disable=too-many-arguments 5307s # TODO: Split into smaller functions/methods 5307s # pylint: disable=too-many-branches,too-many-locals 5307s # pylint: disable=too-many-nested-blocks,too-many-statements 5307s """Install packages into a sandbox (for apport-retrace). 5307s 5307s In order to work without any special permissions and without touching 5307s the running system, this should only download and unpack packages into 5307s the given root directory, not install them into the system. 5307s 5307s configdir points to a directory with by-release configuration files for 5307s the packaging system; this is completely dependent on the backend 5307s implementation, the only assumption is that this looks into 5307s configdir/release/, so that you can use retracing for multiple 5307s DistroReleases. As a special case, if configdir is None, it uses the 5307s current system configuration, and "release" is ignored. 5307s 5307s release is the value of the report's 'DistroRelease' field. 5307s 5307s packages is a list of ('packagename', 'version') tuples. If the version 5307s is None, it should install the most current available version. 5307s 5307s If cache_dir is given, then the downloaded packages will be stored 5307s there, to speed up subsequent retraces. 5307s 5307s If permanent_rootdir is True, then the sandbox created from the 5307s downloaded packages will be reused, to speed up subsequent retraces. 5307s 5307s If architecture is given, the sandbox will be created with packages of 5307s the given architecture (as specified in a report's "Architecture" 5307s field). If not given it defaults to the host system's architecture. 5307s 5307s If origins is given, the sandbox will be created with apt data sources 5307s for foreign origins. 5307s 5307s If install_deps is True, then the dependencies of packages will also 5307s be installed. 5307s 5307s Return a string with outdated packages, or an empty string if all 5307s packages were installed. 5307s 5307s If something is wrong with the environment (invalid configuration, 5307s package servers down, etc.), this should raise a SystemError with a 5307s meaningful error message. 5307s """ 5307s if not architecture: 5307s architecture = self.get_system_architecture() 5307s if not configdir: 5307s apt_dir = "/etc/apt" 5307s self._current_release_codename = self.get_distro_codename() 5307s else: 5307s # support architecture specific config, fall back to global config 5307s apt_dir = os.path.join(configdir, release) 5307s if architecture != self.get_system_architecture(): 5307s arch_apt_dir = os.path.join(configdir, release, architecture) 5307s arch_old_sources = os.path.join(arch_apt_dir, "sources.list") 5307s arch_sources_dir = os.path.join(arch_apt_dir, "sources.list.d") 5307s if os.path.exists(arch_old_sources) or ( 5307s os.path.exists(arch_sources_dir) and os.listdir(arch_sources_dir) 5307s ): 5307s apt_dir = arch_apt_dir 5307s 5307s # set mirror for get_file_package() 5307s try: 5307s self.set_mirror(self._get_primary_mirror_from_apt_sources(apt_dir)) 5307s except SystemError as error: 5307s apport.logging.warning("cannot determine mirror: %s", str(error)) 5307s 5307s # set current release code name for _distro_release_to_codename 5307s with open( 5307s os.path.join(configdir, release, "codename"), encoding="utf-8" 5307s ) as f: 5307s self._current_release_codename = f.read().strip() 5307s 5307s # create apt sandbox 5307s if cache_dir: 5307s tmp_aptroot = False 5307s if architecture != self.get_system_architecture(): 5307s aptroot_arch = architecture 5307s else: 5307s aptroot_arch = "" 5307s if configdir: 5307s aptroot = os.path.join(cache_dir, release, aptroot_arch, "apt") 5307s else: 5307s aptroot = os.path.join(cache_dir, "system", aptroot_arch, "apt") 5307s if not os.path.isdir(aptroot): 5307s os.makedirs(aptroot) 5307s else: 5307s tmp_aptroot = True 5307s aptroot = tempfile.mkdtemp() 5307s 5307s apt.apt_pkg.config.set("APT::Architecture", architecture) 5307s apt.apt_pkg.config.set("Acquire::Languages", "none") 5307s # directly connect to Launchpad when downloading deb files 5307s apt.apt_pkg.config.set("Acquire::http::Proxy::api.launchpad.net", "DIRECT") 5307s apt.apt_pkg.config.set("Acquire::http::Proxy::launchpad.net", "DIRECT") 5307s 5307s if verbose: 5307s fetchProgress = apt.progress.text.AcquireProgress() 5307s else: 5307s fetchProgress = apt.progress.base.AcquireProgress() 5307s if not tmp_aptroot: 5307s apt_cache = self._sandbox_cache( 5307s aptroot, 5307s apt_dir, 5307s fetchProgress, 5307s self.get_distro_name(), 5307s self._current_release_codename, 5307s origins, 5307s architecture, 5307s ) 5307s else: 5307s self._build_apt_sandbox( 5307s aptroot, 5307s apt_dir, 5307s self.get_distro_name(), 5307s self._current_release_codename, 5307s origins, 5307s ) 5307s apt_cache = apt.Cache(rootdir=os.path.abspath(aptroot)) 5307s try: 5307s apt_cache.update(fetchProgress) 5307s except apt.cache.FetchFailedException as error: 5307s raise SystemError(str(error)) from error 5307s apt_cache.open() 5307s 5307s archivedir = apt.apt_pkg.config.find_dir("Dir::Cache::archives") 5307s 5307s obsolete = "" 5307s 5307s src_records = apt.apt_pkg.SourceRecords() 5307s 5307s # read original package list 5307s pkg_list = os.path.join(rootdir, "packages.txt") 5307s pkg_versions = {} 5307s if os.path.exists(pkg_list): 5307s with open(pkg_list, encoding="utf-8") as f: 5307s for line in f: 5307s line = line.strip() 5307s if not line: 5307s continue 5307s (p, v) = line.split() 5307s pkg_versions[p] = v 5307s 5307s # mark packages for installation 5307s real_pkgs = set() 5307s lp_cache = {} 5307s fetcher = apt.apt_pkg.Acquire(fetchProgress) 5307s # need to keep AcquireFile references 5307s acquire_queue = [] 5307s # add any dependencies to the packages list 5307s if install_deps: 5307s deps = [] 5307s for pkg, ver in packages: 5307s try: 5307s cache_pkg = apt_cache[pkg] 5307s except KeyError: 5307s m = f"package {pkg.replace('%', '%%')} does not exist, ignoring" 5307s obsolete += f"{m}\n" 5307s apport.logging.warning("%s", m) 5307s continue 5307s for dep in cache_pkg.candidate.dependencies: 5307s # the dependency may be satisfied by a different package 5307s if dep[0].name not in apt_cache: 5307s dep[0] = apt_cache.get_providing_packages(dep[0].name)[0] 5307s # the version in dep is the one from pkg's dependencies, 5307s # so use the version from the cache 5307s dep_pkg_vers = apt_cache[dep[0].name].candidate.version 5307s # if the dependency is in the list of packages we don't 5307s # need to look up its dependencies again 5307s if dep[0].name in [pkg[0] for pkg in packages]: 5307s continue 5307s # if the package is already extracted in the sandbox 5307s # because the report needs that package we don't want to 5307s # install a newer version which may cause a CRC mismatch 5307s # with the installed dbg symbols 5307s if dep[0].name in pkg_versions: 5307s inst_version = pkg_versions[dep[0].name] 5307s if self.compare_versions(inst_version, dep_pkg_vers) > -1: 5307s deps.append((dep[0].name, inst_version)) 5307s else: 5307s deps.append((dep[0].name, dep_pkg_vers)) 5307s else: 5307s deps.append((dep[0].name, dep_pkg_vers)) 5307s if dep[0].name not in [pkg[0] for pkg in packages]: 5307s packages.append((dep[0].name, None)) 5307s packages.extend(deps) 5307s 5307s for pkg, ver in packages: 5307s try: 5307s cache_pkg = apt_cache[pkg] 5307s except KeyError: 5307s m = f"package {pkg.replace('%', '%%')} does not exist, ignoring" 5307s obsolete += f"{m}\n" 5307s apport.logging.warning("%s", m) 5307s continue 5307s 5307s # try to select matching version 5307s try: 5307s if ver: 5307s cache_pkg.candidate = cache_pkg.versions[ver] 5307s except KeyError: 5307s (lp_url, sha1sum) = self.get_lp_binary_package( 5307s release, pkg, ver, architecture 5307s ) 5307s if lp_url: 5307s acquire_queue.append( 5307s apt.apt_pkg.AcquireFile( 5307s fetcher, lp_url, hash=f"sha1:{sha1sum}", destdir=archivedir 5307s ) 5307s ) 5307s lp_cache[pkg] = ver 5307s else: 5307s obsolete += ( 5307s f"{pkg} version {ver} required," 5307s f" but {cache_pkg.candidate.version} is available\n" 5307s ) 5307s ver = cache_pkg.candidate.version 5307s 5307s candidate = cache_pkg.candidate 5307s real_pkgs.add(pkg) 5307s 5307s if permanent_rootdir: 5307s virtual_mapping = self._virtual_mapping(aptroot) 5307s # Remember all the virtual packages that this package provides, 5307s # so that if we encounter that virtual package as a 5307s # Conflicts/Replaces later, we know to remove this package from 5307s # the cache. 5307s for p in candidate.provides: 5307s virtual_mapping.setdefault(p, set()).add(pkg) 5307s conflicts = [] 5307s if "Conflicts" in candidate.record: 5307s conflicts += apt.apt_pkg.parse_depends( 5307s candidate.record["Conflicts"] 5307s ) 5307s if "Replaces" in candidate.record: 5307s conflicts += apt.apt_pkg.parse_depends(candidate.record["Replaces"]) 5307s for conflict in conflicts: 5307s # if the package conflicts with itself its wonky e.g. 5307s # gdb in artful 5307s if conflict[0][0] == candidate.package.name: 5307s continue 5307s # apt_pkg.parse_depends needs to handle the or operator, 5307s # but as policy states it is invalid to use that in 5307s # Replaces/Depends, we can safely choose the first value 5307s # here. 5307s conflict = conflict[0] 5307s if apt_cache.is_virtual_package(conflict[0]): 5307s try: 5307s providers = virtual_mapping[conflict[0]] 5307s except KeyError: 5307s # We may not have seen the virtual package that 5307s # this conflicts with, so we can assume it's not 5307s # unpacked into the sandbox. 5307s continue 5307s for p in providers: 5307s # if the candidate package being installed 5307s # conflicts with but also provides a virtual 5307s # package don't act on the candidate e.g. 5307s # libpam-modules and libpam-mkhomedir in artful 5307s if p == candidate.package.name: 5307s continue 5307s debs = os.path.join(archivedir, f"{p}_*.deb") 5307s for path in glob.glob(debs): 5307s ver = self._deb_version(path) 5307s if apt.apt_pkg.check_dep(ver, conflict[2], conflict[1]): 5307s os.unlink(path) 5307s try: 5307s del pkg_versions[p] 5307s except KeyError: 5307s pass 5307s del providers 5307s else: 5307s debs = os.path.join(archivedir, f"{conflict[0]}_*.deb") 5307s for path in glob.glob(debs): 5307s ver = self._deb_version(path) 5307s if apt.apt_pkg.check_dep(ver, conflict[2], conflict[1]): 5307s os.unlink(path) 5307s try: 5307s del pkg_versions[conflict[0]] 5307s except KeyError: 5307s pass 5307s 5307s if candidate.architecture != "all" and install_dbg: 5307s try: 5307s dbg_pkg = f"{pkg}-dbg" 5307s dbg = apt_cache[dbg_pkg] 5307s pkg_found = False 5307s # try to get the same version as pkg 5307s if ver: 5307s try: 5307s dbg.candidate = dbg.versions[ver] 5307s pkg_found = True 5307s except KeyError: 5307s (lp_url, sha1sum) = self.get_lp_binary_package( 5307s release, dbg_pkg, ver, architecture 5307s ) 5307s if lp_url: 5307s acquire_queue.append( 5307s apt.apt_pkg.AcquireFile( 5307s fetcher, 5307s lp_url, 5307s hash=f"sha1:{sha1sum}", 5307s destdir=archivedir, 5307s ) 5307s ) 5307s lp_cache[dbg_pkg] = ver 5307s pkg_found = True 5307s # if it can't be found in Launchpad failover to a 5307s # code path that'll use -dbgsym packages 5307s else: 5307s raise 5307s if not pkg_found: 5307s try: 5307s dbg.candidate = dbg.versions[candidate.version] 5307s except KeyError: 5307s obsolete += ( 5307s f"outdated -dbg package for {pkg}:" 5307s f" package version {ver}" 5307s f" -dbg version {dbg.candidate.version}\n" 5307s ) 5307s real_pkgs.add(dbg_pkg) 5307s except KeyError: 5307s # install all -dbg from the source package; lookup() just 5307s # works from the current list pointer, we always need to 5307s # start from the beginning 5307s src_records.restart() 5307s if src_records.lookup(candidate.source_name): 5307s # ignore transitional packages 5307s # False positive, see 5307s # https://github.com/PyCQA/pylint/issues/7122 5307s # pylint: disable=not-an-iterable 5307s dbgs = [ 5307s p 5307s for p in src_records.binaries 5307s if p.endswith("-dbg") 5307s and p in apt_cache 5307s and "transitional" not in apt_cache[p].candidate.description 5307s ] 5307s # if a specific version of a package was requested 5307s # only install dbg pkgs whose version matches 5307s if ver: 5307s for dbg in dbgs: 5307s if apt_cache[dbg].candidate.version != ver: 5307s dbgs.remove(dbg) 5307s else: 5307s dbgs = [] 5307s if dbgs: 5307s for p in dbgs: 5307s # if the package has already been added to 5307s # real_pkgs don't search for it again 5307s if p in real_pkgs: 5307s continue 5307s pkg_found = False 5307s # prefer the version requested 5307s if ver: 5307s try: 5307s apt_cache[p].candidate = apt_cache[p].versions[ver] 5307s pkg_found = True 5307s except KeyError: 5307s (lp_url, sha1sum) = self.get_lp_binary_package( 5307s release, p, ver, architecture 5307s ) 5307s if lp_url: 5307s acquire_queue.append( 5307s apt.apt_pkg.AcquireFile( 5307s fetcher, 5307s lp_url, 5307s hash=f"sha1:{sha1sum}", 5307s destdir=archivedir, 5307s ) 5307s ) 5307s lp_cache[p] = ver 5307s pkg_found = True 5307s if not pkg_found: 5307s try: 5307s apt_cache[p].candidate = apt_cache[p].versions[ 5307s candidate.version 5307s ] 5307s except KeyError: 5307s # we don't really expect that, but it's 5307s # possible that other binaries have a 5307s # different version 5307s pass 5307s real_pkgs.add(p) 5307s else: 5307s pkg_found = False 5307s dbgsym_pkg = f"{pkg}-dbgsym" 5307s try: 5307s dbgsym = apt_cache[dbgsym_pkg] 5307s real_pkgs.add(dbgsym_pkg) 5307s # prefer the version requested 5307s if ver: 5307s try: 5307s dbgsym.candidate = dbgsym.versions[ver] 5307s pkg_found = True 5307s except KeyError: 5307s (lp_url, sha1sum) = self.get_lp_binary_package( 5307s release, dbgsym_pkg, ver, architecture 5307s ) 5307s if lp_url: 5307s acquire_queue.append( 5307s apt.apt_pkg.AcquireFile( 5307s fetcher, 5307s lp_url, 5307s hash=f"sha1:{sha1sum}", 5307s destdir=archivedir, 5307s ) 5307s ) 5307s lp_cache[dbgsym_pkg] = ver 5307s pkg_found = True 5307s if not pkg_found: 5307s try: 5307s dbgsym.candidate = dbgsym.versions[ 5307s candidate.version 5307s ] 5307s except KeyError: 5307s obsolete += ( 5307s f"outdated debug symbol package" 5307s f" for {pkg}: package version" 5307s f" {candidate.version}" 5307s f" dbgsym version" 5307s f" {dbgsym.candidate.version}\n" 5307s ) 5307s 5307s except KeyError: 5307s if ver: 5307s (lp_url, sha1sum) = self.get_lp_binary_package( 5307s release, dbgsym_pkg, ver, architecture 5307s ) 5307s if lp_url: 5307s acquire_queue.append( 5307s apt.apt_pkg.AcquireFile( 5307s fetcher, 5307s lp_url, 5307s hash=f"sha1:{sha1sum}", 5307s destdir=archivedir, 5307s ) 5307s ) 5307s lp_cache[dbgsym_pkg] = ver 5307s pkg_found = True 5307s if not pkg_found: 5307s obsolete += f"no debug symbol package found for {pkg}\n" 5307s 5307s # unpack packages, weed out the ones that are already installed (for 5307s # permanent sandboxes) 5307s logger = logging.getLogger(__name__) 5307s requested_pkgs = dict(packages) 5307s for p in real_pkgs.copy(): 5307s if p in requested_pkgs: 5307s if requested_pkgs[p] is None: 5307s # We already have the latest version of this package 5307s if pkg_versions.get(p) == apt_cache[p].candidate.version: 5307s logger.debug( 5307s "Removing %s which is already the right version", p 5307s ) 5307s real_pkgs.remove(p) 5307s else: 5307s logger.debug( 5307s "Installing %s version %s", 5307s p, 5307s apt_cache[p].candidate.version, 5307s ) 5307s apt_cache[p].mark_install(False, False) 5307s elif pkg_versions.get(p) != requested_pkgs[p]: 5307s logger.debug( 5307s "Installing %s version %s", p, apt_cache[p].candidate.version 5307s ) 5307s apt_cache[p].mark_install(False, False) 5307s elif pkg_versions.get(p) != apt_cache[p].candidate.version: 5307s logger.debug( 5307s "Installing %s version %s", p, apt_cache[p].candidate.version 5307s ) 5307s apt_cache[p].mark_install(False, False) 5307s else: 5307s logger.debug("Removing %s which is already the right version", p) 5307s real_pkgs.remove(p) 5307s elif pkg_versions.get(p) != apt_cache[p].candidate.version: 5307s logger.debug("Installing %s", p) 5307s apt_cache[p].mark_install(False, False) 5307s else: 5307s logger.debug("Removing %s which is already the right version", p) 5307s real_pkgs.remove(p) 5307s 5307s last_written = time.time() 5307s # fetch packages 5307s try: 5307s > apt_cache.fetch_archives(fetcher=fetcher) 5307s 5307s /usr/lib/python3/dist-packages/apport/packaging_impl/apt_dpkg.py:1321: 5307s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 5307s /usr/lib/python3/dist-packages/apt/cache.py:475: in fetch_archives 5307s return self._fetch_archives( 5307s /usr/lib/python3/dist-packages/apt/cache.py:443: in _fetch_archives 5307s return self._run_fetcher(fetcher, allow_unauthenticated) 5307s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 5307s 5307s self = 5307s fetcher = 5307s allow_unauthenticated = True 5307s 5307s def _run_fetcher( 5307s self, fetcher: apt_pkg.Acquire, allow_unauthenticated: bool | None 5307s ) -> int: 5307s if allow_unauthenticated is None: 5307s allow_unauthenticated = apt_pkg.config.find_b( 5307s "APT::Get::" "AllowUnauthenticated", False 5307s ) 5307s 5307s untrusted = [item for item in fetcher.items if not item.is_trusted] 5307s if untrusted and not allow_unauthenticated: 5307s raise UntrustedException( 5307s "Untrusted packages:\n%s" % "\n".join(i.desc_uri for i in untrusted) 5307s ) 5307s 5307s # do the actual fetching 5307s res = fetcher.run() 5307s 5307s # now check the result (this is the code from apt-get.cc) 5307s failed = False 5307s err_msg = "" 5307s for item in fetcher.items: 5307s if item.status == item.STAT_DONE: 5307s continue 5307s if item.STAT_IDLE: 5307s continue 5307s err_msg += f"Failed to fetch {item.desc_uri} {item.error_text}\n" 5307s failed = True 5307s 5307s # we raise a exception if the download failed or it was cancelt 5307s if res == fetcher.RESULT_CANCELLED: 5307s raise FetchCancelledException(err_msg) 5307s elif failed: 5307s > raise FetchFailedException(err_msg) 5307s E apt.cache.FetchFailedException: Failed to fetch https://launchpad.net/ubuntu/%2barchive/primary/%2bfiles/distro-info-data_0.43ubuntu1.9_all.deb Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::3ba). - connect (101: Network is unreachable) Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::f3). - connect (101: Network is unreachable) Could not connect to launchpad.net:443 (185.125.189.223), connection timed out Could not connect to launchpad.net:443 (185.125.189.222), connection timed out 5307s E Failed to fetch https://launchpad.net/ubuntu/%2barchive/primary/%2bfiles/libc6_2.31-0ubuntu9.4_amd64.deb Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::3ba). - connect (101: Network is unreachable) Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::f3). - connect (101: Network is unreachable) 5307s E Failed to fetch https://launchpad.net/ubuntu/%2barchive/primary/%2bfiles/libc6-dbg_2.31-0ubuntu9.4_amd64.deb Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::3ba). - connect (101: Network is unreachable) Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::f3). - connect (101: Network is unreachable) 5307s E Failed to fetch https://launchpad.net/ubuntu/%2barchive/primary/%2bfiles/qemu-utils_4.2-3ubuntu6.1_amd64.deb Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::3ba). - connect (101: Network is unreachable) Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::f3). - connect (101: Network is unreachable) 5307s E Failed to fetch https://launchpad.net/ubuntu/%2barchive/primary/%2bfiles/qemu-utils-dbgsym_4.2-3ubuntu6.1_amd64.ddeb Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::3ba). - connect (101: Network is unreachable) Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::f3). - connect (101: Network is unreachable) 5307s 5307s /usr/lib/python3/dist-packages/apt/cache.py:424: FetchFailedException 5307s 5307s During handling of the above exception, another exception occurred: 5307s 5307s configdir = '/tmp/tmp_gqoft60/config', cachedir = '/tmp/tmp_gqoft60/cache' 5307s rootdir = '/tmp/tmp_gqoft60/root', apt_style = 'deb822' 5307s 5307s @pytest.mark.skipif(not has_internet(), reason="online test") 5307s def test_install_packages_from_launchpad(configdir, cachedir, rootdir, apt_style): 5307s """install_packages() using packages only available on Launchpad""" 5307s release = _setup_foonux_config(configdir, apt_style, release="focal") 5307s # Wanted are superseded versions from -updates or -security. 5307s wanted = { 5307s "distro-info-data": "0.43ubuntu1.9", # arch all 5307s "libc6": "2.31-0ubuntu9.4", # -dbg, arch specific 5307s "qemu-utils": "1:4.2-3ubuntu6.1", # -dbgsym, arch specific 5307s } 5307s > obsolete = impl.install_packages( 5307s rootdir, configdir, release, list(wanted.items()), False, cachedir 5307s ) 5307s 5307s tests/system/test_packaging_apt_dpkg.py:581: 5307s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 5307s 5307s self = 5307s rootdir = '/tmp/tmp_gqoft60/root', configdir = '/tmp/tmp_gqoft60/config' 5307s release = 'Foonux 20.04' 5307s packages = [('distro-info-data', '0.43ubuntu1.9'), ('libc6', '2.31-0ubuntu9.4'), ('qemu-utils', '1:4.2-3ubuntu6.1')] 5307s verbose = False, cache_dir = '/tmp/tmp_gqoft60/cache', permanent_rootdir = False 5307s architecture = 'amd64', origins = None, install_dbg = True, install_deps = False 5307s 5307s def install_packages( 5307s self, 5307s rootdir, 5307s configdir, 5307s release, 5307s packages, 5307s verbose=False, 5307s cache_dir=None, 5307s permanent_rootdir=False, 5307s architecture=None, 5307s origins=None, 5307s install_dbg=True, 5307s install_deps=False, 5307s ): # pylint: disable=too-many-arguments 5307s # TODO: Split into smaller functions/methods 5307s # pylint: disable=too-many-branches,too-many-locals 5307s # pylint: disable=too-many-nested-blocks,too-many-statements 5307s """Install packages into a sandbox (for apport-retrace). 5307s 5307s In order to work without any special permissions and without touching 5307s the running system, this should only download and unpack packages into 5307s the given root directory, not install them into the system. 5307s 5307s configdir points to a directory with by-release configuration files for 5307s the packaging system; this is completely dependent on the backend 5307s implementation, the only assumption is that this looks into 5307s configdir/release/, so that you can use retracing for multiple 5307s DistroReleases. As a special case, if configdir is None, it uses the 5307s current system configuration, and "release" is ignored. 5307s 5307s release is the value of the report's 'DistroRelease' field. 5307s 5307s packages is a list of ('packagename', 'version') tuples. If the version 5307s is None, it should install the most current available version. 5307s 5307s If cache_dir is given, then the downloaded packages will be stored 5307s there, to speed up subsequent retraces. 5307s 5307s If permanent_rootdir is True, then the sandbox created from the 5307s downloaded packages will be reused, to speed up subsequent retraces. 5307s 5307s If architecture is given, the sandbox will be created with packages of 5307s the given architecture (as specified in a report's "Architecture" 5307s field). If not given it defaults to the host system's architecture. 5307s 5307s If origins is given, the sandbox will be created with apt data sources 5307s for foreign origins. 5307s 5307s If install_deps is True, then the dependencies of packages will also 5307s be installed. 5307s 5307s Return a string with outdated packages, or an empty string if all 5307s packages were installed. 5307s 5307s If something is wrong with the environment (invalid configuration, 5307s package servers down, etc.), this should raise a SystemError with a 5307s meaningful error message. 5307s """ 5307s if not architecture: 5307s architecture = self.get_system_architecture() 5307s if not configdir: 5307s apt_dir = "/etc/apt" 5307s self._current_release_codename = self.get_distro_codename() 5307s else: 5307s # support architecture specific config, fall back to global config 5307s apt_dir = os.path.join(configdir, release) 5307s if architecture != self.get_system_architecture(): 5307s arch_apt_dir = os.path.join(configdir, release, architecture) 5307s arch_old_sources = os.path.join(arch_apt_dir, "sources.list") 5307s arch_sources_dir = os.path.join(arch_apt_dir, "sources.list.d") 5307s if os.path.exists(arch_old_sources) or ( 5307s os.path.exists(arch_sources_dir) and os.listdir(arch_sources_dir) 5307s ): 5307s apt_dir = arch_apt_dir 5307s 5307s # set mirror for get_file_package() 5307s try: 5307s self.set_mirror(self._get_primary_mirror_from_apt_sources(apt_dir)) 5307s except SystemError as error: 5307s apport.logging.warning("cannot determine mirror: %s", str(error)) 5307s 5307s # set current release code name for _distro_release_to_codename 5307s with open( 5307s os.path.join(configdir, release, "codename"), encoding="utf-8" 5307s ) as f: 5307s self._current_release_codename = f.read().strip() 5307s 5307s # create apt sandbox 5307s if cache_dir: 5307s tmp_aptroot = False 5307s if architecture != self.get_system_architecture(): 5307s aptroot_arch = architecture 5307s else: 5307s aptroot_arch = "" 5307s if configdir: 5307s aptroot = os.path.join(cache_dir, release, aptroot_arch, "apt") 5307s else: 5307s aptroot = os.path.join(cache_dir, "system", aptroot_arch, "apt") 5307s if not os.path.isdir(aptroot): 5307s os.makedirs(aptroot) 5307s else: 5307s tmp_aptroot = True 5307s aptroot = tempfile.mkdtemp() 5307s 5307s apt.apt_pkg.config.set("APT::Architecture", architecture) 5307s apt.apt_pkg.config.set("Acquire::Languages", "none") 5307s # directly connect to Launchpad when downloading deb files 5307s apt.apt_pkg.config.set("Acquire::http::Proxy::api.launchpad.net", "DIRECT") 5307s apt.apt_pkg.config.set("Acquire::http::Proxy::launchpad.net", "DIRECT") 5307s 5307s if verbose: 5307s fetchProgress = apt.progress.text.AcquireProgress() 5307s else: 5307s fetchProgress = apt.progress.base.AcquireProgress() 5307s if not tmp_aptroot: 5307s apt_cache = self._sandbox_cache( 5307s aptroot, 5307s apt_dir, 5307s fetchProgress, 5307s self.get_distro_name(), 5307s self._current_release_codename, 5307s origins, 5307s architecture, 5307s ) 5307s else: 5307s self._build_apt_sandbox( 5307s aptroot, 5307s apt_dir, 5307s self.get_distro_name(), 5307s self._current_release_codename, 5307s origins, 5307s ) 5307s apt_cache = apt.Cache(rootdir=os.path.abspath(aptroot)) 5307s try: 5307s apt_cache.update(fetchProgress) 5307s except apt.cache.FetchFailedException as error: 5307s raise SystemError(str(error)) from error 5307s apt_cache.open() 5307s 5307s archivedir = apt.apt_pkg.config.find_dir("Dir::Cache::archives") 5307s 5307s obsolete = "" 5307s 5307s src_records = apt.apt_pkg.SourceRecords() 5307s 5307s # read original package list 5307s pkg_list = os.path.join(rootdir, "packages.txt") 5307s pkg_versions = {} 5307s if os.path.exists(pkg_list): 5307s with open(pkg_list, encoding="utf-8") as f: 5307s for line in f: 5307s line = line.strip() 5307s if not line: 5307s continue 5307s (p, v) = line.split() 5307s pkg_versions[p] = v 5307s 5307s # mark packages for installation 5307s real_pkgs = set() 5307s lp_cache = {} 5307s fetcher = apt.apt_pkg.Acquire(fetchProgress) 5307s # need to keep AcquireFile references 5307s acquire_queue = [] 5307s # add any dependencies to the packages list 5307s if install_deps: 5307s deps = [] 5307s for pkg, ver in packages: 5307s try: 5307s cache_pkg = apt_cache[pkg] 5307s except KeyError: 5307s m = f"package {pkg.replace('%', '%%')} does not exist, ignoring" 5307s obsolete += f"{m}\n" 5307s apport.logging.warning("%s", m) 5307s continue 5307s for dep in cache_pkg.candidate.dependencies: 5307s # the dependency may be satisfied by a different package 5307s if dep[0].name not in apt_cache: 5307s dep[0] = apt_cache.get_providing_packages(dep[0].name)[0] 5307s # the version in dep is the one from pkg's dependencies, 5307s # so use the version from the cache 5307s dep_pkg_vers = apt_cache[dep[0].name].candidate.version 5307s # if the dependency is in the list of packages we don't 5307s # need to look up its dependencies again 5307s if dep[0].name in [pkg[0] for pkg in packages]: 5307s continue 5307s # if the package is already extracted in the sandbox 5307s # because the report needs that package we don't want to 5307s # install a newer version which may cause a CRC mismatch 5307s # with the installed dbg symbols 5307s if dep[0].name in pkg_versions: 5307s inst_version = pkg_versions[dep[0].name] 5307s if self.compare_versions(inst_version, dep_pkg_vers) > -1: 5307s deps.append((dep[0].name, inst_version)) 5307s else: 5307s deps.append((dep[0].name, dep_pkg_vers)) 5307s else: 5307s deps.append((dep[0].name, dep_pkg_vers)) 5307s if dep[0].name not in [pkg[0] for pkg in packages]: 5307s packages.append((dep[0].name, None)) 5307s packages.extend(deps) 5307s 5307s for pkg, ver in packages: 5307s try: 5307s cache_pkg = apt_cache[pkg] 5307s except KeyError: 5307s m = f"package {pkg.replace('%', '%%')} does not exist, ignoring" 5307s obsolete += f"{m}\n" 5307s apport.logging.warning("%s", m) 5307s continue 5307s 5307s # try to select matching version 5307s try: 5307s if ver: 5307s cache_pkg.candidate = cache_pkg.versions[ver] 5307s except KeyError: 5307s (lp_url, sha1sum) = self.get_lp_binary_package( 5307s release, pkg, ver, architecture 5307s ) 5307s if lp_url: 5307s acquire_queue.append( 5307s apt.apt_pkg.AcquireFile( 5307s fetcher, lp_url, hash=f"sha1:{sha1sum}", destdir=archivedir 5307s ) 5307s ) 5307s lp_cache[pkg] = ver 5307s else: 5307s obsolete += ( 5307s f"{pkg} version {ver} required," 5307s f" but {cache_pkg.candidate.version} is available\n" 5307s ) 5307s ver = cache_pkg.candidate.version 5307s 5307s candidate = cache_pkg.candidate 5307s real_pkgs.add(pkg) 5307s 5307s if permanent_rootdir: 5307s virtual_mapping = self._virtual_mapping(aptroot) 5307s # Remember all the virtual packages that this package provides, 5307s # so that if we encounter that virtual package as a 5307s # Conflicts/Replaces later, we know to remove this package from 5307s # the cache. 5307s for p in candidate.provides: 5307s virtual_mapping.setdefault(p, set()).add(pkg) 5307s conflicts = [] 5307s if "Conflicts" in candidate.record: 5307s conflicts += apt.apt_pkg.parse_depends( 5307s candidate.record["Conflicts"] 5307s ) 5307s if "Replaces" in candidate.record: 5307s conflicts += apt.apt_pkg.parse_depends(candidate.record["Replaces"]) 5307s for conflict in conflicts: 5307s # if the package conflicts with itself its wonky e.g. 5307s # gdb in artful 5307s if conflict[0][0] == candidate.package.name: 5307s continue 5307s # apt_pkg.parse_depends needs to handle the or operator, 5307s # but as policy states it is invalid to use that in 5307s # Replaces/Depends, we can safely choose the first value 5307s # here. 5307s conflict = conflict[0] 5307s if apt_cache.is_virtual_package(conflict[0]): 5307s try: 5307s providers = virtual_mapping[conflict[0]] 5307s except KeyError: 5307s # We may not have seen the virtual package that 5307s # this conflicts with, so we can assume it's not 5307s # unpacked into the sandbox. 5307s continue 5307s for p in providers: 5307s # if the candidate package being installed 5307s # conflicts with but also provides a virtual 5307s # package don't act on the candidate e.g. 5307s # libpam-modules and libpam-mkhomedir in artful 5307s if p == candidate.package.name: 5307s continue 5307s debs = os.path.join(archivedir, f"{p}_*.deb") 5307s for path in glob.glob(debs): 5307s ver = self._deb_version(path) 5307s if apt.apt_pkg.check_dep(ver, conflict[2], conflict[1]): 5307s os.unlink(path) 5307s try: 5307s del pkg_versions[p] 5307s except KeyError: 5307s pass 5307s del providers 5307s else: 5307s debs = os.path.join(archivedir, f"{conflict[0]}_*.deb") 5307s for path in glob.glob(debs): 5307s ver = self._deb_version(path) 5307s if apt.apt_pkg.check_dep(ver, conflict[2], conflict[1]): 5307s os.unlink(path) 5307s try: 5307s del pkg_versions[conflict[0]] 5307s except KeyError: 5307s pass 5307s 5307s if candidate.architecture != "all" and install_dbg: 5307s try: 5307s dbg_pkg = f"{pkg}-dbg" 5307s dbg = apt_cache[dbg_pkg] 5307s pkg_found = False 5307s # try to get the same version as pkg 5307s if ver: 5307s try: 5307s dbg.candidate = dbg.versions[ver] 5307s pkg_found = True 5307s except KeyError: 5307s (lp_url, sha1sum) = self.get_lp_binary_package( 5307s release, dbg_pkg, ver, architecture 5307s ) 5307s if lp_url: 5307s acquire_queue.append( 5307s apt.apt_pkg.AcquireFile( 5307s fetcher, 5307s lp_url, 5307s hash=f"sha1:{sha1sum}", 5307s destdir=archivedir, 5307s ) 5307s ) 5307s lp_cache[dbg_pkg] = ver 5307s pkg_found = True 5307s # if it can't be found in Launchpad failover to a 5307s # code path that'll use -dbgsym packages 5307s else: 5307s raise 5307s if not pkg_found: 5307s try: 5307s dbg.candidate = dbg.versions[candidate.version] 5307s except KeyError: 5307s obsolete += ( 5307s f"outdated -dbg package for {pkg}:" 5307s f" package version {ver}" 5307s f" -dbg version {dbg.candidate.version}\n" 5307s ) 5307s real_pkgs.add(dbg_pkg) 5307s except KeyError: 5307s # install all -dbg from the source package; lookup() just 5307s # works from the current list pointer, we always need to 5307s # start from the beginning 5307s src_records.restart() 5307s if src_records.lookup(candidate.source_name): 5307s # ignore transitional packages 5307s # False positive, see 5307s # https://github.com/PyCQA/pylint/issues/7122 5307s # pylint: disable=not-an-iterable 5307s dbgs = [ 5307s p 5307s for p in src_records.binaries 5307s if p.endswith("-dbg") 5307s and p in apt_cache 5307s and "transitional" not in apt_cache[p].candidate.description 5307s ] 5307s # if a specific version of a package was requested 5307s # only install dbg pkgs whose version matches 5307s if ver: 5307s for dbg in dbgs: 5307s if apt_cache[dbg].candidate.version != ver: 5307s dbgs.remove(dbg) 5307s else: 5307s dbgs = [] 5307s if dbgs: 5307s for p in dbgs: 5307s # if the package has already been added to 5307s # real_pkgs don't search for it again 5307s if p in real_pkgs: 5307s continue 5307s pkg_found = False 5307s # prefer the version requested 5307s if ver: 5307s try: 5307s apt_cache[p].candidate = apt_cache[p].versions[ver] 5307s pkg_found = True 5307s except KeyError: 5307s (lp_url, sha1sum) = self.get_lp_binary_package( 5307s release, p, ver, architecture 5307s ) 5307s if lp_url: 5307s acquire_queue.append( 5307s apt.apt_pkg.AcquireFile( 5307s fetcher, 5307s lp_url, 5307s hash=f"sha1:{sha1sum}", 5307s destdir=archivedir, 5307s ) 5307s ) 5307s lp_cache[p] = ver 5307s pkg_found = True 5307s if not pkg_found: 5307s try: 5307s apt_cache[p].candidate = apt_cache[p].versions[ 5307s candidate.version 5307s ] 5307s except KeyError: 5307s # we don't really expect that, but it's 5307s # possible that other binaries have a 5307s # different version 5307s pass 5307s real_pkgs.add(p) 5307s else: 5307s pkg_found = False 5307s dbgsym_pkg = f"{pkg}-dbgsym" 5307s try: 5307s dbgsym = apt_cache[dbgsym_pkg] 5307s real_pkgs.add(dbgsym_pkg) 5307s # prefer the version requested 5307s if ver: 5307s try: 5307s dbgsym.candidate = dbgsym.versions[ver] 5307s pkg_found = True 5307s except KeyError: 5307s (lp_url, sha1sum) = self.get_lp_binary_package( 5307s release, dbgsym_pkg, ver, architecture 5307s ) 5307s if lp_url: 5307s acquire_queue.append( 5307s apt.apt_pkg.AcquireFile( 5307s fetcher, 5307s lp_url, 5307s hash=f"sha1:{sha1sum}", 5307s destdir=archivedir, 5307s ) 5307s ) 5307s lp_cache[dbgsym_pkg] = ver 5307s pkg_found = True 5307s if not pkg_found: 5307s try: 5307s dbgsym.candidate = dbgsym.versions[ 5307s candidate.version 5307s ] 5307s except KeyError: 5307s obsolete += ( 5307s f"outdated debug symbol package" 5307s f" for {pkg}: package version" 5307s f" {candidate.version}" 5307s f" dbgsym version" 5307s f" {dbgsym.candidate.version}\n" 5307s ) 5307s 5307s except KeyError: 5307s if ver: 5307s (lp_url, sha1sum) = self.get_lp_binary_package( 5307s release, dbgsym_pkg, ver, architecture 5307s ) 5307s if lp_url: 5307s acquire_queue.append( 5307s apt.apt_pkg.AcquireFile( 5307s fetcher, 5307s lp_url, 5307s hash=f"sha1:{sha1sum}", 5307s destdir=archivedir, 5307s ) 5307s ) 5307s lp_cache[dbgsym_pkg] = ver 5307s pkg_found = True 5307s if not pkg_found: 5307s obsolete += f"no debug symbol package found for {pkg}\n" 5307s 5307s # unpack packages, weed out the ones that are already installed (for 5307s # permanent sandboxes) 5307s logger = logging.getLogger(__name__) 5307s requested_pkgs = dict(packages) 5307s for p in real_pkgs.copy(): 5307s if p in requested_pkgs: 5307s if requested_pkgs[p] is None: 5307s # We already have the latest version of this package 5307s if pkg_versions.get(p) == apt_cache[p].candidate.version: 5307s logger.debug( 5307s "Removing %s which is already the right version", p 5307s ) 5307s real_pkgs.remove(p) 5307s else: 5307s logger.debug( 5307s "Installing %s version %s", 5307s p, 5307s apt_cache[p].candidate.version, 5307s ) 5307s apt_cache[p].mark_install(False, False) 5307s elif pkg_versions.get(p) != requested_pkgs[p]: 5307s logger.debug( 5307s "Installing %s version %s", p, apt_cache[p].candidate.version 5307s ) 5307s apt_cache[p].mark_install(False, False) 5307s elif pkg_versions.get(p) != apt_cache[p].candidate.version: 5307s logger.debug( 5307s "Installing %s version %s", p, apt_cache[p].candidate.version 5307s ) 5307s apt_cache[p].mark_install(False, False) 5307s else: 5307s logger.debug("Removing %s which is already the right version", p) 5307s real_pkgs.remove(p) 5307s elif pkg_versions.get(p) != apt_cache[p].candidate.version: 5307s logger.debug("Installing %s", p) 5307s apt_cache[p].mark_install(False, False) 5307s else: 5307s logger.debug("Removing %s which is already the right version", p) 5307s real_pkgs.remove(p) 5307s 5307s last_written = time.time() 5307s # fetch packages 5307s try: 5307s apt_cache.fetch_archives(fetcher=fetcher) 5307s except apt.cache.FetchFailedException as error: 5307s apport.logging.error( 5307s "Package download error, try again later: %s", str(error) 5307s ) 5307s > sys.exit(1) # transient error 5307s E SystemExit: 1 5307s 5307s /usr/lib/python3/dist-packages/apport/packaging_impl/apt_dpkg.py:1326: SystemExit 5307s ----------------------------- Captured stderr call ----------------------------- 5307s ERROR: Package download error, try again later: Failed to fetch https://launchpad.net/ubuntu/%2barchive/primary/%2bfiles/distro-info-data_0.43ubuntu1.9_all.deb Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::3ba). - connect (101: Network is unreachable) Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::f3). - connect (101: Network is unreachable) Could not connect to launchpad.net:443 (185.125.189.223), connection timed out Could not connect to launchpad.net:443 (185.125.189.222), connection timed out 5307s Failed to fetch https://launchpad.net/ubuntu/%2barchive/primary/%2bfiles/libc6_2.31-0ubuntu9.4_amd64.deb Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::3ba). - connect (101: Network is unreachable) Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::f3). - connect (101: Network is unreachable) 5307s Failed to fetch https://launchpad.net/ubuntu/%2barchive/primary/%2bfiles/libc6-dbg_2.31-0ubuntu9.4_amd64.deb Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::3ba). - connect (101: Network is unreachable) Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::f3). - connect (101: Network is unreachable) 5307s Failed to fetch https://launchpad.net/ubuntu/%2barchive/primary/%2bfiles/qemu-utils_4.2-3ubuntu6.1_amd64.deb Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::3ba). - connect (101: Network is unreachable) Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::f3). - connect (101: Network is unreachable) 5307s Failed to fetch https://launchpad.net/ubuntu/%2barchive/primary/%2bfiles/qemu-utils-dbgsym_4.2-3ubuntu6.1_amd64.ddeb Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::3ba). - connect (101: Network is unreachable) Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::f3). - connect (101: Network is unreachable) 5307s 5307s _____________________ test_install_old_packages[one-line] ______________________ 5307s 5307s self = 5307s rootdir = '/tmp/tmplttk099n/root', configdir = '/tmp/tmplttk099n/config' 5307s release = 'Foonux 22.04', packages = [('libcurl4', '7.74.0-1.3ubuntu3')] 5307s verbose = False, cache_dir = '/tmp/tmplttk099n/cache', permanent_rootdir = False 5307s architecture = 'amd64', origins = None, install_dbg = True, install_deps = False 5307s 5307s def install_packages( 5307s self, 5307s rootdir, 5307s configdir, 5307s release, 5307s packages, 5307s verbose=False, 5307s cache_dir=None, 5307s permanent_rootdir=False, 5307s architecture=None, 5307s origins=None, 5307s install_dbg=True, 5307s install_deps=False, 5307s ): # pylint: disable=too-many-arguments 5307s # TODO: Split into smaller functions/methods 5307s # pylint: disable=too-many-branches,too-many-locals 5307s # pylint: disable=too-many-nested-blocks,too-many-statements 5307s """Install packages into a sandbox (for apport-retrace). 5307s 5307s In order to work without any special permissions and without touching 5307s the running system, this should only download and unpack packages into 5307s the given root directory, not install them into the system. 5307s 5307s configdir points to a directory with by-release configuration files for 5307s the packaging system; this is completely dependent on the backend 5307s implementation, the only assumption is that this looks into 5307s configdir/release/, so that you can use retracing for multiple 5307s DistroReleases. As a special case, if configdir is None, it uses the 5307s current system configuration, and "release" is ignored. 5307s 5307s release is the value of the report's 'DistroRelease' field. 5307s 5307s packages is a list of ('packagename', 'version') tuples. If the version 5307s is None, it should install the most current available version. 5307s 5307s If cache_dir is given, then the downloaded packages will be stored 5307s there, to speed up subsequent retraces. 5307s 5307s If permanent_rootdir is True, then the sandbox created from the 5307s downloaded packages will be reused, to speed up subsequent retraces. 5307s 5307s If architecture is given, the sandbox will be created with packages of 5307s the given architecture (as specified in a report's "Architecture" 5307s field). If not given it defaults to the host system's architecture. 5307s 5307s If origins is given, the sandbox will be created with apt data sources 5307s for foreign origins. 5307s 5307s If install_deps is True, then the dependencies of packages will also 5307s be installed. 5307s 5307s Return a string with outdated packages, or an empty string if all 5307s packages were installed. 5307s 5307s If something is wrong with the environment (invalid configuration, 5307s package servers down, etc.), this should raise a SystemError with a 5307s meaningful error message. 5307s """ 5307s if not architecture: 5307s architecture = self.get_system_architecture() 5307s if not configdir: 5307s apt_dir = "/etc/apt" 5307s self._current_release_codename = self.get_distro_codename() 5307s else: 5307s # support architecture specific config, fall back to global config 5307s apt_dir = os.path.join(configdir, release) 5307s if architecture != self.get_system_architecture(): 5307s arch_apt_dir = os.path.join(configdir, release, architecture) 5307s arch_old_sources = os.path.join(arch_apt_dir, "sources.list") 5307s arch_sources_dir = os.path.join(arch_apt_dir, "sources.list.d") 5307s if os.path.exists(arch_old_sources) or ( 5307s os.path.exists(arch_sources_dir) and os.listdir(arch_sources_dir) 5307s ): 5307s apt_dir = arch_apt_dir 5307s 5307s # set mirror for get_file_package() 5307s try: 5307s self.set_mirror(self._get_primary_mirror_from_apt_sources(apt_dir)) 5307s except SystemError as error: 5307s apport.logging.warning("cannot determine mirror: %s", str(error)) 5307s 5307s # set current release code name for _distro_release_to_codename 5307s with open( 5307s os.path.join(configdir, release, "codename"), encoding="utf-8" 5307s ) as f: 5307s self._current_release_codename = f.read().strip() 5307s 5307s # create apt sandbox 5307s if cache_dir: 5307s tmp_aptroot = False 5307s if architecture != self.get_system_architecture(): 5307s aptroot_arch = architecture 5307s else: 5307s aptroot_arch = "" 5307s if configdir: 5307s aptroot = os.path.join(cache_dir, release, aptroot_arch, "apt") 5307s else: 5307s aptroot = os.path.join(cache_dir, "system", aptroot_arch, "apt") 5307s if not os.path.isdir(aptroot): 5307s os.makedirs(aptroot) 5307s else: 5307s tmp_aptroot = True 5307s aptroot = tempfile.mkdtemp() 5307s 5307s apt.apt_pkg.config.set("APT::Architecture", architecture) 5307s apt.apt_pkg.config.set("Acquire::Languages", "none") 5307s # directly connect to Launchpad when downloading deb files 5307s apt.apt_pkg.config.set("Acquire::http::Proxy::api.launchpad.net", "DIRECT") 5307s apt.apt_pkg.config.set("Acquire::http::Proxy::launchpad.net", "DIRECT") 5307s 5307s if verbose: 5307s fetchProgress = apt.progress.text.AcquireProgress() 5307s else: 5307s fetchProgress = apt.progress.base.AcquireProgress() 5307s if not tmp_aptroot: 5307s apt_cache = self._sandbox_cache( 5307s aptroot, 5307s apt_dir, 5307s fetchProgress, 5307s self.get_distro_name(), 5307s self._current_release_codename, 5307s origins, 5307s architecture, 5307s ) 5307s else: 5307s self._build_apt_sandbox( 5307s aptroot, 5307s apt_dir, 5307s self.get_distro_name(), 5307s self._current_release_codename, 5307s origins, 5307s ) 5307s apt_cache = apt.Cache(rootdir=os.path.abspath(aptroot)) 5307s try: 5307s apt_cache.update(fetchProgress) 5307s except apt.cache.FetchFailedException as error: 5307s raise SystemError(str(error)) from error 5307s apt_cache.open() 5307s 5307s archivedir = apt.apt_pkg.config.find_dir("Dir::Cache::archives") 5307s 5307s obsolete = "" 5307s 5307s src_records = apt.apt_pkg.SourceRecords() 5307s 5307s # read original package list 5307s pkg_list = os.path.join(rootdir, "packages.txt") 5307s pkg_versions = {} 5307s if os.path.exists(pkg_list): 5307s with open(pkg_list, encoding="utf-8") as f: 5307s for line in f: 5307s line = line.strip() 5307s if not line: 5307s continue 5307s (p, v) = line.split() 5307s pkg_versions[p] = v 5307s 5307s # mark packages for installation 5307s real_pkgs = set() 5307s lp_cache = {} 5307s fetcher = apt.apt_pkg.Acquire(fetchProgress) 5307s # need to keep AcquireFile references 5307s acquire_queue = [] 5307s # add any dependencies to the packages list 5307s if install_deps: 5307s deps = [] 5307s for pkg, ver in packages: 5307s try: 5307s cache_pkg = apt_cache[pkg] 5307s except KeyError: 5307s m = f"package {pkg.replace('%', '%%')} does not exist, ignoring" 5307s obsolete += f"{m}\n" 5307s apport.logging.warning("%s", m) 5307s continue 5307s for dep in cache_pkg.candidate.dependencies: 5307s # the dependency may be satisfied by a different package 5307s if dep[0].name not in apt_cache: 5307s dep[0] = apt_cache.get_providing_packages(dep[0].name)[0] 5307s # the version in dep is the one from pkg's dependencies, 5307s # so use the version from the cache 5307s dep_pkg_vers = apt_cache[dep[0].name].candidate.version 5307s # if the dependency is in the list of packages we don't 5307s # need to look up its dependencies again 5307s if dep[0].name in [pkg[0] for pkg in packages]: 5307s continue 5307s # if the package is already extracted in the sandbox 5307s # because the report needs that package we don't want to 5307s # install a newer version which may cause a CRC mismatch 5307s # with the installed dbg symbols 5307s if dep[0].name in pkg_versions: 5307s inst_version = pkg_versions[dep[0].name] 5307s if self.compare_versions(inst_version, dep_pkg_vers) > -1: 5307s deps.append((dep[0].name, inst_version)) 5307s else: 5307s deps.append((dep[0].name, dep_pkg_vers)) 5307s else: 5307s deps.append((dep[0].name, dep_pkg_vers)) 5307s if dep[0].name not in [pkg[0] for pkg in packages]: 5307s packages.append((dep[0].name, None)) 5307s packages.extend(deps) 5307s 5307s for pkg, ver in packages: 5307s try: 5307s cache_pkg = apt_cache[pkg] 5307s except KeyError: 5307s m = f"package {pkg.replace('%', '%%')} does not exist, ignoring" 5307s obsolete += f"{m}\n" 5307s apport.logging.warning("%s", m) 5307s continue 5307s 5307s # try to select matching version 5307s try: 5307s if ver: 5307s cache_pkg.candidate = cache_pkg.versions[ver] 5307s except KeyError: 5307s (lp_url, sha1sum) = self.get_lp_binary_package( 5307s release, pkg, ver, architecture 5307s ) 5307s if lp_url: 5307s acquire_queue.append( 5307s apt.apt_pkg.AcquireFile( 5307s fetcher, lp_url, hash=f"sha1:{sha1sum}", destdir=archivedir 5307s ) 5307s ) 5307s lp_cache[pkg] = ver 5307s else: 5307s obsolete += ( 5307s f"{pkg} version {ver} required," 5307s f" but {cache_pkg.candidate.version} is available\n" 5307s ) 5307s ver = cache_pkg.candidate.version 5307s 5307s candidate = cache_pkg.candidate 5307s real_pkgs.add(pkg) 5307s 5307s if permanent_rootdir: 5307s virtual_mapping = self._virtual_mapping(aptroot) 5307s # Remember all the virtual packages that this package provides, 5307s # so that if we encounter that virtual package as a 5307s # Conflicts/Replaces later, we know to remove this package from 5307s # the cache. 5307s for p in candidate.provides: 5307s virtual_mapping.setdefault(p, set()).add(pkg) 5307s conflicts = [] 5307s if "Conflicts" in candidate.record: 5307s conflicts += apt.apt_pkg.parse_depends( 5307s candidate.record["Conflicts"] 5307s ) 5307s if "Replaces" in candidate.record: 5307s conflicts += apt.apt_pkg.parse_depends(candidate.record["Replaces"]) 5307s for conflict in conflicts: 5307s # if the package conflicts with itself its wonky e.g. 5307s # gdb in artful 5307s if conflict[0][0] == candidate.package.name: 5307s continue 5307s # apt_pkg.parse_depends needs to handle the or operator, 5307s # but as policy states it is invalid to use that in 5307s # Replaces/Depends, we can safely choose the first value 5307s # here. 5307s conflict = conflict[0] 5307s if apt_cache.is_virtual_package(conflict[0]): 5307s try: 5307s providers = virtual_mapping[conflict[0]] 5307s except KeyError: 5307s # We may not have seen the virtual package that 5307s # this conflicts with, so we can assume it's not 5307s # unpacked into the sandbox. 5307s continue 5307s for p in providers: 5307s # if the candidate package being installed 5307s # conflicts with but also provides a virtual 5307s # package don't act on the candidate e.g. 5307s # libpam-modules and libpam-mkhomedir in artful 5307s if p == candidate.package.name: 5307s continue 5307s debs = os.path.join(archivedir, f"{p}_*.deb") 5307s for path in glob.glob(debs): 5307s ver = self._deb_version(path) 5307s if apt.apt_pkg.check_dep(ver, conflict[2], conflict[1]): 5307s os.unlink(path) 5307s try: 5307s del pkg_versions[p] 5307s except KeyError: 5307s pass 5307s del providers 5307s else: 5307s debs = os.path.join(archivedir, f"{conflict[0]}_*.deb") 5307s for path in glob.glob(debs): 5307s ver = self._deb_version(path) 5307s if apt.apt_pkg.check_dep(ver, conflict[2], conflict[1]): 5307s os.unlink(path) 5307s try: 5307s del pkg_versions[conflict[0]] 5307s except KeyError: 5307s pass 5307s 5307s if candidate.architecture != "all" and install_dbg: 5307s try: 5307s dbg_pkg = f"{pkg}-dbg" 5307s dbg = apt_cache[dbg_pkg] 5307s pkg_found = False 5307s # try to get the same version as pkg 5307s if ver: 5307s try: 5307s dbg.candidate = dbg.versions[ver] 5307s pkg_found = True 5307s except KeyError: 5307s (lp_url, sha1sum) = self.get_lp_binary_package( 5307s release, dbg_pkg, ver, architecture 5307s ) 5307s if lp_url: 5307s acquire_queue.append( 5307s apt.apt_pkg.AcquireFile( 5307s fetcher, 5307s lp_url, 5307s hash=f"sha1:{sha1sum}", 5307s destdir=archivedir, 5307s ) 5307s ) 5307s lp_cache[dbg_pkg] = ver 5307s pkg_found = True 5307s # if it can't be found in Launchpad failover to a 5307s # code path that'll use -dbgsym packages 5307s else: 5307s raise 5307s if not pkg_found: 5307s try: 5307s dbg.candidate = dbg.versions[candidate.version] 5307s except KeyError: 5307s obsolete += ( 5307s f"outdated -dbg package for {pkg}:" 5307s f" package version {ver}" 5307s f" -dbg version {dbg.candidate.version}\n" 5307s ) 5307s real_pkgs.add(dbg_pkg) 5307s except KeyError: 5307s # install all -dbg from the source package; lookup() just 5307s # works from the current list pointer, we always need to 5307s # start from the beginning 5307s src_records.restart() 5307s if src_records.lookup(candidate.source_name): 5307s # ignore transitional packages 5307s # False positive, see 5307s # https://github.com/PyCQA/pylint/issues/7122 5307s # pylint: disable=not-an-iterable 5307s dbgs = [ 5307s p 5307s for p in src_records.binaries 5307s if p.endswith("-dbg") 5307s and p in apt_cache 5307s and "transitional" not in apt_cache[p].candidate.description 5307s ] 5307s # if a specific version of a package was requested 5307s # only install dbg pkgs whose version matches 5307s if ver: 5307s for dbg in dbgs: 5307s if apt_cache[dbg].candidate.version != ver: 5307s dbgs.remove(dbg) 5307s else: 5307s dbgs = [] 5307s if dbgs: 5307s for p in dbgs: 5307s # if the package has already been added to 5307s # real_pkgs don't search for it again 5307s if p in real_pkgs: 5307s continue 5307s pkg_found = False 5307s # prefer the version requested 5307s if ver: 5307s try: 5307s apt_cache[p].candidate = apt_cache[p].versions[ver] 5307s pkg_found = True 5307s except KeyError: 5307s (lp_url, sha1sum) = self.get_lp_binary_package( 5307s release, p, ver, architecture 5307s ) 5307s if lp_url: 5307s acquire_queue.append( 5307s apt.apt_pkg.AcquireFile( 5307s fetcher, 5307s lp_url, 5307s hash=f"sha1:{sha1sum}", 5307s destdir=archivedir, 5307s ) 5307s ) 5307s lp_cache[p] = ver 5307s pkg_found = True 5307s if not pkg_found: 5307s try: 5307s apt_cache[p].candidate = apt_cache[p].versions[ 5307s candidate.version 5307s ] 5307s except KeyError: 5307s # we don't really expect that, but it's 5307s # possible that other binaries have a 5307s # different version 5307s pass 5307s real_pkgs.add(p) 5307s else: 5307s pkg_found = False 5307s dbgsym_pkg = f"{pkg}-dbgsym" 5307s try: 5307s dbgsym = apt_cache[dbgsym_pkg] 5307s real_pkgs.add(dbgsym_pkg) 5307s # prefer the version requested 5307s if ver: 5307s try: 5307s dbgsym.candidate = dbgsym.versions[ver] 5307s pkg_found = True 5307s except KeyError: 5307s (lp_url, sha1sum) = self.get_lp_binary_package( 5307s release, dbgsym_pkg, ver, architecture 5307s ) 5307s if lp_url: 5307s acquire_queue.append( 5307s apt.apt_pkg.AcquireFile( 5307s fetcher, 5307s lp_url, 5307s hash=f"sha1:{sha1sum}", 5307s destdir=archivedir, 5307s ) 5307s ) 5307s lp_cache[dbgsym_pkg] = ver 5307s pkg_found = True 5307s if not pkg_found: 5307s try: 5307s dbgsym.candidate = dbgsym.versions[ 5307s candidate.version 5307s ] 5307s except KeyError: 5307s obsolete += ( 5307s f"outdated debug symbol package" 5307s f" for {pkg}: package version" 5307s f" {candidate.version}" 5307s f" dbgsym version" 5307s f" {dbgsym.candidate.version}\n" 5307s ) 5307s 5307s except KeyError: 5307s if ver: 5307s (lp_url, sha1sum) = self.get_lp_binary_package( 5307s release, dbgsym_pkg, ver, architecture 5307s ) 5307s if lp_url: 5307s acquire_queue.append( 5307s apt.apt_pkg.AcquireFile( 5307s fetcher, 5307s lp_url, 5307s hash=f"sha1:{sha1sum}", 5307s destdir=archivedir, 5307s ) 5307s ) 5307s lp_cache[dbgsym_pkg] = ver 5307s pkg_found = True 5307s if not pkg_found: 5307s obsolete += f"no debug symbol package found for {pkg}\n" 5307s 5307s # unpack packages, weed out the ones that are already installed (for 5307s # permanent sandboxes) 5307s logger = logging.getLogger(__name__) 5307s requested_pkgs = dict(packages) 5307s for p in real_pkgs.copy(): 5307s if p in requested_pkgs: 5307s if requested_pkgs[p] is None: 5307s # We already have the latest version of this package 5307s if pkg_versions.get(p) == apt_cache[p].candidate.version: 5307s logger.debug( 5307s "Removing %s which is already the right version", p 5307s ) 5307s real_pkgs.remove(p) 5307s else: 5307s logger.debug( 5307s "Installing %s version %s", 5307s p, 5307s apt_cache[p].candidate.version, 5307s ) 5307s apt_cache[p].mark_install(False, False) 5307s elif pkg_versions.get(p) != requested_pkgs[p]: 5307s logger.debug( 5307s "Installing %s version %s", p, apt_cache[p].candidate.version 5307s ) 5307s apt_cache[p].mark_install(False, False) 5307s elif pkg_versions.get(p) != apt_cache[p].candidate.version: 5307s logger.debug( 5307s "Installing %s version %s", p, apt_cache[p].candidate.version 5307s ) 5307s apt_cache[p].mark_install(False, False) 5307s else: 5307s logger.debug("Removing %s which is already the right version", p) 5307s real_pkgs.remove(p) 5307s elif pkg_versions.get(p) != apt_cache[p].candidate.version: 5307s logger.debug("Installing %s", p) 5307s apt_cache[p].mark_install(False, False) 5307s else: 5307s logger.debug("Removing %s which is already the right version", p) 5307s real_pkgs.remove(p) 5307s 5307s last_written = time.time() 5307s # fetch packages 5307s try: 5307s > apt_cache.fetch_archives(fetcher=fetcher) 5307s 5307s /usr/lib/python3/dist-packages/apport/packaging_impl/apt_dpkg.py:1321: 5307s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 5307s /usr/lib/python3/dist-packages/apt/cache.py:475: in fetch_archives 5307s return self._fetch_archives( 5307s /usr/lib/python3/dist-packages/apt/cache.py:443: in _fetch_archives 5307s return self._run_fetcher(fetcher, allow_unauthenticated) 5307s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 5307s 5307s self = 5307s fetcher = 5307s allow_unauthenticated = True 5307s 5307s def _run_fetcher( 5307s self, fetcher: apt_pkg.Acquire, allow_unauthenticated: bool | None 5307s ) -> int: 5307s if allow_unauthenticated is None: 5307s allow_unauthenticated = apt_pkg.config.find_b( 5307s "APT::Get::" "AllowUnauthenticated", False 5307s ) 5307s 5307s untrusted = [item for item in fetcher.items if not item.is_trusted] 5307s if untrusted and not allow_unauthenticated: 5307s raise UntrustedException( 5307s "Untrusted packages:\n%s" % "\n".join(i.desc_uri for i in untrusted) 5307s ) 5307s 5307s # do the actual fetching 5307s res = fetcher.run() 5307s 5307s # now check the result (this is the code from apt-get.cc) 5307s failed = False 5307s err_msg = "" 5307s for item in fetcher.items: 5307s if item.status == item.STAT_DONE: 5307s continue 5307s if item.STAT_IDLE: 5307s continue 5307s err_msg += f"Failed to fetch {item.desc_uri} {item.error_text}\n" 5307s failed = True 5307s 5307s # we raise a exception if the download failed or it was cancelt 5307s if res == fetcher.RESULT_CANCELLED: 5307s raise FetchCancelledException(err_msg) 5307s elif failed: 5307s > raise FetchFailedException(err_msg) 5307s E apt.cache.FetchFailedException: Failed to fetch https://launchpad.net/ubuntu/%2barchive/primary/%2bfiles/libcurl4_7.74.0-1.3ubuntu3_amd64.deb Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::3ba). - connect (101: Network is unreachable) Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::f3). - connect (101: Network is unreachable) Could not connect to launchpad.net:443 (185.125.189.223), connection timed out Could not connect to launchpad.net:443 (185.125.189.222), connection timed out 5307s E Failed to fetch https://launchpad.net/ubuntu/%2barchive/primary/%2bfiles/libcurl4-dbgsym_7.74.0-1.3ubuntu3_amd64.ddeb Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::3ba). - connect (101: Network is unreachable) Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::f3). - connect (101: Network is unreachable) 5307s 5307s /usr/lib/python3/dist-packages/apt/cache.py:424: FetchFailedException 5307s 5307s During handling of the above exception, another exception occurred: 5307s 5307s configdir = '/tmp/tmplttk099n/config', cachedir = '/tmp/tmplttk099n/cache' 5307s rootdir = '/tmp/tmplttk099n/root', apt_style = 'one-line' 5307s 5307s @pytest.mark.skipif(not has_internet(), reason="online test") 5307s def test_install_old_packages(configdir, cachedir, rootdir, apt_style): 5307s """Sandbox will install older package versions from launchpad.""" 5307s release = _setup_foonux_config(configdir, apt_style) 5307s wanted_package = "libcurl4" 5307s wanted_version = "7.81.0-1" # pre-release version 5307s obsolete = impl.install_packages( 5307s rootdir, configdir, release, [(wanted_package, wanted_version)], False, cachedir 5307s ) 5307s 5307s assert obsolete == "" 5307s 5307s def sandbox_ver(pkg): 5307s with gzip.open( 5307s os.path.join(rootdir, "usr/share/doc", pkg, "changelog.Debian.gz") 5307s ) as f: 5307s return f.readline().decode().split()[1][1:-1] 5307s 5307s # the version is as expected 5307s assert sandbox_ver(wanted_package) == wanted_version 5307s 5307s # keeps track of package version 5307s with open(os.path.join(rootdir, "packages.txt"), encoding="utf-8") as f: 5307s pkglist = f.read().splitlines() 5307s assert f"{wanted_package} {wanted_version}" in pkglist 5307s 5307s wanted_version = "7.74.0-1.3ubuntu3" 5307s > obsolete = impl.install_packages( 5307s rootdir, configdir, release, [(wanted_package, wanted_version)], False, cachedir 5307s ) 5307s 5307s tests/system/test_packaging_apt_dpkg.py:660: 5307s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 5307s 5307s self = 5307s rootdir = '/tmp/tmplttk099n/root', configdir = '/tmp/tmplttk099n/config' 5307s release = 'Foonux 22.04', packages = [('libcurl4', '7.74.0-1.3ubuntu3')] 5307s verbose = False, cache_dir = '/tmp/tmplttk099n/cache', permanent_rootdir = False 5307s architecture = 'amd64', origins = None, install_dbg = True, install_deps = False 5307s 5307s def install_packages( 5307s self, 5307s rootdir, 5307s configdir, 5307s release, 5307s packages, 5307s verbose=False, 5307s cache_dir=None, 5307s permanent_rootdir=False, 5307s architecture=None, 5307s origins=None, 5307s install_dbg=True, 5307s install_deps=False, 5307s ): # pylint: disable=too-many-arguments 5307s # TODO: Split into smaller functions/methods 5307s # pylint: disable=too-many-branches,too-many-locals 5307s # pylint: disable=too-many-nested-blocks,too-many-statements 5307s """Install packages into a sandbox (for apport-retrace). 5307s 5307s In order to work without any special permissions and without touching 5307s the running system, this should only download and unpack packages into 5307s the given root directory, not install them into the system. 5307s 5307s configdir points to a directory with by-release configuration files for 5307s the packaging system; this is completely dependent on the backend 5307s implementation, the only assumption is that this looks into 5307s configdir/release/, so that you can use retracing for multiple 5307s DistroReleases. As a special case, if configdir is None, it uses the 5307s current system configuration, and "release" is ignored. 5307s 5307s release is the value of the report's 'DistroRelease' field. 5307s 5307s packages is a list of ('packagename', 'version') tuples. If the version 5307s is None, it should install the most current available version. 5307s 5307s If cache_dir is given, then the downloaded packages will be stored 5307s there, to speed up subsequent retraces. 5307s 5307s If permanent_rootdir is True, then the sandbox created from the 5307s downloaded packages will be reused, to speed up subsequent retraces. 5307s 5307s If architecture is given, the sandbox will be created with packages of 5307s the given architecture (as specified in a report's "Architecture" 5307s field). If not given it defaults to the host system's architecture. 5307s 5307s If origins is given, the sandbox will be created with apt data sources 5307s for foreign origins. 5307s 5307s If install_deps is True, then the dependencies of packages will also 5307s be installed. 5307s 5307s Return a string with outdated packages, or an empty string if all 5307s packages were installed. 5307s 5307s If something is wrong with the environment (invalid configuration, 5307s package servers down, etc.), this should raise a SystemError with a 5307s meaningful error message. 5307s """ 5307s if not architecture: 5307s architecture = self.get_system_architecture() 5307s if not configdir: 5307s apt_dir = "/etc/apt" 5307s self._current_release_codename = self.get_distro_codename() 5307s else: 5307s # support architecture specific config, fall back to global config 5307s apt_dir = os.path.join(configdir, release) 5307s if architecture != self.get_system_architecture(): 5307s arch_apt_dir = os.path.join(configdir, release, architecture) 5307s arch_old_sources = os.path.join(arch_apt_dir, "sources.list") 5307s arch_sources_dir = os.path.join(arch_apt_dir, "sources.list.d") 5307s if os.path.exists(arch_old_sources) or ( 5307s os.path.exists(arch_sources_dir) and os.listdir(arch_sources_dir) 5307s ): 5307s apt_dir = arch_apt_dir 5307s 5307s # set mirror for get_file_package() 5307s try: 5307s self.set_mirror(self._get_primary_mirror_from_apt_sources(apt_dir)) 5307s except SystemError as error: 5307s apport.logging.warning("cannot determine mirror: %s", str(error)) 5307s 5307s # set current release code name for _distro_release_to_codename 5307s with open( 5307s os.path.join(configdir, release, "codename"), encoding="utf-8" 5307s ) as f: 5307s self._current_release_codename = f.read().strip() 5307s 5307s # create apt sandbox 5307s if cache_dir: 5307s tmp_aptroot = False 5307s if architecture != self.get_system_architecture(): 5307s aptroot_arch = architecture 5307s else: 5307s aptroot_arch = "" 5307s if configdir: 5307s aptroot = os.path.join(cache_dir, release, aptroot_arch, "apt") 5307s else: 5307s aptroot = os.path.join(cache_dir, "system", aptroot_arch, "apt") 5307s if not os.path.isdir(aptroot): 5307s os.makedirs(aptroot) 5307s else: 5307s tmp_aptroot = True 5307s aptroot = tempfile.mkdtemp() 5307s 5307s apt.apt_pkg.config.set("APT::Architecture", architecture) 5307s apt.apt_pkg.config.set("Acquire::Languages", "none") 5307s # directly connect to Launchpad when downloading deb files 5307s apt.apt_pkg.config.set("Acquire::http::Proxy::api.launchpad.net", "DIRECT") 5307s apt.apt_pkg.config.set("Acquire::http::Proxy::launchpad.net", "DIRECT") 5307s 5307s if verbose: 5307s fetchProgress = apt.progress.text.AcquireProgress() 5307s else: 5307s fetchProgress = apt.progress.base.AcquireProgress() 5307s if not tmp_aptroot: 5307s apt_cache = self._sandbox_cache( 5307s aptroot, 5307s apt_dir, 5307s fetchProgress, 5307s self.get_distro_name(), 5307s self._current_release_codename, 5307s origins, 5307s architecture, 5307s ) 5307s else: 5307s self._build_apt_sandbox( 5307s aptroot, 5307s apt_dir, 5307s self.get_distro_name(), 5307s self._current_release_codename, 5307s origins, 5307s ) 5307s apt_cache = apt.Cache(rootdir=os.path.abspath(aptroot)) 5307s try: 5307s apt_cache.update(fetchProgress) 5307s except apt.cache.FetchFailedException as error: 5307s raise SystemError(str(error)) from error 5307s apt_cache.open() 5307s 5307s archivedir = apt.apt_pkg.config.find_dir("Dir::Cache::archives") 5307s 5307s obsolete = "" 5307s 5307s src_records = apt.apt_pkg.SourceRecords() 5307s 5307s # read original package list 5307s pkg_list = os.path.join(rootdir, "packages.txt") 5307s pkg_versions = {} 5307s if os.path.exists(pkg_list): 5307s with open(pkg_list, encoding="utf-8") as f: 5307s for line in f: 5307s line = line.strip() 5307s if not line: 5307s continue 5307s (p, v) = line.split() 5307s pkg_versions[p] = v 5307s 5307s # mark packages for installation 5307s real_pkgs = set() 5307s lp_cache = {} 5307s fetcher = apt.apt_pkg.Acquire(fetchProgress) 5307s # need to keep AcquireFile references 5307s acquire_queue = [] 5307s # add any dependencies to the packages list 5307s if install_deps: 5307s deps = [] 5307s for pkg, ver in packages: 5307s try: 5307s cache_pkg = apt_cache[pkg] 5307s except KeyError: 5307s m = f"package {pkg.replace('%', '%%')} does not exist, ignoring" 5307s obsolete += f"{m}\n" 5307s apport.logging.warning("%s", m) 5307s continue 5307s for dep in cache_pkg.candidate.dependencies: 5307s # the dependency may be satisfied by a different package 5307s if dep[0].name not in apt_cache: 5307s dep[0] = apt_cache.get_providing_packages(dep[0].name)[0] 5307s # the version in dep is the one from pkg's dependencies, 5307s # so use the version from the cache 5307s dep_pkg_vers = apt_cache[dep[0].name].candidate.version 5307s # if the dependency is in the list of packages we don't 5307s # need to look up its dependencies again 5307s if dep[0].name in [pkg[0] for pkg in packages]: 5307s continue 5307s # if the package is already extracted in the sandbox 5307s # because the report needs that package we don't want to 5307s # install a newer version which may cause a CRC mismatch 5307s # with the installed dbg symbols 5307s if dep[0].name in pkg_versions: 5307s inst_version = pkg_versions[dep[0].name] 5307s if self.compare_versions(inst_version, dep_pkg_vers) > -1: 5307s deps.append((dep[0].name, inst_version)) 5307s else: 5307s deps.append((dep[0].name, dep_pkg_vers)) 5307s else: 5307s deps.append((dep[0].name, dep_pkg_vers)) 5307s if dep[0].name not in [pkg[0] for pkg in packages]: 5307s packages.append((dep[0].name, None)) 5307s packages.extend(deps) 5307s 5307s for pkg, ver in packages: 5307s try: 5307s cache_pkg = apt_cache[pkg] 5307s except KeyError: 5307s m = f"package {pkg.replace('%', '%%')} does not exist, ignoring" 5307s obsolete += f"{m}\n" 5307s apport.logging.warning("%s", m) 5307s continue 5307s 5307s # try to select matching version 5307s try: 5307s if ver: 5307s cache_pkg.candidate = cache_pkg.versions[ver] 5307s except KeyError: 5307s (lp_url, sha1sum) = self.get_lp_binary_package( 5307s release, pkg, ver, architecture 5307s ) 5307s if lp_url: 5307s acquire_queue.append( 5307s apt.apt_pkg.AcquireFile( 5307s fetcher, lp_url, hash=f"sha1:{sha1sum}", destdir=archivedir 5307s ) 5307s ) 5307s lp_cache[pkg] = ver 5307s else: 5307s obsolete += ( 5307s f"{pkg} version {ver} required," 5307s f" but {cache_pkg.candidate.version} is available\n" 5307s ) 5307s ver = cache_pkg.candidate.version 5307s 5307s candidate = cache_pkg.candidate 5307s real_pkgs.add(pkg) 5307s 5307s if permanent_rootdir: 5307s virtual_mapping = self._virtual_mapping(aptroot) 5307s # Remember all the virtual packages that this package provides, 5307s # so that if we encounter that virtual package as a 5307s # Conflicts/Replaces later, we know to remove this package from 5307s # the cache. 5307s for p in candidate.provides: 5307s virtual_mapping.setdefault(p, set()).add(pkg) 5307s conflicts = [] 5307s if "Conflicts" in candidate.record: 5307s conflicts += apt.apt_pkg.parse_depends( 5307s candidate.record["Conflicts"] 5307s ) 5307s if "Replaces" in candidate.record: 5307s conflicts += apt.apt_pkg.parse_depends(candidate.record["Replaces"]) 5307s for conflict in conflicts: 5307s # if the package conflicts with itself its wonky e.g. 5307s # gdb in artful 5307s if conflict[0][0] == candidate.package.name: 5307s continue 5307s # apt_pkg.parse_depends needs to handle the or operator, 5307s # but as policy states it is invalid to use that in 5307s # Replaces/Depends, we can safely choose the first value 5307s # here. 5307s conflict = conflict[0] 5307s if apt_cache.is_virtual_package(conflict[0]): 5307s try: 5307s providers = virtual_mapping[conflict[0]] 5307s except KeyError: 5307s # We may not have seen the virtual package that 5307s # this conflicts with, so we can assume it's not 5307s # unpacked into the sandbox. 5307s continue 5307s for p in providers: 5307s # if the candidate package being installed 5307s # conflicts with but also provides a virtual 5307s # package don't act on the candidate e.g. 5307s # libpam-modules and libpam-mkhomedir in artful 5307s if p == candidate.package.name: 5307s continue 5307s debs = os.path.join(archivedir, f"{p}_*.deb") 5307s for path in glob.glob(debs): 5307s ver = self._deb_version(path) 5307s if apt.apt_pkg.check_dep(ver, conflict[2], conflict[1]): 5307s os.unlink(path) 5307s try: 5307s del pkg_versions[p] 5307s except KeyError: 5307s pass 5307s del providers 5307s else: 5307s debs = os.path.join(archivedir, f"{conflict[0]}_*.deb") 5307s for path in glob.glob(debs): 5307s ver = self._deb_version(path) 5307s if apt.apt_pkg.check_dep(ver, conflict[2], conflict[1]): 5307s os.unlink(path) 5307s try: 5307s del pkg_versions[conflict[0]] 5307s except KeyError: 5307s pass 5307s 5307s if candidate.architecture != "all" and install_dbg: 5307s try: 5307s dbg_pkg = f"{pkg}-dbg" 5307s dbg = apt_cache[dbg_pkg] 5307s pkg_found = False 5307s # try to get the same version as pkg 5307s if ver: 5307s try: 5307s dbg.candidate = dbg.versions[ver] 5307s pkg_found = True 5307s except KeyError: 5307s (lp_url, sha1sum) = self.get_lp_binary_package( 5307s release, dbg_pkg, ver, architecture 5307s ) 5307s if lp_url: 5307s acquire_queue.append( 5307s apt.apt_pkg.AcquireFile( 5307s fetcher, 5307s lp_url, 5307s hash=f"sha1:{sha1sum}", 5307s destdir=archivedir, 5307s ) 5307s ) 5307s lp_cache[dbg_pkg] = ver 5307s pkg_found = True 5307s # if it can't be found in Launchpad failover to a 5307s # code path that'll use -dbgsym packages 5307s else: 5307s raise 5307s if not pkg_found: 5307s try: 5307s dbg.candidate = dbg.versions[candidate.version] 5307s except KeyError: 5307s obsolete += ( 5307s f"outdated -dbg package for {pkg}:" 5307s f" package version {ver}" 5307s f" -dbg version {dbg.candidate.version}\n" 5307s ) 5307s real_pkgs.add(dbg_pkg) 5307s except KeyError: 5307s # install all -dbg from the source package; lookup() just 5307s # works from the current list pointer, we always need to 5307s # start from the beginning 5307s src_records.restart() 5307s if src_records.lookup(candidate.source_name): 5307s # ignore transitional packages 5307s # False positive, see 5307s # https://github.com/PyCQA/pylint/issues/7122 5307s # pylint: disable=not-an-iterable 5307s dbgs = [ 5307s p 5307s for p in src_records.binaries 5307s if p.endswith("-dbg") 5307s and p in apt_cache 5307s and "transitional" not in apt_cache[p].candidate.description 5307s ] 5307s # if a specific version of a package was requested 5307s # only install dbg pkgs whose version matches 5307s if ver: 5307s for dbg in dbgs: 5307s if apt_cache[dbg].candidate.version != ver: 5307s dbgs.remove(dbg) 5307s else: 5307s dbgs = [] 5307s if dbgs: 5307s for p in dbgs: 5307s # if the package has already been added to 5307s # real_pkgs don't search for it again 5307s if p in real_pkgs: 5307s continue 5307s pkg_found = False 5307s # prefer the version requested 5307s if ver: 5307s try: 5307s apt_cache[p].candidate = apt_cache[p].versions[ver] 5307s pkg_found = True 5307s except KeyError: 5307s (lp_url, sha1sum) = self.get_lp_binary_package( 5307s release, p, ver, architecture 5307s ) 5307s if lp_url: 5307s acquire_queue.append( 5307s apt.apt_pkg.AcquireFile( 5307s fetcher, 5307s lp_url, 5307s hash=f"sha1:{sha1sum}", 5307s destdir=archivedir, 5307s ) 5307s ) 5307s lp_cache[p] = ver 5307s pkg_found = True 5307s if not pkg_found: 5307s try: 5307s apt_cache[p].candidate = apt_cache[p].versions[ 5307s candidate.version 5307s ] 5307s except KeyError: 5307s # we don't really expect that, but it's 5307s # possible that other binaries have a 5307s # different version 5307s pass 5307s real_pkgs.add(p) 5307s else: 5307s pkg_found = False 5307s dbgsym_pkg = f"{pkg}-dbgsym" 5307s try: 5307s dbgsym = apt_cache[dbgsym_pkg] 5307s real_pkgs.add(dbgsym_pkg) 5307s # prefer the version requested 5307s if ver: 5307s try: 5307s dbgsym.candidate = dbgsym.versions[ver] 5307s pkg_found = True 5307s except KeyError: 5307s (lp_url, sha1sum) = self.get_lp_binary_package( 5307s release, dbgsym_pkg, ver, architecture 5307s ) 5307s if lp_url: 5307s acquire_queue.append( 5307s apt.apt_pkg.AcquireFile( 5307s fetcher, 5307s lp_url, 5307s hash=f"sha1:{sha1sum}", 5307s destdir=archivedir, 5307s ) 5307s ) 5307s lp_cache[dbgsym_pkg] = ver 5307s pkg_found = True 5307s if not pkg_found: 5307s try: 5307s dbgsym.candidate = dbgsym.versions[ 5307s candidate.version 5307s ] 5307s except KeyError: 5307s obsolete += ( 5307s f"outdated debug symbol package" 5307s f" for {pkg}: package version" 5307s f" {candidate.version}" 5307s f" dbgsym version" 5307s f" {dbgsym.candidate.version}\n" 5307s ) 5307s 5307s except KeyError: 5307s if ver: 5307s (lp_url, sha1sum) = self.get_lp_binary_package( 5307s release, dbgsym_pkg, ver, architecture 5307s ) 5307s if lp_url: 5307s acquire_queue.append( 5307s apt.apt_pkg.AcquireFile( 5307s fetcher, 5307s lp_url, 5307s hash=f"sha1:{sha1sum}", 5307s destdir=archivedir, 5307s ) 5307s ) 5307s lp_cache[dbgsym_pkg] = ver 5307s pkg_found = True 5307s if not pkg_found: 5307s obsolete += f"no debug symbol package found for {pkg}\n" 5307s 5307s # unpack packages, weed out the ones that are already installed (for 5307s # permanent sandboxes) 5307s logger = logging.getLogger(__name__) 5307s requested_pkgs = dict(packages) 5307s for p in real_pkgs.copy(): 5307s if p in requested_pkgs: 5307s if requested_pkgs[p] is None: 5307s # We already have the latest version of this package 5307s if pkg_versions.get(p) == apt_cache[p].candidate.version: 5307s logger.debug( 5307s "Removing %s which is already the right version", p 5307s ) 5307s real_pkgs.remove(p) 5307s else: 5307s logger.debug( 5307s "Installing %s version %s", 5307s p, 5307s apt_cache[p].candidate.version, 5307s ) 5307s apt_cache[p].mark_install(False, False) 5307s elif pkg_versions.get(p) != requested_pkgs[p]: 5307s logger.debug( 5307s "Installing %s version %s", p, apt_cache[p].candidate.version 5307s ) 5307s apt_cache[p].mark_install(False, False) 5307s elif pkg_versions.get(p) != apt_cache[p].candidate.version: 5307s logger.debug( 5307s "Installing %s version %s", p, apt_cache[p].candidate.version 5307s ) 5307s apt_cache[p].mark_install(False, False) 5307s else: 5307s logger.debug("Removing %s which is already the right version", p) 5307s real_pkgs.remove(p) 5307s elif pkg_versions.get(p) != apt_cache[p].candidate.version: 5307s logger.debug("Installing %s", p) 5307s apt_cache[p].mark_install(False, False) 5307s else: 5307s logger.debug("Removing %s which is already the right version", p) 5307s real_pkgs.remove(p) 5307s 5307s last_written = time.time() 5307s # fetch packages 5307s try: 5307s apt_cache.fetch_archives(fetcher=fetcher) 5307s except apt.cache.FetchFailedException as error: 5307s apport.logging.error( 5307s "Package download error, try again later: %s", str(error) 5307s ) 5307s > sys.exit(1) # transient error 5307s E SystemExit: 1 5307s 5307s /usr/lib/python3/dist-packages/apport/packaging_impl/apt_dpkg.py:1326: SystemExit 5307s ----------------------------- Captured stderr call ----------------------------- 5307s ERROR: Package download error, try again later: Failed to fetch https://launchpad.net/ubuntu/%2barchive/primary/%2bfiles/libcurl4_7.74.0-1.3ubuntu3_amd64.deb Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::3ba). - connect (101: Network is unreachable) Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::f3). - connect (101: Network is unreachable) Could not connect to launchpad.net:443 (185.125.189.223), connection timed out Could not connect to launchpad.net:443 (185.125.189.222), connection timed out 5307s Failed to fetch https://launchpad.net/ubuntu/%2barchive/primary/%2bfiles/libcurl4-dbgsym_7.74.0-1.3ubuntu3_amd64.ddeb Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::3ba). - connect (101: Network is unreachable) Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::f3). - connect (101: Network is unreachable) 5307s 5307s ______________________ test_install_old_packages[deb822] _______________________ 5307s 5307s self = 5307s rootdir = '/tmp/tmp23qpcb6i/root', configdir = '/tmp/tmp23qpcb6i/config' 5307s release = 'Foonux 22.04', packages = [('libcurl4', '7.74.0-1.3ubuntu3')] 5307s verbose = False, cache_dir = '/tmp/tmp23qpcb6i/cache', permanent_rootdir = False 5307s architecture = 'amd64', origins = None, install_dbg = True, install_deps = False 5307s 5307s def install_packages( 5307s self, 5307s rootdir, 5307s configdir, 5307s release, 5307s packages, 5307s verbose=False, 5307s cache_dir=None, 5307s permanent_rootdir=False, 5307s architecture=None, 5307s origins=None, 5307s install_dbg=True, 5307s install_deps=False, 5307s ): # pylint: disable=too-many-arguments 5307s # TODO: Split into smaller functions/methods 5307s # pylint: disable=too-many-branches,too-many-locals 5307s # pylint: disable=too-many-nested-blocks,too-many-statements 5307s """Install packages into a sandbox (for apport-retrace). 5307s 5307s In order to work without any special permissions and without touching 5307s the running system, this should only download and unpack packages into 5307s the given root directory, not install them into the system. 5307s 5307s configdir points to a directory with by-release configuration files for 5307s the packaging system; this is completely dependent on the backend 5307s implementation, the only assumption is that this looks into 5307s configdir/release/, so that you can use retracing for multiple 5307s DistroReleases. As a special case, if configdir is None, it uses the 5307s current system configuration, and "release" is ignored. 5307s 5307s release is the value of the report's 'DistroRelease' field. 5307s 5307s packages is a list of ('packagename', 'version') tuples. If the version 5307s is None, it should install the most current available version. 5307s 5307s If cache_dir is given, then the downloaded packages will be stored 5307s there, to speed up subsequent retraces. 5307s 5307s If permanent_rootdir is True, then the sandbox created from the 5307s downloaded packages will be reused, to speed up subsequent retraces. 5307s 5307s If architecture is given, the sandbox will be created with packages of 5307s the given architecture (as specified in a report's "Architecture" 5307s field). If not given it defaults to the host system's architecture. 5307s 5307s If origins is given, the sandbox will be created with apt data sources 5307s for foreign origins. 5307s 5307s If install_deps is True, then the dependencies of packages will also 5307s be installed. 5307s 5307s Return a string with outdated packages, or an empty string if all 5307s packages were installed. 5307s 5307s If something is wrong with the environment (invalid configuration, 5307s package servers down, etc.), this should raise a SystemError with a 5307s meaningful error message. 5307s """ 5307s if not architecture: 5307s architecture = self.get_system_architecture() 5307s if not configdir: 5307s apt_dir = "/etc/apt" 5307s self._current_release_codename = self.get_distro_codename() 5307s else: 5307s # support architecture specific config, fall back to global config 5307s apt_dir = os.path.join(configdir, release) 5307s if architecture != self.get_system_architecture(): 5307s arch_apt_dir = os.path.join(configdir, release, architecture) 5307s arch_old_sources = os.path.join(arch_apt_dir, "sources.list") 5307s arch_sources_dir = os.path.join(arch_apt_dir, "sources.list.d") 5307s if os.path.exists(arch_old_sources) or ( 5307s os.path.exists(arch_sources_dir) and os.listdir(arch_sources_dir) 5307s ): 5307s apt_dir = arch_apt_dir 5307s 5307s # set mirror for get_file_package() 5307s try: 5307s self.set_mirror(self._get_primary_mirror_from_apt_sources(apt_dir)) 5307s except SystemError as error: 5307s apport.logging.warning("cannot determine mirror: %s", str(error)) 5307s 5307s # set current release code name for _distro_release_to_codename 5307s with open( 5307s os.path.join(configdir, release, "codename"), encoding="utf-8" 5307s ) as f: 5307s self._current_release_codename = f.read().strip() 5307s 5307s # create apt sandbox 5307s if cache_dir: 5307s tmp_aptroot = False 5307s if architecture != self.get_system_architecture(): 5307s aptroot_arch = architecture 5307s else: 5307s aptroot_arch = "" 5307s if configdir: 5307s aptroot = os.path.join(cache_dir, release, aptroot_arch, "apt") 5307s else: 5307s aptroot = os.path.join(cache_dir, "system", aptroot_arch, "apt") 5307s if not os.path.isdir(aptroot): 5307s os.makedirs(aptroot) 5307s else: 5307s tmp_aptroot = True 5307s aptroot = tempfile.mkdtemp() 5307s 5307s apt.apt_pkg.config.set("APT::Architecture", architecture) 5307s apt.apt_pkg.config.set("Acquire::Languages", "none") 5307s # directly connect to Launchpad when downloading deb files 5307s apt.apt_pkg.config.set("Acquire::http::Proxy::api.launchpad.net", "DIRECT") 5307s apt.apt_pkg.config.set("Acquire::http::Proxy::launchpad.net", "DIRECT") 5307s 5307s if verbose: 5307s fetchProgress = apt.progress.text.AcquireProgress() 5307s else: 5307s fetchProgress = apt.progress.base.AcquireProgress() 5307s if not tmp_aptroot: 5307s apt_cache = self._sandbox_cache( 5307s aptroot, 5307s apt_dir, 5307s fetchProgress, 5307s self.get_distro_name(), 5307s self._current_release_codename, 5307s origins, 5307s architecture, 5307s ) 5307s else: 5307s self._build_apt_sandbox( 5307s aptroot, 5307s apt_dir, 5307s self.get_distro_name(), 5307s self._current_release_codename, 5307s origins, 5307s ) 5307s apt_cache = apt.Cache(rootdir=os.path.abspath(aptroot)) 5307s try: 5307s apt_cache.update(fetchProgress) 5307s except apt.cache.FetchFailedException as error: 5307s raise SystemError(str(error)) from error 5307s apt_cache.open() 5307s 5307s archivedir = apt.apt_pkg.config.find_dir("Dir::Cache::archives") 5307s 5307s obsolete = "" 5307s 5307s src_records = apt.apt_pkg.SourceRecords() 5307s 5307s # read original package list 5307s pkg_list = os.path.join(rootdir, "packages.txt") 5307s pkg_versions = {} 5307s if os.path.exists(pkg_list): 5307s with open(pkg_list, encoding="utf-8") as f: 5307s for line in f: 5307s line = line.strip() 5307s if not line: 5307s continue 5307s (p, v) = line.split() 5307s pkg_versions[p] = v 5307s 5307s # mark packages for installation 5307s real_pkgs = set() 5307s lp_cache = {} 5307s fetcher = apt.apt_pkg.Acquire(fetchProgress) 5307s # need to keep AcquireFile references 5307s acquire_queue = [] 5307s # add any dependencies to the packages list 5307s if install_deps: 5307s deps = [] 5307s for pkg, ver in packages: 5307s try: 5307s cache_pkg = apt_cache[pkg] 5307s except KeyError: 5307s m = f"package {pkg.replace('%', '%%')} does not exist, ignoring" 5307s obsolete += f"{m}\n" 5307s apport.logging.warning("%s", m) 5307s continue 5307s for dep in cache_pkg.candidate.dependencies: 5307s # the dependency may be satisfied by a different package 5307s if dep[0].name not in apt_cache: 5307s dep[0] = apt_cache.get_providing_packages(dep[0].name)[0] 5307s # the version in dep is the one from pkg's dependencies, 5307s # so use the version from the cache 5307s dep_pkg_vers = apt_cache[dep[0].name].candidate.version 5307s # if the dependency is in the list of packages we don't 5307s # need to look up its dependencies again 5307s if dep[0].name in [pkg[0] for pkg in packages]: 5307s continue 5307s # if the package is already extracted in the sandbox 5307s # because the report needs that package we don't want to 5307s # install a newer version which may cause a CRC mismatch 5307s # with the installed dbg symbols 5307s if dep[0].name in pkg_versions: 5307s inst_version = pkg_versions[dep[0].name] 5307s if self.compare_versions(inst_version, dep_pkg_vers) > -1: 5307s deps.append((dep[0].name, inst_version)) 5307s else: 5307s deps.append((dep[0].name, dep_pkg_vers)) 5307s else: 5307s deps.append((dep[0].name, dep_pkg_vers)) 5307s if dep[0].name not in [pkg[0] for pkg in packages]: 5307s packages.append((dep[0].name, None)) 5307s packages.extend(deps) 5307s 5307s for pkg, ver in packages: 5307s try: 5307s cache_pkg = apt_cache[pkg] 5307s except KeyError: 5307s m = f"package {pkg.replace('%', '%%')} does not exist, ignoring" 5307s obsolete += f"{m}\n" 5307s apport.logging.warning("%s", m) 5307s continue 5307s 5307s # try to select matching version 5307s try: 5307s if ver: 5307s cache_pkg.candidate = cache_pkg.versions[ver] 5307s except KeyError: 5307s (lp_url, sha1sum) = self.get_lp_binary_package( 5307s release, pkg, ver, architecture 5307s ) 5307s if lp_url: 5307s acquire_queue.append( 5307s apt.apt_pkg.AcquireFile( 5307s fetcher, lp_url, hash=f"sha1:{sha1sum}", destdir=archivedir 5307s ) 5307s ) 5307s lp_cache[pkg] = ver 5307s else: 5307s obsolete += ( 5307s f"{pkg} version {ver} required," 5307s f" but {cache_pkg.candidate.version} is available\n" 5307s ) 5307s ver = cache_pkg.candidate.version 5307s 5307s candidate = cache_pkg.candidate 5307s real_pkgs.add(pkg) 5307s 5307s if permanent_rootdir: 5307s virtual_mapping = self._virtual_mapping(aptroot) 5307s # Remember all the virtual packages that this package provides, 5307s # so that if we encounter that virtual package as a 5307s # Conflicts/Replaces later, we know to remove this package from 5307s # the cache. 5307s for p in candidate.provides: 5307s virtual_mapping.setdefault(p, set()).add(pkg) 5307s conflicts = [] 5307s if "Conflicts" in candidate.record: 5307s conflicts += apt.apt_pkg.parse_depends( 5307s candidate.record["Conflicts"] 5307s ) 5307s if "Replaces" in candidate.record: 5307s conflicts += apt.apt_pkg.parse_depends(candidate.record["Replaces"]) 5307s for conflict in conflicts: 5307s # if the package conflicts with itself its wonky e.g. 5307s # gdb in artful 5307s if conflict[0][0] == candidate.package.name: 5307s continue 5307s # apt_pkg.parse_depends needs to handle the or operator, 5307s # but as policy states it is invalid to use that in 5307s # Replaces/Depends, we can safely choose the first value 5307s # here. 5307s conflict = conflict[0] 5307s if apt_cache.is_virtual_package(conflict[0]): 5307s try: 5307s providers = virtual_mapping[conflict[0]] 5307s except KeyError: 5307s # We may not have seen the virtual package that 5307s # this conflicts with, so we can assume it's not 5307s # unpacked into the sandbox. 5307s continue 5307s for p in providers: 5307s # if the candidate package being installed 5307s # conflicts with but also provides a virtual 5307s # package don't act on the candidate e.g. 5307s # libpam-modules and libpam-mkhomedir in artful 5307s if p == candidate.package.name: 5307s continue 5307s debs = os.path.join(archivedir, f"{p}_*.deb") 5307s for path in glob.glob(debs): 5307s ver = self._deb_version(path) 5307s if apt.apt_pkg.check_dep(ver, conflict[2], conflict[1]): 5307s os.unlink(path) 5307s try: 5307s del pkg_versions[p] 5307s except KeyError: 5307s pass 5307s del providers 5307s else: 5307s debs = os.path.join(archivedir, f"{conflict[0]}_*.deb") 5307s for path in glob.glob(debs): 5307s ver = self._deb_version(path) 5307s if apt.apt_pkg.check_dep(ver, conflict[2], conflict[1]): 5307s os.unlink(path) 5307s try: 5307s del pkg_versions[conflict[0]] 5307s except KeyError: 5307s pass 5307s 5307s if candidate.architecture != "all" and install_dbg: 5307s try: 5307s dbg_pkg = f"{pkg}-dbg" 5307s dbg = apt_cache[dbg_pkg] 5307s pkg_found = False 5307s # try to get the same version as pkg 5307s if ver: 5307s try: 5307s dbg.candidate = dbg.versions[ver] 5307s pkg_found = True 5307s except KeyError: 5307s (lp_url, sha1sum) = self.get_lp_binary_package( 5307s release, dbg_pkg, ver, architecture 5307s ) 5307s if lp_url: 5307s acquire_queue.append( 5307s apt.apt_pkg.AcquireFile( 5307s fetcher, 5307s lp_url, 5307s hash=f"sha1:{sha1sum}", 5307s destdir=archivedir, 5307s ) 5307s ) 5307s lp_cache[dbg_pkg] = ver 5307s pkg_found = True 5307s # if it can't be found in Launchpad failover to a 5307s # code path that'll use -dbgsym packages 5307s else: 5307s raise 5307s if not pkg_found: 5307s try: 5307s dbg.candidate = dbg.versions[candidate.version] 5307s except KeyError: 5307s obsolete += ( 5307s f"outdated -dbg package for {pkg}:" 5307s f" package version {ver}" 5307s f" -dbg version {dbg.candidate.version}\n" 5307s ) 5307s real_pkgs.add(dbg_pkg) 5307s except KeyError: 5307s # install all -dbg from the source package; lookup() just 5307s # works from the current list pointer, we always need to 5307s # start from the beginning 5307s src_records.restart() 5307s if src_records.lookup(candidate.source_name): 5307s # ignore transitional packages 5307s # False positive, see 5307s # https://github.com/PyCQA/pylint/issues/7122 5307s # pylint: disable=not-an-iterable 5307s dbgs = [ 5307s p 5307s for p in src_records.binaries 5307s if p.endswith("-dbg") 5307s and p in apt_cache 5307s and "transitional" not in apt_cache[p].candidate.description 5307s ] 5307s # if a specific version of a package was requested 5307s # only install dbg pkgs whose version matches 5307s if ver: 5307s for dbg in dbgs: 5307s if apt_cache[dbg].candidate.version != ver: 5307s dbgs.remove(dbg) 5307s else: 5307s dbgs = [] 5307s if dbgs: 5307s for p in dbgs: 5307s # if the package has already been added to 5307s # real_pkgs don't search for it again 5307s if p in real_pkgs: 5307s continue 5307s pkg_found = False 5307s # prefer the version requested 5307s if ver: 5307s try: 5307s apt_cache[p].candidate = apt_cache[p].versions[ver] 5307s pkg_found = True 5307s except KeyError: 5307s (lp_url, sha1sum) = self.get_lp_binary_package( 5307s release, p, ver, architecture 5307s ) 5307s if lp_url: 5307s acquire_queue.append( 5307s apt.apt_pkg.AcquireFile( 5307s fetcher, 5307s lp_url, 5307s hash=f"sha1:{sha1sum}", 5307s destdir=archivedir, 5307s ) 5307s ) 5307s lp_cache[p] = ver 5307s pkg_found = True 5307s if not pkg_found: 5307s try: 5307s apt_cache[p].candidate = apt_cache[p].versions[ 5307s candidate.version 5307s ] 5307s except KeyError: 5307s # we don't really expect that, but it's 5307s # possible that other binaries have a 5307s # different version 5307s pass 5307s real_pkgs.add(p) 5307s else: 5307s pkg_found = False 5307s dbgsym_pkg = f"{pkg}-dbgsym" 5307s try: 5307s dbgsym = apt_cache[dbgsym_pkg] 5307s real_pkgs.add(dbgsym_pkg) 5307s # prefer the version requested 5307s if ver: 5307s try: 5307s dbgsym.candidate = dbgsym.versions[ver] 5307s pkg_found = True 5307s except KeyError: 5307s (lp_url, sha1sum) = self.get_lp_binary_package( 5307s release, dbgsym_pkg, ver, architecture 5307s ) 5307s if lp_url: 5307s acquire_queue.append( 5307s apt.apt_pkg.AcquireFile( 5307s fetcher, 5307s lp_url, 5307s hash=f"sha1:{sha1sum}", 5307s destdir=archivedir, 5307s ) 5307s ) 5307s lp_cache[dbgsym_pkg] = ver 5307s pkg_found = True 5307s if not pkg_found: 5307s try: 5307s dbgsym.candidate = dbgsym.versions[ 5307s candidate.version 5307s ] 5307s except KeyError: 5307s obsolete += ( 5307s f"outdated debug symbol package" 5307s f" for {pkg}: package version" 5307s f" {candidate.version}" 5307s f" dbgsym version" 5307s f" {dbgsym.candidate.version}\n" 5307s ) 5307s 5307s except KeyError: 5307s if ver: 5307s (lp_url, sha1sum) = self.get_lp_binary_package( 5307s release, dbgsym_pkg, ver, architecture 5307s ) 5307s if lp_url: 5307s acquire_queue.append( 5307s apt.apt_pkg.AcquireFile( 5307s fetcher, 5307s lp_url, 5307s hash=f"sha1:{sha1sum}", 5307s destdir=archivedir, 5307s ) 5307s ) 5307s lp_cache[dbgsym_pkg] = ver 5307s pkg_found = True 5307s if not pkg_found: 5307s obsolete += f"no debug symbol package found for {pkg}\n" 5307s 5307s # unpack packages, weed out the ones that are already installed (for 5307s # permanent sandboxes) 5307s logger = logging.getLogger(__name__) 5307s requested_pkgs = dict(packages) 5307s for p in real_pkgs.copy(): 5307s if p in requested_pkgs: 5307s if requested_pkgs[p] is None: 5307s # We already have the latest version of this package 5307s if pkg_versions.get(p) == apt_cache[p].candidate.version: 5307s logger.debug( 5307s "Removing %s which is already the right version", p 5307s ) 5307s real_pkgs.remove(p) 5307s else: 5307s logger.debug( 5307s "Installing %s version %s", 5307s p, 5307s apt_cache[p].candidate.version, 5307s ) 5307s apt_cache[p].mark_install(False, False) 5307s elif pkg_versions.get(p) != requested_pkgs[p]: 5307s logger.debug( 5307s "Installing %s version %s", p, apt_cache[p].candidate.version 5307s ) 5307s apt_cache[p].mark_install(False, False) 5307s elif pkg_versions.get(p) != apt_cache[p].candidate.version: 5307s logger.debug( 5307s "Installing %s version %s", p, apt_cache[p].candidate.version 5307s ) 5307s apt_cache[p].mark_install(False, False) 5307s else: 5307s logger.debug("Removing %s which is already the right version", p) 5307s real_pkgs.remove(p) 5307s elif pkg_versions.get(p) != apt_cache[p].candidate.version: 5307s logger.debug("Installing %s", p) 5307s apt_cache[p].mark_install(False, False) 5307s else: 5307s logger.debug("Removing %s which is already the right version", p) 5307s real_pkgs.remove(p) 5307s 5307s last_written = time.time() 5307s # fetch packages 5307s try: 5307s > apt_cache.fetch_archives(fetcher=fetcher) 5307s 5307s /usr/lib/python3/dist-packages/apport/packaging_impl/apt_dpkg.py:1321: 5307s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 5307s /usr/lib/python3/dist-packages/apt/cache.py:475: in fetch_archives 5307s return self._fetch_archives( 5307s /usr/lib/python3/dist-packages/apt/cache.py:443: in _fetch_archives 5307s return self._run_fetcher(fetcher, allow_unauthenticated) 5307s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 5307s 5307s self = 5307s fetcher = 5307s allow_unauthenticated = True 5307s 5307s def _run_fetcher( 5307s self, fetcher: apt_pkg.Acquire, allow_unauthenticated: bool | None 5307s ) -> int: 5307s if allow_unauthenticated is None: 5307s allow_unauthenticated = apt_pkg.config.find_b( 5307s "APT::Get::" "AllowUnauthenticated", False 5307s ) 5307s 5307s untrusted = [item for item in fetcher.items if not item.is_trusted] 5307s if untrusted and not allow_unauthenticated: 5307s raise UntrustedException( 5307s "Untrusted packages:\n%s" % "\n".join(i.desc_uri for i in untrusted) 5307s ) 5307s 5307s # do the actual fetching 5307s res = fetcher.run() 5307s 5307s # now check the result (this is the code from apt-get.cc) 5307s failed = False 5307s err_msg = "" 5307s for item in fetcher.items: 5307s if item.status == item.STAT_DONE: 5307s continue 5307s if item.STAT_IDLE: 5307s continue 5307s err_msg += f"Failed to fetch {item.desc_uri} {item.error_text}\n" 5307s failed = True 5307s 5307s # we raise a exception if the download failed or it was cancelt 5307s if res == fetcher.RESULT_CANCELLED: 5307s raise FetchCancelledException(err_msg) 5307s elif failed: 5307s > raise FetchFailedException(err_msg) 5307s E apt.cache.FetchFailedException: Failed to fetch https://launchpad.net/ubuntu/%2barchive/primary/%2bfiles/libcurl4_7.74.0-1.3ubuntu3_amd64.deb Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::3ba). - connect (101: Network is unreachable) Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::f3). - connect (101: Network is unreachable) Could not connect to launchpad.net:443 (185.125.189.222), connection timed out Could not connect to launchpad.net:443 (185.125.189.223), connection timed out 5307s E Failed to fetch https://launchpad.net/ubuntu/%2barchive/primary/%2bfiles/libcurl4-dbgsym_7.74.0-1.3ubuntu3_amd64.ddeb Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::3ba). - connect (101: Network is unreachable) Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::f3). - connect (101: Network is unreachable) 5307s 5307s /usr/lib/python3/dist-packages/apt/cache.py:424: FetchFailedException 5307s 5307s During handling of the above exception, another exception occurred: 5307s 5307s configdir = '/tmp/tmp23qpcb6i/config', cachedir = '/tmp/tmp23qpcb6i/cache' 5307s rootdir = '/tmp/tmp23qpcb6i/root', apt_style = 'deb822' 5307s 5307s @pytest.mark.skipif(not has_internet(), reason="online test") 5307s def test_install_old_packages(configdir, cachedir, rootdir, apt_style): 5307s """Sandbox will install older package versions from launchpad.""" 5307s release = _setup_foonux_config(configdir, apt_style) 5307s wanted_package = "libcurl4" 5307s wanted_version = "7.81.0-1" # pre-release version 5307s obsolete = impl.install_packages( 5307s rootdir, configdir, release, [(wanted_package, wanted_version)], False, cachedir 5307s ) 5307s 5307s assert obsolete == "" 5307s 5307s def sandbox_ver(pkg): 5307s with gzip.open( 5307s os.path.join(rootdir, "usr/share/doc", pkg, "changelog.Debian.gz") 5307s ) as f: 5307s return f.readline().decode().split()[1][1:-1] 5307s 5307s # the version is as expected 5307s assert sandbox_ver(wanted_package) == wanted_version 5307s 5307s # keeps track of package version 5307s with open(os.path.join(rootdir, "packages.txt"), encoding="utf-8") as f: 5307s pkglist = f.read().splitlines() 5307s assert f"{wanted_package} {wanted_version}" in pkglist 5307s 5307s wanted_version = "7.74.0-1.3ubuntu3" 5307s > obsolete = impl.install_packages( 5307s rootdir, configdir, release, [(wanted_package, wanted_version)], False, cachedir 5307s ) 5307s 5307s tests/system/test_packaging_apt_dpkg.py:660: 5307s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 5307s 5307s self = 5307s rootdir = '/tmp/tmp23qpcb6i/root', configdir = '/tmp/tmp23qpcb6i/config' 5307s release = 'Foonux 22.04', packages = [('libcurl4', '7.74.0-1.3ubuntu3')] 5307s verbose = False, cache_dir = '/tmp/tmp23qpcb6i/cache', permanent_rootdir = False 5307s architecture = 'amd64', origins = None, install_dbg = True, install_deps = False 5307s 5307s def install_packages( 5307s self, 5307s rootdir, 5307s configdir, 5307s release, 5307s packages, 5307s verbose=False, 5307s cache_dir=None, 5307s permanent_rootdir=False, 5307s architecture=None, 5307s origins=None, 5307s install_dbg=True, 5307s install_deps=False, 5307s ): # pylint: disable=too-many-arguments 5307s # TODO: Split into smaller functions/methods 5307s # pylint: disable=too-many-branches,too-many-locals 5307s # pylint: disable=too-many-nested-blocks,too-many-statements 5307s """Install packages into a sandbox (for apport-retrace). 5307s 5307s In order to work without any special permissions and without touching 5307s the running system, this should only download and unpack packages into 5307s the given root directory, not install them into the system. 5307s 5307s configdir points to a directory with by-release configuration files for 5307s the packaging system; this is completely dependent on the backend 5307s implementation, the only assumption is that this looks into 5307s configdir/release/, so that you can use retracing for multiple 5307s DistroReleases. As a special case, if configdir is None, it uses the 5307s current system configuration, and "release" is ignored. 5307s 5307s release is the value of the report's 'DistroRelease' field. 5307s 5307s packages is a list of ('packagename', 'version') tuples. If the version 5307s is None, it should install the most current available version. 5307s 5307s If cache_dir is given, then the downloaded packages will be stored 5307s there, to speed up subsequent retraces. 5307s 5307s If permanent_rootdir is True, then the sandbox created from the 5307s downloaded packages will be reused, to speed up subsequent retraces. 5307s 5307s If architecture is given, the sandbox will be created with packages of 5307s the given architecture (as specified in a report's "Architecture" 5307s field). If not given it defaults to the host system's architecture. 5307s 5307s If origins is given, the sandbox will be created with apt data sources 5307s for foreign origins. 5307s 5307s If install_deps is True, then the dependencies of packages will also 5307s be installed. 5307s 5307s Return a string with outdated packages, or an empty string if all 5307s packages were installed. 5307s 5307s If something is wrong with the environment (invalid configuration, 5307s package servers down, etc.), this should raise a SystemError with a 5307s meaningful error message. 5307s """ 5307s if not architecture: 5307s architecture = self.get_system_architecture() 5307s if not configdir: 5307s apt_dir = "/etc/apt" 5307s self._current_release_codename = self.get_distro_codename() 5307s else: 5307s # support architecture specific config, fall back to global config 5307s apt_dir = os.path.join(configdir, release) 5307s if architecture != self.get_system_architecture(): 5307s arch_apt_dir = os.path.join(configdir, release, architecture) 5307s arch_old_sources = os.path.join(arch_apt_dir, "sources.list") 5307s arch_sources_dir = os.path.join(arch_apt_dir, "sources.list.d") 5307s if os.path.exists(arch_old_sources) or ( 5307s os.path.exists(arch_sources_dir) and os.listdir(arch_sources_dir) 5307s ): 5307s apt_dir = arch_apt_dir 5307s 5307s # set mirror for get_file_package() 5307s try: 5307s self.set_mirror(self._get_primary_mirror_from_apt_sources(apt_dir)) 5307s except SystemError as error: 5307s apport.logging.warning("cannot determine mirror: %s", str(error)) 5307s 5307s # set current release code name for _distro_release_to_codename 5307s with open( 5307s os.path.join(configdir, release, "codename"), encoding="utf-8" 5307s ) as f: 5307s self._current_release_codename = f.read().strip() 5307s 5307s # create apt sandbox 5307s if cache_dir: 5307s tmp_aptroot = False 5307s if architecture != self.get_system_architecture(): 5307s aptroot_arch = architecture 5307s else: 5307s aptroot_arch = "" 5307s if configdir: 5307s aptroot = os.path.join(cache_dir, release, aptroot_arch, "apt") 5307s else: 5307s aptroot = os.path.join(cache_dir, "system", aptroot_arch, "apt") 5307s if not os.path.isdir(aptroot): 5307s os.makedirs(aptroot) 5307s else: 5307s tmp_aptroot = True 5307s aptroot = tempfile.mkdtemp() 5307s 5307s apt.apt_pkg.config.set("APT::Architecture", architecture) 5307s apt.apt_pkg.config.set("Acquire::Languages", "none") 5307s # directly connect to Launchpad when downloading deb files 5307s apt.apt_pkg.config.set("Acquire::http::Proxy::api.launchpad.net", "DIRECT") 5307s apt.apt_pkg.config.set("Acquire::http::Proxy::launchpad.net", "DIRECT") 5307s 5307s if verbose: 5307s fetchProgress = apt.progress.text.AcquireProgress() 5307s else: 5307s fetchProgress = apt.progress.base.AcquireProgress() 5307s if not tmp_aptroot: 5307s apt_cache = self._sandbox_cache( 5307s aptroot, 5307s apt_dir, 5307s fetchProgress, 5307s self.get_distro_name(), 5307s self._current_release_codename, 5307s origins, 5307s architecture, 5307s ) 5307s else: 5307s self._build_apt_sandbox( 5307s aptroot, 5307s apt_dir, 5307s self.get_distro_name(), 5307s self._current_release_codename, 5307s origins, 5307s ) 5307s apt_cache = apt.Cache(rootdir=os.path.abspath(aptroot)) 5307s try: 5307s apt_cache.update(fetchProgress) 5307s except apt.cache.FetchFailedException as error: 5307s raise SystemError(str(error)) from error 5307s apt_cache.open() 5307s 5307s archivedir = apt.apt_pkg.config.find_dir("Dir::Cache::archives") 5307s 5307s obsolete = "" 5307s 5307s src_records = apt.apt_pkg.SourceRecords() 5307s 5307s # read original package list 5307s pkg_list = os.path.join(rootdir, "packages.txt") 5307s pkg_versions = {} 5307s if os.path.exists(pkg_list): 5307s with open(pkg_list, encoding="utf-8") as f: 5307s for line in f: 5307s line = line.strip() 5307s if not line: 5307s continue 5307s (p, v) = line.split() 5307s pkg_versions[p] = v 5307s 5307s # mark packages for installation 5307s real_pkgs = set() 5307s lp_cache = {} 5307s fetcher = apt.apt_pkg.Acquire(fetchProgress) 5307s # need to keep AcquireFile references 5307s acquire_queue = [] 5307s # add any dependencies to the packages list 5307s if install_deps: 5307s deps = [] 5307s for pkg, ver in packages: 5307s try: 5307s cache_pkg = apt_cache[pkg] 5307s except KeyError: 5307s m = f"package {pkg.replace('%', '%%')} does not exist, ignoring" 5307s obsolete += f"{m}\n" 5307s apport.logging.warning("%s", m) 5307s continue 5307s for dep in cache_pkg.candidate.dependencies: 5307s # the dependency may be satisfied by a different package 5307s if dep[0].name not in apt_cache: 5307s dep[0] = apt_cache.get_providing_packages(dep[0].name)[0] 5307s # the version in dep is the one from pkg's dependencies, 5307s # so use the version from the cache 5307s dep_pkg_vers = apt_cache[dep[0].name].candidate.version 5307s # if the dependency is in the list of packages we don't 5307s # need to look up its dependencies again 5307s if dep[0].name in [pkg[0] for pkg in packages]: 5307s continue 5307s # if the package is already extracted in the sandbox 5307s # because the report needs that package we don't want to 5307s # install a newer version which may cause a CRC mismatch 5307s # with the installed dbg symbols 5307s if dep[0].name in pkg_versions: 5307s inst_version = pkg_versions[dep[0].name] 5307s if self.compare_versions(inst_version, dep_pkg_vers) > -1: 5307s deps.append((dep[0].name, inst_version)) 5307s else: 5307s deps.append((dep[0].name, dep_pkg_vers)) 5307s else: 5307s deps.append((dep[0].name, dep_pkg_vers)) 5307s if dep[0].name not in [pkg[0] for pkg in packages]: 5307s packages.append((dep[0].name, None)) 5307s packages.extend(deps) 5307s 5307s for pkg, ver in packages: 5307s try: 5307s cache_pkg = apt_cache[pkg] 5307s except KeyError: 5307s m = f"package {pkg.replace('%', '%%')} does not exist, ignoring" 5307s obsolete += f"{m}\n" 5307s apport.logging.warning("%s", m) 5307s continue 5307s 5307s # try to select matching version 5307s try: 5307s if ver: 5307s cache_pkg.candidate = cache_pkg.versions[ver] 5307s except KeyError: 5307s (lp_url, sha1sum) = self.get_lp_binary_package( 5307s release, pkg, ver, architecture 5307s ) 5307s if lp_url: 5307s acquire_queue.append( 5307s apt.apt_pkg.AcquireFile( 5307s fetcher, lp_url, hash=f"sha1:{sha1sum}", destdir=archivedir 5307s ) 5307s ) 5307s lp_cache[pkg] = ver 5307s else: 5307s obsolete += ( 5307s f"{pkg} version {ver} required," 5307s f" but {cache_pkg.candidate.version} is available\n" 5307s ) 5307s ver = cache_pkg.candidate.version 5307s 5307s candidate = cache_pkg.candidate 5307s real_pkgs.add(pkg) 5307s 5307s if permanent_rootdir: 5307s virtual_mapping = self._virtual_mapping(aptroot) 5307s # Remember all the virtual packages that this package provides, 5307s # so that if we encounter that virtual package as a 5307s # Conflicts/Replaces later, we know to remove this package from 5307s # the cache. 5307s for p in candidate.provides: 5307s virtual_mapping.setdefault(p, set()).add(pkg) 5307s conflicts = [] 5307s if "Conflicts" in candidate.record: 5307s conflicts += apt.apt_pkg.parse_depends( 5307s candidate.record["Conflicts"] 5307s ) 5307s if "Replaces" in candidate.record: 5307s conflicts += apt.apt_pkg.parse_depends(candidate.record["Replaces"]) 5307s for conflict in conflicts: 5307s # if the package conflicts with itself its wonky e.g. 5307s # gdb in artful 5307s if conflict[0][0] == candidate.package.name: 5307s continue 5307s # apt_pkg.parse_depends needs to handle the or operator, 5307s # but as policy states it is invalid to use that in 5307s # Replaces/Depends, we can safely choose the first value 5307s # here. 5307s conflict = conflict[0] 5307s if apt_cache.is_virtual_package(conflict[0]): 5307s try: 5307s providers = virtual_mapping[conflict[0]] 5307s except KeyError: 5307s # We may not have seen the virtual package that 5307s # this conflicts with, so we can assume it's not 5307s # unpacked into the sandbox. 5307s continue 5307s for p in providers: 5307s # if the candidate package being installed 5307s # conflicts with but also provides a virtual 5307s # package don't act on the candidate e.g. 5307s # libpam-modules and libpam-mkhomedir in artful 5307s if p == candidate.package.name: 5307s continue 5307s debs = os.path.join(archivedir, f"{p}_*.deb") 5307s for path in glob.glob(debs): 5307s ver = self._deb_version(path) 5307s if apt.apt_pkg.check_dep(ver, conflict[2], conflict[1]): 5307s os.unlink(path) 5307s try: 5307s del pkg_versions[p] 5307s except KeyError: 5307s pass 5307s del providers 5307s else: 5307s debs = os.path.join(archivedir, f"{conflict[0]}_*.deb") 5307s for path in glob.glob(debs): 5307s ver = self._deb_version(path) 5307s if apt.apt_pkg.check_dep(ver, conflict[2], conflict[1]): 5307s os.unlink(path) 5307s try: 5307s del pkg_versions[conflict[0]] 5307s except KeyError: 5307s pass 5307s 5307s if candidate.architecture != "all" and install_dbg: 5307s try: 5307s dbg_pkg = f"{pkg}-dbg" 5307s dbg = apt_cache[dbg_pkg] 5307s pkg_found = False 5307s # try to get the same version as pkg 5307s if ver: 5307s try: 5307s dbg.candidate = dbg.versions[ver] 5307s pkg_found = True 5307s except KeyError: 5307s (lp_url, sha1sum) = self.get_lp_binary_package( 5307s release, dbg_pkg, ver, architecture 5307s ) 5307s if lp_url: 5307s acquire_queue.append( 5307s apt.apt_pkg.AcquireFile( 5307s fetcher, 5307s lp_url, 5307s hash=f"sha1:{sha1sum}", 5307s destdir=archivedir, 5307s ) 5307s ) 5307s lp_cache[dbg_pkg] = ver 5307s pkg_found = True 5307s # if it can't be found in Launchpad failover to a 5307s # code path that'll use -dbgsym packages 5307s else: 5307s raise 5307s if not pkg_found: 5307s try: 5307s dbg.candidate = dbg.versions[candidate.version] 5307s except KeyError: 5307s obsolete += ( 5307s f"outdated -dbg package for {pkg}:" 5307s f" package version {ver}" 5307s f" -dbg version {dbg.candidate.version}\n" 5307s ) 5307s real_pkgs.add(dbg_pkg) 5307s except KeyError: 5307s # install all -dbg from the source package; lookup() just 5307s # works from the current list pointer, we always need to 5307s # start from the beginning 5307s src_records.restart() 5307s if src_records.lookup(candidate.source_name): 5307s # ignore transitional packages 5307s # False positive, see 5307s # https://github.com/PyCQA/pylint/issues/7122 5307s # pylint: disable=not-an-iterable 5307s dbgs = [ 5307s p 5307s for p in src_records.binaries 5307s if p.endswith("-dbg") 5307s and p in apt_cache 5307s and "transitional" not in apt_cache[p].candidate.description 5307s ] 5307s # if a specific version of a package was requested 5307s # only install dbg pkgs whose version matches 5307s if ver: 5307s for dbg in dbgs: 5307s if apt_cache[dbg].candidate.version != ver: 5307s dbgs.remove(dbg) 5307s else: 5307s dbgs = [] 5307s if dbgs: 5307s for p in dbgs: 5307s # if the package has already been added to 5307s # real_pkgs don't search for it again 5307s if p in real_pkgs: 5307s continue 5307s pkg_found = False 5307s # prefer the version requested 5307s if ver: 5307s try: 5307s apt_cache[p].candidate = apt_cache[p].versions[ver] 5307s pkg_found = True 5307s except KeyError: 5307s (lp_url, sha1sum) = self.get_lp_binary_package( 5307s release, p, ver, architecture 5307s ) 5307s if lp_url: 5307s acquire_queue.append( 5307s apt.apt_pkg.AcquireFile( 5307s fetcher, 5307s lp_url, 5307s hash=f"sha1:{sha1sum}", 5307s destdir=archivedir, 5307s ) 5307s ) 5307s lp_cache[p] = ver 5307s pkg_found = True 5307s if not pkg_found: 5307s try: 5307s apt_cache[p].candidate = apt_cache[p].versions[ 5307s candidate.version 5307s ] 5307s except KeyError: 5307s # we don't really expect that, but it's 5307s # possible that other binaries have a 5307s # different version 5307s pass 5307s real_pkgs.add(p) 5307s else: 5307s pkg_found = False 5307s dbgsym_pkg = f"{pkg}-dbgsym" 5307s try: 5307s dbgsym = apt_cache[dbgsym_pkg] 5307s real_pkgs.add(dbgsym_pkg) 5307s # prefer the version requested 5307s if ver: 5307s try: 5307s dbgsym.candidate = dbgsym.versions[ver] 5307s pkg_found = True 5307s except KeyError: 5307s (lp_url, sha1sum) = self.get_lp_binary_package( 5307s release, dbgsym_pkg, ver, architecture 5307s ) 5307s if lp_url: 5307s acquire_queue.append( 5307s apt.apt_pkg.AcquireFile( 5307s fetcher, 5307s lp_url, 5307s hash=f"sha1:{sha1sum}", 5307s destdir=archivedir, 5307s ) 5307s ) 5307s lp_cache[dbgsym_pkg] = ver 5307s pkg_found = True 5307s if not pkg_found: 5307s try: 5307s dbgsym.candidate = dbgsym.versions[ 5307s candidate.version 5307s ] 5307s except KeyError: 5307s obsolete += ( 5307s f"outdated debug symbol package" 5307s f" for {pkg}: package version" 5307s f" {candidate.version}" 5307s f" dbgsym version" 5307s f" {dbgsym.candidate.version}\n" 5307s ) 5307s 5307s except KeyError: 5307s if ver: 5307s (lp_url, sha1sum) = self.get_lp_binary_package( 5307s release, dbgsym_pkg, ver, architecture 5307s ) 5307s if lp_url: 5307s acquire_queue.append( 5307s apt.apt_pkg.AcquireFile( 5307s fetcher, 5307s lp_url, 5307s hash=f"sha1:{sha1sum}", 5307s destdir=archivedir, 5307s ) 5307s ) 5307s lp_cache[dbgsym_pkg] = ver 5307s pkg_found = True 5307s if not pkg_found: 5307s obsolete += f"no debug symbol package found for {pkg}\n" 5307s 5307s # unpack packages, weed out the ones that are already installed (for 5307s # permanent sandboxes) 5307s logger = logging.getLogger(__name__) 5307s requested_pkgs = dict(packages) 5307s for p in real_pkgs.copy(): 5307s if p in requested_pkgs: 5307s if requested_pkgs[p] is None: 5307s # We already have the latest version of this package 5307s if pkg_versions.get(p) == apt_cache[p].candidate.version: 5307s logger.debug( 5307s "Removing %s which is already the right version", p 5307s ) 5307s real_pkgs.remove(p) 5307s else: 5307s logger.debug( 5307s "Installing %s version %s", 5307s p, 5307s apt_cache[p].candidate.version, 5307s ) 5307s apt_cache[p].mark_install(False, False) 5307s elif pkg_versions.get(p) != requested_pkgs[p]: 5307s logger.debug( 5307s "Installing %s version %s", p, apt_cache[p].candidate.version 5307s ) 5307s apt_cache[p].mark_install(False, False) 5307s elif pkg_versions.get(p) != apt_cache[p].candidate.version: 5307s logger.debug( 5307s "Installing %s version %s", p, apt_cache[p].candidate.version 5307s ) 5307s apt_cache[p].mark_install(False, False) 5307s else: 5307s logger.debug("Removing %s which is already the right version", p) 5307s real_pkgs.remove(p) 5307s elif pkg_versions.get(p) != apt_cache[p].candidate.version: 5307s logger.debug("Installing %s", p) 5307s apt_cache[p].mark_install(False, False) 5307s else: 5307s logger.debug("Removing %s which is already the right version", p) 5307s real_pkgs.remove(p) 5307s 5307s last_written = time.time() 5307s # fetch packages 5307s try: 5307s apt_cache.fetch_archives(fetcher=fetcher) 5307s except apt.cache.FetchFailedException as error: 5307s apport.logging.error( 5307s "Package download error, try again later: %s", str(error) 5307s ) 5307s > sys.exit(1) # transient error 5307s E SystemExit: 1 5307s 5307s /usr/lib/python3/dist-packages/apport/packaging_impl/apt_dpkg.py:1326: SystemExit 5307s ----------------------------- Captured stderr call ----------------------------- 5307s ERROR: Package download error, try again later: Failed to fetch https://launchpad.net/ubuntu/%2barchive/primary/%2bfiles/libcurl4_7.74.0-1.3ubuntu3_amd64.deb Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::3ba). - connect (101: Network is unreachable) Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::f3). - connect (101: Network is unreachable) Could not connect to launchpad.net:443 (185.125.189.222), connection timed out Could not connect to launchpad.net:443 (185.125.189.223), connection timed out 5307s Failed to fetch https://launchpad.net/ubuntu/%2barchive/primary/%2bfiles/libcurl4-dbgsym_7.74.0-1.3ubuntu3_amd64.ddeb Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::3ba). - connect (101: Network is unreachable) Cannot initiate the connection to launchpad.net:443 (2620:2d:4000:1009::f3). - connect (101: Network is unreachable) 5307s 5307s __________________ test_get_source_tree_lp_sandbox[one-line] ___________________ 5307s 5307s configdir = '/tmp/tmpa5j93e7b/config', workdir = '/tmp/tmpa5j93e7b' 5307s rootdir = '/tmp/tmpa5j93e7b/root', apt_style = 'one-line' 5307s 5307s @pytest.mark.skipif(not has_internet(), reason="online test") 5307s def test_get_source_tree_lp_sandbox(configdir, workdir, rootdir, apt_style): 5307s release = _setup_foonux_config(configdir, apt_style) 5307s wanted_package = "curl" 5307s wanted_version = "7.81.0-1ubuntu1.2" # superseded -security version 5307s out_dir = os.path.join(workdir, "out") 5307s os.mkdir(out_dir) 5307s # pylint: disable=protected-access 5307s impl._build_apt_sandbox( 5307s rootdir, os.path.join(configdir, release), "ubuntu", "jammy", origins=None 5307s ) 5307s > res = impl.get_source_tree( 5307s wanted_package, out_dir, version=wanted_version, sandbox=rootdir 5307s ) 5307s 5307s tests/system/test_packaging_apt_dpkg.py:702: 5307s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 5307s 5307s self = 5307s srcpackage = 'curl', output_dir = '/tmp/tmpa5j93e7b/out' 5307s version = '7.81.0-1ubuntu1.2', sandbox = '/tmp/tmpa5j93e7b/root' 5307s 5307s def get_source_tree(self, srcpackage, output_dir, version=None, sandbox=None): 5307s # TODO: Split into smaller functions/methods 5307s # pylint: disable=too-many-branches,too-many-locals 5307s """Download source package and unpack it into output_dir. 5307s 5307s This also has to care about applying patches etc., so that output_dir 5307s will eventually contain the actually compiled source. output_dir needs 5307s to exist and should be empty. 5307s 5307s If version is given, this particular version will be retrieved. 5307s Otherwise this will fetch the latest available version. 5307s 5307s If sandbox is given, it calls apt-get source in that sandbox, otherwise 5307s it uses the system apt configuration. 5307s 5307s If apt_update is True, it will call apt-get update before apt-get 5307s source. This is mostly necessary for freshly created sandboxes. 5307s 5307s Return the directory that contains the actual source root directory 5307s (which might be a subdirectory of output_dir). Return None if the 5307s source is not available. 5307s """ 5307s # configure apt for sandbox 5307s env = os.environ.copy() 5307s if sandbox: 5307s # hard to change, pylint: disable=consider-using-with 5307s f = tempfile.NamedTemporaryFile("w+") 5307s f.write( 5307s f'Dir "{sandbox}";\n' 5307s f'Dir::State::Status "/var/lib/dpkg/status";\n' 5307s f'Debug::NoLocking "true";\n' 5307s ) 5307s f.flush() 5307s env["APT_CONFIG"] = f.name 5307s 5307s if sandbox and not glob.glob(f"{sandbox}/var/lib/apt/lists/*Sources"): 5307s subprocess.call(["apt-get", "-qq", "update"], env=env) 5307s 5307s # fetch source tree 5307s argv = ["apt-get", "-qq", "--assume-yes", "source", srcpackage] 5307s if version: 5307s argv[-1] += f"={version}" 5307s try: 5307s if subprocess.call(argv, cwd=output_dir, env=env) != 0: 5307s if not version: 5307s return None 5307s sf_urls = self.get_lp_source_package(srcpackage, version) 5307s if sf_urls: 5307s proxy = "" 5307s if apt.apt_pkg.config.find("Acquire::http::Proxy") != "": 5307s proxy = apt.apt_pkg.config.find("Acquire::http::Proxy") 5307s apt.apt_pkg.config.set("Acquire::http::Proxy", "") 5307s fetchProgress = apt.progress.base.AcquireProgress() 5307s fetcher = apt.apt_pkg.Acquire(fetchProgress) 5307s af_queue = [] 5307s for sf in sf_urls: 5307s af_queue.append( 5307s apt.apt_pkg.AcquireFile(fetcher, sf, destdir=output_dir) 5307s ) 5307s result = fetcher.run() 5307s if result != fetcher.RESULT_CONTINUE: 5307s return None 5307s if proxy: 5307s apt.apt_pkg.config.set("Acquire::http::Proxy", proxy) 5307s for dsc in glob.glob(os.path.join(output_dir, "*.dsc")): 5307s subprocess.call( 5307s ["dpkg-source", "-sn", "-x", dsc], 5307s stdout=subprocess.PIPE, 5307s cwd=output_dir, 5307s ) 5307s else: 5307s return None 5307s except OSError: 5307s return None 5307s 5307s # find top level directory 5307s root = None 5307s for d in glob.glob(os.path.join(output_dir, f"{srcpackage}-*")): 5307s if os.path.isdir(d): 5307s root = d 5307s > assert root, "could not determine source tree root directory" 5307s E AssertionError: could not determine source tree root directory 5307s 5307s /usr/lib/python3/dist-packages/apport/packaging_impl/apt_dpkg.py:796: AssertionError 5307s ----------------------------- Captured stderr call ----------------------------- 5307s W: Download is performed unsandboxed as root as file '/tmp/tmpa5j93e7b/root/var/lib/apt/lists/partial/archive.ubuntu.com_ubuntu_dists_jammy_InRelease' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied) 5307s E: Can not find version '7.81.0-1ubuntu1.2' of package 'curl' 5307s E: Unable to find a source package for curl 5307s ___________________ test_get_source_tree_lp_sandbox[deb822] ____________________ 5307s 5307s configdir = '/tmp/tmp754_v7mt/config', workdir = '/tmp/tmp754_v7mt' 5307s rootdir = '/tmp/tmp754_v7mt/root', apt_style = 'deb822' 5307s 5307s @pytest.mark.skipif(not has_internet(), reason="online test") 5307s def test_get_source_tree_lp_sandbox(configdir, workdir, rootdir, apt_style): 5307s release = _setup_foonux_config(configdir, apt_style) 5307s wanted_package = "curl" 5307s wanted_version = "7.81.0-1ubuntu1.2" # superseded -security version 5307s out_dir = os.path.join(workdir, "out") 5307s os.mkdir(out_dir) 5307s # pylint: disable=protected-access 5307s impl._build_apt_sandbox( 5307s rootdir, os.path.join(configdir, release), "ubuntu", "jammy", origins=None 5307s ) 5307s > res = impl.get_source_tree( 5307s wanted_package, out_dir, version=wanted_version, sandbox=rootdir 5307s ) 5307s 5307s tests/system/test_packaging_apt_dpkg.py:702: 5307s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 5307s 5307s self = 5307s srcpackage = 'curl', output_dir = '/tmp/tmp754_v7mt/out' 5307s version = '7.81.0-1ubuntu1.2', sandbox = '/tmp/tmp754_v7mt/root' 5307s 5307s def get_source_tree(self, srcpackage, output_dir, version=None, sandbox=None): 5307s # TODO: Split into smaller functions/methods 5307s # pylint: disable=too-many-branches,too-many-locals 5307s """Download source package and unpack it into output_dir. 5307s 5307s This also has to care about applying patches etc., so that output_dir 5307s will eventually contain the actually compiled source. output_dir needs 5307s to exist and should be empty. 5307s 5307s If version is given, this particular version will be retrieved. 5307s Otherwise this will fetch the latest available version. 5307s 5307s If sandbox is given, it calls apt-get source in that sandbox, otherwise 5307s it uses the system apt configuration. 5307s 5307s If apt_update is True, it will call apt-get update before apt-get 5307s source. This is mostly necessary for freshly created sandboxes. 5307s 5307s Return the directory that contains the actual source root directory 5307s (which might be a subdirectory of output_dir). Return None if the 5307s source is not available. 5307s """ 5307s # configure apt for sandbox 5307s env = os.environ.copy() 5307s if sandbox: 5307s # hard to change, pylint: disable=consider-using-with 5307s f = tempfile.NamedTemporaryFile("w+") 5307s f.write( 5307s f'Dir "{sandbox}";\n' 5307s f'Dir::State::Status "/var/lib/dpkg/status";\n' 5307s f'Debug::NoLocking "true";\n' 5307s ) 5307s f.flush() 5307s env["APT_CONFIG"] = f.name 5307s 5307s if sandbox and not glob.glob(f"{sandbox}/var/lib/apt/lists/*Sources"): 5307s subprocess.call(["apt-get", "-qq", "update"], env=env) 5307s 5307s # fetch source tree 5307s argv = ["apt-get", "-qq", "--assume-yes", "source", srcpackage] 5307s if version: 5307s argv[-1] += f"={version}" 5307s try: 5307s if subprocess.call(argv, cwd=output_dir, env=env) != 0: 5307s if not version: 5307s return None 5307s sf_urls = self.get_lp_source_package(srcpackage, version) 5307s if sf_urls: 5307s proxy = "" 5307s if apt.apt_pkg.config.find("Acquire::http::Proxy") != "": 5307s proxy = apt.apt_pkg.config.find("Acquire::http::Proxy") 5307s apt.apt_pkg.config.set("Acquire::http::Proxy", "") 5307s fetchProgress = apt.progress.base.AcquireProgress() 5307s fetcher = apt.apt_pkg.Acquire(fetchProgress) 5307s af_queue = [] 5307s for sf in sf_urls: 5307s af_queue.append( 5307s apt.apt_pkg.AcquireFile(fetcher, sf, destdir=output_dir) 5307s ) 5307s result = fetcher.run() 5307s if result != fetcher.RESULT_CONTINUE: 5307s return None 5307s if proxy: 5307s apt.apt_pkg.config.set("Acquire::http::Proxy", proxy) 5307s for dsc in glob.glob(os.path.join(output_dir, "*.dsc")): 5307s subprocess.call( 5307s ["dpkg-source", "-sn", "-x", dsc], 5307s stdout=subprocess.PIPE, 5307s cwd=output_dir, 5307s ) 5307s else: 5307s return None 5307s except OSError: 5307s return None 5307s 5307s # find top level directory 5307s root = None 5307s for d in glob.glob(os.path.join(output_dir, f"{srcpackage}-*")): 5307s if os.path.isdir(d): 5307s root = d 5307s > assert root, "could not determine source tree root directory" 5307s E AssertionError: could not determine source tree root directory 5307s 5307s /usr/lib/python3/dist-packages/apport/packaging_impl/apt_dpkg.py:796: AssertionError 5307s ----------------------------- Captured stderr call ----------------------------- 5307s W: Download is performed unsandboxed as root as file '/tmp/tmp754_v7mt/root/var/lib/apt/lists/partial/archive.ubuntu.com_ubuntu_dists_jammy_InRelease' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied) 5307s E: Can not find version '7.81.0-1ubuntu1.2' of package 'curl' 5307s E: Unable to find a source package for curl 5307s ________________ test_create_sources_for_a_named_ppa[one-line] _________________ 5307s 5307s configdir = '/tmp/tmpa1ycyvzw/config', rootdir = '/tmp/tmpa1ycyvzw/root' 5307s apt_style = 'one-line' 5307s 5307s @skip_if_command_is_missing("gpg") 5307s @pytest.mark.skipif(not has_internet(), reason="online test") 5307s def test_create_sources_for_a_named_ppa(configdir, rootdir, apt_style): 5307s """Add sources.list entries for a named PPA.""" 5307s ppa = "LP-PPA-daisy-pluckers-daisy-seeds" 5307s release = _setup_foonux_config(configdir, apt_style) 5307s # pylint: disable=protected-access 5307s impl._build_apt_sandbox( 5307s rootdir, os.path.join(configdir, release), "ubuntu", "jammy", origins=[ppa] 5307s ) 5307s if WITH_DEB822_SUPPORT: 5307s ppasource = os.path.join( 5307s rootdir, "etc", "apt", "sources.list.d", f"{ppa}.sources" 5307s ) 5307s entries = _parse_deb822_sources(ppasource) 5307s assert [ 5307s e 5307s for e in entries 5307s if {"deb", "deb-src"} == set(e.types) 5307s and "jammy" in e.suites 5307s and "main" in e.comps 5307s and "http://ppa.launchpad.net/" 5307s "daisy-pluckers/daisy-seeds/ubuntu" in e.uris 5307s ] 5307s assert [ 5307s e 5307s for e in entries 5307s if "deb" in e.types 5307s and "jammy" in e.suites 5307s and "main/debug" in e.comps 5307s and "http://ppa.launchpad.net/" 5307s "daisy-pluckers/daisy-seeds/ubuntu" in e.uris 5307s ] 5307s else: 5307s with open( 5307s os.path.join(rootdir, "etc", "apt", "sources.list.d", f"{ppa}.list"), 5307s encoding="utf-8", 5307s ) as f: 5307s sources = f.read().splitlines() 5307s assert ( 5307s "deb http://ppa.launchpad.net/daisy-pluckers/daisy-seeds/ubuntu" 5307s " jammy main main/debug" in sources 5307s ) 5307s assert ( 5307s "deb-src http://ppa.launchpad.net/daisy-pluckers/daisy-seeds/ubuntu" 5307s " jammy main" in sources 5307s ) 5307s 5307s gpg = subprocess.run( 5307s [ 5307s "gpg", 5307s "--no-options", 5307s "--no-default-keyring", 5307s "--no-auto-check-trustdb", 5307s "--trust-model", 5307s "always", 5307s "--batch", 5307s "--list-keys", 5307s "--keyring", 5307s os.path.join( 5307s rootdir, 5307s "etc", 5307s "apt", 5307s "trusted.gpg.d", 5307s "LP-PPA-daisy-pluckers-daisy-seeds.gpg", 5307s ), 5307s ], 5307s check=True, 5307s stdout=subprocess.PIPE, 5307s ) 5307s apt_keys = gpg.stdout.decode() 5307s > assert "Launchpad PPA for Daisy Pluckers" in apt_keys 5307s E AssertionError: assert 'Launchpad PPA for Daisy Pluckers' in '' 5307s 5307s tests/system/test_packaging_apt_dpkg.py:783: AssertionError 5307s ----------------------------- Captured stdout call ----------------------------- 5307s Executing: /tmp/apt-key-gpghome.BSb0HVfNCf/gpg.1.sh --quiet --keyserver keyserver.ubuntu.com --recv-key EE4C183F8F691A32EAF73FDC26A03F88AD6B4C33 5307s ----------------------------- Captured stderr call ----------------------------- 5307s Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)). 5307s gpg: keyserver receive failed: Connection timed out 5307s WARNING: Unable to import key for https://api.launchpad.net/devel/~daisy-pluckers/+archive/ubuntu/daisy-seeds 5307s _________________ test_create_sources_for_a_named_ppa[deb822] __________________ 5307s 5307s configdir = '/tmp/tmpvcjvma77/config', rootdir = '/tmp/tmpvcjvma77/root' 5307s apt_style = 'deb822' 5307s 5307s @skip_if_command_is_missing("gpg") 5307s @pytest.mark.skipif(not has_internet(), reason="online test") 5307s def test_create_sources_for_a_named_ppa(configdir, rootdir, apt_style): 5307s """Add sources.list entries for a named PPA.""" 5307s ppa = "LP-PPA-daisy-pluckers-daisy-seeds" 5307s release = _setup_foonux_config(configdir, apt_style) 5307s # pylint: disable=protected-access 5307s impl._build_apt_sandbox( 5307s rootdir, os.path.join(configdir, release), "ubuntu", "jammy", origins=[ppa] 5307s ) 5307s if WITH_DEB822_SUPPORT: 5307s ppasource = os.path.join( 5307s rootdir, "etc", "apt", "sources.list.d", f"{ppa}.sources" 5307s ) 5307s entries = _parse_deb822_sources(ppasource) 5307s assert [ 5307s e 5307s for e in entries 5307s if {"deb", "deb-src"} == set(e.types) 5307s and "jammy" in e.suites 5307s and "main" in e.comps 5307s and "http://ppa.launchpad.net/" 5307s "daisy-pluckers/daisy-seeds/ubuntu" in e.uris 5307s ] 5307s assert [ 5307s e 5307s for e in entries 5307s if "deb" in e.types 5307s and "jammy" in e.suites 5307s and "main/debug" in e.comps 5307s and "http://ppa.launchpad.net/" 5307s "daisy-pluckers/daisy-seeds/ubuntu" in e.uris 5307s ] 5307s else: 5307s with open( 5307s os.path.join(rootdir, "etc", "apt", "sources.list.d", f"{ppa}.list"), 5307s encoding="utf-8", 5307s ) as f: 5307s sources = f.read().splitlines() 5307s assert ( 5307s "deb http://ppa.launchpad.net/daisy-pluckers/daisy-seeds/ubuntu" 5307s " jammy main main/debug" in sources 5307s ) 5307s assert ( 5307s "deb-src http://ppa.launchpad.net/daisy-pluckers/daisy-seeds/ubuntu" 5307s " jammy main" in sources 5307s ) 5307s 5307s gpg = subprocess.run( 5307s [ 5307s "gpg", 5307s "--no-options", 5307s "--no-default-keyring", 5307s "--no-auto-check-trustdb", 5307s "--trust-model", 5307s "always", 5307s "--batch", 5307s "--list-keys", 5307s "--keyring", 5307s os.path.join( 5307s rootdir, 5307s "etc", 5307s "apt", 5307s "trusted.gpg.d", 5307s "LP-PPA-daisy-pluckers-daisy-seeds.gpg", 5307s ), 5307s ], 5307s check=True, 5307s stdout=subprocess.PIPE, 5307s ) 5307s apt_keys = gpg.stdout.decode() 5307s > assert "Launchpad PPA for Daisy Pluckers" in apt_keys 5307s E AssertionError: assert 'Launchpad PPA for Daisy Pluckers' in '' 5307s 5307s tests/system/test_packaging_apt_dpkg.py:783: AssertionError 5307s ----------------------------- Captured stdout call ----------------------------- 5307s Executing: /tmp/apt-key-gpghome.LIL5DRhG7C/gpg.1.sh --quiet --keyserver keyserver.ubuntu.com --recv-key EE4C183F8F691A32EAF73FDC26A03F88AD6B4C33 5307s ----------------------------- Captured stderr call ----------------------------- 5307s Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)). 5307s gpg: keyserver receive failed: Connection timed out 5307s WARNING: Unable to import key for https://api.launchpad.net/devel/~daisy-pluckers/+archive/ubuntu/daisy-seeds 5307s __________________ test_install_package_from_a_ppa[one-line] ___________________ 5307s 5307s self = 5307s fetch_progress = 5307s pulse_interval = 0, raise_on_error = True, sources_list = None 5307s 5307s def update( 5307s self, 5307s fetch_progress: AcquireProgress | None = None, 5307s pulse_interval: int = 0, 5307s raise_on_error: bool = True, 5307s sources_list: str | None = None, 5307s ) -> int: 5307s """Run the equivalent of apt-get update. 5307s 5307s You probably want to call open() afterwards, in order to utilise the 5307s new cache. Otherwise, the old cache will be used which can lead to 5307s strange bugs. 5307s 5307s The first parameter *fetch_progress* may be set to an instance of 5307s apt.progress.FetchProgress, the default is apt.progress.FetchProgress() 5307s . 5307s sources_list -- Update a alternative sources.list than the default. 5307s Note that the sources.list.d directory is ignored in this case 5307s """ 5307s with _WrappedLock(apt_pkg.config.find_dir("Dir::State::Lists")): 5307s if sources_list: 5307s old_sources_list = apt_pkg.config.find("Dir::Etc::sourcelist") 5307s old_sources_list_d = apt_pkg.config.find("Dir::Etc::sourceparts") 5307s old_cleanup = apt_pkg.config.find("APT::List-Cleanup") 5307s apt_pkg.config.set( 5307s "Dir::Etc::sourcelist", os.path.abspath(sources_list) 5307s ) 5307s apt_pkg.config.set("Dir::Etc::sourceparts", "xxx") 5307s apt_pkg.config.set("APT::List-Cleanup", "0") 5307s slist = apt_pkg.SourceList() 5307s slist.read_main_list() 5307s else: 5307s slist = self._list 5307s 5307s try: 5307s if fetch_progress is None: 5307s fetch_progress = apt.progress.base.AcquireProgress() 5307s try: 5307s > res = self._cache.update(fetch_progress, slist, pulse_interval) 5307s E apt_pkg.Error: W:Download is performed unsandboxed as root as file '/tmp/tmpzvy8jf_z/cache/Foonux 22.04/apt/var/lib/apt/lists/partial/archive.ubuntu.com_ubuntu_dists_jammy_InRelease' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied), W:GPG error: http://ppa.launchpad.net/apport-hackers/apport-autopkgtests/ubuntu jammy InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY AAD2CE78135EFFF5, E:The repository 'http://ppa.launchpad.net/apport-hackers/apport-autopkgtests/ubuntu jammy InRelease' is not signed. 5307s 5307s /usr/lib/python3/dist-packages/apt/cache.py:562: Error 5307s 5307s During handling of the above exception, another exception occurred: 5307s 5307s self = 5307s aptroot = '/tmp/tmpzvy8jf_z/cache/Foonux 22.04/apt' 5307s apt_dir = '/tmp/tmpzvy8jf_z/config/Foonux 22.04' 5307s fetchProgress = 5307s distro_name = 'ubuntu', release_codename = 'jammy' 5307s origins = ['LP-PPA-apport-hackers-apport-autopkgtests'], arch = 'amd64' 5307s 5307s def _sandbox_cache( 5307s self, 5307s aptroot, 5307s apt_dir, 5307s fetchProgress, 5307s distro_name, 5307s release_codename, 5307s origins, 5307s arch, 5307s ): # pylint: disable=too-many-arguments 5307s """Build apt sandbox and return apt.Cache(rootdir=) (initialized 5307s lazily). 5307s 5307s Clear the package selection on subsequent calls. 5307s """ 5307s if not self._sandbox_apt_cache or arch != self._sandbox_apt_cache_arch: 5307s self._clear_apt_cache() 5307s self._build_apt_sandbox( 5307s aptroot, apt_dir, distro_name, release_codename, origins 5307s ) 5307s rootdir = os.path.abspath(aptroot) 5307s self._sandbox_apt_cache = apt.Cache(rootdir=rootdir) 5307s self._sandbox_apt_cache_arch = arch 5307s try: 5307s # We don't need to update this multiple times. 5307s > self._sandbox_apt_cache.update(fetchProgress) 5307s 5307s /usr/lib/python3/dist-packages/apport/packaging_impl/apt_dpkg.py:261: 5307s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 5307s 5307s self = 5307s fetch_progress = 5307s pulse_interval = 0, raise_on_error = True, sources_list = None 5307s 5307s def update( 5307s self, 5307s fetch_progress: AcquireProgress | None = None, 5307s pulse_interval: int = 0, 5307s raise_on_error: bool = True, 5307s sources_list: str | None = None, 5307s ) -> int: 5307s """Run the equivalent of apt-get update. 5307s 5307s You probably want to call open() afterwards, in order to utilise the 5307s new cache. Otherwise, the old cache will be used which can lead to 5307s strange bugs. 5307s 5307s The first parameter *fetch_progress* may be set to an instance of 5307s apt.progress.FetchProgress, the default is apt.progress.FetchProgress() 5307s . 5307s sources_list -- Update a alternative sources.list than the default. 5307s Note that the sources.list.d directory is ignored in this case 5307s """ 5307s with _WrappedLock(apt_pkg.config.find_dir("Dir::State::Lists")): 5307s if sources_list: 5307s old_sources_list = apt_pkg.config.find("Dir::Etc::sourcelist") 5307s old_sources_list_d = apt_pkg.config.find("Dir::Etc::sourceparts") 5307s old_cleanup = apt_pkg.config.find("APT::List-Cleanup") 5307s apt_pkg.config.set( 5307s "Dir::Etc::sourcelist", os.path.abspath(sources_list) 5307s ) 5307s apt_pkg.config.set("Dir::Etc::sourceparts", "xxx") 5307s apt_pkg.config.set("APT::List-Cleanup", "0") 5307s slist = apt_pkg.SourceList() 5307s slist.read_main_list() 5307s else: 5307s slist = self._list 5307s 5307s try: 5307s if fetch_progress is None: 5307s fetch_progress = apt.progress.base.AcquireProgress() 5307s try: 5307s res = self._cache.update(fetch_progress, slist, pulse_interval) 5307s except SystemError as e: 5307s > raise FetchFailedException(e) 5307s E apt.cache.FetchFailedException: W:Download is performed unsandboxed as root as file '/tmp/tmpzvy8jf_z/cache/Foonux 22.04/apt/var/lib/apt/lists/partial/archive.ubuntu.com_ubuntu_dists_jammy_InRelease' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied), W:GPG error: http://ppa.launchpad.net/apport-hackers/apport-autopkgtests/ubuntu jammy InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY AAD2CE78135EFFF5, E:The repository 'http://ppa.launchpad.net/apport-hackers/apport-autopkgtests/ubuntu jammy InRelease' is not signed. 5307s 5307s /usr/lib/python3/dist-packages/apt/cache.py:564: FetchFailedException 5307s 5307s The above exception was the direct cause of the following exception: 5307s 5307s configdir = '/tmp/tmpzvy8jf_z/config', cachedir = '/tmp/tmpzvy8jf_z/cache' 5307s rootdir = '/tmp/tmpzvy8jf_z/root', apt_style = 'one-line' 5307s 5307s @pytest.mark.skipif(not has_internet(), reason="online test") 5307s def test_install_package_from_a_ppa(configdir, cachedir, rootdir, apt_style): 5307s """Install a package from a PPA.""" 5307s # Needs apport package in https://launchpad.net 5307s # /~apport-hackers/+archive/ubuntu/apport-autopkgtests 5307s ppa = "LP-PPA-apport-hackers-apport-autopkgtests" 5307s release = _setup_foonux_config(configdir, apt_style) 5307s wanted_package = "apport" 5307s wanted_version = "2.20.11-0ubuntu82.1~ppa2" 5307s > obsolete = impl.install_packages( 5307s rootdir, 5307s configdir, 5307s release, 5307s [(wanted_package, wanted_version)], 5307s False, 5307s cachedir, 5307s origins=[ppa], 5307s ) 5307s 5307s tests/system/test_packaging_apt_dpkg.py:904: 5307s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 5307s /usr/lib/python3/dist-packages/apport/packaging_impl/apt_dpkg.py:936: in install_packages 5307s apt_cache = self._sandbox_cache( 5307s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 5307s 5307s self = 5307s aptroot = '/tmp/tmpzvy8jf_z/cache/Foonux 22.04/apt' 5307s apt_dir = '/tmp/tmpzvy8jf_z/config/Foonux 22.04' 5307s fetchProgress = 5307s distro_name = 'ubuntu', release_codename = 'jammy' 5307s origins = ['LP-PPA-apport-hackers-apport-autopkgtests'], arch = 'amd64' 5307s 5307s def _sandbox_cache( 5307s self, 5307s aptroot, 5307s apt_dir, 5307s fetchProgress, 5307s distro_name, 5307s release_codename, 5307s origins, 5307s arch, 5307s ): # pylint: disable=too-many-arguments 5307s """Build apt sandbox and return apt.Cache(rootdir=) (initialized 5307s lazily). 5307s 5307s Clear the package selection on subsequent calls. 5307s """ 5307s if not self._sandbox_apt_cache or arch != self._sandbox_apt_cache_arch: 5307s self._clear_apt_cache() 5307s self._build_apt_sandbox( 5307s aptroot, apt_dir, distro_name, release_codename, origins 5307s ) 5307s rootdir = os.path.abspath(aptroot) 5307s self._sandbox_apt_cache = apt.Cache(rootdir=rootdir) 5307s self._sandbox_apt_cache_arch = arch 5307s try: 5307s # We don't need to update this multiple times. 5307s self._sandbox_apt_cache.update(fetchProgress) 5307s except apt.cache.FetchFailedException as error: 5307s > raise SystemError(str(error)) from error 5307s E SystemError: W:Download is performed unsandboxed as root as file '/tmp/tmpzvy8jf_z/cache/Foonux 22.04/apt/var/lib/apt/lists/partial/archive.ubuntu.com_ubuntu_dists_jammy_InRelease' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied), W:GPG error: http://ppa.launchpad.net/apport-hackers/apport-autopkgtests/ubuntu jammy InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY AAD2CE78135EFFF5, E:The repository 'http://ppa.launchpad.net/apport-hackers/apport-autopkgtests/ubuntu jammy InRelease' is not signed. 5307s 5307s /usr/lib/python3/dist-packages/apport/packaging_impl/apt_dpkg.py:263: SystemError 5307s ----------------------------- Captured stdout call ----------------------------- 5307s Executing: /tmp/apt-key-gpghome.J1wRWEntv6/gpg.1.sh --quiet --keyserver keyserver.ubuntu.com --recv-key F5038FF7E3E2B0346DF1A7A7AAD2CE78135EFFF5 5307s ----------------------------- Captured stderr call ----------------------------- 5307s Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)). 5307s gpg: keyserver receive failed: Connection timed out 5307s WARNING: Unable to import key for https://api.launchpad.net/devel/~apport-hackers/+archive/ubuntu/apport-autopkgtests 5307s ___________________ test_install_package_from_a_ppa[deb822] ____________________ 5307s 5307s self = 5307s fetch_progress = 5307s pulse_interval = 0, raise_on_error = True, sources_list = None 5307s 5307s def update( 5307s self, 5307s fetch_progress: AcquireProgress | None = None, 5307s pulse_interval: int = 0, 5307s raise_on_error: bool = True, 5307s sources_list: str | None = None, 5307s ) -> int: 5307s """Run the equivalent of apt-get update. 5307s 5307s You probably want to call open() afterwards, in order to utilise the 5307s new cache. Otherwise, the old cache will be used which can lead to 5307s strange bugs. 5307s 5307s The first parameter *fetch_progress* may be set to an instance of 5307s apt.progress.FetchProgress, the default is apt.progress.FetchProgress() 5307s . 5307s sources_list -- Update a alternative sources.list than the default. 5307s Note that the sources.list.d directory is ignored in this case 5307s """ 5307s with _WrappedLock(apt_pkg.config.find_dir("Dir::State::Lists")): 5307s if sources_list: 5307s old_sources_list = apt_pkg.config.find("Dir::Etc::sourcelist") 5307s old_sources_list_d = apt_pkg.config.find("Dir::Etc::sourceparts") 5307s old_cleanup = apt_pkg.config.find("APT::List-Cleanup") 5307s apt_pkg.config.set( 5307s "Dir::Etc::sourcelist", os.path.abspath(sources_list) 5307s ) 5307s apt_pkg.config.set("Dir::Etc::sourceparts", "xxx") 5307s apt_pkg.config.set("APT::List-Cleanup", "0") 5307s slist = apt_pkg.SourceList() 5307s slist.read_main_list() 5307s else: 5307s slist = self._list 5307s 5307s try: 5307s if fetch_progress is None: 5307s fetch_progress = apt.progress.base.AcquireProgress() 5307s try: 5307s > res = self._cache.update(fetch_progress, slist, pulse_interval) 5307s E apt_pkg.Error: W:Updating from such a repository can't be done securely, and is therefore disabled by default., W:See apt-secure(8) manpage for repository creation and user configuration details., W:Download is performed unsandboxed as root as file '/tmp/tmpjuuhevi6/cache/Foonux 22.04/apt/var/lib/apt/lists/partial/ppa.launchpad.net_apport-hackers_apport-autopkgtests_ubuntu_dists_jammy_InRelease' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied), W:GPG error: http://ppa.launchpad.net/apport-hackers/apport-autopkgtests/ubuntu jammy InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY AAD2CE78135EFFF5, E:The repository 'http://ppa.launchpad.net/apport-hackers/apport-autopkgtests/ubuntu jammy InRelease' is not signed. 5307s 5307s /usr/lib/python3/dist-packages/apt/cache.py:562: Error 5307s 5307s During handling of the above exception, another exception occurred: 5307s 5307s self = 5307s aptroot = '/tmp/tmpjuuhevi6/cache/Foonux 22.04/apt' 5307s apt_dir = '/tmp/tmpjuuhevi6/config/Foonux 22.04' 5307s fetchProgress = 5307s distro_name = 'ubuntu', release_codename = 'jammy' 5307s origins = ['LP-PPA-apport-hackers-apport-autopkgtests'], arch = 'amd64' 5307s 5307s def _sandbox_cache( 5307s self, 5307s aptroot, 5307s apt_dir, 5307s fetchProgress, 5307s distro_name, 5307s release_codename, 5307s origins, 5307s arch, 5307s ): # pylint: disable=too-many-arguments 5307s """Build apt sandbox and return apt.Cache(rootdir=) (initialized 5307s lazily). 5307s 5307s Clear the package selection on subsequent calls. 5307s """ 5307s if not self._sandbox_apt_cache or arch != self._sandbox_apt_cache_arch: 5307s self._clear_apt_cache() 5307s self._build_apt_sandbox( 5307s aptroot, apt_dir, distro_name, release_codename, origins 5307s ) 5307s rootdir = os.path.abspath(aptroot) 5307s self._sandbox_apt_cache = apt.Cache(rootdir=rootdir) 5307s self._sandbox_apt_cache_arch = arch 5307s try: 5307s # We don't need to update this multiple times. 5307s > self._sandbox_apt_cache.update(fetchProgress) 5307s 5307s /usr/lib/python3/dist-packages/apport/packaging_impl/apt_dpkg.py:261: 5307s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 5307s 5307s self = 5307s fetch_progress = 5307s pulse_interval = 0, raise_on_error = True, sources_list = None 5307s 5307s def update( 5307s self, 5307s fetch_progress: AcquireProgress | None = None, 5307s pulse_interval: int = 0, 5307s raise_on_error: bool = True, 5307s sources_list: str | None = None, 5307s ) -> int: 5307s """Run the equivalent of apt-get update. 5307s 5307s You probably want to call open() afterwards, in order to utilise the 5307s new cache. Otherwise, the old cache will be used which can lead to 5307s strange bugs. 5307s 5307s The first parameter *fetch_progress* may be set to an instance of 5307s apt.progress.FetchProgress, the default is apt.progress.FetchProgress() 5307s . 5307s sources_list -- Update a alternative sources.list than the default. 5307s Note that the sources.list.d directory is ignored in this case 5307s """ 5307s with _WrappedLock(apt_pkg.config.find_dir("Dir::State::Lists")): 5307s if sources_list: 5307s old_sources_list = apt_pkg.config.find("Dir::Etc::sourcelist") 5307s old_sources_list_d = apt_pkg.config.find("Dir::Etc::sourceparts") 5307s old_cleanup = apt_pkg.config.find("APT::List-Cleanup") 5307s apt_pkg.config.set( 5307s "Dir::Etc::sourcelist", os.path.abspath(sources_list) 5307s ) 5307s apt_pkg.config.set("Dir::Etc::sourceparts", "xxx") 5307s apt_pkg.config.set("APT::List-Cleanup", "0") 5307s slist = apt_pkg.SourceList() 5307s slist.read_main_list() 5307s else: 5307s slist = self._list 5307s 5307s try: 5307s if fetch_progress is None: 5307s fetch_progress = apt.progress.base.AcquireProgress() 5307s try: 5307s res = self._cache.update(fetch_progress, slist, pulse_interval) 5307s except SystemError as e: 5307s > raise FetchFailedException(e) 5307s E apt.cache.FetchFailedException: W:Updating from such a repository can't be done securely, and is therefore disabled by default., W:See apt-secure(8) manpage for repository creation and user configuration details., W:Download is performed unsandboxed as root as file '/tmp/tmpjuuhevi6/cache/Foonux 22.04/apt/var/lib/apt/lists/partial/ppa.launchpad.net_apport-hackers_apport-autopkgtests_ubuntu_dists_jammy_InRelease' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied), W:GPG error: http://ppa.launchpad.net/apport-hackers/apport-autopkgtests/ubuntu jammy InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY AAD2CE78135EFFF5, E:The repository 'http://ppa.launchpad.net/apport-hackers/apport-autopkgtests/ubuntu jammy InRelease' is not signed. 5307s 5307s /usr/lib/python3/dist-packages/apt/cache.py:564: FetchFailedException 5307s 5307s The above exception was the direct cause of the following exception: 5307s 5307s configdir = '/tmp/tmpjuuhevi6/config', cachedir = '/tmp/tmpjuuhevi6/cache' 5307s rootdir = '/tmp/tmpjuuhevi6/root', apt_style = 'deb822' 5307s 5307s @pytest.mark.skipif(not has_internet(), reason="online test") 5307s def test_install_package_from_a_ppa(configdir, cachedir, rootdir, apt_style): 5307s """Install a package from a PPA.""" 5307s # Needs apport package in https://launchpad.net 5307s # /~apport-hackers/+archive/ubuntu/apport-autopkgtests 5307s ppa = "LP-PPA-apport-hackers-apport-autopkgtests" 5307s release = _setup_foonux_config(configdir, apt_style) 5307s wanted_package = "apport" 5307s wanted_version = "2.20.11-0ubuntu82.1~ppa2" 5307s > obsolete = impl.install_packages( 5307s rootdir, 5307s configdir, 5307s release, 5307s [(wanted_package, wanted_version)], 5307s False, 5307s cachedir, 5307s origins=[ppa], 5307s ) 5307s 5307s tests/system/test_packaging_apt_dpkg.py:904: 5307s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 5307s /usr/lib/python3/dist-packages/apport/packaging_impl/apt_dpkg.py:936: in install_packages 5307s apt_cache = self._sandbox_cache( 5307s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 5307s 5307s self = 5307s aptroot = '/tmp/tmpjuuhevi6/cache/Foonux 22.04/apt' 5307s apt_dir = '/tmp/tmpjuuhevi6/config/Foonux 22.04' 5307s fetchProgress = 5307s distro_name = 'ubuntu', release_codename = 'jammy' 5307s origins = ['LP-PPA-apport-hackers-apport-autopkgtests'], arch = 'amd64' 5307s 5307s def _sandbox_cache( 5307s self, 5307s aptroot, 5307s apt_dir, 5307s fetchProgress, 5307s distro_name, 5307s release_codename, 5307s origins, 5307s arch, 5307s ): # pylint: disable=too-many-arguments 5307s """Build apt sandbox and return apt.Cache(rootdir=) (initialized 5307s lazily). 5307s 5307s Clear the package selection on subsequent calls. 5307s """ 5307s if not self._sandbox_apt_cache or arch != self._sandbox_apt_cache_arch: 5307s self._clear_apt_cache() 5307s self._build_apt_sandbox( 5307s aptroot, apt_dir, distro_name, release_codename, origins 5307s ) 5307s rootdir = os.path.abspath(aptroot) 5307s self._sandbox_apt_cache = apt.Cache(rootdir=rootdir) 5307s self._sandbox_apt_cache_arch = arch 5307s try: 5307s # We don't need to update this multiple times. 5307s self._sandbox_apt_cache.update(fetchProgress) 5307s except apt.cache.FetchFailedException as error: 5307s > raise SystemError(str(error)) from error 5307s E SystemError: W:Updating from such a repository can't be done securely, and is therefore disabled by default., W:See apt-secure(8) manpage for repository creation and user configuration details., W:Download is performed unsandboxed as root as file '/tmp/tmpjuuhevi6/cache/Foonux 22.04/apt/var/lib/apt/lists/partial/ppa.launchpad.net_apport-hackers_apport-autopkgtests_ubuntu_dists_jammy_InRelease' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied), W:GPG error: http://ppa.launchpad.net/apport-hackers/apport-autopkgtests/ubuntu jammy InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY AAD2CE78135EFFF5, E:The repository 'http://ppa.launchpad.net/apport-hackers/apport-autopkgtests/ubuntu jammy InRelease' is not signed. 5307s 5307s /usr/lib/python3/dist-packages/apport/packaging_impl/apt_dpkg.py:263: SystemError 5307s ----------------------------- Captured stdout call ----------------------------- 5307s Executing: /tmp/apt-key-gpghome.jupQhPTLCT/gpg.1.sh --quiet --keyserver keyserver.ubuntu.com --recv-key F5038FF7E3E2B0346DF1A7A7AAD2CE78135EFFF5 5307s ----------------------------- Captured stderr call ----------------------------- 5307s Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)). 5307s gpg: keyserver receive failed: Connection timed out 5307s WARNING: Unable to import key for https://api.launchpad.net/devel/~apport-hackers/+archive/ubuntu/apport-autopkgtests 5307s =============================== warnings summary =============================== 5307s tests/system/test_packaging_apt_dpkg.py::test_install_packages_versioned[one-line] 5307s tests/system/test_packaging_apt_dpkg.py::test_install_packages_versioned[one-line] 5307s /usr/lib/python3/dist-packages/apt/cache.py:562: Warning: W:Download is performed unsandboxed as root as file '/tmp/tmpsu53y_38/cache/Foonux 22.04/apt/var/lib/apt/lists/partial/archive.ubuntu.com_ubuntu_dists_jammy_InRelease' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied) 5307s res = self._cache.update(fetch_progress, slist, pulse_interval) 5307s 5307s tests/system/test_packaging_apt_dpkg.py: 28 warnings 5307s /usr/lib/python3/dist-packages/httplib2/__init__.py:147: DeprecationWarning: ssl.PROTOCOL_TLS is deprecated 5307s context = ssl.SSLContext(DEFAULT_TLS_VERSION) 5307s 5307s tests/system/test_packaging_apt_dpkg.py::test_install_packages_versioned[deb822] 5307s tests/system/test_packaging_apt_dpkg.py::test_install_packages_versioned[deb822] 5307s /usr/lib/python3/dist-packages/apt/cache.py:562: Warning: W:Download is performed unsandboxed as root as file '/tmp/tmp_9qjszba/cache/Foonux 22.04/apt/var/lib/apt/lists/partial/archive.ubuntu.com_ubuntu_dists_jammy_InRelease' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied) 5307s res = self._cache.update(fetch_progress, slist, pulse_interval) 5307s 5307s tests/system/test_packaging_apt_dpkg.py::test_install_packages_system[one-line] 5307s /usr/lib/python3/dist-packages/apt/cache.py:562: Warning: W:Download is performed unsandboxed as root as file '/tmp/tmpdtm57n6l/cache/system/apt/var/lib/apt/lists/partial/ftpmaster.internal_ubuntu_dists_noble-proposed_InRelease' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied) 5307s res = self._cache.update(fetch_progress, slist, pulse_interval) 5307s 5307s tests/system/test_packaging_apt_dpkg.py::test_install_packages_system[deb822] 5307s /usr/lib/python3/dist-packages/apt/cache.py:562: Warning: W:Download is performed unsandboxed as root as file '/tmp/tmpikrz5vus/cache/system/apt/var/lib/apt/lists/partial/ftpmaster.internal_ubuntu_dists_noble-proposed_InRelease' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied) 5307s res = self._cache.update(fetch_progress, slist, pulse_interval) 5307s 5307s tests/system/test_packaging_apt_dpkg.py::test_install_packages_permanent_sandbox[one-line] 5307s /usr/lib/python3/dist-packages/apt/cache.py:562: Warning: W:Updating from such a repository can't be done securely, and is therefore disabled by default., W:See apt-secure(8) manpage for repository creation and user configuration details., W:Download is performed unsandboxed as root as file '/tmp/tmpx5pvwbyg/cache/Foonux 22.04/apt/var/lib/apt/lists/partial/archive.ubuntu.com_ubuntu_dists_jammy_InRelease' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied) 5307s res = self._cache.update(fetch_progress, slist, pulse_interval) 5307s 5307s tests/system/test_packaging_apt_dpkg.py::test_install_packages_permanent_sandbox[deb822] 5307s /usr/lib/python3/dist-packages/apt/cache.py:562: Warning: W:Download is performed unsandboxed as root as file '/tmp/tmpne3fcvl0/cache/Foonux 22.04/apt/var/lib/apt/lists/partial/archive.ubuntu.com_ubuntu_dists_jammy_InRelease' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied) 5307s res = self._cache.update(fetch_progress, slist, pulse_interval) 5307s 5307s tests/system/test_packaging_apt_dpkg.py::test_install_packages_permanent_sandbox_repack[one-line] 5307s /usr/lib/python3/dist-packages/apt/cache.py:562: Warning: W:Download is performed unsandboxed as root as file '/tmp/tmp8xaqsufk/cache/Foonux 22.04/apt/var/lib/apt/lists/partial/archive.ubuntu.com_ubuntu_dists_jammy_InRelease' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied) 5307s res = self._cache.update(fetch_progress, slist, pulse_interval) 5307s 5307s tests/system/test_packaging_apt_dpkg.py::test_install_packages_permanent_sandbox_repack[deb822] 5307s /usr/lib/python3/dist-packages/apt/cache.py:562: Warning: W:Download is performed unsandboxed as root as file '/tmp/tmpj9_bqn9r/cache/Foonux 22.04/apt/var/lib/apt/lists/partial/archive.ubuntu.com_ubuntu_dists_jammy_InRelease' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied) 5307s res = self._cache.update(fetch_progress, slist, pulse_interval) 5307s 5307s tests/system/test_packaging_apt_dpkg.py::test_install_packages_from_launchpad[one-line] 5307s /usr/lib/python3/dist-packages/apt/cache.py:562: Warning: W:Updating from such a repository can't be done securely, and is therefore disabled by default., W:See apt-secure(8) manpage for repository creation and user configuration details., W:Download is performed unsandboxed as root as file '/tmp/tmp94b6hill/cache/Foonux 20.04/apt/var/lib/apt/lists/partial/archive.ubuntu.com_ubuntu_dists_focal_InRelease' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied) 5307s res = self._cache.update(fetch_progress, slist, pulse_interval) 5307s 5307s tests/system/test_packaging_apt_dpkg.py::test_install_packages_from_launchpad[deb822] 5307s /usr/lib/python3/dist-packages/apt/cache.py:562: Warning: W:Download is performed unsandboxed as root as file '/tmp/tmp_gqoft60/cache/Foonux 20.04/apt/var/lib/apt/lists/partial/archive.ubuntu.com_ubuntu_dists_focal_InRelease' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied) 5307s res = self._cache.update(fetch_progress, slist, pulse_interval) 5307s 5307s tests/system/test_packaging_apt_dpkg.py::test_install_old_packages[one-line] 5307s /usr/lib/python3/dist-packages/apt/cache.py:562: Warning: W:Download is performed unsandboxed as root as file '/tmp/tmplttk099n/cache/Foonux 22.04/apt/var/lib/apt/lists/partial/archive.ubuntu.com_ubuntu_dists_jammy_InRelease' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied) 5307s res = self._cache.update(fetch_progress, slist, pulse_interval) 5307s 5307s tests/system/test_packaging_apt_dpkg.py::test_install_old_packages[deb822] 5307s /usr/lib/python3/dist-packages/apt/cache.py:562: Warning: W:Download is performed unsandboxed as root as file '/tmp/tmp23qpcb6i/cache/Foonux 22.04/apt/var/lib/apt/lists/partial/archive.ubuntu.com_ubuntu_dists_jammy_InRelease' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied) 5307s res = self._cache.update(fetch_progress, slist, pulse_interval) 5307s 5307s -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html 5307s =========================== short test summary info ============================ 5307s FAILED tests/system/test_apport_retrace.py::test_retrace_system_sandbox - sub... 5307s FAILED tests/system/test_apport_retrace.py::test_retrace_system_sandbox_gdb_sandbox 5307s FAILED tests/system/test_apport_retrace.py::test_retrace_jammy_sandbox - subp... 5307s FAILED tests/system/test_apport_retrace.py::test_retrace_jammy_sandbox_gdb_sandbox 5307s FAILED tests/system/test_apport_valgrind.py::TestApportValgrind::test_sandbox_cache_options 5307s FAILED tests/system/test_packaging_apt_dpkg.py::test_install_packages_system[one-line] 5307s FAILED tests/system/test_packaging_apt_dpkg.py::test_install_packages_system[deb822] 5307s FAILED tests/system/test_packaging_apt_dpkg.py::test_install_packages_armhf[one-line] 5307s FAILED tests/system/test_packaging_apt_dpkg.py::test_install_packages_armhf[deb822] 5307s FAILED tests/system/test_packaging_apt_dpkg.py::test_install_packages_from_launchpad[one-line] 5307s FAILED tests/system/test_packaging_apt_dpkg.py::test_install_packages_from_launchpad[deb822] 5307s FAILED tests/system/test_packaging_apt_dpkg.py::test_install_old_packages[one-line] 5307s FAILED tests/system/test_packaging_apt_dpkg.py::test_install_old_packages[deb822] 5307s FAILED tests/system/test_packaging_apt_dpkg.py::test_get_source_tree_lp_sandbox[one-line] 5307s FAILED tests/system/test_packaging_apt_dpkg.py::test_get_source_tree_lp_sandbox[deb822] 5307s FAILED tests/system/test_packaging_apt_dpkg.py::test_create_sources_for_a_named_ppa[one-line] 5307s FAILED tests/system/test_packaging_apt_dpkg.py::test_create_sources_for_a_named_ppa[deb822] 5307s FAILED tests/system/test_packaging_apt_dpkg.py::test_install_package_from_a_ppa[one-line] 5307s FAILED tests/system/test_packaging_apt_dpkg.py::test_install_package_from_a_ppa[deb822] 5307s =========== 19 failed, 83 passed, 42 warnings in 4253.68s (1:10:53) ============ 5307s autopkgtest [22:46:46]: test system-tests: -----------------------] 5308s system-tests FAIL non-zero exit status 1 5308s autopkgtest [22:46:47]: test system-tests: - - - - - - - - - - results - - - - - - - - - - 5308s autopkgtest [22:46:47]: @@@@@@@@@@@@@@@@@@@@ summary 5308s unit-and-integration-tests PASS 5308s system-tests FAIL non-zero exit status 1 5595s nova [W] Timed out waiting for 78a08e04-e09b-4af1-b94d-3ae8c42b9499 to get deleted.