0s autopkgtest [18:26:56]: starting date and time: 2025-11-17 18:26:56+0000 0s autopkgtest [18:26:56]: git checkout: 4b346b80 nova: make wait_reboot return success even when a no-op 0s autopkgtest [18:26:56]: host juju-7f2275-prod-proposed-migration-environment-15; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.e991xkxu/out --timeout-copy=6000 --setup-commands /home/ubuntu/autopkgtest-cloud/worker-config-production/setup-canonical.sh --apt-pocket=proposed=src:pygls --apt-upgrade debputy --timeout-short=300 --timeout-copy=20000 --timeout-build=20000 --env=ADT_TEST_TRIGGERS=pygls/1.3.0-4 -- ssh -s /home/ubuntu/autopkgtest/ssh-setup/nova -- --flavor autopkgtest --security-groups autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-arm64-15.secgroup --name adt-resolute-arm64-debputy-20251117-172929-juju-7f2275-prod-proposed-migration-environment-15-be84d110-a465-429f-b326-9570c6c653c9 --image adt/ubuntu-resolute-arm64-server --keyname testbed-juju-7f2275-prod-proposed-migration-environment-15 --net-id=net_prod-proposed-migration -e TERM=linux --mirror=http://ftpmaster.internal/ubuntu/ 4s Creating nova instance adt-resolute-arm64-debputy-20251117-172929-juju-7f2275-prod-proposed-migration-environment-15-be84d110-a465-429f-b326-9570c6c653c9 from image adt/ubuntu-resolute-arm64-server-20251117.img (UUID 1cd33fbb-18df-4c5a-b8f0-2dcb25269485)... 107s autopkgtest [18:28:43]: testbed dpkg architecture: arm64 108s autopkgtest [18:28:44]: testbed apt version: 3.1.11 108s autopkgtest [18:28:44]: @@@@@@@@@@@@@@@@@@@@ test bed setup 109s autopkgtest [18:28:45]: testbed release detected to be: None 110s autopkgtest [18:28:46]: updating testbed package index (apt update) 110s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease [87.8 kB] 110s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 110s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 110s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 110s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/restricted Sources [9852 B] 110s Get:6 http://ftpmaster.internal/ubuntu resolute-proposed/main Sources [73.2 kB] 111s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/universe Sources [779 kB] 111s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse Sources [22.9 kB] 111s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 Packages [143 kB] 111s Get:10 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 c-n-f Metadata [3224 B] 111s Get:11 http://ftpmaster.internal/ubuntu resolute-proposed/restricted arm64 Packages [107 kB] 111s Get:12 http://ftpmaster.internal/ubuntu resolute-proposed/restricted arm64 c-n-f Metadata [324 B] 111s Get:13 http://ftpmaster.internal/ubuntu resolute-proposed/universe arm64 Packages [517 kB] 111s Get:14 http://ftpmaster.internal/ubuntu resolute-proposed/universe arm64 c-n-f Metadata [17.1 kB] 111s Get:15 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse arm64 Packages [12.5 kB] 111s Get:16 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse arm64 c-n-f Metadata [576 B] 113s Fetched 1774 kB in 1s (1459 kB/s) 115s Reading package lists... 116s Hit:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease 116s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 116s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 117s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 118s Reading package lists... 118s Reading package lists... 119s Building dependency tree... 119s Reading state information... 119s Calculating upgrade... 120s The following packages will be upgraded: 120s apt libapt-pkg7.0 libcrypt-dev libcrypt1 usbutils 120s 5 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 120s Need to get 2764 kB of archives. 120s After this operation, 104 kB of additional disk space will be used. 120s Get:1 http://ftpmaster.internal/ubuntu resolute/main arm64 libcrypt-dev arm64 1:4.5.1-1 [123 kB] 120s Get:2 http://ftpmaster.internal/ubuntu resolute/main arm64 libcrypt1 arm64 1:4.5.1-1 [88.3 kB] 120s Get:3 http://ftpmaster.internal/ubuntu resolute/main arm64 libapt-pkg7.0 arm64 3.1.12 [1063 kB] 121s Get:4 http://ftpmaster.internal/ubuntu resolute/main arm64 apt arm64 3.1.12 [1407 kB] 121s Get:5 http://ftpmaster.internal/ubuntu resolute/main arm64 usbutils arm64 1:019-1 [81.7 kB] 121s dpkg-preconfigure: unable to re-open stdin: No such file or directory 122s Fetched 2764 kB in 1s (3065 kB/s) 122s (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 ... 88137 files and directories currently installed.) 122s Preparing to unpack .../libcrypt-dev_1%3a4.5.1-1_arm64.deb ... 122s Unpacking libcrypt-dev:arm64 (1:4.5.1-1) over (1:4.4.38-1build1) ... 123s Preparing to unpack .../libcrypt1_1%3a4.5.1-1_arm64.deb ... 123s Unpacking libcrypt1:arm64 (1:4.5.1-1) over (1:4.4.38-1build1) ... 123s Setting up libcrypt1:arm64 (1:4.5.1-1) ... 123s (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 ... 88137 files and directories currently installed.) 123s Preparing to unpack .../libapt-pkg7.0_3.1.12_arm64.deb ... 123s Unpacking libapt-pkg7.0:arm64 (3.1.12) over (3.1.11) ... 123s Preparing to unpack .../archives/apt_3.1.12_arm64.deb ... 124s Unpacking apt (3.1.12) over (3.1.11) ... 124s Preparing to unpack .../usbutils_1%3a019-1_arm64.deb ... 124s Unpacking usbutils (1:019-1) over (1:018-2) ... 124s Setting up usbutils (1:019-1) ... 124s Setting up libcrypt-dev:arm64 (1:4.5.1-1) ... 124s Setting up libapt-pkg7.0:arm64 (3.1.12) ... 124s Setting up apt (3.1.12) ... 126s Processing triggers for man-db (2.13.1-1) ... 130s Processing triggers for libc-bin (2.42-2ubuntu2) ... 130s autopkgtest [18:29:06]: upgrading testbed (apt dist-upgrade and autopurge) 132s Reading package lists... 133s Building dependency tree... 133s Reading state information... 133s Calculating upgrade... 134s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 134s Reading package lists... 135s Building dependency tree... 135s Reading state information... 135s Solving dependencies... 136s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 136s autopkgtest [18:29:12]: rebooting testbed after setup commands that affected boot 176s autopkgtest [18:29:52]: testbed running kernel: Linux 6.17.0-5-generic #5-Ubuntu SMP PREEMPT_DYNAMIC Mon Sep 22 09:50:31 UTC 2025 180s autopkgtest [18:29:56]: @@@@@@@@@@@@@@@@@@@@ apt-source debputy 182s Get:1 http://ftpmaster.internal/ubuntu resolute/universe debputy 0.1.76ubuntu1 (dsc) [2496 B] 182s Get:2 http://ftpmaster.internal/ubuntu resolute/universe debputy 0.1.76ubuntu1 (tar) [725 kB] 183s gpgv: Signature made Tue Oct 7 21:05:52 2025 UTC 183s gpgv: using RSA key 8A2044F84F716A85B77FF76311DF4294CCA39893 183s gpgv: Can't check signature: No public key 183s dpkg-source: warning: cannot verify inline signature for ./debputy_0.1.76ubuntu1.dsc: no acceptable signature found 183s autopkgtest [18:29:59]: testing package debputy version 0.1.76ubuntu1 183s autopkgtest [18:29:59]: build not needed 184s autopkgtest [18:30:00]: test debputy-py.test: preparing testbed 184s Reading package lists... 184s Building dependency tree... 184s Reading state information... 185s Solving dependencies... 185s The following NEW packages will be installed: 185s autoconf automake autopoint autotools-dev cpp cpp-15 185s cpp-15-aarch64-linux-gnu cpp-aarch64-linux-gnu debhelper debugedit 185s dh-autoreconf dh-debputy dh-strip-nondeterminism dwz gcc gcc-15 185s gcc-15-aarch64-linux-gnu gcc-aarch64-linux-gnu gettext intltool-debian 185s libarchive-zip-perl libasan8 libcc1-0 libdebhelper-perl 185s libfile-stripnondeterminism-perl libgcc-15-dev libgomp1 libhwasan0 libisl23 185s libitm1 liblsan0 libmpc3 libtool libtsan2 libubsan1 m4 po-debconf 185s python3-all python3-cattr python3-colored python3-colorlog python3-debian 185s python3-iniconfig python3-lsprotocol python3-pluggy python3-pytest 185s python3-ruyaml strip-nondeterminism 186s 0 upgraded, 48 newly installed, 0 to remove and 0 not upgraded. 186s Need to get 54.4 MB of archives. 186s After this operation, 182 MB of additional disk space will be used. 186s Get:1 http://ftpmaster.internal/ubuntu resolute/main arm64 m4 arm64 1.4.20-2 [213 kB] 186s Get:2 http://ftpmaster.internal/ubuntu resolute/main arm64 autoconf all 2.72-3.1ubuntu1 [384 kB] 186s Get:3 http://ftpmaster.internal/ubuntu resolute/main arm64 autotools-dev all 20240727.1 [43.4 kB] 186s Get:4 http://ftpmaster.internal/ubuntu resolute/main arm64 automake all 1:1.18.1-2 [581 kB] 186s Get:5 http://ftpmaster.internal/ubuntu resolute/main arm64 autopoint all 0.23.2-1 [620 kB] 186s Get:6 http://ftpmaster.internal/ubuntu resolute/main arm64 libisl23 arm64 0.27-1 [676 kB] 186s Get:7 http://ftpmaster.internal/ubuntu resolute/main arm64 libmpc3 arm64 1.3.1-2 [55.6 kB] 187s Get:8 http://ftpmaster.internal/ubuntu resolute/main arm64 cpp-15-aarch64-linux-gnu arm64 15.2.0-7ubuntu1 [11.7 MB] 190s Get:9 http://ftpmaster.internal/ubuntu resolute/main arm64 cpp-15 arm64 15.2.0-7ubuntu1 [1026 B] 190s Get:10 http://ftpmaster.internal/ubuntu resolute/main arm64 cpp-aarch64-linux-gnu arm64 4:15.2.0-4ubuntu1 [5736 B] 190s Get:11 http://ftpmaster.internal/ubuntu resolute/main arm64 cpp arm64 4:15.2.0-4ubuntu1 [22.4 kB] 190s Get:12 http://ftpmaster.internal/ubuntu resolute/main arm64 libdebhelper-perl all 13.24.2ubuntu1 [95.7 kB] 190s Get:13 http://ftpmaster.internal/ubuntu resolute/main arm64 libcc1-0 arm64 15.2.0-7ubuntu1 [49.0 kB] 190s Get:14 http://ftpmaster.internal/ubuntu resolute/main arm64 libgomp1 arm64 15.2.0-7ubuntu1 [147 kB] 190s Get:15 http://ftpmaster.internal/ubuntu resolute/main arm64 libitm1 arm64 15.2.0-7ubuntu1 [27.9 kB] 190s Get:16 http://ftpmaster.internal/ubuntu resolute/main arm64 libasan8 arm64 15.2.0-7ubuntu1 [2923 kB] 191s Get:17 http://ftpmaster.internal/ubuntu resolute/main arm64 liblsan0 arm64 15.2.0-7ubuntu1 [1316 kB] 192s Get:18 http://ftpmaster.internal/ubuntu resolute/main arm64 libtsan2 arm64 15.2.0-7ubuntu1 [2689 kB] 193s Get:19 http://ftpmaster.internal/ubuntu resolute/main arm64 libubsan1 arm64 15.2.0-7ubuntu1 [1176 kB] 193s Get:20 http://ftpmaster.internal/ubuntu resolute/main arm64 libhwasan0 arm64 15.2.0-7ubuntu1 [1638 kB] 194s Get:21 http://ftpmaster.internal/ubuntu resolute/main arm64 libgcc-15-dev arm64 15.2.0-7ubuntu1 [2600 kB] 195s Get:22 http://ftpmaster.internal/ubuntu resolute/main arm64 gcc-15-aarch64-linux-gnu arm64 15.2.0-7ubuntu1 [23.1 MB] 215s Get:23 http://ftpmaster.internal/ubuntu resolute/main arm64 gcc-15 arm64 15.2.0-7ubuntu1 [513 kB] 215s Get:24 http://ftpmaster.internal/ubuntu resolute/main arm64 gcc-aarch64-linux-gnu arm64 4:15.2.0-4ubuntu1 [1206 B] 215s Get:25 http://ftpmaster.internal/ubuntu resolute/main arm64 gcc arm64 4:15.2.0-4ubuntu1 [5016 B] 215s Get:26 http://ftpmaster.internal/ubuntu resolute/main arm64 libtool all 2.5.4-7 [169 kB] 215s Get:27 http://ftpmaster.internal/ubuntu resolute/main arm64 dh-autoreconf all 21 [12.5 kB] 215s Get:28 http://ftpmaster.internal/ubuntu resolute/main arm64 libarchive-zip-perl all 1.68-1 [90.2 kB] 215s Get:29 http://ftpmaster.internal/ubuntu resolute/main arm64 libfile-stripnondeterminism-perl all 1.15.0-1 [20.5 kB] 215s Get:30 http://ftpmaster.internal/ubuntu resolute/main arm64 dh-strip-nondeterminism all 1.15.0-1 [5090 B] 215s Get:31 http://ftpmaster.internal/ubuntu resolute/main arm64 debugedit arm64 1:5.2-3 [49.1 kB] 215s Get:32 http://ftpmaster.internal/ubuntu resolute/main arm64 dwz arm64 0.16-2 [113 kB] 215s Get:33 http://ftpmaster.internal/ubuntu resolute/main arm64 gettext arm64 0.23.2-1 [998 kB] 216s Get:34 http://ftpmaster.internal/ubuntu resolute/main arm64 intltool-debian all 0.35.0+20060710.6 [23.2 kB] 216s Get:35 http://ftpmaster.internal/ubuntu resolute/main arm64 po-debconf all 1.0.21+nmu1 [233 kB] 216s Get:36 http://ftpmaster.internal/ubuntu resolute/main arm64 debhelper all 13.24.2ubuntu1 [896 kB] 217s Get:37 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-colored all 2.2.4-1 [14.2 kB] 217s Get:38 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-colorlog all 6.9.0-1 [21.6 kB] 217s Get:39 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-debian all 1.0.1ubuntu1 [121 kB] 217s Get:40 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-ruyaml all 0.91.0-5 [81.7 kB] 217s Get:41 http://ftpmaster.internal/ubuntu resolute/universe arm64 strip-nondeterminism all 1.15.0-1 [5566 B] 217s Get:42 http://ftpmaster.internal/ubuntu resolute/universe arm64 dh-debputy all 0.1.76ubuntu1 [509 kB] 217s Get:43 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-all arm64 3.13.7-1 [884 B] 217s Get:44 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-cattr all 24.1.2-1 [43.6 kB] 217s Get:45 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-iniconfig all 2.1.0-1 [6840 B] 217s Get:46 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-lsprotocol all 2023.0.1-1 [58.3 kB] 217s Get:47 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-pluggy all 1.6.0-1 [21.0 kB] 218s Get:48 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-pytest all 8.3.5-2 [252 kB] 218s Fetched 54.4 MB in 32s (1689 kB/s) 218s Selecting previously unselected package m4. 219s (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 ... 88137 files and directories currently installed.) 219s Preparing to unpack .../00-m4_1.4.20-2_arm64.deb ... 219s Unpacking m4 (1.4.20-2) ... 219s Selecting previously unselected package autoconf. 219s Preparing to unpack .../01-autoconf_2.72-3.1ubuntu1_all.deb ... 219s Unpacking autoconf (2.72-3.1ubuntu1) ... 219s Selecting previously unselected package autotools-dev. 219s Preparing to unpack .../02-autotools-dev_20240727.1_all.deb ... 219s Unpacking autotools-dev (20240727.1) ... 219s Selecting previously unselected package automake. 219s Preparing to unpack .../03-automake_1%3a1.18.1-2_all.deb ... 219s Unpacking automake (1:1.18.1-2) ... 219s Selecting previously unselected package autopoint. 219s Preparing to unpack .../04-autopoint_0.23.2-1_all.deb ... 219s Unpacking autopoint (0.23.2-1) ... 219s Selecting previously unselected package libisl23:arm64. 219s Preparing to unpack .../05-libisl23_0.27-1_arm64.deb ... 219s Unpacking libisl23:arm64 (0.27-1) ... 220s Selecting previously unselected package libmpc3:arm64. 220s Preparing to unpack .../06-libmpc3_1.3.1-2_arm64.deb ... 220s Unpacking libmpc3:arm64 (1.3.1-2) ... 220s Selecting previously unselected package cpp-15-aarch64-linux-gnu. 220s Preparing to unpack .../07-cpp-15-aarch64-linux-gnu_15.2.0-7ubuntu1_arm64.deb ... 220s Unpacking cpp-15-aarch64-linux-gnu (15.2.0-7ubuntu1) ... 220s Selecting previously unselected package cpp-15. 220s Preparing to unpack .../08-cpp-15_15.2.0-7ubuntu1_arm64.deb ... 220s Unpacking cpp-15 (15.2.0-7ubuntu1) ... 220s Selecting previously unselected package cpp-aarch64-linux-gnu. 220s Preparing to unpack .../09-cpp-aarch64-linux-gnu_4%3a15.2.0-4ubuntu1_arm64.deb ... 220s Unpacking cpp-aarch64-linux-gnu (4:15.2.0-4ubuntu1) ... 220s Selecting previously unselected package cpp. 220s Preparing to unpack .../10-cpp_4%3a15.2.0-4ubuntu1_arm64.deb ... 220s Unpacking cpp (4:15.2.0-4ubuntu1) ... 220s Selecting previously unselected package libdebhelper-perl. 220s Preparing to unpack .../11-libdebhelper-perl_13.24.2ubuntu1_all.deb ... 220s Unpacking libdebhelper-perl (13.24.2ubuntu1) ... 220s Selecting previously unselected package libcc1-0:arm64. 220s Preparing to unpack .../12-libcc1-0_15.2.0-7ubuntu1_arm64.deb ... 220s Unpacking libcc1-0:arm64 (15.2.0-7ubuntu1) ... 220s Selecting previously unselected package libgomp1:arm64. 220s Preparing to unpack .../13-libgomp1_15.2.0-7ubuntu1_arm64.deb ... 220s Unpacking libgomp1:arm64 (15.2.0-7ubuntu1) ... 221s Selecting previously unselected package libitm1:arm64. 221s Preparing to unpack .../14-libitm1_15.2.0-7ubuntu1_arm64.deb ... 221s Unpacking libitm1:arm64 (15.2.0-7ubuntu1) ... 221s Selecting previously unselected package libasan8:arm64. 221s Preparing to unpack .../15-libasan8_15.2.0-7ubuntu1_arm64.deb ... 221s Unpacking libasan8:arm64 (15.2.0-7ubuntu1) ... 221s Selecting previously unselected package liblsan0:arm64. 221s Preparing to unpack .../16-liblsan0_15.2.0-7ubuntu1_arm64.deb ... 221s Unpacking liblsan0:arm64 (15.2.0-7ubuntu1) ... 221s Selecting previously unselected package libtsan2:arm64. 221s Preparing to unpack .../17-libtsan2_15.2.0-7ubuntu1_arm64.deb ... 221s Unpacking libtsan2:arm64 (15.2.0-7ubuntu1) ... 221s Selecting previously unselected package libubsan1:arm64. 221s Preparing to unpack .../18-libubsan1_15.2.0-7ubuntu1_arm64.deb ... 221s Unpacking libubsan1:arm64 (15.2.0-7ubuntu1) ... 221s Selecting previously unselected package libhwasan0:arm64. 221s Preparing to unpack .../19-libhwasan0_15.2.0-7ubuntu1_arm64.deb ... 221s Unpacking libhwasan0:arm64 (15.2.0-7ubuntu1) ... 221s Selecting previously unselected package libgcc-15-dev:arm64. 221s Preparing to unpack .../20-libgcc-15-dev_15.2.0-7ubuntu1_arm64.deb ... 221s Unpacking libgcc-15-dev:arm64 (15.2.0-7ubuntu1) ... 221s Selecting previously unselected package gcc-15-aarch64-linux-gnu. 222s Preparing to unpack .../21-gcc-15-aarch64-linux-gnu_15.2.0-7ubuntu1_arm64.deb ... 222s Unpacking gcc-15-aarch64-linux-gnu (15.2.0-7ubuntu1) ... 222s Selecting previously unselected package gcc-15. 222s Preparing to unpack .../22-gcc-15_15.2.0-7ubuntu1_arm64.deb ... 222s Unpacking gcc-15 (15.2.0-7ubuntu1) ... 222s Selecting previously unselected package gcc-aarch64-linux-gnu. 222s Preparing to unpack .../23-gcc-aarch64-linux-gnu_4%3a15.2.0-4ubuntu1_arm64.deb ... 222s Unpacking gcc-aarch64-linux-gnu (4:15.2.0-4ubuntu1) ... 222s Selecting previously unselected package gcc. 223s Preparing to unpack .../24-gcc_4%3a15.2.0-4ubuntu1_arm64.deb ... 223s Unpacking gcc (4:15.2.0-4ubuntu1) ... 223s Selecting previously unselected package libtool. 223s Preparing to unpack .../25-libtool_2.5.4-7_all.deb ... 223s Unpacking libtool (2.5.4-7) ... 223s Selecting previously unselected package dh-autoreconf. 223s Preparing to unpack .../26-dh-autoreconf_21_all.deb ... 223s Unpacking dh-autoreconf (21) ... 223s Selecting previously unselected package libarchive-zip-perl. 223s Preparing to unpack .../27-libarchive-zip-perl_1.68-1_all.deb ... 223s Unpacking libarchive-zip-perl (1.68-1) ... 223s Selecting previously unselected package libfile-stripnondeterminism-perl. 223s Preparing to unpack .../28-libfile-stripnondeterminism-perl_1.15.0-1_all.deb ... 223s Unpacking libfile-stripnondeterminism-perl (1.15.0-1) ... 223s Selecting previously unselected package dh-strip-nondeterminism. 223s Preparing to unpack .../29-dh-strip-nondeterminism_1.15.0-1_all.deb ... 223s Unpacking dh-strip-nondeterminism (1.15.0-1) ... 223s Selecting previously unselected package debugedit. 223s Preparing to unpack .../30-debugedit_1%3a5.2-3_arm64.deb ... 223s Unpacking debugedit (1:5.2-3) ... 223s Selecting previously unselected package dwz. 223s Preparing to unpack .../31-dwz_0.16-2_arm64.deb ... 223s Unpacking dwz (0.16-2) ... 223s Selecting previously unselected package gettext. 223s Preparing to unpack .../32-gettext_0.23.2-1_arm64.deb ... 223s Unpacking gettext (0.23.2-1) ... 223s Selecting previously unselected package intltool-debian. 223s Preparing to unpack .../33-intltool-debian_0.35.0+20060710.6_all.deb ... 223s Unpacking intltool-debian (0.35.0+20060710.6) ... 223s Selecting previously unselected package po-debconf. 223s Preparing to unpack .../34-po-debconf_1.0.21+nmu1_all.deb ... 223s Unpacking po-debconf (1.0.21+nmu1) ... 223s Selecting previously unselected package debhelper. 223s Preparing to unpack .../35-debhelper_13.24.2ubuntu1_all.deb ... 223s Unpacking debhelper (13.24.2ubuntu1) ... 223s Selecting previously unselected package python3-colored. 223s Preparing to unpack .../36-python3-colored_2.2.4-1_all.deb ... 223s Unpacking python3-colored (2.2.4-1) ... 223s Selecting previously unselected package python3-colorlog. 224s Preparing to unpack .../37-python3-colorlog_6.9.0-1_all.deb ... 224s Unpacking python3-colorlog (6.9.0-1) ... 224s Selecting previously unselected package python3-debian. 224s Preparing to unpack .../38-python3-debian_1.0.1ubuntu1_all.deb ... 224s Unpacking python3-debian (1.0.1ubuntu1) ... 224s Selecting previously unselected package python3-ruyaml. 224s Preparing to unpack .../39-python3-ruyaml_0.91.0-5_all.deb ... 224s Unpacking python3-ruyaml (0.91.0-5) ... 224s Selecting previously unselected package strip-nondeterminism. 224s Preparing to unpack .../40-strip-nondeterminism_1.15.0-1_all.deb ... 224s Unpacking strip-nondeterminism (1.15.0-1) ... 224s Selecting previously unselected package dh-debputy. 224s Preparing to unpack .../41-dh-debputy_0.1.76ubuntu1_all.deb ... 224s Unpacking dh-debputy (0.1.76ubuntu1) ... 224s Selecting previously unselected package python3-all. 224s Preparing to unpack .../42-python3-all_3.13.7-1_arm64.deb ... 224s Unpacking python3-all (3.13.7-1) ... 224s Selecting previously unselected package python3-cattr. 224s Preparing to unpack .../43-python3-cattr_24.1.2-1_all.deb ... 224s Unpacking python3-cattr (24.1.2-1) ... 224s Selecting previously unselected package python3-iniconfig. 224s Preparing to unpack .../44-python3-iniconfig_2.1.0-1_all.deb ... 224s Unpacking python3-iniconfig (2.1.0-1) ... 224s Selecting previously unselected package python3-lsprotocol. 224s Preparing to unpack .../45-python3-lsprotocol_2023.0.1-1_all.deb ... 224s Unpacking python3-lsprotocol (2023.0.1-1) ... 224s Selecting previously unselected package python3-pluggy. 224s Preparing to unpack .../46-python3-pluggy_1.6.0-1_all.deb ... 224s Unpacking python3-pluggy (1.6.0-1) ... 224s Selecting previously unselected package python3-pytest. 224s Preparing to unpack .../47-python3-pytest_8.3.5-2_all.deb ... 224s Unpacking python3-pytest (8.3.5-2) ... 224s Setting up python3-iniconfig (2.1.0-1) ... 225s Setting up python3-colorlog (6.9.0-1) ... 225s Setting up libarchive-zip-perl (1.68-1) ... 225s Setting up libdebhelper-perl (13.24.2ubuntu1) ... 225s Setting up m4 (1.4.20-2) ... 225s Setting up python3-all (3.13.7-1) ... 225s Setting up libgomp1:arm64 (15.2.0-7ubuntu1) ... 225s Setting up autotools-dev (20240727.1) ... 225s Setting up python3-cattr (24.1.2-1) ... 225s Setting up python3-debian (1.0.1ubuntu1) ... 226s Setting up libmpc3:arm64 (1.3.1-2) ... 226s Setting up autopoint (0.23.2-1) ... 226s Setting up autoconf (2.72-3.1ubuntu1) ... 226s Setting up python3-pluggy (1.6.0-1) ... 226s Setting up libubsan1:arm64 (15.2.0-7ubuntu1) ... 226s Setting up dwz (0.16-2) ... 226s Setting up libhwasan0:arm64 (15.2.0-7ubuntu1) ... 226s Setting up libasan8:arm64 (15.2.0-7ubuntu1) ... 226s Setting up debugedit (1:5.2-3) ... 226s Setting up python3-colored (2.2.4-1) ... 226s Setting up libtsan2:arm64 (15.2.0-7ubuntu1) ... 226s Setting up libisl23:arm64 (0.27-1) ... 226s Setting up python3-ruyaml (0.91.0-5) ... 227s Setting up libcc1-0:arm64 (15.2.0-7ubuntu1) ... 227s Setting up liblsan0:arm64 (15.2.0-7ubuntu1) ... 227s Setting up libitm1:arm64 (15.2.0-7ubuntu1) ... 227s Setting up automake (1:1.18.1-2) ... 227s update-alternatives: using /usr/bin/automake-1.18 to provide /usr/bin/automake (automake) in auto mode 227s Setting up libfile-stripnondeterminism-perl (1.15.0-1) ... 227s Setting up cpp-15-aarch64-linux-gnu (15.2.0-7ubuntu1) ... 227s Setting up gettext (0.23.2-1) ... 227s Setting up libgcc-15-dev:arm64 (15.2.0-7ubuntu1) ... 227s Setting up python3-lsprotocol (2023.0.1-1) ... 227s Setting up python3-pytest (8.3.5-2) ... 228s Setting up strip-nondeterminism (1.15.0-1) ... 228s Setting up intltool-debian (0.35.0+20060710.6) ... 228s Setting up cpp-aarch64-linux-gnu (4:15.2.0-4ubuntu1) ... 228s Setting up dh-strip-nondeterminism (1.15.0-1) ... 228s Setting up cpp-15 (15.2.0-7ubuntu1) ... 228s Setting up cpp (4:15.2.0-4ubuntu1) ... 228s Setting up gcc-15-aarch64-linux-gnu (15.2.0-7ubuntu1) ... 228s Setting up po-debconf (1.0.21+nmu1) ... 228s Setting up gcc-15 (15.2.0-7ubuntu1) ... 228s Setting up gcc-aarch64-linux-gnu (4:15.2.0-4ubuntu1) ... 228s Setting up libtool (2.5.4-7) ... 228s Setting up gcc (4:15.2.0-4ubuntu1) ... 228s Setting up dh-autoreconf (21) ... 228s Setting up debhelper (13.24.2ubuntu1) ... 228s Setting up dh-debputy (0.1.76ubuntu1) ... 229s Processing triggers for libc-bin (2.42-2ubuntu2) ... 229s Processing triggers for man-db (2.13.1-1) ... 232s Processing triggers for install-info (7.2-5) ... 233s autopkgtest [18:30:49]: test debputy-py.test: [----------------------- 234s + mkdir /tmp/autopkgtest.px34wj/autopkgtest_tmp/debian 234s + cp -r pyproject.toml tests/ /tmp/autopkgtest.px34wj/autopkgtest_tmp 234s + cp -a debian/control /tmp/autopkgtest.px34wj/autopkgtest_tmp/debian 234s + export PYTHONWARNINGS=d 234s + export DEBPUTY_TEST_AGAINST_INSTALLED_PLUGINS=uninstalled 234s + DEBPUTY_PYTHONPATH=/usr/share/dh-debputy 234s + PYTHOHPATH= 234s + [ ] 234s + PYTHOHPATH=/usr/share/dh-debputy 234s + export DEBPUTY_REQUIRE_LIBCAP=1 234s + cd /tmp/autopkgtest.px34wj/autopkgtest_tmp/ 234s + py3versions -s 234s ---------------------------------------------- 234s Testing with python3.13 234s ---------------------------------------------- 234s + echo ---------------------------------------------- 234s + echo Testing with python3.13 234s + echo ---------------------------------------------- 234s + PYTHONPATH=/usr/share/dh-debputy LC_ALL=C python3.13 -m pytest 238s ============================= test session starts ============================== 238s platform linux -- Python 3.13.9, pytest-8.3.5, pluggy-1.6.0 238s rootdir: /tmp/autopkgtest.px34wj/autopkgtest_tmp 238s configfile: pyproject.toml 238s testpaths: src, tests, self-hosting-plugins 238s plugins: typeguard-4.4.2 238s collected 535 items 238s 240s tests/lint_tests/lint/test_lint_changelog.py .......................... [ 4%] 241s tests/lint_tests/lint/test_lint_dcpy.py ...... [ 5%] 245s tests/lint_tests/lint/test_lint_dctrl.py .ss.................s.s........ [ 11%] 247s ..........s...sss [ 14%] 247s tests/lint_tests/lint/test_lint_debian_watch.py . [ 15%] 248s tests/lint_tests/lint/test_lint_debputy.py .....ss.... [ 17%] 248s tests/lint_tests/lint/test_lint_dpatches_series.py ... [ 17%] 248s tests/lint_tests/lint/test_lint_dtctrl.py .s [ 18%] 248s tests/lint_tests/lint/test_lint_upstream_metadata.py . [ 18%] 249s tests/lint_tests/reformat/test_reformat_dctrl.py ... [ 18%] 249s tests/lint_tests/reformat/test_reformat_dwatch.py . [ 19%] 249s tests/lsp_tests/test_debpkg_metadata.py ........... [ 21%] 250s tests/lsp_tests/test_lsp_dctrl.py ssssssssssssssss [ 24%] 250s tests/lsp_tests/test_lsp_debian_rules_completer.py s [ 24%] 251s tests/lsp_tests/test_lsp_debian_watch.py sssss [ 25%] 252s tests/lsp_tests/test_lsp_debputy_manifest_completer.py ssssssssssssssss [ 28%] 253s tests/lsp_tests/test_lsp_debputy_manifest_hover.py sssssssssss [ 30%] 253s tests/lsp_tests/test_lsp_dpatches_series.py s [ 30%] 254s tests/plugin_tests/gnome_test.py .... [ 31%] 254s tests/plugin_tests/grantlee_test.py . [ 31%] 254s tests/plugin_tests/numpy3_test.py .. [ 31%] 254s tests/plugin_tests/perl-openssl_test.py . [ 31%] 254s tests/test_alternatives.py . [ 32%] 254s tests/test_apply_compression.py . [ 32%] 254s tests/test_architecture.py . [ 32%] 254s tests/test_cross_check_precheck.py ............... [ 35%] 254s tests/test_deb_packaging_support.py .................................... [ 42%] 254s .. [ 42%] 257s tests/test_debputy_plugin.py ........................................... [ 50%] 257s .. [ 50%] 257s tests/test_declarative_parser.py ............ [ 53%] 259s tests/test_fs_metadata.py .................. [ 56%] 261s tests/test_install_rules.py .................. [ 59%] 261s tests/test_interpreter.py ............. [ 62%] 264s tests/test_migrations.py .................................... [ 68%] 264s tests/test_output_filename.py ...... [ 70%] 266s tests/test_packager_provided_files.py ....................s.s [ 74%] 266s tests/test_packer_pack.py . [ 74%] 270s tests/test_parser.py ............................................. [ 82%] 270s tests/test_path.py . [ 83%] 271s tests/test_plugin_tester.py ......................... [ 87%] 271s tests/test_style.py ....x............................... [ 94%] 272s tests/test_substitute.py ...... [ 95%] 272s tests/test_symbolic_mode.py ........ [ 97%] 272s tests/test_symlink_normalization.py .......... [ 99%] 272s tests/test_utils.py ..... [100%] 272s 272s =============================== warnings summary =============================== 272s tests/lsp_tests/test_lsp_dctrl.py:365 272s /tmp/autopkgtest.px34wj/autopkgtest_tmp/tests/lsp_tests/test_lsp_dctrl.py:365: PytestUnknownMarkWarning: Unknown pytest.mark.asyncio - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html 272s @pytest.mark.asyncio 272s 272s tests/lsp_tests/test_lsp_dpatches_series.py:29 272s /tmp/autopkgtest.px34wj/autopkgtest_tmp/tests/lsp_tests/test_lsp_dpatches_series.py:29: PytestUnknownMarkWarning: Unknown pytest.mark.asyncio - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html 272s @pytest.mark.asyncio 272s 272s tests/test_deb_packaging_support.py::test_generate_md5sums_file[data_members1-conffiles_lines1-expected1] 272s /tmp/autopkgtest.px34wj/autopkgtest_tmp/tests/test_deb_packaging_support.py:478: ResourceWarning: unclosed file <_io.TextIOWrapper name='/tmp/autopkgtest.px34wj/autopkgtest_tmp/debian/.debputy/scratch-dir/_pb-2045/generated-fs-content/no-package/tmpevhanhk4__md5sums' mode='rt' encoding='utf-8'> 272s for line in md5sums_file.open(): 272s Enable tracemalloc to get traceback where the object was allocated. 272s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 272s 272s tests/test_deb_packaging_support.py::test_generate_md5sums_file[data_members3-conffiles_lines3-expected3] 272s /tmp/autopkgtest.px34wj/autopkgtest_tmp/tests/test_deb_packaging_support.py:478: ResourceWarning: unclosed file <_io.TextIOWrapper name='/tmp/autopkgtest.px34wj/autopkgtest_tmp/debian/.debputy/scratch-dir/_pb-2045/generated-fs-content/no-package/tmpe0pvybop__md5sums' mode='rt' encoding='utf-8'> 272s for line in md5sums_file.open(): 272s Enable tracemalloc to get traceback where the object was allocated. 272s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 272s 272s -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html 272s =========== 471 passed, 63 skipped, 1 xfailed, 4 warnings in 36.85s ============ 272s + PYTHONPATH=/usr/share/dh-debputy LC_ALL=C.UTF-8 python3.13 -m pytest 275s ============================= test session starts ============================== 275s platform linux -- Python 3.13.9, pytest-8.3.5, pluggy-1.6.0 275s rootdir: /tmp/autopkgtest.px34wj/autopkgtest_tmp 275s configfile: pyproject.toml 275s testpaths: src, tests, self-hosting-plugins 275s plugins: typeguard-4.4.2 275s collected 535 items 275s 277s tests/lint_tests/lint/test_lint_changelog.py .......................... [ 4%] 277s tests/lint_tests/lint/test_lint_dcpy.py ...... [ 5%] 281s tests/lint_tests/lint/test_lint_dctrl.py .ss.................s.s........ [ 11%] 283s ..........s...sss [ 14%] 283s tests/lint_tests/lint/test_lint_debian_watch.py . [ 15%] 284s tests/lint_tests/lint/test_lint_debputy.py .....ss.... [ 17%] 284s tests/lint_tests/lint/test_lint_dpatches_series.py ... [ 17%] 284s tests/lint_tests/lint/test_lint_dtctrl.py .s [ 18%] 284s tests/lint_tests/lint/test_lint_upstream_metadata.py . [ 18%] 285s tests/lint_tests/reformat/test_reformat_dctrl.py ... [ 18%] 285s tests/lint_tests/reformat/test_reformat_dwatch.py . [ 19%] 285s tests/lsp_tests/test_debpkg_metadata.py ........... [ 21%] 286s tests/lsp_tests/test_lsp_dctrl.py ssssssssssssssss [ 24%] 286s tests/lsp_tests/test_lsp_debian_rules_completer.py s [ 24%] 287s tests/lsp_tests/test_lsp_debian_watch.py sssss [ 25%] 288s tests/lsp_tests/test_lsp_debputy_manifest_completer.py ssssssssssssssss [ 28%] 289s tests/lsp_tests/test_lsp_debputy_manifest_hover.py sssssssssss [ 30%] 289s tests/lsp_tests/test_lsp_dpatches_series.py s [ 30%] 289s tests/plugin_tests/gnome_test.py .... [ 31%] 289s tests/plugin_tests/grantlee_test.py . [ 31%] 290s tests/plugin_tests/numpy3_test.py .. [ 31%] 290s tests/plugin_tests/perl-openssl_test.py . [ 31%] 290s tests/test_alternatives.py . [ 32%] 290s tests/test_apply_compression.py . [ 32%] 290s tests/test_architecture.py . [ 32%] 290s tests/test_cross_check_precheck.py ............... [ 35%] 290s tests/test_deb_packaging_support.py .................................... [ 42%] 290s .. [ 42%] 293s tests/test_debputy_plugin.py ........................................... [ 50%] 293s .. [ 50%] 293s tests/test_declarative_parser.py ............ [ 53%] 294s tests/test_fs_metadata.py .................. [ 56%] 296s tests/test_install_rules.py .................. [ 59%] 296s tests/test_interpreter.py ............. [ 62%] 299s tests/test_migrations.py .................................... [ 68%] 299s tests/test_output_filename.py ...... [ 70%] 301s tests/test_packager_provided_files.py ....................s.s [ 74%] 301s tests/test_packer_pack.py . [ 74%] 305s tests/test_parser.py ............................................. [ 82%] 305s tests/test_path.py . [ 83%] 305s tests/test_plugin_tester.py ......................... [ 87%] 306s tests/test_style.py ....x............................... [ 94%] 307s tests/test_substitute.py ...... [ 95%] 307s tests/test_symbolic_mode.py ........ [ 97%] 307s tests/test_symlink_normalization.py .......... [ 99%] 307s tests/test_utils.py ..... [100%] 307s 307s =============================== warnings summary =============================== 307s tests/lsp_tests/test_lsp_dctrl.py:365 307s /tmp/autopkgtest.px34wj/autopkgtest_tmp/tests/lsp_tests/test_lsp_dctrl.py:365: PytestUnknownMarkWarning: Unknown pytest.mark.asyncio - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html 307s @pytest.mark.asyncio 307s 307s tests/lsp_tests/test_lsp_dpatches_series.py:29 307s /tmp/autopkgtest.px34wj/autopkgtest_tmp/tests/lsp_tests/test_lsp_dpatches_series.py:29: PytestUnknownMarkWarning: Unknown pytest.mark.asyncio - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html 307s @pytest.mark.asyncio 307s 307s tests/test_deb_packaging_support.py::test_generate_md5sums_file[data_members1-conffiles_lines1-expected1] 307s /tmp/autopkgtest.px34wj/autopkgtest_tmp/tests/test_deb_packaging_support.py:478: ResourceWarning: unclosed file <_io.TextIOWrapper name='/tmp/autopkgtest.px34wj/autopkgtest_tmp/debian/.debputy/scratch-dir/_pb-2115/generated-fs-content/no-package/tmp8le2616t__md5sums' mode='rt' encoding='utf-8'> 307s for line in md5sums_file.open(): 307s Enable tracemalloc to get traceback where the object was allocated. 307s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 307s 307s tests/test_deb_packaging_support.py::test_generate_md5sums_file[data_members3-conffiles_lines3-expected3] 307s /tmp/autopkgtest.px34wj/autopkgtest_tmp/tests/test_deb_packaging_support.py:478: ResourceWarning: unclosed file <_io.TextIOWrapper name='/tmp/autopkgtest.px34wj/autopkgtest_tmp/debian/.debputy/scratch-dir/_pb-2115/generated-fs-content/no-package/tmp774qd4k7__md5sums' mode='rt' encoding='utf-8'> 307s for line in md5sums_file.open(): 307s Enable tracemalloc to get traceback where the object was allocated. 307s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 307s 307s -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html 307s =========== 471 passed, 63 skipped, 1 xfailed, 4 warnings in 33.68s ============ 308s autopkgtest [18:32:04]: test debputy-py.test: -----------------------] 308s debputy-py.test PASS 308s autopkgtest [18:32:04]: test debputy-py.test: - - - - - - - - - - results - - - - - - - - - - 309s autopkgtest [18:32:05]: test debputy-cli: preparing testbed 330s Creating nova instance adt-resolute-arm64-debputy-20251117-172929-juju-7f2275-prod-proposed-migration-environment-15-be84d110-a465-429f-b326-9570c6c653c9 from image adt/ubuntu-resolute-arm64-server-20251117.img (UUID 1cd33fbb-18df-4c5a-b8f0-2dcb25269485)... 391s autopkgtest [18:33:27]: testbed dpkg architecture: arm64 391s autopkgtest [18:33:27]: testbed apt version: 3.1.11 391s autopkgtest [18:33:27]: @@@@@@@@@@@@@@@@@@@@ test bed setup 391s autopkgtest [18:33:27]: testbed release detected to be: resolute 392s autopkgtest [18:33:28]: updating testbed package index (apt update) 393s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease [87.8 kB] 393s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 393s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 393s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 393s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse Sources [22.9 kB] 393s Get:6 http://ftpmaster.internal/ubuntu resolute-proposed/universe Sources [779 kB] 394s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/restricted Sources [9852 B] 394s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/main Sources [73.2 kB] 394s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 Packages [143 kB] 394s Get:10 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 c-n-f Metadata [3224 B] 394s Get:11 http://ftpmaster.internal/ubuntu resolute-proposed/restricted arm64 Packages [107 kB] 394s Get:12 http://ftpmaster.internal/ubuntu resolute-proposed/restricted arm64 c-n-f Metadata [324 B] 394s Get:13 http://ftpmaster.internal/ubuntu resolute-proposed/universe arm64 Packages [517 kB] 394s Get:14 http://ftpmaster.internal/ubuntu resolute-proposed/universe arm64 c-n-f Metadata [17.1 kB] 394s Get:15 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse arm64 Packages [12.5 kB] 394s Get:16 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse arm64 c-n-f Metadata [576 B] 395s Fetched 1774 kB in 1s (1193 kB/s) 396s Reading package lists... 396s Hit:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease 397s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 397s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 397s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 398s Reading package lists... 398s Reading package lists... 398s Building dependency tree... 398s Reading state information... 398s Calculating upgrade... 399s The following packages will be upgraded: 399s apt libapt-pkg7.0 libcrypt-dev libcrypt1 usbutils 399s 5 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 399s Need to get 2764 kB of archives. 399s After this operation, 104 kB of additional disk space will be used. 399s Get:1 http://ftpmaster.internal/ubuntu resolute/main arm64 libcrypt-dev arm64 1:4.5.1-1 [123 kB] 399s Get:2 http://ftpmaster.internal/ubuntu resolute/main arm64 libcrypt1 arm64 1:4.5.1-1 [88.3 kB] 399s Get:3 http://ftpmaster.internal/ubuntu resolute/main arm64 libapt-pkg7.0 arm64 3.1.12 [1063 kB] 399s Get:4 http://ftpmaster.internal/ubuntu resolute/main arm64 apt arm64 3.1.12 [1407 kB] 400s Get:5 http://ftpmaster.internal/ubuntu resolute/main arm64 usbutils arm64 1:019-1 [81.7 kB] 400s dpkg-preconfigure: unable to re-open stdin: No such file or directory 400s Fetched 2764 kB in 1s (2174 kB/s) 401s (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 ... 88137 files and directories currently installed.) 401s Preparing to unpack .../libcrypt-dev_1%3a4.5.1-1_arm64.deb ... 401s Unpacking libcrypt-dev:arm64 (1:4.5.1-1) over (1:4.4.38-1build1) ... 401s Preparing to unpack .../libcrypt1_1%3a4.5.1-1_arm64.deb ... 401s Unpacking libcrypt1:arm64 (1:4.5.1-1) over (1:4.4.38-1build1) ... 401s Setting up libcrypt1:arm64 (1:4.5.1-1) ... 401s (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 ... 88137 files and directories currently installed.) 401s Preparing to unpack .../libapt-pkg7.0_3.1.12_arm64.deb ... 401s Unpacking libapt-pkg7.0:arm64 (3.1.12) over (3.1.11) ... 401s Preparing to unpack .../archives/apt_3.1.12_arm64.deb ... 402s Unpacking apt (3.1.12) over (3.1.11) ... 402s Preparing to unpack .../usbutils_1%3a019-1_arm64.deb ... 402s Unpacking usbutils (1:019-1) over (1:018-2) ... 402s Setting up usbutils (1:019-1) ... 402s Setting up libcrypt-dev:arm64 (1:4.5.1-1) ... 402s Setting up libapt-pkg7.0:arm64 (3.1.12) ... 402s Setting up apt (3.1.12) ... 403s Processing triggers for man-db (2.13.1-1) ... 405s Processing triggers for libc-bin (2.42-2ubuntu2) ... 405s autopkgtest [18:33:41]: upgrading testbed (apt dist-upgrade and autopurge) 406s Reading package lists... 407s Building dependency tree... 407s Reading state information... 407s Calculating upgrade... 407s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 408s Reading package lists... 408s Building dependency tree... 408s Reading state information... 408s Solving dependencies... 408s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 409s autopkgtest [18:33:45]: rebooting testbed after setup commands that affected boot 442s Reading package lists... 443s Building dependency tree... 443s Reading state information... 443s Solving dependencies... 443s The following NEW packages will be installed: 443s autoconf automake autopoint autotools-dev cpp cpp-15 443s cpp-15-aarch64-linux-gnu cpp-aarch64-linux-gnu debhelper debugedit 443s dh-autoreconf dh-debputy dh-strip-nondeterminism dwz gcc gcc-15 443s gcc-15-aarch64-linux-gnu gcc-aarch64-linux-gnu gettext intltool-debian 443s libarchive-zip-perl libasan8 libcc1-0 libdebhelper-perl 443s libfile-stripnondeterminism-perl libgcc-15-dev libgomp1 libhwasan0 libisl23 443s libitm1 liblsan0 libmpc3 libtool libtsan2 libubsan1 m4 po-debconf 443s python3-colored python3-colorlog python3-debian python3-ruyaml 443s strip-nondeterminism 443s 0 upgraded, 42 newly installed, 0 to remove and 0 not upgraded. 443s Need to get 54.0 MB of archives. 443s After this operation, 180 MB of additional disk space will be used. 443s Get:1 http://ftpmaster.internal/ubuntu resolute/main arm64 m4 arm64 1.4.20-2 [213 kB] 444s Get:2 http://ftpmaster.internal/ubuntu resolute/main arm64 autoconf all 2.72-3.1ubuntu1 [384 kB] 444s Get:3 http://ftpmaster.internal/ubuntu resolute/main arm64 autotools-dev all 20240727.1 [43.4 kB] 444s Get:4 http://ftpmaster.internal/ubuntu resolute/main arm64 automake all 1:1.18.1-2 [581 kB] 444s Get:5 http://ftpmaster.internal/ubuntu resolute/main arm64 autopoint all 0.23.2-1 [620 kB] 444s Get:6 http://ftpmaster.internal/ubuntu resolute/main arm64 libisl23 arm64 0.27-1 [676 kB] 445s Get:7 http://ftpmaster.internal/ubuntu resolute/main arm64 libmpc3 arm64 1.3.1-2 [55.6 kB] 445s Get:8 http://ftpmaster.internal/ubuntu resolute/main arm64 cpp-15-aarch64-linux-gnu arm64 15.2.0-7ubuntu1 [11.7 MB] 447s Get:9 http://ftpmaster.internal/ubuntu resolute/main arm64 cpp-15 arm64 15.2.0-7ubuntu1 [1026 B] 447s Get:10 http://ftpmaster.internal/ubuntu resolute/main arm64 cpp-aarch64-linux-gnu arm64 4:15.2.0-4ubuntu1 [5736 B] 447s Get:11 http://ftpmaster.internal/ubuntu resolute/main arm64 cpp arm64 4:15.2.0-4ubuntu1 [22.4 kB] 447s Get:12 http://ftpmaster.internal/ubuntu resolute/main arm64 libdebhelper-perl all 13.24.2ubuntu1 [95.7 kB] 447s Get:13 http://ftpmaster.internal/ubuntu resolute/main arm64 libcc1-0 arm64 15.2.0-7ubuntu1 [49.0 kB] 447s Get:14 http://ftpmaster.internal/ubuntu resolute/main arm64 libgomp1 arm64 15.2.0-7ubuntu1 [147 kB] 447s Get:15 http://ftpmaster.internal/ubuntu resolute/main arm64 libitm1 arm64 15.2.0-7ubuntu1 [27.9 kB] 447s Get:16 http://ftpmaster.internal/ubuntu resolute/main arm64 libasan8 arm64 15.2.0-7ubuntu1 [2923 kB] 448s Get:17 http://ftpmaster.internal/ubuntu resolute/main arm64 liblsan0 arm64 15.2.0-7ubuntu1 [1316 kB] 448s Get:18 http://ftpmaster.internal/ubuntu resolute/main arm64 libtsan2 arm64 15.2.0-7ubuntu1 [2689 kB] 448s Get:19 http://ftpmaster.internal/ubuntu resolute/main arm64 libubsan1 arm64 15.2.0-7ubuntu1 [1176 kB] 448s Get:20 http://ftpmaster.internal/ubuntu resolute/main arm64 libhwasan0 arm64 15.2.0-7ubuntu1 [1638 kB] 449s Get:21 http://ftpmaster.internal/ubuntu resolute/main arm64 libgcc-15-dev arm64 15.2.0-7ubuntu1 [2600 kB] 449s Get:22 http://ftpmaster.internal/ubuntu resolute/main arm64 gcc-15-aarch64-linux-gnu arm64 15.2.0-7ubuntu1 [23.1 MB] 452s Get:23 http://ftpmaster.internal/ubuntu resolute/main arm64 gcc-15 arm64 15.2.0-7ubuntu1 [513 kB] 452s Get:24 http://ftpmaster.internal/ubuntu resolute/main arm64 gcc-aarch64-linux-gnu arm64 4:15.2.0-4ubuntu1 [1206 B] 452s Get:25 http://ftpmaster.internal/ubuntu resolute/main arm64 gcc arm64 4:15.2.0-4ubuntu1 [5016 B] 452s Get:26 http://ftpmaster.internal/ubuntu resolute/main arm64 libtool all 2.5.4-7 [169 kB] 452s Get:27 http://ftpmaster.internal/ubuntu resolute/main arm64 dh-autoreconf all 21 [12.5 kB] 452s Get:28 http://ftpmaster.internal/ubuntu resolute/main arm64 libarchive-zip-perl all 1.68-1 [90.2 kB] 452s Get:29 http://ftpmaster.internal/ubuntu resolute/main arm64 libfile-stripnondeterminism-perl all 1.15.0-1 [20.5 kB] 452s Get:30 http://ftpmaster.internal/ubuntu resolute/main arm64 dh-strip-nondeterminism all 1.15.0-1 [5090 B] 453s Get:31 http://ftpmaster.internal/ubuntu resolute/main arm64 debugedit arm64 1:5.2-3 [49.1 kB] 453s Get:32 http://ftpmaster.internal/ubuntu resolute/main arm64 dwz arm64 0.16-2 [113 kB] 453s Get:33 http://ftpmaster.internal/ubuntu resolute/main arm64 gettext arm64 0.23.2-1 [998 kB] 453s Get:34 http://ftpmaster.internal/ubuntu resolute/main arm64 intltool-debian all 0.35.0+20060710.6 [23.2 kB] 453s Get:35 http://ftpmaster.internal/ubuntu resolute/main arm64 po-debconf all 1.0.21+nmu1 [233 kB] 453s Get:36 http://ftpmaster.internal/ubuntu resolute/main arm64 debhelper all 13.24.2ubuntu1 [896 kB] 453s Get:37 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-colored all 2.2.4-1 [14.2 kB] 453s Get:38 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-colorlog all 6.9.0-1 [21.6 kB] 453s Get:39 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-debian all 1.0.1ubuntu1 [121 kB] 453s Get:40 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-ruyaml all 0.91.0-5 [81.7 kB] 453s Get:41 http://ftpmaster.internal/ubuntu resolute/universe arm64 strip-nondeterminism all 1.15.0-1 [5566 B] 453s Get:42 http://ftpmaster.internal/ubuntu resolute/universe arm64 dh-debputy all 0.1.76ubuntu1 [509 kB] 453s Fetched 54.0 MB in 9s (5811 kB/s) 454s Selecting previously unselected package m4. 454s (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 ... 88137 files and directories currently installed.) 454s Preparing to unpack .../00-m4_1.4.20-2_arm64.deb ... 454s Unpacking m4 (1.4.20-2) ... 454s Selecting previously unselected package autoconf. 454s Preparing to unpack .../01-autoconf_2.72-3.1ubuntu1_all.deb ... 454s Unpacking autoconf (2.72-3.1ubuntu1) ... 454s Selecting previously unselected package autotools-dev. 454s Preparing to unpack .../02-autotools-dev_20240727.1_all.deb ... 454s Unpacking autotools-dev (20240727.1) ... 454s Selecting previously unselected package automake. 454s Preparing to unpack .../03-automake_1%3a1.18.1-2_all.deb ... 454s Unpacking automake (1:1.18.1-2) ... 454s Selecting previously unselected package autopoint. 454s Preparing to unpack .../04-autopoint_0.23.2-1_all.deb ... 454s Unpacking autopoint (0.23.2-1) ... 454s Selecting previously unselected package libisl23:arm64. 454s Preparing to unpack .../05-libisl23_0.27-1_arm64.deb ... 454s Unpacking libisl23:arm64 (0.27-1) ... 454s Selecting previously unselected package libmpc3:arm64. 454s Preparing to unpack .../06-libmpc3_1.3.1-2_arm64.deb ... 454s Unpacking libmpc3:arm64 (1.3.1-2) ... 454s Selecting previously unselected package cpp-15-aarch64-linux-gnu. 454s Preparing to unpack .../07-cpp-15-aarch64-linux-gnu_15.2.0-7ubuntu1_arm64.deb ... 454s Unpacking cpp-15-aarch64-linux-gnu (15.2.0-7ubuntu1) ... 455s Selecting previously unselected package cpp-15. 455s Preparing to unpack .../08-cpp-15_15.2.0-7ubuntu1_arm64.deb ... 455s Unpacking cpp-15 (15.2.0-7ubuntu1) ... 455s Selecting previously unselected package cpp-aarch64-linux-gnu. 455s Preparing to unpack .../09-cpp-aarch64-linux-gnu_4%3a15.2.0-4ubuntu1_arm64.deb ... 455s Unpacking cpp-aarch64-linux-gnu (4:15.2.0-4ubuntu1) ... 455s Selecting previously unselected package cpp. 455s Preparing to unpack .../10-cpp_4%3a15.2.0-4ubuntu1_arm64.deb ... 455s Unpacking cpp (4:15.2.0-4ubuntu1) ... 455s Selecting previously unselected package libdebhelper-perl. 455s Preparing to unpack .../11-libdebhelper-perl_13.24.2ubuntu1_all.deb ... 455s Unpacking libdebhelper-perl (13.24.2ubuntu1) ... 455s Selecting previously unselected package libcc1-0:arm64. 455s Preparing to unpack .../12-libcc1-0_15.2.0-7ubuntu1_arm64.deb ... 455s Unpacking libcc1-0:arm64 (15.2.0-7ubuntu1) ... 455s Selecting previously unselected package libgomp1:arm64. 455s Preparing to unpack .../13-libgomp1_15.2.0-7ubuntu1_arm64.deb ... 455s Unpacking libgomp1:arm64 (15.2.0-7ubuntu1) ... 455s Selecting previously unselected package libitm1:arm64. 455s Preparing to unpack .../14-libitm1_15.2.0-7ubuntu1_arm64.deb ... 455s Unpacking libitm1:arm64 (15.2.0-7ubuntu1) ... 455s Selecting previously unselected package libasan8:arm64. 455s Preparing to unpack .../15-libasan8_15.2.0-7ubuntu1_arm64.deb ... 455s Unpacking libasan8:arm64 (15.2.0-7ubuntu1) ... 455s Selecting previously unselected package liblsan0:arm64. 455s Preparing to unpack .../16-liblsan0_15.2.0-7ubuntu1_arm64.deb ... 455s Unpacking liblsan0:arm64 (15.2.0-7ubuntu1) ... 455s Selecting previously unselected package libtsan2:arm64. 455s Preparing to unpack .../17-libtsan2_15.2.0-7ubuntu1_arm64.deb ... 455s Unpacking libtsan2:arm64 (15.2.0-7ubuntu1) ... 455s Selecting previously unselected package libubsan1:arm64. 455s Preparing to unpack .../18-libubsan1_15.2.0-7ubuntu1_arm64.deb ... 455s Unpacking libubsan1:arm64 (15.2.0-7ubuntu1) ... 455s Selecting previously unselected package libhwasan0:arm64. 456s Preparing to unpack .../19-libhwasan0_15.2.0-7ubuntu1_arm64.deb ... 456s Unpacking libhwasan0:arm64 (15.2.0-7ubuntu1) ... 456s Selecting previously unselected package libgcc-15-dev:arm64. 456s Preparing to unpack .../20-libgcc-15-dev_15.2.0-7ubuntu1_arm64.deb ... 456s Unpacking libgcc-15-dev:arm64 (15.2.0-7ubuntu1) ... 456s Selecting previously unselected package gcc-15-aarch64-linux-gnu. 456s Preparing to unpack .../21-gcc-15-aarch64-linux-gnu_15.2.0-7ubuntu1_arm64.deb ... 456s Unpacking gcc-15-aarch64-linux-gnu (15.2.0-7ubuntu1) ... 456s Selecting previously unselected package gcc-15. 456s Preparing to unpack .../22-gcc-15_15.2.0-7ubuntu1_arm64.deb ... 456s Unpacking gcc-15 (15.2.0-7ubuntu1) ... 456s Selecting previously unselected package gcc-aarch64-linux-gnu. 456s Preparing to unpack .../23-gcc-aarch64-linux-gnu_4%3a15.2.0-4ubuntu1_arm64.deb ... 456s Unpacking gcc-aarch64-linux-gnu (4:15.2.0-4ubuntu1) ... 456s Selecting previously unselected package gcc. 456s Preparing to unpack .../24-gcc_4%3a15.2.0-4ubuntu1_arm64.deb ... 456s Unpacking gcc (4:15.2.0-4ubuntu1) ... 456s Selecting previously unselected package libtool. 456s Preparing to unpack .../25-libtool_2.5.4-7_all.deb ... 456s Unpacking libtool (2.5.4-7) ... 456s Selecting previously unselected package dh-autoreconf. 456s Preparing to unpack .../26-dh-autoreconf_21_all.deb ... 456s Unpacking dh-autoreconf (21) ... 456s Selecting previously unselected package libarchive-zip-perl. 456s Preparing to unpack .../27-libarchive-zip-perl_1.68-1_all.deb ... 456s Unpacking libarchive-zip-perl (1.68-1) ... 456s Selecting previously unselected package libfile-stripnondeterminism-perl. 457s Preparing to unpack .../28-libfile-stripnondeterminism-perl_1.15.0-1_all.deb ... 457s Unpacking libfile-stripnondeterminism-perl (1.15.0-1) ... 457s Selecting previously unselected package dh-strip-nondeterminism. 457s Preparing to unpack .../29-dh-strip-nondeterminism_1.15.0-1_all.deb ... 457s Unpacking dh-strip-nondeterminism (1.15.0-1) ... 457s Selecting previously unselected package debugedit. 457s Preparing to unpack .../30-debugedit_1%3a5.2-3_arm64.deb ... 457s Unpacking debugedit (1:5.2-3) ... 457s Selecting previously unselected package dwz. 457s Preparing to unpack .../31-dwz_0.16-2_arm64.deb ... 457s Unpacking dwz (0.16-2) ... 457s Selecting previously unselected package gettext. 457s Preparing to unpack .../32-gettext_0.23.2-1_arm64.deb ... 457s Unpacking gettext (0.23.2-1) ... 457s Selecting previously unselected package intltool-debian. 457s Preparing to unpack .../33-intltool-debian_0.35.0+20060710.6_all.deb ... 457s Unpacking intltool-debian (0.35.0+20060710.6) ... 457s Selecting previously unselected package po-debconf. 457s Preparing to unpack .../34-po-debconf_1.0.21+nmu1_all.deb ... 457s Unpacking po-debconf (1.0.21+nmu1) ... 457s Selecting previously unselected package debhelper. 457s Preparing to unpack .../35-debhelper_13.24.2ubuntu1_all.deb ... 457s Unpacking debhelper (13.24.2ubuntu1) ... 457s Selecting previously unselected package python3-colored. 457s Preparing to unpack .../36-python3-colored_2.2.4-1_all.deb ... 457s Unpacking python3-colored (2.2.4-1) ... 457s Selecting previously unselected package python3-colorlog. 457s Preparing to unpack .../37-python3-colorlog_6.9.0-1_all.deb ... 457s Unpacking python3-colorlog (6.9.0-1) ... 457s Selecting previously unselected package python3-debian. 457s Preparing to unpack .../38-python3-debian_1.0.1ubuntu1_all.deb ... 457s Unpacking python3-debian (1.0.1ubuntu1) ... 457s Selecting previously unselected package python3-ruyaml. 457s Preparing to unpack .../39-python3-ruyaml_0.91.0-5_all.deb ... 457s Unpacking python3-ruyaml (0.91.0-5) ... 457s Selecting previously unselected package strip-nondeterminism. 457s Preparing to unpack .../40-strip-nondeterminism_1.15.0-1_all.deb ... 457s Unpacking strip-nondeterminism (1.15.0-1) ... 457s Selecting previously unselected package dh-debputy. 457s Preparing to unpack .../41-dh-debputy_0.1.76ubuntu1_all.deb ... 457s Unpacking dh-debputy (0.1.76ubuntu1) ... 457s Setting up python3-colorlog (6.9.0-1) ... 458s Setting up libarchive-zip-perl (1.68-1) ... 458s Setting up libdebhelper-perl (13.24.2ubuntu1) ... 458s Setting up m4 (1.4.20-2) ... 458s Setting up libgomp1:arm64 (15.2.0-7ubuntu1) ... 458s Setting up autotools-dev (20240727.1) ... 458s Setting up python3-debian (1.0.1ubuntu1) ... 458s Setting up libmpc3:arm64 (1.3.1-2) ... 458s Setting up autopoint (0.23.2-1) ... 458s Setting up autoconf (2.72-3.1ubuntu1) ... 458s Setting up libubsan1:arm64 (15.2.0-7ubuntu1) ... 458s Setting up dwz (0.16-2) ... 458s Setting up libhwasan0:arm64 (15.2.0-7ubuntu1) ... 458s Setting up libasan8:arm64 (15.2.0-7ubuntu1) ... 458s Setting up debugedit (1:5.2-3) ... 458s Setting up python3-colored (2.2.4-1) ... 458s Setting up libtsan2:arm64 (15.2.0-7ubuntu1) ... 458s Setting up libisl23:arm64 (0.27-1) ... 458s Setting up python3-ruyaml (0.91.0-5) ... 458s Setting up libcc1-0:arm64 (15.2.0-7ubuntu1) ... 458s Setting up liblsan0:arm64 (15.2.0-7ubuntu1) ... 458s Setting up libitm1:arm64 (15.2.0-7ubuntu1) ... 458s Setting up automake (1:1.18.1-2) ... 458s update-alternatives: using /usr/bin/automake-1.18 to provide /usr/bin/automake (automake) in auto mode 458s Setting up libfile-stripnondeterminism-perl (1.15.0-1) ... 458s Setting up cpp-15-aarch64-linux-gnu (15.2.0-7ubuntu1) ... 458s Setting up gettext (0.23.2-1) ... 458s Setting up libgcc-15-dev:arm64 (15.2.0-7ubuntu1) ... 458s Setting up strip-nondeterminism (1.15.0-1) ... 458s Setting up intltool-debian (0.35.0+20060710.6) ... 458s Setting up cpp-aarch64-linux-gnu (4:15.2.0-4ubuntu1) ... 458s Setting up dh-strip-nondeterminism (1.15.0-1) ... 458s Setting up cpp-15 (15.2.0-7ubuntu1) ... 458s Setting up cpp (4:15.2.0-4ubuntu1) ... 458s Setting up gcc-15-aarch64-linux-gnu (15.2.0-7ubuntu1) ... 458s Setting up po-debconf (1.0.21+nmu1) ... 458s Setting up gcc-15 (15.2.0-7ubuntu1) ... 458s Setting up gcc-aarch64-linux-gnu (4:15.2.0-4ubuntu1) ... 458s Setting up libtool (2.5.4-7) ... 458s Setting up gcc (4:15.2.0-4ubuntu1) ... 458s Setting up dh-autoreconf (21) ... 458s Setting up debhelper (13.24.2ubuntu1) ... 458s Setting up dh-debputy (0.1.76ubuntu1) ... 459s Processing triggers for libc-bin (2.42-2ubuntu2) ... 459s Processing triggers for man-db (2.13.1-1) ... 460s Processing triggers for install-info (7.2-5) ... 463s autopkgtest [18:34:39]: test debputy-cli: [----------------------- 463s + debputy --no-pager --help 463s usage: debputy [-h] [--version] [--debputy-manifest DEBPUTY_MANIFEST] [-d] 463s [--no-pager] [--plugin REQUIRED_PLUGINS] 463s COMMAND ... 463s 463s The `debputy` program is a Debian packaging tool. 463s 463s It serves multiple roles in the Debian packaging stack: 463s 463s 1) It is a maintainer support tool that can help maintain packages by providing 463s editor support (LSP), batch linting and style/file formatting for Debian 463s packaging files. This is covers subcommands like `debputy lint`, 463s `debputy lsp server`, `debputy reformat` 463s 463s 2) It is a manifest-based Debian package builder aiming to replace existing 463s package helper tools such as `debhelper . In this role, `debputy` is used 463s as a part of compiling a source package and transforming it into one 463s or more binary (.deb) packages. 463s 463s If you are using a screen reader, consider exporting setting the environment variable 463s OPTIMIZE_FOR_SCREEN_READER=1. This will remove some of the visual formatting and some 463s commands will render the output in a purely textual manner rather than visual layout. 463s 463s positional arguments: 463s COMMAND 463s plugin Interact with debputy plugins 463s internal-command Commands used for internal purposes. These are 463s implementation details and subject to change 463s tool-support Tool integration commands. These are intended to have 463s stable output and behavior 463s check-manifest Check the manifest for obvious errors, but do not run 463s anything 463s autopkgtest-test-runner 463s Detect tests in the debian dir and run them against 463s installed plugins 463s migrate-from-dh Perform a named migration of a source package 463s lsp Language server related subcommands 463s lint Provide diagnostics for the packaging (like `lsp 463s server` except no editor is needed) 463s reformat Reformat the packaging files based on the 463s packaging/maintainer rules 463s 463s options: 463s -h, --help show this help message and exit 463s --version show program's version number and exit 463s --debputy-manifest DEBPUTY_MANIFEST 463s Specify another `debputy` manifest (default: 463s debian/debputy.manifest) 463s -d, --debug Enable debug logging and raw stack traces on errors. 463s Some warnings become errors as a consequence. 463s --no-pager For subcommands that can use a pager, disable the use 463s of pager. Some output formats implies --no-pager 463s --plugin REQUIRED_PLUGINS 463s Request the plugin to be loaded. Can be used multiple 463s time. Ignored for some commands (such as autopkgtest- 463s test-runner) 463s 463s Bug tracker: https://salsa.debian.org/debian/debputy/-/issues 464s + debputy --no-pager check-manifest 464s + debputy --no-pager plugin --help 464s usage: debputy plugin [-h] [--debputy-manifest DEBPUTY_MANIFEST] [-d] 464s [--no-pager] [--plugin REQUIRED_PLUGINS] 464s command ... 464s 464s positional arguments: 464s command 464s list List plugins or things provided by plugins (unstable 464s format). Pass `--help` *after* `list` get a topic 464s listing 464s show Show details about a plugin or things provided by 464s plugins (unstable format). Pass `--help` *after* 464s `show` get a topic listing 464s 464s options: 464s -h, --help show this help message and exit 464s --debputy-manifest DEBPUTY_MANIFEST 464s Specify another `debputy` manifest (default: 464s debian/debputy.manifest) 464s -d, --debug Enable debug logging and raw stack traces on errors. 464s Some warnings become errors as a consequence. 464s --no-pager For subcommands that can use a pager, disable the use 464s of pager. Some output formats implies --no-pager 464s --plugin REQUIRED_PLUGINS 464s Request the plugin to be loaded. Can be used multiple 464s time. Ignored for some commands (such as autopkgtest- 464s test-runner) 464s + debputy --no-pager plugin list --help 465s usage: debputy plugin list [-h] [--debputy-manifest DEBPUTY_MANIFEST] [-d] 465s [--no-pager] [--plugin REQUIRED_PLUGINS] 465s topic ... 465s 465s positional arguments: 465s topic 465s plugins List known plugins 465s used-packager-provided-files (uppf, u-p-p-f) 465s List packager provided files used by this package 465s (debian/pkg.foo) 465s packager-provided-files (ppf, p-p-f) 465s List packager provided file definitions 465s (debian/pkg.foo) 465s metadata-detectors List metadata detectors 465s manifest-variables List plugin provided manifest variables (such as 465s `{{path:FOO}}`) 465s pluggable-manifest-rules (p-m-r, pmr) 465s Pluggable manifest rules (such as install rules) 465s automatic-discard-rules (a-d-r) 465s List automatic discard rules 465s type-mappings Registered type mappings/descriptions 465s 465s options: 465s -h, --help show this help message and exit 465s --debputy-manifest DEBPUTY_MANIFEST 465s Specify another `debputy` manifest (default: 465s debian/debputy.manifest) 465s -d, --debug Enable debug logging and raw stack traces on errors. 465s Some warnings become errors as a consequence. 465s --no-pager For subcommands that can use a pager, disable the use 465s of pager. Some output formats implies --no-pager 465s --plugin REQUIRED_PLUGINS 465s Request the plugin to be loaded. Can be used multiple 465s time. Ignored for some commands (such as autopkgtest- 465s test-runner) 465s + debputy --no-pager plugin list 465s +-------------------------+-----------------------------------------------------------------+ 465s | Plugin Name | Plugin Path | 465s +-------------------------+-----------------------------------------------------------------+ 465s | debputy | | 465s | numpy3 | /usr/share/debputy/debputy/plugins/numpy3.json | 465s | debputy-documentation | /usr/share/debputy/debputy/plugins/debputy-documentation.json | 465s | grantlee | /usr/share/debputy/debputy/plugins/grantlee.json | 465s | debhelper-documentation | /usr/share/debputy/debputy/plugins/debhelper-documentation.json | 465s | gnome | /usr/share/debputy/debputy/plugins/gnome.json | 465s | perl-openssl | /usr/share/debputy/debputy/plugins/perl-openssl.json | 465s +-------------------------+-----------------------------------------------------------------+ 465s + debputy --no-pager plugin list plugins 466s +-------------------------+-----------------------------------------------------------------+ 466s | Plugin Name | Plugin Path | 466s +-------------------------+-----------------------------------------------------------------+ 466s | debputy | | 466s | numpy3 | /usr/share/debputy/debputy/plugins/numpy3.json | 466s | debputy-documentation | /usr/share/debputy/debputy/plugins/debputy-documentation.json | 466s | grantlee | /usr/share/debputy/debputy/plugins/grantlee.json | 466s | debhelper-documentation | /usr/share/debputy/debputy/plugins/debhelper-documentation.json | 466s | gnome | /usr/share/debputy/debputy/plugins/gnome.json | 466s | perl-openssl | /usr/share/debputy/debputy/plugins/perl-openssl.json | 466s +-------------------------+-----------------------------------------------------------------+ 466s + debputy --no-pager plugin list ppf 466s +-----------------------------+-------------------------------------------------------------------+------+------------------------+-------------+ 466s | Stem | Installed As | Mode | Features | Provided by | 466s +-----------------------------+-------------------------------------------------------------------+------+------------------------+-------------+ 466s | @path | /usr/lib/systemd/system/{name}@.path | 0644 | named | debputy | 466s | @service | /usr/lib/systemd/system/{name}@.service | 0644 | named | debputy | 466s | @socket | /usr/lib/systemd/system/{name}@.socket | 0644 | named | debputy | 466s | @target | /usr/lib/systemd/system/{name}@.target | 0644 | named | debputy | 466s | @timer | /usr/lib/systemd/system/{name}@.timer | 0644 | named | debputy | 466s | NEWS | /usr/share/doc/{name}/NEWS.Debian | 0644 | main-all-fallback | debputy | 466s | README.Debian | /usr/share/doc/{name}/README.Debian | 0644 | | debputy | 466s | TODO | /usr/share/doc/{name}/TODO.Debian | 0644 | | debputy | 466s | alternatives | /DEBIAN/alternatives | 0644 | arch | debputy | 466s | bash-completion | /usr/share/bash-completion/completions/{name} | 0644 | named | debputy | 466s | bug-control | /usr/share/bug/{name}/control | 0644 | | debputy | 466s | bug-presubj | /usr/share/bug/{name}/presubj | 0644 | | debputy | 466s | bug-script | /usr/share/bug/{name}/script | 0755 | | debputy | 466s | changelog | /usr/share/doc/{name}/changelog.Debian | 0644 | main-all-fallback | debputy | 466s | conffiles | /DEBIAN/conffiles | 0644 | arch | debputy | 466s | copyright | /usr/share/doc/{name}/copyright | 0644 | main-all-fallback | debputy | 466s | cron.d | /etc/cron.d/{name} | 0644 | named | debputy | 466s | cron.daily | /etc/cron.daily/{name} | 0755 | named | debputy | 466s | cron.hourly | /etc/cron.hourly/{name} | 0755 | named | debputy | 466s | cron.monthly | /etc/cron.monthly/{name} | 0755 | named | debputy | 466s | cron.weekly | /etc/cron.weekly/{name} | 0755 | named | debputy | 466s | cron.yearly | /etc/cron.yearly/{name} | 0755 | named | debputy | 466s | default | /etc/default/{name} | 0644 | named | debputy | 466s | doc-base | /usr/share/doc-base/{owning_package}.{name} | 0644 | named | debputy | 466s | fish-completion | /usr/share/fish/vendor_completions.d/{name} | 0644 | named | debputy | 466s | gsettings-override | /usr/share/glib-2.0/schemas/{priority:02}_{name}.gschema.override | 0644 | named,priority=10 | debputy | 466s | if-down | /etc/network/if-down.d/{name} | 0755 | named | debputy | 466s | if-post-down | /etc/network/if-post-down.d/{name} | 0755 | named | debputy | 466s | if-pre-up | /etc/network/if-pre-up.d/{name} | 0755 | named | debputy | 466s | if-up | /etc/network/if-up.d/{name} | 0755 | named | debputy | 466s | init | /etc/init.d/{name} | 0755 | named | debputy | 466s | initramfs-hook | /usr/share/initramfs-tools/hooks/{name} | 0755 | named | debputy | 466s | lintian-overrides | /usr/share/lintian/overrides/{name} | 0644 | | debputy | 466s | logcheck.cracking | /etc/logcheck/cracking.d/{name} | 0644 | named,post-format-hook | debputy | 466s | logcheck.ignore.paranoid | /etc/logcheck/ignore.d.paranoid/{name} | 0644 | named,post-format-hook | debputy | 466s | logcheck.ignore.server | /etc/logcheck/ignore.d.server/{name} | 0644 | named,post-format-hook | debputy | 466s | logcheck.ignore.workstation | /etc/logcheck/ignore.d.workstation/{name} | 0644 | named,post-format-hook | debputy | 466s | logcheck.violations | /etc/logcheck/violations.d/{name} | 0644 | named,post-format-hook | debputy | 466s | logcheck.violations.ignore | /etc/logcheck/violations.ignore.d/{name} | 0644 | named,post-format-hook | debputy | 466s | logrotate | /etc/logrotate.d/{name} | 0644 | named | debputy | 466s | mime | /usr/lib/mime/packages/{name} | 0644 | named | debputy | 466s | modprobe | /etc/modprobe.d/{name}.conf | 0644 | named | debputy | 466s | mount | /usr/lib/systemd/system/{name}.mount | 0644 | named | debputy | 466s | pam | /usr/lib/pam.d/{name} | 0644 | named | debputy | 466s | path | /usr/lib/systemd/system/{name}.path | 0644 | named | debputy | 466s | ppp.ip-down | /etc/ppp/ip-down.d/{name} | 0755 | named | debputy | 466s | ppp.ip-up | /etc/ppp/ip-up.d/{name} | 0755 | named | debputy | 466s | service | /usr/lib/systemd/system/{name}.service | 0644 | named | debputy | 466s | sharedmimeinfo | /usr/share/mime/packages/{name}.xml | 0644 | named | debputy | 466s | shlibs | /DEBIAN/shlibs | 0644 | | debputy | 466s | socket | /usr/lib/systemd/system/{name}.socket | 0644 | named | debputy | 466s | symbols | /DEBIAN/symbols | 0644 | arch | debputy | 466s | sysusers | /usr/lib/sysusers.d/{name}.conf | 0644 | named | debputy | 466s | target | /usr/lib/systemd/system/{name}.target | 0644 | named | debputy | 466s | templates | /DEBIAN/templates | 0644 | | debputy | 466s | timer | /usr/lib/systemd/system/{name}.timer | 0644 | named | debputy | 466s | tmpfiles | /usr/lib/tmpfiles.d/{name}.conf | 0644 | named | debputy | 466s | udev | /usr/lib/udev/rules.d/{priority:02}-{name}.rules | 0644 | named,priority=60 | debputy | 466s | zsh-completion | /usr/share/zsh/vendor-completions/{name} | 0644 | named | debputy | 466s +-----------------------------+-------------------------------------------------------------------+------+------------------------+-------------+ 466s 466s Hint: You can use `debputy plugin list used-packager-provided-files` to have `debputy` 466s list all the files in debian/ that matches these definitions. 466s + debputy --no-pager plugin list uppf 467s +------------------+--------------+----------------+--------------------------------------------+ 467s | File | Matched Stem | Installed Into | Installed As | 467s +------------------+--------------+----------------+--------------------------------------------+ 467s | debian/changelog | changelog | dh-debputy | /usr/share/doc/dh-debputy/changelog.Debian | 467s | debian/copyright | copyright | dh-debputy | /usr/share/doc/dh-debputy/copyright | 467s +------------------+--------------+----------------+--------------------------------------------+ 467s + debputy --no-pager plugin list manifest-variables 467s +----------------------------------+----------------------------------------+------+-------------+ 467s | Variable (use via: `{{ NAME }}`) | Value | Flag | Provided by | 467s +----------------------------------+----------------------------------------+------+-------------+ 467s | DEB_HOST_ARCH | arm64 | | debputy | 467s | DEB_HOST_ARCH_ABI | base | | debputy | 467s | DEB_HOST_ARCH_BITS | 64 | | debputy | 467s | DEB_HOST_ARCH_CPU | arm64 | | debputy | 467s | DEB_HOST_ARCH_ENDIAN | little | | debputy | 467s | DEB_HOST_ARCH_LIBC | gnu | | debputy | 467s | DEB_HOST_ARCH_OS | linux | | debputy | 467s | DEB_HOST_GNU_CPU | aarch64 | | debputy | 467s | DEB_HOST_GNU_SYSTEM | linux-gnu | | debputy | 467s | DEB_HOST_GNU_TYPE | aarch64-linux-gnu | | debputy | 467s | DEB_HOST_MULTIARCH | aarch64-linux-gnu | | debputy | 467s | DEB_SOURCE | debputy | | debputy | 467s | DEB_VERSION | 0.1.76ubuntu1 | | debputy | 467s | DEB_VERSION_EPOCH_UPSTREAM | 0.1.76ubuntu1 | | debputy | 467s | DEB_VERSION_UPSTREAM | 0.1.76ubuntu1 | | debputy | 467s | DEB_VERSION_UPSTREAM_REVISION | 0.1.76ubuntu1 | | debputy | 467s | PACKAGE | | | debputy | 467s | SOURCE_DATE_EPOCH | 1759859085 | | debputy | 467s | path:BASH_COMPLETION_DIR | /usr/share/bash-completion/completions | | debputy | 467s | path:FISH_COMPLETION_DIR | /usr/share/fish/vendor_completions.d | | debputy | 467s | path:GNU_INFO_DIR | /usr/share/info | | debputy | 467s | path:ZSH_COMPLETION_DIR | /usr/share/zsh/vendor-completions | | debputy | 467s +----------------------------------+----------------------------------------+------+-------------+ 467s 467s +-----------------------+--------+-------------------------------------------------------+ 467s | Variable type | Value | Option | 467s +-----------------------+--------+-------------------------------------------------------+ 467s | Token variables | hidden | --show-token-variables OR --show-all-variables | 467s | Special use variables | hidden | --show-special-case-variables OR --show-all-variables | 467s +-----------------------+--------+-------------------------------------------------------+ 467s + debputy --no-pager plugin list manifest-variables --show-all-variables 468s +-------------------------------------+----------------------------------------+------------------+-------------+ 468s | Variable (use via: `{{ NAME }}`) | Value | Flag | Provided by | 468s +-------------------------------------+----------------------------------------+------------------+-------------+ 468s | DEB_BUILD_ARCH | arm64 | special-use-case | debputy | 468s | DEB_BUILD_ARCH_ABI | base | special-use-case | debputy | 468s | DEB_BUILD_ARCH_BITS | 64 | special-use-case | debputy | 468s | DEB_BUILD_ARCH_CPU | arm64 | special-use-case | debputy | 468s | DEB_BUILD_ARCH_ENDIAN | little | special-use-case | debputy | 468s | DEB_BUILD_ARCH_LIBC | gnu | special-use-case | debputy | 468s | DEB_BUILD_ARCH_OS | linux | special-use-case | debputy | 468s | DEB_BUILD_GNU_CPU | aarch64 | special-use-case | debputy | 468s | DEB_BUILD_GNU_SYSTEM | linux-gnu | special-use-case | debputy | 468s | DEB_BUILD_GNU_TYPE | aarch64-linux-gnu | special-use-case | debputy | 468s | DEB_BUILD_MULTIARCH | aarch64-linux-gnu | special-use-case | debputy | 468s | DEB_HOST_ARCH | arm64 | | debputy | 468s | DEB_HOST_ARCH_ABI | base | | debputy | 468s | DEB_HOST_ARCH_BITS | 64 | | debputy | 468s | DEB_HOST_ARCH_CPU | arm64 | | debputy | 468s | DEB_HOST_ARCH_ENDIAN | little | | debputy | 468s | DEB_HOST_ARCH_LIBC | gnu | | debputy | 468s | DEB_HOST_ARCH_OS | linux | | debputy | 468s | DEB_HOST_GNU_CPU | aarch64 | | debputy | 468s | DEB_HOST_GNU_SYSTEM | linux-gnu | | debputy | 468s | DEB_HOST_GNU_TYPE | aarch64-linux-gnu | | debputy | 468s | DEB_HOST_MULTIARCH | aarch64-linux-gnu | | debputy | 468s | DEB_SOURCE | debputy | | debputy | 468s | DEB_TARGET_ARCH | arm64 | special-use-case | debputy | 468s | DEB_TARGET_ARCH_ABI | base | special-use-case | debputy | 468s | DEB_TARGET_ARCH_BITS | 64 | special-use-case | debputy | 468s | DEB_TARGET_ARCH_CPU | arm64 | special-use-case | debputy | 468s | DEB_TARGET_ARCH_ENDIAN | little | special-use-case | debputy | 468s | DEB_TARGET_ARCH_LIBC | gnu | special-use-case | debputy | 468s | DEB_TARGET_ARCH_OS | linux | special-use-case | debputy | 468s | DEB_TARGET_GNU_CPU | aarch64 | special-use-case | debputy | 468s | DEB_TARGET_GNU_SYSTEM | linux-gnu | special-use-case | debputy | 468s | DEB_TARGET_GNU_TYPE | aarch64-linux-gnu | special-use-case | debputy | 468s | DEB_TARGET_MULTIARCH | aarch64-linux-gnu | special-use-case | debputy | 468s | DEB_VERSION | 0.1.76ubuntu1 | | debputy | 468s | DEB_VERSION_EPOCH_UPSTREAM | 0.1.76ubuntu1 | | debputy | 468s | DEB_VERSION_UPSTREAM | 0.1.76ubuntu1 | | debputy | 468s | DEB_VERSION_UPSTREAM_REVISION | 0.1.76ubuntu1 | | debputy | 468s | PACKAGE | | | debputy | 468s | SOURCE_DATE_EPOCH | 1759859085 | | debputy | 468s | _DEBPUTY_INTERNAL_NON_BINNMU_SOURCE | 0.1.76ubuntu1 | internal | debputy | 468s | _DEBPUTY_SND_SOURCE_DATE_EPOCH | 1759859085 | internal | debputy | 468s | path:BASH_COMPLETION_DIR | /usr/share/bash-completion/completions | | debputy | 468s | path:FISH_COMPLETION_DIR | /usr/share/fish/vendor_completions.d | | debputy | 468s | path:GNU_INFO_DIR | /usr/share/info | | debputy | 468s | path:ZSH_COMPLETION_DIR | /usr/share/zsh/vendor-completions | | debputy | 468s | token:CLOSE_CURLY_BRACE | } | | debputy | 468s | token:DOUBLE_CLOSE_CURLY_BRACE | }} | | debputy | 468s | token:DOUBLE_OPEN_CURLY_BRACE | {{ | | debputy | 468s | token:NEWLINE | \n | | debputy | 468s | token:NL | \n | | debputy | 468s | token:OPEN_CURLY_BRACE | { | | debputy | 468s | token:TAB | \t | | debputy | 468s +-------------------------------------+----------------------------------------+------------------+-------------+ 468s 468s +-----------------------+-------+-------------------------------------------------------+ 468s | Variable type | Value | Option | 468s +-----------------------+-------+-------------------------------------------------------+ 468s | Token variables | shown | --show-token-variables OR --show-all-variables | 468s | Special use variables | shown | --show-special-case-variables OR --show-all-variables | 468s +-----------------------+-------+-------------------------------------------------------+ 468s + debputy --no-pager plugin list pmr 468s +-------------------------------+------------------------------+-------------+ 468s | Rule Name | Rule Type | Provided By | 468s +-------------------------------+------------------------------+-------------+ 468s | install | InstallRule | debputy | 468s | install-docs | InstallRule | debputy | 468s | install-doc | InstallRule | debputy | 468s | install-examples | InstallRule | debputy | 468s | install-example | InstallRule | debputy | 468s | install-man | InstallRule | debputy | 468s | discard | InstallRule | debputy | 468s | multi-dest-install | InstallRule | debputy | 468s | move | TransformationRule | debputy | 468s | remove | TransformationRule | debputy | 468s | create-symlink | TransformationRule | debputy | 468s | path-metadata | TransformationRule | debputy | 468s | create-directories | TransformationRule | debputy | 468s | remove | DpkgMaintscriptHelperCommand | debputy | 468s | rename | DpkgMaintscriptHelperCommand | debputy | 468s | cross-compiling | ManifestCondition | debputy | 468s | can-execute-compiled-binaries | ManifestCondition | debputy | 468s | run-build-time-tests | ManifestCondition | debputy | 468s | not | ManifestCondition | debputy | 468s | any-of | ManifestCondition | debputy | 468s | all-of | ManifestCondition | debputy | 468s | arch-matches | ManifestCondition | debputy | 468s | source-context-arch-matches | ManifestCondition | debputy | 468s | package-context-arch-matches | ManifestCondition | debputy | 468s | build-profiles-matches | ManifestCondition | debputy | 468s | autoconf | BuildRule | debputy | 468s | make | BuildRule | debputy | 468s | perl-build | BuildRule | debputy | 468s | perl-makemaker | BuildRule | debputy | 468s | debhelper | BuildRule | debputy | 468s | cmake | BuildRule | debputy | 468s | meson | BuildRule | debputy | 468s | qmake | BuildRule | debputy | 468s | qmake6 | BuildRule | debputy | 468s | skip-tests | TestRule | debputy | 468s | skip-tests-when | TestRule | debputy | 468s | manifest-version | | debputy | 468s | definitions | | debputy | 468s | installations | | debputy | 468s | remove-during-clean | | debputy | 468s | packages | | debputy | 468s | build-environments | | debputy | 468s | default-build-environment | | debputy | 468s | builds | | debputy | 468s | variables | definitions | debputy | 468s | binary-version | packages.{{PACKAGE}} | debputy | 468s | transformations | packages.{{PACKAGE}} | debputy | 468s | conffile-management | packages.{{PACKAGE}} | debputy | 468s | services | packages.{{PACKAGE}} | debputy | 468s | clean-after-removal | packages.{{PACKAGE}} | debputy | 468s | installation-search-dirs | packages.{{PACKAGE}} | debputy | 468s +-------------------------------+------------------------------+-------------+ 468s + debputy --no-pager plugin list automatic-discard-rules 469s +-----------------------+-------------+ 469s | Name | Provided By | 469s +-----------------------+-------------+ 469s | python-cache-files | debputy | 469s | la-files | debputy | 469s | backup-files | debputy | 469s | version-control-paths | debputy | 469s | gnu-info-dir-file | debputy | 469s | debian-dir | debputy | 469s | doxygen-cruft-files | debputy | 469s +-----------------------+-------------+ 469s + debputy --no-pager plugin list a-d-r 469s +-----------------------+-------------+ 469s | Name | Provided By | 469s +-----------------------+-------------+ 469s | python-cache-files | debputy | 469s | la-files | debputy | 469s | backup-files | debputy | 469s | version-control-paths | debputy | 469s | gnu-info-dir-file | debputy | 469s | debian-dir | debputy | 469s | doxygen-cruft-files | debputy | 469s +-----------------------+-------------+ 469s + debputy --no-pager plugin show ppf changelog 469s Packager Provided File: changelog 469s ================================= 469s 469s This file is the changelog of the package and is mandatory. 469s 469s The changelog contains the version of the source package and is mandatory for all 469s packages. 469s 469s Use `dch --create` to create the changelog. 469s 469s In theory, the binary package can have a different changelog than the source 469s package (by having `debian/binary-package.changelog`). However, it is generally 469s not useful and leads to double administration. It has not been used in practice. 469s 469s Features: 469s * debian/changelog is used for *ALL* packages 469s * No naming support; at most one per package and it is named after the package. 469s * No architecture specific variants. 469s 469s Examples matches: 469s +-----------------------------+--------------------------------------------+ 469s | Source file | Installed As | 469s +-----------------------------+--------------------------------------------+ 469s | debian/changelog | /usr/share/doc/dh-debputy/changelog.Debian | 469s | debian/dh-debputy.changelog | /usr/share/doc/dh-debputy/changelog.Debian | 469s +-----------------------------+--------------------------------------------+ 469s 469s Documentation URIs: 469s * man:deb-changelog(5) 469s * https://www.debian.org/doc/debian-policy/ch-source.html#debian-changelog-debian-changelog 469s * man:dch(1) 469s 469s Install Mode: 0644 469s Provided by plugin: debputy 470s + debputy --no-pager plugin show ppf debian/changelog 470s Packager Provided File: changelog 470s ================================= 470s 470s This file is the changelog of the package and is mandatory. 470s 470s The changelog contains the version of the source package and is mandatory for all 470s packages. 470s 470s Use `dch --create` to create the changelog. 470s 470s In theory, the binary package can have a different changelog than the source 470s package (by having `debian/binary-package.changelog`). However, it is generally 470s not useful and leads to double administration. It has not been used in practice. 470s 470s Features: 470s * debian/changelog is used for *ALL* packages 470s * No naming support; at most one per package and it is named after the package. 470s * No architecture specific variants. 470s 470s Examples matches: 470s +-----------------------------+--------------------------------------------+ 470s | Source file | Installed As | 470s +-----------------------------+--------------------------------------------+ 470s | debian/changelog | /usr/share/doc/dh-debputy/changelog.Debian | 470s | debian/dh-debputy.changelog | /usr/share/doc/dh-debputy/changelog.Debian | 470s +-----------------------------+--------------------------------------------+ 470s 470s Documentation URIs: 470s * man:deb-changelog(5) 470s * https://www.debian.org/doc/debian-policy/ch-source.html#debian-changelog-debian-changelog 470s * man:dch(1) 470s 470s Install Mode: 0644 470s Provided by plugin: debputy 470s + debputy --no-pager plugin show ppf service 470s Packager Provided File: service 470s =============================== 470s 470s Sorry, no description provided by the plugin debputy. 470s 470s Features: 470s * debian/service is used for only for the "main" package 470s * Supports naming segment (multiple files and custom naming). 470s * No architecture specific variants. 470s 470s Examples matches: 470s +------------------------------------------+------------------------------------------------+ 470s | Source file | Installed As | 470s +------------------------------------------+------------------------------------------------+ 470s | debian/service | /usr/lib/systemd/system/dh-debputy.service | 470s | debian/dh-debputy.service | /usr/lib/systemd/system/dh-debputy.service | 470s | debian/dh-debputy.my.custom.name.service | /usr/lib/systemd/system/my.custom.name.service | 470s +------------------------------------------+------------------------------------------------+ 470s 470s Documentation URIs: 470s * man:systemd.service(5) 470s 470s Install Mode: 0644 470s Provided by plugin: debputy 471s + debputy --no-pager plugin show pmr --help 471s usage: debputy plugin show pluggable-manifest-rules [-h] 471s [--debputy-manifest DEBPUTY_MANIFEST] 471s [-d] [--no-pager] 471s [--plugin REQUIRED_PLUGINS] 471s rule-name 471s 471s positional arguments: 471s rule-name Name of the rule (such as `install`) to display 471s details about 471s 471s options: 471s -h, --help show this help message and exit 471s --debputy-manifest DEBPUTY_MANIFEST 471s Specify another `debputy` manifest (default: 471s debian/debputy.manifest) 471s -d, --debug Enable debug logging and raw stack traces on errors. 471s Some warnings become errors as a consequence. 471s --no-pager For subcommands that can use a pager, disable the use 471s of pager. Some output formats implies --no-pager 471s --plugin REQUIRED_PLUGINS 471s Request the plugin to be loaded. Can be used multiple 471s time. Ignored for some commands (such as autopkgtest- 471s test-runner) 471s Checking installations manifest rules 471s + echo Checking installations manifest rules 471s + debputy --no-pager plugin show pmr install 471s # Generic install (`install`) 471s 471s The generic `install` rule can be used to install arbitrary paths into packages 471s and is *similar* to how `dh_install` from debhelper works. It is a two "primary" uses. 471s 471s 1) The classic "install into directory" similar to the standard `dh_install` 471s 2) The "install as" similar to `dh-exec`'s `foo => bar` feature. 471s 471s The `install` rule installs a path exactly once into each package it acts on. In 471s the rare case that you want to install the same source *multiple* times into the 471s *same* packages, please have a look at `multi-dest-install`. 471s 471s Attributes: 471s - `source` (conditional): FileSystemMatchRule 471s `sources` (conditional): List of string 471s 471s A path match (`source`) or a list of path matches (`sources`) defining the 471s source path(s) to be installed. The path match(es) can use globs. Each match 471s is tried against default search directories. 471s - When a symlink is matched, then the symlink (not its target) is installed 471s as-is. When a directory is matched, then the directory is installed along 471s with all the contents that have not already been installed somewhere. 471s 471s - `dest-dir` (optional): FileSystemExactMatchRule 471s 471s A path defining the destination *directory*. The value *cannot* use globs, but can 471s use substitution. If neither `as` nor `dest-dir` is given, then `dest-dir` defaults 471s to the directory name of the `source`. 471s 471s - `into` (optional): string or a list of string 471s 471s Either a package name or a list of package names for which these paths should be 471s installed. This key is conditional on whether there are multiple binary packages listed 471s in `debian/control`. When there is only one binary package, then that binary is the 471s default for `into`. Otherwise, the key is required. 471s 471s - `as` (optional): FileSystemExactMatchRule 471s 471s A path defining the path to install the source as. This is a full path. This option 471s is mutually exclusive with `dest-dir` and `sources` (but not `source`). When `as` is 471s given, then `source` must match exactly one "not yet matched" path. 471s 471s - `when` (optional): ManifestCondition 471s 471s A condition as defined in [Conditional rules](https://salsa.debian.org/debian/debputy/-/blob/debian/0.1.76ubuntu1/MANIFEST-FORMAT.md#conditional-rules). 471s 471s The conditional will disable the entire rule when the conditional evaluates to false. 471s 471s 471s This rule enforces the following restrictions: 471s - The rule must use exactly one of: `source`, `sources` 471s - The attribute `as` cannot be used with any of: `dest-dir`, `sources` 471s 471s Non-mapping format: string or a list of string 471s When the input is a string or a list of string, then that value is used as shorthand 471s for `source` or `sources` (respectively). This form can only be used when `into` is 471s not required. 471s 471s Integration mode availability: any integration mode 471s Reference documentation: https://salsa.debian.org/debian/debputy/-/blob/debian/0.1.76ubuntu1/MANIFEST-FORMAT.md#generic-install-install 471s Used in: installations 471s Rule reference: InstallRule::install 471s Plugin: debputy 471s 471s PS: If you want to know more about a non-trivial type of an attribute such as `FileSystemMatchRule`, 471s you can use `debputy plugin show type-mappings FileSystemMatchRule` to look it up 471s + debputy --no-pager plugin show pmr install-docs 472s # Install documentation (`install-docs`) 472s 472s This install rule resemble that of `dh_installdocs`. It is a shorthand over the generic 472s `install` rule with the following key features: 472s 472s 1) The default `dest-dir` is to use the package's documentation directory (usually something 472s like `/usr/share/doc/{{PACKAGE}}`, though it respects the "main documentation package" 472s recommendation from Debian Policy). The `dest-dir` or `as` can be set in case the 472s documentation in question goes into another directory or with a concrete path. In this 472s case, it is still "better" than `install` due to the remaining benefits. 472s 2) The rule comes with pre-defined conditional logic for skipping the rule under 472s `DEB_BUILD_OPTIONS=nodoc`, so you do not have to write that conditional yourself. 472s 3) The `into` parameter can be omitted as long as there is a exactly one non-`udeb` 472s package listed in `debian/control`. 472s 472s With these two things in mind, it behaves just like the `install` rule. 472s 472s Note: It is often worth considering to use a more specialized version of the `install-docs` 472s rule when one such is available. If you are looking to install an example or a man page, 472s consider whether `install-examples` or `install-man` might be a better fit for your 472s use-case. 472s 472s Attributes: 472s - `source` (conditional): FileSystemMatchRule 472s `sources` (conditional): List of string 472s 472s A path match (`source`) or a list of path matches (`sources`) defining the 472s source path(s) to be installed. The path match(es) can use globs. Each match 472s is tried against default search directories. 472s - When a symlink is matched, then the symlink (not its target) is installed 472s as-is. When a directory is matched, then the directory is installed along 472s with all the contents that have not already been installed somewhere. 472s 472s - **CAVEAT**: Specifying `source: examples` where `examples` resolves to a 472s directory for `install-examples` will give you an `examples/examples` 472s directory in the package, which is rarely what you want. Often, you 472s can solve this by using `examples/*` instead. Similar for `install-docs` 472s and a `doc` or `docs` directory. 472s 472s - `dest-dir` (optional): FileSystemExactMatchRule 472s 472s A path defining the destination *directory*. The value *cannot* use globs, but can 472s use substitution. If neither `as` nor `dest-dir` is given, then `dest-dir` defaults 472s to the relevant package documentation directory (a la `/usr/share/doc/{{PACKAGE}}`). 472s 472s - `into` (optional): string or a list of string 472s 472s Either a package name or a list of package names for which these paths should be 472s installed as documentation. This key is conditional on whether there are multiple 472s (non-`udeb`) binary packages listed in `debian/control`. When there is only one 472s (non-`udeb`) binary package, then that binary is the default for `into`. Otherwise, 472s the key is required. 472s 472s - `as` (optional): FileSystemExactMatchRule 472s 472s A path defining the path to install the source as. This is a full path. This option 472s is mutually exclusive with `dest-dir` and `sources` (but not `source`). When `as` is 472s given, then `source` must match exactly one "not yet matched" path. 472s 472s - `when` (optional): ManifestCondition 472s 472s A condition as defined in [Conditional rules](https://salsa.debian.org/debian/debputy/-/blob/debian/0.1.76ubuntu1/MANIFEST-FORMAT.md#conditional-rules). 472s This condition will be combined with the built-in condition provided by these rules 472s (rather than replacing it). 472s 472s 472s This rule enforces the following restrictions: 472s - The rule must use exactly one of: `source`, `sources` 472s - The attribute `as` cannot be used with any of: `dest-dir`, `sources` 472s 472s Non-mapping format: string or a list of string 472s When the input is a string or a list of string, then that value is used as shorthand 472s for `source` or `sources` (respectively). This form can only be used when `into` is 472s not required. 472s 472s Integration mode availability: any integration mode 472s Reference documentation: https://salsa.debian.org/debian/debputy/-/blob/debian/0.1.76ubuntu1/MANIFEST-FORMAT.md#install-documentation-install-docs 472s Used in: installations 472s Rule reference: InstallRule::install-docs 472s Plugin: debputy 472s 472s PS: If you want to know more about a non-trivial type of an attribute such as `FileSystemMatchRule`, 472s you can use `debputy plugin show type-mappings FileSystemMatchRule` to look it up 472s + debputy --no-pager plugin show pmr install-man 472s # Install man pages (`install-man`) 472s 472s Install rule for installing man pages similar to `dh_installman`. It is a shorthand 472s over the generic `install` rule with the following key features: 472s 472s 1) The rule can only match files (notably, symlinks cannot be matched by this rule). 472s 2) The `dest-dir` is computed per source file based on the man page's section and 472s language. 472s 3) The `into` parameter can be omitted as long as there is a exactly one non-`udeb` 472s package listed in `debian/control`. 472s 4) The rule comes with man page specific attributes such as `language` and `section` 472s for when the auto-detection is insufficient. 472s 5) The rule comes with pre-defined conditional logic for skipping the rule under 472s `DEB_BUILD_OPTIONS=nodoc`, so you do not have to write that conditional yourself. 472s 472s With these things in mind, the rule behaves similar to the `install` rule. 472s 472s Attributes: 472s - `source` (conditional): FileSystemMatchRule 472s `sources` (conditional): List of string 472s 472s A path match (`source`) or a list of path matches (`sources`) defining the 472s source path(s) to be installed. The path match(es) can use globs. Each match 472s is tried against default search directories. 472s - When a symlink is matched, then the symlink (not its target) is installed 472s as-is. When a directory is matched, then the directory is installed along 472s with all the contents that have not already been installed somewhere. 472s 472s - `into` (optional): string or a list of string 472s 472s Either a package name or a list of package names for which these paths should be 472s installed as man pages. This key is conditional on whether there are multiple (non-`udeb`) 472s binary packages listed in `debian/control`. When there is only one (non-`udeb`) binary 472s package, then that binary is the default for `into`. Otherwise, the key is required. 472s 472s - `section` (optional): integer 472s 472s If provided, it must be an integer between 1 and 9 (both inclusive), defining the 472s section the man pages belong overriding any auto-detection that `debputy` would 472s have performed. 472s 472s - `language` (optional): string 472s 472s If provided, it must be either a 2 letter language code (such as `de`), a 5 letter 472s language + dialect code (such as `pt_BR`), or one of the special keywords `C`, 472s `derive-from-path`, or `derive-from-basename`. The default is `derive-from-path`. 472s - When `language` is `C`, then the man pages are assumed to be "untranslated". 472s - When `language` is a language code (with or without dialect), then all man pages 472s matched will be assumed to be translated to that concrete language / dialect. 472s - When `language` is `derive-from-path`, then `debputy` attempts to derive the 472s language from the path (`man//man
`). This matches the 472s default of `dh_installman`. When no language can be found for a given source, 472s `debputy` behaves like language was `C`. 472s - When `language` is `derive-from-basename`, then `debputy` attempts to derive 472s the language from the basename (`foo..1`) similar to `dh_installman` 472s previous default. When no language can be found for a given source, `debputy` 472s behaves like language was `C`. Note this is prone to false positives where 472s `.pl`, `.so` or similar two-letter extensions gets mistaken for a language code 472s (`.pl` can both be "Polish" or "Perl Script", `.so` can both be "Somali" and 472s "Shared Object" documentation). In this configuration, such extensions are 472s always assumed to be a language. 472s 472s - `when` (optional): ManifestCondition 472s 472s A condition as defined in [Conditional rules](https://salsa.debian.org/debian/debputy/-/blob/debian/0.1.76ubuntu1/MANIFEST-FORMAT.md#conditional-rules). 472s 472s The conditional will disable the entire rule when the conditional evaluates to false. 472s 472s 472s This rule enforces the following restrictions: 472s - The rule must use exactly one of: `source`, `sources` 472s 472s Non-mapping format: string or a list of string 472s When the input is a string or a list of string, then that value is used as shorthand 472s for `source` or `sources` (respectively). This form can only be used when `into` is 472s not required. 472s 472s Integration mode availability: any integration mode 472s Reference documentation: https://salsa.debian.org/debian/debputy/-/blob/debian/0.1.76ubuntu1/MANIFEST-FORMAT.md#install-manpages-install-man 472s Used in: installations 472s Rule reference: InstallRule::install-man 472s Plugin: debputy 472s 472s PS: If you want to know more about a non-trivial type of an attribute such as `FileSystemMatchRule`, 472s you can use `debputy plugin show type-mappings FileSystemMatchRule` to look it up 472s + debputy --no-pager plugin show pmr discard 473s # Discard (or exclude) upstream provided paths (`discard`) 473s 473s When installing paths from `debian/tmp` into packages, it might be useful to ignore 473s some paths that you never need installed. This can be done with the `discard` rule. 473s 473s Once a path is discarded, it cannot be matched by any other install rules. A path 473s that is discarded, is considered handled when `debputy` checks for paths you might 473s have forgotten to install. The `discard` feature is therefore *also* replaces the 473s `debian/not-installed` file used by `debhelper` and `cdbs`. 473s 473s Attributes: 473s - `path` (conditional): FileSystemMatchRule 473s `paths` (conditional): List of string 473s 473s A path match (`path`) or a list of path matches (`paths`) defining the source 473s path(s) that should not be installed anywhere. The path match(es) can use globs. 473s - When a symlink is matched, then the symlink (not its target) is discarded as-is. 473s When a directory is matched, then the directory is discarded along with all the 473s contents that have not already been installed somewhere. 473s 473s - `search-dir` (optional): FileSystemExactMatchRule 473s `search-dirs` (optional): List of string 473s 473s A path (`search-dir`) or a list to paths (`search-dirs`) that defines 473s which search directories apply to. This attribute is primarily useful 473s for source packages that uses "per package search dirs", and you want 473s to restrict a discard rule to a subset of the relevant search dirs. 473s Note all listed search directories must be either an explicit search 473s requested by the packager or a search directory that `debputy` 473s provided automatically (such as `debian/tmp`). Listing other paths 473s will make `debputy` report an error. 473s - Note that the `path` or `paths` must match at least one entry in 473s any of the search directories unless *none* of the search directories 473s exist (or the condition in `required-when` evaluates to false). When 473s none of the search directories exist, the discard rule is silently 473s skipped. This special-case enables you to have discard rules only 473s applicable to certain builds that are only performed conditionally. 473s 473s - `required-when` (optional): ManifestCondition 473s 473s A condition as defined in [Conditional rules](#conditional-rules). The discard 473s rule is always applied. When the conditional is present and evaluates to false, 473s the discard rule can silently match nothing.When the condition is absent, *or* 473s it evaluates to true, then each pattern provided must match at least one path. 473s 473s 473s This rule enforces the following restrictions: 473s - The rule must use exactly one of: `path`, `paths` 473s - The following attributes are mutually exclusive: `search-dir`, `search-dirs` 473s 473s Non-mapping format: string or a list of string 473s When the input is a string or a list of string, then that value is used as shorthand 473s for `path` or `paths` (respectively). 473s 473s Integration mode availability: any integration mode 473s Reference documentation: https://salsa.debian.org/debian/debputy/-/blob/debian/0.1.76ubuntu1/MANIFEST-FORMAT.md#discard-or-exclude-upstream-provided-paths-discard 473s Used in: installations 473s Rule reference: InstallRule::discard 473s Plugin: debputy 473s 473s PS: If you want to know more about a non-trivial type of an attribute such as `FileSystemMatchRule`, 473s you can use `debputy plugin show type-mappings FileSystemMatchRule` to look it up 473s + echo Checking binary package transformations manifest rules 473s + debputy --no-pager plugin show pmr TransformationRule::remove 473s Checking binary package transformations manifest rules 473s # Remove transformation rule (`remove`) 473s 473s The remove transformation rule is mostly only useful for single binary source packages, 473s where everything from upstream's build system is installed automatically into the package. 473s In those case, you might find yourself with some files that are _not_ relevant for the 473s Debian package (but would be relevant for other distros or for non-distro local builds). 473s Common examples include `INSTALL` files or `LICENSE` files (when they are just a subset 473s of `debian/copyright`). 473s 473s In the manifest, you can ask `debputy` to remove paths from the debian package by using 473s the `remove` transformation rule. 473s 473s Note that `remove` removes paths from future glob matches and transformation rules. 473s 473s Attributes: 473s - `path` (conditional): FileSystemMatchRule 473s `paths` (conditional): List of string 473s 473s A path match (`path`) or a list of path matches (`paths`) defining the 473s path(s) inside the package that should be removed. The path match(es) 473s can use globs. 473s - When a symlink is matched, then the symlink (not its target) is removed 473s as-is. When a directory is matched, then the directory is removed 473s along with all the contents. 473s 473s - `keep-empty-parent-dirs` (optional): boolean 473s 473s A boolean determining whether to prune parent directories that become 473s empty as a consequence of this rule. When provided and `true`, this 473s rule will leave empty directories behind. Otherwise, if this rule 473s causes a directory to become empty that directory will be removed. 473s 473s - `when` (optional): ManifestCondition 473s 473s A condition as defined in [Conditional rules](https://salsa.debian.org/debian/debputy/-/blob/debian/0.1.76ubuntu1/MANIFEST-FORMAT.md#conditional-rules). 473s This condition will be combined with the built-in condition provided by these rules 473s (rather than replacing it). 473s 473s 473s This rule enforces the following restrictions: 473s - The rule must use exactly one of: `path`, `paths` 473s 473s Non-mapping format: string or a list of string 473s When the input is a string or a list of string, then that value is used as shorthand 473s for `path` or `paths` (respectively). 473s 473s Integration mode availability: any integration mode 473s Reference documentation: https://salsa.debian.org/debian/debputy/-/blob/debian/0.1.76ubuntu1/MANIFEST-FORMAT.md#remove-transformation-rule-remove 473s Used in: packages.{{PACKAGE}}.transformations 473s Rule reference: TransformationRule::remove 473s Plugin: debputy 473s 473s PS: If you want to know more about a non-trivial type of an attribute such as `FileSystemMatchRule`, 473s you can use `debputy plugin show type-mappings FileSystemMatchRule` to look it up 473s + debputy --no-pager plugin show pmr move 474s # Move transformation rule (`move`) 474s 474s The move transformation rule is mostly only useful for single binary source packages, 474s where everything from upstream's build system is installed automatically into the package. 474s In those case, you might find yourself with some files that need to be renamed to match 474s Debian specific requirements. 474s 474s This can be done with the `move` transformation rule, which is a rough emulation of the 474s `mv` command line tool. 474s 474s Attributes: 474s - `source` (required): FileSystemMatchRule 474s 474s A path match defining the source path(s) to be renamed. The value can use globs 474s and substitutions. 474s 474s - `target` (required): FileSystemExactMatchRule 474s 474s A path defining the target path. The value *cannot* use globs, but can use 474s substitution. If the target ends with a literal `/` (prior to substitution), 474s the target will *always* be a directory. 474s 474s - `when` (optional): ManifestCondition 474s 474s A condition as defined in [Conditional rules](https://salsa.debian.org/debian/debputy/-/blob/debian/0.1.76ubuntu1/MANIFEST-FORMAT.md#conditional-rules). 474s 474s The conditional will disable the entire rule when the conditional evaluates to false. 474s 474s 474s Integration mode availability: any integration mode 474s Reference documentation: https://salsa.debian.org/debian/debputy/-/blob/debian/0.1.76ubuntu1/MANIFEST-FORMAT.md#move-transformation-rule-move 474s Used in: packages.{{PACKAGE}}.transformations 474s Rule reference: TransformationRule::move 474s Plugin: debputy 474s 474s PS: If you want to know more about a non-trivial type of an attribute such as `FileSystemMatchRule`, 474s you can use `debputy plugin show type-mappings FileSystemMatchRule` to look it up 474s + debputy --no-pager plugin show pmr create-symlink 474s # Create symlinks transformation rule (`create-symlink`) 474s 474s Often, the upstream build system will provide the symlinks for you. However, 474s in some cases, it is useful for the packager to define distribution specific 474s symlinks. This can be done via the `create-symlink` transformation rule. 474s 474s Attributes: 474s - `path` (required): FileSystemExactMatchRule 474s 474s The path that should be a symlink. The path may contain substitution 474s variables such as `{{DEB_HOST_MULTIARCH}}` but _cannot_ use globs. 474s Parent directories are implicitly created as necessary. 474s * Note that if `path` already exists, the behavior of this 474s transformation depends on the value of `replacement-rule`. 474s 474s - `target` (required): SymlinkTarget 474s 474s Where the symlink should point to. The target may contain substitution 474s variables such as `{{DEB_HOST_MULTIARCH}}` but _cannot_ use globs. 474s The link target is _not_ required to exist inside the package. 474s * The `debputy` tool will normalize the target according to the rules 474s of the Debian Policy. Use absolute or relative target at your own 474s preference. 474s 474s - `replacement-rule` (optional): One of the following literal values: `error-if-exists`, `error-if-directory`, `abort-on-non-empty-directory`, `discard-existing` 474s 474s This attribute defines how to handle if `path` already exists. It can 474s be set to one of the following values: 474s - `error-if-exists`: When `path` already exists, `debputy` will 474s stop with an error. This is similar to `ln -s` semantics. 474s - `error-if-directory`: When `path` already exists, **and** it is 474s a directory, `debputy` will stop with an error. Otherwise, 474s remove the `path` first and then create the symlink. This is 474s similar to `ln -sf` semantics. 474s - `abort-on-non-empty-directory` (default): When `path` already 474s exists, then it will be removed provided it is a non-directory 474s **or** an *empty* directory and the symlink will then be 474s created. If the path is a *non-empty* directory, `debputy` 474s will stop with an error. 474s - `discard-existing`: When `path` already exists, it will be 474s removed. If the `path` is a directory, all its contents will 474s be removed recursively along with the directory. Finally, 474s the symlink is created. This is similar to having an explicit 474s `remove` rule just prior to the `create-symlink` that is 474s conditional on `path` existing (plus the condition defined in 474s `when` if any). 474s 474s Keep in mind, that `replacement-rule` only applies if `path` exists. 474s If the symlink cannot be created, because a part of `path` exist and 474s is *not* a directory, then `create-symlink` will fail regardless of 474s the value in `replacement-rule`. 474s 474s - `when` (optional): ManifestCondition 474s 474s A condition as defined in [Conditional rules](https://salsa.debian.org/debian/debputy/-/blob/debian/0.1.76ubuntu1/MANIFEST-FORMAT.md#conditional-rules). 474s 474s The conditional will disable the entire rule when the conditional evaluates to false. 474s 474s 474s Integration mode availability: any integration mode 474s Reference documentation: https://salsa.debian.org/debian/debputy/-/blob/debian/0.1.76ubuntu1/MANIFEST-FORMAT.md#create-symlinks-transformation-rule-create-symlink 474s Used in: packages.{{PACKAGE}}.transformations 474s Rule reference: TransformationRule::create-symlink 474s Plugin: debputy 474s 474s PS: If you want to know more about a non-trivial type of an attribute such as `FileSystemMatchRule`, 474s you can use `debputy plugin show type-mappings FileSystemMatchRule` to look it up 474s + debputy --no-pager plugin show pmr path-metadata 475s # Change path owner/group or mode (`path-metadata`) 475s 475s The `debputy` command normalizes the path metadata (such as ownership and mode) similar 475s to `dh_fixperms`. For most packages, the default is what you want. However, in some 475s cases, the package has a special case or two that `debputy` does not cover. In that 475s case, you can tell `debputy` to use the metadata you want by using the `path-metadata` 475s transformation. 475s 475s Common use-cases include setuid/setgid binaries (such `usr/bin/sudo`) or/and static 475s ownership (such as /usr/bin/write). 475s 475s Attributes: 475s - `path` (conditional): FileSystemMatchRule 475s `paths` (conditional): List of string 475s 475s A path match (`path`) or a list of path matches (`paths`) defining the path(s) 475s inside the package that should be affected. The path match(es) can use globs 475s and substitution variables. Special-rules for matches: 475s - Symlinks are never followed and will never be matched by this rule. 475s - Directory handling depends on the `recursive` attribute. 475s 475s - `owner` (optional): one-of: integer, string 475s 475s Denotes the owner of the paths matched by `path` or `paths`. When omitted, 475s no change of owner is done. 475s 475s - `group` (optional): one-of: integer, string 475s 475s Denotes the group of the paths matched by `path` or `paths`. When omitted, 475s no change of group is done. 475s 475s - `mode` (optional): FileSystemMode 475s 475s Denotes the mode of the paths matched by `path` or `paths`. When omitted, 475s no change in mode is done. Note that numeric mode must always be given as 475s a string (i.e., with quotes). Symbolic mode can be used as well. If 475s symbolic mode uses a relative definition (e.g., `o-rx`), then it is 475s relative to the matched path's current mode. 475s 475s - `capabilities` (optional): Capability 475s 475s Denotes a Linux capability that should be applied to the path. When provided, 475s `debputy` will cause the capability to be applied to all *files* denoted by 475s the `path`/`paths` attribute on install (via `postinst configure`) provided 475s that `setcap` is installed on the system when the `postinst configure` is 475s run. 475s - If any non-file paths are matched, the `capabilities` will *not* be applied 475s to those paths. 475s 475s 475s - `capability-mode` (optional): FileSystemMode 475s 475s Denotes the mode to apply to the path *if* the Linux capability denoted in 475s `capabilities` was successfully applied. If omitted, it defaults to `a-s` as 475s generally capabilities are used to avoid "setuid"/"setgid" binaries. The 475s `capability-mode` is relative to the *final* path mode (the mode of the path 475s in the produced `.deb`). The `capability-mode` attribute cannot be used if 475s `capabilities` is omitted. 475s 475s - `recursive` (optional): boolean 475s 475s When a directory is matched, then the metadata changes are applied to the 475s directory itself. When `recursive` is `true`, then the transformation is 475s *also* applied to all paths beneath the directory. The default value for 475s this attribute is `false`. 475s 475s - `when` (optional): ManifestCondition 475s 475s A condition as defined in [Conditional rules](https://salsa.debian.org/debian/debputy/-/blob/debian/0.1.76ubuntu1/MANIFEST-FORMAT.md#conditional-rules). 475s 475s The conditional will disable the entire rule when the conditional evaluates to false. 475s 475s 475s This rule enforces the following restrictions: 475s - The rule must use exactly one of: `path`, `paths` 475s 475s Integration mode availability: any integration mode 475s Reference documentation: https://salsa.debian.org/debian/debputy/-/blob/debian/0.1.76ubuntu1/MANIFEST-FORMAT.md#change-path-ownergroup-or-mode-path-metadata 475s Used in: packages.{{PACKAGE}}.transformations 475s Rule reference: TransformationRule::path-metadata 475s Plugin: debputy 475s 475s PS: If you want to know more about a non-trivial type of an attribute such as `FileSystemMatchRule`, 475s you can use `debputy plugin show type-mappings FileSystemMatchRule` to look it up 475s + debputy --no-pager plugin show pmr create-directories 475s # Create directories transformation rule (`create-directories`) 475s 475s NOTE: This transformation is only really needed if you need to create an empty 475s directory somewhere in your package as an integration point. All `debputy` 475s transformations will create directories as required. 475s 475s In most cases, upstream build systems and `debputy` will create all the relevant 475s directories. However, in some rare cases you may want to explicitly define a path 475s to be a directory. Maybe to silence a linter that is warning you about a directory 475s being empty, or maybe you need an empty directory that nothing else is creating for 475s you. This can be done via the `create-directories` transformation rule. 475s 475s Unless you have a specific need for the mapping form, you are recommended to use the 475s shorthand form of just listing the directories you want created. 475s 475s Attributes: 475s - `path` (conditional): FileSystemExactMatchRule 475s `paths` (conditional): List of string 475s 475s A path (`path`) or a list of path (`paths`) defining the path(s) inside the 475s package that should be created as directories. The path(es) _cannot_ use globs 475s but can use substitution variables. Parent directories are implicitly created 475s (with owner `root:root` and mode `0755` - only explicitly listed directories 475s are affected by the owner/mode options) 475s 475s - `owner` (optional): one-of: integer, string 475s 475s Denotes the owner of the directory (but _not_ what is inside the directory). 475s Default is "root". 475s 475s - `group` (optional): one-of: integer, string 475s 475s Denotes the group of the directory (but _not_ what is inside the directory). 475s Default is "root". 475s 475s - `mode` (optional): FileSystemMode 475s 475s Denotes the mode of the directory (but _not_ what is inside the directory). 475s Note that numeric mode must always be given as a string (i.e., with quotes). 475s Symbolic mode can be used as well. If symbolic mode uses a relative 475s definition (e.g., `o-rx`), then it is relative to the directory's current mode 475s (if it already exists) or `0755` if the directory is created by this 475s transformation. The default is "0755". 475s 475s - `when` (optional): ManifestCondition 475s 475s A condition as defined in [Conditional rules](https://salsa.debian.org/debian/debputy/-/blob/debian/0.1.76ubuntu1/MANIFEST-FORMAT.md#conditional-rules). 475s 475s The conditional will disable the entire rule when the conditional evaluates to false. 475s 475s 475s This rule enforces the following restrictions: 475s - The rule must use exactly one of: `path`, `paths` 475s 475s Non-mapping format: string or a list of string 475s When the input is a string or a list of string, then that value is used as shorthand 475s for `path` or `paths` (respectively). 475s 475s Integration mode availability: any integration mode 475s Reference documentation: https://salsa.debian.org/debian/debputy/-/blob/debian/0.1.76ubuntu1/MANIFEST-FORMAT.md#create-directories-transformation-rule-directories 475s Used in: packages.{{PACKAGE}}.transformations 475s Rule reference: TransformationRule::create-directories 475s Plugin: debputy 475s 475s PS: If you want to know more about a non-trivial type of an attribute such as `FileSystemMatchRule`, 475s you can use `debputy plugin show type-mappings FileSystemMatchRule` to look it up 475s + debputy --no-pager plugin show pmr run-build-time-tests 476s # Whether build time tests should be run (`run-build-time-tests`) 476s 476s The `run-build-time-tests` condition is used to determine whether (build 476s time) tests should be run for this build. This condition roughly 476s translates into whether `nocheck` is present in `DEB_BUILD_OPTIONS`. 476s 476s In general, the manifest *should not* prevent build time tests from being 476s run during cross-builds. 476s 476s Integration mode availability: any integration mode 476s Reference documentation: ${MANIFEST_FORMAT_DOC}#whether-build-time-tests-should-be-run-run-build-time-tests 476s Used in: *.when 476s Rule reference: ManifestCondition::run-build-time-tests 476s Plugin: debputy 476s 476s PS: If you want to know more about a non-trivial type of an attribute such as `FileSystemMatchRule`, 476s you can use `debputy plugin show type-mappings FileSystemMatchRule` to look it up 476s + debputy --no-pager plugin show pmr arch-matches 476s # Architecture match condition `arch-matches` 476s 476s Sometimes, a rule needs to be conditional on the architecture. 476s This can be done by using the `arch-matches` rule. In 99.99% 476s of the cases, `arch-matches` will be form you are looking for 476s and practically behaves like a comparison against 476s `dpkg-architecture -qDEB_HOST_ARCH`. 476s 476s For the cross-compiling specialists or curious people: The 476s `arch-matches` rule behaves like a `package-context-arch-matches` 476s in the context of a binary package and like 476s `source-context-arch-matches` otherwise. The details of those 476s are covered in their own keywords. 476s 476s Non-mapping format: string 476s The value must be a string in the form of a space separated list 476s architecture names or architecture wildcards (same syntax as the 476s architecture restriction in Build-Depends in debian/control except 476s there is no enclosing `[]` brackets). The names/wildcards can 476s optionally be prefixed by `!` to negate them. However, either 476s *all* names / wildcards must have negation or *none* of them may 476s have it. 476s 476s Integration mode availability: any integration mode 476s Reference documentation: https://salsa.debian.org/debian/debputy/-/blob/debian/0.1.76ubuntu1/MANIFEST-FORMAT.md#architecture-match-condition-arch-matches-mapping 476s Used in: *.when 476s Rule reference: ManifestCondition::arch-matches 476s Plugin: debputy 476s 476s PS: If you want to know more about a non-trivial type of an attribute such as `FileSystemMatchRule`, 476s you can use `debputy plugin show type-mappings FileSystemMatchRule` to look it up 476s + debputy --no-pager plugin show pmr not 477s # Negated condition (`not`) 477s 477s It is possible to negate a condition via the `not` condition. 477s 477s As an example: 477s 477s packages: 477s util-linux: 477s transformations: 477s - create-symlink 477s path: sbin/getty 477s target: /sbin/agetty 477s when: 477s # On Hurd, the package "hurd" ships "sbin/getty". 477s # This example happens to also be alternative to `arch-marches: '!hurd-any` 477s not: 477s arch-matches: 'hurd-any' 477s 477s The `not` condition is specified as a mapping, where the key is `not` and the 477s value is a nested condition. 477s 477s Non-mapping format: ManifestCondition 477s 477s Integration mode availability: any integration mode 477s Reference documentation: ${MANIFEST_FORMAT_DOC}#negated-condition-not 477s Used in: *.when 477s Rule reference: ManifestCondition::not 477s Plugin: debputy 477s 477s PS: If you want to know more about a non-trivial type of an attribute such as `FileSystemMatchRule`, 477s you can use `debputy plugin show type-mappings FileSystemMatchRule` to look it up 477s + debputy --no-pager plugin show pmr build-profiles-matches 477s # Active build profile match condition (`build-profiles-matches`) 477s 477s The `build-profiles-matches` condition is used to assert whether the 477s active build profiles (`DEB_BUILD_PROFILES` / `dpkg-buildpackage -P`) 477s matches a given build profile restriction. 477s 477s Non-mapping format: string 477s The value is a string using the same syntax as the `Build-Profiles` 477s field from `debian/control` (i.e., a space separated list of 477s `<[!]profile ...>` groups). 477s 477s Integration mode availability: any integration mode 477s Reference documentation: ${MANIFEST_FORMAT_DOC}#active-build-profile-match-condition-build-profiles-matches 477s Used in: *.when 477s Rule reference: ManifestCondition::build-profiles-matches 477s Plugin: debputy 477s 477s PS: If you want to know more about a non-trivial type of an attribute such as `FileSystemMatchRule`, 477s you can use `debputy plugin show type-mappings FileSystemMatchRule` to look it up 477s + debputy --no-pager plugin show pmr cross-compiling 478s # Cross-Compiling condition (`cross-compiling`) 478s 478s The `cross-compiling` condition is used to determine if the current build is 478s performing a cross build (i.e., `DEB_BUILD_GNU_TYPE` != `DEB_HOST_GNU_TYPE`). 478s Often this has consequences for what is possible to do. 478s 478s Note if you specifically want to know: 478s 478s * whether build-time tests should be run, then please use the 478s `run-build-time-tests` condition. 478s * whether compiled binaries can be run as if it was a native binary, please 478s use the `can-execute-compiled-binaries` condition instead. That condition 478s accounts for cross-building in its evaluation. 478s 478s Integration mode availability: any integration mode 478s Reference documentation: ${MANIFEST_FORMAT_DOC}#cross-compiling-condition 478s Used in: *.when 478s Rule reference: ManifestCondition::cross-compiling 478s Plugin: debputy 478s 478s PS: If you want to know more about a non-trivial type of an attribute such as `FileSystemMatchRule`, 478s you can use `debputy plugin show type-mappings FileSystemMatchRule` to look it up 478s + debputy --no-pager plugin show pmr binary-version 478s # Custom binary version (`binary-version`) 478s 478s In the *rare* case that you need a binary package to have a custom version, you can use 478s the `binary-version:` key to describe the desired package version. An example being: 478s 478s packages: 478s foo: 478s # The foo package needs a different epoch because we took it over from a different 478s # source package with higher epoch version 478s binary-version: '1:{{DEB_VERSION_UPSTREAM_REVISION}}' 478s 478s Use this feature sparingly as it is generally not possible to undo as each version must be 478s monotonously higher than the previous one. This feature translates into `-v` option for 478s `dpkg-gencontrol`. 478s 478s The value for the `binary-version` key is a string that defines the binary version. Generally, 478s you will want it to contain one of the versioned related substitution variables such as 478s `{{DEB_VERSION_UPSTREAM_REVISION}}`. Otherwise, you will have to remember to bump the version 478s manually with each upload as versions cannot be reused and the package would not support binNMUs 478s either. 478s 478s Non-mapping format: string 478s 478s Integration mode availability: any integration mode 478s Reference documentation: ${MANIFEST_FORMAT_DOC}#custom-binary-version-binary-version 478s Used in: packages.{{PACKAGE}} 478s Rule reference: packages.{{PACKAGE}}::binary-version 478s Plugin: debputy 478s 478s PS: If you want to know more about a non-trivial type of an attribute such as `FileSystemMatchRule`, 478s you can use `debputy plugin show type-mappings FileSystemMatchRule` to look it up 478s + debputy --no-pager plugin show pmr definitions 479s # Packager provided definitions 479s 479s Reusable packager provided definitions such as manifest variables. 479s 479s Attributes: 479s - `variables` (optional): Mapping of string 479s 479s It is possible to provide custom manifest variables via the `variables` attribute. An example: 479s 479s manifest-version: '0.1' 479s definitions: 479s variables: 479s LIBPATH: "/usr/lib/{{DEB_HOST_MULTIARCH}}" 479s SONAME: "1" 479s installations: 479s - install: 479s source: build/libfoo.so.{{SONAME}}* 479s # The quotes here is for the YAML parser's sake. 479s dest-dir: "{{LIBPATH}}" 479s into: libfoo{{SONAME}} 479s 479s The value of the `variables` key must be a mapping, where each key is a new variable name and 479s the related value is the value of said key. The keys must be valid variable name and not shadow 479s existing variables (that is, variables such as `PACKAGE` and `DEB_HOST_MULTIARCH` *cannot* be 479s redefined). The value for each variable *can* refer to *existing* variables as seen in the 479s example above. 479s 479s As usual, `debputy` will insist that all declared variables must be used. 479s 479s Limitations: 479s * When declaring variables that depends on another variable declared in the manifest, the 479s order is important. The variables are resolved from top to bottom. 479s * When a manifest variable depends on another manifest variable, the existing variable is 479s currently always resolved in source context. As a consequence, some variables such as 479s `{{PACKAGE}}` cannot be used when defining a variable. This restriction may be 479s lifted in the future. 479s 479s 479s Integration mode availability: any integration mode 479s Reference documentation: https://salsa.debian.org/debian/debputy/-/blob/debian/0.1.76ubuntu1/MANIFEST-FORMAT.md#packager-provided-definitions 479s Used in: The manifest root 479s Rule reference: ::definitions 479s Plugin: debputy 479s 479s PS: If you want to know more about a non-trivial type of an attribute such as `FileSystemMatchRule`, 479s you can use `debputy plugin show type-mappings FileSystemMatchRule` to look it up 479s + debputy --no-pager plugin show pmr variables 479s # Manifest Variables (`variables`) 479s 479s It is possible to provide custom manifest variables via the `variables` attribute. An example: 479s 479s manifest-version: '0.1' 479s definitions: 479s variables: 479s LIBPATH: "/usr/lib/{{DEB_HOST_MULTIARCH}}" 479s SONAME: "1" 479s installations: 479s - install: 479s source: build/libfoo.so.{{SONAME}}* 479s # The quotes here is for the YAML parser's sake. 479s dest-dir: "{{LIBPATH}}" 479s into: libfoo{{SONAME}} 479s 479s The value of the `variables` key must be a mapping, where each key is a new variable name and 479s the related value is the value of said key. The keys must be valid variable name and not shadow 479s existing variables (that is, variables such as `PACKAGE` and `DEB_HOST_MULTIARCH` *cannot* be 479s redefined). The value for each variable *can* refer to *existing* variables as seen in the 479s example above. 479s 479s As usual, `debputy` will insist that all declared variables must be used. 479s 479s Limitations: 479s * When declaring variables that depends on another variable declared in the manifest, the 479s order is important. The variables are resolved from top to bottom. 479s * When a manifest variable depends on another manifest variable, the existing variable is 479s currently always resolved in source context. As a consequence, some variables such as 479s `{{PACKAGE}}` cannot be used when defining a variable. This restriction may be 479s lifted in the future. 479s 479s Non-mapping format: Mapping of string 479s 479s Integration mode availability: any integration mode 479s Reference documentation: ${MANIFEST_FORMAT_DOC}#manifest-variables-variables 479s Used in: definitions 479s Rule reference: definitions::variables 479s Plugin: debputy 479s 479s PS: If you want to know more about a non-trivial type of an attribute such as `FileSystemMatchRule`, 479s you can use `debputy plugin show type-mappings FileSystemMatchRule` to look it up 479s + debputy --no-pager plugin show pmr ::definitions 480s # Packager provided definitions 480s 480s Reusable packager provided definitions such as manifest variables. 480s 480s Attributes: 480s - `variables` (optional): Mapping of string 480s 480s It is possible to provide custom manifest variables via the `variables` attribute. An example: 480s 480s manifest-version: '0.1' 480s definitions: 480s variables: 480s LIBPATH: "/usr/lib/{{DEB_HOST_MULTIARCH}}" 480s SONAME: "1" 480s installations: 480s - install: 480s source: build/libfoo.so.{{SONAME}}* 480s # The quotes here is for the YAML parser's sake. 480s dest-dir: "{{LIBPATH}}" 480s into: libfoo{{SONAME}} 480s 480s The value of the `variables` key must be a mapping, where each key is a new variable name and 480s the related value is the value of said key. The keys must be valid variable name and not shadow 480s existing variables (that is, variables such as `PACKAGE` and `DEB_HOST_MULTIARCH` *cannot* be 480s redefined). The value for each variable *can* refer to *existing* variables as seen in the 480s example above. 480s 480s As usual, `debputy` will insist that all declared variables must be used. 480s 480s Limitations: 480s * When declaring variables that depends on another variable declared in the manifest, the 480s order is important. The variables are resolved from top to bottom. 480s * When a manifest variable depends on another manifest variable, the existing variable is 480s currently always resolved in source context. As a consequence, some variables such as 480s `{{PACKAGE}}` cannot be used when defining a variable. This restriction may be 480s lifted in the future. 480s 480s 480s Integration mode availability: any integration mode 480s Reference documentation: https://salsa.debian.org/debian/debputy/-/blob/debian/0.1.76ubuntu1/MANIFEST-FORMAT.md#packager-provided-definitions 480s Used in: The manifest root 480s Rule reference: ::definitions 480s Plugin: debputy 480s 480s PS: If you want to know more about a non-trivial type of an attribute such as `FileSystemMatchRule`, 480s you can use `debputy plugin show type-mappings FileSystemMatchRule` to look it up 480s + debputy --no-pager plugin show pmr definitions::variables 480s # Manifest Variables (`variables`) 480s 480s It is possible to provide custom manifest variables via the `variables` attribute. An example: 480s 480s manifest-version: '0.1' 480s definitions: 480s variables: 480s LIBPATH: "/usr/lib/{{DEB_HOST_MULTIARCH}}" 480s SONAME: "1" 480s installations: 480s - install: 480s source: build/libfoo.so.{{SONAME}}* 480s # The quotes here is for the YAML parser's sake. 480s dest-dir: "{{LIBPATH}}" 480s into: libfoo{{SONAME}} 480s 480s The value of the `variables` key must be a mapping, where each key is a new variable name and 480s the related value is the value of said key. The keys must be valid variable name and not shadow 480s existing variables (that is, variables such as `PACKAGE` and `DEB_HOST_MULTIARCH` *cannot* be 480s redefined). The value for each variable *can* refer to *existing* variables as seen in the 480s example above. 480s 480s As usual, `debputy` will insist that all declared variables must be used. 480s 480s Limitations: 480s * When declaring variables that depends on another variable declared in the manifest, the 480s order is important. The variables are resolved from top to bottom. 480s * When a manifest variable depends on another manifest variable, the existing variable is 480s currently always resolved in source context. As a consequence, some variables such as 480s `{{PACKAGE}}` cannot be used when defining a variable. This restriction may be 480s lifted in the future. 480s 480s Non-mapping format: Mapping of string 480s 480s Integration mode availability: any integration mode 480s Reference documentation: ${MANIFEST_FORMAT_DOC}#manifest-variables-variables 480s Used in: definitions 480s Rule reference: definitions::variables 480s Plugin: debputy 480s 480s PS: If you want to know more about a non-trivial type of an attribute such as `FileSystemMatchRule`, 480s you can use `debputy plugin show type-mappings FileSystemMatchRule` to look it up 480s + debputy --no-pager plugin show pmr :: 481s # Auto-generated reference documentation for the manifest root 481s 481s This is an automatically generated reference documentation for the manifest root. It is generated 481s from input provided by debputy via the debputy API. 481s 481s (If you are the provider of the debputy plugin, you can replace this text with 481s your own documentation by providing the `inline_reference_documentation` when registering 481s the manifest rule.) 481s 481s Attributes: 481s - `manifest-version` (optional): One of the following literal values: `0.1` 481s 481s All `debputy` manifests must include a `debputy` manifest version, which will enable the 481s format to change over time. For now, there is only one version (`"0.1"`) and you have 481s to include the line: 481s 481s manifest-version: "0.1" 481s 481s On its own, the manifest containing only `manifest-version: "..."` will not do anything. So if you 481s end up only having the `manifest-version` key in the manifest, you can just remove the manifest and 481s rely entirely on the built-in rules. 481s 481s - `definitions` (optional): Object (see `::definitions`) 481s 481s Reusable packager provided definitions such as manifest variables. 481s 481s - `installations` (optional): 481s 481s For source packages building a single binary, the `dh_auto_install` from debhelper will default to 481s providing everything from upstream's install in the binary package. The `debputy` tool matches this 481s behavior and accordingly, the `installations` feature is only relevant in this case when you need to 481s manually specify something upstream's install did not cover. 481s 481s For sources, that build multiple binaries, where `dh_auto_install` does not detect anything to install, 481s or when `dh_auto_install --destdir debian/tmp` is used, the `installations` section of the manifest is 481s used to declare what goes into which binary package. An example: 481s 481s installations: 481s - install: 481s sources: "usr/bin/foo" 481s into: foo 481s - install: 481s sources: "usr/*" 481s into: foo-extra 481s 481s All installation rules are processed in order (top to bottom). Once a path has been matched, it can 481s no longer be matched by future rules. In the above example, then `usr/bin/foo` would be in the `foo` 481s package while everything in `usr` *except* `usr/bin/foo` would be in `foo-extra`. If these had been 481s ordered in reverse, the `usr/bin/foo` rule would not have matched anything and caused `debputy` 481s to reject the input as an error on that basis. This behavior is similar to "DEP-5" copyright files, 481s except the order is reversed ("DEP-5" uses "last match wins", where here we are doing "first match wins") 481s 481s In the rare case that some path need to be installed into two packages at the same time, then this is 481s generally done by changing `into` into a list of packages. 481s 481s All installations are currently run in *source* package context. This implies that: 481s 481s 1) No package specific substitutions are available. Notably `{{PACKAGE}}` cannot be resolved. 481s 2) All conditions are evaluated in source context. For 99.9% of users, this makes no difference, 481s but there is a cross-build feature that changes the "per package" architecture which is affected. 481s 481s This is a limitation that should be fixed in `debputy`. 481s 481s Another feature of `debputy` installation rules is that the match rule is always applied even when 481s the rule is "disabled" by a condition (such as the package being arch:all and the build does not 481s cover arch:all binaries). This is required to avoid false positives errors when testing for paths 481s that might have been overlooked. The code will not install the matched paths anywhere, just mark 481s them as reserved by the package that is not being built. This behavior is similar to that of 481s `dh_install`, which is also aimed at preventing a similar false positive with `dh_missing`. 481s 481s **Attention debhelper users**: Note the difference between `dh_install` (etc.) vs. `debputy` on 481s overlapping matches for installation. 481s 481s - `remove-during-clean` (optional): 481s 481s When the clean logic does not cover all the paths generated during build, 481s the `the manifest root` keyword can be used to add a list of additional paths to 481s remove. An example could be: 481s 481s ```yaml 481s the manifest root: 481s - config.h 481s - build/ 481s - docs/*.html 481s ``` 481s 481s Each element in the list is a path or a glob pattern and each matched path will 481s be removed. To avoid accidental removals of directories, any element in the list 481s intended to remove directories must end with a literal `/`. 481s 481s - `packages` (optional): PackageContext (chains to `::packages`) 481s 481s Inside the manifest, the `packages` mapping can be used to define requests for the binary packages 481s you want `debputy` to produce. Each key inside `packages` must be the name of a binary package 481s defined in `debian/control`. The value is a dictionary defining which features that `debputy` 481s should apply to that binary package. An example could be: 481s 481s packages: 481s foo: 481s transformations: 481s - create-symlink: 481s path: usr/share/foo/my-first-symlink 481s target: /usr/share/bar/symlink-target 481s - create-symlink: 481s path: usr/lib/{{DEB_HOST_MULTIARCH}}/my-second-symlink 481s target: /usr/lib/{{DEB_HOST_MULTIARCH}}/baz/symlink-target 481s bar: 481s transformations: 481s - create-directories: 481s - some/empty/directory.d 481s - another/empty/integration-point.d 481s - create-directories: 481s path: a/third-empty/directory.d 481s owner: www-data 481s group: www-data 481s 481s In this case, `debputy` will create some symlinks inside the `foo` package and some directories for 481s the `bar` package. The following subsections define the keys you can use under each binary package. 481s 481s - `build-environments` (optional): 481s 481s Define named environments to set the environment for any build commands that needs 481s a non-default environment. 481s 481s The environment definitions can be used to tweak the environment variables used by the 481s build commands. An example: 481s 481s build-environments: 481s - name: custom-env 481s set: 481s ENV_VAR: foo 481s ANOTHER_ENV_VAR: bar 481s builds: 481s - autoconf: 481s environment: custom-env 481s 481s The environment definition has multiple attributes for setting environment variables 481s which determines when the definition is applied. The resulting environment is the 481s result of the following order of operations. 481s 481s 1. The environment `debputy` received from its parent process. 481s 2. Apply all the variable definitions from `set` (if the attribute is present) 481s 3. Apply all computed variables (such as variables from `dpkg-buildflags`). 481s 4. Apply all the variable definitions from `override` (if the attribute is present) 481s 5. Remove all variables listed in `unset` (if the attribute is present). 481s 481s Accordingly, both `override` and `unset` will overrule any computed variables while 481s `set` will be overruled by any computed variables. 481s 481s Note that these variables are not available via manifest substitution (they are only 481s visible to build commands). They are only available to build commands. 481s 481s - `default-build-environment` (optional): 481s 481s Define the environment variables used in all build commands that uses the default 481s environment. 481s 481s The environment definition can be used to tweak the environment variables used by the 481s build commands. An example: 481s 481s default-build-environment: 481s set: 481s ENV_VAR: foo 481s ANOTHER_ENV_VAR: bar 481s 481s The environment definition has multiple attributes for setting environment variables 481s which determines when the definition is applied. The resulting environment is the 481s result of the following order of operations. 481s 481s 1. The environment `debputy` received from its parent process. 481s 2. Apply all the variable definitions from `set` (if the attribute is present) 481s 3. Apply all computed variables (such as variables from `dpkg-buildflags`). 481s 4. Apply all the variable definitions from `override` (if the attribute is present) 481s 5. Remove all variables listed in `unset` (if the attribute is present). 481s 481s Accordingly, both `override` and `unset` will overrule any computed variables while 481s `set` will be overruled by any computed variables. 481s 481s Note that these variables are not available via manifest substitution (they are only 481s visible to build commands). They are only available to build commands. 481s 481s - `builds` (optional): 481s 481s Define how to build the upstream part of the package. Usually this is done via "build systems", 481s which also defines the clean rules. 481s 481s A simple example is: 481s 481s ```yaml 481s builds: 481s - autoconf: 481s configure-args: 481s - "--enable-foo" 481s - "--without=bar" 481s ``` 481s 481s Multiple builds are supported out of box. Here an example of how the build rules 481s for `libpam-krb5` might look. 481s 481s ```yaml 481s builds: 481s - autoconf: 481s for: libpam-krb5 481s install-directly-to-package: true 481s configure-args: 481s - "--enable-reduced-depends" 481s - "--with-krb5-include=/usr/include/mit-krb5" 481s - "--with-krb5-lib=/usr/lib/{{DEB_HOST_MULTIARCH}}/mit-krb5" 481s - "--with-kadm-client-include=/usr/include/mit-krb5" 481s - "--with-kadm-client-lib=/usr/lib/{{DEB_HOST_MULTIARCH}}/mit-krb5" 481s - autoconf: 481s for: libpam-heimdal 481s install-directly-to-package: true 481s configure-args: 481s - "--enable-reduced-depends" 481s - "--with-krb5-include=/usr/include/heimdal" 481s - "--with-krb5-lib=/usr/lib/{{DEB_HOST_MULTIARCH}}/heimdal" 481s - "--with-kadm-client-include=/usr/include/heimdal" 481s - "--with-kadm-client-lib=/usr/lib/{{DEB_HOST_MULTIARCH}}/heimdal" 481s ``` 481s 481s 481s Integration mode availability: any integration mode 481s Reference documentation: https://salsa.debian.org/debian/debputy/-/blob/debian/0.1.76ubuntu1/MANIFEST-FORMAT.md 481s Rule reference: :: 481s 481s PS: If you want to know more about a non-trivial type of an attribute such as `FileSystemMatchRule`, 481s you can use `debputy plugin show type-mappings FileSystemMatchRule` to look it up 481s + debputy --no-pager plugin show manifest-variables DEB_SOURCE 481s Variable: DEB_SOURCE 481s ==================== 481s 481s Documentation: Name of the source package (`dpkg-parsechangelog -SSource`) 481s Resolved: debputy 481s Plugin: debputy 481s + debputy --no-pager plugin show manifest-variables token:TAB 482s Variable: token:TAB 482s =================== 482s 482s Documentation: Literal tab character 482s Resolved: \t 482s Plugin: debputy 482s + debputy --no-pager plugin show manifest-variables DEB_HOST_ARCH 482s Variable: DEB_HOST_ARCH 482s ======================= 482s 482s Documentation: Debian's name for the architecture (installed on) 482s This variable describes machine information used when the package is compiled and assembled. 482s * Machine type: The package will be **installed** on this type of machine / system 482s * Value description: Debian's name for the architecture 482s 482s The value is the output of: `dpkg-architecture -qDEB_HOST_ARCH` 482s Resolved: arm64 482s + debputy --no-pager plugin show manifest-variables DEB_BUILD_ARCH 483s Variable: DEB_BUILD_ARCH 483s ======================== 483s 483s Documentation: Debian's name for the architecture (compiled on) 483s This variable describes machine information used when the package is compiled and assembled. 483s * Machine type: The compilation of this package will be performed **on** this kind of machine / system 483s * Value description: Debian's name for the architecture 483s 483s The value is the output of: `dpkg-architecture -qDEB_BUILD_ARCH` 483s Resolved: arm64 483s Special-case: The variable has been marked as a "special-case"-only variable. 483s + debputy --no-pager plugin show automatic-discard-rules python-cache-files 483s Automatic Discard Rule: python-cache-files 483s ========================================== 483s 483s Discards any *.pyc, *.pyo files and any __pycache__ directories 483s 483s Example 483s ------- 483s 483s Consider the following source paths matched by a glob or directory match: 483s 483s /.../__pycache__/ << Discarded (directly by the rule) 483s /.../__pycache__/... << Discarded (directory was discarded) 483s /.../foo.py 483s /.../foo.pyc << Discarded (directly by the rule) 483s /.../foo.pyo << Discarded (directly by the rule) 483s + debputy --no-pager plugin show automatic-discard-rules la-files 483s Automatic Discard Rule: la-files 483s ================================ 483s 483s Discards any file with the extension .la beneath the directory /usr/lib 483s 483s Example 483s ------- 483s 483s Consider the following source paths matched by a glob or directory match: 483s 483s /usr/lib/libfoo.la << Discarded (directly by the rule) 483s /usr/lib/libfoo.so.1.0.0 484s + debputy --no-pager plugin show automatic-discard-rules backup-files 485s Automatic Discard Rule: backup-files 485s ==================================== 485s 485s Discards common back up files such as foo~, foo.bak or foo.orig 485s 485s Example 485s ------- 485s 485s Consider the following source paths matched by a glob or directory match: 485s 485s /.../.foo.sw. << Discarded (directly by the rule) 485s /.../DEADJOE << Discarded (directly by the rule) 485s /.../foo.orig << Discarded (directly by the rule) 485s /.../foo.rej << Discarded (directly by the rule) 485s /.../foo~ << Discarded (directly by the rule) 485s + debputy --no-pager plugin show automatic-discard-rules version-control-paths 485s Automatic Discard Rule: version-control-paths 485s ============================================= 485s 485s Discards common version control paths such as .git, .gitignore, CVS, etc. 485s 485s Example 485s ------- 485s 485s Consider the following source paths matched by a glob or directory match: 485s 485s /.../.git/ << Discarded (directly by the rule) 485s /.../.git/... << Discarded (directory was discarded) 485s /.../.gitattributes << Discarded (directly by the rule) 485s /.../.gitignore << Discarded (directly by the rule) 485s /.../CVS/ << Discarded (directly by the rule) 485s /.../CVS/... << Discarded (directory was discarded) 485s /tools/foo 485s + debputy --no-pager plugin show automatic-discard-rules gnu-info-dir-file 485s Automatic Discard Rule: gnu-info-dir-file 485s ========================================= 485s 485s Discards the /usr/share/info/dir file (causes package file conflicts) 485s 485s Example 485s ------- 485s 485s Consider the following source paths matched by a glob or directory match: 485s 485s /usr/share/info/dir << Discarded (directly by the rule) 485s /usr/share/info/dir.info 485s /usr/share/info/foo.info 485s /usr/share/random/case/dir 485s + debputy --no-pager plugin show automatic-discard-rules debian-dir 485s Automatic Discard Rule: debian-dir 485s ================================== 485s 485s (Implementation detail) Discards any DEBIAN directory to avoid it from appearing literally in the file listing 485s 485s Example 485s ------- 485s 485s Consider the following source paths matched by a glob or directory match: 485s 485s /DEBIAN/ << Discarded (directly by the rule) 485s /DEBIAN/control << Discarded (directory was discarded) 485s /usr/bin/foo 485s /usr/share/DEBIAN/foo 485s + debputy --no-pager plugin show automatic-discard-rules doxygen-cruft-files 486s Automatic Discard Rule: doxygen-cruft-files 486s =========================================== 486s 486s Discards cruft files generated by doxygen 486s 486s Example 486s ------- 486s 486s Consider the following source paths matched by a glob or directory match: 486s 486s /usr/share/doc/foo/api/.../cruft.map << Discarded (directly by the rule) 486s /usr/share/doc/foo/api/.../cruft.md5 << Discarded (directly by the rule) 486s /usr/share/doc/foo/api/doxygen.css 486s /usr/share/doc/foo/api/doxygen.svg 486s /usr/share/doc/foo/api/index.html 486s + debputy --no-pager tool-support annotate-debian-directory 487s {"result": [{"path": "debian/changelog", "binary-package": "dh-debputy", "pkgfile-stem": "changelog", "pkgfile-explicit-package-name": false, "pkgfile-is-active-in-build": true, "debputy-cmd-templates": [["debputy", "plugin", "show", "p-p-f", "changelog"]], "documentation-uris": ["man:deb-changelog(5)", "https://www.debian.org/doc/debian-policy/ch-source.html#debian-changelog-debian-changelog", "man:dch(1)", "man:dh_installchangelogs(1)"], "file-categories": ["ppf-file"]}, {"path": "debian/copyright", "binary-package": "dh-debputy", "pkgfile-stem": "copyright", "pkgfile-explicit-package-name": false, "pkgfile-is-active-in-build": true, "debputy-cmd-templates": [["debputy", "plugin", "show", "p-p-f", "copyright"]], "documentation-uris": ["https://www.debian.org/doc/debian-policy/ch-source.html#copyright-debian-copyright", "https://www.debian.org/doc/debian-policy/ch-docs.html#s-copyrightfile", "https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/", "man:dh_installdocs(1)"], "install-path": "/usr/share/doc/dh-debputy/copyright", "install-pattern": "usr/share/doc/{owning_package}/copyright", "file-categories": ["ppf-file"]}, {"path": "debian/control", "file-categories": ["pkg-metadata"], "documentation-uris": ["man:deb-src-control(5)", "https://www.debian.org/doc/debian-policy/ch-controlfields.html#source-package-control-files-debian-control"]}, {"path": "debian/debputy.manifest", "file-categories": ["pkg-helper-config"], "documentation-uris": ["https://salsa.debian.org/debian/debputy/-/blob/debian/0.1.76ubuntu1/MANIFEST-FORMAT.md"], "debputy-cmd-templates": ["debputy plugin list p-m-r", "debputy plugin show p-m-r {{TOPIC}}"]}, {"path": "debian/gbp.conf", "file-categories": ["maint-config"], "documentation-uris": ["man:gbp.conf(5)"]}, {"path": "debian/rules", "documentation-uris": ["man:deb-src-rules(5)", "https://www.debian.org/doc/debian-policy/ch-source.html#main-building-script-debian-rules"]}, {"path": "debian/source/format", "file-categories": ["pkg-metadata"], "documentation-uris": ["man:dpkg-source(1)"]}, {"path": "debian/tests/control", "file-categories": ["testing"], "documentation-uris": ["https://salsa.debian.org/ci-team/autopkgtest/raw/master/doc/README.package-tests.rst", "https://ci.debian.net/doc/file.TUTORIAL.html"]}], "reference-datasets": ["config-features", "file-categories"]}+ debputy --no-pager tool-support export-reference-data --output-format=json 487s {"reference-data": {"config-features": {"dh-filearray": {"description": "The file will be read as a list of space/newline separated tokens"}, "dh-filedoublearray": {"description": "Each line in the file will be read as a list of space-separated tokens"}, "dh-hash-subst": {"description": "Supports debhelper #PACKAGE# style substitutions (udebs often excluded)"}, "dh-dollar-subst": {"description": "Supports debhelper ${PACKAGE} style substitutions (usually requires compat 13+)"}, "dh-glob": {"description": "Supports standard debhelper globing"}, "dh-partial-glob": {"description": "Supports standard debhelper globing but only to a subset of the values (implies dh-late-glob)"}, "dh-late-glob": {"description": "Globbing is done separately instead of using the built-in function"}, "dh-glob-after-execute": {"description": "When the dh config file is executable, the generated output will be subject to globbing"}, "dh-executable-config": {"description": "If marked executable, debhelper will execute the file and read its output"}, "dh-custom-format": {"description": "The dh tool will or may have a custom parser for this file"}, "dh-file-list": {"description": "The dh file contains a list of paths to be processed"}, "dh-install-list": {"description": "The dh file contains a list of paths/globs to be installed but the tool specific knowledge required to understand the file cannot be conveyed via this interface."}, "dh-install-list-dest-dir-like-dh_install": {"description": "The dh file is processed similar to dh_install (notably dest-dir handling derived from the path or the last token on the line)"}, "dh-install-list-fixed-dest-dir": {"description": "The dh file is an install list and the dest-dir is always the same for all patterns (when `install-pattern` or `install-path` are provided, they identify the directory - not the file location)"}, "dh-exec-rename": {"description": "When `dh-exec` is the interpreter of this dh config file, its renaming (=>) feature can be requested/used"}, "dh-docs-only": {"description": "The dh config file is used for documentation only. Implicit Build-Profiles support"}}, "file-categories": {"generated": {"description": "The file is (likely) generated from another file"}, "generic-template": {"description": "The file is (likely) a generic template that generates a known packaging file. While the file is annotated as if it was the target file, the file might uses a custom template language inside it."}, "ppf-file": {"description": "Packager provided file to be installed on the file system - usually as-is. When `install-pattern` or `install-path` are provided, this is where the file is installed."}, "ppf-control-file": {"description": "Packager provided file that becomes a control file - possible after processing. If `install-pattern` or `install-path` are provided, they denote where the is placed (generally, this will be of the form `DEBIAN/`)"}, "maint-config": {"description": "Maintenance configuration for a specific tool that the maintainer uses (tool / style preferences)"}, "pkg-metadata": {"description": "The file is related to standard package metadata (usually documented in Debian Policy)"}, "pkg-helper-config": {"description": "The file is packaging helper configuration or instruction file"}, "testing": {"description": "The file is related to automated testing (autopkgtests, salsa/gitlab CI)."}, "lint-config": {"description": "The file is related to a linter (such as overrides for false-positives or style preferences)"}}}}+ debputy --no-pager tool-support export-reference-data file-categories 487s +-------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 487s | key | description | 487s +-------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 487s | generated | The file is (likely) generated from another file | 487s | generic-template | The file is (likely) a generic template that generates a known packaging file. While the file is annotated as if it was the target file, the file might uses a custom template language inside it. | 487s | ppf-file | Packager provided file to be installed on the file system - usually as-is. When `install-pattern` or `install-path` are provided, this is where the file is installed. | 487s | ppf-control-file | Packager provided file that becomes a control file - possible after processing. If `install-pattern` or `install-path` are provided, they denote where the is placed (generally, this will be of the form `DEBIAN/`) | 487s | maint-config | Maintenance configuration for a specific tool that the maintainer uses (tool / style preferences) | 487s | pkg-metadata | The file is related to standard package metadata (usually documented in Debian Policy) | 487s | pkg-helper-config | The file is packaging helper configuration or instruction file | 487s | testing | The file is related to automated testing (autopkgtests, salsa/gitlab CI). | 487s | lint-config | The file is related to a linter (such as overrides for false-positives or style preferences) | 487s +-------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 487s 487s If you wanted this as JSON, please use --output-format=json 488s autopkgtest [18:35:04]: test debputy-cli: -----------------------] 488s autopkgtest [18:35:04]: test debputy-cli: - - - - - - - - - - results - - - - - - - - - - 488s debputy-cli PASS (superficial) 489s autopkgtest [18:35:05]: test debputy-cli-lint-lsp: preparing testbed 489s Reading package lists... 489s Building dependency tree... 489s Reading state information... 489s Solving dependencies... 490s The following NEW packages will be installed: 490s python3-cattr python3-lsprotocol 490s 0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded. 490s Need to get 102 kB of archives. 490s After this operation, 803 kB of additional disk space will be used. 490s Get:1 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-cattr all 24.1.2-1 [43.6 kB] 490s Get:2 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-lsprotocol all 2023.0.1-1 [58.3 kB] 491s Fetched 102 kB in 1s (180 kB/s) 491s Selecting previously unselected package python3-cattr. 491s (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 ... 89871 files and directories currently installed.) 491s Preparing to unpack .../python3-cattr_24.1.2-1_all.deb ... 491s Unpacking python3-cattr (24.1.2-1) ... 491s Selecting previously unselected package python3-lsprotocol. 491s Preparing to unpack .../python3-lsprotocol_2023.0.1-1_all.deb ... 491s Unpacking python3-lsprotocol (2023.0.1-1) ... 491s Setting up python3-cattr (24.1.2-1) ... 491s Setting up python3-lsprotocol (2023.0.1-1) ... 492s autopkgtest [18:35:08]: test debputy-cli-lint-lsp: [----------------------- 492s + debputy lint --linter-exit-code 494s debputy: info: Note: Due to a limitation in the linter, debian/debputy.manifest is 494s debputy: info: only **partially** checked by this command at the time of writing. 494s debputy: info: Please use `debputy check-manifest` to fully check the manifest. 494s + debputy lint --no-linter-exit-code 495s debputy: info: Note: Due to a limitation in the linter, debian/debputy.manifest is 495s debputy: info: only **partially** checked by this command at the time of writing. 495s debputy: info: Please use `debputy check-manifest` to fully check the manifest. 496s + debputy reformat --no-linter-exit-code --no-auto-fix 497s + debputy lsp editor-config 497s This version of debputy has instructions or editor config snippets for the following editors: 497s 497s * emacs (short for: emacs+eglot) 497s * emacs+eglot 497s * vim (short for: vim+youcompleteme) 497s * vim+youcompleteme 497s * vim+vim9lsp 497s * neovim (short for: neovim+nvim-lspconfig) 497s * neovim+nvim-lspconfig 497s 497s Use `debputy lsp editor-config vim+youcompleteme` (as an example) to see the instructions for a concrete editor. 497s + debputy lsp editor-config emacs 498s ;; `deputy lsp server` glue for emacs eglot (eglot is built-in these days) 498s ;; 498s ;; Add to ~/.emacs or ~/.emacs.d/init.el and then activate via `M-x eglot`. 498s ;; 498s ;; Requires: apt install elpa-dpkg-dev-el elpa-yaml-mode 498s ;; Recommends: apt install elpa-markdown-mode 498s 498s ;; Make emacs recognize debian/debputy.manifest as a YAML file 498s (add-to-list 'auto-mode-alist '("/debian/debputy.manifest\'" . yaml-mode)) 498s ;; Inform eglot about the debputy LSP 498s (with-eval-after-load 'eglot 498s (add-to-list 'eglot-server-programs 498s '( 498s ( 498s ;; Requires elpa-dpkg-dev-el (>= 37.12) 498s (debian-autopkgtest-control-mode :language-id "debian/tests/control") 498s ;; Requires elpa-dpkg-dev-el 498s (debian-control-mode :language-id "debian/control") 498s (debian-changelog-mode :language-id "debian/changelog") 498s (debian-copyright-mode :language-id "debian/copyright") 498s ;; No language id for these atm. 498s makefile-gmake-mode 498s ;; Requires elpa-yaml-mode 498s yaml-mode 498s ) 498s . ("debputy" "lsp" "server") 498s ))) 498s 498s ;; Auto-start eglot for the relevant modes. 498s (add-hook 'debian-control-mode-hook 'eglot-ensure) 498s ;; Requires elpa-dpkg-dev-el (>= 37.12) 498s ;; Technically, the `eglot-ensure` works before then, but it causes a 498s ;; visible and very annoying long delay on opening the first changelog. 498s ;; It still has a minor delay in 37.12, which may still be too long for 498s ;; for your preference. In that case, comment it out. 498s (add-hook 'debian-changelog-mode-hook 'eglot-ensure) 498s (add-hook 'debian-copyright-mode-hook 'eglot-ensure) 498s ;; Requires elpa-dpkg-dev-el (>= 37.12) 498s (add-hook 'debian-autopkgtest-control-mode-hook 'eglot-ensure) 498s (add-hook 'makefile-gmake-mode-hook 'eglot-ensure) 498s (add-hook 'yaml-mode-hook 'eglot-ensure) 498s 498s + debputy lsp editor-config emacs+eglot 498s ;; `deputy lsp server` glue for emacs eglot (eglot is built-in these days) 498s ;; 498s ;; Add to ~/.emacs or ~/.emacs.d/init.el and then activate via `M-x eglot`. 498s ;; 498s ;; Requires: apt install elpa-dpkg-dev-el elpa-yaml-mode 498s ;; Recommends: apt install elpa-markdown-mode 498s 498s ;; Make emacs recognize debian/debputy.manifest as a YAML file 498s (add-to-list 'auto-mode-alist '("/debian/debputy.manifest\'" . yaml-mode)) 498s ;; Inform eglot about the debputy LSP 498s (with-eval-after-load 'eglot 498s (add-to-list 'eglot-server-programs 498s '( 498s ( 498s ;; Requires elpa-dpkg-dev-el (>= 37.12) 498s (debian-autopkgtest-control-mode :language-id "debian/tests/control") 498s ;; Requires elpa-dpkg-dev-el 498s (debian-control-mode :language-id "debian/control") 498s (debian-changelog-mode :language-id "debian/changelog") 498s (debian-copyright-mode :language-id "debian/copyright") 498s ;; No language id for these atm. 498s makefile-gmake-mode 498s ;; Requires elpa-yaml-mode 498s yaml-mode 498s ) 498s . ("debputy" "lsp" "server") 498s ))) 498s 498s ;; Auto-start eglot for the relevant modes. 498s (add-hook 'debian-control-mode-hook 'eglot-ensure) 498s ;; Requires elpa-dpkg-dev-el (>= 37.12) 498s ;; Technically, the `eglot-ensure` works before then, but it causes a 498s ;; visible and very annoying long delay on opening the first changelog. 498s ;; It still has a minor delay in 37.12, which may still be too long for 498s ;; for your preference. In that case, comment it out. 498s (add-hook 'debian-changelog-mode-hook 'eglot-ensure) 498s (add-hook 'debian-copyright-mode-hook 'eglot-ensure) 498s ;; Requires elpa-dpkg-dev-el (>= 37.12) 498s (add-hook 'debian-autopkgtest-control-mode-hook 'eglot-ensure) 498s (add-hook 'makefile-gmake-mode-hook 'eglot-ensure) 498s (add-hook 'yaml-mode-hook 'eglot-ensure) 498s 498s + debputy lsp editor-config vim 498s # debputy lsp server glue for vim with vim-youcompleteme. Add to ~/.vimrc 498s # 498s # Requires: apt install vim-youcompleteme 498s # - Your vim **MUST** be a provider of `vim-python3` (`vim-nox`/`vim-gtk`, etc.) 498s 498s # Make vim recognize debputy.manifest as YAML file 498s au BufNewFile,BufRead debputy.manifest setf yaml 498s # Inform vim/ycm about the debputy LSP 498s # - NB: No known support for debian/tests/control that we can hook into. 498s # Feel free to provide one :) 498s let g:ycm_language_server = [ 498s \ { 'name': 'debputy', 498s \ 'filetypes': [ 'debcontrol', 'debcopyright', 'debchangelog', 'autopkgtest', 'make', 'yaml'], 498s \ 'cmdline': [ 'debputy', 'lsp', 'server', '--ignore-language-ids' ] 498s \ }, 498s \ ] 498s 498s packadd! youcompleteme 498s # Add relevant ycm keybinding such as: 498s # nmap d (YCMHover) 498s 499s autopkgtest [18:35:15]: test debputy-cli-lint-lsp: -----------------------] 500s debputy-cli-lint-lsp PASS (superficial) 500s autopkgtest [18:35:16]: test debputy-cli-lint-lsp: - - - - - - - - - - results - - - - - - - - - - 500s autopkgtest [18:35:16]: test debputy-cli-lsp: preparing testbed 500s Reading package lists... 501s Building dependency tree... 501s Reading state information... 501s Solving dependencies... 501s The following NEW packages will be installed: 501s python3-pygls 501s 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. 501s Need to get 36.6 kB of archives. 501s After this operation, 266 kB of additional disk space will be used. 501s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed/universe arm64 python3-pygls all 1.3.0-4 [36.6 kB] 502s Fetched 36.6 kB in 0s (166 kB/s) 502s Selecting previously unselected package python3-pygls. 502s (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 ... 89944 files and directories currently installed.) 502s Preparing to unpack .../python3-pygls_1.3.0-4_all.deb ... 502s Unpacking python3-pygls (1.3.0-4) ... 502s Setting up python3-pygls (1.3.0-4) ... 503s autopkgtest [18:35:19]: test debputy-cli-lsp: [----------------------- 503s + debputy lsp features 504s LSP language IDs and their features: 504s * : 504s - diagnostics (lint) 504s - code actions/quickfixes 504s - completion suggestions 504s - hover docs 504s - folding ranges 504s - semantic tokens 504s - on-save handler 504s - inlay hint (doc) 504s - format file handler 504s * autopkgtest: 504s - diagnostics (lint) 504s - code actions/quickfixes 504s - completion suggestions 504s - hover docs 504s - folding ranges 504s - semantic tokens 504s - on-save handler 504s - format file handler 504s * dch: 504s - diagnostics (lint) 504s - code actions/quickfixes 504s - on-save handler 504s * debchangelog: 504s - diagnostics (lint) 504s - code actions/quickfixes 504s - on-save handler 504s * debcontrol: 504s - diagnostics (lint) 504s - code actions/quickfixes 504s - completion suggestions 504s - hover docs 504s - folding ranges 504s - semantic tokens 504s - on-save handler 504s - inlay hint (doc) 504s - format file handler 504s * debcopyright: 504s - diagnostics (lint) 504s - code actions/quickfixes 504s - completion suggestions 504s - hover docs 504s - folding ranges 504s - semantic tokens 504s - on-save handler 504s - format file handler 504s * debian-autopkgtest-control-mode: 504s - diagnostics (lint) 504s - code actions/quickfixes 504s - completion suggestions 504s - hover docs 504s - folding ranges 504s - semantic tokens 504s - on-save handler 504s - format file handler 504s * debian-changelog: 504s - diagnostics (lint) 504s - code actions/quickfixes 504s - on-save handler 504s * debian-control: 504s - diagnostics (lint) 504s - code actions/quickfixes 504s - completion suggestions 504s - hover docs 504s - folding ranges 504s - semantic tokens 504s - on-save handler 504s - inlay hint (doc) 504s - format file handler 504s * debian-copyright: 504s - diagnostics (lint) 504s - code actions/quickfixes 504s - completion suggestions 504s - hover docs 504s - folding ranges 504s - semantic tokens 504s - on-save handler 504s - format file handler 504s * debian-watch: 504s - diagnostics (lint) 504s - code actions/quickfixes 504s - completion suggestions 504s - hover docs 504s - folding ranges 504s - semantic tokens 504s - on-save handler 504s - format file handler 504s * debian/changelog: 504s - diagnostics (lint) 504s - code actions/quickfixes 504s - on-save handler 504s * debian/control: 504s - diagnostics (lint) 504s - code actions/quickfixes 504s - completion suggestions 504s - hover docs 504s - folding ranges 504s - semantic tokens 504s - on-save handler 504s - inlay hint (doc) 504s - format file handler 504s * debian/copyright: 504s - diagnostics (lint) 504s - code actions/quickfixes 504s - completion suggestions 504s - hover docs 504s - folding ranges 504s - semantic tokens 504s - on-save handler 504s - format file handler 504s * debian/debputy.manifest: 504s - diagnostics (lint) 504s - code actions/quickfixes 504s - completion suggestions 504s - hover docs 504s - on-save handler 504s * debian/patches/series: 504s - diagnostics (lint) 504s - code actions/quickfixes 504s - completion suggestions 504s - semantic tokens 504s - on-save handler 504s * debian/rules: 504s - diagnostics (lint) 504s - code actions/quickfixes 504s - completion suggestions 504s - on-save handler 504s * debian/tests/control: 504s - diagnostics (lint) 504s - code actions/quickfixes 504s - completion suggestions 504s - hover docs 504s - folding ranges 504s - semantic tokens 504s - on-save handler 504s - format file handler 504s * debian/upstream/metadata: 504s - diagnostics (lint) 504s - code actions/quickfixes 504s - completion suggestions 504s - hover docs 504s - on-save handler 504s * debian/watch: 504s - diagnostics (lint) 504s - code actions/quickfixes 504s - completion suggestions 504s - hover docs 504s - folding ranges 504s - semantic tokens 504s - on-save handler 504s - format file handler 504s * debputy-config.yaml: 504s - diagnostics (lint) 504s - code actions/quickfixes 504s - completion suggestions 504s - hover docs 504s - on-save handler 504s * debputy.manifest: 504s - diagnostics (lint) 504s - code actions/quickfixes 504s - completion suggestions 504s - hover docs 504s - on-save handler 504s * debwatch: 504s - diagnostics (lint) 504s - code actions/quickfixes 504s - completion suggestions 504s - hover docs 504s - folding ranges 504s - semantic tokens 504s - on-save handler 504s - format file handler 504s * make: 504s - diagnostics (lint) 504s - code actions/quickfixes 504s - completion suggestions 504s - on-save handler 504s * makefile: 504s - diagnostics (lint) 504s - code actions/quickfixes 504s - completion suggestions 504s - on-save handler 504s * makefile-gmake: 504s - diagnostics (lint) 504s - code actions/quickfixes 504s - completion suggestions 504s - on-save handler 504s * patches/series: 504s - diagnostics (lint) 504s - code actions/quickfixes 504s - completion suggestions 504s - semantic tokens 504s - on-save handler 504s * yaml: 504s - diagnostics (lint) 504s - code actions/quickfixes 504s - completion suggestions 504s - hover docs 504s - on-save handler 504s 504s Aliases: 504s 504s General features: 504s * minimum requirements: missing 504s - Run `apt satisfy 'python3-lsprotocol, python3-pygls'` to fix this issue 504s * typo detection: disabled 504s - Run `apt satisfy 'python3-levenshtein'` to enable this feature 504s * spell checking: disabled 504s - Run `apt satisfy 'hunspell-en-us, python3-hunspell'` to enable this feature 504s * extra dh support: enabled 504s * apt cache packages: enabled 504s + debputy lsp server 505s debputy: error: Cannot start the language server. Missing dependencies. Run `apt satisfy 'python3-lsprotocol, python3-pygls'` to fix this issue 506s autopkgtest [18:35:22]: test debputy-cli-lsp: -----------------------] 506s debputy-cli-lsp FAIL non-zero exit status 1 506s autopkgtest [18:35:22]: test debputy-cli-lsp: - - - - - - - - - - results - - - - - - - - - - 507s autopkgtest [18:35:23]: @@@@@@@@@@@@@@@@@@@@ summary 507s debputy-py.test PASS 507s debputy-cli PASS (superficial) 507s debputy-cli-lint-lsp PASS (superficial) 507s debputy-cli-lsp FAIL non-zero exit status 1