From unknown Wed Sep 10 20:08:02 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#31687] [PATCH] services: Add dnsmasq-service-type. Resent-From: =?UTF-8?Q?=E5=AE=8B=E6=96=87=E6=AD=A6?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sat, 02 Jun 2018 15:29:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 31687 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 31687@debbugs.gnu.org Cc: =?UTF-8?Q?=E5=AE=8B=E6=96=87=E6=AD=A6?= X-Debbugs-Original-To: guix-patches@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.15279533227982 (code B ref -1); Sat, 02 Jun 2018 15:29:01 +0000 Received: (at submit) by debbugs.gnu.org; 2 Jun 2018 15:28:42 +0000 Received: from localhost ([127.0.0.1]:59474 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fP8SP-00024g-Ji for submit@debbugs.gnu.org; Sat, 02 Jun 2018 11:28:41 -0400 Received: from eggs.gnu.org ([208.118.235.92]:32954) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fP8SO-00024R-5E for submit@debbugs.gnu.org; Sat, 02 Jun 2018 11:28:40 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fP8SH-0001J6-Gw for submit@debbugs.gnu.org; Sat, 02 Jun 2018 11:28:34 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50 autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:51140) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1fP8SH-0001Is-Cx for submit@debbugs.gnu.org; Sat, 02 Jun 2018 11:28:33 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:52154) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fP8SF-0004Xh-Fp for guix-patches@gnu.org; Sat, 02 Jun 2018 11:28:33 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fP8SA-00017O-Rf for guix-patches@gnu.org; Sat, 02 Jun 2018 11:28:31 -0400 Received: from rezeros.cc ([2001:19f0:7001:2f3e:5400:ff:fe84:e55d]:47066) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1fP8SA-0000yp-Di for guix-patches@gnu.org; Sat, 02 Jun 2018 11:28:26 -0400 Received: from localhost (117.173.71.193 [117.173.71.193]) by rezeros.cc (OpenSMTPD) with ESMTPSA id e5a2723c (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256:NO); Sat, 2 Jun 2018 15:27:18 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by localhost (OpenSMTPD) with ESMTP id 92f6c198; Sat, 2 Jun 2018 15:28:15 +0000 (UTC) From: =?UTF-8?Q?=E5=AE=8B=E6=96=87=E6=AD=A6?= Date: Sat, 2 Jun 2018 23:28:14 +0800 Message-Id: <20180602152814.14217-1-iyzsong@member.fsf.org> X-Mailer: git-send-email 2.14.1 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -5.0 (-----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.0 (------) * gnu/services/dns.scm (dnsmasq-service-type): New variable. (): New record type. (dnsmasq-shepherd-service): New procedure. * doc/guix.texi (DNS Services): Document it. --- doc/guix.texi | 59 ++++++++++++++++++++++++++++++++++++++- gnu/services/dns.scm | 79 +++++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 136 insertions(+), 2 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 77bdaa50e..e1353842e 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -16405,7 +16405,11 @@ saved to @code{/etc/letsencrypt/live/@var{name}/privkey.pem}. The @code{(gnu services dns)} module provides services related to the @dfn{domain name system} (DNS). It provides a server service for hosting an @emph{authoritative} DNS server for multiple zones, slave or master. -This service uses @uref{https://www.knot-dns.cz/, Knot DNS}. +This service uses @uref{https://www.knot-dns.cz/, Knot DNS}. And also a +caching and forwarding DNS server for the LAN, which uses +@uref{http://www.thekelleys.org.uk/dnsmasq/doc.html, dnsmasq}. + +@subsubheading Knot Service An example configuration of an authoritative server for two zones, one master and one slave, is: @@ -16800,6 +16804,59 @@ The list of knot-zone-configuration used by this configuration. @end table @end deftp +@subsubheading Dnsmasq Service + +@deffn {Scheme Variable} dnsmasq-service-type +This is the type of the dnsmasq service, whose value should be an +@code{dnsmasq-configuration} object as in this example: + +@example +(service dnsmasq-service-type + (dnsmasq-configuration + (no-resolv? #t) + (servers '("192.168.1.1")))) +@end example +@end deffn + +@deftp {Data Type} dnsmasq-configuration +Data type representing the configuration of dnsmasq. + +@table @asis +@item @code{package} (default: @var{dnsmasq}) +Package object of the dnsmasq server. + +@item @code{no-hosts?} (default: @code{#f}) +When true, don't read the hostnames in /etc/hosts. + +@item @code{port} (default: @code{53}) +The port to listen on. Setting this to zero completely disables DNS +funtion, leaving only DHCP and/or TFTP. + +@item @code{local-service?} (default: @code{#t}) +Accept DNS queries only from hosts whose address is on a local subnet, +ie a subnet for which an interface exists on the server. + +@item @code{listen-addresses} (default: @code{'()}) +Listen on the given IP addresses. + +@item @code{resolv-file} (default: @code{"/etc/resolv.conf"}) +The file to read the IP address of the upstream nameservers from. + +@item @code{no-resolv?} (default: @code{#f}) +When true, don't read @var{resolv-file}. + +@item @code{servers} (default: @code{'()}) +Specify IP address of upstream servers directly. + +@item @code{cache-size} (default: @code{150}) +Set the size of dnsmasq's cache. Setting the cache size to zero +disables caching. + +@item @code{no-negcache?} (default: @code{#f}) +When true, disable negative caching. + +@end table +@end deftp @node VPN Services @subsubsection VPN Services diff --git a/gnu/services/dns.scm b/gnu/services/dns.scm index 673ab1a98..d0913e90e 100644 --- a/gnu/services/dns.scm +++ b/gnu/services/dns.scm @@ -27,6 +27,7 @@ #:use-module (guix records) #:use-module (guix gexp) #:use-module (srfi srfi-1) + #:use-module (srfi srfi-26) #:use-module (srfi srfi-34) #:use-module (srfi srfi-35) #:use-module (ice-9 match) @@ -41,7 +42,10 @@ knot-configuration define-zone-entries zone-file - zone-entry)) + zone-entry + + dnsmasq-service-type + dnsmasq-configuration)) ;;; ;;; Knot DNS. @@ -591,3 +595,76 @@ knot-activation) (service-extension account-service-type (const %knot-accounts)))))) + + +;;; +;;; Dnsmasq. +;;; + +(define-record-type* + dnsmasq-configuration make-dnsmasq-configuration + dnsmasq-configuration? + (package dnsmasq-configuration-package + (default dnsmasq)) ;package + (no-hosts? dnsmasq-configuration-no-hosts? + (default #f)) ;boolean + (port dnsmasq-configuration-port + (default 53)) ;integer + (local-service? dnsmasq-configuration-local-service? + (default #t)) ;boolean + (listen-addresses dnsmasq-configuration-listen-address + (default '())) ;list of string + (resolv-file dnsmasq-configuration-resolv-file + (default "/etc/resolv.conf")) ;string + (no-resolv? dnsmasq-configuration-no-resolv? + (default #f)) ;boolean + (servers dnsmasq-configuration-servers + (default '())) ;list of string + (cache-size dnsmasq-configuration-cache-size + (default 150)) ;integer + (no-negcache? dnsmasq-configuration-no-negcache? + (default #f))) ;boolean + +(define dnsmasq-shepherd-service + (match-lambda + (($ package + no-hosts? + port local-service? listen-addresses + resolv-file no-resolv? servers + cache-size no-negcache?) + (shepherd-service + (provision '(dnsmasq)) + (requirement '(networking)) + (documentation "Run the dnsmasq DNS server.") + (start #~(make-forkexec-constructor + '(#$(file-append package "/sbin/dnsmasq") + "--keep-in-foreground" + "--pid-file=/run/dnsmasq.pid" + #$@(if no-hosts? + '("--no-hosts") + '()) + #$(format #f "--port=~a" port) + #$@(if local-service? + '("--local-service") + '()) + #$@(map (cut format #f "--listen-address=~a" <>) + listen-addresses) + #$(format #f "--resolv-file=~a" resolv-file) + #$@(if no-resolv? + '("--no-resolv") + '()) + #$@(map (cut format #f "--server=~a" <>) + servers) + #$(format #f "--cache-size=~a" cache-size) + #$@(if no-negcache? + '("--no-negcache") + '())) + #:pid-file "/run/dnsmasq.pid")) + (stop #~(make-kill-destructor)))))) + +(define dnsmasq-service-type + (service-type + (name 'dnsmasq) + (extensions + (list (service-extension shepherd-root-service-type + (compose list dnsmasq-shepherd-service)))))) -- 2.13.3 From unknown Wed Sep 10 20:08:02 2025 MIME-Version: 1.0 X-Mailer: MIME-tools 5.505 (Entity 5.505) X-Loop: help-debbugs@gnu.org From: help-debbugs@gnu.org (GNU bug Tracking System) To: =?UTF-8?Q?=E5=AE=8B=E6=96=87=E6=AD=A6?= Subject: bug#31687: closed (Re: [bug#31687] [PATCH] services: Add dnsmasq-service-type.) Message-ID: References: <87zi09mo7t.fsf@member.fsf.org> <20180602152814.14217-1-iyzsong@member.fsf.org> X-Gnu-PR-Message: they-closed 31687 X-Gnu-PR-Package: guix-patches X-Gnu-PR-Keywords: patch Reply-To: 31687@debbugs.gnu.org Date: Tue, 05 Jun 2018 12:09:02 +0000 Content-Type: multipart/mixed; boundary="----------=_1528200542-25214-1" This is a multi-part message in MIME format... ------------=_1528200542-25214-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Your bug report #31687: [PATCH] services: Add dnsmasq-service-type. which was filed against the guix-patches package, has been closed. The explanation is attached below, along with your original report. If you require more details, please reply to 31687@debbugs.gnu.org. --=20 31687: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D31687 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems ------------=_1528200542-25214-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at 31687-done) by debbugs.gnu.org; 5 Jun 2018 12:08:30 +0000 Received: from localhost ([127.0.0.1]:34448 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fQAlJ-0006Xp-Kf for submit@debbugs.gnu.org; Tue, 05 Jun 2018 08:08:29 -0400 Received: from rezeros.cc ([45.76.207.221]:42012) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fQAlH-0006Xd-6l for 31687-done@debbugs.gnu.org; Tue, 05 Jun 2018 08:08:28 -0400 Received: from localhost (117.139.252.133 [117.139.252.133]) by rezeros.cc (OpenSMTPD) with ESMTPSA id 4ce4d7c0 (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256:NO) for <31687-done@debbugs.gnu.org>; Tue, 5 Jun 2018 12:07:20 +0000 (UTC) Received: from gift (localhost [127.0.0.1]) by localhost (OpenSMTPD) with ESMTP id 419f4ca1 for <31687-done@debbugs.gnu.org>; Tue, 5 Jun 2018 12:07:02 +0000 (UTC) From: iyzsong@member.fsf.org (=?utf-8?B?5a6L5paH5q2m?=) To: 31687-done@debbugs.gnu.org Subject: Re: [bug#31687] [PATCH] services: Add dnsmasq-service-type. References: <20180602152814.14217-1-iyzsong@member.fsf.org> Date: Tue, 05 Jun 2018 20:07:02 +0800 In-Reply-To: <20180602152814.14217-1-iyzsong@member.fsf.org> (=?utf-8?B?IuWui+aWh+atpiIncw==?= message of "Sat, 2 Jun 2018 23:28:14 +0800") Message-ID: <87zi09mo7t.fsf@member.fsf.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 1.1 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: Pushed as commit 97f6e9133a03f37c79e60678dd5670a805cdf693. [...] Content analysis details: (1.1 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 1.0 SPF_SOFTFAIL SPF: sender does not match SPF record (softfail) 0.0 TVD_SPACE_RATIO No description available. 0.1 FROM_EXCESS_BASE64 From: base64 encoded unnecessarily X-Debbugs-Envelope-To: 31687-done X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.1 (/) Pushed as commit 97f6e9133a03f37c79e60678dd5670a805cdf693. ------------=_1528200542-25214-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by debbugs.gnu.org; 2 Jun 2018 15:28:42 +0000 Received: from localhost ([127.0.0.1]:59474 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fP8SP-00024g-Ji for submit@debbugs.gnu.org; Sat, 02 Jun 2018 11:28:41 -0400 Received: from eggs.gnu.org ([208.118.235.92]:32954) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fP8SO-00024R-5E for submit@debbugs.gnu.org; Sat, 02 Jun 2018 11:28:40 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fP8SH-0001J6-Gw for submit@debbugs.gnu.org; Sat, 02 Jun 2018 11:28:34 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50 autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:51140) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1fP8SH-0001Is-Cx for submit@debbugs.gnu.org; Sat, 02 Jun 2018 11:28:33 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:52154) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fP8SF-0004Xh-Fp for guix-patches@gnu.org; Sat, 02 Jun 2018 11:28:33 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fP8SA-00017O-Rf for guix-patches@gnu.org; Sat, 02 Jun 2018 11:28:31 -0400 Received: from rezeros.cc ([2001:19f0:7001:2f3e:5400:ff:fe84:e55d]:47066) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1fP8SA-0000yp-Di for guix-patches@gnu.org; Sat, 02 Jun 2018 11:28:26 -0400 Received: from localhost (117.173.71.193 [117.173.71.193]) by rezeros.cc (OpenSMTPD) with ESMTPSA id e5a2723c (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256:NO); Sat, 2 Jun 2018 15:27:18 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by localhost (OpenSMTPD) with ESMTP id 92f6c198; Sat, 2 Jun 2018 15:28:15 +0000 (UTC) From: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= To: guix-patches@gnu.org Subject: [PATCH] services: Add dnsmasq-service-type. Date: Sat, 2 Jun 2018 23:28:14 +0800 Message-Id: <20180602152814.14217-1-iyzsong@member.fsf.org> X-Mailer: git-send-email 2.14.1 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: submit Cc: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.0 (------) * gnu/services/dns.scm (dnsmasq-service-type): New variable. (): New record type. (dnsmasq-shepherd-service): New procedure. * doc/guix.texi (DNS Services): Document it. --- doc/guix.texi | 59 ++++++++++++++++++++++++++++++++++++++- gnu/services/dns.scm | 79 +++++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 136 insertions(+), 2 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 77bdaa50e..e1353842e 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -16405,7 +16405,11 @@ saved to @code{/etc/letsencrypt/live/@var{name}/privkey.pem}. The @code{(gnu services dns)} module provides services related to the @dfn{domain name system} (DNS). It provides a server service for hosting an @emph{authoritative} DNS server for multiple zones, slave or master. -This service uses @uref{https://www.knot-dns.cz/, Knot DNS}. +This service uses @uref{https://www.knot-dns.cz/, Knot DNS}. And also a +caching and forwarding DNS server for the LAN, which uses +@uref{http://www.thekelleys.org.uk/dnsmasq/doc.html, dnsmasq}. + +@subsubheading Knot Service An example configuration of an authoritative server for two zones, one master and one slave, is: @@ -16800,6 +16804,59 @@ The list of knot-zone-configuration used by this configuration. @end table @end deftp +@subsubheading Dnsmasq Service + +@deffn {Scheme Variable} dnsmasq-service-type +This is the type of the dnsmasq service, whose value should be an +@code{dnsmasq-configuration} object as in this example: + +@example +(service dnsmasq-service-type + (dnsmasq-configuration + (no-resolv? #t) + (servers '("192.168.1.1")))) +@end example +@end deffn + +@deftp {Data Type} dnsmasq-configuration +Data type representing the configuration of dnsmasq. + +@table @asis +@item @code{package} (default: @var{dnsmasq}) +Package object of the dnsmasq server. + +@item @code{no-hosts?} (default: @code{#f}) +When true, don't read the hostnames in /etc/hosts. + +@item @code{port} (default: @code{53}) +The port to listen on. Setting this to zero completely disables DNS +funtion, leaving only DHCP and/or TFTP. + +@item @code{local-service?} (default: @code{#t}) +Accept DNS queries only from hosts whose address is on a local subnet, +ie a subnet for which an interface exists on the server. + +@item @code{listen-addresses} (default: @code{'()}) +Listen on the given IP addresses. + +@item @code{resolv-file} (default: @code{"/etc/resolv.conf"}) +The file to read the IP address of the upstream nameservers from. + +@item @code{no-resolv?} (default: @code{#f}) +When true, don't read @var{resolv-file}. + +@item @code{servers} (default: @code{'()}) +Specify IP address of upstream servers directly. + +@item @code{cache-size} (default: @code{150}) +Set the size of dnsmasq's cache. Setting the cache size to zero +disables caching. + +@item @code{no-negcache?} (default: @code{#f}) +When true, disable negative caching. + +@end table +@end deftp @node VPN Services @subsubsection VPN Services diff --git a/gnu/services/dns.scm b/gnu/services/dns.scm index 673ab1a98..d0913e90e 100644 --- a/gnu/services/dns.scm +++ b/gnu/services/dns.scm @@ -27,6 +27,7 @@ #:use-module (guix records) #:use-module (guix gexp) #:use-module (srfi srfi-1) + #:use-module (srfi srfi-26) #:use-module (srfi srfi-34) #:use-module (srfi srfi-35) #:use-module (ice-9 match) @@ -41,7 +42,10 @@ knot-configuration define-zone-entries zone-file - zone-entry)) + zone-entry + + dnsmasq-service-type + dnsmasq-configuration)) ;;; ;;; Knot DNS. @@ -591,3 +595,76 @@ knot-activation) (service-extension account-service-type (const %knot-accounts)))))) + + +;;; +;;; Dnsmasq. +;;; + +(define-record-type* + dnsmasq-configuration make-dnsmasq-configuration + dnsmasq-configuration? + (package dnsmasq-configuration-package + (default dnsmasq)) ;package + (no-hosts? dnsmasq-configuration-no-hosts? + (default #f)) ;boolean + (port dnsmasq-configuration-port + (default 53)) ;integer + (local-service? dnsmasq-configuration-local-service? + (default #t)) ;boolean + (listen-addresses dnsmasq-configuration-listen-address + (default '())) ;list of string + (resolv-file dnsmasq-configuration-resolv-file + (default "/etc/resolv.conf")) ;string + (no-resolv? dnsmasq-configuration-no-resolv? + (default #f)) ;boolean + (servers dnsmasq-configuration-servers + (default '())) ;list of string + (cache-size dnsmasq-configuration-cache-size + (default 150)) ;integer + (no-negcache? dnsmasq-configuration-no-negcache? + (default #f))) ;boolean + +(define dnsmasq-shepherd-service + (match-lambda + (($ package + no-hosts? + port local-service? listen-addresses + resolv-file no-resolv? servers + cache-size no-negcache?) + (shepherd-service + (provision '(dnsmasq)) + (requirement '(networking)) + (documentation "Run the dnsmasq DNS server.") + (start #~(make-forkexec-constructor + '(#$(file-append package "/sbin/dnsmasq") + "--keep-in-foreground" + "--pid-file=/run/dnsmasq.pid" + #$@(if no-hosts? + '("--no-hosts") + '()) + #$(format #f "--port=~a" port) + #$@(if local-service? + '("--local-service") + '()) + #$@(map (cut format #f "--listen-address=~a" <>) + listen-addresses) + #$(format #f "--resolv-file=~a" resolv-file) + #$@(if no-resolv? + '("--no-resolv") + '()) + #$@(map (cut format #f "--server=~a" <>) + servers) + #$(format #f "--cache-size=~a" cache-size) + #$@(if no-negcache? + '("--no-negcache") + '())) + #:pid-file "/run/dnsmasq.pid")) + (stop #~(make-kill-destructor)))))) + +(define dnsmasq-service-type + (service-type + (name 'dnsmasq) + (extensions + (list (service-extension shepherd-root-service-type + (compose list dnsmasq-shepherd-service)))))) -- 2.13.3 ------------=_1528200542-25214-1-- From unknown Wed Sep 10 20:08:02 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#31687] [PATCH] services: Add dnsmasq-service-type. Resent-From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 08 Jun 2018 14:44:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 31687 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: =?UTF-8?Q?=E5=AE=8B=E6=96=87=E6=AD=A6?= Cc: 31687@debbugs.gnu.org Received: via spool by 31687-submit@debbugs.gnu.org id=B31687.152846903325769 (code B ref 31687); Fri, 08 Jun 2018 14:44:02 +0000 Received: (at 31687) by debbugs.gnu.org; 8 Jun 2018 14:43:53 +0000 Received: from localhost ([127.0.0.1]:39740 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fRIcL-0006hZ-EY for submit@debbugs.gnu.org; Fri, 08 Jun 2018 10:43:53 -0400 Received: from eggs.gnu.org ([208.118.235.92]:37860) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fRIcJ-0006hN-Lt for 31687@debbugs.gnu.org; Fri, 08 Jun 2018 10:43:51 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fRIcB-0005jH-94 for 31687@debbugs.gnu.org; Fri, 08 Jun 2018 10:43:46 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:58818) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fRIcB-0005j5-5d; Fri, 08 Jun 2018 10:43:43 -0400 Received: from [193.50.110.75] (port=52390 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1fRIcA-0001Jx-Ll; Fri, 08 Jun 2018 10:43:43 -0400 From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) References: <20180602152814.14217-1-iyzsong@member.fsf.org> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 20 Prairial an 226 de la =?UTF-8?Q?R=C3=A9volution?= X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu Date: Fri, 08 Jun 2018 16:43:40 +0200 In-Reply-To: <20180602152814.14217-1-iyzsong@member.fsf.org> ("=?UTF-8?Q?=E5=AE=8B=E6=96=87=E6=AD=A6?="'s message of "Sat, 2 Jun 2018 23:28:14 +0800") Message-ID: <87bmcll4o3.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.0 (------) Hello! Thanks for this patch, that looks like a useful service to have! =E5=AE=8B=E6=96=87=E6=AD=A6 skribis: > +@item @code{no-negcache?} (default: @code{#f}) > +When true, disable negative caching. Minor issues: =E2=80=A2 The general guideline is to avoid abbreviations in identifiers= =E2=80=94we=E2=80=99re using the language that comes with =E2=80=98call-with-current-continuat= ion=E2=80=99, after all. ;-) =E2=80=A2 Another guideline is to avoid double-negations and the likes. So in this example, I would recommend: =E2=80=98negative-caching?=E2=80=99 (default: #t) I think there=E2=80=99s a couple of other abbreviations. Ludo=E2=80=99. From unknown Wed Sep 10 20:08:02 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#31687] [PATCH] services: Add dnsmasq-service-type. Resent-From: iyzsong@member.fsf.org (=?UTF-8?Q?=E5=AE=8B=E6=96=87=E6=AD=A6?=) Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 08 Jun 2018 15:47:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 31687 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Cc: 31687@debbugs.gnu.org Received: via spool by 31687-submit@debbugs.gnu.org id=B31687.152847277631865 (code B ref 31687); Fri, 08 Jun 2018 15:47:01 +0000 Received: (at 31687) by debbugs.gnu.org; 8 Jun 2018 15:46:16 +0000 Received: from localhost ([127.0.0.1]:39860 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fRJah-0008Ht-Vj for submit@debbugs.gnu.org; Fri, 08 Jun 2018 11:46:16 -0400 Received: from rezeros.cc ([45.76.207.221]:42140) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fRJaf-0008Hi-Gn for 31687@debbugs.gnu.org; Fri, 08 Jun 2018 11:46:14 -0400 Received: from localhost (183.220.27.139 [183.220.27.139]) by rezeros.cc (OpenSMTPD) with ESMTPSA id 9b756ab6 (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256:NO); Fri, 8 Jun 2018 15:45:04 +0000 (UTC) Received: from gift (localhost [127.0.0.1]) by localhost (OpenSMTPD) with ESMTP id 4089317d; Fri, 8 Jun 2018 15:45:27 +0000 (UTC) From: iyzsong@member.fsf.org (=?UTF-8?Q?=E5=AE=8B=E6=96=87=E6=AD=A6?=) References: <20180602152814.14217-1-iyzsong@member.fsf.org> <87bmcll4o3.fsf@gnu.org> Date: Fri, 08 Jun 2018 23:45:26 +0800 In-Reply-To: <87bmcll4o3.fsf@gnu.org> ("Ludovic \=\?utf-8\?Q\?Court\=C3\=A8s\=22'\?\= \=\?utf-8\?Q\?s\?\= message of "Fri, 08 Jun 2018 16:43:40 +0200") Message-ID: <87in6tl1t5.fsf@member.fsf.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 1.1 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) writes: > Hello! > > Thanks for this patch, that looks like a useful service to have! > > =?UTF-8?Q?=E5=AE=8B=E6=96=87=E6=AD=A6?= skribis: > >> +@item @code{no-negcache?} (default: @code{#f}) >> +When true, disable negative caching. > > Minor issues: > > =?UTF-8?Q?=E2=80=A2?= The general guideline is to avoid abbreviations in =?UTF-8?Q?identifiers=E2=80=94we=E2=80=99re?= > using the language that comes with =?UTF-8?Q?=E2=80=98call-with-current-continuation=E2=80=99,?= > after all. ;-) > > =?UTF-8?Q?=E2=80=A2?= Another guideline is to avoid double-negations and the likes. > > So in this example, I would recommend: > > =?UTF-8?Q?=E2=80=98negative-caching=3F=E2=80=99?= (default: #t) > [...] Content analysis details: (1.1 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 1.0 SPF_SOFTFAIL SPF: sender does not match SPF record (softfail) 0.1 FROM_EXCESS_BASE64 From: base64 encoded unnecessarily X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.1 (/) ludo@gnu.org (Ludovic Court=C3=A8s) writes: > Hello! > > Thanks for this patch, that looks like a useful service to have! > > =E5=AE=8B=E6=96=87=E6=AD=A6 skribis: > >> +@item @code{no-negcache?} (default: @code{#f}) >> +When true, disable negative caching. > > Minor issues: > > =E2=80=A2 The general guideline is to avoid abbreviations in identifier= s=E2=80=94we=E2=80=99re > using the language that comes with =E2=80=98call-with-current-continu= ation=E2=80=99, > after all. ;-) > > =E2=80=A2 Another guideline is to avoid double-negations and the likes. > > So in this example, I would recommend: > > =E2=80=98negative-caching?=E2=80=99 (default: #t) > Agree, I like this naming guideline, pushed :-) > I think there=E2=80=99s a couple of other abbreviations. It=E2=80=99s not clear to me whether other options are abbreviations or not= or worth to expand. eg: =E2=80=98no-hosts?=E2=80=99 and =E2=80=98no-resolv?= =E2=80=99, they=E2=80=99re refer to the well-known =E2=80=98/etc/hosts=E2=80=99 and =E2=80=98/etc/resolv.conf=E2=80= =99 files, what could we use instead? From unknown Wed Sep 10 20:08:02 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#31687] [PATCH] services: Add dnsmasq-service-type. Resent-From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 08 Jun 2018 19:38:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 31687 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: iyzsong@member.fsf.org (=?UTF-8?Q?=E5=AE=8B=E6=96=87=E6=AD=A6?=) Cc: 31687@debbugs.gnu.org Received: via spool by 31687-submit@debbugs.gnu.org id=B31687.15284866293007 (code B ref 31687); Fri, 08 Jun 2018 19:38:01 +0000 Received: (at 31687) by debbugs.gnu.org; 8 Jun 2018 19:37:09 +0000 Received: from localhost ([127.0.0.1]:40050 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fRNC9-0000mR-D5 for submit@debbugs.gnu.org; Fri, 08 Jun 2018 15:37:09 -0400 Received: from eggs.gnu.org ([208.118.235.92]:52120) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fRNC8-0000mF-QU for 31687@debbugs.gnu.org; Fri, 08 Jun 2018 15:37:08 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fRNC2-0003rY-Uz for 31687@debbugs.gnu.org; Fri, 08 Jun 2018 15:37:03 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:36174) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fRNC2-0003rU-Qn; Fri, 08 Jun 2018 15:37:02 -0400 Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=42392 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1fRNC2-0008Ma-0d; Fri, 08 Jun 2018 15:37:02 -0400 From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) References: <20180602152814.14217-1-iyzsong@member.fsf.org> <87bmcll4o3.fsf@gnu.org> <87in6tl1t5.fsf@member.fsf.org> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 20 Prairial an 226 de la =?UTF-8?Q?R=C3=A9volution?= X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu Date: Fri, 08 Jun 2018 21:37:00 +0200 In-Reply-To: <87in6tl1t5.fsf@member.fsf.org> ("=?UTF-8?Q?=E5=AE=8B=E6=96=87=E6=AD=A6?="'s message of "Fri, 08 Jun 2018 23:45:26 +0800") Message-ID: <87lgbphxyb.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.0 (------) iyzsong@member.fsf.org (=E5=AE=8B=E6=96=87=E6=AD=A6) skribis: > ludo@gnu.org (Ludovic Court=C3=A8s) writes: [...] >> Minor issues: >> >> =E2=80=A2 The general guideline is to avoid abbreviations in identifie= rs=E2=80=94we=E2=80=99re >> using the language that comes with =E2=80=98call-with-current-contin= uation=E2=80=99, >> after all. ;-) >> >> =E2=80=A2 Another guideline is to avoid double-negations and the likes. >> >> So in this example, I would recommend: >> >> =E2=80=98negative-caching?=E2=80=99 (default: #t) >> > > Agree, I like this naming guideline, pushed :-) Thank you! >> I think there=E2=80=99s a couple of other abbreviations. > > It=E2=80=99s not clear to me whether other options are abbreviations or n= ot or > worth to expand. eg: =E2=80=98no-hosts?=E2=80=99 and =E2=80=98no-resolv?= =E2=80=99, they=E2=80=99re refer to the > well-known =E2=80=98/etc/hosts=E2=80=99 and =E2=80=98/etc/resolv.conf=E2= =80=99 files, what could we use > instead? Oh you=E2=80=99re right, these are fine. Ludo=E2=80=99.