From unknown Wed Jun 18 00:25:01 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#50882 <50882@debbugs.gnu.org> To: bug#50882 <50882@debbugs.gnu.org> Subject: Status: [PATCH] gnu: services: Add darkhttpd service Reply-To: bug#50882 <50882@debbugs.gnu.org> Date: Wed, 18 Jun 2025 07:25:01 +0000 retitle 50882 [PATCH] gnu: services: Add darkhttpd service reassign 50882 guix-patches submitter 50882 jgart severity 50882 normal tag 50882 patch moreinfo thanks From debbugs-submit-bounces@debbugs.gnu.org Tue Sep 28 20:38:51 2021 Received: (at submit) by debbugs.gnu.org; 29 Sep 2021 00:38:51 +0000 Received: from localhost ([127.0.0.1]:47308 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mVNcY-0005Sq-Vq for submit@debbugs.gnu.org; Tue, 28 Sep 2021 20:38:51 -0400 Received: from lists.gnu.org ([209.51.188.17]:47674) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mVNcX-0005Si-53 for submit@debbugs.gnu.org; Tue, 28 Sep 2021 20:38:49 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:40562) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mVNcW-0002u3-QN for guix-patches@gnu.org; Tue, 28 Sep 2021 20:38:48 -0400 Received: from mx1.dismail.de ([78.46.223.134]:35231) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mVNcU-0001DQ-3H for guix-patches@gnu.org; Tue, 28 Sep 2021 20:38:48 -0400 Received: from mx1.dismail.de (localhost [127.0.0.1]) by mx1.dismail.de (OpenSMTPD) with ESMTP id 86285d87 for ; Wed, 29 Sep 2021 02:38:40 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=dismail.de; h=date :message-id:from:to:subject:references:mime-version:content-type :content-transfer-encoding; s=20190914; bh=jclAj9e/sXY/DxAbcFFII /HqDmHMxZgSX5dMCCZXrnw=; b=n7Q8n/WGR+8+jvTFCU03PDLRvlHPtarp4dLYo okS56cyQ1ceU6Tl0Cz+6Ue4GjUkV/3gl+FbKvjKU2N5mHl+pW+aUPKTt/gggTNMl ng4QP9eW6JmvwqQ9U4BqGOJTNQ6qs+8C+klhFNMJlnNEoH5wSHusd/xiS+zOF39Q ocIhrWLVykQHgRiKpaa921KyqM52aF9wAEpv7v4ajwFKfLUb8OiXkgZq50nyimp9 7MoiYw8lfyEsIV2Y/pc/R6DcPPE5z0na2w3re6pjFQpZfS9YF55scZD68n9xF2wg 3X82nVrHzNSISRuStaGHUYv9jfe8QyUGVvDumoA5HeD/QVDRA== Received: from smtp2.dismail.de ( [10.240.26.12]) by mx1.dismail.de (OpenSMTPD) with ESMTP id 1b3bc2f2 for ; Wed, 29 Sep 2021 02:38:40 +0200 (CEST) Received: from smtp2.dismail.de (localhost [127.0.0.1]) by smtp2.dismail.de (OpenSMTPD) with ESMTP id 5f036241 for ; Wed, 29 Sep 2021 02:38:40 +0200 (CEST) Received: by dismail.de (OpenSMTPD) with ESMTPSA id f42d0efe (TLSv1.3:AEAD-AES256-GCM-SHA384:256:NO) for ; Wed, 29 Sep 2021 02:38:39 +0200 (CEST) Date: Tue, 28 Sep 2021 20:38:38 -0400 Message-ID: <20210928203838.GB15388@gac.attlocal.net> From: jgart To: Guix Patches Subject: [PATCH] gnu: services: Add darkhttpd service References: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit Received-SPF: pass client-ip=78.46.223.134; envelope-from=jgart@dismail.de; helo=mx1.dismail.de X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.4 (-) X-Debbugs-Envelope-To: submit 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: -2.4 (--) Hi Guixers, Heres a WIP service for darkhttpd along with texinfo documentation for how it works. I'd appreciate feedback and testing if you have the time to do that. all the best, jgart 3B1D 7F19 E36B B60C 0F5B 2CA9 A52A A2B4 77B6 DD35 From debbugs-submit-bounces@debbugs.gnu.org Tue Sep 28 20:46:56 2021 Received: (at 50882) by debbugs.gnu.org; 29 Sep 2021 00:46:56 +0000 Received: from localhost ([127.0.0.1]:47317 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mVNkN-0005eu-ON for submit@debbugs.gnu.org; Tue, 28 Sep 2021 20:46:56 -0400 Received: from mx1.dismail.de ([78.46.223.134]:10822) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mVNkL-0005ef-8Y for 50882@debbugs.gnu.org; Tue, 28 Sep 2021 20:46:54 -0400 Received: from mx1.dismail.de (localhost [127.0.0.1]) by mx1.dismail.de (OpenSMTPD) with ESMTP id 026d1b98 for <50882@debbugs.gnu.org>; Wed, 29 Sep 2021 02:46:46 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=dismail.de; h=from:to:cc :subject:date:message-id:mime-version:content-transfer-encoding; s=20190914; bh=TcDiRlXt7iTU5zq+KI6fryf2C98W7j7PxftLMZG00+c=; b= t4vC9KMK3B2VhtPrqb7/rGBAWss2TrvUeRvNgdZIeCUovJKpFVIQ/JEq1gnWKH6C xvOdsOJ4rU1w2J+21GtUARN+F3STz/9jtP6D7DneyuBxp+gaU2J+HBtyMK/lZ01l jqut9MzfWuYSRMQhnVrEtMcI3oYw18sPxwKLltX9WxTlHyp6dQyyR7qrsax/dGsh OYZ7sg2s7u3zMo4bYYL/jcKdGs19ZFPvbNUHquLEZySEJqGlqnAAEuqPqCEfMXvc 6Kb1ywzzTjOSPCI40bqMFP0/X/lRRqr0oD6E60bv9gsvUZog2kw/k4hZrXLRqKiY eQXyXy9uPSBO/ydW7I8MdA== Received: from smtp2.dismail.de ( [10.240.26.12]) by mx1.dismail.de (OpenSMTPD) with ESMTP id ec1e5c74 for <50882@debbugs.gnu.org>; Wed, 29 Sep 2021 02:46:46 +0200 (CEST) Received: from smtp2.dismail.de (localhost [127.0.0.1]) by smtp2.dismail.de (OpenSMTPD) with ESMTP id 4f2c1fb1 for <50882@debbugs.gnu.org>; Wed, 29 Sep 2021 02:46:46 +0200 (CEST) Received: by dismail.de (OpenSMTPD) with ESMTPSA id 731f5f71 (TLSv1.3:AEAD-AES256-GCM-SHA384:256:NO); Wed, 29 Sep 2021 02:46:45 +0200 (CEST) From: jgart To: 50882@debbugs.gnu.org Subject: [PATCH] services: Add darkhttpd service. Date: Tue, 28 Sep 2021 20:46:33 -0400 Message-Id: <20210929004633.17158-1-jgart@dismail.de> X-Mailer: git-send-email 2.33.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 50882 Cc: jgart 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: -1.7 (-) * gnu/services/web.scm (): New record type. (darkhttpd-accounts, darkhttpd-shepherd-service): New procedures. (darkhttpd-service-type): New variable. * doc/guix.texi (Web Services): Adds documentation for darkhttpd. --- doc/guix.texi | 124 +++++++++++++++++++++++++++++ gnu/services/web.scm | 184 ++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 306 insertions(+), 2 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 3124ed2ef8..6f22edba2e 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -26259,6 +26259,130 @@ The file which should store the logging output of Agate. @end table @end deftp +@subsubheading darkhttpd + +@cindex darkhttpd +@uref{https://unix4lyfe.org/darkhttpd/, darkhttpd} is a web server with a +focus on security and having a small memory footprint. + +Some security features are the following: + +@itemize +@item Logging accesses, including Referer and User-Agent. +@item Can chroot. +@item Can drop privileges. +@item Impervious to /../ sniffing. +@item Times out idle connections. +@item Drops overly long requests. +@end itemize + +@deffn {Scheme Variable} darkhttpd-service-type +This is the type of the darkhttpd service, whose value should be a +@code{darkhttpd-service-type} object, as in this example: + +@lisp +(service darkhttpd-service-type + (darkhttpd-configuration + (content "/var/www/localhost/blog") + (port 4567) + (no-server-id? #t) + (enable-ipv6? #t) + (chroot? #f))) +@end lisp + +The example above shows @code{content} directory modified as +well as @code{port}, @code{no-server-id?}, and @code{enable-ipv6?} +enabled and @code{chroot?} disabled. + +A minimal config might look like the following: + +@lisp +(service darkhttpd-service-type) +@end lisp + +@deftp {Data Type} darkhttpd-configuration +Data type representing the configuration of darkhttpd. + +@table @asis +@item @code{package} (default: @code{darkhttpd}) +The package object of the darkhttpd server. + +@item @code{content} (default: @file{"/srv/gemini"}) +The directory from which Agate will serve files. + +@item @code{port} (default: @code{"80"}) +Specifies which port to listen on for connections. +Assign 0 to let the system choose any free port for you. + +@item @code{address} (default: @code{"all"}) +If multiple interfaces are present, specifies +which one to bind the listening port to. + +@item @code{maximum-connections} (default: @code{#f}) +Specifies how many concurrent connections to accept. + +@item @code{log-file} (default: @file{"/var/log/darkhttpd.log"}) +The file which should store the logging output of @code{darkhttpd}. + +@item @code{chroot?} (default: @code{#t}) +Locks the web server into the content directory for added security. + +@item @code{daemonize?} (default: @code{#t}) +Detach from the controlling terminal and run in the background. + +@item @code{index-file} (default: @code{"index.html"}) +Default file to serve when a directory is requested. + +@item @code{do-not-serve-listing?} (default: @code{#f}) +Do not serve listing if directory is requested. + +@item @code{mimetypes} (default: @code{#f}) +This option is optional. @code{mimetypes} parses the +specified file for extension-MIME associations. + +@item @code{default-mimetype} (default: @code{"application/octet-stream"}) +Files with unknown extensions are served as this mimetype. + +@item @code{drop-user-privileges?} (default: @code{#t}) +Drops privileges to given uid after initialization. + +@item @code{drop-group-privileges?} (default: @code{#t}) +Drops privileges to given gid after initialization. + +@item @code{write-pid-file} (default: @code{#f}) +Write PID to the specified file. Note that if you are +using @{chroot?}, then the pidfile will be set relative +to the directory set with the @{content} option. + +@item @code{disable-keep-alive?} (default: @code{#f}) +Disables HTTP Keep-Alive functionality. + +@item @code{forward} (default: @code{#f}) +By default, @{darkhttpd} does not forward requests. +This option allows requests to the host to be redirected +to the corresponding url given as an argument. +@{forward} may be specified multiple times, in which case +the host is matched in order of appearance. + +@item @code{forward-all} (default: @code{#f}) +@{forward-all} is similar to @{forward} but all +requests are redirected to the url given as an argument. + +@item @code{no-server-id?} (default: @code{#f}) +Do not identify the server type in headers or +directory listings. + +@item @code{enable-ipv6?} (default: @code{#f}) +Listen on IPv6 address. + +@item @code{user} (default: @code{"darkhttpd"}) +Owner of the @code{darkhttpd} process. + +@item @code{group} (default: @code{"darkhttpd"}) +Owner's group of the @code{darkhttpd} process. + +@end table +@end deftp @node Certificate Services @subsection Certificate Services diff --git a/gnu/services/web.scm b/gnu/services/web.scm index bb42eacf83..68afba3cad 100644 --- a/gnu/services/web.scm +++ b/gnu/services/web.scm @@ -281,8 +281,35 @@ agate-configuration-group agate-configuration-log-file - agate-service-type)) - + agate-service-type + + darkhttpd-configuration + darkhttpd-configuration? + darkhttpd-configuration-package + darkhttpd-configuration-content + darkhttpd-configuration-port + darkhttpd-configuration-address + darkhttpd-configuration-maximum-connections + darkhttpd-configuration-log-file + darkhttpd-configuration-chroot + darkhttpd-configuration-daemonize + darkhttpd-configuration-index-file + darkhttpd-configuration-do-not-serve-listing + darkhttpd-configuration-mimetypes + darkhttpd-configuration-default-mimetype + darkhttpd-configuration-drop-user-privileges + darkhttpd-configuration-drop-group-privileges + darkhttpd-configuration-write-pid-file + darkhttpd-configuration-disable-keep-alive + darkhttpd-configuration-forward + darkhttpd-configuration-forward-all + darkhttpd-configuration-no-server-id + darkhttpd-configuration-enable-ipv6 + darkhttpd-configuration-user + darkhttpd-configuration-group + + darkhttpd-service-type)) + ;;; Commentary: ;;; ;;; Web services. @@ -1993,3 +2020,156 @@ root=/srv/gemini (service-extension shepherd-root-service-type agate-shepherd-service))) (default-value (agate-configuration)))) + +(define-record-type* + darkhttpd-configuration make-darkhttpd-configuration + darkhttpd-configuration? + (package darkhttpd-configuration-package + (default darkhttpd)) + (content darkhttpd-configuration-content + (default "/var/www/localhost/htdocs")) + (port darkhttpd-configuration-port + (default "80")) + (address darkhttpd-configuration-address + (default "all")) + (maximum-connections darkhttpd-configuration-maximum-connections + (default #f)) + (log-file darkhttpd-configuration-log-file + (default "access.log")) + (chroot? darkhttpd-configuration-chroot + (default #t)) + (daemonize? darkhttpd-configuration-daemonize + (default #t)) + (index-file darkhttpd-configuration-index-file + (default "index.html")) + (do-not-serve-listing? darkhttpd-configuration-do-not-serve-listing + (default #f)) + (mimetypes darkhttpd-configuration-mimetypes + (default #f)) + (default-mimetype darkhttpd-configuration-default-mimetype + (default "application/octet-stream")) + (drop-user-privileges? darkhttpd-configuration-drop-user-privileges + (default #t)) + (drop-group-privileges? darkhttpd-configuration-drop-group-privileges + (default #t)) + (write-pid-file darkhttpd-configuration-write-pid-file + (default #f)) + (disable-keep-alive? darkhttpd-configuration-disable-keep-alive + (default #f)) + (forward darkhttpd-configuration-forward + (default #f)) + (forward-all darkhttpd-configuration-forward-all + (default #f)) + (no-server-id? darkhttpd-configuration-no-server-id + (default #f)) + (enable-ipv6? darkhttpd-configuration-enable-ipv6 + (default #f)) + (user darkhttpd-configuration-user + (default "darkhttpd")) + (group darkhttpd-configuration-group + (default "www-data"))) + +(define darkhttpd-shepherd-service + (match-lambda + (($ package content port address + maximum-connections log-file chroot? + daemonize? index-file do-not-serve-listing? + mimetypes default-mimetype + drop-user-priviledges drop-group-priviledges + write-pid-file disable-keep-alive? + forward forward-all + no-server-id? enable-ipv6? + user group) + (list (shepherd-service + (provision '(darkhttpd)) + (requirement '(networking)) + (documentation "Run the darkhttpd web server.") + (start (let ((darkhttpd (file-append package "/bin/darkhttpd"))) + #~(make-forkexec-constructor + (list #$darkhttpd + #$content + #$@(if port + (list "--port" (number->string port)) + '()) + #$@(if address + (list "--addr" address) + '()) + #$@(if maximum-connections + (list "--maxconn" maximum-connections) + '()) + #$@(if log-file + (list "--log" + (string-append "/var/log/darkhttpd/" + log-file) + '())) + #$@(if chroot? '("--chroot") '()) + #$@(if daemonize? '("--daemon") '()) + #$@(if index-file + (list "--index" index-file) + '()) + #$@(if do-not-serve-listing? + (list "--no-listing" + do-not-serve-listing?) + '()) + #$@(if mimetypes '("--mimetypes" mimetypes) '()) + #$@(if default-mimetype + (list "--default-mimetype" + default-mimetype) + '()) + #$@(if drop-user-privileges? + '("--uid" user) '()) + #$@(if drop-group-privileges? + '("--gid" group) '()) + ;; if using --chroot, then the pidfile must be + ;; relative to, and inside the wwwroot. + #$@(if write-pid-file + "--pidfile" + (if (and chroot? write-pid-file) + '(string-append content + "/" + write-pid-file) + write-pid-file) + '()) + #$@(if disable-keep-alive? + (list "--no-keepalive" + disable-keep-alive?) + '()) + #$@(if forward '("--forward" forward) '()) + #$@(if forward-all + (list "--forward-all" forward-all) + '()) + #$@(if no-server-id? '("--no-server-id") '()) + #$@(if enable-ipv6? '("--ipv6") '()) + #:user #$user #:group #$group)))) + (stop #~(make-kill-destructor))))))) + +(define darkhttpd-accounts + (match-lambda + (($ _ _ _ _ _ _ _ _ + _ _ _ _ _ _ _ _ + _ _ user group) + `(,@(if (equal? group "darkhttpd") + '() + (list (user-group (name "darkhttpd") (system? #t)))) + ,(user-group + (name group) + (system? #t)) + ,(user-account + (name user) + (group group) + (supplementary-groups '("darkhttpd")) + (system? #t) + (comment "darkhttpd server user") + (home-directory "/var/empty") + (shell (file-append shadow "/sbin/nologin"))))))) + +(define darkhttpd-service-type + (service-type + (name 'guix) + (extensions + (list (service-extension account-service-type + darkhttpd-accounts) + (service-extension shepherd-root-service-type + darkhttpd-shepherd-service))) + (default-value (darkhttpd-configuration)))) + -- 2.33.0 From debbugs-submit-bounces@debbugs.gnu.org Mon Oct 25 08:32:51 2021 Received: (at 50882) by debbugs.gnu.org; 25 Oct 2021 12:32:51 +0000 Received: from localhost ([127.0.0.1]:41839 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mez9n-0000Zh-6Z for submit@debbugs.gnu.org; Mon, 25 Oct 2021 08:32:51 -0400 Received: from eggs.gnu.org ([209.51.188.92]:56576) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mez9l-0000WW-Ch for 50882@debbugs.gnu.org; Mon, 25 Oct 2021 08:32:49 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:39952) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mez9g-00030i-52; Mon, 25 Oct 2021 08:32:44 -0400 Received: from [2001:660:6102:320:e120:2c8f:8909:cdfe] (port=51418 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mez9f-0001HZ-Ip; Mon, 25 Oct 2021 08:32:43 -0400 From: =?utf-8?Q?Ludovic_Court=C3=A8s?= To: jgart Subject: Re: bug#50882: [PATCH] gnu: services: Add darkhttpd service References: <20210928203838.GB15388@gac.attlocal.net> <20210929004633.17158-1-jgart@dismail.de> Date: Mon, 25 Oct 2021 14:32:41 +0200 In-Reply-To: <20210929004633.17158-1-jgart@dismail.de> (jgart@dismail.de's message of "Tue, 28 Sep 2021 20:46:33 -0400") Message-ID: <87bl3dl1xy.fsf_-_@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 50882 Cc: 50882@debbugs.gnu.org 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: -3.3 (---) Hi, jgart skribis: > * gnu/services/web.scm (): New record type. > (darkhttpd-accounts, darkhttpd-shepherd-service): New procedures. > (darkhttpd-service-type): New variable. > * doc/guix.texi (Web Services): Adds documentation for darkhttpd. Overall LGTM! Some comments and suggestions below. > +@cindex darkhttpd > +@uref{https://unix4lyfe.org/darkhttpd/, darkhttpd} is a web server with = a=20 > +focus on security and having a small memory footprint. > + > +Some security features are the following: > + > +@itemize > +@item Logging accesses, including Referer and User-Agent. > +@item Can chroot. > +@item Can drop privileges. > +@item Impervious to /../ sniffing. > +@item Times out idle connections. > +@item Drops overly long requests. > +@end itemize=20 I=E2=80=99d replace the bullet list with a simple sentence like: =E2=80=9CA= mong other things, it can change root directories, drop privileges, it times out on idle connections and can drop overly long requests.=E2=80=9D > +@deffn {Scheme Variable} darkhttpd-service-type > +This is the type of the darkhttpd service, whose value should be a > +@code{darkhttpd-service-type} object, as in this example: > + > +@lisp > +(service darkhttpd-service-type > + (darkhttpd-configuration Please don=E2=80=99t use tabs. > +@end table > +@end deftp > @node Certificate Services Missing newline before @node. :-) > + (mimetypes darkhttpd-configuration-mimetypes > + (default #f)) > + (default-mimetype darkhttpd-configuration-default-mimetype Rather =E2=80=98mime-type=E2=80=99 (two words). > +(define darkhttpd-shepherd-service > + (match-lambda > + (($ package content port address=20 > + maximum-connections log-file chroot?=20 > + daemonize? index-file do-not-serve-lis= ting? > + mimetypes default-mimetype=20 > + drop-user-priviledges drop-group-privi= ledges=20 > + write-pid-file disable-keep-alive?=20 > + forward forward-all=20 > + no-server-id? enable-ipv6?=20 > + user group) Rather use =E2=80=98match-record=E2=80=99 here, to make sure we=E2=80=99re = getting the right fields. > +(define darkhttpd-accounts > + (match-lambda > + (($ _ _ _ _ _ _ _ _=20 > + _ _ _ _ _ _ _ _=20 > + _ _ user group) In such a case, simply call =E2=80=98darkhttpd-configuration-user=E2=80=99 = and =E2=80=98darkhttpd-configuration-group=E2=80=99; it=E2=80=99s much less err= or-prone! > +(define darkhttpd-service-type > + (service-type > + (name 'guix) > + (extensions > + (list (service-extension account-service-type > + darkhttpd-accounts) > + (service-extension shepherd-root-service-type > + darkhttpd-shepherd-service))) > + (default-value (darkhttpd-configuration)))) Please add a =E2=80=98description=E2=80=99 field. Could you also add a system test, under (gnu tests web)? You can start by copying the nginx test; it should take around ~20 lines. TIA! Ludo=E2=80=99. From debbugs-submit-bounces@debbugs.gnu.org Thu Jul 07 14:02:45 2022 Received: (at 50882) by debbugs.gnu.org; 7 Jul 2022 18:02:45 +0000 Received: from localhost ([127.0.0.1]:57814 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o9Vpt-0006JG-D4 for submit@debbugs.gnu.org; Thu, 07 Jul 2022 14:02:45 -0400 Received: from mail-qk1-f182.google.com ([209.85.222.182]:46048) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o9Vps-0006J1-04 for 50882@debbugs.gnu.org; Thu, 07 Jul 2022 14:02:44 -0400 Received: by mail-qk1-f182.google.com with SMTP id p11so13946549qkg.12 for <50882@debbugs.gnu.org>; Thu, 07 Jul 2022 11:02:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version:content-transfer-encoding; bh=1naxu65xFQCHl5GXtoiAkYdlt9SVzLjg/zXoiiyaHjk=; b=Oy3+21fq7CshPbJnnQHNDrhRAsSPgOafveo1C0FJ1BO4Pi84BLXSEPe02aTJdEyLHz nO5j1JoJZ4dzfE75m695Hpw0a2CoAP2FaQcjaQUEiQvq9OHGZPDc02XNk6tQmsxHxOKt NCK74rLzYy+KCReIehodfuU3dxJotmuBojqLuLt07jP/bbMGd3TQ2shgqqsrBispj0+R bTFR2VcFXm7WKHeRyMlE4Tq7NqaZ21fgwzRPvZ8zZCvve1IQ5Iiuc0wNgqXOoLBzWJUX 7ee9Jw5n/cdhm7r2IiJ4b8xhDOVXwY3rP1RqqJv3s7nZuamC2fO5XDfqkhkOqd0r4l9G YVsQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version:content-transfer-encoding; bh=1naxu65xFQCHl5GXtoiAkYdlt9SVzLjg/zXoiiyaHjk=; b=FA9p4VKhrBP79JdaDGYPLpsDrZ1/uG5sPkh3yAAb0F+jF2b2dpVqMdpoDhnwUvVDo/ J7Og1q00nEwz2t4m3SLub7LHxxbtJo+l6U59fOiu3Kswgcp6x6pn5RIe0V/TNi0K/aD7 RqfpPQOxuADpC8Tles+o8pryQorQdyx9aZrjYgodXKYbuGFUG1heInPx3TmXP2Uxjj4b LXgHQ2ntx9oMmJJMA4lOhA2myalV9oRSsx76CDiiNy8hM197XjembSCQzIwGA6/bn3Fd XEjflTUPoKZJ5zIAsMBamk46CMvgUkBtlOppO/uDDjFykBlh5qSQSrYJwn9xDqFbQbho cFlw== X-Gm-Message-State: AJIora/0MtMeqosQndXKATVD7DpQ5KTCNb7AfIgjiRdTEa3o8f6Bp8pr Wac4RXkvAoEZ48IuGitkwzzBqVhBljfDTw== X-Google-Smtp-Source: AGRyM1uVxuYZNfPjCRoF9k0kpKkpcJboffwKfKv/5yLTz9aZBC55lIcCijkV8fmPi3k6XeGDTHV6pQ== X-Received: by 2002:a05:620a:4442:b0:6b2:844e:ee67 with SMTP id w2-20020a05620a444200b006b2844eee67mr17675356qkp.625.1657216958024; Thu, 07 Jul 2022 11:02:38 -0700 (PDT) Received: from hurd (dsl-153-127.b2b2c.ca. [66.158.153.127]) by smtp.gmail.com with ESMTPSA id g16-20020ae9e110000000b006aefa015c05sm30489327qkm.25.2022.07.07.11.02.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 Jul 2022 11:02:37 -0700 (PDT) From: Maxim Cournoyer To: Ludovic =?utf-8?Q?Court=C3=A8s?= Subject: Re: bug#50882: [PATCH] gnu: services: Add darkhttpd service References: <20210928203838.GB15388@gac.attlocal.net> <20210929004633.17158-1-jgart@dismail.de> <87bl3dl1xy.fsf_-_@gnu.org> Date: Thu, 07 Jul 2022 14:02:36 -0400 In-Reply-To: <87bl3dl1xy.fsf_-_@gnu.org> ("Ludovic =?utf-8?Q?Court=C3=A8s?= =?utf-8?Q?=22's?= message of "Mon, 25 Oct 2021 14:32:41 +0200") Message-ID: <87k08oztqb.fsf_-_@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 50882 Cc: 50882@debbugs.gnu.org, jgart 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: -1.0 (-) tag 50882 moreinfo thanks Hello jgart, Ludovic Court=C3=A8s writes: > Hi, > > jgart skribis: > >> * gnu/services/web.scm (): New record type. >> (darkhttpd-accounts, darkhttpd-shepherd-service): New procedures. >> (darkhttpd-service-type): New variable. >> * doc/guix.texi (Web Services): Adds documentation for darkhttpd. > > Overall LGTM! Some comments and suggestions below. > >> +@cindex darkhttpd >> +@uref{https://unix4lyfe.org/darkhttpd/, darkhttpd} is a web server with= a=20 >> +focus on security and having a small memory footprint. >> + >> +Some security features are the following: >> + >> +@itemize >> +@item Logging accesses, including Referer and User-Agent. >> +@item Can chroot. >> +@item Can drop privileges. >> +@item Impervious to /../ sniffing. >> +@item Times out idle connections. >> +@item Drops overly long requests. >> +@end itemize=20 > > I=E2=80=99d replace the bullet list with a simple sentence like: =E2=80= =9CAmong other > things, it can change root directories, drop privileges, it times out on > idle connections and can drop overly long requests.=E2=80=9D > >> +@deffn {Scheme Variable} darkhttpd-service-type >> +This is the type of the darkhttpd service, whose value should be a >> +@code{darkhttpd-service-type} object, as in this example: >> + >> +@lisp >> +(service darkhttpd-service-type >> + (darkhttpd-configuration > > Please don=E2=80=99t use tabs. > >> +@end table >> +@end deftp >> @node Certificate Services > > Missing newline before @node. :-) > >> + (mimetypes darkhttpd-configuration-mimetypes >> + (default #f)) >> + (default-mimetype darkhttpd-configuration-default-mimetype > > Rather =E2=80=98mime-type=E2=80=99 (two words). > >> +(define darkhttpd-shepherd-service >> + (match-lambda >> + (($ package content port address=20 >> + maximum-connections log-file chroot?= =20 >> + daemonize? index-file do-not-serve-li= sting? >> + mimetypes default-mimetype=20 >> + drop-user-priviledges drop-group-priv= iledges=20 >> + write-pid-file disable-keep-alive?=20 >> + forward forward-all=20 >> + no-server-id? enable-ipv6?=20 >> + user group) > > Rather use =E2=80=98match-record=E2=80=99 here, to make sure we=E2=80=99r= e getting the right > fields. > >> +(define darkhttpd-accounts >> + (match-lambda >> + (($ _ _ _ _ _ _ _ _=20 >> + _ _ _ _ _ _ _ _=20 >> + _ _ user group) > > In such a case, simply call =E2=80=98darkhttpd-configuration-user=E2=80= =99 and > =E2=80=98darkhttpd-configuration-group=E2=80=99; it=E2=80=99s much less e= rror-prone! > >> +(define darkhttpd-service-type >> + (service-type >> + (name 'guix) >> + (extensions >> + (list (service-extension account-service-type >> + darkhttpd-accounts) >> + (service-extension shepherd-root-service-type >> + darkhttpd-shepherd-service))) >> + (default-value (darkhttpd-configuration)))) > > Please add a =E2=80=98description=E2=80=99 field. > > Could you also add a system test, under (gnu tests web)? You can start > by copying the nginx test; it should take around ~20 lines. Friendly ping about the above requests from Ludovic :-). Thanks, Maxim From debbugs-submit-bounces@debbugs.gnu.org Thu Jul 07 14:02:59 2022 Received: (at control) by debbugs.gnu.org; 7 Jul 2022 18:02:59 +0000 Received: from localhost ([127.0.0.1]:57820 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o9Vq7-0006Jt-4b for submit@debbugs.gnu.org; Thu, 07 Jul 2022 14:02:59 -0400 Received: from mail-qk1-f182.google.com ([209.85.222.182]:46048) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o9Vq5-0006J1-IZ for control@debbugs.gnu.org; Thu, 07 Jul 2022 14:02:57 -0400 Received: by mail-qk1-f182.google.com with SMTP id p11so13947331qkg.12 for ; Thu, 07 Jul 2022 11:02:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=date:message-id:to:from:subject; bh=wxnXvQxFWdFOGcgC5AFxNk6/2Q0Q7PRtnTIiPPntOrs=; b=Z6ux65GIluASg8QBAkfzNXcetc/kVXExr57YQPoK7UK8tvWiobi40bzCfHOCNs0glF E9/r4TKjdeXuq7384prG4WIzKqyfVhwHDE2yBCeVQHC5937/HdcMwt/ubwREuK1Kyri7 kpQE70SGMfvDVa/rxxmEIBwO8+/5jaSZEaMyghL0w3kZhLMBwS2d6tSWDQDCQGkskQa8 7q1s9dL6g+abXg4xqTa495Rfr7MrCB7ahVUlsRqXX41T4FVoxmlOlUdWLxOwnvKy28af isFcbcwlruRy5Inh7gUmmEORpsomn/Wc7xnroqYOjJvXU/nKtB9StJgxGo+yKf5dLJDc jFkg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:message-id:to:from:subject; bh=wxnXvQxFWdFOGcgC5AFxNk6/2Q0Q7PRtnTIiPPntOrs=; b=gV0K+3P8kW7XTuiPfGU2JdiYGbVWv25Vyslg3Y13MiMy7eHEUHh/CyWOT3+vXCSaZl UbZAuBiwVqSg6xwRAqJMOHNpNTpk69rm1ZuX7eGlCFZwQS5YHBaJVIUi+X5eNWMpngf4 lHTE2tZoD52187dpN/ZrECnQmnM9sun4uHzjAQtuEVJkup4HXzQRWl4f301RfgrId2qF fc8xCcOoezBvy3/YV7zt3TwYcqV9H95RkKH3pEDQZfae/I/M+AtjJ0RijL4B6iE+plq1 XVbYJ9Qo3fZwrJRylt/PG7qf228Ic8fIAvWAICM1JnQXltKVJafRJnfthRjR4cPyakhj gqow== X-Gm-Message-State: AJIora95p+eIyiHBBnuLdOqzhiCxTlbHQA77eVnilGnA/iTQCeNeSudj uGZqmFZNTj0R2tbio34vguxD+7StsztECQ== X-Google-Smtp-Source: AGRyM1udDT7dCJX9gNvfVmLiVQV3kVLpbdVkrUY8TlsTEk5pG+nBebDhCZ+Ab0qPXXco/9V1DReaVA== X-Received: by 2002:a37:9907:0:b0:6ae:f76f:3520 with SMTP id b7-20020a379907000000b006aef76f3520mr32852051qke.497.1657216976489; Thu, 07 Jul 2022 11:02:56 -0700 (PDT) Received: from hurd (dsl-153-127.b2b2c.ca. [66.158.153.127]) by smtp.gmail.com with ESMTPSA id x8-20020a05620a258800b006a75a0ffc97sm33545278qko.3.2022.07.07.11.02.55 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 Jul 2022 11:02:56 -0700 (PDT) Date: Thu, 07 Jul 2022 14:02:55 -0400 Message-Id: <87ilo8ztps.fsf@gmail.com> To: control@debbugs.gnu.org From: Maxim Cournoyer Subject: control message for bug #50882 X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: control 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: -1.0 (-) tags 50882 + moreinfo quit From debbugs-submit-bounces@debbugs.gnu.org Thu Jul 07 20:20:33 2022 Received: (at 50882) by debbugs.gnu.org; 8 Jul 2022 00:20:33 +0000 Received: from localhost ([127.0.0.1]:58361 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o9bjU-0006E4-Nx for submit@debbugs.gnu.org; Thu, 07 Jul 2022 20:20:33 -0400 Received: from mx1.dismail.de ([78.46.223.134]:11117) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o9bjP-0006Dm-SD for 50882@debbugs.gnu.org; Thu, 07 Jul 2022 20:20:31 -0400 Received: from mx1.dismail.de (localhost [127.0.0.1]) by mx1.dismail.de (OpenSMTPD) with ESMTP id ef4624e5; Fri, 8 Jul 2022 02:20:21 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=dismail.de; h=date :message-id:from:to:cc:subject:in-reply-to:references :mime-version:content-type:content-transfer-encoding; s= 20190914; bh=SBQIsbhy7wHiV9hHLDGwHSajwbLL9BeIEsWU5AY41kc=; b=iS6 fzPPHq0E0+9Kk6bHwKJRNS/7L2i8skZwk5IKi82/Yi9UUTjiEUJrndXQxSkkEU9e iRgSb/nEzbh3nR7xHpms1LwNmm4g73iL9Al6QIr3f9Ri4JjYIODtO6JBFbxht3md p9RUEcOVSvKNBEUjVf2kTsO9fdr+LmyXR1FyS8+Ss0CA7DNVxSAy5fclyHVsYXzl /Im+CFg98nxa9Xtb8/DjmPi3l1ePPJkzQ99QHGzVUIfnBZjwKpCGvZzDErxDZyq6 4RYGGRwwhe5BHk89qf/yqKOnNQ7z8vpgQe6UZXK3LSx1vWMhuptrQLkm+vOxthFW kRUAyhvbsiButDZ3UiQ== Received: from smtp1.dismail.de ( [10.240.26.11]) by mx1.dismail.de (OpenSMTPD) with ESMTP id 8c4b4f31; Fri, 8 Jul 2022 02:20:21 +0200 (CEST) Received: from smtp1.dismail.de (localhost [127.0.0.1]) by smtp1.dismail.de (OpenSMTPD) with ESMTP id aa477f24; Fri, 8 Jul 2022 02:20:21 +0200 (CEST) Received: by dismail.de (OpenSMTPD) with ESMTPSA id 423d8845 (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Fri, 8 Jul 2022 02:20:20 +0200 (CEST) Date: Thu, 7 Jul 2022 19:20:27 -0500 Message-ID: <20220707192027.GT1675@gac> From: jgart To: Maxim Cournoyer Subject: Re: bug#50882: [PATCH] gnu: services: Add darkhttpd service In-Reply-To: <87k08oztqb.fsf_-_@gmail.com> References: <20210928203838.GB15388@gac.attlocal.net> <20210929004633.17158-1-jgart@dismail.de> <87bl3dl1xy.fsf_-_@gnu.org> <87k08oztqb.fsf_-_@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 50882 Cc: 50882@debbugs.gnu.org, Ludovic =?UTF-8?Q?Court=C3=A8s?= 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: -1.7 (-) On Thu, 07 Jul 2022 14:02:36 -0400 Maxim Cournoyer wrote: > tag 50882 moreinfo > thanks > > Hello jgart, > > Ludovic Courtès writes: > > > Hi, > > > > jgart skribis: > > > >> * gnu/services/web.scm (): New record type. > >> (darkhttpd-accounts, darkhttpd-shepherd-service): New procedures. > >> (darkhttpd-service-type): New variable. > >> * doc/guix.texi (Web Services): Adds documentation for darkhttpd. > > > > Overall LGTM! Some comments and suggestions below. > > > >> +@cindex darkhttpd > >> +@uref{https://unix4lyfe.org/darkhttpd/, darkhttpd} is a web server with a > >> +focus on security and having a small memory footprint. > >> + > >> +Some security features are the following: > >> + > >> +@itemize > >> +@item Logging accesses, including Referer and User-Agent. > >> +@item Can chroot. > >> +@item Can drop privileges. > >> +@item Impervious to /../ sniffing. > >> +@item Times out idle connections. > >> +@item Drops overly long requests. > >> +@end itemize > > > > I’d replace the bullet list with a simple sentence like: “Among other > > things, it can change root directories, drop privileges, it times out on > > idle connections and can drop overly long requests.” > > > >> +@deffn {Scheme Variable} darkhttpd-service-type > >> +This is the type of the darkhttpd service, whose value should be a > >> +@code{darkhttpd-service-type} object, as in this example: > >> + > >> +@lisp > >> +(service darkhttpd-service-type > >> + (darkhttpd-configuration > > > > Please don’t use tabs. > > > >> +@end table > >> +@end deftp > >> @node Certificate Services > > > > Missing newline before @node. :-) > > > >> + (mimetypes darkhttpd-configuration-mimetypes > >> + (default #f)) > >> + (default-mimetype darkhttpd-configuration-default-mimetype > > > > Rather ‘mime-type’ (two words). > > > >> +(define darkhttpd-shepherd-service > >> + (match-lambda > >> + (($ package content port address > >> + maximum-connections log-file chroot? > >> + daemonize? index-file do-not-serve-listing? > >> + mimetypes default-mimetype > >> + drop-user-priviledges drop-group-priviledges > >> + write-pid-file disable-keep-alive? > >> + forward forward-all > >> + no-server-id? enable-ipv6? > >> + user group) > > > > Rather use ‘match-record’ here, to make sure we’re getting the right > > fields. > > > >> +(define darkhttpd-accounts > >> + (match-lambda > >> + (($ _ _ _ _ _ _ _ _ > >> + _ _ _ _ _ _ _ _ > >> + _ _ user group) > > > > In such a case, simply call ‘darkhttpd-configuration-user’ and > > ‘darkhttpd-configuration-group’; it’s much less error-prone! > > > >> +(define darkhttpd-service-type > >> + (service-type > >> + (name 'guix) > >> + (extensions > >> + (list (service-extension account-service-type > >> + darkhttpd-accounts) > >> + (service-extension shepherd-root-service-type > >> + darkhttpd-shepherd-service))) > >> + (default-value (darkhttpd-configuration)))) > > > > Please add a ‘description’ field. > > > > Could you also add a system test, under (gnu tests web)? You can start > > by copying the nginx test; it should take around ~20 lines. > > Friendly ping about the above requests from Ludovic :-). Arun Isaac convinced me to not write a service for this one since it's common usage is for quick serving by simply running `darkhttpd ...` from the command line. I think that guile bindings for every CLI feature of darkhttpd doesn't add to that aim. I might change my mind later on this. Feel free to close this one for now. It was a fun exercise though. Ludo, thanks for the review. It was much appreciated! all best, jgart https://whereis.みんな/ From debbugs-submit-bounces@debbugs.gnu.org Fri Jul 08 21:41:31 2022 Received: (at 50882-done) by debbugs.gnu.org; 9 Jul 2022 01:41:31 +0000 Received: from localhost ([127.0.0.1]:33469 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o9zTP-0003jW-Bc for submit@debbugs.gnu.org; Fri, 08 Jul 2022 21:41:31 -0400 Received: from mail-qt1-f177.google.com ([209.85.160.177]:33311) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o9zTO-0003jK-8S for 50882-done@debbugs.gnu.org; Fri, 08 Jul 2022 21:41:30 -0400 Received: by mail-qt1-f177.google.com with SMTP id r2so332807qta.0 for <50882-done@debbugs.gnu.org>; Fri, 08 Jul 2022 18:41:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=iKF9QfA1Fnu0OfRbt9eqIoENwWe9U522WArUJH45Pz8=; b=jhDtojWEUWJ0MiCz6idQFz6pK97TRkqI6LBOxPymmJtuXeaLimnBm7aEeZSazdUrJB X3yjGzAIyjq6O1QoSMRxozrIlUB/Zx5ZLCicLJ2KVsowBpQvtnJQTKh8MInTaJyNf3Jr 1CPBL+n4Esqmddmr5hc/66+38e2k58bi9cvPWcip1Z9TjmVZMUO3YAwwm/BMluvW7iO5 NR9+4IcqJ6pk/idmUXHViNfrIzGE0zlLRUEkhV5f7Me9AKQC5UX/+CMUwsfJanz1fiMt d5ZRwGrNcEufvFiWi2lF9LjLqC81UOWp4rBbP+9glF5DHflzHz736TriQCrhRpMKlJN9 /fmw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version; bh=iKF9QfA1Fnu0OfRbt9eqIoENwWe9U522WArUJH45Pz8=; b=BtNlXcjH2IzxiXx6Y7MRsK8YiRbyz052oBgoKWv9ec7uYQ+oAVg6qnB8abavoh+W1D JW6Nm+rzGwy5BX4uBdoiJ5B+id48p2gbo9Y1f3Wzbj79WuKYkBe/371TnKfdZ+6QfHLo Xp9E/e9sujq7RHcSiplsm9SlIWbN7SB2KfAKkAyydxeEVax824+XRweIc+izj06LI5H/ kI+BE+j2BVn45TRyUTInguIolbkjbiL6JYcIoIU5TePt08zJVwIIDCG/8F/YkiuOtRSY wQJOhNhyLJl7hxc2rfI5YDNf7aIF3sjExyv30tI6CBoeQaXdL47+70yAWEpzj0gEDRes 5+Ug== X-Gm-Message-State: AJIora9wnwg3x+Zy0pYExX+8kJql+8AcoxD4HuYA+fFAkc3jwoUtA/T2 l+koo+v1KofWkE+/wkbiNuUco8RsOdiXxw== X-Google-Smtp-Source: AGRyM1uPuHvHhFKkK7PCzaTTVSWfu88tm7qyeTSkXyNgWymZHTuTnAa/VfZzrxc9ZH3WeYXYqiS4yA== X-Received: by 2002:a05:6214:ca6:b0:472:e7e6:13a2 with SMTP id s6-20020a0562140ca600b00472e7e613a2mr5111259qvs.69.1657330884587; Fri, 08 Jul 2022 18:41:24 -0700 (PDT) Received: from hurd (dsl-153-127.b2b2c.ca. [66.158.153.127]) by smtp.gmail.com with ESMTPSA id c7-20020a05620a268700b006b253a6dd1fsm222861qkp.125.2022.07.08.18.41.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 Jul 2022 18:41:24 -0700 (PDT) From: Maxim Cournoyer To: jgart Subject: Re: bug#50882: [PATCH] gnu: services: Add darkhttpd service References: <20210928203838.GB15388@gac.attlocal.net> <20210929004633.17158-1-jgart@dismail.de> <87bl3dl1xy.fsf_-_@gnu.org> <87k08oztqb.fsf_-_@gmail.com> <20220707192027.GT1675@gac> Date: Fri, 08 Jul 2022 21:41:23 -0400 In-Reply-To: <20220707192027.GT1675@gac> (jgart@dismail.de's message of "Thu, 7 Jul 2022 19:20:27 -0500") Message-ID: <8735fbm5a4.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 50882-done Cc: 50882-done@debbugs.gnu.org, Ludovic =?utf-8?Q?Court=C3=A8s?= 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: -1.0 (-) Hello, [...] >> Friendly ping about the above requests from Ludovic :-). > > Arun Isaac convinced me to not write a service for this one since it's > common usage is for quick serving by simply running `darkhttpd ...` from > the command line. I think that guile bindings for every CLI feature of > darkhttpd doesn't add to that aim. I might change my mind later on this. > Feel free to close this one for now. > > It was a fun exercise though. > > Ludo, thanks for the review. It was much appreciated! OK, if you do reopen a ticket for it, please incorporate Ludovic's and others comments in this issue in the to be submitted code, to avoid duplicating efforts. Closing; thanks! Maxim From unknown Wed Jun 18 00:25:01 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Sat, 06 Aug 2022 11:24:11 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator