Ludovic Courtès
c3e79cde06
guix system: Factorize 'grub-install' error handling, and use more 'mbegin'.
...
* guix/scripts/system.scm (install-grub*): New procedure.
(install): Use it, and use 'mwhen?'.
(perform-action) <reconfigure>: Likewise.
2014-12-04 23:53:16 +01:00
Ludovic Courtès
cc7fa5929c
guix system: Use 'mbegin' for 'install'.
...
* guix/scripts/system.scm (install): Use 'mbegin'. Lift FORMAT and
POPULATE-ROOT-FILE-SYSTEM, and use the result.
2014-12-02 16:51:43 +01:00
nebuli
16eb115ef4
guix: scripts: Add GUIX_BUILD_OPTIONS environment handling.
...
* doc/guix.texi (Invoking guix build): Mention 'GUIX_BUILD_OPTIONS'.
* guix/scripts/archive.scm: (append args (environment-build-options)).
* guix/scripts/build.scm: Ditto.
* guix/scripts/environment.scm: Ditto.
* guix/scripts/package.scm: Ditto.
* guix/scripts/system.scm: Ditto.
* guix/ui.scm (environment-build-options): New function.
* guix/utils.scm (arguments-from-environment-variable): New function.
* tests/guix-build.sh: Add tests.
* test-env.in: Unset GUIX_BUILD_OPTIONS.
Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2014-11-30 18:54:07 +01:00
Ludovic Courtès
0276f697b3
guix system: Add '--share' and '--expose' options for 'vm'.
...
* guix/scripts/system.scm (system-derivation-for-action): Add #:mappings
parameter. Pass it to 'system-qemu-image/shared-store-script'.
(perform-action): Likewise.
(show-help): Document --share and --expose.
(specification->file-system-mapping): New procedure.
(%options): Add --share and --expose.
(guix-system): Pass #:mapping to 'perform-action'.
* doc/guix.texi (Invoking guix system): Document it.
2014-11-21 00:02:26 +01:00
Ludovic Courtès
906b1b0986
guix system: Decorate GRUB entries of old generations with date and number.
...
* guix/scripts/system.scm (seconds->string): New procedure.
(previous-grub-entries)[system->grub-entry]: Add 'number' and 'time'
parameters. Adjust call accordingly.
2014-11-11 22:42:42 +01:00
Ludovic Courtès
6aa260af12
vm: Fix 'vm --full-boot' to produce a sufficient disk image.
...
* gnu/system/vm.scm (system-qemu-image/shared-store): Add
#:disk-image-size and #:full-boot? parameters and honor them. Pass
'#:copy-inputs? full-boot?', and change #:inputs argument.
* guix/scripts/system.scm (system-derivation-for-action): Pass
#:disk-image-size to 'system-qemu-image/shared-store'.
* doc/guix.texi (Invoking guix system): Mention use of '--image-size' in
conjunction with '--full-boot'.
2014-11-08 15:10:42 +01:00
Ludovic Courtès
ab11f0bed4
vm: Support 'guix system vm --full-boot'.
...
* gnu/system/vm.scm (system-qemu-image/shared-store-script): Add
#:full-boot? parameter and honor it.
* guix/scripts/system.scm (system-derivation-for-action): Likewise.
(perform-action): Likewise.
(show-help): Document '--full-boot'.
(%options): Add '--full-boot'.
(guix-system): Add #:full-boot? argument in call to 'perform-action'.
* doc/guix.texi (Invoking guix system): Document it.
2014-11-08 01:05:35 +01:00
Ludovic Courtès
6d49355d8b
activation: Honor $GUIX_NEW_SYSTEM for use by 'guix system reconfigure'.
...
* gnu/build/activation.scm (activate-current-system): Honor
$GUIX_NEW_SYSTEM by default.
* guix/scripts/system.scm (switch-to-system): Set $GUIX_NEW_SYSTEM
before loading SCRIPT.
2014-09-12 22:13:52 +02:00
Ludovic Courtès
548f7a8fa2
Move operating system helpers from (guix build …) to (gnu build …).
...
* guix/build/activation.scm, guix/build/install.scm,
guix/build/linux-initrd.scm, guix/build/vm.scm: Move to...
* gnu/build: ... here.
* Makefile.am (MODULES): Remove the above guix/build/ files.
* gnu-system.am (GNU_SYSTEM_MODULES): Add the above gnu/build/ files
here.
* gnu/services/base.scm, gnu/services/dmd.scm, gnu/system.scm,
gnu/system/linux-initrd.scm, gnu/system/vm.scm,
guix/scripts/system.scm: Adjust to the new module names.
2014-09-03 15:43:07 +02:00
Ludovic Courtès
720ee245da
guix system: Protect against changes to $PATH when activating the system.
...
Partly fixes <http://bugs.gnu.org/18082 >.
Reported by Mark H Weaver <mhw@netris.org>.
* guix/scripts/system.scm (save-environment-excursion): New macro.
(switch-to-system): Wrap 'primitive-load' call in it.
2014-07-23 18:20:56 +02:00
Ludovic Courtès
b6debdaa22
guix system: Fix type error in 'reconfigure'.
...
Partly fixes <http://bugs.gnu.org/18082 >.
Reported by Mark H Weaver <mhw@netris.org>.
* guix/scripts/system.scm (perform-action) <reconfigure>: Pass the
output file name of GRUB.CFG to 'install-grub'.
2014-07-23 18:20:56 +02:00
Ludovic Courtès
8334cf5b5c
guix system: Factorize 'copy-closure'.
...
* guix/scripts/system.scm (copy-closure): Rename to...
(copy-item): ... this.
(copy-closure): New procedure.
(install): Use it, and remove redundant code.
2014-07-20 22:39:02 +02:00
Ludovic Courtès
a52127c052
guix system: init: Always use /var/guix as the target state directory.
...
Fixes <http://bugs.gnu.org/18049 >.
Reported by Marek Benc <merkur32@gmail.com>.
* guix/scripts/system.scm (copy-closure): Pass #:state-directory to
'register-path'.
2014-07-18 20:40:51 +02:00
Ludovic Courtès
3942305eb1
guix system: reconfigure: Always use "/" as GRUB's target file system.
...
* guix/scripts/system.scm (perform-action) <reconfigure>: Wrap
'install-grub' call in 'false-if-exception'. Always use "/" as the
target.
2014-07-14 16:14:15 +02:00
Ludovic Courtès
314a83ef1e
guix system: Fix return value for 'reconfigure'.
...
* guix/scripts/system.scm (perform-action) <reconfigure>: Add missing
'return' expression.
2014-07-13 23:44:37 +02:00
Ludovic Courtès
8e42796bdc
guix system: Convert to monadic style.
...
* guix/scripts/system.scm (references*, topologically-sorted*,
show-what-to-build*): New procedures.
(copy-closure): Turn into a monadic procedure.
(install): Likewise, and adjust parameter list.
(switch-to-system): Likewise.
(system-derivation-for-action, grub.cfg, maybe-build, perform-action):
New procedures.
(guix-system): Use them.
2014-07-13 16:37:11 +02:00
Ludovic Courtès
df2ce34385
guix system: Add '--system' option.
...
* guix/scripts/system.scm (switch-to-system): Add #:system parameter;
pass it to 'run-with-store'.
(%options): Add '--system'.
(guix-system): Pass the 'system' option to 'run-with-store',
'package-derivation', and 'switch-to-system' calls.
* doc/guix.texi (Invoking guix system): Document '--system' and
'--image-size'.
2014-07-08 23:42:35 +02:00
Ludovic Courtès
f2c403eab6
system: Install /var/guix/profiles/system-1-link on new systems.
...
* guix/build/install.scm (directives): Add /var/guix/profiles/system.
(populate-root-file-system): Add 'system' parameter. Create
/var/guix/profiles/system-1-link.
* guix/scripts/system.scm (install): Pass OS-DIR to
'populate-root-file-system'.
* guix/build/vm.scm (initialize-root-partition): Add #:system-directory
parameter, and pass it to 'populate-root-file-system'.
(initialize-hard-disk): Add #:system-directory parameter, and pass it
to 'initialize-root-partition'.
* gnu/system/vm.scm (qemu-image): Add #:os-derivation parameter and pass
it to 'initialize-hard-disk'.
(system-disk-image, system-qemu-image,
system-qemu-image/shared-store): Pass #:os-derivation to 'qemu-image.
2014-06-27 19:06:08 +02:00
Ludovic Courtès
b25937e318
guix system: Add 'reconfigure' action.
...
* guix/scripts/system.scm (%system-profile): New variable.
(switch-to-system, previous-grub-entries): New procedures.
(unless-file-not-found): New macro.
(show-help): Add 'reconfigure'.
(guix-system): Handle it.
* gnu/system.scm: Export 'operating-system-activation-script'.
* doc/guix.texi (Invoking guix system): Document it.
2014-06-27 00:12:40 +02:00
Ludovic Courtès
c1202fb1f9
guix {system,offload}: Improve reporting of syntax errors.
...
* guix/scripts/system.scm (read-operating-system) <catch handler>: Add
case for 'syntax-error'. Correct message for default case.
* guix/scripts/offload.scm (build-machines) <catch handler>: Add case
for 'syntax-error'.
* tests/guix-system.sh: New file.
* Makefile.am (SH_TESTS): Add it.
2014-06-27 00:12:40 +02:00
Ludovic Courtès
cadf6cb4cf
guix system: Gracefully handle 'install-grub' errors.
...
* guix/scripts/system.scm (install): Wrap 'install-grub' call in
'false-if-exception'. This is a followup to 641f9a2a
.
2014-06-24 22:11:12 +02:00
Ludovic Courtès
eef4096c14
guix system: 'init' makes sure the target store directory exists.
...
* guix/scripts/system.scm (install): Before calling 'copy-closure', make
sure directory (%store-prefix) under TARGET exists.
2014-06-19 23:35:41 +02:00
Ludovic Courtès
fb729425dc
guix system: Add 'disk-image' action.
...
* guix/scripts/system.scm (show-help): Add 'disk-image'.
(guix-system)[parse-options]: Support 'disk-image' action.
[option-arguments]: Likewise.
Handle the 'disk-image' action.
* doc/guix.texi (Invoking guix system): Document 'disk-image'.
2014-05-22 23:24:13 +02:00
Ludovic Courtès
79b0d4e104
guix system: Check whether we are installing to /.
...
* guix/scripts/system.scm (install): Check whether TARGET is / and warn.
2014-05-19 23:52:40 +02:00
Ludovic Courtès
c56d19fb11
guix system: Factorize out closure copy.
...
* guix/scripts/system.scm (copy-closure): New procedure.
(install): Use it.
2014-05-19 23:52:40 +02:00
Ludovic Courtès
c79d54fe41
guix system: 'guix system init' installs GRUB by default.
...
* guix/scripts/system.scm (install): Add #:grub?, #:grub.cfg, and
#:device parameters; honor them.
(show-help): Document '--no-grub'.
(%options): Add '--no-grub'.
(%default-options): Add 'install-grub?'.
(guix-system): Honor 'install-grub?' option from OPTS. Adjust
'install' call accordingly.
* doc/guix.texi (Invoking guix system): Document '--no-grub'.
2014-05-19 23:52:39 +02:00
Ludovic Courtès
72b9d60df4
guix system: Add 'init' sub-command.
...
* guix/scripts/system.scm (install): New procedure.
(guix-system)[parse-option]: Remove check for extraneous arguments.
[match-pair, option-arguments]: New procedures.
Use 'option-arguments'. Honor 'init'.
(show-help): Document 'init'.
* doc/guix.texi (Invoking guix system): Document 'init'.
2014-05-18 22:27:23 +02:00
Ludovic Courtès
7889394e05
guix system: Add 'build' action.
...
* guix/scripts/system.scm (show-help): Document 'build' action.
(guix-system): Honor 'build' action.
* doc/guix.texi (Invoking guix system): Add 'build' action.
2014-05-16 21:56:00 +02:00
Ludovic Courtès
2e7b5cea8c
guix system: Add 'vm-image' action and '--image-size' option.
...
* guix/scripts/system.scm (%options): Add --image-size.
(%default-options): Add 'image-size'.
(guix-system)[parse-options]: Handle the 'vm-image' action.
Honor them.
(show-help): Update accordingly.
* doc/guix.texi (Invoking guix system): Add 'vm-image'.
2014-04-09 01:20:19 +02:00
Ludovic Courtès
731b996255
hydra: Add 'qemu-image' job.
...
* build-aux/hydra/demo-os.scm: New file.
* Makefile.am (EXTRA_DIST): Add it.
* build-aux/hydra/gnu-system.scm (qemu-jobs): New procedure.
(hydra-jobs): Use it.
* guix/scripts/system.scm (read-operating-system): Export.
2014-04-05 22:40:16 +02:00
Ludovic Courtès
db4fdc04cc
gnu: Introduce the (gnu services ...) modules.
...
* gnu/system/dmd.scm: Remove file. Move contents to...
* gnu/services.scm, gnu/services/base.scm, gnu/services/dmd.scm,
gnu/services/networking.scm, gnu/services/xorg.scm: ... here. New
files.
* gnu/system.scm, gnu/system/vm.scm: Adjust accordingly.
* guix/scripts/system.scm (%user-module): Likewise.
* doc/guix.texi (Using the Configuration System): Likewise.
(Defining Services): Likewise.
2014-02-19 20:58:24 +01:00
Ludovic Courtès
523e48969b
Add 'guix system'.
...
* guix/scripts/system.scm: New file.
* Makefile.am (MODULES): Add it.
* po/POTFILES.in: Likewise.
* doc/guix.texi (Using the Configuration System): Link to "Invoking guix
system".
(Invoking guix system): New node.
2014-02-18 23:47:49 +01:00