summaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2017-12-07 17:16:05 +0100
committerLudovic Courtès <ludo@gnu.org>2017-12-07 17:16:05 +0100
commit5a2f019c7d35d539036825a7d0cc184f0c7dc60a (patch)
tree7f31b5deab60d469737073cd9b200c32506952a0 /gnu
parent66f217b43aca603326dab17d4dda1a398bf4fb8c (diff)
parent0dd91619a597b52bcb5d6d1bb675a9eb65242c44 (diff)
Merge branch 'version-0.14.0'
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/commencement.scm5
-rw-r--r--gnu/packages/cups.scm10
-rw-r--r--gnu/packages/ghostscript.scm7
-rw-r--r--gnu/packages/package-management.scm8
-rw-r--r--gnu/services/base.scm56
-rw-r--r--gnu/services/ssh.scm12
-rw-r--r--gnu/system/install.scm5
7 files changed, 67 insertions, 36 deletions
diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm
index 406a23b21c..c5c00688e4 100644
--- a/gnu/packages/commencement.scm
+++ b/gnu/packages/commencement.scm
@@ -113,7 +113,8 @@
(define file-boot0
(package-with-bootstrap-guile
- (package-with-explicit-inputs (package/inherit file
+ (package-with-explicit-inputs (package
+ (inherit file)
(name "file-boot0"))
`(("make" ,gnu-make-boot0)
,@%bootstrap-inputs)
@@ -140,7 +141,7 @@
(define binutils-boot0
(package-with-bootstrap-guile
- (package/inherit binutils
+ (package (inherit binutils)
(name "binutils-cross-boot0")
(arguments
`(#:guile ,%bootstrap-guile
diff --git a/gnu/packages/cups.scm b/gnu/packages/cups.scm
index bbf2699f00..e3a252bc0c 100644
--- a/gnu/packages/cups.scm
+++ b/gnu/packages/cups.scm
@@ -46,14 +46,6 @@
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages tls))
-;; Delay to avoid module circularity problems.
-(define ghostscript/cups
- (delay
- (package/inherit ghostscript
- (name "ghostscript-with-cups")
- (inputs `(("cups" ,cups-minimal)
- ,@(package-inputs ghostscript))))))
-
(define-public cups-filters
(package
(name "cups-filters")
@@ -146,7 +138,7 @@
("fontconfig" ,fontconfig)
("freetype" ,freetype)
("font-dejavu" ,font-dejavu) ; also needed by test suite
- ("ghostscript" ,(force ghostscript/cups))
+ ("ghostscript" ,ghostscript/cups)
("ijs" ,ijs)
("dbus" ,dbus)
("lcms" ,lcms)
diff --git a/gnu/packages/ghostscript.scm b/gnu/packages/ghostscript.scm
index 28477b2c42..f0a28d0752 100644
--- a/gnu/packages/ghostscript.scm
+++ b/gnu/packages/ghostscript.scm
@@ -26,6 +26,7 @@
#:use-module (gnu packages)
#:use-module (gnu packages autotools)
#:use-module (gnu packages compression)
+ #:use-module (gnu packages cups)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages image)
#:use-module (gnu packages perl)
@@ -281,6 +282,12 @@ output file formats and printers.")
("libxt" ,libxt)
,@(package-inputs ghostscript)))))
+(define-public ghostscript/cups
+ (package/inherit ghostscript
+ (name "ghostscript-with-cups")
+ (inputs `(("cups" ,cups-minimal)
+ ,@(package-inputs ghostscript)))))
+
(define-public ijs
(package
(name "ijs")
diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm
index a1fb3b9cf7..45119bc708 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -85,9 +85,9 @@
;; Latest version of Guix, which may or may not correspond to a release.
;; Note: the 'update-guix-package.scm' script expects this definition to
;; start precisely like this.
- (let ((version "0.13.0")
- (commit "3fb6464ba43141b671481ce5ba158b6e6d1badfe")
- (revision 13))
+ (let ((version "0.14.0")
+ (commit "ad4953bc0ec1684c49c0934304c7ec200a0cd280")
+ (revision 1))
(package
(name "guix")
@@ -103,7 +103,7 @@
(commit commit)))
(sha256
(base32
- "0nx3nvr3myjhg7zyyrvxfs63ddmb7yv0ndzn1dq4gp2is65n3krr"))
+ "0ngra4cb1kf3kwccslmhnvlr116drsnbqrsjniq1hrg5mqf6vf1b"))
(file-name (string-append "guix-" version "-checkout"))))
(build-system gnu-build-system)
(arguments
diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index 11f55c588c..291dd63256 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -621,21 +621,23 @@ to add @var{device} to the kernel's entropy pool. The service will fail if
(define (unicode-start tty)
"Return a gexp to start Unicode support on @var{tty}."
-
- ;; We have to run 'unicode_start' in a pipe so that when it invokes the
- ;; 'tty' command, that command returns TTY.
- #~(begin
- (let ((pid (primitive-fork)))
- (case pid
- ((0)
- (close-fdes 0)
- (dup2 (open-fdes #$tty O_RDONLY) 0)
- (close-fdes 1)
- (dup2 (open-fdes #$tty O_WRONLY) 1)
- (execl #$(file-append kbd "/bin/unicode_start")
- "unicode_start"))
- (else
- (zero? (cdr (waitpid pid))))))))
+ (with-imported-modules '((guix build syscalls))
+ #~(let* ((fd (open-fdes #$tty O_RDWR))
+ (termios (tcgetattr fd)))
+ (define (set-utf8-input termios)
+ (set-field termios (termios-input-flags)
+ (logior (input-flags IUTF8)
+ (termios-input-flags termios))))
+
+ ;; See console_codes(4).
+ (display "\x1b%G" (fdes->outport fd))
+
+ (tcsetattr fd (tcsetattr-action TCSAFLUSH)
+ (set-utf8-input termios))
+
+ ;; TODO: ioctl(fd, KDSKBMODE, K_UNICODE);
+ (close-fdes fd)
+ #t)))
(define console-keymap-service-type
(shepherd-service-type
@@ -674,11 +676,29 @@ to add @var{device} to the kernel's entropy pool. The service will fail if
(requirement (list (symbol-append 'term-
(string->symbol tty))))
+ (modules '((guix build syscalls) ;for 'tcsetattr'
+ (srfi srfi-9 gnu))) ;for 'set-field'
(start #~(lambda _
+ ;; It could be that mingetty is not fully ready yet,
+ ;; which we check by calling 'ttyname'.
+ (let loop ((i 10))
+ (unless (or (zero? i)
+ (call-with-input-file #$device
+ (lambda (port)
+ (false-if-exception (ttyname port)))))
+ (usleep 500)
+ (loop (- i 1))))
+
(and #$(unicode-start device)
- (zero?
- (system* #$(file-append kbd "/bin/setfont")
- "-C" #$device #$font)))))
+ ;; 'setfont' returns EX_OSERR (71) when an
+ ;; KDFONTOP ioctl fails, for example. Like
+ ;; systemd's vconsole support, let's not treat
+ ;; this as an error.
+ (case (status:exit-val
+ (system* #$(file-append kbd "/bin/setfont")
+ "-C" #$device #$font))
+ ((0 71) #t)
+ (else #f)))))
(stop #~(const #t))
(respawn? #f)))))
tty+font))
diff --git a/gnu/services/ssh.scm b/gnu/services/ssh.scm
index b33ec946c6..301ba74041 100644
--- a/gnu/services/ssh.scm
+++ b/gnu/services/ssh.scm
@@ -304,7 +304,14 @@ The other options should be self-descriptive."
;; list of user-name/file-like tuples
(authorized-keys openssh-authorized-keys
- (default '())))
+ (default '()))
+
+ ;; Boolean
+ ;; XXX: This should really be handled in an orthogonal way, for instance as
+ ;; proposed in <https://bugs.gnu.org/27155>. Keep it internal/undocumented
+ ;; for now.
+ (%auto-start? openssh-auto-start?
+ (default #t)))
(define %openssh-accounts
(list (user-group (name "sshd") (system? #t))
@@ -445,7 +452,8 @@ of user-name/file-like tuples."
(provision '(ssh-daemon))
(start #~(make-forkexec-constructor #$openssh-command
#:pid-file #$pid-file))
- (stop #~(make-kill-destructor)))))
+ (stop #~(make-kill-destructor))
+ (auto-start? (openssh-auto-start? config)))))
(define (openssh-pam-services config)
"Return a list of <pam-services> for sshd with CONFIG."
diff --git a/gnu/system/install.scm b/gnu/system/install.scm
index 2e4dd05bb2..c2f73f7e8f 100644
--- a/gnu/system/install.scm
+++ b/gnu/system/install.scm
@@ -265,7 +265,10 @@ You have been warned. Thanks for being so brave.\x1b[0m
;; The root account is passwordless, so make sure
;; a password is set before allowing logins.
(allow-empty-passwords? #f)
- (password-authentication? #t)))
+ (password-authentication? #t)
+
+ ;; Don't start it upfront.
+ (%auto-start? #f)))
;; Since this is running on a USB stick with a overlayfs as the root
;; file system, use an appropriate cache configuration.