Package: release.debian.org Severity: normal Tags: buster User: release.debian....@packages.debian.org Usertags: pu
Hi, We'd like to update piuparts with the following changes in buster, fixing a bunch of rather important bugs (as well as one trivial wishlist bug and a trivial normal bug), including one for buster=stable (which missed the buster relase because 1.0.1 was not accepted). piuparts (1.0.0+deb10u1) buster; urgency=medium . * Happy 26th birthday, Debian! And many thanks to all the contributors! . [ Andreas Beckmann ] * piuparts.py: - Run pre_remove scripts before computing packages to be removed. - Fix spurious failure to remove packages with names ending with '+'. - Add '--max-command-output-size' option to allow overriding the default of 8 MB for debugging runs. * piuparts-slave.py: - Generate separate tarball names for --merged-usr chroots. * detect_well_known_errors.py: - process untestable logs. * Makefile: use gzip -n for reproducibility. * piuparts.conf, distros.conf: Update for buster release. * custom-scripts: some updates for buster. If custom-scripts are used, it's probably better to use piuparts from bpo. . [ Holger Levsen ] * Cherry-picking the above. The diffstat to 1.0.0 in buster is: $ debdiff piuparts_1.0.0.dsc piuparts_1.0.0+deb10u1.dsc | diffstat .gitignore | 3 + Makefile | 8 ++-- conf/distros.conf | 8 ++-- custom-scripts/scripts/post_distupgrade_exceptions | 1 custom-scripts/scripts/post_setup_minimize | 2 - custom-scripts/scripts/pre_distupgrade_zz_database-server | 7 ++-- debian/.gitignore | 5 ++ debian/changelog | 24 ++++++++++++++ instances/piuparts.conf-template.pejacevic | 4 -- instances/piuparts.conf.anbe | 7 ---- master-bin/detect_well_known_errors.py | 2 - piuparts-slave.py | 3 + piuparts.1.txt | 4 ++ piuparts.py | 22 ++++++++---- piupartslib/conf.py | 6 ++- 15 files changed, 73 insertions(+), 33 deletions(-) The full diff is attached. Thanks for your work on buster! -- cheers, Holger ------------------------------------------------------------------------------- holger@(debian|reproducible-builds|layer-acht).org PGP fingerprint: B8BF 5413 7B09 D35C F026 FE9D 091A B856 069A AA1C
diff -Nru piuparts-1.0.0/conf/distros.conf piuparts-1.0.0+deb10u1/conf/distros.conf --- piuparts-1.0.0/conf/distros.conf 2019-05-04 21:37:32.000000000 +0200 +++ piuparts-1.0.0+deb10u1/conf/distros.conf 2019-08-16 15:05:52.000000000 +0200 @@ -176,19 +176,19 @@ # alias [oldoldstable] -distribution = wheezy +distribution = jessie # alias [oldstable] -distribution = jessie +distribution = stretch # alias [stable] -distribution = stretch +distribution = buster # alias [testing] -distribution = buster +distribution = bullseye # It's also possible to have "virtual" entries by setting uri to diff -Nru piuparts-1.0.0/custom-scripts/scripts/post_distupgrade_exceptions piuparts-1.0.0+deb10u1/custom-scripts/scripts/post_distupgrade_exceptions --- piuparts-1.0.0/custom-scripts/scripts/post_distupgrade_exceptions 2019-05-04 21:37:32.000000000 +0200 +++ piuparts-1.0.0+deb10u1/custom-scripts/scripts/post_distupgrade_exceptions 2019-08-16 15:21:58.000000000 +0200 @@ -100,7 +100,6 @@ fi if [ "$PIUPARTS_DISTRIBUTION" = "buster" ] || \ - [ "$PIUPARTS_DISTRIBUTION" = "sid" -a "$PIUPARTS_DISTRIBUTION_PREV" = "stretch" ]; then # libc-bin only upgrades pristine /etc/nsswitch.conf if grep -q '^passwd:.*compat' /etc/nsswitch.conf ; then diff -Nru piuparts-1.0.0/custom-scripts/scripts/post_setup_minimize piuparts-1.0.0+deb10u1/custom-scripts/scripts/post_setup_minimize --- piuparts-1.0.0/custom-scripts/scripts/post_setup_minimize 2018-04-22 04:30:08.000000000 +0200 +++ piuparts-1.0.0+deb10u1/custom-scripts/scripts/post_setup_minimize 2019-08-16 15:05:52.000000000 +0200 @@ -8,7 +8,7 @@ jessie) dpkg --purge gcc-4.8-base ;; - sid|stretch) + stretch) dpkg --purge lsb-base tzdata ;; esac diff -Nru piuparts-1.0.0/custom-scripts/scripts/pre_distupgrade_zz_database-server piuparts-1.0.0+deb10u1/custom-scripts/scripts/pre_distupgrade_zz_database-server --- piuparts-1.0.0/custom-scripts/scripts/pre_distupgrade_zz_database-server 2019-05-04 21:37:32.000000000 +0200 +++ piuparts-1.0.0+deb10u1/custom-scripts/scripts/pre_distupgrade_zz_database-server 2019-08-16 15:21:58.000000000 +0200 @@ -56,7 +56,7 @@ CANDIDATES="$CANDIDATES mariadb-server-10.3" CANDIDATES="$CANDIDATES postgresql-11" ;; - sid) + bullseye|sid) CANDIDATES="$CANDIDATES mariadb-server-10.3" CANDIDATES="$CANDIDATES postgresql-11" ;; @@ -164,7 +164,10 @@ stretch:buster) upgrade_pg_cluster 9.6 11 ;; - stretch:sid) + buster*:bullseye) + upgrade_pg_cluster 9.6 11 + ;; + buster:sid) upgrade_pg_cluster 9.6 11 ;; esac diff -Nru piuparts-1.0.0/debian/changelog piuparts-1.0.0+deb10u1/debian/changelog --- piuparts-1.0.0/debian/changelog 2019-05-04 21:37:32.000000000 +0200 +++ piuparts-1.0.0+deb10u1/debian/changelog 2019-08-16 15:21:58.000000000 +0200 @@ -1,3 +1,27 @@ +piuparts (1.0.0+deb10u1) buster; urgency=medium + + * Happy 26th birthday, Debian! And many thanks to all the contributors! + + [ Andreas Beckmann ] + * piuparts.py: + - Add '--max-command-output-size' option to allow overriding the default + of 8 MB for debugging runs. + - Run pre_remove scripts before computing packages to be removed. + - Fix spurious failure to remove packages with names ending with '+'. + * piuparts-slave.py: + - Generate separate tarball names for --merged-usr chroots. + * detect_well_known_errors.py: + - process untestable logs. + * Makefile: use gzip -n for reproducibility. + * piuparts.conf, distros.conf: Update for buster release. + * custom-scripts: some updates for buster. If custom-scripts are used, it's + probably better to use piuparts from bpo. + + [ Holger Levsen ] + * Cherry-picking the above. + + -- Holger Levsen <hol...@debian.org> Fri, 16 Aug 2019 15:21:58 +0200 + piuparts (1.0.0) unstable; urgency=medium [ David Steele ] diff -Nru piuparts-1.0.0/debian/.gitignore piuparts-1.0.0+deb10u1/debian/.gitignore --- piuparts-1.0.0/debian/.gitignore 1970-01-01 01:00:00.000000000 +0100 +++ piuparts-1.0.0+deb10u1/debian/.gitignore 2018-04-22 03:24:26.000000000 +0200 @@ -0,0 +1,5 @@ +files +piuparts.debhelper.log +piuparts.postinst.debhelper +piuparts.prerm.debhelper +piuparts.substvars diff -Nru piuparts-1.0.0/.gitignore piuparts-1.0.0+deb10u1/.gitignore --- piuparts-1.0.0/.gitignore 1970-01-01 01:00:00.000000000 +0100 +++ piuparts-1.0.0+deb10u1/.gitignore 2019-05-04 21:49:33.000000000 +0200 @@ -0,0 +1,3 @@ +*.pyc +/deps.png +/debiman-piuparts-distill/debiman-piuparts-distill diff -Nru piuparts-1.0.0/instances/piuparts.conf.anbe piuparts-1.0.0+deb10u1/instances/piuparts.conf.anbe --- piuparts-1.0.0/instances/piuparts.conf.anbe 2019-05-04 21:37:32.000000000 +0200 +++ piuparts-1.0.0+deb10u1/instances/piuparts.conf.anbe 2019-08-16 15:21:58.000000000 +0200 @@ -420,7 +420,7 @@ lenny_i386/non-free lenny2squeeze/non-free # -testing-suite = buster +testing-suite = bullseye # json-sections = none # @@ -500,7 +500,6 @@ arch = amd64 area = main components = main -chroot-tgz = %(upgrade-test-distros)s-merged-usr_%(arch)s.tgz # 60*60*24*2 max-tgz-age = 172800 @@ -514,7 +513,6 @@ setarch = linux32 area = main components = main -chroot-tgz = %(upgrade-test-distros)s-merged-usr_%(arch)s.tgz # 60*60*24*2 max-tgz-age = 172800 @@ -938,7 +936,6 @@ arch = amd64 area = main components = main -chroot-tgz = %(distro)s-merged-usr_%(arch)s.tgz [sid-merged-usr/contrib] precedence = 45 @@ -949,7 +946,6 @@ distro = sid arch = amd64 area = contrib -chroot-tgz = %(distro)s-merged-usr_%(arch)s.tgz [sid-merged-usr/non-free] precedence = 45 @@ -960,7 +956,6 @@ distro = sid arch = amd64 area = non-free -chroot-tgz = %(distro)s-merged-usr_%(arch)s.tgz [sid-bl/main] diff -Nru piuparts-1.0.0/instances/piuparts.conf-template.pejacevic piuparts-1.0.0+deb10u1/instances/piuparts.conf-template.pejacevic --- piuparts-1.0.0/instances/piuparts.conf-template.pejacevic 2019-05-04 21:37:32.000000000 +0200 +++ piuparts-1.0.0+deb10u1/instances/piuparts.conf-template.pejacevic 2019-08-16 15:21:58.000000000 +0200 @@ -232,7 +232,7 @@ squeeze2squeeze-lts squeeze lenny2squeeze -testing-suite = buster +testing-suite = bullseye mirror = @MIRROR@ master-host = pejacevic.debian.org master-user = piupartsm @@ -287,7 +287,6 @@ %(flags-merged-usr)s distro = None upgrade-test-distros = sid -chroot-tgz = %(upgrade-test-distros)s-merged-usr_@ARCH@.tgz # 3 days (60*60*24*3) max-tgz-age = 259200 @@ -408,7 +407,6 @@ piuparts-flags = %(flags-merged-usr)s distro = sid -chroot-tgz = %(distro)s-merged-usr_@ARCH@.tgz [sid-broken-symlinks] diff -Nru piuparts-1.0.0/Makefile piuparts-1.0.0+deb10u1/Makefile --- piuparts-1.0.0/Makefile 2019-02-11 12:54:17.000000000 +0100 +++ piuparts-1.0.0+deb10u1/Makefile 2019-08-16 14:54:19.000000000 +0200 @@ -90,12 +90,12 @@ install -m 0644 README.txt README.html README_server.txt README_server.html docbook-xsl.css $(DESTDIR)$(docdir)/ install -d $(DESTDIR)$(man1dir) install -m 0644 piuparts.1 $(DESTDIR)$(man1dir)/ + gzip -9fn $(DESTDIR)$(man1dir)/piuparts.1 install -d $(DESTDIR)$(man8dir) install -m 0644 piuparts_slave_run.8 piuparts_slave_join.8 piuparts_slave_stop.8 $(DESTDIR)$(man8dir)/ - gzip -9f $(DESTDIR)$(man1dir)/piuparts.1 - gzip -9f $(DESTDIR)$(man8dir)/piuparts_slave_run.8 - gzip -9f $(DESTDIR)$(man8dir)/piuparts_slave_join.8 - gzip -9f $(DESTDIR)$(man8dir)/piuparts_slave_stop.8 + gzip -9fn $(DESTDIR)$(man8dir)/piuparts_slave_run.8 + gzip -9fn $(DESTDIR)$(man8dir)/piuparts_slave_join.8 + gzip -9fn $(DESTDIR)$(man8dir)/piuparts_slave_stop.8 install -m 0644 piuparts.1.html $(DESTDIR)$(docdir)/ install-conf: build-stamp diff -Nru piuparts-1.0.0/master-bin/detect_well_known_errors.py piuparts-1.0.0+deb10u1/master-bin/detect_well_known_errors.py --- piuparts-1.0.0/master-bin/detect_well_known_errors.py 2018-12-09 22:27:32.000000000 +0100 +++ piuparts-1.0.0+deb10u1/master-bin/detect_well_known_errors.py 2019-08-16 14:46:07.000000000 +0200 @@ -35,7 +35,7 @@ CONFIG_FILE = "/etc/piuparts/piuparts.conf" -KPR_DIRS = ('pass', 'bugged', 'affected', 'fail') +KPR_DIRS = ('pass', 'bugged', 'affected', 'fail', 'untestable') class Busy(Exception): diff -Nru piuparts-1.0.0/piuparts.1.txt piuparts-1.0.0+deb10u1/piuparts.1.txt --- piuparts-1.0.0/piuparts.1.txt 2019-05-04 21:37:32.000000000 +0200 +++ piuparts-1.0.0+deb10u1/piuparts.1.txt 2019-08-16 14:54:19.000000000 +0200 @@ -173,6 +173,10 @@ *--log-level*='level':: Display messages from loglevel LEVEL, possible values are: error, info, dump, debug. The default is dump. +*--max-command-output-size*='size':: + Set the maximum permitted command output to _size_ (in MB) for debugging + runs exceeding the default of 8 MB. + *--merged-usr*:: When using debootstrap to create the chroot, use the '--merged-usr' option to create a chroot with /bin, /lib, /sbin being symlinks to their /usr diff -Nru piuparts-1.0.0/piupartslib/conf.py piuparts-1.0.0+deb10u1/piupartslib/conf.py --- piuparts-1.0.0/piupartslib/conf.py 2018-04-22 04:30:08.000000000 +0200 +++ piuparts-1.0.0+deb10u1/piupartslib/conf.py 2019-08-16 14:42:20.000000000 +0200 @@ -246,12 +246,14 @@ c)) return lines - def get_basetgz(self, distro, arch): + def get_basetgz(self, distro, arch, merged_usr=False): # look for the first base distribution for d in self._expand_depends(distro): if self.get(d, "depends"): next # skip partial distro - return "%s_%s.tar.gz" % (self.get_distribution(d), arch) + return "%s%s_%s.tar.gz" % (self.get_distribution(d), + "-merged-usr" if merged_usr else "", + arch) return None diff -Nru piuparts-1.0.0/piuparts.py piuparts-1.0.0+deb10u1/piuparts.py --- piuparts-1.0.0/piuparts.py 2019-05-04 21:37:32.000000000 +0200 +++ piuparts-1.0.0+deb10u1/piuparts.py 2019-08-16 15:21:58.000000000 +0200 @@ -1506,7 +1506,7 @@ def remove_packages(self, packages, ignore_errors=False): """Remove packages in a chroot.""" if packages: - self.run(["apt-get", "remove"] + unqualify(packages), ignore_errors=ignore_errors) + self.run(["apt-get", "remove"] + ["%s-" % x if x.endswith('+') else x for x in unqualify(packages)], ignore_errors=ignore_errors) def purge_packages(self, packages, ignore_errors=False): """Purge packages in a chroot.""" @@ -1522,6 +1522,13 @@ logging.debug(" reference: %s" % " ".join(reference_chroot_state["avail_md5"])) logging.debug(" current : %s" % " ".join(self.avail_md5_history)) + self.list_paths_with_symlinks() + self.check_debsums() + self.check_adequate(packages_qualified) + + # Run custom scripts before removing all packages. + self.run_scripts("pre_remove") + selections = reference_chroot_state["selections"] packages = unqualify(packages_qualified) @@ -1548,13 +1555,6 @@ all_to_install += [(name, version) for name, (state, version) in nondeps.iteritems() if state == "install"] - self.list_paths_with_symlinks() - self.check_debsums() - self.check_adequate(packages_qualified) - - # Run custom scripts before removing all packages. - self.run_scripts("pre_remove") - # First remove all packages (and reinstall missing ones). self.remove_packages(deps_to_remove) if all_to_install: @@ -2973,6 +2973,10 @@ default="dump", help="Displays messages from LEVEL level, possible values are: error, info, dump, debug. The default is dump.") + parser.add_option("--max-command-output-size", action="store", metavar='SIZE', + default=0, + help="Set maximum permitted command output to SIZE (in MB).") + (opts, args) = parser.parse_args() # expand combined options @@ -2987,6 +2991,8 @@ settings.tmpdir = opts.tmpdir settings.keep_env = opts.keep_env settings.shell_on_error = opts.shell_on_error + if opts.max_command_output_size: + settings.max_command_output_size = int(opts.max_command_output_size) * 1024 * 1024; settings.single_changes_list = opts.single_changes_list settings.single_packages = opts.single_packages settings.args_are_package_files = not opts.apt diff -Nru piuparts-1.0.0/piuparts-slave.py piuparts-1.0.0+deb10u1/piuparts-slave.py --- piuparts-1.0.0/piuparts-slave.py 2019-05-04 21:37:32.000000000 +0200 +++ piuparts-1.0.0+deb10u1/piuparts-slave.py 2019-08-16 15:21:58.000000000 +0200 @@ -411,7 +411,8 @@ def _get_tarball(self): basetgz = self._config["chroot-tgz"] or \ self._distro_config.get_basetgz(self._config.get_start_distro(), - self._config.get_arch()) + self._config.get_arch(), + merged_usr="--merged-usr" in self._config["piuparts-flags"]) return os.path.join(self._config["basetgz-directory"], basetgz) def _check_tarball(self):
signature.asc
Description: PGP signature