aboutsummaryrefslogtreecommitdiff
path: root/build-aux/pre-inst-env.in
blob: cd90a06cbc70af4aacf4bfc363fd3e342a1a9c3b (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#!/bin/sh

# GNU Guix --- Functional package management for GNU
# Copyright © 2012, 2013, 2014, 2015, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
# Copyright © 2017 Eric Bavier <bavier@cray.com>
#
# This file is part of GNU Guix.
#
# GNU Guix is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or (at
# your option) any later version.
#
# GNU Guix is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.

# Usage: ./pre-inst-env COMMAND ARG...
#
# Run COMMAND in a pre-installation environment.  Typical use is
# "./pre-inst-env guix build hello".

# By default we may end up with absolute directory names that contain '..',
# which get into $GUILE_LOAD_PATH, leading to '..' in the module file names
# recorded by Guile.  To avoid that, make sure we get a real absolute
# directory name.  Additionally, use '-P' to get the canonical directory name
# so that Guile's 'relative' %file-port-name-canonicalization can actually
# work (see <http://bugs.gnu.org/17935>.)
abs_top_srcdir="`cd "@abs_top_srcdir@" > /dev/null; pwd -P`"
abs_top_builddir="`cd "@abs_top_builddir@" > /dev/null; pwd -P`"

GUILE_LOAD_COMPILED_PATH="$abs_top_builddir${GUILE_LOAD_COMPILED_PATH:+:}$GUILE_LOAD_COMPILED_PATH"
GUILE_LOAD_PATH="$abs_top_builddir:$abs_top_srcdir${GUILE_LOAD_PATH:+:}$GUILE_LOAD_PATH"
export GUILE_LOAD_COMPILED_PATH GUILE_LOAD_PATH

# Define $PATH so that `guix' and friends are easily found.

PATH="$abs_top_builddir/scripts:$abs_top_builddir:$PATH"
export PATH

# The daemon invokes 'guix'; tell it which one to use.
GUIX="$abs_top_builddir/scripts/guix"
export GUIX

# Define $GUIX_UNINSTALLED to prevent `guix' from
# prepending @guilemoduledir@ to the Guile load paths.

GUIX_UNINSTALLED=1
export GUIX_UNINSTALLED

exec "$@"
les/linux-libre/4.17-arm.conf, gnu/packages/aux-files/linux-libre/4.17-arm64.conf, gnu/packages/aux-files/linux-libre/4.17-i686.conf, gnu/packages/aux-files/linux-libre/4.17-x86_64.conf: Delete files. * gnu/packages/aux-files/linux-libre/4.18-arm.conf, gnu/packages/aux-files/linux-libre/4.18-arm64.conf, gnu/packages/aux-files/linux-libre/4.18-i686.conf, gnu/packages/aux-files/linux-libre/4.18-x86_64.conf: New files. * Makefile.am (AUX_FILES): Update accordingly. Mark H Weaver 2018-07-04gnu: Remove linux-libre@4.1....* gnu/packages/linux.scm (linux-libre-4.1): Remove variable. * gnu/packages/aux-files/linux-libre/4.1-i686.conf, gnu/packages/aux-files/linux-libre/4.1-x86_64.conf: Delete files. * Makefile.am (AUX_FILES): Remove them. Mark H Weaver 2018-06-05gnu: linux-libre: Update to 4.17....* gnu/packages/linux.scm (%linux-libre-version): Update to 4.17. (%linux-libre-hash): Update hash. * gnu/packages/aux-files/linux-libre/4.16-arm.conf, gnu/packages/aux-files/linux-libre/4.16-arm64.conf, gnu/packages/aux-files/linux-libre/4.16-i686.conf, gnu/packages/aux-files/linux-libre/4.16-x86_64.conf: Delete files. * gnu/packages/aux-files/linux-libre/4.17-arm.conf, gnu/packages/aux-files/linux-libre/4.17-arm64.conf, gnu/packages/aux-files/linux-libre/4.17-i686.conf, gnu/packages/aux-files/linux-libre/4.17-x86_64.conf: New files. * Makefile.am (AUX_FILES): Adjust accordingly. Mark H Weaver 2018-05-21gnu: linux-libre: Enable build for aarch64-linux....* gnu/packages/linux.scm (%linux-compatible-systems): Add aarch64-linux. (linux-libre-4.14): Limit to x86_64-linux, i686-linux and armhf-linux. * gnu/packages/aux-files/linux-libre/4.16-arm64.conf: New file. * Makefile.am (AUX_FILES): Add 4.16-arm64.conf. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Vagrant Cascadian 2018-05-11pack: Relocatable wrapper now properly maps the current UID/GID....* gnu/packages/aux-files/run-in-namespace.c (write_id_map) (disallow_setgroups): New functions. (main): Use 'clone' via 'syscall' instead of 'fork' followed by 'unshare'. Add calls to 'disallow_setgroups' and 'write_id_map' in the parent process. Ludovic Courtès 2018-05-10pack: Add '--relocatable'....* gnu/packages/aux-files/run-in-namespace.c: New file. * Makefile.am (AUX_FILES): Add it. * guix/scripts/pack.scm (<c-compiler>): New record type. (c-compiler, bootstrap-c-compiler, c-compiler-compiler): New procedures. (self-contained-tarball): Use 'relative-file-name' for the SOURCE -> TARGET symlink. (docker-image): Add 'defmod' to please Geiser. (wrapped-package, map-manifest-entries): New procedures. (%options, show-help): Add --relocatable. (guix-pack): Honor it. Ludovic Courtès 2018-04-11gnu: linux-libre: Update to 4.16.1....* gnu/packages/linux.scm (%linux-libre-version): Update to 4.16.1. (%linux-libre-hash): Update hash. * gnu/packages/aux-files/linux-libre/4.15-arm.conf, gnu/packages/aux-files/linux-libre/4.15-i686.conf, gnu/packages/aux-files/linux-libre/4.15-x86_64.conf: Delete files. * gnu/packages/aux-files/linux-libre/4.16-arm.conf, gnu/packages/aux-files/linux-libre/4.16-i686.conf, gnu/packages/aux-files/linux-libre/4.16-x86_64.conf: New files. * Makefile.am (AUX_FILES): Update accordingly. Mark H Weaver 2018-01-30gnu: linux-libre: Update to 4.15, while retaining 4.14 LTS....* gnu/packages/linux.scm (%linux-libre-version): Update to 4.15. (%linux-libre-hash): Update hash. (%linux-libre-arm-generic-4.14, %linux-libre-arm-omap2plus-4.14) (%linux-libre-4.1-version, %linux-libre-4.1-hash): New variables. * gnu/packages/aux-files/linux-libre/4.15-arm.conf, gnu/packages/aux-files/linux-libre/4.15-i686.conf, gnu/packages/aux-files/linux-libre/4.15-x86_64.conf: New files. * Makefile.am (AUX_FILES): Add them. Mark H Weaver 2018-01-30gnu: linux-libre: Update configuration files to latest releases....* gnu/packages/aux-files/linux-libre/4.14-i686.conf, gnu/packages/aux-files/linux-libre/4.14-x86_64.conf, gnu/packages/aux-files/linux-libre/4.9-i686.conf, gnu/packages/aux-files/linux-libre/4.9-x86_64.conf, gnu/packages/aux-files/linux-libre/4.4-i686.conf, gnu/packages/aux-files/linux-libre/4.4-x86_64.conf, gnu/packages/aux-files/linux-libre/4.1-i686.conf, gnu/packages/aux-files/linux-libre/4.1-x86_64.conf: Update using "make oldconfig" on the latest point releases. Mark H Weaver 2018-01-30gnu: linux-libre: NVME core support is now built-in....* gnu/system/linux-initrd.scm (base-initrd)[linux-modules]: Remove "nvme". * gnu/packages/aux-files/linux-libre/4.1-i686.conf, gnu/packages/aux-files/linux-libre/4.1-x86_64.conf, gnu/packages/aux-files/linux-libre/4.4-i686.conf, gnu/packages/aux-files/linux-libre/4.4-x86_64.conf: Set CONFIG_BLK_DEV_NVME=y. * gnu/packages/aux-files/linux-libre/4.9-i686.conf, gnu/packages/aux-files/linux-libre/4.9-x86_64.conf, gnu/packages/aux-files/linux-libre/4.14-arm.conf, gnu/packages/aux-files/linux-libre/4.14-i686.conf, gnu/packages/aux-files/linux-libre/4.14-x86_64.conf: Set CONFIG_BLK_DEV_NVME=y and CONFIG_NVME_CORE=y. Mark H Weaver 2017-12-26gnu: linux-libre: Adapt to renamed configuration options in 4.14.9....This is a followup to commit 95b969bc9cde419e9cfcf4299a7524381ae7a64d. * gnu/packages/aux-files/linux-libre/4.14-x86_64.conf, gnu/packages/aux-files/linux-libre/4.14-i686.conf: Adapt to the configuration options being renamed from CONFIG_*_UNWINDER to CONFIG_UNWINDER_* in version 4.14.9. Mark H Weaver 2017-11-23linux-libre: Adapt some arm options to match intel conf....* gnu/packages/aux-files/linux-libre/4.14-arm.conf: GuixSD base-initrd expects ext4 and fat filesystem to be built-in. Adapt configuration accordingly. Also set devtmpfs_mount to yes. Mathieu Othacehe 2017-11-18gnu: linux-libre: Remove Tegra DRM from arm configuration....The code fails to compile on armhf using our configuration. See <https://patchwork.kernel.org/patch/9688615/> for details. * gnu/packages/aux-files/linux-libre/4.14-arm.conf: Remove Tegra DRM support. Mark H Weaver 2017-11-18gnu: linux-libre: Remove Nouveau from arm configuration....The Nouveau code fails to compile on armhf with our configuration. * gnu/packages/aux-files/linux-libre/4.14-arm.conf: Disable Nouveau. Mark H Weaver 2017-11-16gnu: linux-libre: Update to 4.14....* gnu/packages/linux.scm (%linux-libre-version): Update to 4.14. (%linux-libre-hash): Update hash. * gnu/packages/aux-files/linux-libre/4.13-arm.conf, gnu/packages/aux-files/linux-libre/4.13-i686.conf, gnu/packages/aux-files/linux-libre/4.13-x86_64.conf: Delete files. * gnu/packages/aux-files/linux-libre/4.14-arm.conf, gnu/packages/aux-files/linux-libre/4.14-i686.conf, gnu/packages/aux-files/linux-libre/4.14-x86_64.conf: New files. * Makefile.am (AUX_FILES): Update accordingly. Mark H Weaver 2017-11-09gnu: linux: Add linux-libre arm kernel....* Makefile.am (AUX_FILES): Add arm config file. * gnu/packages/aux-files/linux-libre/4.13-arm.conf: New file. * gnu/packages/linux.scm (%intel-compatible-systems): Rename to %linux-compatible-systems and add "armhf-linux". (linux-libre): Adapt consequently. The config file for arm is taken from debian armmp kernel. It's a generic firmware for ARMv7 multiplatform compatible SoCs. Mathieu Othacehe 2017-09-04gnu: linux-libre: Update to 4.13....* gnu/packages/linux.scm (%linux-libre-version): Update to 4.13. (%linux-libre-hash): Update hash. * gnu/packages/aux-files/linux-libre/4.12-i686.conf, gnu/packages/aux-files/linux-libre/4.12-x86_64.conf: Delete files. * gnu/packages/aux-files/linux-libre/4.13-i686.conf, gnu/packages/aux-files/linux-libre/4.13-x86_64.conf: New files. * Makefile.am (AUX_FILES): Adjust accordingly. Mark H Weaver