GNU bug report logs -
#71664
[PATCH v2 4/5] services: backup: Move restic package to restic-configuration
Previous Next
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 71664 in the body.
You can then email your comments to 71664 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
pelzflorian <at> pelzflorian.de, ludo <at> gnu.org, matt <at> excalamus.com, maxim.cournoyer <at> gmail.com, guix-patches <at> gnu.org
:
bug#71664
; Package
guix-patches
.
(Thu, 20 Jun 2024 03:46:04 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Richard Sent <richard <at> freakingpenguin.com>
:
New bug report received and forwarded. Copy sent to
pelzflorian <at> pelzflorian.de, ludo <at> gnu.org, matt <at> excalamus.com, maxim.cournoyer <at> gmail.com, guix-patches <at> gnu.org
.
(Thu, 20 Jun 2024 03:46:05 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
* gnu/services/backup.scm (restic-backup-configuration): Add restic field.
(restic-backup-job-program): Add restic package to function signature.
(restic-guix): Ditto.
(restic-guix-wrapper-package): Ditto. Add restic package as package input.
(restic-backup-service-profile): Remove excess lamba.
* doc/guix.texi (Miscellaneous Services): Document it.
Change-Id: I1e5f63c21cd072354225afe0ee270dca8d9d840b
---
doc/guix.texi | 6 +++---
gnu/services/backup.scm | 38 ++++++++++++++++++++------------------
2 files changed, 23 insertions(+), 21 deletions(-)
diff --git a/doc/guix.texi b/doc/guix.texi
index 32ce0c86b9..e4379c5e1c 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -41311,6 +41311,9 @@ Miscellaneous Services
Available @code{restic-backup-configuration} fields are:
@table @asis
+@item @code{restic} (default: @code{restic}) (type: package)
+The restic package to use for all jobs.
+
@item @code{jobs} (default: @code{'()}) (type: list-of-restic-backup-jobs)
The list of backup jobs for the current system.
@@ -41327,9 +41330,6 @@ Miscellaneous Services
Available @code{restic-backup-job} fields are:
@table @asis
-@item @code{restic} (default: @code{restic}) (type: package)
-The restic package to be used for the current job.
-
@item @code{user} (default: @code{"root"}) (type: string)
The user used for running the current job.
diff --git a/gnu/services/backup.scm b/gnu/services/backup.scm
index bfbacfe590..5e2add088e 100644
--- a/gnu/services/backup.scm
+++ b/gnu/services/backup.scm
@@ -29,10 +29,10 @@ (define-module (gnu services backup)
#:use-module (guix modules)
#:use-module (guix packages)
#:use-module (srfi srfi-1)
+ #:use-module (srfi srfi-26)
#:export (restic-backup-job
restic-backup-job?
restic-backup-job-fields
- restic-backup-job-restic
restic-backup-job-user
restic-backup-job-name
restic-backup-job-repository
@@ -46,6 +46,7 @@ (define-module (gnu services backup)
restic-backup-configuration
restic-backup-configuration?
+ restic-backup-configuration-restic
restic-backup-configuration-fields
restic-backup-configuration-jobs
@@ -71,9 +72,6 @@ (define-maybe/no-serialization string)
(define-maybe/no-serialization file-like)
(define-configuration/no-serialization restic-backup-job
- (restic
- (package restic)
- "The restic package to be used for the current job.")
(user
(string "root")
"The user used for running the current job.")
@@ -129,11 +127,14 @@ (define list-of-restic-backup-jobs?
(list-of restic-backup-job?))
(define-configuration/no-serialization restic-backup-configuration
+ (restic
+ (package restic)
+ "The restic package to be used.")
(jobs
(list-of-restic-backup-jobs '())
"The list of backup jobs for the current system."))
-(define (restic-backup-job-program config)
+(define (restic-backup-job-program restic-package config)
(define (maybe-value-or-false maybe)
(if (maybe-value-set? maybe)
maybe
@@ -142,7 +143,7 @@ (define (restic-backup-job-program config)
(verify-restic-backup-job-configuration config)
(let ((restic
- (file-append (restic-backup-job-restic config) "/bin/restic"))
+ (file-append restic-package "/bin/restic"))
(repository
(restic-backup-job-repository config))
(password-file
@@ -189,7 +190,7 @@ (define (restic-backup-job-program config)
#$@extra-flags
"backup" #$@files)))))
-(define (restic-guix jobs)
+(define (restic-guix restic-package jobs)
(program-file
"restic-guix"
#~(begin
@@ -197,7 +198,7 @@ (define (restic-guix jobs)
(srfi srfi-1))
(define names '#$(map restic-backup-job-name jobs))
- (define programs '#$(map restic-backup-job-program jobs))
+ (define programs '#$(map (cut restic-backup-job-program restic-package <>) jobs))
(define (get-program name)
(define idx
@@ -240,13 +241,13 @@ (define (restic-backup-job->mcron-job config)
#$(string-append "restic-guix backup " name)
#:user #$user)))
-(define (restic-guix-wrapper-package jobs)
+(define (restic-guix-wrapper-package restic jobs)
(let ((extra-packages (append-map restic-backup-job-extra-packages
jobs)))
(package
(name "restic-backup-service-wrapper")
(version "0.0.0")
- (source (restic-guix restic-package jobs))
+ (source (restic-guix restic jobs))
(build-system copy-build-system)
(arguments
(list #:install-plan #~'(("./" "/bin"))))
@@ -258,16 +259,17 @@ (define (restic-guix-wrapper-package jobs)
by the @code{restic-backup-service-type}. It allows for easily interacting
with Guix configured backup jobs, for example for manually triggering a backup
without waiting for the scheduled job to run.")
- (inputs extra-packages)
+ (inputs (cons restic extra-packages))
(license license:gpl3+))))
-(define restic-backup-service-profile
- (lambda (config)
- (define jobs (restic-backup-configuration-jobs config))
- (if (> (length jobs) 0)
- (list
- (restic-guix-wrapper-package jobs))
- '())))
+(define (restic-backup-service-profile config)
+ (let ((jobs (restic-backup-configuration-jobs config))
+ (restic (restic-backup-configuration-restic config)))
+ ;; Even if we provide a wrapper we need to add restic to the profile so
+ ;; the service works in containers and VMs which only see a subset of
+ ;; /gnu/store. https://issues.guix.gnu.org/70553. Ergo pass restic to
+ ;; the wrapper package so it is added as an input.
+ (list (restic-guix-wrapper-package restic jobs))))
(define restic-backup-service-type
(service-type (name 'restic-backup)
--
2.45.1
bug closed, send any further explanations to
71664 <at> debbugs.gnu.org and Richard Sent <richard <at> freakingpenguin.com>
Request was from
Richard Sent <richard <at> freakingpenguin.com>
to
control <at> debbugs.gnu.org
.
(Thu, 20 Jun 2024 20:59:05 GMT)
Full text and
rfc822 format available.
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Sat, 20 Jul 2024 11:24:12 GMT)
Full text and
rfc822 format available.
This bug report was last modified 336 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.