From unknown Fri Sep 05 20:55:09 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#36563] [PATCH] guix: Add directory to channel. Resent-From: Jan Nieuwenhuizen Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Tue, 09 Jul 2019 19:27:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 36563 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 36563@debbugs.gnu.org X-Debbugs-Original-To: guix-patches@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.156270039317489 (code B ref -1); Tue, 09 Jul 2019 19:27:01 +0000 Received: (at submit) by debbugs.gnu.org; 9 Jul 2019 19:26:33 +0000 Received: from localhost ([127.0.0.1]:34296 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hkvky-0004Xw-OO for submit@debbugs.gnu.org; Tue, 09 Jul 2019 15:26:33 -0400 Received: from lists.gnu.org ([209.51.188.17]:39050) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hkvkv-0004Xn-Ms for submit@debbugs.gnu.org; Tue, 09 Jul 2019 15:26:28 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:36204) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hkvkt-0007Vt-Tc for guix-patches@gnu.org; Tue, 09 Jul 2019 15:26:25 -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.2 required=5.0 tests=ALL_TRUSTED,BAYES_50, URIBL_BLOCKED autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:470:142:3::e]:57341) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hkvkn-0006QG-Og; Tue, 09 Jul 2019 15:26:19 -0400 Received: from [2001:980:1b4f:1:42d2:832d:bb59:862] (port=39842 helo=dundal.peder.onsbrabantnet.nl) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1hkvka-00062d-Fs; Tue, 09 Jul 2019 15:26:07 -0400 From: Jan Nieuwenhuizen Date: Tue, 09 Jul 2019 21:26:00 +0200 Message-ID: <878st7dn7b.fsf@gnu.org> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Spam-Score: -2.3 (--) 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 (---) --=-=-= Content-Type: text/plain Hi! I commonly use a "guix/" subdirectory in upstream that contains updated or modified packages. The toplevel `guix.scm' then uses those package definitions. It would be nice if I could use that "guix/" subdirectory directly in a channel. This means a channel definition should look in a subdirectory only: often an upstream source archive contains .scm files that do not compile (guix.scm, build-aux/*.scm, etc.) WDYT? Greetings, janneke --=-=-= Content-Type: text/x-patch; charset=utf-8 Content-Disposition: inline; filename=0001-guix-Add-directory-to-channel.patch Content-Transfer-Encoding: quoted-printable >From cf85280211ff0060b5283dc5a53cb15ee09a7998 Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen Date: Tue, 9 Jul 2019 21:01:11 +0200 Subject: [PATCH] guix: Add directory to channel. Typical use (cons* (channel (name 'mes) (url "https://git.savannah.gnu.org/git/mes.git") (directory "guix") (branch "wip")) %default-channels) * guix/channels.scm (): Add directory. (read-channel-metadata): Fill directory slot. (checkout->channel-instance): Add #:directory parameter. Update callers. (standard-module-derivation): Add directory parameter. Update callers. (build-channel-instance): Provide directory argument. --- guix/channels.scm | 58 ++++++++++++++++++++++++++++++----------------- 1 file changed, 37 insertions(+), 21 deletions(-) diff --git a/guix/channels.scm b/guix/channels.scm index e6bb9b891b..bd64906832 100644 --- a/guix/channels.scm +++ b/guix/channels.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright =C2=A9 2018, 2019 Ludovic Court=C3=A8s ;;; Copyright =C2=A9 2018 Ricardo Wurmus +;;; Copyright =C2=A9 2019 Jan (janneke) Nieuwenhuizen ;;; ;;; This file is part of GNU Guix. ;;; @@ -50,6 +51,7 @@ channel-branch channel-commit channel-location + channel-directory =20 %default-channels guix-channel? @@ -86,7 +88,8 @@ (branch channel-branch (default "master")) (commit channel-commit (default #f)) (location channel-location - (default (current-source-location)) (innate))) + (default (current-source-location)) (innate)) + (directory channel-directory (default #f))) =20 (define %default-channels ;; Default list of channels. @@ -141,7 +144,8 @@ file." (name name) (branch branch) (url url) - (commit (get 'commit)))))) + (commit (get 'commit)) + (directory (get 'directory)))))) dependencies)))))) =20 (define (channel-instance-dependencies instance) @@ -205,13 +209,16 @@ of previously processed channels." =20 (define* (checkout->channel-instance checkout #:key commit - (url checkout) (name 'guix)) + (url checkout) + (name 'guix) + directory) "Return a channel instance for CHECKOUT, which is assumed to be a checko= ut of COMMIT at URL. Use NAME as the channel name." (let* ((commit (or commit (make-string 40 #\0))) (channel (channel (name name) (commit commit) - (url url)))) + (url url) + (directory directory)))) (channel-instance channel commit checkout))) =20 (define %self-build-file @@ -225,11 +232,12 @@ of COMMIT at URL. Use NAME as the channel name." ;; place a set of compiled Guile modules in ~/.config/guix/latest. 1) =20 -(define (standard-module-derivation name source core dependencies) +(define (standard-module-derivation name source directory core dependencie= s) "Return a derivation that builds with CORE, a Guix instance, the Scheme -modules in SOURCE and that depend on DEPENDENCIES, a list of lowerable -objects. The assumption is that SOURCE contains package modules to be add= ed -to '%package-module-path'." +modules in SOURCE or if DIRECTORY in SOURCE/DIRECTORY and that depend on +DEPENDENCIES, a list of lowerable objects. The assumption is that SOURCE = or +SOURCE/DIRECTORY contains package modules to be added to +'%package-module-path'." ;; FIXME: We should load, say SOURCE/.guix-channel.scm, which would allow ;; channel publishers to specify things such as the sub-directory where = .scm ;; files live, files to exclude from the channel, preferred substitute U= RLs, @@ -253,20 +261,27 @@ to '%package-module-path'." (string-append #$output "/share/guile/site/" (effective-version))) =20 - (compile-files #$source go - (find-files #$source "\\.scm$")) - (mkdir-p (dirname scm)) - (symlink #$source scm) + (let* ((subdir (if #$directory + (string-append "/" #$directory) + "")) + (dir (string-append #$source subdir))) + (compile-files dir go + (warn 'files (find-files dir "\\.scm$"))) + (mkdir-p (dirname scm)) + (symlink (string-append #$source subdir) scm)) + scm))) =20 (gexp->derivation-in-inferior name build core)) =20 (define* (build-from-source name source #:key core verbose? commit - (dependencies '())) + (dependencies '()) + directory) "Return a derivation to build Guix from SOURCE, using the self-build scr= ipt contained therein; use COMMIT as the version string. When CORE is true, b= uild -package modules under SOURCE using CORE, an instance of Guix." +package modules under SOURCE or if DIRECTORY under SOURCE/DIRECTORY using +CORE, an instance of Guix." ;; Running the self-build script makes it easier to update the build ;; procedure: the self-build script of the Guix-to-be-installed contains= the ;; right dependencies, build procedure, etc., which the Guix-in-use may = not @@ -293,19 +308,20 @@ package modules under SOURCE using CORE, an instance = of Guix." #:pull-version %pull-version)) =20 ;; Build a set of modules that extend Guix using the standard method. - (standard-module-derivation name source core dependencies))) + (standard-module-derivation name source directory core dependencies)= )) =20 (define* (build-channel-instance instance #:optional core (dependencies '())) "Return, as a monadic value, the derivation for INSTANCE, a channel instance. DEPENDENCIES is a list of extensions providing Guile modules th= at INSTANCE depends on." - (build-from-source (symbol->string - (channel-name (channel-instance-channel instance))) - (channel-instance-checkout instance) - #:commit (channel-instance-commit instance) - #:core core - #:dependencies dependencies)) + (let ((channel (channel-instance-channel instance))) + (build-from-source (symbol->string (channel-name channel)) + (channel-instance-checkout instance) + #:commit (channel-instance-commit instance) + #:core core + #:dependencies dependencies + #:directory (channel-directory channel)))) =20 (define (resolve-dependencies instances) "Return a procedure that, given one of the elements of INSTANCES, returns --=20 2.21.0 --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable --=20 Jan Nieuwenhuizen | GNU LilyPond http://lilypond.org Freelance IT http://JoyofSource.com | Avatar=C2=AE http://AvatarAcademy.com --=-=-=-- From unknown Fri Sep 05 20:55:09 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#36563] [PATCH] guix: Add directory to channel. Resent-From: Ludovic =?UTF-8?Q?Court=C3=A8s?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sat, 13 Jul 2019 10:29:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 36563 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Jan Nieuwenhuizen Cc: 36563@debbugs.gnu.org Received: via spool by 36563-submit@debbugs.gnu.org id=B36563.15630137338562 (code B ref 36563); Sat, 13 Jul 2019 10:29:02 +0000 Received: (at 36563) by debbugs.gnu.org; 13 Jul 2019 10:28:53 +0000 Received: from localhost ([127.0.0.1]:41499 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hmFGu-0002E2-Oe for submit@debbugs.gnu.org; Sat, 13 Jul 2019 06:28:52 -0400 Received: from eggs.gnu.org ([209.51.188.92]:54942) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hmFGt-0002Do-0t for 36563@debbugs.gnu.org; Sat, 13 Jul 2019 06:28:51 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:60371) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hmFGm-00027l-74; Sat, 13 Jul 2019 06:28:44 -0400 Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=56020 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1hmFGl-0001xS-HK; Sat, 13 Jul 2019 06:28:43 -0400 From: Ludovic =?UTF-8?Q?Court=C3=A8s?= References: <878st7dn7b.fsf@gnu.org> Date: Sat, 13 Jul 2019 12:28:41 +0200 In-Reply-To: <878st7dn7b.fsf@gnu.org> (Jan Nieuwenhuizen's message of "Tue, 09 Jul 2019 21:26:00 +0200") Message-ID: <87lfx29qjq.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.2 (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-Spam-Score: -2.3 (--) 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 (---) Hello! Jan Nieuwenhuizen skribis: > I commonly use a "guix/" subdirectory in upstream that contains updated > or modified packages. The toplevel `guix.scm' then uses those package > definitions. > > It would be nice if I could use that "guix/" subdirectory directly in a > channel. This means a channel definition should look in a subdirectory > only: often an upstream source archive contains .scm files that do not > compile (guix.scm, build-aux/*.scm, etc.) That makes a lot of sense to me. I think that, instead of letting the user specify the right directory in ~/.config/guix/channels.scm, it should be the channel author that specifies the sub-directory. There=E2=80=99s already support for a =E2=80=98.guix-channel=E2=80=99 file = so this is where this =E2=80=98directory=E2=80=99 thing could be added (actually there=E2=80=99s = a FIXME in channels.scm about this particular use case :-)). WDYT? Ludo=E2=80=99. From unknown Fri Sep 05 20:55:09 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#36563] [PATCH] guix: Add directory to channel. Resent-From: Jan Nieuwenhuizen Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sat, 13 Jul 2019 15:38:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 36563 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Ludovic =?UTF-8?Q?Court=C3=A8s?= Cc: 36563@debbugs.gnu.org Received: via spool by 36563-submit@debbugs.gnu.org id=B36563.15630322459769 (code B ref 36563); Sat, 13 Jul 2019 15:38:02 +0000 Received: (at 36563) by debbugs.gnu.org; 13 Jul 2019 15:37:25 +0000 Received: from localhost ([127.0.0.1]:43193 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hmK5Q-0002XH-PC for submit@debbugs.gnu.org; Sat, 13 Jul 2019 11:37:25 -0400 Received: from eggs.gnu.org ([209.51.188.92]:50987) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hmK5O-0002X2-7o for 36563@debbugs.gnu.org; Sat, 13 Jul 2019 11:37:19 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:36877) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hmK5I-0007Qv-Vw; Sat, 13 Jul 2019 11:37:13 -0400 Received: from [2001:980:1b4f:1:42d2:832d:bb59:862] (port=51304 helo=dundal.peder.onsbrabantnet.nl) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1hmK5I-0003SL-Fo; Sat, 13 Jul 2019 11:37:12 -0400 From: Jan Nieuwenhuizen References: <878st7dn7b.fsf@gnu.org> <87lfx29qjq.fsf@gnu.org> Date: Sat, 13 Jul 2019 17:37:07 +0200 In-Reply-To: <87lfx29qjq.fsf@gnu.org> ("Ludovic \=\?utf-8\?Q\?Court\=C3\=A8s\=22'\?\= \=\?utf-8\?Q\?s\?\= message of "Sat, 13 Jul 2019 12:28:41 +0200") Message-ID: <87ef2ukkt8.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.2 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Spam-Score: -2.3 (--) 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 (---) --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Ludovic Court=C3=A8s writes: Hi! > That makes a lot of sense to me. > > I think that, instead of letting the user specify the right directory in > ~/.config/guix/channels.scm, it should be the channel author that > specifies the sub-directory. > > There=E2=80=99s already support for a =E2=80=98.guix-channel=E2=80=99 fil= e so this is where this > =E2=80=98directory=E2=80=99 thing could be added (actually there=E2=80=99= s a FIXME in > channels.scm about this particular use case :-)). > > WDYT? Yes, I agree that this should be the first option to support. Attached is a second attempt: I removed the FIXME and moved `directory' to channel-metadata. A downside could be that this could make a channel user dependent on upstream to provide this `.guix-channel' file; probably best to worry about that when the need arises :) Greetings, janneke --=-=-= Content-Type: text/x-patch; charset=utf-8 Content-Disposition: inline; filename=0001-channels-Add-optional-directory-to-channel-metadata.patch Content-Transfer-Encoding: quoted-printable >From 5d78a7eab391ea93c044d85736706b333c2dfee8 Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen Date: Sat, 13 Jul 2019 16:31:50 +0200 Subject: [PATCH] channels: Add optional directory to channel metadata. * guix/channels.scm (): Add directory slot. Update users. (read-channel-metadata-from-source): New function. (standard-module-derivation): Use it. * doc/guix.texi (Package Modules in a Subdirectory): New subsection. --- doc/guix.texi | 23 ++++++++++++ guix/channels.scm | 93 ++++++++++++++++++++++++++--------------------- 2 files changed, 75 insertions(+), 41 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 5a8ad7ebda..8bc00a5350 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -3921,6 +3921,29 @@ For the sake of reliability and maintainability, you= should avoid dependencies on channels that you don't control, and you should aim to keep the number = of dependencies to a minimum. =20 +@cindex subdirectory, channels +@subsection Package Modules in a Subdirectory + +A developer may include a @file{guix} subdirectory in their upstream source +that contains additional or modified Guix package descriptions. Typically, +their toplevel @file{guix.scm} then uses those package definitions: + +@lisp +(define %source-dir (dirname (current-filename))) +(add-to-load-path (string-append %source-dir "/guix")) +(use-modules @dots{}) +@dots{} +@end lisp + +By adding a meta-data file @file{.guix-channel} that specifies the +subdirectory that contains the Guix package descriptions it can be used +directly as a channel: + +@lisp +(channel + (directory "guix")) +@end lisp + @subsection Replicating Guix =20 @cindex pinning, channels diff --git a/guix/channels.scm b/guix/channels.scm index e6bb9b891b..614639f091 100644 --- a/guix/channels.scm +++ b/guix/channels.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright =C2=A9 2018, 2019 Ludovic Court=C3=A8s ;;; Copyright =C2=A9 2018 Ricardo Wurmus +;;; Copyright =C2=A9 2019 Jan (janneke) Nieuwenhuizen ;;; ;;; This file is part of GNU Guix. ;;; @@ -107,9 +108,10 @@ (checkout channel-instance-checkout)) =20 (define-record-type - (channel-metadata version dependencies) + (channel-metadata version directory dependencies) channel-metadata? (version channel-metadata-version) + (directory channel-metadata-directory) (dependencies channel-metadata-dependencies)) =20 (define (channel-reference channel) @@ -119,18 +121,18 @@ (#f `(branch . ,(channel-branch channel))) (commit `(commit . ,(channel-commit channel))))) =20 -(define (read-channel-metadata instance) - "Return a channel-metadata record read from the channel INSTANCE's -description file, or return #F if the channel instance does not include the -file." - (let* ((source (channel-instance-checkout instance)) - (meta-file (string-append source "/.guix-channel"))) +(define (read-channel-metadata-from-source source) + "Return a channel-metadata record read from channel's SOURCE/.guix-chann= el +description file, or return #F if SOURCE/.guix-channel does not exist." + (let ((meta-file (string-append source "/.guix-channel"))) (and (file-exists? meta-file) - (and-let* ((raw (call-with-input-file meta-file read)) - (version (and=3D> (assoc-ref raw 'version) first)) - (dependencies (or (assoc-ref raw 'dependencies) '()))) + (let* ((raw (call-with-input-file meta-file read)) + (version (and=3D> (assoc-ref raw 'version) first)) + (directory (and=3D> (assoc-ref raw 'directory) first)) + (dependencies (or (assoc-ref raw 'dependencies) '()))) (channel-metadata version + directory (map (lambda (item) (let ((get (lambda* (key #:optional default) (or (and=3D> (assoc-ref item key) first) d= efault)))) @@ -144,12 +146,18 @@ file." (commit (get 'commit)))))) dependencies)))))) =20 +(define (read-channel-metadata instance) + "Return a channel-metadata record read from the channel INSTANCE's +description file, or return #F if the channel instance does not include the +file." + (read-channel-metadata-from-source (channel-instance-checkout instance))) + (define (channel-instance-dependencies instance) "Return the list of channels that are declared as dependencies for the g= iven channel INSTANCE." (match (read-channel-metadata instance) (#f '()) - (($ version dependencies) + (($ version directory dependencies) dependencies))) =20 (define* (latest-channel-instances store channels #:optional (previous-cha= nnels '())) @@ -230,36 +238,39 @@ of COMMIT at URL. Use NAME as the channel name." modules in SOURCE and that depend on DEPENDENCIES, a list of lowerable objects. The assumption is that SOURCE contains package modules to be add= ed to '%package-module-path'." - ;; FIXME: We should load, say SOURCE/.guix-channel.scm, which would allow - ;; channel publishers to specify things such as the sub-directory where = .scm - ;; files live, files to exclude from the channel, preferred substitute U= RLs, - ;; etc. - - (define build - ;; This is code that we'll run in CORE, a Guix instance, with its own - ;; modules and so on. That way, we make sure these modules are built = for - ;; the right Guile version, with the right dependencies, and that they= get - ;; to see the right (gnu packages =E2=80=A6) modules. - (with-extensions dependencies - #~(begin - (use-modules (guix build compile) - (guix build utils) - (srfi srfi-26)) - - (define go - (string-append #$output "/lib/guile/" (effective-version) - "/site-ccache")) - (define scm - (string-append #$output "/share/guile/site/" - (effective-version))) - - (compile-files #$source go - (find-files #$source "\\.scm$")) - (mkdir-p (dirname scm)) - (symlink #$source scm) - scm))) - - (gexp->derivation-in-inferior name build core)) + + (let* ((metadata (read-channel-metadata-from-source source)) + (directory (and=3D> metadata channel-metadata-directory))) + + (define build + ;; This is code that we'll run in CORE, a Guix instance, with its own + ;; modules and so on. That way, we make sure these modules are buil= t for + ;; the right Guile version, with the right dependencies, and that th= ey get + ;; to see the right (gnu packages =E2=80=A6) modules. + (with-extensions dependencies + #~(begin + (use-modules (guix build compile) + (guix build utils) + (srfi srfi-26)) + + (define go + (string-append #$output "/lib/guile/" (effective-version) + "/site-ccache")) + (define scm + (string-append #$output "/share/guile/site/" + (effective-version))) + + (let* ((subdir (if #$directory + (string-append "/" #$directory) + "")) + (dir (string-append #$source subdir))) + (compile-files dir go (find-files dir "\\.scm$")) + (mkdir-p (dirname scm)) + (symlink (string-append #$source subdir) scm)) + + scm))) + + (gexp->derivation-in-inferior name build core))) =20 (define* (build-from-source name source #:key core verbose? commit --=20 2.21.0 --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable --=20 Jan Nieuwenhuizen | GNU LilyPond http://lilypond.org Freelance IT http://JoyofSource.com | Avatar=C2=AE http://AvatarAcademy.com --=-=-=-- From unknown Fri Sep 05 20:55:09 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#36563] [PATCH] guix: Add directory to channel. Resent-From: Ludovic =?UTF-8?Q?Court=C3=A8s?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sat, 13 Jul 2019 20:50:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 36563 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Jan Nieuwenhuizen Cc: 36563@debbugs.gnu.org Received: via spool by 36563-submit@debbugs.gnu.org id=B36563.156305098924869 (code B ref 36563); Sat, 13 Jul 2019 20:50:02 +0000 Received: (at 36563) by debbugs.gnu.org; 13 Jul 2019 20:49:49 +0000 Received: from localhost ([127.0.0.1]:43457 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hmOxp-0006T3-1D for submit@debbugs.gnu.org; Sat, 13 Jul 2019 16:49:49 -0400 Received: from eggs.gnu.org ([209.51.188.92]:51077) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hmOxm-0006Sr-MZ for 36563@debbugs.gnu.org; Sat, 13 Jul 2019 16:49:47 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:41907) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hmOxf-0005ZB-Fk; Sat, 13 Jul 2019 16:49:40 -0400 Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=57604 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1hmOxf-0002no-12; Sat, 13 Jul 2019 16:49:39 -0400 From: Ludovic =?UTF-8?Q?Court=C3=A8s?= References: <878st7dn7b.fsf@gnu.org> <87lfx29qjq.fsf@gnu.org> <87ef2ukkt8.fsf@gnu.org> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 25 Messidor an 227 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: Sat, 13 Jul 2019 22:49:36 +0200 In-Reply-To: <87ef2ukkt8.fsf@gnu.org> (Jan Nieuwenhuizen's message of "Sat, 13 Jul 2019 17:37:07 +0200") Message-ID: <875zo58xsv.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.2 (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-Spam-Score: -2.3 (--) 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 (---) Jan Nieuwenhuizen skribis: > Yes, I agree that this should be the first option to support. Attached > is a second attempt: I removed the FIXME and moved `directory' to > channel-metadata. That was fast! > A downside could be that this could make a channel user dependent on > upstream to provide this `.guix-channel' file; probably best to worry > about that when the need arises :) If upstream doesn=E2=80=99t provide this file, then the channel is effectiv= ely unusable because of a file name/module name mismatch, no? > From 5d78a7eab391ea93c044d85736706b333c2dfee8 Mon Sep 17 00:00:00 2001 > From: Jan Nieuwenhuizen > Date: Sat, 13 Jul 2019 16:31:50 +0200 > Subject: [PATCH] channels: Add optional directory to channel metadata. > > * guix/channels.scm (): Add directory slot. Update use= rs. > (read-channel-metadata-from-source): New function. > (standard-module-derivation): Use it. > * doc/guix.texi (Package Modules in a Subdirectory): New subsection. [...] > +@cindex subdirectory, channels > +@subsection Package Modules in a Subdirectory > + > +A developer may include a @file{guix} subdirectory in their upstream sou= rce > +that contains additional or modified Guix package descriptions. Typical= ly, > +their toplevel @file{guix.scm} then uses those package definitions: What about framing it along these lines: As a channel author, you may want to keep your channel modules in a sub-directory. In that case, blah=E2=80=A6 ? > +By adding a meta-data file @file{.guix-channel} that specifies the > +subdirectory that contains the Guix package descriptions it can be used > +directly as a channel: > + > +@lisp > +(channel > + (directory "guix")) It should be: (channel (version 0) (directory "something")) (=E2=80=98read-channel-metadata=E2=80=99 currently ignores =E2=80=98version= =E2=80=99, but that=E2=80=99s a bug that we should fix afterwards, IMO.) > + (let* ((subdir (if #$directory > + (string-append "/" #$directory) > + "")) > + (dir (string-append #$source subdir))) Maybe s/dir/source/? Otherwise LGTM! Thanks, Ludo=E2=80=99. From unknown Fri Sep 05 20:55:09 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: Jan Nieuwenhuizen Subject: bug#36563: closed (Re: [bug#36563] [PATCH] guix: Add directory to channel.) Message-ID: References: <87a7dhlef6.fsf@gnu.org> <878st7dn7b.fsf@gnu.org> X-Gnu-PR-Message: they-closed 36563 X-Gnu-PR-Package: guix-patches X-Gnu-PR-Keywords: patch Reply-To: 36563@debbugs.gnu.org Date: Sat, 13 Jul 2019 23:10:05 +0000 Content-Type: multipart/mixed; boundary="----------=_1563059405-5684-1" This is a multi-part message in MIME format... ------------=_1563059405-5684-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Your bug report #36563: [PATCH] guix: Add directory to channel. 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 36563@debbugs.gnu.org. --=20 36563: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D36563 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems ------------=_1563059405-5684-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at 36563-done) by debbugs.gnu.org; 13 Jul 2019 23:10:00 +0000 Received: from localhost ([127.0.0.1]:43601 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hmR9U-0001T3-F6 for submit@debbugs.gnu.org; Sat, 13 Jul 2019 19:10:00 -0400 Received: from eggs.gnu.org ([209.51.188.92]:33946) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hmR9S-0001Sq-D8 for 36563-done@debbugs.gnu.org; Sat, 13 Jul 2019 19:09:58 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:43876) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hmR9N-0003Ky-9v; Sat, 13 Jul 2019 19:09:53 -0400 Received: from [2001:980:1b4f:1:42d2:832d:bb59:862] (port=52326 helo=dundal.peder.onsbrabantnet.nl) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1hmR9M-00086j-OO; Sat, 13 Jul 2019 19:09:53 -0400 From: Jan Nieuwenhuizen To: Ludovic =?utf-8?Q?Court=C3=A8s?= Subject: Re: [bug#36563] [PATCH] guix: Add directory to channel. References: <878st7dn7b.fsf@gnu.org> <87lfx29qjq.fsf@gnu.org> <87ef2ukkt8.fsf@gnu.org> <875zo58xsv.fsf@gnu.org> Date: Sun, 14 Jul 2019 01:09:49 +0200 In-Reply-To: <875zo58xsv.fsf@gnu.org> ("Ludovic \=\?utf-8\?Q\?Court\=C3\=A8s\=22'\?\= \=\?utf-8\?Q\?s\?\= message of "Sat, 13 Jul 2019 22:49:36 +0200") Message-ID: <87a7dhlef6.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.2 (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-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 36563-done Cc: 36563-done@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 (---) Ludovic Court=C3=A8s writes: Hi! > What about framing it along these lines: > > As a channel author, you may want to keep your channel modules in a > sub-directory. In that case, blah=E2=80=A6 > > ? Better, changed it to --8<---------------cut here---------------start------------->8--- @cindex subdirectory, channels @subsection Package Modules in a Sub-directory As a channel author, you may want to keep your channel modules in a sub-directory. If your modules are in the sub-directory @file{guix}, you m= ust add a meta-data file @file{.guix-channel} that contains: @lisp (channel (version 0) (directory "guix")) @end lisp --8<---------------cut here---------------end--------------->8--- > (=E2=80=98read-channel-metadata=E2=80=99 currently ignores =E2=80=98versi= on=E2=80=99, but that=E2=80=99s a bug > that we should fix afterwards, IMO.) OK. >> + (let* ((subdir (if #$directory >> + (string-append "/" #$directory) >> + "")) >> + (dir (string-append #$source subdir))) > > Maybe s/dir/source/? Sure, done. > Otherwise LGTM! Great, thanks; pushed to master as 53f21642729e4786141c072dd835b04cb85dfe28 Greetings, janneke --=20 Jan Nieuwenhuizen | GNU LilyPond http://lilypond.org Freelance IT http://JoyofSource.com | Avatar=C2=AE http://AvatarAcademy.com ------------=_1563059405-5684-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by debbugs.gnu.org; 9 Jul 2019 19:26:33 +0000 Received: from localhost ([127.0.0.1]:34296 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hkvky-0004Xw-OO for submit@debbugs.gnu.org; Tue, 09 Jul 2019 15:26:33 -0400 Received: from lists.gnu.org ([209.51.188.17]:39050) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hkvkv-0004Xn-Ms for submit@debbugs.gnu.org; Tue, 09 Jul 2019 15:26:28 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:36204) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hkvkt-0007Vt-Tc for guix-patches@gnu.org; Tue, 09 Jul 2019 15:26:25 -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.2 required=5.0 tests=ALL_TRUSTED,BAYES_50, URIBL_BLOCKED autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:470:142:3::e]:57341) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hkvkn-0006QG-Og; Tue, 09 Jul 2019 15:26:19 -0400 Received: from [2001:980:1b4f:1:42d2:832d:bb59:862] (port=39842 helo=dundal.peder.onsbrabantnet.nl) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1hkvka-00062d-Fs; Tue, 09 Jul 2019 15:26:07 -0400 From: Jan Nieuwenhuizen To: guix-patches@gnu.org Subject: [PATCH] guix: Add directory to channel. Date: Tue, 09 Jul 2019 21:26:00 +0200 Message-ID: <878st7dn7b.fsf@gnu.org> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Spam-Score: -2.3 (--) 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: -3.3 (---) --=-=-= Content-Type: text/plain Hi! I commonly use a "guix/" subdirectory in upstream that contains updated or modified packages. The toplevel `guix.scm' then uses those package definitions. It would be nice if I could use that "guix/" subdirectory directly in a channel. This means a channel definition should look in a subdirectory only: often an upstream source archive contains .scm files that do not compile (guix.scm, build-aux/*.scm, etc.) WDYT? Greetings, janneke --=-=-= Content-Type: text/x-patch; charset=utf-8 Content-Disposition: inline; filename=0001-guix-Add-directory-to-channel.patch Content-Transfer-Encoding: quoted-printable >From cf85280211ff0060b5283dc5a53cb15ee09a7998 Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen Date: Tue, 9 Jul 2019 21:01:11 +0200 Subject: [PATCH] guix: Add directory to channel. Typical use (cons* (channel (name 'mes) (url "https://git.savannah.gnu.org/git/mes.git") (directory "guix") (branch "wip")) %default-channels) * guix/channels.scm (): Add directory. (read-channel-metadata): Fill directory slot. (checkout->channel-instance): Add #:directory parameter. Update callers. (standard-module-derivation): Add directory parameter. Update callers. (build-channel-instance): Provide directory argument. --- guix/channels.scm | 58 ++++++++++++++++++++++++++++++----------------- 1 file changed, 37 insertions(+), 21 deletions(-) diff --git a/guix/channels.scm b/guix/channels.scm index e6bb9b891b..bd64906832 100644 --- a/guix/channels.scm +++ b/guix/channels.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright =C2=A9 2018, 2019 Ludovic Court=C3=A8s ;;; Copyright =C2=A9 2018 Ricardo Wurmus +;;; Copyright =C2=A9 2019 Jan (janneke) Nieuwenhuizen ;;; ;;; This file is part of GNU Guix. ;;; @@ -50,6 +51,7 @@ channel-branch channel-commit channel-location + channel-directory =20 %default-channels guix-channel? @@ -86,7 +88,8 @@ (branch channel-branch (default "master")) (commit channel-commit (default #f)) (location channel-location - (default (current-source-location)) (innate))) + (default (current-source-location)) (innate)) + (directory channel-directory (default #f))) =20 (define %default-channels ;; Default list of channels. @@ -141,7 +144,8 @@ file." (name name) (branch branch) (url url) - (commit (get 'commit)))))) + (commit (get 'commit)) + (directory (get 'directory)))))) dependencies)))))) =20 (define (channel-instance-dependencies instance) @@ -205,13 +209,16 @@ of previously processed channels." =20 (define* (checkout->channel-instance checkout #:key commit - (url checkout) (name 'guix)) + (url checkout) + (name 'guix) + directory) "Return a channel instance for CHECKOUT, which is assumed to be a checko= ut of COMMIT at URL. Use NAME as the channel name." (let* ((commit (or commit (make-string 40 #\0))) (channel (channel (name name) (commit commit) - (url url)))) + (url url) + (directory directory)))) (channel-instance channel commit checkout))) =20 (define %self-build-file @@ -225,11 +232,12 @@ of COMMIT at URL. Use NAME as the channel name." ;; place a set of compiled Guile modules in ~/.config/guix/latest. 1) =20 -(define (standard-module-derivation name source core dependencies) +(define (standard-module-derivation name source directory core dependencie= s) "Return a derivation that builds with CORE, a Guix instance, the Scheme -modules in SOURCE and that depend on DEPENDENCIES, a list of lowerable -objects. The assumption is that SOURCE contains package modules to be add= ed -to '%package-module-path'." +modules in SOURCE or if DIRECTORY in SOURCE/DIRECTORY and that depend on +DEPENDENCIES, a list of lowerable objects. The assumption is that SOURCE = or +SOURCE/DIRECTORY contains package modules to be added to +'%package-module-path'." ;; FIXME: We should load, say SOURCE/.guix-channel.scm, which would allow ;; channel publishers to specify things such as the sub-directory where = .scm ;; files live, files to exclude from the channel, preferred substitute U= RLs, @@ -253,20 +261,27 @@ to '%package-module-path'." (string-append #$output "/share/guile/site/" (effective-version))) =20 - (compile-files #$source go - (find-files #$source "\\.scm$")) - (mkdir-p (dirname scm)) - (symlink #$source scm) + (let* ((subdir (if #$directory + (string-append "/" #$directory) + "")) + (dir (string-append #$source subdir))) + (compile-files dir go + (warn 'files (find-files dir "\\.scm$"))) + (mkdir-p (dirname scm)) + (symlink (string-append #$source subdir) scm)) + scm))) =20 (gexp->derivation-in-inferior name build core)) =20 (define* (build-from-source name source #:key core verbose? commit - (dependencies '())) + (dependencies '()) + directory) "Return a derivation to build Guix from SOURCE, using the self-build scr= ipt contained therein; use COMMIT as the version string. When CORE is true, b= uild -package modules under SOURCE using CORE, an instance of Guix." +package modules under SOURCE or if DIRECTORY under SOURCE/DIRECTORY using +CORE, an instance of Guix." ;; Running the self-build script makes it easier to update the build ;; procedure: the self-build script of the Guix-to-be-installed contains= the ;; right dependencies, build procedure, etc., which the Guix-in-use may = not @@ -293,19 +308,20 @@ package modules under SOURCE using CORE, an instance = of Guix." #:pull-version %pull-version)) =20 ;; Build a set of modules that extend Guix using the standard method. - (standard-module-derivation name source core dependencies))) + (standard-module-derivation name source directory core dependencies)= )) =20 (define* (build-channel-instance instance #:optional core (dependencies '())) "Return, as a monadic value, the derivation for INSTANCE, a channel instance. DEPENDENCIES is a list of extensions providing Guile modules th= at INSTANCE depends on." - (build-from-source (symbol->string - (channel-name (channel-instance-channel instance))) - (channel-instance-checkout instance) - #:commit (channel-instance-commit instance) - #:core core - #:dependencies dependencies)) + (let ((channel (channel-instance-channel instance))) + (build-from-source (symbol->string (channel-name channel)) + (channel-instance-checkout instance) + #:commit (channel-instance-commit instance) + #:core core + #:dependencies dependencies + #:directory (channel-directory channel)))) =20 (define (resolve-dependencies instances) "Return a procedure that, given one of the elements of INSTANCES, returns --=20 2.21.0 --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable --=20 Jan Nieuwenhuizen | GNU LilyPond http://lilypond.org Freelance IT http://JoyofSource.com | Avatar=C2=AE http://AvatarAcademy.com --=-=-=-- ------------=_1563059405-5684-1-- From unknown Fri Sep 05 20:55:09 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#36563] [PATCH] guix: Add directory to channel. Resent-From: Ludovic =?UTF-8?Q?Court=C3=A8s?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 14 Jul 2019 13:25:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 36563 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Jan Nieuwenhuizen Cc: 36563-done@debbugs.gnu.org Received: via spool by 36563-done@debbugs.gnu.org id=D36563.156311069010124 (code D ref 36563); Sun, 14 Jul 2019 13:25:02 +0000 Received: (at 36563-done) by debbugs.gnu.org; 14 Jul 2019 13:24:50 +0000 Received: from localhost ([127.0.0.1]:43999 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hmeUk-0002dE-3H for submit@debbugs.gnu.org; Sun, 14 Jul 2019 09:24:50 -0400 Received: from eggs.gnu.org ([209.51.188.92]:50527) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hmeUi-0002d1-Qo for 36563-done@debbugs.gnu.org; Sun, 14 Jul 2019 09:24:49 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:51440) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hmeUd-0001mV-LG; Sun, 14 Jul 2019 09:24:43 -0400 Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=59960 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1hmeUd-0006p3-3y; Sun, 14 Jul 2019 09:24:43 -0400 From: Ludovic =?UTF-8?Q?Court=C3=A8s?= References: <878st7dn7b.fsf@gnu.org> <87lfx29qjq.fsf@gnu.org> <87ef2ukkt8.fsf@gnu.org> <875zo58xsv.fsf@gnu.org> <87a7dhlef6.fsf@gnu.org> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 26 Messidor an 227 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: Sun, 14 Jul 2019 15:24:40 +0200 In-Reply-To: <87a7dhlef6.fsf@gnu.org> (Jan Nieuwenhuizen's message of "Sun, 14 Jul 2019 01:09:49 +0200") Message-ID: <87lfx07nqf.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.2 (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-Spam-Score: -2.3 (--) 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, Jan Nieuwenhuizen skribis: > Great, thanks; pushed to master as 53f21642729e4786141c072dd835b04cb85dfe= 28 Awesome, thank you! Ludo=E2=80=99.