From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:46884) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fEKe4-0000JS-67 for guix-patches@gnu.org; Thu, 03 May 2018 16:16:05 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fEKe2-0008GE-Vy for guix-patches@gnu.org; Thu, 03 May 2018 16:16:04 -0400 Received: from debbugs.gnu.org ([208.118.235.43]:40716) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fEKe2-0008Fz-SD for guix-patches@gnu.org; Thu, 03 May 2018 16:16:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1fEKe2-0003jS-H6 for guix-patches@gnu.org; Thu, 03 May 2018 16:16:02 -0400 Subject: [bug#31360] [PATCH 0/5] 'guix pack --relocatable' Resent-Message-ID: Received: from eggs.gnu.org ([2001:4830:134:3::10]:46757) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fEKdq-00009k-6Y for guix-patches@gnu.org; Thu, 03 May 2018 16:15:51 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fEKdo-00087n-Ty for guix-patches@gnu.org; Thu, 03 May 2018 16:15:50 -0400 From: Ludovic =?UTF-8?Q?Court=C3=A8s?= Date: Thu, 3 May 2018 22:15:31 +0200 Message-Id: <20180503201531.22213-1-ludo@gnu.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: 31360@debbugs.gnu.org Hello Guix! This is the cleaned up version of what we discussed at: https://lists.gnu.org/archive/html/guix-devel/2018-04/msg00252.html Part of the work here is to use relative symlinks in profiles and in links created with ‘guix pack -S’ such that, if you run: guix pack -R -S /mybin=bin bash-static you can then unpack the result and run: ./mybin/sh For ‘guix pack -R’ I started providing the framework so that ‘guix pack --bootstrap’ would use the bootstrap C compiler, which in turn would allow us to add a unit test. Unfortunately, since ‘glibc-bootstrap’ lacks ‘libc.a’, we cannot do that. Anyway feedback welcome! I invite you to give it a try if you have a non-Guix machine at hand, it’s pretty fun. :-) What remains to be seen is the implications for the binary installation tarball: what if we created it with -R? Would it be of any use? I guess ‘guix-daemon’ would still need to run with --disable-chroot because build users would be missing. Maybe we should change ‘guix-daemon’ to do something sensible in that case? Ludo’. Ludovic Courtès (5): union: Add 'relative-file-name'. profiles: Optionally use relative file names for symlink targets. profiles: Allow lowerable objects other than packages in . search-paths: Add 'set-search-paths'. pack: Add '--relocatable'. Makefile.am | 3 +- doc/guix.texi | 42 ++++ gnu/packages/aux-files/run-in-namespace.c | 264 ++++++++++++++++++++++ guix/build/profiles.scm | 14 +- guix/build/union.scm | 48 +++- guix/profiles.scm | 19 +- guix/scripts/pack.scm | 177 ++++++++++++++- guix/search-paths.scm | 15 +- tests/guix-pack.sh | 10 +- tests/profiles.scm | 46 ++++ tests/union.scm | 18 ++ tests/utils.scm | 2 +- 12 files changed, 635 insertions(+), 23 deletions(-) create mode 100644 gnu/packages/aux-files/run-in-namespace.c -- 2.17.0