;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2020 Ludovic Courtès ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen ;;; ;;; This file is part of GNU Guix. ;;; ;;; GNU Guix is free software; you can redistribute it and/or modify it ;;; under the terms of the GNU General Public License as published by ;;; the Free Software Foundation; either version 3 of the License, or (at ;;; your option) any later version. ;;; ;;; GNU Guix is distributed in the hope that it will be useful, but ;;; WITHOUT ANY WARRANTY; without even the implied warranty of ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;;; GNU General Public License for more details. ;;; ;;; You should have received a copy of the GNU General Public License ;;; along with GNU Guix. If not, see . (define-module (gnu system hurd) #:use-module (guix gexp) #:use-module (guix profiles) #:use-module (guix utils) #:use-module (gnu bootloader) #:use-module (gnu bootloader grub) #:use-module (gnu packages admin) #:use-module (gnu packages base) #:use-module (gnu packages bash) #:use-module (gnu packages compression) #:use-module (gnu packages cross-base) #:use-module (gnu packages file) #:use-module (gnu packages gawk) #:use-module (gnu packages guile) #:use-module (gnu packages guile-xyz) #:use-module (gnu packages hurd) #:use-module (gnu packages less) #:use-module (gnu services) #:use-module (gnu services base) #:use-module (gnu services hurd) #:use-module (gnu services shepherd) #:use-module (gnu system) #:use-module (gnu system shadow) #:use-module (gnu system vm) #:export (%base-packages/hurd %base-services/hurd %hurd-default-operating-system %hurd-default-operating-system-kernel %setuid-programs/hurd)) ;;; Commentary: ;;; ;;; This module provides system-specifics for the GNU/Hurd operating
# This is a "service unit file" for the systemd init system to launch
# 'guix publish'.  Drop it in /etc/systemd/system or similar to have
# 'guix publish' automatically started.

[Unit]
Description=Publish the GNU Guix store
Requires=guix-daemon.service
PartOf=guix-daemon.service
After=guix-daemon.service

[Service]
ExecStart=@localstatedir@/guix/profiles/per-user/root/current-guix/bin/guix publish --user=nobody --port=8181
Environment='GUIX_LOCPATH=@localstatedir@/guix/profiles/per-user/root/guix-profile/lib/locale' LC_ALL=en_US.utf8
StandardOutput=journal
StandardError=journal

# Despite the name, this is rate-limited: a broken daemon will eventually fail.
Restart=always

# See <https://lists.gnu.org/archive/html/guix-devel/2016-04/msg00608.html>.
TasksMax=1024

[Install]
WantedBy=multi-user.target
on '(loopback)) (name-servers '("10.0.2.3"))))) (syslog-service) (service guix-service-type (guix-configuration (extra-options '("--disable-chroot" "--disable-deduplication")))) (service special-files-service-type `(("/bin/sh" ,(file-append bash "/bin/sh")) ("/usr/bin/env" ,(file-append coreutils "/bin/env")))))) (define %setuid-programs/hurd ;; Default set of setuid-root programs. (list (file-append shadow "/bin/passwd") (file-append shadow "/bin/sg") (file-append shadow "/bin/su") (file-append shadow "/bin/newgrp") (file-append shadow "/bin/newuidmap") (file-append shadow "/bin/newgidmap") (file-append sudo "/bin/sudo") (file-append sudo "/bin/sudoedit"))) (define %hurd-default-operating-system (operating-system (kernel %hurd-default-operating-system-kernel) (kernel-arguments '()) (hurd hurd) (bootloader (bootloader-configuration (bootloader grub-minimal-bootloader) (target "/dev/vda"))) (initrd #f) (initrd-modules (lambda _ '())) (firmware '()) (host-name "guixygnu") (file-systems '()) (packages %base-packages/hurd) (timezone "GNUrope") (name-service-switch #f) (essential-services (hurd-default-essential-services this-operating-system)) (setuid-programs %setuid-programs/hurd)))