Bug#857475: unblock: pbuilder/0.228.6 (pre-approval)
Mattia Rizzolo
mattia at debian.org
Sat Mar 11 20:30:57 UTC 2017
package: release.debian.org
user: release.debian.org at packages.debian.org
usertags: unblock
x-debbugs-cc: pbuilder-maint at lists.alioth.debian.org
We pbuilder maintainers would like to fix #841935 for good, so James did
some great work and testing to fix it. I also cofirm that all my tests
went well.
While on it I'd like to slip in some very other minor changes.
See the attached debdiff for the details.
TIA.
--
regards,
Mattia Rizzolo
GPG Key: 66AE 2B4A FCCF 3F52 DA18 4D18 4B04 3FCD B944 4540 .''`.
more about me: https://mapreri.org : :' :
Launchpad user: https://launchpad.net/~mapreri `. `'`
Debian QA page: https://qa.debian.org/developer.php?login=mattia `-
-------------- next part --------------
diffstat for pbuilder-0.228.5 pbuilder-0.228.5+
debian/NEWS | 4 +---
debian/changelog | 23 +++++++++++++++++++++++
debian/control | 1 +
pbuilder-checkparams | 2 +-
pbuilder-modules | 38 +++++++++++++++++++++++++++++++++++++-
pbuilder.8 | 3 ++-
pbuilderrc.5 | 38 ++++++++++++++++++++++----------------
7 files changed, 87 insertions(+), 22 deletions(-)
diff -Nru pbuilder-0.228.5/debian/changelog pbuilder-0.228.5+/debian/changelog
--- pbuilder-0.228.5/debian/changelog 2017-03-02 17:16:19.000000000 +0100
+++ pbuilder-0.228.5+/debian/changelog 2017-03-10 14:33:53.000000000 +0100
@@ -1,3 +1,26 @@
+pbuilder (0.228.5+) UNRELEASED; urgency=medium
+
+ [ James Clarke ]
+ * modules: Use a new /dev/pts instance inside the chroot.
+ This allows for better isolation as the build process is no longer able
+ to see the host's PTYs, other than the controlling terminal (if there is
+ one). By using a new instance, we can also control the permissions of
+ /dev/pts/ptmx, ensuring that the build process is always able to create
+ new PTYs, even if the host's has the default 000 mode.
+ Thanks to Simon McVittie <smcv at debian.org> for the thorough investigation.
+ Closes: #841935
+
+ [ Mattia Rizzolo ]
+ * pbuilderrc.5:
+ + Update the details about the currently available dependency resolvers.
+ * debian/NEWS:
+ + Remove changes reverted in successive fixup uploads.
+ * checkparams:
+ + Make --extrapackages cumulative. Specifying --extrapackages multiple
+ times will now add packages to the list.
+
+ -- Mattia Rizzolo <mattia at debian.org> Fri, 10 Mar 2017 14:33:53 +0100
+
pbuilder (0.228.5) unstable; urgency=medium
[ Thorsten Glaser ]
diff -Nru pbuilder-0.228.5/debian/control pbuilder-0.228.5+/debian/control
--- pbuilder-0.228.5/debian/control 2017-01-24 00:51:09.000000000 +0100
+++ pbuilder-0.228.5+/debian/control 2017-03-10 14:05:32.000000000 +0100
@@ -25,6 +25,7 @@
Depends:
debootstrap | cdebootstrap,
dpkg-dev (>= 1.17.0),
+ util-linux (>= 2.26.2-4) | initscripts (<< 2.88dsf-59.1),
wget,
${misc:Depends},
Recommends:
diff -Nru pbuilder-0.228.5/debian/NEWS pbuilder-0.228.5+/debian/NEWS
--- pbuilder-0.228.5/debian/NEWS 2017-01-18 12:34:59.000000000 +0100
+++ pbuilder-0.228.5+/debian/NEWS 2017-03-10 14:28:34.000000000 +0100
@@ -10,9 +10,7 @@
in pbuilder, such as bind-mounting /dev/shm from the host, to avoid
situations like over-mounting.
- Pdebuild now uses dpkg-source directly to generate the dsc to pass to
- pbuilder rather than dpkg-buildpackage -S, therefore DEBBUILDOPTS no
- longer affect this. It will also no longer generate a source changes file
+ Pdebuild will no longer generate a source changes file
if BUILDRESULT is the parent directory, since the dsc will be overwritten
when copying back the build results, possibly invalidating the previous
changes file; please use pbuilder's new --source-only-changes option.
diff -Nru pbuilder-0.228.5/pbuilder.8 pbuilder-0.228.5+/pbuilder.8
--- pbuilder-0.228.5/pbuilder.8 2017-01-15 18:04:50.000000000 +0100
+++ pbuilder-0.228.5+/pbuilder.8 2017-03-10 14:28:36.000000000 +0100
@@ -638,7 +638,8 @@
and
.BR "update" .
-The packages should be specified as a space-delimited list.
+The packages should be specified as a space-delimited list, or by specifying
+\-\-extrapcakges multiple times.
.TP
.BI "\-\-debemail [" "maintainer-name <email-address>" "]"
diff -Nru pbuilder-0.228.5/pbuilder-checkparams pbuilder-0.228.5+/pbuilder-checkparams
--- pbuilder-0.228.5/pbuilder-checkparams 2017-01-15 18:04:50.000000000 +0100
+++ pbuilder-0.228.5+/pbuilder-checkparams 2017-03-10 14:28:36.000000000 +0100
@@ -170,7 +170,7 @@
shift; shift;
;;
--extrapackages)
- EXTRAPACKAGES="$2";
+ EXTRAPACKAGES="${EXTRAPACKAGES:+$EXTRAPACKAGES }$2";
shift; shift;
;;
--hookdir)
diff -Nru pbuilder-0.228.5/pbuilder-modules pbuilder-0.228.5+/pbuilder-modules
--- pbuilder-0.228.5/pbuilder-modules 2017-02-05 16:38:30.000000000 +0100
+++ pbuilder-0.228.5+/pbuilder-modules 2017-03-10 14:05:32.000000000 +0100
@@ -276,6 +276,12 @@
umount_one "$SELINUX"
fi
if [ "$DEB_BUILD_ARCH_OS" = "linux" ] && [ "$USEDEVPTS" = "yes" ]; then
+ if mountpoint -q "$BUILDPLACE/dev/console"; then
+ umount_one "dev/console"
+ fi
+ if mountpoint -q "$BUILDPLACE/dev/ptmx"; then
+ umount_one "dev/ptmx"
+ fi
umount_one "dev/pts"
fi
if [ "$DEB_BUILD_ARCH_OS" = "kfreebsd" ] || [ "$USEDEVFS" = "yes" ]; then
@@ -383,8 +389,38 @@
TTYGRP=5
TTYMODE=620
[ -f /etc/default/devpts ] && . /etc/default/devpts
- mount -t devpts none "$BUILDPLACE/dev/pts" -onoexec,nosuid,gid=$TTYGRP,mode=$TTYMODE
+ # Even wheezy has CONFIG_DEVPTS_MULTIPLE_INSTANCES=y, so no need to
+ # fall back to the old method with just /dev/ptmx.
+ mount -t devpts devpts "$BUILDPLACE/dev/pts" -o newinstance,noexec,nosuid,gid=$TTYGRP,mode=$TTYMODE,ptmxmode=0666
mounted[${#mounted[@]}]="$BUILDPLACE/dev/pts"
+
+ # If /dev/ptmx is a symlink, it should be /dev/ptmx -> pts/ptmx
+ # and since ptmxmode is 0666, /dev/pts/ptmx will have mode 0666.
+ # However, if it is not a symlink, then any PTYs created inside the
+ # chroot will not be visible. We could delete /dev/ptmx and replace
+ # it with a symlink, but it's safer just to bind-mount it.
+ # This is based on the recommendations in
+ # Documentation/filesystems/devpts.txt
+ # (linux.git commit 784c4d8b1b1e66f8c45e8b889613f4982f525b2b)
+ if [ ! -L "$BUILDPLACE/dev/ptmx" ]; then
+ log.i "redirecting /dev/ptmx to /dev/pts/ptmx"
+ mount --bind "$BUILDPLACE/dev/pts/ptmx" "$BUILDPLACE/dev/ptmx"
+ mounted[${#mounted[@]}]="$BUILDPLACE/dev/ptmx"
+ fi
+
+ # If there is a controlling TTY, it must be available to the chroot.
+ # The standard practice (at least by lxc and systemd-nspawn) is to
+ # bind-mount it onto /dev/console.
+ if CURRENT_TTY="$(tty)"; then
+ # We need /dev/console to exist to be able to bind-mount onto it.
+ # Might as well make the proper device node rather than a file.
+ if [ ! -e "$BUILDPLACE/dev/console" ]; then
+ log.i "creating /dev/console"
+ mknod -m 600 "$BUILDPLACE/dev/console" c 5 1
+ fi
+ log.i "mounting $CURRENT_TTY over /dev/console"
+ mount --bind "$CURRENT_TTY" "$BUILDPLACE/dev/console"
+ fi
fi
if [ -n "$SELINUX" ]; then
log.i "mounting selinux filesystem"
diff -Nru pbuilder-0.228.5/pbuilderrc.5 pbuilder-0.228.5+/pbuilderrc.5
--- pbuilder-0.228.5/pbuilderrc.5 2017-02-05 16:38:30.000000000 +0100
+++ pbuilder-0.228.5+/pbuilderrc.5 2017-03-10 14:28:22.000000000 +0100
@@ -383,25 +383,31 @@
.TP
.BI "PBUILDERSATISFYDEPENDSCMD=" "/usr/lib/pbuilder/pbuilder\-satisfydepends"
This option is used by various parts of pbuilder to satisfy
-(i.e. install) the build-dependencies of a package. There are four
-implementations:
+(i.e. install) the build-dependencies of a package.
+These are the available implementations:
-The "experimental" implementation,
-"pbuilder\-satisfydepends\-experimental", which might be useful to pull
-packages from experimental or from repositories with a low APT Pin
-Priority.
-
-The "aptitude" implementation, which will resolve build-dependencies
-and build-conflicts with aptitude which helps dealing with complex
-cases but does not support unsigned APT repositories.
-
-The "gdebi" implementation, which will resolve build-dependencies
-using gdebi tool, faster than classic implementation, and does not
-require installation of a dummy package like the aptitude
+.I pbuilder\-satisfydepends\-apt
+the newest implementation, which leverage the ability of apt 1.4 to satisfy
+build dependencies and build conflicts from a .dsc; useful since it's pretty
+fast and doesn't require the installation of any non-required package in the
+chroot, nor of dummy packages.
+
+.I pbuilder\-satisfydepends\-experimental
+might be useful to pull packages from repositories with a low APT Pin Priority
+(for example, Debian's experimental or stable-backports).
+
+.I pbuilder\-satisfydepends\-aptitude
+will resolve build-dependencies and build-conflicts with aptitude which helps
+dealing with complex cases but does not support unsigned APT repositories.
+
+.I pbuilder\-satisfydepends\-gdebi
+will resolve build-dependencies using gdebi, faster than classic implementation,
+and does not require installation of a dummy package like the aptitude
implementation.
-The "classic" implementation, which was the original implementation
-used until 0.172.
+.I pbuilder\-satisfydepnds\-classic
+the "classic" implementation, which was the original implementation used by
+default until v0.172.
The default is now "aptitude".
.TP
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://lists.alioth.debian.org/pipermail/pbuilder-maint/attachments/20170311/8ed301a6/attachment.sig>
More information about the Pbuilder-maint
mailing list