rekado pushed a commit to branch wip-installer in repository guix. commit fad5f5fb8dffb4a1cbe40ee9d31a346b901305d1 Author: Ricardo Wurmus <rek...@elephly.net> Date: Mon Feb 20 17:26:35 2017 +0100
installer: Only build if guile-ncurses is available. * configure.ac: Set HAVE_GUILE_NCURSES if Guile ncurses is available. * Makefile.am (MODULES): Add gurses modules only when HAVE_GUILE_NCURSES is true. * gnu/local.mk (GNU_SYSTEM_MODULES): Add the installer modules only when HAVE_GUILE_NCURSES is true. * guix/scripts/system.scm: Avoid loading the installer module. --- Makefile.am | 14 +++++++++---- configure.ac | 4 ++++ gnu/local.mk | 55 +++++++++++++++++++++++++++---------------------- guix/scripts/system.scm | 7 ++++++- 4 files changed, 50 insertions(+), 30 deletions(-) diff --git a/Makefile.am b/Makefile.am index 2f9bf47..0a8c6a6 100644 --- a/Makefile.am +++ b/Makefile.am @@ -30,10 +30,6 @@ nodist_noinst_SCRIPTS = \ include gnu/local.mk MODULES = \ - gurses/buttons.scm \ - gurses/form.scm \ - gurses/menu.scm \ - gurses/stexi.scm \ guix/base32.scm \ guix/base64.scm \ guix/cpio.scm \ @@ -166,6 +162,16 @@ MODULES = \ guix.scm \ $(GNU_SYSTEM_MODULES) +if HAVE_GUILE_NCURSES + +MODULES += \ + gurses/buttons.scm \ + gurses/form.scm \ + gurses/menu.scm \ + gurses/stexi.scm + +endif + if HAVE_GUILE_JSON MODULES += \ diff --git a/configure.ac b/configure.ac index 06b0618..3dff7cb 100644 --- a/configure.ac +++ b/configure.ac @@ -95,6 +95,10 @@ dnl guile-json is used for the PyPI package importer GUILE_MODULE_AVAILABLE([have_guile_json], [(json)]) AM_CONDITIONAL([HAVE_GUILE_JSON], [test "x$have_guile_json" = "xyes"]) +dnl guile-ncurses is used for the system installer +GUILE_MODULE_AVAILABLE([have_guile_ncurses], [(ncurses curses)]) +AM_CONDITIONAL([HAVE_GUILE_NCURSES], [test "x$have_guile_ncurses" = "xyes"]) + dnl Make sure we have a full-fledged Guile. GUIX_ASSERT_GUILE_FEATURES([regex posix socket net-db threads]) diff --git a/gnu/local.mk b/gnu/local.mk index 67fe767..9c0f278 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -443,31 +443,6 @@ GNU_SYSTEM_MODULES = \ %D%/system/shadow.scm \ %D%/system/vm.scm \ \ - %D%/system/installer/filesystems.scm \ - %D%/system/installer/network.scm \ - %D%/system/installer/wireless.scm \ - %D%/system/installer/install.scm \ - %D%/system/installer/dialog.scm \ - %D%/system/installer/hostname.scm \ - %D%/system/installer/mount-point.scm \ - %D%/system/installer/guixsd-installer.scm \ - %D%/system/installer/disks.scm \ - %D%/system/installer/format.scm \ - %D%/system/installer/locale.scm \ - %D%/system/installer/levelled-stack.scm \ - %D%/system/installer/ping.scm \ - %D%/system/installer/key-map.scm \ - %D%/system/installer/role.scm \ - %D%/system/installer/user-edit.scm \ - %D%/system/installer/users.scm \ - %D%/system/installer/utils.scm \ - %D%/system/installer/page.scm \ - %D%/system/installer/passphrase.scm \ - %D%/system/installer/configure.scm \ - %D%/system/installer/time-zone.scm \ - %D%/system/installer/misc.scm \ - %D%/system/installer/partition-reader.scm \ - \ %D%/build/activation.scm \ %D%/build/cross-toolchain.scm \ %D%/build/file-systems.scm \ @@ -490,6 +465,36 @@ GNU_SYSTEM_MODULES = \ %D%/tests/ssh.scm \ %D%/tests/web.scm +if HAVE_GUILE_NCURSES + +GNU_SYSTEM_MODULES += \ + %D%/system/installer/filesystems.scm \ + %D%/system/installer/network.scm \ + %D%/system/installer/wireless.scm \ + %D%/system/installer/install.scm \ + %D%/system/installer/dialog.scm \ + %D%/system/installer/hostname.scm \ + %D%/system/installer/mount-point.scm \ + %D%/system/installer/guixsd-installer.scm \ + %D%/system/installer/disks.scm \ + %D%/system/installer/format.scm \ + %D%/system/installer/locale.scm \ + %D%/system/installer/levelled-stack.scm \ + %D%/system/installer/ping.scm \ + %D%/system/installer/key-map.scm \ + %D%/system/installer/role.scm \ + %D%/system/installer/user-edit.scm \ + %D%/system/installer/users.scm \ + %D%/system/installer/utils.scm \ + %D%/system/installer/page.scm \ + %D%/system/installer/passphrase.scm \ + %D%/system/installer/configure.scm \ + %D%/system/installer/time-zone.scm \ + %D%/system/installer/misc.scm \ + %D%/system/installer/partition-reader.scm + +endif + patchdir = $(guilemoduledir)/%D%/packages/patches dist_patch_DATA = \ diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm index 121bd4d..c4b91a9 100644 --- a/guix/scripts/system.scm +++ b/guix/scripts/system.scm @@ -40,7 +40,6 @@ #:use-module (gnu system file-systems) #:use-module (gnu system linux-container) #:use-module (gnu system vm) - #:use-module (gnu system installer guixsd-installer) #:use-module (gnu system grub) #:use-module (gnu services) #:use-module (gnu services shepherd) @@ -57,6 +56,12 @@ #:export (guix-system read-operating-system)) +;; XXX: Use this hack instead of #:autoload to avoid compilation errors. +;; See <http://bugs.gnu.org/12202>. +(module-autoload! (current-module) + '(gnu system installer guixsd-installer) + '(guixsd-installer)) + ;;; ;;; Operating system declaration.