From patchwork Mon Jun 8 12:57:59 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Janneke Nieuwenhuizen X-Patchwork-Id: 22611 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id D8DF127BBE1; Mon, 8 Jun 2020 13:59:13 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.9 required=5.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL autolearn=unavailable autolearn_force=no version=3.4.2 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTP id 5409427BBE4 for ; Mon, 8 Jun 2020 13:59:11 +0100 (BST) Received: from localhost ([::1]:59992 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jiHMs-0006ll-QC for patchwork@mira.cbaines.net; Mon, 08 Jun 2020 08:59:10 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:43388) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jiHMl-0006jb-9a for guix-patches@gnu.org; Mon, 08 Jun 2020 08:59:03 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:44587) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jiHMl-0008EF-0c for guix-patches@gnu.org; Mon, 08 Jun 2020 08:59:03 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1jiHMk-0001Sr-Vx for guix-patches@gnu.org; Mon, 08 Jun 2020 08:59:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#41541] [PATCH 1/4] hurd-boot: Create individual translators instead of running MAKEDEV. Resent-From: "Jan (janneke) Nieuwenhuizen" Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Mon, 08 Jun 2020 12:59:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 41541 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: To: 41541@debbugs.gnu.org Cc: Mathieu Othacehe , Ludovic =?utf-8?q?Court=C3=A8s?= Received: via spool by 41541-submit@debbugs.gnu.org id=B41541.15916210985539 (code B ref 41541); Mon, 08 Jun 2020 12:59:02 +0000 Received: (at 41541) by debbugs.gnu.org; 8 Jun 2020 12:58:18 +0000 Received: from localhost ([127.0.0.1]:56124 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jiHM1-0001RG-IR for submit@debbugs.gnu.org; Mon, 08 Jun 2020 08:58:17 -0400 Received: from eggs.gnu.org ([209.51.188.92]:35088) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jiHLx-0001Qg-U4 for 41541@debbugs.gnu.org; Mon, 08 Jun 2020 08:58:14 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:47711) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jiHLs-000804-8a; Mon, 08 Jun 2020 08:58:08 -0400 Received: from [2001:980:1b4f:1:42d2:832d:bb59:862] (port=34142 helo=dundal.fritz.box) by fencepost.gnu.org with esmtpa (Exim 4.82) (envelope-from ) id 1jiHLq-00006C-Re; Mon, 08 Jun 2020 08:58:07 -0400 From: "Jan (janneke) Nieuwenhuizen" Date: Mon, 8 Jun 2020 14:57:59 +0200 Message-Id: <20200608125802.10617-2-janneke@gnu.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200608125802.10617-1-janneke@gnu.org> References: <20200608125802.10617-1-janneke@gnu.org> MIME-Version: 1.0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: "Guix-patches" X-getmail-retrieved-from-mailbox: Patches * gnu/build/hurd-boot.scm (make-hurd-device-nodes): Do not create dev/{null,zero,full,random,urandom} mount points. (setup-translator, xattr-translator, showtrans-translator?, translated?, set-hurd-device-translators): New procedures. (boot-hurd-system): Use them instead of running MAKEDEV. --- gnu/build/hurd-boot.scm | 172 +++++++++++++++++++++++++++++----------- 1 file changed, 125 insertions(+), 47 deletions(-) diff --git a/gnu/build/hurd-boot.scm b/gnu/build/hurd-boot.scm index 09326233d2..398cee1395 100644 --- a/gnu/build/hurd-boot.scm +++ b/gnu/build/hurd-boot.scm @@ -80,16 +80,8 @@ Return the value associated with OPTION, or #f on failure." (string-append root (if (string-suffix? "/" root) "" "/") dir)) (mkdir (scope "dev")) - (for-each (lambda (file) - (call-with-output-file (scope file) - (lambda (port) - (display file port) ;avoid hard-linking - (chmod port #o666)))) - '("dev/null" - "dev/zero" - "dev/full" - "dev/random" - "dev/urandom")) + ;; Don't create /dev/null etc just yet; the store + ;; messes-up the permission bits. ;; Don't create /dev/console, /dev/vcs, etc.: they are created by ;; console-run on first boot. @@ -115,6 +107,125 @@ Return the value associated with OPTION, or #f on failure." ;; settings? ) +(define (xattr-translator? file-name) + "Return true if FILE-NAME has an extended @code{gnu.translator} attribute +set." + (false-if-exception + (not (string-null? (getxattr file-name "gnu.translator"))))) + +(define (showtrans-translator? file-name) + "Return true if @file{showtrans} finds a translator installed on FILE-NAME." + (with-output-to-port (%make-void-port "w") + (lambda _ + (with-error-to-port (%make-void-port "w") + (lambda _ + (zero? (system* "showtrans" "--silent" file-name))))))) + +(define (translated? file-name) + "Return true if a translator is installed on FILE-NAME." + (if (string-contains %host-type "linux-gnu") + (xattr-translator? file-name) + (showtrans-translator? file-name))) + +(define* (setup-translator file-name command #:optional (mode #o600)) + "Setup translator COMMAND on FILE-NAME." + (unless (translated? file-name) + (let ((dir (dirname file-name))) + (unless (directory-exists? dir) + (mkdir-p dir)) + (unless (file-exists? file-name) + (call-with-output-file file-name + (lambda (port) + (display file-name port) ;avoid hard-linking + (chmod port mode))))) + (catch 'system-error + (lambda _ + (apply invoke "settrans" "--create" file-name command)) + (lambda (key . args) + (let ((errno (system-error-errno (cons key args)))) + (format (current-error-port) "~a: ~a\n" + (strerror errno) file-name) + (format (current-error-port) "Ignoring...Good Luck!\n")))))) + +(define* (set-hurd-device-translators #:optional (root "/")) + "Make some of the device nodes needed on GNU/Hurd." + + (define (scope dir) + (string-append root (if (string-suffix? "/" root) "" "/") dir)) + + (define scope-setup-translator + (match-lambda + ((file-name command) + (scope-setup-translator (list file-name command #o600))) + ((file-name command mode) + (let ((mount-point (scope file-name))) + (setup-translator mount-point command mode))))) + + (define servers + '(("servers/crash-dump-core" ("/hurd/crash" "--dump-core")) + ("servers/crash-kill" ("/hurd/crash" "--kill")) + ("servers/crash-suspend" ("/hurd/crash" "--suspend")) + ("servers/password" ("/hurd/password")) + ("servers/socket/1" ("/hurd/pflocal")) + ("servers/socket/2" ("/hurd/pfinet" + "--interface" "eth0" + "--address" + "10.0.2.15" ;the default QEMU guest IP + "--netmask" "255.255.255.0" + "--gateway" "10.0.2.2" + "--ipv6" "/servers/socket/16")))) + + (define devices + '(("dev/full" ("/hurd/null" "--full") #o666) + ("dev/null" ("/hurd/null") #o666) + ("dev/random" ("/hurd/random" "--seed-file" "/var/lib/random-seed") + #o644) + ("dev/zero" ("/hurd/storeio" "--store-type=zero") #o666) + + ("dev/console" ("/hurd/term" "/dev/console" "device" "console")) + + ("dev/klog" ("/hurd/streamio" "kmsg")) + ("dev/mem" ("/hurd/storeio" "--no-cache" "mem") #o660) + ("dev/shm" ("/hurd/tmpfs" "--mode=1777" "50%") #o644) + ("dev/time" ("/hurd/storeio" "--no-cache" "time") #o644) + + ("dev/vcs" ("/hurd/console")) + ("dev/tty" ("/hurd/magic" "tty") #o666) + + ("dev/tty1" ("/hurd/term" "/dev/tty1" "hurdio" "/dev/vcs/1/console") + #o666) + ("dev/tty2" ("/hurd/term" "/dev/tty2" "hurdio" "/dev/vcs/2/console") + #o666) + ("dev/tty3" ("/hurd/term" "/dev/tty3" "hurdio" "/dev/vcs/3/console") + #o666) + + ("dev/ptyp0" ("/hurd/term" "/dev/ptyp0" "pty-master" "/dev/ttyp0") + #o666) + ("dev/ptyp1" ("/hurd/term" "/dev/ptyp1" "pty-master" "/dev/ttyp1") + #o666) + ("dev/ptyp2" ("/hurd/term" "/dev/ptyp2" "pty-master" "/dev/ttyp2") + #o666) + + ("dev/ttyp0" ("/hurd/term" "/dev/ttyp0" "pty-slave" "/dev/ptyp0") + #o666) + ("dev/ttyp1" ("/hurd/term" "/dev/ttyp1" "pty-slave" "/dev/ptyp1") + #o666) + ("dev/ttyp2" ("/hurd/term" "/dev/ttyp2" "pty-slave" "/dev/ptyp2") + #o666))) + + (for-each scope-setup-translator servers) + (false-if-exception (mkdir-p (scope "dev/vcs/1"))) + (false-if-exception (mkdir-p (scope "dev/vcs/2"))) + (false-if-exception (mkdir-p (scope "dev/vcs/3"))) + (false-if-exception (rename-file "/dev/console" "/dev/console-")) + (for-each scope-setup-translator devices) + + (false-if-exception (symlink "/dev/random" "/dev/urandom")) + (false-if-exception (mkdir-p "/dev/fd")) + (false-if-exception (symlink "/dev/fd/0" "/dev/stdin")) + (false-if-exception (symlink "/dev/fd/1" "/dev/stdout")) + (false-if-exception (symlink "/dev/fd/2" "/dev/stderr"))) + (define* (boot-hurd-system #:key (on-error 'debug)) "This procedure is meant to be called from an early RC script. @@ -126,20 +237,9 @@ starting the Shepherd. XXX TODO: see linux-boot.scm:boot-system. XXX TODO: add proper file-system checking, mounting XXX TODO: move bits to (new?) (hurd?) (activation?) services -XXX TODO: use settrans/setxattr instead of MAKEDEV +XXX TODO: use Linux xattr/setxattr to remove (settrans in) /libexec/RUNSYSTEM " - (define translators - '(("/servers/crash-dump-core" ("/hurd/crash" "--dump-core")) - ("/servers/crash-kill" ("/hurd/crash" "--kill")) - ("/servers/crash-suspend" ("/hurd/crash" "--suspend")) - ("/servers/password" ("/hurd/password")) - ("/servers/socket/1" ("/hurd/pflocal")) - ("/servers/socket/2" ("/hurd/pfinet" "--interface" "eth0" - "--address" "10.0.2.15" ;the default QEMU guest IP - "--netmask" "255.255.255.0" - "--gateway" "10.0.2.2" - "--ipv6" "/servers/socket/16")))) (display "Welcome, this is GNU's early boot Guile.\n") (display "Use '--repl' for an initrd REPL.\n\n") @@ -147,35 +247,13 @@ XXX TODO: use settrans/setxattr instead of MAKEDEV (call-with-error-handling (lambda () - (define (translated? node) - ;; Return true if a translator is installed on NODE. - (with-output-to-port (%make-void-port "w") - (lambda () - (with-error-to-port (%make-void-port "w") - (lambda () - (zero? (system* "showtrans" "--silent" node))))))) - (let* ((args (command-line)) (system (find-long-option "--system" args)) (to-load (find-long-option "--load" args))) - (format #t "Creating essential servers...\n") - (setenv "PATH" (string-append system "/profile/bin" - ":" system "/profile/sbin")) - (for-each (match-lambda - ((node command) - (unless (translated? node) - (mkdir-p (dirname node)) - (apply invoke "settrans" "--create" node command)))) - translators) - - (format #t "Creating essential device nodes...\n") - (with-directory-excursion "/dev" - (invoke "MAKEDEV" "--devdir=/dev" "std") - (invoke "MAKEDEV" "--devdir=/dev" "vcs") - (invoke "MAKEDEV" "--devdir=/dev" "tty1""tty2" "tty3" "tty4" "tty5" "tty6") - (invoke "MAKEDEV" "--devdir=/dev" "ptyp0" "ptyp1" "ptyp2") - (invoke "MAKEDEV" "--devdir=/dev" "console")) + (format #t "Setting-up essential translators...\n") + (setenv "PATH" (string-append system "/profile/bin")) + (set-hurd-device-translators) (false-if-exception (delete-file "/hurd")) (let ((hurd/hurd (readlink* (string-append system "/profile/hurd")))) From patchwork Mon Jun 8 12:58:00 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Janneke Nieuwenhuizen X-Patchwork-Id: 22610 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 773DA27BBE3; Mon, 8 Jun 2020 13:59:12 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.9 required=5.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL autolearn=unavailable autolearn_force=no version=3.4.2 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTP id 65EA627BBE1 for ; Mon, 8 Jun 2020 13:59:10 +0100 (BST) Received: from localhost ([::1]:59958 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jiHMr-0006kY-Rb for patchwork@mira.cbaines.net; Mon, 08 Jun 2020 08:59:09 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:43390) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jiHMl-0006jh-LU for guix-patches@gnu.org; Mon, 08 Jun 2020 08:59:03 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:44588) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jiHMl-0008EJ-Bt for guix-patches@gnu.org; Mon, 08 Jun 2020 08:59:03 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1jiHMl-0001Sz-Bq for guix-patches@gnu.org; Mon, 08 Jun 2020 08:59:03 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#41541] [PATCH 2/4] system: hurd: Remove 'cross-hurd-image' hack. Resent-From: "Jan (janneke) Nieuwenhuizen" Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Mon, 08 Jun 2020 12:59:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 41541 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: To: 41541@debbugs.gnu.org Cc: Mathieu Othacehe , Ludovic =?utf-8?q?Court=C3=A8s?= Received: via spool by 41541-submit@debbugs.gnu.org id=B41541.15916210985551 (code B ref 41541); Mon, 08 Jun 2020 12:59:03 +0000 Received: (at 41541) by debbugs.gnu.org; 8 Jun 2020 12:58:18 +0000 Received: from localhost ([127.0.0.1]:56126 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jiHM2-0001RI-1F for submit@debbugs.gnu.org; Mon, 08 Jun 2020 08:58:18 -0400 Received: from eggs.gnu.org ([209.51.188.92]:35100) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jiHLz-0001Qk-Qm for 41541@debbugs.gnu.org; Mon, 08 Jun 2020 08:58:16 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:47713) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jiHLu-00080N-G3; Mon, 08 Jun 2020 08:58:10 -0400 Received: from [2001:980:1b4f:1:42d2:832d:bb59:862] (port=34142 helo=dundal.fritz.box) by fencepost.gnu.org with esmtpa (Exim 4.82) (envelope-from ) id 1jiHLs-00006C-9V; Mon, 08 Jun 2020 08:58:08 -0400 From: "Jan (janneke) Nieuwenhuizen" Date: Mon, 8 Jun 2020 14:58:00 +0200 Message-Id: <20200608125802.10617-3-janneke@gnu.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200608125802.10617-1-janneke@gnu.org> References: <20200608125802.10617-1-janneke@gnu.org> MIME-Version: 1.0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: "Guix-patches" X-getmail-retrieved-from-mailbox: Patches The initial guix build -f gnu/system/hurd.scm hack has been superseded by regular guix system (cross) build. * gnu/system/hurd.scm (compile-manifest, cross-hurd-image): Remove. --- gnu/system/hurd.scm | 177 +------------------------------------------- 1 file changed, 3 insertions(+), 174 deletions(-) diff --git a/gnu/system/hurd.scm b/gnu/system/hurd.scm index 956682357e..2205def577 100644 --- a/gnu/system/hurd.scm +++ b/gnu/system/hurd.scm @@ -39,16 +39,15 @@ #:use-module (gnu system) #:use-module (gnu system shadow) #:use-module (gnu system vm) - #:export (cross-hurd-image - %base-packages/hurd + #:export (%base-packages/hurd %base-services/hurd %hurd-default-operating-system %hurd-default-operating-system-kernel)) ;;; Commentary: ;;; -;;; This module provides tools to (cross-)build GNU/Hurd virtual machine -;;; images. +;;; This module provides system-specifics for the GNU/Hurd operating system +;;; and virtual machine. ;;; ;;; Code: @@ -104,173 +103,3 @@ (pam-services '()) (setuid-programs '()) (sudoers-file #f))) - -(define* (cross-hurd-image #:key (hurd hurd) (gnumach gnumach)) - "Return a cross-built GNU/Hurd image." - - (define (cross-built thing) - (with-parameters ((%current-target-system "i586-pc-gnu")) - thing)) - - (define (cross-built-entry entry) - (manifest-entry - (inherit entry) - (item (cross-built (manifest-entry-item entry))) - (dependencies (map cross-built-entry - (manifest-entry-dependencies entry))))) - - (define system-profile - (profile - (content - (map-manifest-entries cross-built-entry - (packages->manifest %base-packages/hurd))))) - - (define grub.cfg - (let ((hurd (cross-built hurd)) - (mach (with-parameters ((%current-system "i686-linux")) - gnumach)) - (libc (cross-libc "i586-pc-gnu"))) - (computed-file "grub.cfg" - #~(call-with-output-file #$output - (lambda (port) - (format port " -set timeout=2 -search.file ~a/boot/gnumach - -menuentry \"GNU\" { - multiboot ~a/boot/gnumach root=device:hd0s1 - module ~a/hurd/ext2fs.static ext2fs \\ - --multiboot-command-line='${kernel-command-line}' \\ - --host-priv-port='${host-port}' \\ - --device-master-port='${device-port}' \\ - --exec-server-task='${exec-task}' -T typed '${root}' \\ - '$(task-create)' '$(task-resume)' - module ~a/lib/ld.so.1 exec ~a/hurd/exec '$(exec-task=task-create)' -}\n" - #+mach #+mach #+hurd - #+libc #+hurd)))))) - - (define fstab - (plain-file "fstab" - "# This file was generated from your Guix configuration. Any changes -# will be lost upon reboot or reconfiguration. - -/dev/hd0s1 / ext2 defaults -")) - - (define passwd - (plain-file "passwd" - "root:x:0:0:root:/root:/bin/sh -guixbuilder:x:1:1:guixbuilder:/var/empty:/bin/no-sh -")) - - (define group - (plain-file "group" - "guixbuild:x:1:guixbuilder -")) - - (define shadow - (plain-file "shadow" - "root::0:0:0:0::: -")) - - (define etc-profile - (plain-file "profile" - "\ -export PS1='\\u@\\h\\$ ' - -GUIX_PROFILE=\"/run/current-system/profile\" -. \"$GUIX_PROFILE/etc/profile\" - -GUIX_PROFILE=\"$HOME/.guix-profile\" -if [ -f \"$GUIX_PROFILE/etc/profile\" ]; then - . \"$GUIX_PROFILE/etc/profile\" -fi\n")) - - (define hurd-directives - `((directory "/servers") - ,@(map (lambda (server) - `(file ,(string-append "/servers/" server))) - '("startup" "exec" "proc" "password" - "default-pager" "crash-dump-core" - "kill" "suspend")) - ("/servers/crash" -> "crash-dump-core") - (directory "/servers/socket") - (file "/servers/socket/1") - (file "/servers/socket/2") - (file "/servers/socket/16") - ("/servers/socket/local" -> "1") - ("/servers/socket/inet" -> "2") - ("/servers/socket/inet6" -> "16") - (directory "/boot") - ("/boot/grub.cfg" -> ,grub.cfg) ;XXX: not strictly needed - ("/hurd" -> ,(file-append (with-parameters ((%current-target-system - "i586-pc-gnu")) - hurd) - "/hurd")) - - ;; TODO: Create those during activation, eventually. - (directory "/root") - (file "/root/.guile" - ,(object->string - '(begin - (use-modules (ice-9 readline) (ice-9 colorized)) - (activate-readline) (activate-colorized)))) - (directory "/run") - (directory "/run/current-system") - ("/run/current-system/profile" -> ,system-profile) - ("/etc/profile" -> ,etc-profile) - ("/etc/fstab" -> ,fstab) - ("/etc/group" -> ,group) - ("/etc/passwd" -> ,passwd) - ("/etc/shadow" -> ,shadow) - (file "/etc/hostname" "guixygnu") - (file "/etc/resolv.conf" - "nameserver 10.0.2.3\n") - ("/etc/services" -> ,(file-append (with-parameters ((%current-target-system - "i586-pc-gnu")) - net-base) - "/etc/services")) - ("/etc/protocols" -> ,(file-append (with-parameters ((%current-target-system - "i586-pc-gnu")) - net-base) - "/etc/protocols")) - ("/etc/motd" -> ,(file-append (with-parameters ((%current-target-system - "i586-pc-gnu")) - hurd) - "/etc/motd")) - ("/etc/login" -> ,(file-append (with-parameters ((%current-target-system - "i586-pc-gnu")) - hurd) - "/etc/login")) - - - ;; XXX can we instead, harmlessly set _PATH_TTYS (from glibc) in runttys.c? - ("/etc/ttys" -> ,(file-append (with-parameters ((%current-target-system - "i586-pc-gnu")) - hurd) - "/etc/ttys")) - ("/bin/sh" -> ,(file-append (with-parameters ((%current-target-system - "i586-pc-gnu")) - bash) - "/bin/sh")))) - - (qemu-image #:file-system-type "ext2" - #:file-system-options '("-o" "hurd") - #:device-nodes 'hurd - #:inputs `(("system" ,system-profile) - ("grub.cfg" ,grub.cfg) - ("fstab" ,fstab) - ("passwd" ,passwd) - ("group" ,group) - ("etc-profile" ,etc-profile) - ("shadow" ,shadow)) - #:copy-inputs? #t - #:os system-profile - #:bootcfg-drv grub.cfg - #:bootloader grub-bootloader - #:register-closures? #f - #:extra-directives hurd-directives)) - -;; Return this thunk so one can type "guix build -f gnu/system/hurd.scm". -cross-hurd-image From patchwork Mon Jun 8 12:58:01 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Janneke Nieuwenhuizen X-Patchwork-Id: 22612 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 1658427BBE3; Mon, 8 Jun 2020 13:59:18 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.9 required=5.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL autolearn=unavailable autolearn_force=no version=3.4.2 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTP id A9EF327BBE1 for ; Mon, 8 Jun 2020 13:59:17 +0100 (BST) Received: from localhost ([::1]:60520 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jiHMz-00070y-6y for patchwork@mira.cbaines.net; Mon, 08 Jun 2020 08:59:17 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:43392) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jiHMm-0006jq-0e for guix-patches@gnu.org; Mon, 08 Jun 2020 08:59:04 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:44589) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jiHMl-0008Ev-NX for guix-patches@gnu.org; Mon, 08 Jun 2020 08:59:03 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1jiHMl-0001T6-Nx for guix-patches@gnu.org; Mon, 08 Jun 2020 08:59:03 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#41541] [PATCH 3/4] system: bare-hurd.tmpl: Add openssh client and service. Resent-From: "Jan (janneke) Nieuwenhuizen" Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Mon, 08 Jun 2020 12:59:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 41541 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: To: 41541@debbugs.gnu.org Cc: Mathieu Othacehe , Ludovic =?utf-8?q?Court=C3=A8s?= Received: via spool by 41541-submit@debbugs.gnu.org id=B41541.15916211005559 (code B ref 41541); Mon, 08 Jun 2020 12:59:03 +0000 Received: (at 41541) by debbugs.gnu.org; 8 Jun 2020 12:58:20 +0000 Received: from localhost ([127.0.0.1]:56129 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jiHM3-0001Rb-N0 for submit@debbugs.gnu.org; Mon, 08 Jun 2020 08:58:20 -0400 Received: from eggs.gnu.org ([209.51.188.92]:35118) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jiHM2-0001Qo-5k for 41541@debbugs.gnu.org; Mon, 08 Jun 2020 08:58:18 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:47714) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jiHLw-00080h-Ry; Mon, 08 Jun 2020 08:58:12 -0400 Received: from [2001:980:1b4f:1:42d2:832d:bb59:862] (port=34142 helo=dundal.fritz.box) by fencepost.gnu.org with esmtpa (Exim 4.82) (envelope-from ) id 1jiHLu-00006C-2I; Mon, 08 Jun 2020 08:58:10 -0400 From: "Jan (janneke) Nieuwenhuizen" Date: Mon, 8 Jun 2020 14:58:01 +0200 Message-Id: <20200608125802.10617-4-janneke@gnu.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200608125802.10617-1-janneke@gnu.org> References: <20200608125802.10617-1-janneke@gnu.org> MIME-Version: 1.0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: "Guix-patches" X-getmail-retrieved-from-mailbox: Patches This: ./pre-inst-env guix system disk-image --no-grafts --target=i586-pc-gnu \ gnu/system/examples/bare-hurd.tmpl now produces a VM image with functional ssh daemon that you may run like guix environment --ad-hoc qemu -- qemu-system-i386 -enable-kvm -m 512M \ -device rtl8139,netdev=net0 -netdev user,id=net0,hostfwd=tcp:127.0.0.1:10022-:2222 \ -snapshot -hda and use like ssh -p 10022 root@localhost guix build -e '(@@ (gnu packages commencement) gnu-make-boot0)' or even (if you use --image-size=3G) guix build hello * gnu/system/examples/bare-hurd.tmpl (%hurd-os)[packages]: Add openssh. [services]: Add openssh-service. --- gnu/system/examples/bare-hurd.tmpl | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/gnu/system/examples/bare-hurd.tmpl b/gnu/system/examples/bare-hurd.tmpl index 16f20416aa..6b421550b7 100644 --- a/gnu/system/examples/bare-hurd.tmpl +++ b/gnu/system/examples/bare-hurd.tmpl @@ -11,6 +11,8 @@ ;; it boots, but needs activation, more setup and services to be useful. (use-modules (gnu) (gnu system hurd) (guix utils)) +(use-service-modules ssh) +(use-package-modules ssh) (define %hurd-os (operating-system @@ -25,7 +27,14 @@ %base-file-systems)) (host-name "guixygnu") (timezone "Europe/Amsterdam") - (packages %base-packages/hurd) - (services %base-services/hurd))) + (packages (cons openssh %base-packages/hurd)) + (services (cons (service openssh-service-type + (openssh-configuration + (use-pam? #f) + (port-number 2222) + (permit-root-login #t) + (allow-empty-passwords? #t) + (password-authentication? #t))) + %base-services/hurd)))) %hurd-os From patchwork Mon Jun 8 12:58:02 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Janneke Nieuwenhuizen X-Patchwork-Id: 22613 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id EDEE527BBE3; Mon, 8 Jun 2020 13:59:19 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.9 required=5.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL autolearn=unavailable autolearn_force=no version=3.4.2 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTP id 924B127BBE1 for ; Mon, 8 Jun 2020 13:59:19 +0100 (BST) Received: from localhost ([::1]:60714 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jiHN1-00075Q-4X for patchwork@mira.cbaines.net; Mon, 08 Jun 2020 08:59:19 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:43394) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jiHMm-0006kZ-Hg for guix-patches@gnu.org; Mon, 08 Jun 2020 08:59:04 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:44590) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jiHMm-0008F4-5N for guix-patches@gnu.org; Mon, 08 Jun 2020 08:59:04 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1jiHMm-0001TD-5G for guix-patches@gnu.org; Mon, 08 Jun 2020 08:59:04 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#41541] [PATCH 4/4] hurd-boot: Use 'setxattr' instead of invoking settrans. Resent-From: "Jan (janneke) Nieuwenhuizen" Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Mon, 08 Jun 2020 12:59:04 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 41541 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: To: 41541@debbugs.gnu.org Cc: Mathieu Othacehe , Ludovic =?utf-8?q?Court=C3=A8s?= Received: via spool by 41541-submit@debbugs.gnu.org id=B41541.15916211035575 (code B ref 41541); Mon, 08 Jun 2020 12:59:04 +0000 Received: (at 41541) by debbugs.gnu.org; 8 Jun 2020 12:58:23 +0000 Received: from localhost ([127.0.0.1]:56132 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jiHM7-0001Rr-44 for submit@debbugs.gnu.org; Mon, 08 Jun 2020 08:58:23 -0400 Received: from eggs.gnu.org ([209.51.188.92]:35132) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jiHM5-0001R8-4f for 41541@debbugs.gnu.org; Mon, 08 Jun 2020 08:58:21 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:47716) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jiHLz-000819-QN; Mon, 08 Jun 2020 08:58:15 -0400 Received: from [2001:980:1b4f:1:42d2:832d:bb59:862] (port=34142 helo=dundal.fritz.box) by fencepost.gnu.org with esmtpa (Exim 4.82) (envelope-from ) id 1jiHLw-00006C-9q; Mon, 08 Jun 2020 08:58:13 -0400 From: "Jan (janneke) Nieuwenhuizen" Date: Mon, 8 Jun 2020 14:58:02 +0200 Message-Id: <20200608125802.10617-5-janneke@gnu.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200608125802.10617-1-janneke@gnu.org> References: <20200608125802.10617-1-janneke@gnu.org> MIME-Version: 1.0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: "Guix-patches" X-getmail-retrieved-from-mailbox: Patches Note: Using `getxattr' on the Hurd instead of running showtrans does not work (yet?). * gnu/build/hurd-boot.scm (setup-translator): Use 'setxattr' instead of invoking settrans. * gnu/system.scm (hurd-multiboot-modules): Add --x-xattr-translator-records to enable xattr-embebbing of translators. --- gnu/build/hurd-boot.scm | 2 +- gnu/system.scm | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/build/hurd-boot.scm b/gnu/build/hurd-boot.scm index 398cee1395..8150aff972 100644 --- a/gnu/build/hurd-boot.scm +++ b/gnu/build/hurd-boot.scm @@ -140,7 +140,7 @@ set." (chmod port mode))))) (catch 'system-error (lambda _ - (apply invoke "settrans" "--create" file-name command)) + (setxattr file-name "gnu.translator" (string-join command "\0" 'suffix))) (lambda (key . args) (let ((errno (system-error-errno (cons key args)))) (format (current-error-port) "~a: ~a\n" diff --git a/gnu/system.scm b/gnu/system.scm index 21d0fbd190..c6feea08f9 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -1190,6 +1190,7 @@ a list of , to populate the \"old entries\" menu." "--device-master-port='${device-port}'" "--exec-server-task='${exec-task}'" "--store-type=typed" + "--x-xattr-translator-records" "'${root}'" "'$(task-create)'" "'$(task-resume)'")) (target (%current-target-system)) (libc (if target