This allows for the use of Guix within a non-privileged Docker container
produced by 'guix system image -t docker'.
* gnu/system/linux-container.scm (containerized-operating-system):
Change 'guix-configuration' to add "--disable-chroot".
Previously, (ntfs-uuid->string (string->ntfs-uuid"5234ED0D34ECF53F"))
would yield "5234EDD34ECF53F".
Reported by sughosha in #guix.
* gnu/system/uuid.scm (ntfs-uuid->string): Pad hex bytes with zero when
needed.
* gnu/system/image.scm (system-disk-image)[partition-image]: Adjust the
inputs used by the image-builder to only use the packages necessary to
build that partition.
* gnu/build/image.scm (make-unformatted-image): New procedure.
(make-partition-image): Add support for unformatted partition.
* gnu/system/image.scm (system-disk-image)[partition->gpt-type]: Add
case for using unformatted partition uuid.
This is a followup to dbbc7e946131ba257728f1d05b96c4339b7ee88b:
'nscd-service-type' isn't necessarily present in OS, so we cannot use
the 'modify-services' as it would now error out. This was happening
with the "guix system docker-image" test in 'tests/guix-system.sh'.
* gnu/system/linux-container.scm (containerized-operating-system): Use
'filter-map' instead of 'remove' + 'modify-services'.
When the 'stop' method returns a truth value, shepherd interprets it as
potential failure and logs it.
* gnu/system/pam.scm (pam-shepherd-service): Change 'stop' method to
return #f.
* gnu/system/hurd.scm (%base-packages/hurd): Change shepherd to shepherd-0.8,
since the former uses fibers, and thus conflicts with the shepherd-0.8 we use in
the default essential services.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Fixes <https://issues.guix.gnu.org/61627>.
* gnu/system/linux-container.scm (container-essential-services): When
shared-network? is true, remove the hosts-service-type service kind.
* gnu/system/shadow.scm (default-skeleton): Update gdbinit to search for
more debug packages in guix-home and the system profile.
(skeleton-directory): Move .gdbinit to .config/gdb/gdbinit.
This follows up on commit c077345539, and
adds a comment to avoid this in future.
* gnu/system/file-systems.scm (invalid-file-system-flags):
Add 'no-diratime to the list of KNOWN-FLAGS.
Make it consistent with bash_profile generated by Guix Home.
* gnu/system/shadow.scm (default-skeletons)[bash_profile]: Source .profile in
skeleton bash_profile.
Users can override 'PS1' in ~/.bashrc if they wish.
Previously, on Guix Home, the "default" 'PS1' would be set in ~/.bashrc
when 'home-bash-configuration-guix-defaults?' is true, preventing users
from overriding it via the 'environment-variables' field of
'home-bash-extension'.
* gnu/system/shadow.scm (%default-bashrc): Remove 'PS1' setting.
* gnu/system.scm (operating-system-etc-service): Define PS1 in
/etc/bashrc.
* gnu/home/services/shells.scm (add-bash-configuration): When
'home-bash-configuration-guix-defaults?' is true, add a default 'PS1' to
~/.bash_profile.
* gnu/system/shadow.scm (%default-bashrc): New variable. Source
/etc/bashrc only if it exists.
(default-skeletons): Use it.
* gnu/home/services/shells.scm (guix-bashrc): Remove.
(add-bash-configuration): Refer to '%default-bashrc' instead.
Generating a raw-with-offset image would previously not be bootable with
U-Boot.
* gnu/system/image.scm (root-partition) [file-system-options]: New field.
Fixes <https://issues.guix.gnu.org/60010>.
Reported by pelzflorian (Florian Pelz) <pelzflorian@pelzflorian.de>.
Previously, the 'modprobe' executable would try and fail to load the
module from /lib/modules/*. Set 'LINUX_MODULE_DIRECTORY' to make sure
'modprobe' looks for the module in the right place.
* gnu/system/install.scm (uvesafb-shepherd-service)[modprobe]: New
variable.
In 'start' method, invoke it instead of KMOD/bin/modprobe.
This file was added in fe1cd098d2 but it's
not referenced from anywhere, not even gnu/local.mk. Furthermore, we
don't normally add full OS examples for the purposes of illustrating the
use of a single service.
* gnu/system/examples/yggdrasil.tmpl: Remove.
Previously, copying the image would consume a lot of space and was
I/O-intensive, to the point that the marionette connection timeout of
20s could be reached when running tests like "docker-system".
* gnu/system/vm.scm (common-qemu-options): Pass 'format=' for each
'-drive' option.
(system-qemu-image/shared-store-script)[copy-image]: New variable.
[builder]: Use it when VOLATILE? is false.
Rationale: It is only used in INSTALLATION-OS and doesn't make sense to be
used in another context, given that file systems now automatically pull their
dependencies since commit 45eac6cdf5 (services:
Add file system utilities to profile).
* gnu/system.scm (%base-packages-disk-utilities): Deprecate and rename to...
* gnu/system/install.scm (%installer-disk-utilities): ... this.
(installation-os) [packages]: Adjust accordingly.
* gnu/system/images/pine64.scm (pine64-barebones-os) [services]: Add
dhcp-client-service-type and ntp-service-type to the list of services.
[packages]: Add nss-certs to the list of packages.
Signed-off-by: 宋文武 <iyzsong@member.fsf.org>
Rationale: It is only used in INSTALLATION-OS and doesn't make sense to be
used in another context, given that file systems now automatically pull their
dependencies since commit 45eac6cdf5 (services:
Add file system utilities to profile).
* gnu/system.scm (%base-packages-disk-utilities): Deprecate and rename to...
* gnu/system/install.scm (%installer-disk-utilities): ... this.
(installation-os) [packages]: Adjust accordingly.
* gnu/packages/raspberry-pi.scm (grub-efi-bootloader-chain-raspi-64): New
bootloader variable, capable to boot a Raspberry Pi over network or from a
local storage.
* gnu/system/examples/raspberry-pi-64.tmpl: New operating-system example.
* gnu/system/examples/raspberry-pi-64-nfs-root.tmpl: New operating-system
example for booting over network.
* Makefile.am (EXAMPLES): Register the new files.
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>