From efb22b47dbafff233e0a2d332d019270297be8b5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Cl=C3=A9ment=20Lassieur?= <clement@lassieur.org>
Date: Sun, 12 Aug 2018 21:19:38 +0200
Subject: [PATCH] services: cgit: Disable repo booleans having a global
 counterpart.

Otherwise the global counterpart is never taken into account.

* doc/guix.texi (Version Control Services): Update accordingly.
* gnu/services/cgit.scm (repo-boolean?, serialize-repo-boolean): Use the
DEFINE-MAYBE macro to allow for the 'disabled value.
(repository-cgit-configuration)[enable-commit-graph?, enable-log-filecount?,
enable-log-linecount?, enable-remote-branches?, enable-subject-links?,
enable-html-serving?]: Change default value to 'disabled.
---
 doc/guix.texi         | 24 ++++++++++++------------
 gnu/services/cgit.scm | 13 +++++++------
 2 files changed, 19 insertions(+), 18 deletions(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index a9bb6d864a..1cc73eb933 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -20061,51 +20061,51 @@ Defaults to @samp{""}.
 
 @end deftypevr
 
-@deftypevr {@code{repository-cgit-configuration} parameter} repo-boolean enable-commit-graph?
+@deftypevr {@code{repository-cgit-configuration} parameter} maybe-repo-boolean enable-commit-graph?
 A flag which can be used to disable the global setting
 @code{enable-commit-graph?}.
 
-Defaults to @samp{#f}.
+Defaults to @samp{disabled}.
 
 @end deftypevr
 
-@deftypevr {@code{repository-cgit-configuration} parameter} repo-boolean enable-log-filecount?
+@deftypevr {@code{repository-cgit-configuration} parameter} maybe-repo-boolean enable-log-filecount?
 A flag which can be used to disable the global setting
 @code{enable-log-filecount?}.
 
-Defaults to @samp{#f}.
+Defaults to @samp{disabled}.
 
 @end deftypevr
 
-@deftypevr {@code{repository-cgit-configuration} parameter} repo-boolean enable-log-linecount?
+@deftypevr {@code{repository-cgit-configuration} parameter} maybe-repo-boolean enable-log-linecount?
 A flag which can be used to disable the global setting
 @code{enable-log-linecount?}.
 
-Defaults to @samp{#f}.
+Defaults to @samp{disabled}.
 
 @end deftypevr
 
-@deftypevr {@code{repository-cgit-configuration} parameter} repo-boolean enable-remote-branches?
+@deftypevr {@code{repository-cgit-configuration} parameter} maybe-repo-boolean enable-remote-branches?
 Flag which, when set to @code{#t}, will make cgit display remote
 branches in the summary and refs views.
 
-Defaults to @samp{#f}.
+Defaults to @samp{disabled}.
 
 @end deftypevr
 
-@deftypevr {@code{repository-cgit-configuration} parameter} repo-boolean enable-subject-links?
+@deftypevr {@code{repository-cgit-configuration} parameter} maybe-repo-boolean enable-subject-links?
 A flag which can be used to override the global setting
 @code{enable-subject-links?}.
 
-Defaults to @samp{#f}.
+Defaults to @samp{disabled}.
 
 @end deftypevr
 
-@deftypevr {@code{repository-cgit-configuration} parameter} repo-boolean enable-html-serving?
+@deftypevr {@code{repository-cgit-configuration} parameter} maybe-repo-boolean enable-html-serving?
 A flag which can be used to override the global setting
 @code{enable-html-serving?}.
 
-Defaults to @samp{#f}.
+Defaults to @samp{disabled}.
 
 @end deftypevr
 
diff --git a/gnu/services/cgit.scm b/gnu/services/cgit.scm
index 3289d37333..a84a2dadb2 100644
--- a/gnu/services/cgit.scm
+++ b/gnu/services/cgit.scm
@@ -149,6 +149,7 @@
 
 (define (serialize-repo-boolean field-name val)
   (serialize-repo-integer field-name (if val 1 0)))
+(define-maybe repo-boolean)
 
 (define repo-list? list?)
 
@@ -239,27 +240,27 @@ is no suitable HEAD.")
    (repo-file-object "")
    "Override the default @code{email-filter}.")
   (enable-commit-graph?
-   (repo-boolean #f)
+   (maybe-repo-boolean 'disabled)
    "A flag which can be used to disable the global setting
 @code{enable-commit-graph?}.")
   (enable-log-filecount?
-   (repo-boolean #f)
+   (maybe-repo-boolean 'disabled)
    "A flag which can be used to disable the global setting
 @code{enable-log-filecount?}.")
   (enable-log-linecount?
-   (repo-boolean #f)
+   (maybe-repo-boolean 'disabled)
    "A flag which can be used to disable the global setting
 @code{enable-log-linecount?}.")
   (enable-remote-branches?
-   (repo-boolean #f)
+   (maybe-repo-boolean 'disabled)
    "Flag which, when set to @code{#t}, will make cgit display remote
 branches in the summary and refs views.")
   (enable-subject-links?
-   (repo-boolean #f)
+   (maybe-repo-boolean 'disabled)
    "A flag which can be used to override the global setting
 @code{enable-subject-links?}.")
   (enable-html-serving?
-   (repo-boolean #f)
+   (maybe-repo-boolean 'disabled)
    "A flag which can be used to override the global setting
 @code{enable-html-serving?}.")
   (hide?