Ludovic Courtès
bdb36958fb
gnu: Split (gnu packages base), adding (gnu packages commencement).
...
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-28 09:21:54 +02:00
Ludovic Courtès
6f22f3c954
linux-initrd: Load fscache.ko before the 9p modules.
...
* gnu/system/linux-initrd.scm (base-initrd)[virtio-9p-modules]: Add
"fscache.ko", required by Linux-libre 3.16.
2014-08-15 16:26:28 +02:00
Mark H Weaver
2f7f32003f
system: grub: Change the default default-entry to 0.
...
* gnu/system/grub.scm (<grub-configuration>)[default-entry]: Change the
default to 0.
2014-08-13 12:56:25 -04:00
Ludovic Courtès
c8fa34265d
system: Add the 'system?' field for user groups.
...
Suggested by Mark H. Weaver.
* gnu/system/shadow.scm (<user-group>)[system?]: New field.
(%base-groups): Introduce 'system-group' macro, and use it.
* gnu/system.scm (user-group->gexp): Pass the 'system?' field.
* guix/build/activation.scm (add-group): Add #:system? and honor it.
(activate-users+groups): Handle the 'system?' field.
* gnu/system/file-systems.scm (%tty-gid): Choose an ID below 1000.
* doc/guix.texi (User Accounts): Document the 'system?' field.
2014-07-25 00:12:35 +02:00
Ludovic Courtès
1dac856638
install: Add a configuration template to the image.
...
* gnu/system/os-config.tmpl: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it
* gnu/system/install.scm (configuration-template-service): New
procedure.
(installation-services): Call it.
* doc/guix.texi (System Installation): Mention
configuration-template.scm, and @include gnu/system/os-config.tmpl.
2014-07-24 23:02:27 +02:00
Ludovic Courtès
83a17b6236
install: Add a service to back the store with the target disk.
...
Fixes <http://bugs.gnu.org/18061 >.
Reported by Adam Pribyl <pribyl@lowlevel.cz>.
* gnu/services/dmd.scm (dmd-configuration-file)[config]: Import (guix
build utils).
* gnu/system/install.scm (make-cow-store, cow-store-service): New
procedures.
(installation-services): Use it.
(%backing-directory): New variable.
* doc/guix.texi (System Installation): Add the 'deco start cow-store
/mnt' phase.
2014-07-23 17:47:25 +02:00
Mark H Weaver
705f8b68f1
system: Add missing exports to (gnu system file-systems).
...
* gnu/system/file-systems.scm (%pseudo-terminal-file-system)
(%shared-memory-file-system): Add to export list.
2014-07-23 02:13:34 -04:00
Ludovic Courtès
db17ae5c27
system: Add /dev/shm.
...
* gnu/system/file-systems.scm (%shared-memory-file-system): New
variable.
(%base-file-systems): Add it.
* doc/guix.texi (File Systems): Document it.
2014-07-23 02:02:07 +02:00
Ludovic Courtès
7f239fd33f
system: Add 'file-system' decl. for /dev/pts, and use the right options.
...
Fixes <http://bugs.gnu.org/18081 >.
* gnu/system/file-systems.scm (%devtmpfs-file-system): Add
'needed-for-boot?' field.
(%tty-gid, %pseudo-terminal-file-system): New variables.
(%base-file-systems): Add %PSEUDO-TERMINAL-FILE-SYSTEM.
* gnu/services/base.scm (udev-service): Remove dependency on
'file-system-/dev'.
* gnu/system/shadow.scm (%base-groups): Add 'id' field for group 'tty'.
* guix/build/linux-initrd.scm (boot-system): Remove 'mount' call for
/dev/pts.
* doc/guix.texi (File Systems): Add %pseudo-terminal-file-system.
2014-07-23 02:02:07 +02:00
Ludovic Courtès
4e469051a7
system: Add 'create-mount-point?' file system option.
...
* gnu/system/file-systems.scm (<file-system>)[create-mount-point?]: New
field.
* gnu/services/base.scm (file-system-service): Add #:create-mount-point?
parameter and honor it.
* gnu/system.scm (other-file-system-services): Update
'file-system-service' call accordingly.
* doc/guix.texi (File Systems): Document it.
2014-07-23 02:02:06 +02:00
Ludovic Courtès
a69576ea85
system: Add '%devtmpfs-file-system' for udev, and '%base-file-systems'.
...
Suggested by Adam Pribyl <pribyl@lowlevel.cz>.
* gnu/services/base.scm (udev-service)[requirement]: Add
'file-system-/dev'.
* gnu/system/file-systems.scm (%devtmpfs-file-system,
%base-file-systems): New variables.
* gnu/system/install.scm (installation-services)[file-systems]: Use
%base-file-systems.
* build-aux/hydra/demo-os.scm (file-systems): Likewise.
* doc/guix.texi (System Installation): Show %BASE-FILE-SYSTEMS in the
example.
(Using the Configuration System): Likewise.
(File Systems): Document %base-file-systems, %devtmpfs-file-system,
%binary-format-file-system, and %fuse-control-file-system.
2014-07-22 16:59:10 +02:00
David Thompson
ebc28a7d13
install: Add wireless-tools package.
...
* gnu/system/install.scm (installation-os): Add wireless-tools to packages.
2014-07-19 09:42:43 -04:00
David Thompson
c299dffcc4
linux-initrd: Add AHCI modules.
...
* gnu/system/linux-initrd (linux-modules): Add them.
2014-07-19 08:41:43 -04:00
Ludovic Courtès
3172ed5a4c
install: Show the "System Installation" node.
...
* gnu/system/install.scm (log-to-info): Go to the new 'System
Installation' node.
2014-07-17 18:37:53 +02:00
Ludovic Courtès
fd1b1fa296
doc: Add "Initial RAM Disk" section.
...
* doc/guix.texi (Initial RAM Disk): New node.
* gnu/system/linux-initrd.scm (expression->initrd): Adjust docstring.
2014-07-17 17:49:34 +02:00
Ludovic Courtès
62ca0fdf9e
services: Add 'console-font-service'.
...
* gnu/services/base.scm (unicode-start, console-font-service): New
procedures.
(%base-services): Call 'console-font-service' for TTY1 to TTY6.
* gnu/system/install.scm (installation-services): Add comment about the
console font. Call 'console-font-service' for TTY1 to TTY6.
2014-07-17 15:53:01 +02:00
Ludovic Courtès
8f297d422a
install: Remove GNU fdisk from the image.
...
* gnu/system/install.scm (installation-os): Remove FDISK.
2014-07-14 18:06:35 +02:00
Ludovic Courtès
932e1f9240
vm: Make sure disk image initrds load 'usb-storage.ko'.
...
Reported by David Thompson <dthompson2@worcester.edu>.
* gnu/system/vm.scm (system-disk-image): Add usb-storage.ko to the
initrd.
2014-07-14 18:05:10 +02:00
Ludovic Courtès
fa16f84502
linux-initrd: Allow extra modules to be passed to 'base-initrd'.
...
* gnu/system/linux-initrd.scm (base-initrd): Add #:extra-modules
parameter.
2014-07-13 23:43:00 +02:00
Ludovic Courtès
66670cf39c
vm: Add support for i686.
...
Partially fixes <http://bugs.gnu.org/18002 >.
Reported by David Thompson <dthompson2@worcester.edu>.
* guix/build/vm.scm (qemu-command): Add optional 'system' parameter.
Special-case "^i[3456]86$".
* gnu/system/vm.scm (system-qemu-image/shared-store-script): Use it.
2014-07-13 16:37:11 +02:00
Ludovic Courtès
da417ffe3b
system: Allow root to use 'groupadd' & co. without authenticating.
...
This fixes a bug whereby, if #:allow-root-passwords was #f, 'groupadd'
would ask for a password. This is particularly problematic during
activation.
* gnu/system/linux.scm (rootok-pam-service): New procedure.
(base-pam-services): Use it for all the user* and group* commands.
2014-07-11 23:20:48 +02:00
Ludovic Courtès
715956cc26
system: Add "netdev" group.
...
* gnu/system/shadow.scm (%base-groups): Add "netdev".
2014-07-11 00:27:27 +02:00
Ludovic Courtès
e84d8b30d9
vm: Enable QEMU support in the freestanding VM image.
...
* gnu/system/vm.scm (system-qemu-image): Add 'initrd' field.
2014-07-04 19:01:22 +02:00
Ludovic Courtès
060238ae64
linux-initrd: Rename 'qemu-initrd' to 'base-initrd'.
...
* gnu/system/linux-initrd.scm (qemu-initrd): Rename to...
(base-initrd): ... this.
* gnu/system.scm (<operating-system>)[initrd]: Update accordingly.
* gnu/system/vm.scm (expression->derivation-in-linux-vm,
system-disk-image, virtualized-operating-system): Likewise.
2014-07-01 09:23:32 +02:00
Ludovic Courtès
4fc96187b9
linux-initrd: Disable QEMU networking by default.
...
* gnu/system/linux-initrd.scm (qemu-initrd): Remove default value for
#:qemu-networking?.
* gnu/system/vm.scm (expression->derivation-in-linux-vm): Pass
#:qemu-networking? #t.
(system-disk-image): Remove #:qemu-networking? #f.
(virtualized-operating-system): Pass #:qemu-networking? #t.
2014-07-01 09:23:32 +02:00
Ludovic Courtès
24e0160a4a
linux-initrd: Make the virtio kernel modules optional.
...
* gnu/system/linux-initrd.scm (qemu-initrd): Add #:virtio? parameter.
Use it.
* gnu/system/vm.scm (expression->derivation-in-linux-vm): Pass
'qemu-initrd' #:virtio?.
(virtualized-operating-system): Likewise.
2014-07-01 09:23:32 +02:00
Ludovic Courtès
459dd9eaf2
system: Add a 'system?' field to user accounts.
...
* gnu/system/shadow.scm (<user-account>)[system?]: New field.
* gnu/system.scm (user-account->gexp): Add it.
* guix/build/activation.scm (add-user): Add #:system? parameter and
honor it.
(activate-users+groups): Handle the 'system?' part of user tuples.
Pass it to 'add-user'. Don't create PROFILE-DIR when SYSTEM? is
true.
* gnu/services/dbus.scm (dbus-service): Add 'system?' field for
"messagebus" account.
* gnu/services/base.scm (guix-build-accounts): Likewise.
* gnu/services/avahi.scm (avahi-service): Likewise.
2014-06-27 19:06:08 +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
fe6e3fe2a5
system: Support the addition of old entries in the GRUB menu.
...
* gnu/system.scm (operating-system-grub.cfg): Add 'old-entries'
parameter. Pass it to 'grub-configuration-file'.
* gnu/system/grub.scm (grub-configuration-file): Add #:old-entries
parameter. Honor it.
2014-06-25 23:53:27 +02:00
Ludovic Courtès
e11390df55
install: Use udev.
...
* gnu/system/install.scm (installation-services): Call 'udev-service'.
2014-06-24 00:20:01 +02:00
Ludovic Courtès
b76a384715
system: Use the default 'groups' field.
...
* gnu/system/install.scm (installation-os): Remove 'groups' field.
* build-aux/hydra/demo-os.scm: Likewise.
2014-06-22 22:28:24 +02:00
Ludovic Courtès
773e956d5d
system: Augment the default set of groups.
...
* gnu/system/shadow.scm (%base-groups): New variable.
* gnu/system.scm (<operating-system>)[groups]: Use it as the default.
2014-06-22 22:16:14 +02:00
Ludovic Courtès
72507e23b5
system: Remove useless 'members' field of 'user-group'.
...
* gnu/system/shadow.scm (<user-group>)[members]: Remove field.
* gnu/system/install.scm (installation-os)[users]: Remove 'members'
fields. Use 'supplementary-groups' for 'guest'.
* build-aux/hydra/demo-os.scm (users): Likewise.
* gnu/services/base.scm (guix-service): Remove 'members' field.
2014-06-22 21:48:35 +02:00
Ludovic Courtès
ea31dbbc18
install: Add missing argv[0] in Info invocation.
...
* gnu/system/install.scm (log-to-info): Add "info" as second argument to
'execl'.
2014-06-04 23:08:59 +02:00
Ludovic Courtès
56ef7fcc50
vm: Add #:name parameter for 'system-disk-image'.
...
* gnu/system/vm.scm (system-disk-image): Add #:name parameter; pass it
to 'qemu-image'.
2014-06-04 18:15:50 +02:00
Ludovic Courtès
2c5c696c39
install: Register the hydra.gnu.org key on the installation image.
...
* gnu/services/base.scm (hydra-key-authorization): New procedure.
(guix-service): Add #:authorize-hydra-key? parameter; honor it using
'hydra-key-authorization'.
* gnu/system/install.scm (installation-services): Pass
#:authorize-hydra-key? #t.
2014-06-04 18:15:50 +02:00
Ludovic Courtès
6f436c54d6
system: Define '%base-packages' and use it.
...
* gnu/system.scm (<operating-system>)[packages]: Change default value to
%BASE-PACKAGES.
(%base-packages): New variable.
* gnu/system/install.scm (installation-os): Use it when defining the
'packages' field.
* doc/guix.texi (Using the Configuration System): Use %BASE-PACKAGES in
example. Remove now unneeded module imports. Explain this.
2014-06-04 18:15:50 +02:00
Ludovic Courtès
e73a99a304
install: Add more useful packages.
...
* gnu/system/install.scm (installation-os)[packages]: Add isc-dhcp,
net-tools, ddrescue, kbd, and texinfo-4.
2014-06-03 23:31:26 +02:00
Ludovic Courtès
cc4a2aeb98
gnu: Merge Parted, fdisk, and ddrescue in (gnu packages disk).
...
* gnu/packages/parted.scm: Rename to...
* gnu/packages/disk.scm: ... this. New file. Merge with...
* gnu/packages/fdisk.scm: ... this; remove file;
* gnu/packages/ddrescue.scm: ... and this; remove file.
* gnu/system/install.scm, gnu/system/vm.scm: Adjust accordingly.
* gnu-system.am (GNU_SYSTEM_MODULES): Remove
gnu/packages/{parted,fdisk,ddrescue}.scm and add
gnu/packages/disk.scm.
2014-06-03 22:43:00 +02:00
Ludovic Courtès
d4c87617e5
system: File system sources can be marked as labels or devices.
...
* gnu/system/file-systems.scm (<file-system>)[title]: New field.
* gnu/services/base.scm (file-system-service): Add #:title parameter.
In 'start' gexp, use 'canonicalize-device-spec' and honor TITLE.
* gnu/system.scm (other-file-system-services,
operating-system-root-file-system, operating-system-initrd-file):
Adjust accordingly.
* gnu/system/linux-initrd.scm (file-system->spec): Likewise.
* gnu/system/vm.scm (system-disk-image): Add 'title' field for the root
file system.
* guix/build/linux-initrd.scm (mount-file-system): Expect the second
element of SPEC to be the title.
(boot-system)[root-mount-point?, root-fs-type]: Likewise.
* gnu/services/dmd.scm (dmd-configuration-file): Select
'canonicalize-device-spec'.
2014-06-03 00:14:58 +02:00
Ludovic Courtès
fc91c17aa8
Add (gnu system install).
...
* gnu/system/install.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
2014-05-31 22:13:33 +02:00
Ludovic Courtès
10ace2c49e
vm: disk-image: Specify the root file system using a label.
...
* gnu/system/vm.scm (system-disk-image)[root-label]: New variable.
Use it for the root file system, and pass it as #:file-system-label to
'qemu-image'.
2014-05-30 23:46:17 +02:00
Ludovic Courtès
ef9fc40dda
vm: Allow a volume name to be specified for the root partition.
...
* guix/build/vm.scm (format-partition): Add #:label parameter, and honor
it.
(initialize-hard-disk): Add #:file-system-label parameter, and pass it
to 'format-partition'.
* gnu/system/vm.scm (qemu-image): Add #:file-system-label parameter and
pass it to 'initialize-hard-disk'.
2014-05-29 23:32:46 +02:00
Ludovic Courtès
112440a7b8
vm: Disable QEMU networking in the disk image initrd.
...
* gnu/system/linux-initrd.scm (qemu-initrd): Add #:qemu-networking?
parameter and honor it.
* gnu/system/vm.scm (system-disk-image): Pass #:qemu-networking #f.
2014-05-23 22:37:24 +02:00
Ludovic Courtès
1e77fedb46
vm: Add 'system-disk-image'.
...
* gnu/system/vm.scm (system-disk-image): New procedure.
2014-05-22 23:24:13 +02:00
Ludovic Courtès
f19c6e5fe7
vm: Use a para-virtualized disk when creating an image.
...
* guix/build/vm.scm (load-in-linux-vm): When MAKE-DISK-IMAGE?, use
'-drive ...,if=virtio' for better performance.
* gnu/system/vm.scm (qemu-image): Use /dev/vda instead of /dev/sda.
2014-05-22 23:24:13 +02:00
Ludovic Courtès
c4a74364b9
vm: Make the image format a parameter.
...
* guix/build/vm.scm (load-in-linux-vm): Add #:disk-image-format
parameter; add 'image-file' variable. Honor DISK-IMAGE-FORMAT.
* gnu/system/vm.scm (expression->derivation-in-linux-vm): Add
#:disk-image-format parameter, and honor it.
(qemu-image): Likewise.
2014-05-22 23:24:13 +02:00
Ludovic Courtès
c5df183956
Add (gnu system file-systems).
...
This fixes a circular dependency between (gnu system) and (gnu system
linux-initrd), where the latter could end up being compiled before
'file-system-type' was defined as a macro.
* gnu/system.scm (<file-system>, %fuse-control-file-system,
%binary-format-file-system): Move to...
* gnu/system/file-systems.scm: ... here. New file.
* build-aux/hydra/demo-os.scm, gnu/system/linux-initrd.scm,
gnu/system/vm.scm: Use it.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
2014-05-20 23:37:11 +02:00
Ludovic Courtès
e38e18ff01
vm: Make the device name a parameter.
...
* guix/build/vm.scm (initialize-partition-table): Honor 'device'
parameter.
(initialize-hard-disk): Add 'device' parameter and honor it.
* gnu/system/vm.scm (qemu-image): Adjust accordingly.
2014-05-19 23:52:39 +02:00
Ludovic Courtès
d5b429abda
system: Add 'grub-configuration' record.
...
* gnu/system/grub.scm (<grub-configuration>): New record type.
(grub-configuration-file): Add 'config' parameter; remove
#:default-entry and #:timeout. Honor CONFIG.
* gnu/system.scm (<operating-system>): Remove 'bootloader-entries'
field; remove default value for 'bootloader' field.
(operating-system-grub.cfg): Pass the 'bootloader' field to
'grub-configuration-file'.
* build-aux/hydra/demo-os.scm (bootloader): New field.
2014-05-18 22:27:23 +02:00