diff --git a/guix/pki.scm b/guix/pki.scm index dc8139fbc9..5e4dbadd35 100644 --- a/guix/pki.scm +++ b/guix/pki.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013 Ludovic Courtès +;;; Copyright © 2013, 2014 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -20,6 +20,7 @@ #:use-module (guix config) #:use-module (guix pk-crypto) #:use-module ((guix utils) #:select (with-atomic-file-output)) + #:use-module ((guix build utils) #:select (mkdir-p)) #:use-module (ice-9 match) #:use-module (rnrs io ports) #:export (%public-key-file @@ -82,6 +83,7 @@ element in KEYS must be a canonical sexp with type 'public-key'." (let ((public-key (call-with-input-file %public-key-file (compose string->canonical-sexp get-string-all)))) + (mkdir-p (dirname %acl-file)) (with-atomic-file-output %acl-file (lambda (port) (display (canonical-sexp->string diff --git a/guix/scripts/archive.scm b/guix/scripts/archive.scm index 66000435b4..3b778d8151 100644 --- a/guix/scripts/archive.scm +++ b/guix/scripts/archive.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013 Ludovic Courtès +;;; Copyright © 2013, 2014 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -19,6 +19,7 @@ (define-module (guix scripts archive) #:use-module (guix config) #:use-module (guix utils) + #:use-module ((guix build utils) #:select (mkdir-p)) #:use-module (guix store) #:use-module (guix packages) #:use-module (guix derivations) @@ -250,6 +251,7 @@ this may take time...~%")) ;; Create the following files as #o400. (umask #o266) + (mkdir-p (dirname %public-key-file)) (with-atomic-file-output %public-key-file (lambda (port) (display (canonical-sexp->string public) port)))