Fix for debootstrap

  • Done
  • quality assurance status badge
Details
2 participants
  • Ludovic Courtès
  • Vagrant Cascadian
Owner
unassigned
Submitted by
Vagrant Cascadian
Severity
normal

Debbugs page

Vagrant Cascadian wrote 6 years ago
(address . guix-patches@gnu.org)
87zhmz251w.fsf@yucca
The attached patch includes a fix so that debootstrap can be run in a
single patch. Currently, this fails:

debootstrap --arch=amd64 buster $(mktemp -d) http://deb.debian.org/debian

With this in the log:

/gnu/store/ah0rr88xmn28f32whhpbdcxwind0c74z-debootstrap-1.0.114/share/debootstrap/functions:
line 1056: chroot: command not found
/gnu/store/ah0rr88xmn28f32whhpbdcxwind0c74z-debootstrap-1.0.114/share/debootstrap/functions:
line 1062: grep: command not found
/gnu/store/ah0rr88xmn28f32whhpbdcxwind0c74z-debootstrap-1.0.114/share/debootstrap/functions:
line 1062: head: command not found
/gnu/store/ah0rr88xmn28f32whhpbdcxwind0c74z-debootstrap-1.0.114/share/debootstrap/functions:
line 1062: cut: command not found
/gnu/store/ah0rr88xmn28f32whhpbdcxwind0c74z-debootstrap-1.0.114/share/debootstrap/functions:
line 1062: sed: command not found

The workaround documented in the package description is to use
--foreign-arch and then follow up with a chroot call into to the newly
created chroot and finish up running /debootstrap/debootstrap, but this
fails for other reasons as well (/bin/sh in /debootstrap/debootstrap is
set to /gnu/store.../bin/sh which isn't present in the Debian
chroot)... and is a bit cumbersome for the end-user.


I *think* the best fix for this is to fix the hard-coded PATH in several
places places to also include $PATH, which I've proposed upstream:



The attached patch approximates the proposed upstream patch for guix,
and works for me so you can do a single call to debootstrap without the
complicated chroot /debootstrap/debootstrap PATH-setting dance.


live well,
vagrant
From bb00c031e0037eb8edd9db2ab06f630109237d0a Mon Sep 17 00:00:00 2001
From: Vagrant Cascadian <vagrant@debian.org>
Date: Sun, 2 Jun 2019 11:34:33 -0700
Subject: [PATCH] gnu: debootstrap: Workaround for PATH issues.

* gnu/packages/debian (debootstrap):
[arguments]: Substitute PATH to include $PATH.
[description]: Remove obsolete workaround from description.
---
gnu/packages/debian.scm | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)

Toggle diff (29 lines)
diff --git a/gnu/packages/debian.scm b/gnu/packages/debian.scm
index 1b401bc946..f94f49c51b 100644
--- a/gnu/packages/debian.scm
+++ b/gnu/packages/debian.scm
@@ -154,6 +154,11 @@ contains the archive keys used for that.")
(("/usr") ubuntu))
(substitute* "debootstrap"
(("=/usr") (string-append "=" out)))
+ ;; Ensure PATH works both in guix and within the debian chroot
+ ;; workaround for: https://bugs.debian.org/929889
+ (substitute* "functions"
+ (("PATH=/sbin:/usr/sbin:/bin:/usr/bin")
+ "PATH=$PATH:/sbin:/usr/sbin:/bin:/usr/bin"))
(substitute* (find-files "scripts" ".")
(("/usr/share/zoneinfo") (string-append tzdata "/share/zoneinfo")))
#t)))
@@ -184,9 +189,5 @@ contains the archive keys used for that.")
(description "Debootstrap is used to create a Debian base system from
scratch, without requiring the availability of @code{dpkg} or @code{apt}.
It does this by downloading .deb files from a mirror site, and carefully
-unpacking them into a directory which can eventually be chrooted into.
-
-It is recommended to run @code{debootstrap --foreign --arch=...} and then
-@code{chroot} into the directory, set the PATH and run @code{debootstrap
---second-stage} after.")
+unpacking them into a directory which can eventually be chrooted into.")
(license license:gpl2)))
--
2.20.1
-----BEGIN PGP SIGNATURE-----

iHUEARYKAB0WIQRlgHNhO/zFx+LkXUXcUY/If5cWqgUCXPQa6wAKCRDcUY/If5cW
qiYzAQDME6cMcKU0+gdSLxXAZc5b3EbCMzyU/2pH+RcuuimZDgEAszaDSrarksys
FJTDzNW1AHPy9JNMOvfJMr0hJqOrUQc=
=TLtR
-----END PGP SIGNATURE-----

Ludovic Courtès wrote 6 years ago
(name . Vagrant Cascadian)(address . vagrant@debian.org)(address . 36057@debbugs.gnu.org)
877ea012r5.fsf@gnu.org
Hi Vagrant,

Vagrant Cascadian <vagrant@debian.org> skribis:

Toggle quote (9 lines)
> From bb00c031e0037eb8edd9db2ab06f630109237d0a Mon Sep 17 00:00:00 2001
> From: Vagrant Cascadian <vagrant@debian.org>
> Date: Sun, 2 Jun 2019 11:34:33 -0700
> Subject: [PATCH] gnu: debootstrap: Workaround for PATH issues.
>
> * gnu/packages/debian (debootstrap):
> [arguments]: Substitute PATH to include $PATH.
> [description]: Remove obsolete workaround from description.

It LGTM, and I think we can trust your judgment anyway. ;-)

Thank you,
Ludo’.
Vagrant Cascadian wrote 6 years ago
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 36057-done@debbugs.gnu.org)
878sug0y1y.fsf@yucca
On 2019-06-05, Ludovic Courtès wrote:
Toggle quote (13 lines)
> Vagrant Cascadian <vagrant@debian.org> skribis:
>
>> From bb00c031e0037eb8edd9db2ab06f630109237d0a Mon Sep 17 00:00:00 2001
>> From: Vagrant Cascadian <vagrant@debian.org>
>> Date: Sun, 2 Jun 2019 11:34:33 -0700
>> Subject: [PATCH] gnu: debootstrap: Workaround for PATH issues.
>>
>> * gnu/packages/debian (debootstrap):
>> [arguments]: Substitute PATH to include $PATH.
>> [description]: Remove obsolete workaround from description.
>
> It LGTM, and I think we can trust your judgment anyway. ;-)

Ok, pushed to master!

live well,
vagrant
-----BEGIN PGP SIGNATURE-----

iHUEARYKAB0WIQRlgHNhO/zFx+LkXUXcUY/If5cWqgUCXPf0mQAKCRDcUY/If5cW
qnkCAP4xeBd+MO0siHi2ZyTvwCIie7Zjcxz4X0/G2y9osZbf3QD/bxcHoUb+xo3j
ELcCnkF0RG/WgxTyJnh33eZz9OxgEwk=
=oP+m
-----END PGP SIGNATURE-----

Closed
?
Your comment

This issue is archived.

To comment on this conversation send an email to 36057@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 36057
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch
You may also tag this issue. See list of standard tags. For example, to set the confirmed and easy tags
mumi command -t +confirmed -t +easy
Or, remove the moreinfo tag and set the help tag
mumi command -t -moreinfo -t +help