From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:56060) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f4rJu-0003ea-27 for guix-patches@gnu.org; Sat, 07 Apr 2018 13:08:07 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1f4rJr-0002fR-Aa for guix-patches@gnu.org; Sat, 07 Apr 2018 13:08:05 -0400 Received: from debbugs.gnu.org ([208.118.235.43]:33582) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1f4rJr-0002fN-70 for guix-patches@gnu.org; Sat, 07 Apr 2018 13:08:03 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1f4rJr-00031m-2J for guix-patches@gnu.org; Sat, 07 Apr 2018 13:08:03 -0400 Subject: [bug#31089] [PATCH 4/5] services: cgit: Enforce serialization order. Resent-Message-ID: From: =?UTF-8?Q?Cl=C3=A9ment?= Lassieur Date: Sat, 7 Apr 2018 19:07:08 +0200 Message-Id: <20180407170709.22160-4-clement@lassieur.org> In-Reply-To: <20180407170709.22160-1-clement@lassieur.org> References: <20180407170709.22160-1-clement@lassieur.org> List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: 31089@debbugs.gnu.org This distinguishes fields whose order matters, and makes sure further changes won't inadvertently change the order. * gnu/services/cgit.scm (serialize-cgit-configuration): New procedure that serializes fields with a precise order. (cgit-activation): Replace the generic SERIALIZE-CONFIGURATION with SERIALIZE-CGIT-CONFIGURATION. --- gnu/services/cgit.scm | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/gnu/services/cgit.scm b/gnu/services/cgit.scm index 98e46e0b8..f53306cd3 100644 --- a/gnu/services/cgit.scm +++ b/gnu/services/cgit.scm @@ -631,6 +631,17 @@ for cgit to allow access to that repository.") (list '()) "Extra options will be appended to cgitrc file.")) +(define (serialize-cgit-configuration config) + (define (rest? field) + (not (memq (configuration-field-name field) + '(repositories)))) + #~(string-append + #$(let ((rest (filter rest? cgit-configuration-fields))) + (serialize-configuration config rest)) + #$(serialize-repository-cgit-configuration-list + 'repositories + (cgit-configuration-repositories config)))) + (define-configuration opaque-cgit-configuration (cgit (package cgit) @@ -651,7 +662,7 @@ for cgit to allow access to that repository.") (config-str (if opaque-config? (opaque-cgit-configuration-cgitrc config) - (serialize-configuration config cgit-configuration-fields)))) + (serialize-cgit-configuration config)))) #~(begin (use-modules (guix build utils)) (mkdir-p #$(if opaque-config? -- 2.17.0