activation: Keep going when failing to create one of the setuid programs.
Fixes <https://bugs.gnu.org/38800>. Reported by Jakub Kądziołka <kuba@kadziolka.net>. * gnu/build/activation.scm (activate-setuid-programs): Catch 'system-error' around 'make-setuid-program' calls.
This commit is contained in:
parent
2d41d861bf
commit
7c4e4bac87
1 changed files with 14 additions and 2 deletions
|
@ -1,5 +1,5 @@
|
||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
|
;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
|
||||||
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
|
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
|
@ -247,7 +247,19 @@ they already exist."
|
||||||
string<?))
|
string<?))
|
||||||
(mkdir-p %setuid-directory))
|
(mkdir-p %setuid-directory))
|
||||||
|
|
||||||
(for-each make-setuid-program programs))
|
(for-each (lambda (program)
|
||||||
|
(catch 'system-error
|
||||||
|
(lambda ()
|
||||||
|
(make-setuid-program program))
|
||||||
|
(lambda args
|
||||||
|
;; If we fail to create a setuid program, better keep going
|
||||||
|
;; so that we don't leave %SETUID-DIRECTORY empty or
|
||||||
|
;; half-populated. This can happen if PROGRAMS contains
|
||||||
|
;; incorrect file names: <https://bugs.gnu.org/38800>.
|
||||||
|
(format (current-error-port)
|
||||||
|
"warning: failed to make '~a' setuid-root: ~a~%"
|
||||||
|
program (strerror (system-error-errno args))))))
|
||||||
|
programs))
|
||||||
|
|
||||||
(define (activate-special-files special-files)
|
(define (activate-special-files special-files)
|
||||||
"Install the files listed in SPECIAL-FILES. Each element of SPECIAL-FILES
|
"Install the files listed in SPECIAL-FILES. Each element of SPECIAL-FILES
|
||||||
|
|
Reference in a new issue