diff mbox series

[bug#53384] services: guix-publish: Add negative-ttl parameter.

Message ID 20220120100418.8490-1-glv@posteo.net
State Accepted
Headers show
Series [bug#53384] services: guix-publish: Add negative-ttl parameter. | expand

Checks

Context Check Description
cbaines/applying patch fail View Laminar job
cbaines/issue success View issue

Commit Message

Guillaume Le Vaillant Jan. 20, 2022, 10:04 a.m. UTC
* gnu/services/base.scm (guix-publish-configuration): Add 'negative-ttl'
  field.
  (guix-publish-sheperd-service): Process it.
* doc/guix.texi (Base Services)[guix-publish-service-type]: Add item for
  negative-ttl.
---
 doc/guix.texi         |  7 ++++++-
 gnu/services/base.scm | 15 ++++++++++++---
 2 files changed, 18 insertions(+), 4 deletions(-)

Comments

Mathieu Othacehe Jan. 20, 2022, 1:22 p.m. UTC | #1
Hello Guillaume,

> * gnu/services/base.scm (guix-publish-configuration): Add 'negative-ttl'
>   field.
>   (guix-publish-sheperd-service): Process it.
> * doc/guix.texi (Base Services)[guix-publish-service-type]: Add item for
>   negative-ttl.

This looks fine, feel free to go ahead.

Thanks,

Mathieu
Guillaume Le Vaillant Jan. 20, 2022, 1:58 p.m. UTC | #2
Mathieu Othacehe <othacehe@gnu.org> skribis:

> Hello Guillaume,
>
>> * gnu/services/base.scm (guix-publish-configuration): Add 'negative-ttl'
>>   field.
>>   (guix-publish-sheperd-service): Process it.
>> * doc/guix.texi (Base Services)[guix-publish-service-type]: Add item for
>>   negative-ttl.
>
> This looks fine, feel free to go ahead.
>
> Thanks,
>
> Mathieu

Thanks for the review.
Pushed as 1aa269d1d74a7b53ed705def5a8db79fbccb5ce3.
diff mbox series

Patch

diff --git a/doc/guix.texi b/doc/guix.texi
index 28eaf8338c..912a8e3c5a 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -69,7 +69,7 @@  Copyright @copyright{} 2019 Ivan Petkov@*
 Copyright @copyright{} 2019 Jakob L. Kreuze@*
 Copyright @copyright{} 2019 Kyle Andrews@*
 Copyright @copyright{} 2019 Alex Griffin@*
-Copyright @copyright{} 2019, 2020, 2021 Guillaume Le Vaillant@*
+Copyright @copyright{} 2019, 2020, 2021, 2022 Guillaume Le Vaillant@*
 Copyright @copyright{} 2020 Liliana Marie Prikler@*
 Copyright @copyright{} 2019, 2020, 2021, 2022 Simon Tournier@*
 Copyright @copyright{} 2020 Wiktor Żelazny@*
@@ -16888,6 +16888,11 @@  cache miss.  @xref{Invoking guix publish,
 When it is an integer, this denotes the @dfn{time-to-live} in seconds
 of the published archives.  @xref{Invoking guix publish, @option{--ttl}},
 for more information.
+
+@item @code{negative-ttl} (default: @code{#f})
+When it is an integer, this denotes the @dfn{time-to-live} in
+seconds for the negative lookups.  @xref{Invoking guix publish,
+@option{--negative-ttl}}, for more information.
 @end table
 @end deftp
 
diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index 345e0ca0f7..fbd01e84d6 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -16,6 +16,7 @@ 
 ;;; Copyright © 2021 qblade <qblade@protonmail.com>
 ;;; Copyright © 2021 Hui Lu <luhuins@163.com>
 ;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2022 Guillaume Le Vaillant <glv@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -196,6 +197,7 @@  (define-module (gnu services base)
             guix-publish-configuration-nar-path
             guix-publish-configuration-cache
             guix-publish-configuration-ttl
+            guix-publish-configuration-negative-ttl
             guix-publish-service-type
 
             gpm-configuration
@@ -1828,7 +1830,9 @@  (define-record-type* <guix-publish-configuration>
   (workers     guix-publish-configuration-workers ;#f | integer
                (default #f))
   (ttl         guix-publish-configuration-ttl     ;#f | integer
-               (default #f)))
+               (default #f))
+  (negative-ttl guix-publish-configuration-negative-ttl ;#f | integer
+                (default #f)))
 
 (define-deprecated (guix-publish-configuration-compression-level config)
   "Return a compression level, the old way."
@@ -1863,8 +1867,8 @@  (define (config->compression-options config)
                    lst))))
 
   (match-record config <guix-publish-configuration>
-    (guix port host nar-path cache workers ttl cache-bypass-threshold
-          advertise?)
+    (guix port host nar-path cache workers ttl negative-ttl
+          cache-bypass-threshold advertise?)
     (list (shepherd-service
            (provision '(guix-publish))
            (requirement `(user-processes
@@ -1890,6 +1894,11 @@  (define (config->compression-options config)
                                                     #$(number->string ttl)
                                                     "s"))
                                   #~())
+                           #$@(if negative-ttl
+                                  #~((string-append "--negative-ttl="
+                                                    #$(number->string negative-ttl)
+                                                    "s"))
+                                  #~())
                            #$@(if cache
                                   #~((string-append "--cache=" #$cache)
                                      #$(string-append