Hi,

On Wed, 17 Aug 2022 18:20:36 +0200 Johannes Schauer Marin Rodrigues 
<jo...@debian.org> wrote:
> On Wed, 16 Mar 2022 13:30:26 +0100 Johannes Schauer Marin Rodrigues 
> <jo...@debian.org> wrote:
> > when creating chroots for new architectures that are in the process of being
> > bootstrapped without yet having emulation support from qemu, it is not
> > possible to run maintainer scripts inside the foreign architecture chroot
> > because foreign architecture ELF binaries cannot be executed. The solution 
> > to
> > that problem is to run maintainer scripts from outside the chroot and use 
> > the
> > DPKG_ROOT environment variable to instruct the maintainer script on which
> > chroot to operate. By default, for normal installations, that environment
> > variable is set, but empty.
> > 
> > Apart from init-system-helpers and pam, all packages in the
> > Essential:yes set have support for DPKG_ROOT already. To start building
> > packages we also need to install build-essential.
> > 
> > Please consider applying the patch from this merge request:
> > 
> > https://salsa.debian.org/toolchain-team/gcc-defaults/-/merge_requests/4
> > 
> > We tested it in our CI environment and it produces a bit-by-bit
> > identical chroot with DPKG_ROOT compared to a normal installation.
> > 
> > https://salsa.debian.org/helmutg/dpkg-root-demo/
> > 
> > Since the DPKG_ROOT variable is empty on normal installations, the patch
> > should have no effect in the normal case.
> 
> I wanted to send a friendly ping about this bug. I see that since I filed this
> bug, you uploaded three new versions of gcc-defaults. Please consider applying
> the changes of above merge request against gcc-defaults on salsa. Here is the
> diff in plain text for your convenience:
> 
> --- a/debian/g++.postinst.in
> +++ b/debian/g++.postinst.in
> @@ -2,9 +2,9 @@
> 
>  # remove the doc dir, if it's still a directory and replace with a symlink
>  pkg=`basename $0 .postinst`
> -if [ ! -L  /usr/share/doc/$pkg ]; then
> -    rm -rf /usr/share/doc/$pkg
> -    ln -s cpp /usr/share/doc/$pkg
> +if [ ! -L  "$DPKG_ROOT/usr/share/doc/$pkg" ]; then
> +    rm -rf "$DPKG_ROOT/usr/share/doc/$pkg"
> +    ln -s cpp "$DPKG_ROOT/usr/share/doc/$pkg"
>  fi
> 
>  # fix for report #138038: remove old diversions

I uploaded an NMU of gcc-defaults with the maximum delay of 15 days. Please
cancel if you disagree. Full debdiff attached.

Thanks!

cheers, josch
diff -Nru gcc-defaults-1.200/debian/changelog gcc-defaults-1.200+nmu1/debian/changelog
--- gcc-defaults-1.200/debian/changelog	2022-07-22 17:31:39.000000000 +0200
+++ gcc-defaults-1.200+nmu1/debian/changelog	2022-08-28 08:23:21.000000000 +0200
@@ -1,3 +1,10 @@
+gcc-defaults (1.200+nmu1) unstable; urgency=medium
+
+  * Non-maintainer upload.
+  * Support DPKG_ROOT in g++ postinst (closes: #1007764)
+
+ -- Johannes Schauer Marin Rodrigues <jo...@debian.org>  Sun, 28 Aug 2022 08:23:21 +0200
+
 gcc-defaults (1.200) unstable; urgency=medium
 
   * Stop building gccbrig, removed in GCC 12.
diff -Nru gcc-defaults-1.200/debian/g++.postinst.in gcc-defaults-1.200+nmu1/debian/g++.postinst.in
--- gcc-defaults-1.200/debian/g++.postinst.in	2020-11-17 19:53:07.000000000 +0100
+++ gcc-defaults-1.200+nmu1/debian/g++.postinst.in	2022-08-28 08:23:21.000000000 +0200
@@ -2,9 +2,9 @@
 
 # remove the doc dir, if it's still a directory and replace with a symlink
 pkg=`basename $0 .postinst`
-if [ ! -L  /usr/share/doc/$pkg ]; then
-    rm -rf /usr/share/doc/$pkg
-    ln -s cpp /usr/share/doc/$pkg
+if [ ! -L  "$DPKG_ROOT/usr/share/doc/$pkg" ]; then
+    rm -rf "$DPKG_ROOT/usr/share/doc/$pkg"
+    ln -s cpp "$DPKG_ROOT/usr/share/doc/$pkg"
 fi
 
 # fix for report #138038: remove old diversions

Attachment: signature.asc
Description: signature

Reply via email to