Your message dated Sun, 24 Jun 2012 07:32:08 +0000
with message-id <[email protected]>
and subject line Bug#658044: fixed in piuparts 0.45
has caused the Debian Bug report #658044,
regarding piuparts: Please add --existing-chroot option
to be marked as done.
This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.
(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)
--
658044: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=658044
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: piuparts
Version: 0.40ubuntu1
Severity: wishlist
Dear developers,
in some cases it could be useful have an option in piuparts able to
use an existing chroot, already decompressed, insteat of a basetgz.
This is useful when you use pbuilder with "--no-targz" option,
that creates a chroot within a directory.
This patch implements this option in piuparts, can you please
consider to import it in the git repository?
Thanks in advance,
Leo.
-- System Information:
Debian Release: wheezy/sid
APT prefers oneiric-updates
APT policy: (500, 'oneiric-updates'), (500, 'oneiric'), (100,
'oneiric-backports')
Architecture: i386 (i686)
Kernel: Linux 3.2.2-030202-generic (SMP w/2 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages piuparts depends on:
ii apt 0.8.16~exp5ubuntu13 APT's commandline package manager
ii debootstrap 1.0.37 Bootstrap a basic Debian system
ii lsb-release 4.0-0ubuntu16 Linux Standard Base version report
ii lsof 4.81.dfsg.1-1build1 List open files
ii python 2.7.2-7ubuntu2 interactive high-level object-orie
ii python-debian 0.1.20ubuntu2 Python modules to work with Debian
ii python-support 1.0.13ubuntu1 automated rebuilding support for P
piuparts recommends no packages.
Versions of packages piuparts suggests:
ii ghostscript 9.04~dfsg-0ubuntu11.4 interpreter for the PostScript lan
pn python-rpy <none> (no description available)
-- no debconf information
diff --git a/piuparts.1.txt b/piuparts.1.txt
index eeb220c..e58f804 100644
--- a/piuparts.1.txt
+++ b/piuparts.1.txt
@@ -71,6 +71,11 @@ The tarball can be created with the '-s' option, or you can use one that *pbuild
*--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.
+*-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 archivied.
+
*-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* status files. The filename should be relative to the root of the chroot (e.g., _var/lib/dpkg/status_). This option can be used as many times as necessary.
diff --git a/piuparts.py b/piuparts.py
index 0cba47c..9b21166 100644
--- a/piuparts.py
+++ b/piuparts.py
@@ -146,6 +146,7 @@ class Settings:
self.basetgz = None
self.savetgz = None
self.lvm_volume = None
+ self.existing_chroot = None
self.end_meta = None
self.save_end_meta = None
self.skip_minimize = True
@@ -730,6 +731,8 @@ class Chroot:
self.unpack_from_tgz(settings.basetgz)
elif settings.lvm_volume:
self.setup_from_lvm(settings.lvm_volume)
+ elif settings.existing_chroot:
+ self.setup_from_dir(settings.existing_chroot)
else:
self.setup_minimal_chroot()
@@ -814,6 +817,16 @@ class Chroot:
logging.info("Mounting LVM snapshot to %s" % self.name);
run(['mount', self.lvm_snapshot, self.name])
+ def setup_from_dir(self, dirname):
+ """Create chroot from an existing one."""
+ logging.debug("Copying %s into %s" % (dirname, self.name))
+ for name in os.listdir(dirname):
+ src = os.path.join(dirname, name)
+ dst = os.path.join(self.name, name)
+ run(["cp", "-ax", src, dst])
+ # copytree does not work with sockets
+ #shutil.copytree(src, dst, symlinks=True)
+
def run(self, command, ignore_errors=False):
prefix = []
if settings.eatmydata and os.path.isfile(os.path.join(self.name,
@@ -2237,6 +2250,11 @@ def parse_command_line():
action='store_true',
help="Do not verify signatures from the Release files when running debootstrap.")
+ parser.add_option("-e", "--existing-chroot", metavar="DIR",
+ help="Use DIR as the contents of the initial " +
+ "chroot, instead of building a new one with " +
+ "debootstrap")
+
parser.add_option("-i", "--ignore", action="append", metavar="FILENAME",
default=[],
help="Add FILENAME to list of filenames to be " +
@@ -2414,6 +2432,7 @@ def parse_command_line():
settings.savetgz = opts.save
settings.lvm_volume = opts.lvm_volume
settings.lvm_snapshot_size = opts.lvm_snapshot_size
+ settings.existing_chroot = opts.existing_chroot
settings.end_meta = opts.end_meta
settings.save_end_meta = opts.save_end_meta
settings.skip_minimize = opts.skip_minimize
--- End Message ---
--- Begin Message ---
Source: piuparts
Source-Version: 0.45
We believe that the bug you reported is fixed in the latest version of
piuparts, which is due to be installed in the Debian FTP archive:
piuparts-common_0.45_all.deb
to main/p/piuparts/piuparts-common_0.45_all.deb
piuparts-master_0.45_all.deb
to main/p/piuparts/piuparts-master_0.45_all.deb
piuparts-slave_0.45_all.deb
to main/p/piuparts/piuparts-slave_0.45_all.deb
piuparts_0.45.dsc
to main/p/piuparts/piuparts_0.45.dsc
piuparts_0.45.tar.gz
to main/p/piuparts/piuparts_0.45.tar.gz
piuparts_0.45_all.deb
to main/p/piuparts/piuparts_0.45_all.deb
A summary of the changes between this version and the previous one is
attached.
Thank you for reporting the bug, which will now be closed. If you
have further comments please address them to [email protected],
and the maintainer will reopen the bug report if appropriate.
Debian distribution maintenance software
pp.
Holger Levsen <[email protected]> (supplier of updated piuparts package)
(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [email protected])
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
Format: 1.8
Date: Thu, 21 Jun 2012 22:17:26 +0200
Source: piuparts
Binary: piuparts piuparts-master piuparts-slave piuparts-common
Architecture: source all
Version: 0.45
Distribution: unstable
Urgency: low
Maintainer: piuparts developers team <[email protected]>
Changed-By: Holger Levsen <[email protected]>
Description:
piuparts - .deb package installation, upgrading, and removal testing tool
piuparts-common - common piuparts components
piuparts-master - piuparts master components
piuparts-slave - piuparts slave components
Closes: 359154 530733 531134 531135 585861 652934 654423 657740 658044 658962
663702 668752 668756 673919 674498 674672
Changes:
piuparts (0.45) unstable; urgency=low
.
[ Holger Levsen ]
* Merge piatti.git into piuparts.git, so that piatti.git has become obsolete
now. Update documentation accordingly.
* Further split packaging into piuparts-master, piuparts-slave and
piuparts-common binary packages (Closes: #585861) and cleanup
dependencies.
* Update piuparts.NEWS about master+slave packages.
* Switch to debhelper8 packaging.
* debian/copyright: use versioned URI of the machine-readable copyright file,
thanks lintian.
* Move /etc/sudoers.d/piuparts to piuparts-slave package.
* piuparts-master: depend on tango-icon-theme and drop sunny.png and
weather-severe-alert.png and use links instead.
* Reviewed and merged/cherry-picked all of the following changes.
.
[ David Steele ]
* Remove debian/postinst as it was only dealing with lenny time area
configuration files.
* Added server configuration files for apache, sudo, and cron.
* Use dh_install, in preparation for multiple package build.
* Added packaging to create the piuparts-server package out of the old
piatti directory tree (Closes: #652934).
- Create and configure piupartss and piupartsm users.
- Coordinate ssh keys between master and slave users.
- Create working directory tree for each under /var/lib/piuparts
* packagesdb.py:
- Calculate recursive reverse dependency count, and store in PackagesDB.
- Calculate the count of packages being blocked by a failed package.
* piuparts-report.py:
- Release Section object when section processing is complete.
(Closes: #673919)
- Display reverse dependency counts and block counts to failure summaries.
- Sort the failed-testing and cannot-be-tested summaries by block count.
(Closes: #674498)
- Replace O(n^2) search in remove_old_logs() with a hash
piuparts-report run time improved 20% on mature environment.
- Another search fix in create_package_summaries (find_links_to_logs)
yielding a 10x speedup for piuparts-report runs.
(Closes: #674672)
- Cleanup/wrap some long source lines.
- Cleanup/wrap some long html lines.
- Allow the html root to be changed from /
(piuparts.conf: e.g. [global] doc-root = /piuparts/).
.
[ Andreas Beckmann ]
* piuparts.py:
- Implement --install-remove-install option to test installation in
config-files-remaining state. (Closes: #359154)
- Report leftover symlinks with target.
- Report leftover directories with a trailing slash.
- Allow ignore entries to specifically match directories.
- Ignore patterns need to match the full filename, not a substring.
- Cleanup and regroup ignore lists.
+ Remove many obsolete entries not needed for squeeze or later.
+ Group ignore entries into piuparts state, system state, package
management, logfiles, home directories, application data, and HACKS.
- Add to ignored_files/ignored_patterns:
+ Default system logfiles as created by syslogd in /var/log/
+ Common empty directories in /etc not removed due to dpkg bug #316521
+ cdebconf status files
+ /boot/grub/
+ /etc/X11/default-display-manager
+ /etc/aliases.db
+ /etc/apt/trusted.gpg.d/.*.gpg~
+ /etc/network/interfaces
+ /etc/news/whoami
+ /usr/share/keyrings/debian-archive-removed-keys.gpg~
+ /var/crash/
+ /var/lib/citadel/(data/.*)?
+ /var/lib/gozerbot/
+ /var/lib/nagios/ (Closes: #668756)
+ /var/lib/openvswitch/(pki/.*)?
+ /var/spool/powerdns/ (Closes: #531134, #531135)
- Implement a timeout for commands being run in the chroot.
- Set time limit to 30 minutes per command. (Closes: #654423)
- Terminate all processes running inside the chroot before removing the
chroot; also in case piuparts aborts due to an error.
- Continue killing running processes as long as new processes get spawned
in the chroot.
- Perform chroot cleanup after receiving Ctrl-C/SIGINT, too.
- Let Chroot register/de-register the cleanup panic handler.
- Remove temp_tgz on error exit.
- Remove metapackage build directory on error exit. (Closes: #663702)
- Don't remove eatmydata when minimizing a chroot. (Closes: #658962)
- Add support for version-qualified package arguments (--apt foo=1.2-3).
- Switch fallback mirror to http://cdn.debian.net/debian.
* piuparts.conf:
- Defaults for all [section] settings can be set in the [global] section.
- Change master-command to not include the section name so that it can be
set in the [global] section.
The section name will be given as an argument to this command.
- Make doc-root default to "/".
- New per section key: area (set to one of main, contrib, non-free).
- New defaults: mirror=http://cdn.debian.net/debian, area=main.
- Compute URLs from mirror, distro, area, arch.
- Removed deprecated keys: known_circular_depends, packages-url,
sources-url.
* master/db/report: Add a new category /affected/ for failed logs where the
bug is in a dependency, but only exposed by the package being tested.
- In the BTS these are reported as (Closes: #657740)
Package: buggy-package
Version: buggy-version
Affects: package-under-test
Found: package-under-test/tested-version
- Reschedule /affected/ logs like /fail/ logs.
* piupartslib/conf.py:
- Add support for getting default values from a special section.
- Add methods to get mirror, distro, area, arch from config file or
defaults.
- Add methods to compute URLs to Packages and Sources files.
* piupartslib/packagesdb.py:
- Do not consider a package as "untestable" if untestable/ contains a
logfile from an obsolete version of that package.
- Simplify handling of package and dependency states.
- Do not inherit 'dependency-does-not-exist' state (which may be fixed
in the package) but propagate it to 'dependency-cannot-be-tested'.
- Remove 'no-dependency-from-alternatives-exists' state and use
'dependency-does-not-exist' instead.
- Remove 'unknown-preferred-alternative' state as it interferes with
circular dependencies involving alternatives and virtual packages.
- Fix state resolution of package dependencies containing alternatives,
virtual packages and circular dependencies.
- Remove 'circular-dependency' state.
- Stop using static known_circular_depends.
- Compute dependency cycles and test packages on such cycles if all
non-circular dependencies are satisfied.
- Consider any combination of two error states for the blocking count.
- Always run create_subdirs() during initialization.
* piuparts-master.py:
- Remove known_circular_depends handling.
- Reduce logfile verboseness: do not include received logs.
- Always chdir to master_directory, do not rely on being run from there.
- Record timestamps of submitted logs in submissions.txt.
* piuparts-slave.py:
- Randomize waiting time (between 60 and 180 seconds) if master is busy.
- Sleep until the next section can be tried, but at least 1 minute.
- Simplify and merge Section.setup() into Section.__init__().
- Generate master command: use global setting and append section.
- Test the 'dpkg' package for creating/updating a base_tgz.
- Don't update the tarball for disabled sections.
- Rewrite starting piuparts.
- Rewrite stopping piuparts for more reliable cleanup.
- Introduce Ctrl-C/SIGINT handling:
press Ctrl-C once to exit after the current piuparts test has finished,
press Ctrl-C again to cleanly terminate the currently running test,
press Ctrl-C again to abort any ongoing cleanup.
- Pass a version qualified package name (foo=1.2-3) to piuparts to ensure
the correct package version gets tested.
- Increase verboseness for untestable packages.
- Remove idle.stamp functionality.
* piuparts-report.py:
- Remove known_circular_depends handling.
- Exclude obsolete states from generated report.
- Establish packagesdb working directory in Section.
- Handle logs in /affected/ directories.
- detect_well_known_errors: Add bug links if bugs are known.
- New known problem: "packages have been kept back".
- Report rdeps and blocking counts in all error state reports.
- Fix another race with logfiles disappearing while copying.
* piuparts-analyze.py:
- Don't report further bugs/versions if we found a match.
- Classify logs with bugs filed into /bugged/ or /affected/.
- Write .bug files with links to the BTS.
* detect_archive_issues: Only consider logs older than one day for marking
as "untestable" to allow piuparts-analyze to handle the log first.
* Replace all references to lenny and squeeze with squeeze and wheezy.
* Add/update several bug reporting templates.
* Add custom scripts to aid debugging common problems in maintainer scripts.
* Add custom script for squeeze to ensure adduser, ucf, and install-info
are not purged.
* Add custom scripts to enable/perform additional cleanup procedures to
reduce the "FAIL: Package purging left files on system" errors if
--warn-on-leftovers-after-purge is not used.
(Closes: #668752)
* Ship custom scripts in the piuparts package.
* Comment sudoers and crontabs shipped in the master/slave packages,
requiring explicit editing after installation to activate them.
* Bump debhelper and dpkg dependencies for using dpkg-maintscript-helper.
* Remove obsolete /etc/piuparts/piuparts.conf from old piuparts package.
* Ship /etc/piuparts/piuparts.conf in the piuparts-slave package.
* Create missing home directories if the piupartsm/piupartss users remain
from a previously purged installation.
.
[ Leo Iannacone ]
* piuparts.py: add --existing-chroot option, specify a directory as source
for the chroot, instead of building a new one with debootstrap or
decompressing an archived one. (Closes: #658044)
.
[ Mika Pflüger ]
* piuparts.py: Remove obsolete functions shellquote, apt_get_knows, and
append_to_file.
.
[ Mehdi Abaakouk ]
* piuparts.py: Add support for schroot. (Closes: #530733)
Checksums-Sha1:
1e3bf68fb0f8b1ab05a549e820be16212a7f9e80 1829 piuparts_0.45.dsc
de3878bd35b831a31821fe664245c274275ce66c 148621 piuparts_0.45.tar.gz
037537b59636651a1cff0346f0805c01110ffa8f 82718 piuparts_0.45_all.deb
8cc7560dc04a134cc13174d21a4729d5243052c9 76054 piuparts-master_0.45_all.deb
25fe88bc904a88b19821cc94675886c7c3a25c5a 33560 piuparts-slave_0.45_all.deb
607e9025f6b3f93222c67a0eab68f6aff68a8441 31578 piuparts-common_0.45_all.deb
Checksums-Sha256:
884e81896e068203de6ca9d217b59d62d6d0e76fa4b2f3b8bb3e9b25202e716d 1829
piuparts_0.45.dsc
d0df980a327ab5767622bae28aaf6188e5a72de32922e32eb956d678c095315c 148621
piuparts_0.45.tar.gz
4e912a317f355d6a7dd89ffb54ff4363a37afafa9426ef6152e7bfcb7de9aa51 82718
piuparts_0.45_all.deb
da43a6dacff3c6d0ff0f291db8dcd5975862dc1a0a29e9dfa0112bff32bcd674 76054
piuparts-master_0.45_all.deb
dd464f6efb40a9f7f33f5bc4f170b66dca80d3747dc1f9eaac4704b314b286b3 33560
piuparts-slave_0.45_all.deb
8778a563bc71e521d726eec2f172127ce9bd66c43d20202d467fced144c07986 31578
piuparts-common_0.45_all.deb
Files:
d820812610ec2a145c44904740bd0b55 1829 devel extra piuparts_0.45.dsc
904ef75d39fc0fb5797668c9cf8591e2 148621 devel extra piuparts_0.45.tar.gz
8c76de74556daa82227a30526e3cc3c5 82718 devel extra piuparts_0.45_all.deb
c39d5634cd8f3b6be7ec1f876b2d606a 76054 devel extra piuparts-master_0.45_all.deb
afcb9608a2d62a4ece3500b34e2063c0 33560 devel extra piuparts-slave_0.45_all.deb
2a66851fd6806b5bc04d13a016ba9c2c 31578 devel extra piuparts-common_0.45_all.deb
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
iQIVAwUBT+OCxAkauFYGmqocAQgZmw//Ug5Va7hgQNDqn91GZZh8zZ7qy6Rpjvjj
vhYpKb8IkhZ0rUkQPSTX99DNihcDqpVCgGWQHGJk2zoBWdK2fztKXZzXXxvJfAna
vzF4oz5cZK3jp5/TTkkcpolB8MjAVomwbsPHdMFSdhyLAxaDaKOFOqE6wG2z8ClX
zXi4fCGEVpCaqdveQSjX1bGOrrB44/zTdaxc8eaUnxLOY69jlbDCZnn0D2g5Oelf
2W446B2SbaLJNupNs7bbYFgDFUq8Zkxn2s7XFlnOXS7Y14o//ivOuMijc+nMCEgC
cLSpoMg+FG2m29+YWrWFhHJfGj98EDAGgmuAaCz1Wt7WGv1n5OZRqVANO2+xbedd
2rf0Immb+5PVgCJI0jaboE+FuJW8n0uQ9Dmi/s0YPDQc5vaBA4XBqjyoTbTbl3Mi
nIjEOoYWQuhGgAYNfJACds3L5kFPpIRVpkP5eTHOKxXfUekmnP4ww5FxY/7/CaVL
X97LHBZVOiIBamNCv/pjXbYkUSaboqdwjqPpL8WDPGsMtCCdVpGhNbG0BTAbXjX5
40/K8aLgdaxzD7+0hMmNGfKGmqa/CSzjcTit2kjq8nQW+MfBnazwTk3XPmNwTMCZ
WLUOzZ/VXlZ5PsNmKsnXXw/yLgzdktgf5zQeuTuoTm9PMNNfoudYV0rXgx8ICso0
XEO6tnRSgqo=
=DC+j
-----END PGP SIGNATURE-----
--- End Message ---