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