distro: Search bootstrap binaries and patches in %LOAD-PATH.
* Makefile.am (patchdir, bootstrapdir): Change to be sub-directories of $(guilemoduledir). (.scm.go): Remove `DISTRO_' environment variables. * distro.scm (not-colon): Remove. (%patch-path, %bootstrap-binaries-path): Default to sub-directories of the entries in %LOAD-PATH. * pre-inst-env.in: Remove definition of `DISTRO_' environment variables.master
parent
fe7777c14b
commit
0b3651bc93
|
@ -87,7 +87,7 @@ GOBJECTS = $(MODULES:%.scm=%.go) guix/config.go
|
||||||
|
|
||||||
nobase_dist_guilemodule_DATA = $(MODULES)
|
nobase_dist_guilemodule_DATA = $(MODULES)
|
||||||
|
|
||||||
patchdir = $(pkgdatadir)/patches
|
patchdir = $(guilemoduledir)/distro/packages/patches
|
||||||
dist_patch_DATA = \
|
dist_patch_DATA = \
|
||||||
distro/packages/patches/binutils-ld-new-dtags.patch \
|
distro/packages/patches/binutils-ld-new-dtags.patch \
|
||||||
distro/packages/patches/diffutils-gets-undeclared.patch \
|
distro/packages/patches/diffutils-gets-undeclared.patch \
|
||||||
|
@ -108,7 +108,7 @@ dist_patch_DATA = \
|
||||||
distro/packages/patches/shishi-gets-undeclared.patch \
|
distro/packages/patches/shishi-gets-undeclared.patch \
|
||||||
distro/packages/patches/tar-gets-undeclared.patch
|
distro/packages/patches/tar-gets-undeclared.patch
|
||||||
|
|
||||||
bootstrapdir = $(pkgdatadir)/bootstrap
|
bootstrapdir = $(guilemoduledir)/distro/packages/bootstrap
|
||||||
bootstrap_x86_64_linuxdir = $(bootstrapdir)/x86_64-linux
|
bootstrap_x86_64_linuxdir = $(bootstrapdir)/x86_64-linux
|
||||||
bootstrap_i686_linuxdir = $(bootstrapdir)/i686-linux
|
bootstrap_i686_linuxdir = $(bootstrapdir)/i686-linux
|
||||||
|
|
||||||
|
@ -196,8 +196,6 @@ CLEANFILES = $(GOBJECTS) *.log
|
||||||
|
|
||||||
.scm.go:
|
.scm.go:
|
||||||
$(MKDIR_P) `dirname "$@"`
|
$(MKDIR_P) `dirname "$@"`
|
||||||
DISTRO_INSTALLED_PATCH_DIRECTORY="$(patchdir)" \
|
|
||||||
DISTRO_INSTALLED_BOOTSTRAP_DIRECTORY="$(bootstrapdir)" \
|
|
||||||
$(top_builddir)/pre-inst-env \
|
$(top_builddir)/pre-inst-env \
|
||||||
$(GUILD) compile -L "$(top_builddir)" -L "$(top_srcdir)" \
|
$(GUILD) compile -L "$(top_builddir)" -L "$(top_srcdir)" \
|
||||||
-Wformat -Wunbound-variable -Warity-mismatch \
|
-Wformat -Wunbound-variable -Warity-mismatch \
|
||||||
|
|
21
distro.scm
21
distro.scm
|
@ -26,6 +26,7 @@
|
||||||
#:export (search-patch
|
#:export (search-patch
|
||||||
search-bootstrap-binary
|
search-bootstrap-binary
|
||||||
%patch-directory
|
%patch-directory
|
||||||
|
%bootstrap-binaries-path
|
||||||
fold-packages
|
fold-packages
|
||||||
find-packages-by-name))
|
find-packages-by-name))
|
||||||
|
|
||||||
|
@ -38,23 +39,21 @@
|
||||||
|
|
||||||
(define _ (cut gettext <> "guix"))
|
(define _ (cut gettext <> "guix"))
|
||||||
|
|
||||||
(define not-colon
|
;; By default, we store patches and bootstrap binaries alongside Guile
|
||||||
;; The char set that contains all the characters but `:'.
|
;; modules. This is so that these extra files can be found without
|
||||||
(char-set-complement (char-set #\:)))
|
;; requiring a special setup, such as a specific installation directory
|
||||||
|
;; and an extra environment variable. One advantage of this setup is
|
||||||
|
;; that everything just works in an auto-compilation setting.
|
||||||
|
|
||||||
(define %patch-path
|
(define %patch-path
|
||||||
(make-parameter
|
(make-parameter
|
||||||
(or (and=> (getenv "DISTRO_PATCH_PATH")
|
(map (cut string-append <> "/distro/packages/patches")
|
||||||
(cut string-tokenize <> not-colon))
|
%load-path)))
|
||||||
(compile-time-value
|
|
||||||
(list (getenv "DISTRO_INSTALLED_PATCH_DIRECTORY"))))))
|
|
||||||
|
|
||||||
(define %bootstrap-binaries-path
|
(define %bootstrap-binaries-path
|
||||||
(make-parameter
|
(make-parameter
|
||||||
(or (and=> (getenv "DISTRO_BOOTSTRAP_PATH")
|
(map (cut string-append <> "/distro/packages/bootstrap")
|
||||||
(cut string-tokenize <> not-colon))
|
%load-path)))
|
||||||
(compile-time-value
|
|
||||||
(list (getenv "DISTRO_INSTALLED_BOOTSTRAP_DIRECTORY"))))))
|
|
||||||
|
|
||||||
(define (search-patch file-name)
|
(define (search-patch file-name)
|
||||||
"Search the patch FILE-NAME."
|
"Search the patch FILE-NAME."
|
||||||
|
|
|
@ -23,12 +23,8 @@
|
||||||
# Run COMMAND in a pre-installation environment. Typical use is
|
# Run COMMAND in a pre-installation environment. Typical use is
|
||||||
# "./pre-inst-env guix-build hello".
|
# "./pre-inst-env guix-build hello".
|
||||||
|
|
||||||
DISTRO_PATCH_PATH="@abs_top_srcdir@/distro/packages/patches"
|
|
||||||
DISTRO_BOOTSTRAP_PATH="@abs_top_srcdir@/distro/packages/bootstrap:@abs_top_builddir@/distro/packages/bootstrap"
|
|
||||||
GUILE_LOAD_COMPILED_PATH="@abs_top_builddir@${GUILE_LOAD_COMPILED_PATH:+:}$GUILE_LOAD_COMPILED_PATH"
|
GUILE_LOAD_COMPILED_PATH="@abs_top_builddir@${GUILE_LOAD_COMPILED_PATH:+:}$GUILE_LOAD_COMPILED_PATH"
|
||||||
GUILE_LOAD_PATH="@abs_top_srcdir@${GUILE_LOAD_PATH:+:}:$GUILE_LOAD_PATH"
|
GUILE_LOAD_PATH="@abs_top_builddir@:@abs_top_srcdir@${GUILE_LOAD_PATH:+:}:$GUILE_LOAD_PATH"
|
||||||
|
|
||||||
export DISTRO_PATCH_PATH DISTRO_BOOTSTRAP_PATH
|
|
||||||
export GUILE_LOAD_COMPILED_PATH GUILE_LOAD_PATH
|
export GUILE_LOAD_COMPILED_PATH GUILE_LOAD_PATH
|
||||||
|
|
||||||
# Define $PATH so that `guix-build' and friends are easily found.
|
# Define $PATH so that `guix-build' and friends are easily found.
|
||||||
|
|
Reference in New Issue