[Piuparts-devel] [Git][debian/piuparts][phahn/docker-fixes] 26 commits: Start 1.1.8 development.
Philipp Hahn (@pmhahn)
gitlab at salsa.debian.org
Wed Dec 6 06:48:17 GMT 2023
Philipp Hahn pushed to branch phahn/docker-fixes at Debian / piuparts
Commits:
4ba9949a by Holger Levsen at 2023-01-18T22:53:30+01:00
Start 1.1.8 development.
d/changelog entries will be written on release
using the git commit messages.
Use 'gbp dch --since debian/1.1.7'
to write d/changelog entries since that last release.
Signed-off-by: Holger Levsen <holger at layer-acht.org>
- - - - -
82960e1e by Holger Levsen at 2023-01-19T00:18:07+01:00
fix speling error in old chanelog entry..
Signed-off-by: Holger Levsen <holger at layer-acht.org>
- - - - -
956829be by David Steele at 2023-02-08T12:15:37-05:00
Doc - don't include oldoldstable in global summary
- - - - -
0463b1e4 by Cyril Brulebois at 2023-03-15T20:13:35+01:00
piuparts(1): fix syntax for long options.
There are two kind of changes, one simply dropping the extraneous dash,
e.g.:
-*-*-allow-database*::
+*--allow-database*::
And the other that drops the extraneous dash as well, but also inserts a
separator before the =value part, e.g.:
-*-*-arch*='arch'::
+*--arch*\ ='arch'::
This is documented as a known gotcha:
Separation of inline markup: As said above, inline markup spans must
be separated from the surrounding text by non-word characters, you
have to use a backslash-escaped space to get around that.
Source: https://www.sphinx-doc.org/en/master/usage/restructuredtext/basics.html#gotchas
Additionally, a missing '*' is fixed for the -p option.
- - - - -
10d9a216 by Cyril Brulebois at 2023-03-15T20:59:48+01:00
piuparts(1): fix syntax for bullet lists.
Turn leading '.' into '*', and delete the '+' before the note. That
doesn't seem to be supported at the moment:
[…]/docs/piuparts/piuparts.1.txt:28: WARNING: Bullet list ends without a blank line; unexpected unindent.
Let's keep it simple instead of trying to add some admonition inside a
bulleted list.
- - - - -
891436bf by Nicolas Dandrimont at 2023-03-15T22:50:26+01:00
piuparts(1): fix a lot of ReStructuredText markup issues
- - - - -
19d05e64 by Evgeni Golov at 2023-04-02T19:09:32+00:00
explicitly state that piuparts needs direct access to docker storage
- - - - -
6182fd58 by Nicolas Dandrimont at 2023-04-02T19:51:41+00:00
Merge branch 'evgeni-develop-patch-18078' into 'develop'
explicitly state that piuparts needs direct access to docker storage
See merge request debian/piuparts!41
- - - - -
57dfbde6 by Nicolas Dandrimont at 2023-06-12T14:49:12+02:00
config: bookworm has been released, trixie is now testing
- - - - -
9e7cc536 by Nicolas Dandrimont at 2023-06-12T19:45:08+02:00
news: Add news for bookworm releasse
- - - - -
01867473 by Nicolas Dandrimont at 2023-10-28T21:53:06+02:00
Default to merged-/usr chroots
This matches the current supported defaults for Debian build
infrastructure (for trixie and up). --no-merged-usr can be set to
override the default.
Closes: #1054898
- - - - -
feb1fdef by Nicolas Dandrimont at 2023-10-28T22:11:31+02:00
p.conf: the merged-/usr file move moratorium has been repealed
- - - - -
ea41a02f by Nicolas Dandrimont at 2023-10-28T22:11:31+02:00
p.conf: add --no-merged-usr to config for archived suites
- - - - -
d46c32b7 by Nicolas Dandrimont at 2023-10-28T22:11:31+02:00
p.conf: don't schedule jobs for the sid-merged-usr suite
- - - - -
f506518b by Nicolas Dandrimont at 2023-10-28T22:11:31+02:00
p.conf: clean up the sid-merged-usr tarball
- - - - -
12575620 by Nicolas Dandrimont at 2023-10-28T22:11:31+02:00
custom-scripts: usrmerge and usr-is-merged should be testable now
- - - - -
219f6a92 by Nicolas Dandrimont at 2023-10-28T23:09:47+02:00
p.conf: Don't reschedule tests for archived suites
- - - - -
786e5cb8 by Nicolas Dandrimont at 2023-10-28T23:10:08+02:00
p.conf: clean up tarball jobs for archived suites
- - - - -
1e2760b3 by Nicolas Dandrimont at 2023-10-28T23:13:43+02:00
p.conf: set max-reserved to 0 for archived suites
This should skip these sections entirely on the slaves
- - - - -
b956c2b7 by Nicolas Dandrimont at 2023-10-28T23:13:52+02:00
news: fix date for bookworm news item
- - - - -
333dce10 by Nicolas Dandrimont at 2023-10-28T23:13:52+02:00
news: add item for merging test chroots
- - - - -
21eab753 by Nicolas Dandrimont at 2023-10-28T23:13:52+02:00
d/source: Update lintian overrides
- - - - -
80314d5a by Nicolas Dandrimont at 2023-10-28T23:13:52+02:00
d/control: Update to dh compat level 13
- - - - -
e84d0e97 by Nicolas Dandrimont at 2023-10-28T23:17:48+02:00
Finalize changelog for piuparts 1.2
- - - - -
841baa67 by Philipp Hahn at 2023-12-06T07:47:26+01:00
fix(docker) getting Container ID
in case the image does not exists locally docker will pull it from any
remote registry, but will include the progress information in the
output:
> Unable to find image 'docker-registry.XXX/YYY:ZZZ' locally
> ZZZ: Pulling from YYY
...
> Digest: sha256:4b9bfe7b0a6c970e3613c04f267ba6319cfceb8cc120b0435d9ee7b8037a1f06
> Status: Downloaded newer image for docker-registry.XXX/YYY:ZZZ
> 8be38c89d12937b98c8be5ab7466dd45b0e4a306862f282b58077ac7193251eb
The old code expected the output to be the container ID, which fails in that case.
- - - - -
ecd2dcae by Philipp Hahn at 2023-12-06T07:47:26+01:00
refactor(docker) Let `docker inspect` return path
Directly use golang templating to only get the MergedDir path instead of
using JSON in Python.
Include path in debug output.
Let logging.debug() handle the variable substitution.
- - - - -
18 changed files:
- conf/distros.conf
- custom-scripts/scripts/is_testable_uninstallable
- custom-scripts/scripts/post_purge_exceptions
- custom-scripts/scripts/pre_install_exceptions
- debian/changelog
- debian/control
- debian/piuparts-master.docs
- debian/piuparts.NEWS
- debian/piuparts.docs
- debian/source/lintian-overrides
- docs/README_pejacevic.txt
- docs/conf.py
- docs/piuparts/piuparts.1.txt
- htdocs/news.tpl
- instances/piuparts.conf-template.pejacevic
- piuparts-slave.py
- piuparts.py
- piupartslib/conf.py
Changes:
=====================================
conf/distros.conf
=====================================
@@ -183,6 +183,35 @@ depends = bullseye bullseye-security bullseye-backports
target-release = bullseye-backports-sloppy
+[bookworm-security]
+uri = http://security.debian.org
+depends = bookworm
+
+[bookworm-updates]
+depends = bookworm
+
+[bookworm-proposed-updates]
+depends = bookworm
+
+[bookworm-debug]
+uri = http://deb.debian.org/debian-debug
+depends = bookworm
+
+# this is a full distro representing an upcoming (old-)stable point release
+[bookworm-next]
+uri = None
+depends = bookworm bookworm-security bookworm-updates bookworm-proposed-updates
+candidates = bookworm bookworm-security bookworm-proposed-updates
+
+[bookworm-backports]
+depends = bookworm bookworm-security
+target-release = bookworm-backports
+
+[bookworm-backports-sloppy]
+depends = bookworm bookworm-security bookworm-backports
+target-release = bookworm-backports-sloppy
+
+
[sid-debug]
uri = http://deb.debian.org/debian-debug
depends = sid
=====================================
custom-scripts/scripts/is_testable_uninstallable
=====================================
@@ -417,7 +417,4 @@ case ${PIUPARTS_OBJECTS%%=*}@${PIUPARTS_DISTRIBUTION} in
sdic-eijiro@*)
skip_always "requires a dictionary CD"
;;
- usrmerge@*)
- skip_always "performs piuparts-unfriendy filesystem layout changes"
- ;;
esac
=====================================
custom-scripts/scripts/post_purge_exceptions
=====================================
@@ -53,13 +53,6 @@ case ${PIUPARTS_OBJECTS%%=*} in
log_debug
sleep 10
;;
- *usr-is-merged*|*usrmerge*)
- # Remove the exception flag that we added in pre_install_exceptions, if we added it
- if [ -f /etc/unsupported-skip-usrmerge-conversion.piuparts ]; then
- log_debug
- rm -f /etc/unsupported-skip-usrmerge-conversion*
- fi
- ;;
esac
if [ -f /var/run/piuparts-stamp-dkms-installed ]; then
=====================================
custom-scripts/scripts/pre_install_exceptions
=====================================
@@ -106,20 +106,6 @@ case ${PIUPARTS_OBJECTS%%=*} in
mkdir -p /var/state/samhain/
touch /var/state/samhain/samhain_file
;;
- *usr-is-merged*|*usrmerge*)
- # usr-is-merged intentionally fails to install unless either the system is merged-usr, or
- # the exception flag is set.
- # usrmerge does a live-upgrade of the chroot, which piuparts does not expect, so skip it.
- # debootstrap will take care of this in a future update, so remember if we were the ones
- # that added the flag file, to remove it in the post_purge_exceptions script.
- # For details on the flag file, see: https://sources.debian.org/src/usrmerge/27/debian/README.Debian/#L66
- # and: https://lists.debian.org/debian-ctte/2022/07/msg00019.html
- if [ ! -f /etc/unsupported-skip-usrmerge-conversion ]; then
- log_debug
- touch /etc/unsupported-skip-usrmerge-conversion.piuparts
- echo "this system will not be supported in the future" > /etc/unsupported-skip-usrmerge-conversion
- fi
- ;;
esac
if [ "$PIUPARTS_DISTRIBUTION" = "jessie" ]; then
=====================================
debian/changelog
=====================================
@@ -1,3 +1,35 @@
+piuparts (1.2) unstable; urgency=medium
+
+ [ David Steele ]
+ * Doc - don't include oldoldstable in global summary
+
+ [ Cyril Brulebois ]
+ * piuparts(1): fix syntax for long options.
+ * piuparts(1): fix syntax for bullet lists.
+
+ [ Nicolas Dandrimont ]
+ * piuparts(1): fix a lot of ReStructuredText markup issues
+ * config: bookworm has been released, trixie is now testing
+ * news: Add news for bookworm release
+ * Default to merged-/usr chroots (Closes: #1054898)
+ * p.conf: the merged-/usr file move moratorium has been repealed
+ * p.conf: add --no-merged-usr to config for archived suites
+ * p.conf: don't schedule jobs for the sid-merged-usr suite
+ * p.conf: clean up the sid-merged-usr tarball
+ * custom-scripts: usrmerge and usr-is-merged should be testable now
+ * p.conf: Don't reschedule tests for archived suites
+ * p.conf: clean up tarball jobs for archived suites
+ * p.conf: set max-reserved to 0 for archived suites
+ * news: fix date for bookworm news item
+ * news: add item for merging test chroots
+ * d/source: Update lintian overrides
+ * d/control: Update to dh compat level 13
+
+ [ Evgeni Golov ]
+ * explicitly state that piuparts needs direct access to docker storage
+
+ -- Nicolas Dandrimont <olasd at debian.org> Sat, 28 Oct 2023 23:17:21 +0200
+
piuparts (1.1.7) unstable; urgency=medium
[ Holger Levsen ]
@@ -11,7 +43,7 @@ piuparts (1.1.7) unstable; urgency=medium
* Add debian/source/lintian-overrides to override a bunch of very-long-line-
length-in-source-file warnings.
* d/piuparts.lintian-overrides: add debian-news-entry-has-unknown-version
- 0.45 due to trimmed d/chanelog in binary packages.
+ 0.45 due to trimmed d/changelog in binary packages.
* Drop unused d./piuparts-(master|slave).lintian-overrides.
[ Nicolas Dandrimont ]
=====================================
debian/control
=====================================
@@ -8,7 +8,7 @@ Priority: optional
Standards-Version: 4.6.2
Rules-Requires-Root: no
Build-Depends:
- debhelper-compat (= 12),
+ debhelper-compat (= 13),
dh-python,
python3-all,
python3-apt,
=====================================
debian/piuparts-master.docs
=====================================
@@ -1,2 +1,2 @@
-docs/README_server.txt
+usr/share/doc/piuparts/README_server.txt
docs/README_pejacevic.txt
=====================================
debian/piuparts.NEWS
=====================================
@@ -1,3 +1,16 @@
+piuparts (1.2) unstable; urgency=medium
+
+ Piuparts 1.2 now defaults to creating and using merged-/usr chroots for all
+ suites, as this has been the default for new installed systems since buster,
+ and is now the mandatory layout in unstable (& trixie), including build
+ chroots.
+
+ The --no-merged-usr flag has been introduced to return to the legacy behavior,
+ which can be useful to test packages for older suites, as well as suitability
+ of packages for use in unmerged build chroots.
+
+ -- Nicolas Dandrimont <olasd at debian.org> Sat, 28 Oct 2023 23:17:21 +0200
+
piuparts (0.45) unstable; urgency=low
For those interested in running their own local instance of
=====================================
debian/piuparts.docs
=====================================
@@ -1,2 +1,2 @@
-docs/README.txt
-debian/tmp/usr/share/doc/piuparts/html/
+usr/share/doc/piuparts/README.txt
+usr/share/doc/piuparts/html/
=====================================
debian/source/lintian-overrides
=====================================
@@ -1,4 +1,2 @@
-very-long-line-length-in-source-file 650 > 512 [htdocs/news.tpl:214]
very-long-line-length-in-source-file 671 > 512 [htdocs/index.tpl:46]
-very-long-line-length-in-source-file 777 > 512 [docs/piuparts/piuparts.1.txt:27]
very-long-line-length-in-source-file 515 > 512 [known_problems/db_setup_issue.conf:4]
=====================================
docs/README_pejacevic.txt
=====================================
@@ -237,6 +237,8 @@ update the summary data appropriately:
- Edit 'piuparts.conf.pejacevic' to set 'json-sections = none' for the sections
that now represent oldstable ('foo', 'bar2foo', 'foo-proposed', etc.).
+- In particular, make sure that oldoldstable releases, and older, are not
+ included in the global report ('distro-info' only goes back to oldstable).
- Update the 'distro-info-data' package, so that 'piuparts-report' can correctly
assign sections to distribution names.
=====================================
docs/conf.py
=====================================
@@ -171,3 +171,5 @@ epub_title = project
# A list of files that should not be packed into the epub file.
epub_exclude_files = ['search.html']
+
+option_emphasise_placeholders = True
=====================================
docs/piuparts/piuparts.1.txt
=====================================
@@ -5,379 +5,444 @@
:doctype: manpage
:revdate: 2023-01-18
-
+.. program:: piuparts
SYNOPSIS
--------
-*piuparts* ['-apvV'] ['-d' _distro_] ['-i' _filename_] ['-I' _regexp_] ['-l' _logfile_] ['-m' _url_] ['--bindmount' _dir_] [_package_]... [_changes_file_]...
+**piuparts** [:option:`-a` :option:`-p` :option:`-v` :option:`-V`] [:option:`-d` *distro*] [:option:`-i` *filename*] [:option:`-I` *regexp*] [:option:`-l` *logfile*] [:option:`-m` *URL*] [:option:`--bindmount` *dir*] [*package* ...] [*changes\_file* ...]
DESCRIPTION
-----------
-*piuparts* tests that Debian packages handle installation, upgrading, and removal correctly. It does this by creating a minimal Debian installation in a chroot, and installing, upgrading, and removing packages in that environment, and comparing the state of the directory tree before and after. *piuparts* reports any files that have been added, removed, or modified during this process.
+:program:`piuparts` tests that Debian packages handle installation, upgrading, and removal correctly. It does this by creating a minimal Debian installation in a chroot, and installing, upgrading, and removing packages in that environment, and comparing the state of the directory tree before and after. :program:`piuparts` reports any files that have been added, removed, or modified during this process.
-*piuparts* is meant as a quality assurance tool for people who create Debian packages to test them before they upload them to the Debian package
+:program:`piuparts` is meant as a quality assurance tool for people who create Debian packages to test them before they upload them to the Debian package
archive.
By default, piuparts can do three different tests:
-. A simple install-purge test within one Debian distribution (chosen with the '-d' option, unstable by default). It sets up the chroot with the desired distribution, then installs and purges the packages, and reports problems.
+* A simple install-purge test within one Debian distribution (chosen with the :option:`-d` option, unstable by default). It sets up the chroot with the desired distribution, then installs and purges the packages, and reports problems.
-. A simple install-upgrade-purge test within one Debian distribution. This test is like the install-purge test, but it installs the packages first via *apt-get* and then from the package files given on the command line. If the command line has package names (option '--apt' used), or no tested package is known to *apt-get* (new packages), this test is skipped, otherwise it is performed automatically.
+* A simple install-upgrade-purge test within one Debian distribution. This test is like the install-purge test, but it installs the packages first via :program:`apt-get` and then upgrades them with the package files given on the command line. If the command line has package names (option :option:`--apt` used), or no tested package is known to :program:`apt-get` (new packages), this test is skipped, otherwise it is performed automatically.
-. An upgrade test between Debian releases. This test is enabled by using the '-d' option multiple times and disables the other two tests. It sets up the chroot with the first distribution named, then upgrades it to each successive one, and then remembers the directory tree state at the end. After this, it starts over with the chroot of the first distribution, installs the desired packages (via *apt-get*), and does the successive upgrading (via *apt-get dist-upgrade*). Then, if package files (and not just package names) were given on the command line, it installs them. Finally, it reports problems against the state of the directory tree at the last distribution compared with the state without the packages having been installed. This test can be quite slow to execute.
-+
-Note that this does not work with experimental, because *apt-get* does not automatically upgrade to packages in experimental. To test a particular package or group of packages in experimental, use the second test.
+* An upgrade test between Debian releases. This test is enabled by using the :option:`-d` option multiple times and disables the other two tests. It sets up the chroot with the first distribution named, then upgrades it to each successive one, and then remembers the directory tree state at the end. After this, it starts over with the chroot of the first distribution, installs the desired packages (via :command:`apt-get install`), and does the successive upgrading (via :command:`apt-get dist-upgrade`). Then, if package files (and not just package names) were given on the command line, it installs them. Finally, it reports problems against the state of the directory tree at the last distribution compared with the state without the packages having been installed. This test can be quite slow to execute. Note that this does not work with experimental, because :program:`apt-get` does not automatically upgrade to packages in experimental. To test a particular package or group of packages in experimental, use the second test.
-Command line arguments are the paths to package files (e.g., *piuparts_1.0-1_all.deb*), paths to changes files (e.g., *piuparts_1.0-1_i386.changes*), or names of packages, if the '--apt' option is given.
+Command line arguments are the paths to package files (e.g., ``piuparts_1.0-1_all.deb``), paths to changes files (e.g., ``piuparts_1.0-1_i386.changes``), or names of packages, if the :option:`--apt` option is given.
-When processing changes files, by default, all packages in a changes file will be processed together with all individual packages given on the command line. Then each package given on the command line is processed in a single group. If the '--single-changes-list' is used, the packages in all changes files are processed together along with any individual packages that were given on the command line. To avoid this behaviour, it is possible to specify '--single-packages'.
+When processing changes files, by default, all packages in a changes file will be processed together with all individual packages given on the command line. Then each package given on the command line is processed in a single group. If :option:`--single-changes-list` is used, the packages in all changes files are processed together along with any individual packages that were given on the command line. To avoid this behaviour, it is possible to specify :option:`--single-packages`.
-*piuparts* outputs to the standard output some log messages to show what is going on. If a log file is used, the messages go there as well.
+:program:`piuparts` outputs to the standard output some log messages to show what is going on. If a log file is used, the messages go there as well.
-*piuparts* needs to be run as root.
+:program:`piuparts` needs to be run as root.
OPTIONS
-------
Options must come before the other command line arguments.
-*-a*, *--apt*::
- The package arguments on the command line are to be treated as package names and installed via *apt-get* instead of being names of package files, to be installed via *dpkg -i*.
+.. option:: -a, --apt
+
+ The package arguments on the command line are to be treated as package names and installed via :command:`apt-get install` instead of being names of package files, to be installed via :command:`dpkg -i`.
+
+.. option:: --allow-database
-*-*-allow-database*::
Allow starting MySQL and PostgreSQL database servers in the chroot for
packages requiring database access in their maintainer scripts.
Do not use this option if there is already a database server running on the
- system running piuparts (or piuparts-slave)!
+ system running :program:`piuparts` (or :program:`piuparts-slave`)!
In master-slave setups with multiple slaves running on one host collisions
- may occur, these will be detected by 'detect_piuparts_issues' and the
+ may occur, these will be detected by :program:`detect_piuparts_issues` and the
affected packages will be tested again.
-*-*-arch*='arch'::
- Create chroot and run tests for (non-default) architecture 'arch'. The default is the output from 'dpkg --print-architecture'.
+.. option:: --arch arch
+
+ Create chroot and run tests for (non-default) architecture *arch*. The default is the output from :command:`dpkg --print-architecture`.
+
+.. option:: -b tarball, --basetgz tarball
-*-b* 'tarball', *-*-basetgz*='tarball'::
- Use tarball as the contents of the initial chroot, instead of building a new one with debootstrap.
+ Use :file:`tarball` as the contents of the initial chroot, instead of building a new one with :program:`debootstrap`.
- The tarball can be created with the '-s' option, or you can use one that *pbuilder* has created (see '-p'). If you create one manually, make sure the root of the chroot is the root of the tarball.
+ The tarball can be created with the :option:`-s` option, or you can use one that :program:`pbuilder` has created (see :option:`-p`). If you create one manually, make sure the root of the chroot is the root of the tarball.
+
+.. option:: --bindmount dir
-*-*-bindmount*='dir'::
Bind-mount a directory inside the chroot.
-*-d* 'name', *-*-distribution*='name'::
- Which Debian distribution to use: a code name (for example bullseye, bookworm or sid) or experimental. The default is sid (=unstable).
+.. option:: -d name, --distribution name
+
+ Which Debian distribution to use: a code name (for example ``bullseye``, ``bookworm`` or ``sid``) or ``experimental``. The default is ``sid`` (= ``unstable``).
+
+.. option:: -D flavor, --defaults flavor
+
+ Use default settings suitable for a particular flavor of Debian: either ``debian`` or ``ubuntu``. The default is ``debian``.
+
+.. option:: --do-not-verify-signatures
-*-D* 'flavor', *-*-defaults*='flavor'::
- Use default settings suitable for a particular flavor of Debian: either debian or ubuntu. The default is debian.
+ Do not verify signatures from the Release files when running debootstrap. Also set ``APT::Get::AllowUnauthenticated`` accordingly in :file:`/etc/apt/apt.conf` in the chroots.
-*-*-do-not-verify-signatures*::
- Do not verify signatures from the Release files when running debootstrap. Also set APT::Get::AllowUnauthenticated accordingly in /etc/apt/apt.conf in the chroots.
+.. option:: --dpkg-force-confdef
-*-*-dpkg-force-confdef*::
- Make dpkg use --force-confdef, which lets dpkg always choose the default action when a modified conffile is found. This option will make piuparts ignore errors it was designed to report and therefore should only be used to hide problems in depending packages. 'This option shall normally not be used.' (See #466118.)
+ Make :program:`dpkg` use ``--force-confdef``, which lets :program:`dpkg` always choose the default action when a modified conffile is found. This option will make :program:`piuparts` ignore errors it was designed to report and therefore should only be used to hide problems in depending packages. *This option shall normally not be used.* (See `#466118 <https://bugs.debian.org/466118>`_.)
-*-*-dpkg-noforce-unsafe-io*::
- Prevent running dpkg with --force-unsafe-io. --force-unsafe-io causes dpkg to skip certain file system syncs known to cause substantial performance degradation on some filesystems. Thus, including this option reverts to safe but slower behavior. The --dpkg-noforce-unsafe-io is required for running tests on distributions older than squeeze.
+.. option:: --dpkg-noforce-unsafe-io
+
+ Prevent running :program:`dpkg` with ``--force-unsafe-io``. ``--force-unsafe-io`` causes :program:`dpkg` to skip certain file system syncs known to cause substantial performance degradation on some filesystems. Thus, including this option reverts to safe but slower behavior. The :option:`--dpkg-noforce-unsafe-io` is required for running tests on distributions older than squeeze.
+
+.. option:: --no-eatmydata
-*-*-no-eatmydata*::
Prevent use of eatmydata. The --no-eatmydata option is required for running tests on squeeze or older distributions.
-*-*-extra-old-packages*='pkg1[,pkg2]...'::
+.. option:: --extra-old-packages pkg1[,pkg2]...
+
Install additional old packages before upgrading. Allows testing package renames/merges where the old package is no longer available in the new distribution and the new one utilizes Conflicts/Replaces. The argument is a comma separated list of package names and the option can be given multiple times.
For install/purge tests these packages will be installed before the package
that is to be tested.
-*-e* 'dirname', *-*-existing-chroot*='dirname'::
+.. option:: -e dirname, --existing-chroot dirname
+
Use the specified directory as source for the new chroot, instead of building
- a new one with debootstrap. This is similar to '--basetgz', but the contents
- are not archived. See also the --hard-link option.
+ a new one with debootstrap. This is similar to :option:`--basetgz`, but the contents
+ are not archived. See also the :option:`--hard-link` option.
+
+.. option:: --distupgrade-to-testdebs
-*-*-distupgrade-to-testdebs*::
Use the "testdebs" repository to override the packages in the distupgrade
target distribution. This allows one to test complex upgrade paths before the
packages enter the archive.
-*-*-extra-repo*='deb-line'::
- Provide an additional (unparsed) line to be appended to sources.list, e.g.::
+.. option:: --extra-repo deb-line
+ Provide an additional (unparsed) line to be appended to :file:`sources.list`, for example::
'deb <URL> <distrib> <components>'
or
'deb file:// </bind/mount> ./'
Useful for e.g. backports, security or local repositories that cannot be
- handled by '--mirror'. May be repeated to add more than one line.
+ handled by :option:`--mirror`. May be repeated to add more than one line.
+
+.. option:: --fake-essential-packages pkg1[,pkg2]...
-*-*-fake-essential-packages*='pkg1[,pkg2]...'::
Install additional packages in the base chroot that are not removed after
the test. These are available during purge and for checking against
mistreatment.
Takes a comma separated list of package names and can be given multiple
times.
-*-*-hard-link*::
- When the --existing-chroot option is used, and the source directory is on the
+.. option:: --hard-link
+
+ When the :option:`--existing-chroot` option is used, and the source directory is on the
same filesystem, hard-link files instead of copying them. This is faster, but
any modifications to files will be reflected in the originals.
-*-i* 'filename', *-*-ignore*='filename'::
+.. option:: -i filename, --ignore filename
+
Add a filename to the list of filenames to be ignored when comparing changes
- before and after installation. By default, piuparts ignores files that always
- change during a package installation and uninstallation, such as *dpkg*
+ before and after installation. By default, :program:`piuparts` ignores files that always
+ change during a package installation and uninstallation, such as :program:`dpkg`
status files. The filename should be relative to the root of the chroot
- (e.g., *var/lib/dpkg/status*).
- Filenames prefixed with a ':' will be logged verbosely if found.
+ (e.g., :file:`var/lib/dpkg/status`).
+ Filenames prefixed with a ``:`` will be logged verbosely if found.
This option can be used as many times as necessary.
-*-I* 'regexp', *-*-ignore-regexp*='regexp'::
+.. option:: -I regexp, --ignore-regexp regexp
+
Add a regular expression pattern to the list of patterns for filenames to be
ignored when comparing changes before and after installation.
- Patterns prefixed with a ':' will log verbosely all matching files.
+ Patterns prefixed with a ``:`` will log verbosely all matching files.
This option can be used as many times as necessary.
-*-*-install-purge-install*::
+.. option:: --install-purge-install
+
Purge package after installation and reinstall. All dependencies are available during purge.
-*-*-install-recommends*::
+.. option:: --install-recommends
+
Enable installation of Recommends.
-*-*-install-suggests*::
+.. option:: --install-suggests
+
Enable installation of Suggests.
-*-*-install-remove-install*::
+.. option:: --install-remove-install
+
Remove package after installation and reinstall. For testing installation in config-files-remaining state.
-*-k*, *-*-keep-env*::
- Depending on which option is passed, keep the environment used for testing after the program ends::
+.. option:: -k, --keep-env
+
+ Depending on which option is passed, keep the environment used for testing after the program ends
+
* By default it doesn't remove the temporary directory for the chroot,
- * or if --schroot is used, the schroot session is not terminated,
- * or if --docker-image is used, the container created is not destroyed.
+ * or if :option:`--schroot` is used, the schroot session is not terminated,
+ * or if :option:`--docker-image` is used, the container created is not destroyed.
+
+.. option:: -K filename, --keyring filename
+
+ Use :file:`filename` as the keyring to use with debootstrap when creating chroots.
+
+.. option:: --keep-sources-list
-*-K*, *-*-keyring*='filename'::
- Use FILE as the keyring to use with debootstrap when creating chroots.
+ Don't modify the chroot's :file:`/etc/apt/sources.list`.
-*-*-keep-sources-list*::
- Don't modify the chroot's etc/apt/sources.list.
+.. option:: --list-installed-files
-*-*-list-installed-files*::
List the files added to the chroot after the installation of the package and after the installation of the package dependencies.
-*-*-lvm-volume*='lvm-volume'::
- Use the specified lvm-volume as source for the chroot, instead of building a
+.. option:: --lvm-volume lvm-volume
+
+ Use the specified *lvm-volume* as source for the chroot, instead of building a
new one with debootstrap. This creates a snapshot of the given LVM volume and
mounts it to the chroot path.
-*-*-lvm-snapshot-size*='snapshot-size'::
- Use the specified snapshot-size as snapshot size when creating a new LVM
+.. option:: --lvm-snapshot-size snapshot-size
+
+ Use the specified *snapshot-size* as snapshot size when creating a new LVM
snapshot (default: 1G)
-*-l* 'filename', *-*-log-file*='filename'::
- Append log file to _filename_ in addition to the standard output.
+.. option:: -l filename, --log-file filename
+
+ Append log file to :file:`filename` in addition to the standard output.
+
+.. option:: --log-level level
+
+ Display messages from loglevel *level*, possible values are: *error*, *info*, *dump*, *debug*. The default is *dump*.
-*-*-log-level*='level'::
- Display messages from loglevel LEVEL, possible values are: error, info, dump, debug. The default is dump.
+.. option:: --max-command-output-size size
-*-*-max-command-output-size*='size'::
- Set the maximum permitted command output to _size_ (in MB) for debugging
+ 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
+.. option:: --merged-usr
+
+ When using debootstrap to create the chroot, use the ``--merged-usr`` option
+ to create a chroot with :file:`/bin`, :file:`/lib`, :file:`/sbin` being symlinks to their :file:`/usr`
counterparts.
-*-m* 'url', *-*-mirror*='url'::
- Which Debian mirror to use. The default is the first mirror named in */etc/apt/sources.list* or *http://deb.debian.org/debian* if none is found. This option may be used multiple times to use multiple mirrors. Only the first mirror is used with *debootstrap*.
+.. option:: --no-merged-usr
+
+ When using debootstrap to create the chroot, use the ``--no-merged-usr`` option.
+
+.. option:: -m URL, --mirror URL
+
+ Which Debian mirror to use. The default is the first mirror named in :file:`/etc/apt/sources.list` or ``http://deb.debian.org/debian`` if none is found. This option may be used multiple times to use multiple mirrors. Only the first mirror is used with :program:`debootstrap`.
- The 'components' that are used for a mirror can also be set with this option: a space separated list within the same argument (so you need to quote the entire argument in the shell). If no components are given explicitly, the usual Debian components are used (main, contrib, non-free and non-free-firmware). For the mirrors read from */etc/apt/sources.list*, the components are read from the same place.
+ The 'components' that are used for a mirror can also be set with this option: a space separated list within the same argument (so you need to quote the entire argument in the shell). If no components are given explicitly, the usual Debian components are used (*main*, *contrib*, *non-free* and *non-free-firmware*). For the mirrors read from :file:`/etc/apt/sources.list`, the components are read from the same place.
- Note that file: addresses works if the directories are made accessible from within the chroot with '--bindmount'.
+ Note that ``file:`` addresses work if the directories are made accessible from within the chroot with :option:`--bindmount`.
-*-*-no-adequate*::
- Don't run adequate after installation. The default is to run adequate, provided it is installed.
+.. option:: --no-adequate
-*-*-no-check-valid-until*::
- Set apt option Acquire::Check-Valid-Until=false in the chroot to ignore the
+ Don't run :program:`adequate` after installation. The default is to run :program:`adequate`, provided it is installed.
+
+.. option:: --no-check-valid-until
+
+ Set :program:`apt` option ``Acquire::Check-Valid-Until=false`` in the chroot to ignore the
expiration of Release files. This is needed for testing archived releases.
-*-*-no-diversions*::
+.. option:: --no-diversions
+
Don't check for broken diversions.
-*-n*, *-*-no-ignores*::
- Forget all built-in and other ignores that have been set so far. Any '-i' or '-I' arguments that come after this one will be obeyed, but none of the ones that come before.
+.. option:: -n, --no-ignores
+
+ Forget all built-in and other ignores that have been set so far. Any :option:`-i` or :option:`-I` arguments that come after this one will be obeyed, but none of the ones that come before.
+
+.. option:: -N, --no-symlinks
-*-N*, *-*-no-symlinks*::
Don't check for broken symlinks.
-*-*-fail-if-inadequate*::
- Fail on inadequate results from running adequate. The default is to just issue those errors as warnings.
+.. option:: --fail-if-inadequate
+
+ Fail on inadequate results from running :program:`adequate`. The default is to just issue those errors as warnings.
+
+.. option:: --fail-on-broken-symlinks
-*-*-fail-on-broken-symlinks*::
Fail on broken symlinks. The default is to just issue those errors as warnings.
-*-*-no-upgrade-test*::
+.. option:: --no-upgrade-test
+
Skip testing upgrade from an existing version in the archive.
-*-*-no-install-purge-test*::
+.. option:: --no-install-purge-test
+
Skip the install and purge test.
-*-p, *-*-pbuilder*::
- Use */var/cache/pbuilder/base.tgz* as the base tarball. This is a shorthand so that you don't need to use '-b' for it.
+.. option:: -p, --pbuilder
-*-*-pedantic-purge-test*::
- Be pedantic when checking if a purged package leaves files behind. If this option is not set, files left in */tmp* are ignored.")
+ Use :file:`/var/cache/pbuilder/base.tgz` as the base tarball. This is a shorthand so that you don't need to use :option:`-b` for it.
-*-*-proxy*='URL'::
- Use the proxy at URL to access the Debian mirror(s). Takes precedence over
- the 'http_proxy' environment variable. Using a local proxy is recommended
- because piuparts may use large amounts of bandwidth to repeatedly download
+.. option:: --pedantic-purge-test
+
+ Be pedantic when checking if a purged package leaves files behind. If this option is not set, files left in :file:`/tmp` are ignored.
+
+.. option:: --proxy URL
+
+ Use the proxy at *URL* to access the Debian mirror(s). Takes precedence over
+ the :envvar:`http_proxy` environment variable. Using a local proxy is recommended
+ because :program:`piuparts` may use large amounts of bandwidth to repeatedly download
the same files.
-*-s* 'filename', *-*-save*='filename'::
- Save the chroot, after it has been set up, as a tarball into *filename*. It can then be used with '-b'.
+.. option:: -s filename, --save filename
+
+ Save the chroot, after it has been set up, as a tarball into :file:`filename`. It can then be used with :option:`-b`.
+
+.. option:: -B filename, --end-meta filename
+
+ Load chroot package selection and file meta data from :file:`filename`. See the function :func:`install_and_upgrade_between_distros` in :file:`piuparts.py` for defaults. Mostly useful for large scale distro upgrade tests.
+
+.. option:: -S filename, --save-end-meta filename
+
+ Save chroot package selection and file meta data in :file:`filename` for later use. See the function :func:`install_and_upgrade_between_distros` in :file:`piuparts.py` for defaults. Mostly useful for large scale distro upgrade tests.
+
+.. option:: --scriptsdir directory
-*-B* 'FILE', *-*-end-meta*='FILE'::
- Load chroot package selection and file meta data from FILE. See the function install_and_upgrade_between_distros() in piuparts.py for defaults. Mostly useful for large scale distro upgrade tests.
+ Directory where are custom scripts are placed. By default, this is not set. For more information about this, read :file:`README_server.txt`
-*-S* 'FILE', *-*-save-end-meta*='FILE'::
- Save chroot package selection and file meta data in FILE for later use. See the function install_and_upgrade_between_distros() in piuparts.py for defaults. Mostly useful for large scale distro upgrade tests.
+.. option:: --schroot SCHROOT-NAME
-*-*-scriptsdir*='DIR'::
- Directory where are custom scripts are placed. By default, this is not set. For more information about this, read README_server.txt
+ Use schroot session named *SCHROOT-NAME* for the testing environment, instead of building a new one with :program:`debootstrap`.
-*-*-schroot*='SCHROOT-NAME'::
- Use schroot session named SCHROOT-NAME for the testing environment, instead of building a new one with debootstrap.
+.. option:: --docker-image DOCKER-IMAGE
-*-*-docker-image*='DOCKER-IMAGE'::
- Use a container created from the docker image DOCKER-IMAGE for the testing environment, instead of building a new one with debootstrap.
- This only supports overlay2 for now and it uses the `MergedDir` layer where piuparts can access, add, edit and remove files easily.
+ Use a container created from the docker image *DOCKER-IMAGE* for the testing environment, instead of building a new one with :program:`debootstrap`.
+ This only supports ``overlay2`` for now and it uses the ``MergedDir`` layer where :program:`piuparts` can access, add, edit and remove files easily by directly accessing the directory.
-*-*-single-changes-list*::
- When processing changes files, piuparts will process the packages in each individual changes file separately. This option will set piuparts to scan the packages of all changes files together along with any individual package files that may have been given on the command line.
+.. option:: --single-changes-list
-*-*-single-packages*::
- Process every package file or package name individually, thus piuparts process runs multiple times. This option can be useful with conflicting packages.
+ When processing changes files, :program:`piuparts` will process the packages in each individual changes file separately. This option will set :program:`piuparts` to scan the packages of all changes files together along with any individual package files that may have been given on the command line.
+
+.. option:: --single-packages
+
+ Process every package file or package name individually, thus :program:`piuparts` process runs multiple times. This option can be useful with conflicting packages.
+
+.. option:: --shell-on-error
-*-*-shell-on-error*::
Start an interactive shell in the chroot after an error occurred.
- This should help debugging failures directly inside the piuparts test environment.
+ This should help debugging failures directly inside the :program:`piuparts` test environment.
The chroot cleanup will continue after the shell terminates.
- Note: This does not work if the piuparts command is prefixed with 'timeout',
+ Note: This does not work if the :program:`piuparts` command is prefixed with 'timeout',
which is usually the case in command lines directly copied from logfiles
from a master-slave setup. Removing the 'timeout' part is sufficient.
-*-*-skip-minimize*::
- Allow skip minimize chroot step. This is useful when you want to test several packages with piuparts. You can prepare a tarball already minimized and skip this step in all the tests. This is the default now.
+.. option:: --skip-minimize
+
+ Allow skip minimize chroot step. This is useful when you want to test several packages with :program:`piuparts`. You can prepare a tarball already minimized and skip this step in all the tests. This is the default now.
+
+.. option:: --minimize
-*-*-minimize*::
- Minimize the chroot with debfoster. This used to be the default until #539142 was fixed.
+ Minimize the chroot with debfoster. This used to be the default until `#539142 <https://bugs.debian.org/539142>`_ was fixed.
+
+.. option:: --skip-cronfiles-test
-*-*-skip-cronfiles-test*::
Skip testing the output from the cron files left in the system after remove a package.
-*-*-skip-logrotatefiles-test*::
+.. option:: --skip-logrotatefiles-test
+
Skip testing the output from the logrotate files left in the system after remove a package.
-*-*-testdebs-repo*='deb-line'::
- Provide an additional line to be appended to sources.list, e.g.::
+.. option:: --testdebs-repo deb-line
+
+ Provide an additional line to be appended to sources.list, for example::
'deb [ trusted=yes ] <URL> <distrib> <components>'
or
'deb [ trusted=yes ] file:// </bind/mount> ./'
- If only an URL or local path is given as argument, "deb [ trusted=yes ]",
- "file://", and "./" will be prepended/appended as needed.
+ If only an URL or local path is given as argument, ``deb [ trusted=yes ]``,
+ ``file://``, and ``./`` will be prepended/appended as needed.
The "testdebs" repository provides the packages to be tested (and some
additional dependencies, if needed, e.g. all packages built from the same
source package as the (binary) package being tested) and can be used for
testing complex installation and upgrade scenarios involving dependencies
that are not yet in the archive. This repository will be available only
for installing the target packages. Dependency resolution will be done by
- apt-get. The packages to be tested can be passed as .debs or as package
- names (with '--apt').
+ :program:`apt-get`. The packages to be tested can be passed as ``.deb``\ s or as package
+ names (with :option:`--apt`).
- The "trusted=yes" option causes this (and only this) repository to be
+ The ``trusted=yes`` option causes this (and only this) repository to be
trustworthy even if the Packages file is not signed, such that a
- (globally acting) '--do-not-verify-signatures' will not be needed.
+ (globally acting) :option:`--do-not-verify-signatures` will not be needed.
+
+.. option:: -t directory, --tmpdir directory
-*-t directory*, *-*-tmpdir*='directory'::
- Use directory as the place where temporary files and directories are created. The default is the environment variable *TMPDIR*, or */tmp* if not set.
- Note: the temporary directory must *not* be mounted with the _nodev_ or _nosuid_ mount option.
+ Use *directory* as the place where temporary files and directories are created. The default is the environment variable :envvar:`TMPDIR`, or :file:`/tmp` if not set.
+ Note: the temporary directory must *not* be mounted with the *nodev* or *nosuid* mount option.
-*-*-update-retries*='num-retries'::
- Rerun 'apt-get update` up to "num-retries" times.
+.. option:: --update-retries num-retries
+
+ Rerun :command:`apt-get update` up to *num-retries* times.
Useful to work around temporary network failures and hashsum mismatch errors.
-*-*-upgrade-before-dist-upgrade*::
- Perform two-stage upgrades: 'apt-get upgrade && apt-get dist-upgrade'.
+.. option:: --upgrade-before-dist-upgrade
+
+ Perform two-stage upgrades: :command:`apt-get upgrade && apt-get dist-upgrade`.
+
+.. option:: -v, --verbose
-*-v*, *-*-verbose*::
This option no longer has any meaning, but it is still accepted for backwards compatibility.
-*-V*, *-*-version*::
+.. option:: -V, --version
+
Write out the version number of the program.
-*-*-warn-on-debsums-errors*::
+.. option:: --warn-on-debsums-errors
+
Print a warning rather than failing if debsums reports modified files.
-*-*-warn-on-leftovers-after-purge*::
+.. option:: --warn-on-leftovers-after-purge
+
Print a warning rather than failing if files are left behind after purge.
-*-*-warn-on-others*::
+.. option:: --warn-on-others
+
Print a warning rather than failing if files are left behind, modified, or removed by a package that was not given on the command-line.
This way, you can basically isolate the purge test to your own packages. If a package that is brought in as a dependency doesn't purge cleanly, the test will not fail because of it (but a warning message will be printed).
Behavior with multiple packages given on the command-line could be problematic, particularly if the dependency tree of one package in the list includes another in the list. Therefore, it is recommended to use this option with one package at a time.
-*-*-warn-on-usr-move*='disabled|warn|fail'::
- Whether to enable the test (with a warning or a failure) that checks if files are moved between /{bin|sbin|lib*} and /usr/{bin|sbin|lib*}.
- Accepted values: 'disabled' (default), 'warn', 'fail'.
+.. option:: --warn-on-usr-move disabled|warn|fail
+
+ Whether to enable the test (with a warning or a failure) that checks if files are moved between :file:`/\{bin|sbin|lib*\}` and :file:`/usr/\{bin|sbin|lib*\}`.
+ Accepted values: *disabled* (default), *warn*, *fail*.
EXAMPLES
--------
-Assume that you have just built a new version of your Debian package, to be uploaded to Debian unstable. It is in *../foo_1.0-2_i386.deb* and you would like to know whether it installs and uninstalls properly. Here's what you would do::
+Assume that you have just built a new version of your Debian package, to be uploaded to Debian unstable. It is in ``../foo_1.0-2_i386.deb`` and you would like to know whether it installs and uninstalls properly. Here's what you would do::
- ----
- piuparts ../foo_1.0-2_i386.deb
- ----
+ piuparts ../foo_1.0-2_i386.deb
If the package exists in the Debian archive already, the above command also tests that it upgrades properly.
To do the same test, but using a particular mirror, and only the main component, you would do this::
- ----
- piuparts -m 'http://gytha/debian main' ../foo_1.0-2_i386.deb
- ----
+ piuparts -m 'http://gytha/debian main' ../foo_1.0-2_i386.deb
-If you want to do the same as above but for your changes files, pass in your changes files when running piuparts, and piuparts will process each package in the changes files as though you had passed all those packages on the command line to piuparts yourself. For example::
+If you want to do the same as above but for your changes files, pass in your changes files when running :program:`piuparts`, and :program:`piuparts` will process each package in the changes files as though you had passed all those packages on the command line to :program:`piuparts` yourself. For example::
- ----
- piuparts ../foo_1.0-2_i386.changes
+ piuparts ../foo_1.0-2_i386.changes
- piuparts -m 'http://gytha/debian main' ../foo_1.0-2_i386.changes
- ----
+ piuparts -m 'http://gytha/debian main' ../foo_1.0-2_i386.changes
If you want to test that a package installs properly in the stable (currently bullseye) Debian release, then can be upgraded to the testing (currently bookworm) and unstable (sid) versions, and then uninstalled without problems, you would give the following command::
- ----
- piuparts -a -d bullseye -d bookworm -d sid foo
- ----
+ piuparts -a -d bullseye -d bookworm -d sid foo
ENVIRONMENT
-----------
-*TMPDIR* Location for temporary files and directories. If not set, use */tmp*. See also the '-t' ('--tmpdir') option.
+.. envvar:: TMPDIR
+
+ Location for temporary files and directories. If not set, use :file:`/tmp`. See also the :option:`--tmpdir` option.
NOTES
-----
-Output of commands run by piuparts is limited to three megabytes. To change this limit, the source code needs to be edited.
+Output of commands run by :program:`piuparts` is limited to three megabytes. To change this limit, the source code needs to be edited.
Commands exceeding this limit will be aborted.
SEE ALSO
--------
-*pbuilder* (1), *debootstrap* (8)
+:manpage:`pbuilder(1)`, :manpage:`debootstrap(8)`
AUTHOR
------
=====================================
htdocs/news.tpl
=====================================
@@ -4,6 +4,18 @@
News
</td>
</tr>
+ <tr class="normalrow">
+ <td class="contentcell2">
+ <b>2023-10-28</b>
+ All chroots used to run tests on piuparts.debian.org now use a merged-/usr layout. See <a href="https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1054898#10">the discussion in bug #1054898</a> for the rationale. The sid-merged-usr suite has been retired.
+ </td>
+ </tr>
+ <tr class="normalrow">
+ <td class="contentcell2">
+ <b>2023-06-12</b>
+ Update the list of suites for the new (old)stable and testing, after the release of bookworm on June 10th.
+ </td>
+ </tr>
<tr class="normalrow">
<td class="contentcell2">
<b>2021-08-16</b>
=====================================
instances/piuparts.conf-template.pejacevic
=====================================
@@ -31,17 +31,26 @@ flags-leftovers =
--scriptsdir /etc/piuparts/scripts-leftovers
# aliases for the definitions below
-flags-start-testing = %(flags-start-bookworm)s
-flags-end-testing = %(flags-end-bookworm)s
-flags-start-stable = %(flags-start-bullseye)s
-flags-end-stable = %(flags-end-bullseye)s
-flags-start-oldstable = %(flags-start-buster)s
-flags-end-oldstable = %(flags-end-buster)s
+flags-start-testing = %(flags-start-trixie)s
+flags-end-testing = %(flags-end-trixie)s
+flags-start-stable = %(flags-start-bookworm)s
+flags-end-stable = %(flags-end-bookworm)s
+flags-start-oldstable = %(flags-start-bullseye)s
+flags-end-oldstable = %(flags-end-bullseye)s
+flags-start-oldoldstable = %(flags-start-buster)s
+flags-end-oldoldstable = %(flags-end-buster)s
+
+# common flags for tests starting in trixie
+flags-start-trixie =
+# no flags needed
+
+# common flags for tests ending in trixie
+flags-end-trixie =
+# no flags needed
# common flags for tests starting in bookworm
flags-start-bookworm =
-# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=994388#80
- --warn-on-usr-move fail
+# no flags needed
# common flags for tests ending in bookworm
flags-end-bookworm =
@@ -69,7 +78,8 @@ flags-end-buster =
# common flags for tests starting in stretch
flags-start-stretch =
-# no flags needed
+# stretch needs non-/usr-merged systems
+ --no-merged-usr
# common flags for tests ending in stretch
flags-end-stretch =
@@ -81,7 +91,8 @@ flags-end-stretch =
# common flags for tests starting in jessie
flags-start-jessie =
-# no flags needed
+# jessie needs non-/usr-merged systems
+ --no-merged-usr
# common flags for tests ending in jessie
flags-end-jessie =
@@ -97,7 +108,8 @@ flags-end-jessie =
# common flags for tests starting in wheezy
flags-start-wheezy =
-# no flags needed
+# wheezy needs non-/usr-merged systems
+ --no-merged-usr
# common flags for tests ending in wheezy
flags-end-wheezy =
@@ -112,6 +124,8 @@ flags-end-wheezy =
# common flags for tests starting in squeeze
flags-start-squeeze =
+# squeeze needs non-/usr-merged systems
+ --no-merged-usr
# up to squeeze a non-empty /etc/shells was shipped, actually installing
# and removing a shell would remove its entry from /etc/shells
-i /etc/shells
@@ -128,6 +142,8 @@ flags-end-squeeze =
# common flags for tests starting in lenny
flags-start-lenny =
+# lenny needs non-/usr-merged systems
+ --no-merged-usr
# dpkg --force-unsafe-io was added in squeeze
--dpkg-noforce-unsafe-io
# up to squeeze a non-empty /etc/shells was shipped, actually installing
@@ -176,15 +192,10 @@ flags-broken-symlinks =
[global]
basetgz-sections =
tarball/sid
- tarball/sid-merged-usr
+ tarball/trixie
tarball/bookworm
tarball/bullseye
tarball/buster
- tarball/stretch
- tarball/jessie
- tarball/wheezy
- tarball/squeeze
- tarball/lenny
sections =
experimental
sid2experimental
@@ -194,6 +205,8 @@ sections =
sid-merged-usr
sid-broken-symlinks
testing2sid
+ trixie
+ trixie-rcmd
bookworm
bookworm-rcmd
bullseye
@@ -251,7 +264,7 @@ sections =
squeeze2squeeze-lts
squeeze
lenny2squeeze
-testing-suite = bookworm
+testing-suite = trixie
mirror = @MIRROR@
master-host = pejacevic.debian.org
master-user = piupartsm
@@ -301,13 +314,14 @@ upgrade-test-distros = sid
max-tgz-age = 259200
-[tarball/sid-merged-usr]
+[tarball/trixie]
piuparts-flags =
- %(flags-merged-usr)s
+ %(flags-default)s
+ %(flags-start-trixie)s
distro = None
-upgrade-test-distros = sid
-# 3 days (60*60*24*3)
-max-tgz-age = 259200
+upgrade-test-distros = trixie
+# 1 week (60*60*24*7)
+max-tgz-age = 604800
[tarball/bookworm]
@@ -316,8 +330,8 @@ piuparts-flags =
%(flags-start-bookworm)s
distro = None
upgrade-test-distros = bookworm
-# 1 week (60*60*24*7)
-max-tgz-age = 604800
+# 1 month (60*60*24*30)
+max-tgz-age = 2592000
[tarball/bullseye]
@@ -340,55 +354,6 @@ upgrade-test-distros = buster
max-tgz-age = 2592000
-[tarball/stretch]
-piuparts-flags =
- %(flags-default)s
- %(flags-start-stretch)s
-distro = None
-upgrade-test-distros = stretch
-# 1 month (60*60*24*30)
-max-tgz-age = 2592000
-
-
-[tarball/jessie]
-piuparts-flags =
- %(flags-default)s
- %(flags-start-jessie)s
-distro = None
-upgrade-test-distros = jessie
-# 1 month (60*60*24*30)
-max-tgz-age = 2592000
-
-
-[tarball/wheezy]
-piuparts-flags =
- %(flags-default)s
- %(flags-start-wheezy)s
-distro = None
-upgrade-test-distros = wheezy
-max-tgz-age = 0
-
-
-[tarball/squeeze]
-piuparts-flags =
- %(flags-default)s
- %(flags-start-squeeze)s
- --keyring /usr/share/keyrings/debian-archive-removed-keys.gpg
-distro = None
-upgrade-test-distros = squeeze
-max-tgz-age = 0
-
-
-[tarball/lenny]
-piuparts-flags =
- %(flags-default)s
- %(flags-start-lenny)s
- --keyring /usr/share/keyrings/debian-archive-removed-keys.gpg
-distro = None
-upgrade-test-distros = lenny
-max-tgz-age = 0
-
-
[experimental]
precedence = 3
piuparts-flags =
@@ -446,6 +411,9 @@ json-sections = none
piuparts-flags =
%(flags-merged-usr)s
distro = sid
+reschedule-old-count = 0
+reschedule-fail-count = 0
+max-reserved = 0
[sid-broken-symlinks]
@@ -506,8 +474,29 @@ piuparts-flags =
distro = oldstable
upgrade-test-distros = oldstable stable testing
-[bookworm]
+[trixie]
precedence = 3
+piuparts-flags =
+ --scriptsdir /etc/piuparts/scripts-log-alternatives
+ %(flags-default)s
+ %(flags-start-trixie)s
+ %(flags-end-trixie)s
+distro = trixie
+
+
+[trixie-rcmd]
+precedence = 5
+json-sections = none
+description = + With recommended packages.
+piuparts-flags =
+ --install-recommends
+ %(flags-default)s
+ %(flags-start-trixie)s
+ %(flags-end-trixie)s
+distro = trixie
+
+[bookworm]
+precedence = 4
piuparts-flags =
--scriptsdir /etc/piuparts/scripts-log-alternatives
%(flags-default)s
@@ -517,7 +506,7 @@ distro = bookworm
[bookworm-rcmd]
-precedence = 5
+precedence = 6
json-sections = none
description = + With recommended packages.
piuparts-flags =
@@ -528,9 +517,52 @@ piuparts-flags =
distro = bookworm
+[bookworm-security]
+precedence = 2
+json-sections = none
+piuparts-flags =
+ %(flags-default)s
+ %(flags-start-bookworm)s
+ %(flags-end-bookworm)s
+depends-sections = bookworm
+distro = bookworm-security
+
+
+[bookworm-pu]
+precedence = 3
+json-sections = none
+piuparts-flags =
+ %(flags-default)s
+ %(flags-start-bookworm)s
+ %(flags-end-bookworm)s
+depends-sections = bookworm
+distro = bookworm-proposed-updates
+
+
+[bookworm-next]
+precedence = 3
+json-sections = none
+piuparts-flags =
+ %(flags-default)s
+ %(flags-start-bookworm)s
+ %(flags-end-bookworm)s
+distro = bookworm-next
+
+
+[bookworm2next]
+precedence = 3
+json-sections = none
+piuparts-flags =
+ %(flags-default)s
+ %(flags-start-bookworm)s
+ %(flags-end-bookworm)s
+distro = bookworm
+upgrade-test-distros = bookworm bookworm-next
+
+
[bullseye]
-precedence = 4
+precedence = 5
piuparts-flags =
--scriptsdir /etc/piuparts/scripts-log-alternatives
%(flags-default)s
@@ -540,7 +572,7 @@ distro = bullseye
[bullseye-rcmd]
-precedence = 6
+precedence = 7
json-sections = none
description = + With recommended packages.
piuparts-flags =
@@ -552,7 +584,7 @@ distro = bullseye
[bullseye-security]
-precedence = 2
+precedence = 3
json-sections = none
piuparts-flags =
%(flags-default)s
@@ -563,7 +595,7 @@ distro = bullseye-security
[bullseye-pu]
-precedence = 3
+precedence = 4
json-sections = none
piuparts-flags =
%(flags-default)s
@@ -574,7 +606,7 @@ distro = bullseye-proposed-updates
[bullseye-next]
-precedence = 3
+precedence = 4
json-sections = none
piuparts-flags =
%(flags-default)s
@@ -584,7 +616,7 @@ distro = bullseye-next
[bullseye2next]
-precedence = 3
+precedence = 4
json-sections = none
piuparts-flags =
%(flags-default)s
@@ -638,6 +670,9 @@ piuparts-flags =
%(flags-end-buster)s
depends-sections = buster
distro = buster-proposed-updates
+reschedule-old-count = 0
+reschedule-fail-count = 0
+max-reserved = 0
[buster-next]
@@ -648,6 +683,9 @@ piuparts-flags =
%(flags-start-buster)s
%(flags-end-buster)s
distro = buster-next
+reschedule-old-count = 0
+reschedule-fail-count = 0
+max-reserved = 0
[buster2next]
@@ -659,6 +697,9 @@ piuparts-flags =
%(flags-end-buster)s
distro = buster
upgrade-test-distros = buster buster-next
+reschedule-old-count = 0
+reschedule-fail-count = 0
+max-reserved = 0
[stretch2buster]
@@ -670,6 +711,9 @@ piuparts-flags =
%(flags-end-buster)s
distro = stretch
upgrade-test-distros = stretch buster
+reschedule-old-count = 0
+reschedule-fail-count = 0
+max-reserved = 0
[stretch2Xbuster]
@@ -684,6 +728,9 @@ piuparts-flags =
distro = stretch
upgrade-test-distros = stretch buster
exclude-known-problems = packages_have_been_kept_back_error.conf packages_have_been_kept_back_issue.conf
+reschedule-old-count = 0
+reschedule-fail-count = 0
+max-reserved = 0
[stretch2buster-rcmd]
@@ -697,6 +744,9 @@ piuparts-flags =
%(flags-end-buster)s
distro = stretch
upgrade-test-distros = stretch buster
+reschedule-old-count = 0
+reschedule-fail-count = 0
+max-reserved = 0
[stretch2Xbuster-rcmd]
@@ -712,6 +762,9 @@ piuparts-flags =
distro = stretch
upgrade-test-distros = stretch buster
exclude-known-problems = packages_have_been_kept_back_error.conf packages_have_been_kept_back_issue.conf
+reschedule-old-count = 0
+reschedule-fail-count = 0
+max-reserved = 0
[stretch2bpo2buster]
@@ -724,6 +777,9 @@ piuparts-flags =
depends-sections = stretch
distro = stretch-backports
upgrade-test-distros = stretch stretch-backports buster
+reschedule-old-count = 0
+reschedule-fail-count = 0
+max-reserved = 0
[stretch2bpo]
@@ -736,6 +792,9 @@ piuparts-flags =
depends-sections = stretch
distro = stretch-backports
upgrade-test-distros = stretch stretch-backports
+reschedule-old-count = 0
+reschedule-fail-count = 0
+max-reserved = 0
[stretch]
@@ -747,6 +806,9 @@ piuparts-flags =
%(flags-start-stretch)s
%(flags-end-stretch)s
distro = stretch
+reschedule-old-count = 0
+reschedule-fail-count = 0
+max-reserved = 0
[stretch-rcmd]
@@ -759,6 +821,9 @@ piuparts-flags =
%(flags-start-stretch)s
%(flags-end-stretch)s
distro = stretch
+reschedule-old-count = 0
+reschedule-fail-count = 0
+max-reserved = 0
[stretch-security]
@@ -770,6 +835,9 @@ piuparts-flags =
%(flags-end-stretch)s
depends-sections = stretch
distro = stretch/updates
+reschedule-old-count = 0
+reschedule-fail-count = 0
+max-reserved = 0
[stretch-pu]
@@ -781,6 +849,9 @@ piuparts-flags =
%(flags-end-stretch)s
depends-sections = stretch
distro = stretch-proposed-updates
+reschedule-old-count = 0
+reschedule-fail-count = 0
+max-reserved = 0
[stretch-next]
@@ -791,6 +862,9 @@ piuparts-flags =
%(flags-start-stretch)s
%(flags-end-stretch)s
distro = stretch-lts
+reschedule-old-count = 0
+reschedule-fail-count = 0
+max-reserved = 0
[stretch2next]
@@ -802,6 +876,9 @@ piuparts-flags =
%(flags-end-stretch)s
distro = stretch
upgrade-test-distros = stretch stretch-lts
+reschedule-old-count = 0
+reschedule-fail-count = 0
+max-reserved = 0
[jessie2stretch]
@@ -813,6 +890,9 @@ piuparts-flags =
%(flags-end-stretch)s
distro = jessie
upgrade-test-distros = jessie stretch
+reschedule-old-count = 0
+reschedule-fail-count = 0
+max-reserved = 0
[jessie2Xstretch]
@@ -827,6 +907,9 @@ piuparts-flags =
distro = jessie
upgrade-test-distros = jessie stretch
exclude-known-problems = packages_have_been_kept_back_error.conf packages_have_been_kept_back_issue.conf
+reschedule-old-count = 0
+reschedule-fail-count = 0
+max-reserved = 0
[jessie2stretch-rcmd]
@@ -840,6 +923,9 @@ piuparts-flags =
%(flags-end-stretch)s
distro = jessie
upgrade-test-distros = jessie stretch
+reschedule-old-count = 0
+reschedule-fail-count = 0
+max-reserved = 0
[jessie2Xstretch-rcmd]
@@ -855,6 +941,9 @@ piuparts-flags =
distro = jessie
upgrade-test-distros = jessie stretch
exclude-known-problems = packages_have_been_kept_back_error.conf packages_have_been_kept_back_issue.conf
+reschedule-old-count = 0
+reschedule-fail-count = 0
+max-reserved = 0
[jessie-lts2stretch]
@@ -866,6 +955,9 @@ piuparts-flags =
%(flags-end-stretch)s
distro = jessie-lts
upgrade-test-distros = jessie-lts stretch
+reschedule-old-count = 0
+reschedule-fail-count = 0
+max-reserved = 0
[jessie2bpo2stretch]
@@ -878,6 +970,9 @@ piuparts-flags =
depends-sections = jessie
distro = jessie-backports
upgrade-test-distros = jessie jessie-backports stretch
+reschedule-old-count = 0
+reschedule-fail-count = 0
+max-reserved = 0
[jessie2bpo]
@@ -890,6 +985,9 @@ piuparts-flags =
depends-sections = jessie
distro = jessie-backports
upgrade-test-distros = jessie jessie-backports
+reschedule-old-count = 0
+reschedule-fail-count = 0
+max-reserved = 0
[jessie]
@@ -900,6 +998,9 @@ piuparts-flags =
%(flags-start-jessie)s
%(flags-end-jessie)s
distro = jessie
+reschedule-old-count = 0
+reschedule-fail-count = 0
+max-reserved = 0
[jessie-rcmd]
@@ -912,6 +1013,9 @@ piuparts-flags =
%(flags-start-jessie)s
%(flags-end-jessie)s
distro = jessie
+reschedule-old-count = 0
+reschedule-fail-count = 0
+max-reserved = 0
[jessie-security]
@@ -923,6 +1027,9 @@ piuparts-flags =
%(flags-end-jessie)s
depends-sections = jessie
distro = jessie/updates
+reschedule-old-count = 0
+reschedule-fail-count = 0
+max-reserved = 0
[jessie-lts]
@@ -933,6 +1040,9 @@ piuparts-flags =
%(flags-start-jessie)s
%(flags-end-jessie)s
distro = jessie-lts
+reschedule-old-count = 0
+reschedule-fail-count = 0
+max-reserved = 0
[jessie2lts]
@@ -944,6 +1054,9 @@ piuparts-flags =
%(flags-end-jessie)s
distro = jessie
upgrade-test-distros = jessie jessie-lts
+reschedule-old-count = 0
+reschedule-fail-count = 0
+max-reserved = 0
[wheezy2jessie-lts]
@@ -955,6 +1068,9 @@ piuparts-flags =
%(flags-end-jessie)s
distro = wheezy
upgrade-test-distros = wheezy jessie-lts
+reschedule-old-count = 0
+reschedule-fail-count = 0
+max-reserved = 0
[wheezy2jessie]
@@ -966,6 +1082,9 @@ piuparts-flags =
%(flags-end-jessie)s
distro = wheezy
upgrade-test-distros = wheezy jessie
+reschedule-old-count = 0
+reschedule-fail-count = 0
+max-reserved = 0
[wheezy2jessie-rcmd]
@@ -980,6 +1099,9 @@ piuparts-flags =
-i /usr/lib/dbus-1.0/dbus-daemon-launch-helper
distro = wheezy
upgrade-test-distros = wheezy jessie
+reschedule-old-count = 0
+reschedule-fail-count = 0
+max-reserved = 0
[wheezy2bpo2jessie]
@@ -992,6 +1114,9 @@ piuparts-flags =
depends-sections = wheezy
distro = wheezy-backports
upgrade-test-distros = wheezy wheezy-backports jessie-lts
+reschedule-old-count = 0
+reschedule-fail-count = 0
+max-reserved = 0
[wheezy]
@@ -1003,6 +1128,8 @@ piuparts-flags =
%(flags-end-wheezy)s
distro = wheezy
reschedule-old-count = 0
+reschedule-fail-count = 0
+max-reserved = 0
[wheezy-lts]
@@ -1014,6 +1141,8 @@ piuparts-flags =
%(flags-end-wheezy)s
distro = wheezy-lts
reschedule-old-count = 0
+reschedule-fail-count = 0
+max-reserved = 0
[wheezy-security]
@@ -1026,6 +1155,8 @@ piuparts-flags =
depends-sections = wheezy
distro = wheezy/updates
reschedule-old-count = 0
+reschedule-fail-count = 0
+max-reserved = 0
[wheezy2lts]
@@ -1038,6 +1169,8 @@ piuparts-flags =
distro = wheezy
upgrade-test-distros = wheezy wheezy-lts
reschedule-old-count = 0
+reschedule-fail-count = 0
+max-reserved = 0
[squeeze2wheezy-lts]
@@ -1050,6 +1183,8 @@ piuparts-flags =
distro = squeeze
upgrade-test-distros = squeeze wheezy-lts
reschedule-old-count = 0
+reschedule-fail-count = 0
+max-reserved = 0
[squeeze2wheezy]
@@ -1062,6 +1197,8 @@ piuparts-flags =
distro = squeeze
upgrade-test-distros = squeeze wheezy
reschedule-old-count = 0
+reschedule-fail-count = 0
+max-reserved = 0
[squeeze2bpo2wheezy]
@@ -1075,6 +1212,8 @@ depends-sections = squeeze
distro = squeeze-backports
upgrade-test-distros = squeeze squeeze-backports wheezy-lts
reschedule-old-count = 0
+reschedule-fail-count = 0
+max-reserved = 0
[squeeze2bpo-sloppy]
@@ -1087,6 +1226,8 @@ piuparts-flags =
depends-sections = squeeze squeeze2bpo2wheezy
upgrade-test-distros = squeeze squeeze-backports-sloppy
reschedule-old-count = 0
+reschedule-fail-count = 0
+max-reserved = 0
[squeeze]
@@ -1099,6 +1240,7 @@ piuparts-flags =
distro = squeeze
reschedule-old-count = 0
reschedule-fail-count = 0
+max-reserved = 0
[squeeze2squeeze-lts]
@@ -1113,6 +1255,7 @@ distro = squeeze-lts
upgrade-test-distros = squeeze squeeze-lts
reschedule-old-count = 0
reschedule-fail-count = 0
+max-reserved = 0
[lenny2squeeze]
@@ -1126,4 +1269,4 @@ distro = lenny
upgrade-test-distros = lenny squeeze
reschedule-old-count = 0
reschedule-fail-count = 0
-
+max-reserved = 0
=====================================
piuparts-slave.py
=====================================
@@ -422,7 +422,7 @@ class Section:
basetgz = self._config["chroot-tgz"] or \
self._distro_config.get_basetgz(self._config.get_start_distro(),
self._config.get_arch(),
- merged_usr="--merged-usr" in self._config["piuparts-flags"])
+ merged_usr="--no-merged-usr" not in self._config["piuparts-flags"])
return os.path.join(self._config["basetgz-directory"], basetgz)
def _check_tarball(self):
=====================================
piuparts.py
=====================================
@@ -35,7 +35,6 @@ from __future__ import print_function
VERSION = "__PIUPARTS_VERSION__"
-import json
import logging
import optparse
import os
@@ -198,7 +197,7 @@ class Settings:
self.minimize = False
self.debfoster_options = None
self.docker_image = None
- self.merged_usr = False
+ self.merged_usr = True
# tests and checks
self.no_install_purge_test = False
self.no_upgrade_test = False
@@ -923,15 +922,17 @@ class Chroot:
def setup_from_docker(self, docker_image):
self.check_if_docker_storage_driver_is_supported()
- ret_code, output = run(['docker', 'run', '-d', '-it', docker_image, 'bash'])
- if ret_code != 0:
- logging.error("Couldn't start the container from '%s'" % docker_image)
- panic()
- self.docker_container = output.strip()
- ret_code, output = run(['docker', 'inspect', self.docker_container])
- container_data = json.loads(output)[0]
- self.name = container_data['GraphDriver']['Data']['MergedDir']
- logging.info("New container created '%s'" % self.docker_container)
+ with tempfile.NamedTemporaryFile("r") as cidfile:
+ ret_code, output = run(['docker', 'run', '-d', '-it', '--cidfile', cidfile.name, docker_image, 'bash'])
+ if ret_code != 0:
+ logging.error("Couldn't start the container from '%s'" % docker_image)
+ panic()
+
+ self.docker_container = cidfile.read().strip()
+
+ ret_code, output = run(['docker', 'inspect', '-f', '{{ .GraphDriver.Data.MergedDir }}', self.docker_container])
+ self.name = output.strip()
+ logging.info("New container created %r at %r", self.docker_container, self.name)
def setup_from_lvm(self, lvm_volume):
"""Create a chroot by creating an LVM snapshot."""
@@ -2888,10 +2889,17 @@ def parse_command_line():
"building a new one with debootstrap.")
parser.add_option("--merged-usr",
- default=False,
action='store_true',
+ dest='merged_usr',
+ default=True,
help="Create a --merged-usr chroot (if using debootstrap).")
+ parser.add_option("--no-merged-usr",
+ action='store_false',
+ dest='merged_usr',
+ default=True, # this is the default for the merged_usr dest variable, must match the one above
+ help="Create a --no-merged-usr chroot (if using debootstrap).")
+
parser.add_option("-m", "--mirror", action="append", metavar="URL",
default=[],
help="Which Debian mirror to use.")
=====================================
piupartslib/conf.py
=====================================
@@ -254,7 +254,7 @@ class DistroConfig(UserDict):
c))
return lines
- def get_basetgz(self, distro, arch, merged_usr=False):
+ def get_basetgz(self, distro, arch, merged_usr=True):
# look for the first base distribution
for d in self._expand_depends(distro):
if self.get(d, "depends"):
View it on GitLab: https://salsa.debian.org/debian/piuparts/-/compare/940cf1ae8e7cf419a25a87087e50e317ed1f6589...ecd2dcae4d8d9c4192c7c6c3dcc840541fa15ee1
--
View it on GitLab: https://salsa.debian.org/debian/piuparts/-/compare/940cf1ae8e7cf419a25a87087e50e317ed1f6589...ecd2dcae4d8d9c4192c7c6c3dcc840541fa15ee1
You're receiving this email because of your account on salsa.debian.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/piuparts-devel/attachments/20231206/58e1af3f/attachment-0001.htm>
More information about the Piuparts-devel
mailing list