system: Rename 'sudoers' into 'sudoers-file'. * gnu/system.scm (<operating-system>): Rename record field. (etc-directory): Rename argument. (operating-system-etc-directory): Adjust accordingly. * doc/guix.texi (operating-system Reference): Likewise.
system: 'hosts-file' is now a file-like object. Partly fixes <http://bugs.gnu.org/20720>. Reported by Alex Kost <alezost@gmail.com>. * gnu/system.scm (default-/etc/hosts): Change 'text-file' to 'plain-file'. (maybe-file->monadic): New procedure. (operating-system-etc-directory): Use it. * doc/guix.texi (operating-system Reference, Networking Services): Adjust accordingly.
system: 'sudoers' is now a file-like object. Partly fixes <http://bugs.gnu.org/20720> Reported by Alex Kost <alezost@gmail.com>. * gnu/system.scm (etc-directory): Change default #:sudoers value to a 'plain-file'. Don't bind it. Remove #~#$. (maybe-string->file): New procedure. (operating-system-etc-directory): Use it. (%sudoers-specification): Use 'plain-file'. * doc/guix.texi (operating-system Reference): Adjust accordingly.
system: Define '%base-user-accounts'. * gnu/system/shadow.scm (%base-user-accounts): New variable. * gnu/system.scm (<operating-system>)[users]: Use it as the default value. * gnu/system/examples/bare-bones.tmpl (users): Use it. * gnu/system/examples/desktop.tmpl (users): Likewise. * doc/guix.texi (operating-system Reference, User Accounts): Adjust accordingly.
system: Make sure user accounts refer to existing groups. Fixes <http://bugs.gnu.org/20646>. Reported by David Thompson <davet@gnu.org>. * gnu/system/shadow.scm (assert-valid-users/groups): New procedure * gnu/system.scm (operating-system-activation-script): Use it. * tests/guix-system.sh (make_user_config): New function. Add 3 tests using it. * po/guix/POTFILES.in: Add gnu/system/shadow.scm.
Merge branch 'master' into gtk-rebuild Conflicts: gnu/packages/gtk.scm
system: Use "." instead of "source" in /etc/profile. * gnu/system.scm (etc-directory)[profile]: Use "." instead of "source", the latter being Bash-specific.
system: Check whether ~/.guix-profile/etc/profile exists. * gnu/system.scm (etc-directory)[profile]: Check for ~/.guix-profile/etc/profile rather than just ~/.guix-profile.
system: /etc/profile sources each profile's /etc/profile. Partly fixes <http://bugs.gnu.org/20255>. Reported by 宋文武 <iyzsong@gmail.com>. * gnu/system.scm (etc-directory)[profile]: Source /run/current-system/profile/etc/profile and $HOME/.guix-profile/etc/profile when available. Move definitions of SSL_CERT_DIR, SSL_CERT_FILE, and GIT_SSL_CAINFO before that.
Merge branch 'master' into core-updates Conflicts: gnu-system.am gnu/packages/gstreamer.scm
system: Populate /etc/shells with the list of all the shells in use. Reported by Andy Wingo <wingo@pobox.com>. * gnu/system.scm (user-shells, shells-file): New procedures. (etc-directory): Add #:shell parameter. Use 'shells-file' instead of 'text-file'. (operating-system-etc-directory): Call 'user-shells' and pass #:shells to 'etc-directory'.
Merge branch 'master' into core-updates
system: Allow users to PTRACE_ATTACH to their own processes. * gnu/build/activation.scm (activate-ptrace-attach): New procedure. * gnu/system.scm (operating-system-activation-script): Use it.
system: Clean /tmp and /var/run during early boot. * gnu/system.scm (operating-system-boot-script): Clean out /tmp and /var/run before activating the system.
Merge branch 'master' into core-updates
system: Take kernel modules from the user-specified kernel. * gnu/system/linux-initrd.scm (base-initrd): Add #:linux option to specify the linux kernel to use. * gnu/system/vm.scm (expression->derivation-in-linux-vm): Propagate #:linux to base-initrd. * gnu/system.scm (operating-system-initrd-file): Pass #:linux to 'make-initrd'. Co-authored-by: Ludovic Courtès <ludo@gnu.org>
Merge branch 'master' into core-updates
system: Add /etc/bashrc that loads bash-completion when available. * gnu/system.scm (etc-directory)[profile]: Conditionally source /etc/bashrc. [bashrc]: New file. Source bash_completion.sh when available.
system: Add fish, tcsh, and zsh to /etc/shells. * gnu/system.scm (etc-directory)[shells]: Add fish, tcsh, and zsh file names to /etc/shells. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
system: Remove duplicated line from export. * gnu/system.scm (gnu system): Remove duplicate in exported names list. Signed-off-by: Ludovic Courtès <ludo@gnu.org>