[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#854406: marked as done (unblock: pbuilder/0.228.4)



Your message dated Mon, 06 Feb 2017 21:17:00 +0000
with message-id <49e31c86-f09b-cfdb-001f-d4b682daf600@thykier.net>
and subject line Re: Bug#854406: unblock: pbuilder/0.228.4
has caused the Debian Bug report #854406,
regarding unblock: pbuilder/0.228.4
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 owner@bugs.debian.org
immediately.)


-- 
854406: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=854406
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
package: release.debian.org
user: release.debian.org@packages.debian.org
usertags: unblock

Hi!

I just uploaded a pbuilder adding a very small undocumented feature to
help with the reproducible builds project.
You can find the small debdiff attached.

Previously r-b was using an undocumented and undefined behaviour of
pbuilder that just `cd /build/*/debian/..` to move into the unpackaged
source; 0.228 changed this with a well defined `cd /build/$pkg-$ver`
(also started to call `dpkg-source` with that parameter).  r-b has been
test building packages in different build paths
    /build/1st/$pkg-$ver     vs   /build/$pkg-$ver/2nd
and using a hook to mangle the paths, etc; with 0.228 this wouldn't be
possible at all (as the `cd` call would fail).
0.228.4 adds an undocumented conf variable BUILDSUBDIR to specify the
name of the final source directory, making this work pssible again.

Thanks for considering!

-- 
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  `-
diffstat for pbuilder-0.228.3 pbuilder-0.228.4

 debian/changelog      |   19 +++++++++++++++++++
 pbuilder-buildpackage |   11 +++++++----
 pbuilder-modules      |    2 +-
 pbuilderrc.5          |   14 +++++++++-----
 4 files changed, 36 insertions(+), 10 deletions(-)

diff -Nru pbuilder-0.228.3/debian/changelog pbuilder-0.228.4/debian/changelog
--- pbuilder-0.228.3/debian/changelog	2017-01-24 16:29:13.000000000 +0100
+++ pbuilder-0.228.4/debian/changelog	2017-02-06 20:16:31.000000000 +0100
@@ -1,3 +1,22 @@
+pbuilder (0.228.4) unstable; urgency=medium
+
+  [ James Clarke ]
+  * modules: Fix bind-mounts on kFreeBSD.
+
+  [ Mattia Rizzolo ]
+  * buildpackage:
+    + rename internal variable SUBDIR_NAME to BUILDSUBDIR (the subdirectory of
+      BUILDDIR where the source will be unpacked).
+    + make it possible to specify BUILDSUBDIR externally, i.e. through
+      pbuilderrc.  Closes: #854255
+  * pbuilderrc.5:
+    + remove stale information: BUILDDIR is not (by default) the HOME of the
+      build user anymore.
+    + document what will happen inside BUILDDIR, and where the unpacked source
+      will be.
+
+ -- Mattia Rizzolo <mattia@debian.org>  Mon, 06 Feb 2017 20:16:31 +0100
+
 pbuilder (0.228.3) unstable; urgency=medium
 
   * pbuilder-modules: Add get_source_options function to extract options for
diff -Nru pbuilder-0.228.3/pbuilder-buildpackage pbuilder-0.228.4/pbuilder-buildpackage
--- pbuilder-0.228.3/pbuilder-buildpackage	2017-01-23 11:26:48.000000000 +0100
+++ pbuilder-0.228.4/pbuilder-buildpackage	2017-02-06 09:09:28.000000000 +0100
@@ -128,8 +128,11 @@
 copydsc "$PACKAGENAME" "${BUILDPLACE}$BUILDDIR"
 copyinputfile "${BUILDPLACE}$BUILDDIR"
 
-SUBDIR_NAME=$(dsc_get_basename "$PACKAGENAME" "no")
-SUBDIR_NAME=${SUBDIR_NAME//_/-}
+# don't allow empty values of BUILDSUBDIR
+if [ -z "${BUILDSUBDIR:-}" ]; then
+    BUILDSUBDIR="$(dsc_get_basename "$PACKAGENAME" "no")"
+    BUILDSUBDIR="${BUILDSUBDIR//_/-}"
+fi
 
 log.i "Extracting source"
 if echo "chown $BUILDUSERNAME:$BUILDUSERNAME $BUILDDIR $BUILDDIR/*" | $CHROOTEXEC /bin/bash; then
@@ -138,7 +141,7 @@
     log.e "pbuilder: Failed chowning to $BUILDUSERNAME:$BUILDUSERNAME"
     exit 1;
 fi
-if echo "( cd $BUILDDIR; env PATH=\"$PATH\" dpkg-source -x $(basename "$PACKAGENAME") "$SUBDIR_NAME" )" | $UNSHARE $CHROOTEXEC env $SUTOUSER ; then
+if echo "( cd $BUILDDIR; env PATH=\"$PATH\" dpkg-source -x $(basename "$PACKAGENAME") "$BUILDSUBDIR" )" | $UNSHARE $CHROOTEXEC env $SUTOUSER ; then
     : # success
 else
     log.e "pbuilder: Failed extracting the source"
@@ -181,7 +184,7 @@
     if [ -n "$TWICE" ]; then
         DPKG_COMMANDLINE="$DPKG_COMMANDLINE && $DPKG_COMMANDLINE"
     fi
-    DPKG_COMMANDLINE="cd ${BUILDDIR}/$SUBDIR_NAME/ && $DPKG_COMMANDLINE"
+    DPKG_COMMANDLINE="cd ${BUILDDIR}/$BUILDSUBDIR/ && $DPKG_COMMANDLINE"
     log.i "Running $DPKG_COMMANDLINE"
     echo "$DPKG_COMMANDLINE" | $UNSHARE $CHROOTEXEC env $SUTOUSER
 ) &
diff -Nru pbuilder-0.228.3/pbuilder-modules pbuilder-0.228.4/pbuilder-modules
--- pbuilder-0.228.3/pbuilder-modules	2017-01-24 15:29:51.000000000 +0100
+++ pbuilder-0.228.4/pbuilder-modules	2017-02-05 16:07:34.000000000 +0100
@@ -412,7 +412,7 @@
             log.i "Mounting $mnt to $mntpoint"
         fi
         if mkdir -p "$BUILDPLACE/$mntpoint" &&
-            mount -obind "$mnt" "$BUILDPLACE/$mntpoint"; then
+            mount $MOUNTPARAMS "$mnt" "$BUILDPLACE/$mntpoint"; then
             # successful.
             mounted[${#mounted[@]}]="$BUILDPLACE/$mnt"
         else
diff -Nru pbuilder-0.228.3/pbuilderrc.5 pbuilder-0.228.4/pbuilderrc.5
--- pbuilder-0.228.3/pbuilderrc.5	2017-01-18 13:38:23.000000000 +0100
+++ pbuilder-0.228.4/pbuilderrc.5	2017-02-05 16:28:58.000000000 +0100
@@ -82,14 +82,18 @@
 .EE
 .TP
 .BI "BUILDDIR=" "/build"
-The directory inside the chroot where the build happens. This will also be the
-.B HOME
-of the build user.
+The directory inside the chroot where the build happens.
+This directory will contain the build products; the source packages will be
+unpacked in a subdirectory therein contained, named
+.IR $srcpkg - $ver ,
+with
+.I $ver
+being the upstream part of the version, without epoch and debian revision.
 
 Attention! Some directories \(em such as
 .B /tmp
-\(em are not safe to use since they can be world-writable, and external user can
-temper with the build process.
+\(em are not safe to use since they can be world-writable, and external users
+can temper with the build process.
 .TP
 .BI "BUILDPLACE=" "/var/cache/pbuilder/build/"
 The default place which the chroot is constructed.

Attachment: signature.asc
Description: PGP signature


--- End Message ---
--- Begin Message ---
Mattia Rizzolo:
> package: release.debian.org
> user: release.debian.org@packages.debian.org
> usertags: unblock
> 
> Hi!
> 
> I just uploaded a pbuilder adding a very small undocumented feature to
> help with the reproducible builds project.
> You can find the small debdiff attached.
> 
> Previously r-b was using an undocumented and undefined behaviour of
> pbuilder that just `cd /build/*/debian/..` to move into the unpackaged
> source; 0.228 changed this with a well defined `cd /build/$pkg-$ver`
> (also started to call `dpkg-source` with that parameter).  r-b has been
> test building packages in different build paths
>     /build/1st/$pkg-$ver     vs   /build/$pkg-$ver/2nd
> and using a hook to mangle the paths, etc; with 0.228 this wouldn't be
> possible at all (as the `cd` call would fail).
> 0.228.4 adds an undocumented conf variable BUILDSUBDIR to specify the
> name of the final source directory, making this work pssible again.
> 
> Thanks for considering!
> 

Unlocked, thanks.

~Niels

--- End Message ---

Reply to: