all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* 'gobject-introspection': No such file or directory
@ 2013-01-28 14:45 Nikita Karetnikov
  2013-01-28 16:46 ` Ludovic Courtès
  0 siblings, 1 reply; 7+ messages in thread
From: Nikita Karetnikov @ 2013-01-28 14:45 UTC (permalink / raw)
  To: bug-guix


[-- Attachment #1.1: Type: text/plain, Size: 1739 bytes --]

Hi,

'./pre-inst-env guix-build gobject-introspection' fails with the
following error:

  GICOMP gir/cairo-1.0.gir
Traceback (most recent call last):
  File "./g-ir-scanner", line 46, in <module>
    sys.exit(scanner_main(sys.argv))
  File "./giscanner/scannermain.py", line 413, in scanner_main
    ss = create_source_scanner(options, args)
  File "./giscanner/scannermain.py", line 335, in create_source_scanner
    ss.parse_files(filenames)
  File "./giscanner/sourcescanner.py", line 250, in parse_files
    self._parse(headers)
  File "./giscanner/sourcescanner.py", line 283, in _parse
    stdout=subprocess.PIPE)
  File "/nix/store/rvbri7f1j91nrblhw8xhp8ik3p89m5hh-python-2.7.3/lib/python2.7/subprocess.py", line 679, in __init__
    errread, errwrite)
  File "/nix/store/rvbri7f1j91nrblhw8xhp8ik3p89m5hh-python-2.7.3/lib/python2.7/subprocess.py", line 1249, in _execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory
make[2]: *** [GLib-2.0.gir] Error 1
make[2]: Leaving directory `/tmp/nix-build-gobject-introspection-1.34.2.drv-12/gobject-introspection-1.34.2'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/tmp/nix-build-gobject-introspection-1.34.2.drv-12/gobject-introspection-1.34.2'
make: *** [all] Error 2

The problem isn't version-specific.  I tested several versions.  I also
tried to remove all Cairo-related things from 'Makefile.in', but it
didn't help.  My guess is that our GLib causes the problem, but I'm not
sure.

Here's a snippet from Nixpkgs:

   # Tests depend on cairo, which is undesirable (it pulls in lots of
   # other dependencies).
   configureFlags = "--disable-tests";

AFAICT, this flag is useless because the tests are disabled by
default.

Nikita


[-- Attachment #1.2: gobject-introspection.scm --]
[-- Type: text/plain, Size: 2430 bytes --]

;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.

(define-module (gnu packages gobject-introspection)
  #:use-module (guix licenses)
  #:use-module (guix packages)
  #:use-module (guix download)
  #:use-module (guix build-system gnu)
  #:use-module (gnu packages bison)
  #:use-module (gnu packages flex)
  #:use-module (gnu packages glib)
  #:use-module (gnu packages libffi)
  #:use-module (gnu packages pkg-config)
  #:use-module (gnu packages python))

(define-public gobject-introspection
  (package
    (name "gobject-introspection")
    (version "1.34.2")
    (source
     (origin
      (method url-fetch)
      (uri (string-append "http://ftp.gnome.org/pub/gnome/sources/"
                          name "/1.34/" name "-" version ".tar.xz"))
      (sha256
       (base32
        "0a9lq0y67sr3g37l1hy0biqn046jr9wnd05hvwi8j8g2bjilhydw"))))
    (build-system gnu-build-system)
    (inputs
     `(("bison" ,bison)
       ("flex" ,flex)
       ("glib" ,glib)
       ("libffi" ,libffi)
       ("pkg-config" ,pkg-config)
       ("python" ,python)))
    (home-page
     "https://live.gnome.org/GObjectIntrospection")
    (synopsis
     "GObject introspection, a middleware layer between C libraries")
    (description
     "GObject introspection is a middleware layer between C
libraries (using GObject) and language bindings.  The C library can be
scanned at compile time and generate a metadata file, in addition to the
actual native C library.  Then at runtime, language bindings can read
this metadata and automatically provide bindings to call into the C
library.")
    (license '(lgpl2+ gpl2+ bsd-2))))

[-- Attachment #2: Type: application/pgp-signature, Size: 835 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: 'gobject-introspection': No such file or directory
  2013-01-28 14:45 'gobject-introspection': No such file or directory Nikita Karetnikov
@ 2013-01-28 16:46 ` Ludovic Courtès
  2013-02-01 18:26   ` Nikita Karetnikov
  0 siblings, 1 reply; 7+ messages in thread
From: Ludovic Courtès @ 2013-01-28 16:46 UTC (permalink / raw)
  To: Nikita Karetnikov; +Cc: bug-guix

Nikita Karetnikov <nikita@karetnikov.org> skribis:

>   File "/nix/store/rvbri7f1j91nrblhw8xhp8ik3p89m5hh-python-2.7.3/lib/python2.7/subprocess.py", line 679, in __init__
>     errread, errwrite)
>   File "/nix/store/rvbri7f1j91nrblhw8xhp8ik3p89m5hh-python-2.7.3/lib/python2.7/subprocess.py", line 1249, in _execute_child
>     raise child_exception
> OSError: [Errno 2] No such file or directory

Isn’t there by any chance a /bin/sh behind this?

You can check by running that in ‘strace -f’, from the failed build tree.

Ludo’.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: 'gobject-introspection': No such file or directory
  2013-01-28 16:46 ` Ludovic Courtès
@ 2013-02-01 18:26   ` Nikita Karetnikov
  2013-02-04 22:36     ` Ludovic Courtès
  0 siblings, 1 reply; 7+ messages in thread
From: Nikita Karetnikov @ 2013-02-01 18:26 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: bug-guix


[-- Attachment #1.1: Type: text/plain, Size: 301 bytes --]

> Isn’t there by any chance a /bin/sh behind this?

> You can check by running that in ‘strace -f’, from the failed build tree.

I haven't found anything strange in the output.  Could you help me to
investigate?

I've attached the recipe; it's possible that some phases aren't needed.


[-- Attachment #1.2: gobject-introspection.scm --]
[-- Type: text/plain, Size: 4001 bytes --]

;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.

(define-module (gnu packages gobject-introspection)
  #:use-module (guix licenses)
  #:use-module (guix packages)
  #:use-module (guix download)
  #:use-module (guix build-system gnu)
  #:use-module (gnu packages bison)
  #:use-module (gnu packages flex)
  #:use-module (gnu packages glib)
  #:use-module (gnu packages libffi)
  #:use-module (gnu packages pkg-config)
  #:use-module (gnu packages python))

(define-public gobject-introspection
  (package
    (name "gobject-introspection")
    (version "1.34.2")
    (source
     (origin
      (method url-fetch)
      (uri (string-append "http://ftp.gnome.org/pub/gnome/sources/"
                          name "/1.34/" name "-" version ".tar.xz"))
      (sha256
       (base32
        "0a9lq0y67sr3g37l1hy0biqn046jr9wnd05hvwi8j8g2bjilhydw"))))
    (build-system gnu-build-system)
    (arguments `(#:phases (alist-cons-before
                           'configure 'fix-sh
                           (lambda _
                             (substitute* '("configure"
                                            "build-aux/ltmain.sh")
                               (("-/bin/sh")
                                (string-append "-" (which "sh"))))
                             (substitute* '("configure"
                                            "build-aux/missing"
                                            "build-aux/ltmain.sh"
                                            "build-aux/config.guess")
                               ((" /bin/sh")
                                (string-append " " (which "sh")))))
                           (alist-cons-after
                            'configure 'fix-python
                            (lambda _
                              (substitute* '("tools/g-ir-annotation-tool.in"
                                             "tools/g-ir-scanner.in")
                                (("@PYTHON@") (which "python"))))
                           (alist-cons-before
                            'build 'fix-sh
                            (lambda _
                              (substitute* "libtool"
                                (("-/bin/sh")
                                 (string-append "-" (which "sh")))
                                ((" /bin/sh")
                                 (string-append " " (which "sh")))))
                            %standard-phases)))))
    (inputs
     `(("bison" ,bison)
       ("flex" ,flex)
       ("glib" ,glib)
       ("libffi" ,libffi)
       ("pkg-config" ,pkg-config)
       ("python" ,python)))
    (home-page
     "https://live.gnome.org/GObjectIntrospection")
    (synopsis
     "GObject introspection, a middleware layer between C libraries")
    (description
     "GObject introspection is a middleware layer between C
libraries (using GObject) and language bindings.  The C library can be
scanned at compile time and generate a metadata file, in addition to the
actual native C library.  Then at runtime, language bindings can read
this metadata and automatically provide bindings to call into the C
library.")
    (license (list lgpl2.0+ gpl2+ bsd-2))))

[-- Attachment #2: Type: application/pgp-signature, Size: 835 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: 'gobject-introspection': No such file or directory
  2013-02-01 18:26   ` Nikita Karetnikov
@ 2013-02-04 22:36     ` Ludovic Courtès
  2013-02-05  0:43       ` Nikita Karetnikov
  0 siblings, 1 reply; 7+ messages in thread
From: Ludovic Courtès @ 2013-02-04 22:36 UTC (permalink / raw)
  To: Nikita Karetnikov; +Cc: bug-guix

Nikita Karetnikov <nikita@karetnikov.org> skribis:

>> Isn’t there by any chance a /bin/sh behind this?

The build fails like this:

--8<---------------cut here---------------start------------->8---
  GICOMP gir/cairo-1.0.gir
Traceback (most recent call last):
  File "./g-ir-scanner", line 46, in <module>
    sys.exit(scanner_main(sys.argv))
  File "./giscanner/scannermain.py", line 413, in scanner_main
    ss = create_source_scanner(options, args)
  File "./giscanner/scannermain.py", line 335, in create_source_scanner
    ss.parse_files(filenames)
  File "./giscanner/sourcescanner.py", line 250, in parse_files
    self._parse(headers)
  File "./giscanner/sourcescanner.py", line 283, in _parse
    stdout=subprocess.PIPE)
  File "/nix/store/l99188aprsmzdkxkkmk2nibwwc0zz84c-python-2.7.3/lib/python2.7/subprocess.py", line 679, in __init__
    errread, errwrite)
  File "/nix/store/l99188aprsmzdkxkkmk2nibwwc0zz84c-python-2.7.3/lib/python2.7/subprocess.py", line 1249, in _execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory
--8<---------------cut here---------------end--------------->8---

Looking at subprocess.py above, I see this:

--8<---------------cut here---------------start------------->8---
            if shell:
                args = ["/bin/sh", "-c"] + args
                if executable:
                    args[0] = executable
--8<---------------cut here---------------end--------------->8---

The solution is to patch Python to refer to our ‘sh’ instead of /bin/sh
(as is done for Guile’s ice-9/popen.scm).

Can you do that?

TIA,
Ludo’.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: 'gobject-introspection': No such file or directory
  2013-02-04 22:36     ` Ludovic Courtès
@ 2013-02-05  0:43       ` Nikita Karetnikov
  2013-02-05  9:00         ` Ludovic Courtès
  0 siblings, 1 reply; 7+ messages in thread
From: Nikita Karetnikov @ 2013-02-05  0:43 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: bug-guix

[-- Attachment #1: Type: text/plain, Size: 994 bytes --]

> The solution is to patch Python to refer to our ‘sh’ instead of /bin/sh
> (as is done for Guile’s ice-9/popen.scm).

> Can you do that?

I changed 'arguments', but 'gobject-introspection' failed with the same
error.

python.scm:

    (arguments `(#:tests? #f ; XXX: some tests fail
                 #:phases (alist-cons-before
                           'configure 'pre-configure
                           (lambda* (#:key inputs #:allow-other-keys)
                             (let ((bash (assoc-ref inputs "bash")))
                               (substitute* "Lib/subprocess.py"
                                 (("/bin/sh")
                                  (string-append bash "/bin/bash")))))
                           %standard-phases)))

subprocess.py:

            if shell:
                args = ["/nix/store/4mg8b8vvmava68y64qmm70gqfnhhjzmx-bash-4.2/bin/bash", "-c"] + args
                if executable:
                    args[0] = executable

[-- Attachment #2: Type: application/pgp-signature, Size: 835 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: 'gobject-introspection': No such file or directory
  2013-02-05  0:43       ` Nikita Karetnikov
@ 2013-02-05  9:00         ` Ludovic Courtès
  2013-02-07  8:56           ` Nikita Karetnikov
  0 siblings, 1 reply; 7+ messages in thread
From: Ludovic Courtès @ 2013-02-05  9:00 UTC (permalink / raw)
  To: Nikita Karetnikov; +Cc: bug-guix

Nikita Karetnikov <nikita@karetnikov.org> skribis:

>> The solution is to patch Python to refer to our ‘sh’ instead of /bin/sh
>> (as is done for Guile’s ice-9/popen.scm).
>
>> Can you do that?
>
> I changed 'arguments', but 'gobject-introspection' failed with the same
> error.
>
> python.scm:
>
>     (arguments `(#:tests? #f ; XXX: some tests fail
>                  #:phases (alist-cons-before
>                            'configure 'pre-configure
>                            (lambda* (#:key inputs #:allow-other-keys)
>                              (let ((bash (assoc-ref inputs "bash")))
>                                (substitute* "Lib/subprocess.py"
>                                  (("/bin/sh")
>                                   (string-append bash "/bin/bash")))))
>                            %standard-phases)))

Good.  You can already commit that one (but please make it
(string-append bash "/bin/sh") rather.)

> subprocess.py:
>
>             if shell:
>                 args = ["/nix/store/4mg8b8vvmava68y64qmm70gqfnhhjzmx-bash-4.2/bin/bash", "-c"] + args
>                 if executable:
>                     args[0] = executable

Are you looking at the subprocess.py that’s actually mentioned in the
gobject-introspection backtrace?

If yes, then it likely means that it’s the caller–i.e., some .py file in
gobject-introspection–that’s passing /bin/sh somewhere.  Can you check
the files mentioned in the backtrace?

HTH,
Ludo’.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: 'gobject-introspection': No such file or directory
  2013-02-05  9:00         ` Ludovic Courtès
@ 2013-02-07  8:56           ` Nikita Karetnikov
  0 siblings, 0 replies; 7+ messages in thread
From: Nikita Karetnikov @ 2013-02-07  8:56 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: bug-guix


[-- Attachment #1.1: Type: text/plain, Size: 820 bytes --]

> Good.  You can already commit that one (but please make it
> (string-append bash "/bin/sh") rather.)

I found more and added them to 'python.scm'.

There are other files that use faulty shells, but I'm not sure that they
are really needed (e.g., platform-specific ones).  Could you check them
using 'grep -r "/bin/sh" .'?

> Are you looking at the subprocess.py that’s actually mentioned in the
> gobject-introspection backtrace?

Yes.

> If yes, then it likely means that it’s the caller–i.e., some .py file in
> gobject-introspection–that’s passing /bin/sh somewhere.  Can you check
> the files mentioned in the backtrace?

Those are fine (I guess).  The only file I found is 'm4/libtool.m4'.  I
added it, but 'build' failed again.

I'm attaching both recipes.  Please have a look.


[-- Attachment #1.2: gobject-introspection.scm --]
[-- Type: text/plain, Size: 4062 bytes --]

;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.

(define-module (gnu packages gobject-introspection)
  #:use-module (guix licenses)
  #:use-module (guix packages)
  #:use-module (guix download)
  #:use-module (guix build-system gnu)
  #:use-module (gnu packages bison)
  #:use-module (gnu packages flex)
  #:use-module (gnu packages glib)
  #:use-module (gnu packages libffi)
  #:use-module (gnu packages pkg-config)
  #:use-module (gnu packages python))

(define-public gobject-introspection
  (package
    (name "gobject-introspection")
    (version "1.34.2")
    (source
     (origin
      (method url-fetch)
      (uri (string-append "http://ftp.gnome.org/pub/gnome/sources/"
                          name "/1.34/" name "-" version ".tar.xz"))
      (sha256
       (base32
        "0a9lq0y67sr3g37l1hy0biqn046jr9wnd05hvwi8j8g2bjilhydw"))))
    (build-system gnu-build-system)
    (arguments `(#:phases (alist-cons-before
                           'configure 'fix-sh
                           (lambda _
                             (substitute* '("configure"
                                            "build-aux/ltmain.sh"
                                            "m4/libtool.m4")
                               (("-/bin/sh")
                                (string-append "-" (which "sh"))))
                             (substitute* '("configure"
                                            "build-aux/missing"
                                            "build-aux/ltmain.sh"
                                            "build-aux/config.guess")
                               ((" /bin/sh")
                                (string-append " " (which "sh")))))
                           (alist-cons-after
                            'configure 'fix-python
                            (lambda _
                              (substitute* '("tools/g-ir-annotation-tool.in"
                                             "tools/g-ir-scanner.in")
                                (("@PYTHON@") (which "python"))))
                           (alist-cons-before
                            'build 'fix-sh
                            (lambda _
                              (substitute* "libtool"
                                (("-/bin/sh")
                                 (string-append "-" (which "sh")))
                                ((" /bin/sh")
                                 (string-append " " (which "sh")))))
                            %standard-phases)))))
    (inputs
     `(("bison" ,bison)
       ("flex" ,flex)
       ("glib" ,glib)
       ("libffi" ,libffi)
       ("pkg-config" ,pkg-config)
       ("python" ,python)))
    (home-page
     "https://live.gnome.org/GObjectIntrospection")
    (synopsis
     "GObject introspection, a middleware layer between C libraries")
    (description
     "GObject introspection is a middleware layer between C
libraries (using GObject) and language bindings.  The C library can be
scanned at compile time and generate a metadata file, in addition to the
actual native C library.  Then at runtime, language bindings can read
this metadata and automatically provide bindings to call into the C
library.")
    (license (list lgpl2.0+ gpl2+ bsd-2))))

[-- Attachment #1.3: python.scm --]
[-- Type: text/plain, Size: 3247 bytes --]

;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.

(define-module (gnu packages python)
  #:use-module ((guix licenses) #:select (psfl))
  #:use-module (gnu packages compression)
  #:use-module (gnu packages openssl)
  #:use-module (guix packages)
  #:use-module (guix download)
  #:use-module (guix build-system gnu))

(define-public python
  (package
    (name "python")
    (version "2.7.3")
    (source
     (origin
      (method url-fetch)
      (uri (string-append "http://www.python.org/ftp/python/"
                          version "/Python-" version ".tar.xz"))
      (sha256
       (base32
        "11f9aw855lrmknr6c82gm1ijr3n0smc6idyp94y7774yivjnplv1"))))
    (build-system gnu-build-system)
    (arguments `(#:tests? #f ; XXX: some tests fail
                 #:phases (alist-cons-before
                           'configure 'pre-configure
                           (lambda* (#:key inputs #:allow-other-keys)
                             (let ((bash (assoc-ref inputs "bash")))
                               (substitute*
                                 '("Makefile.pre.in"
                                   "configure"
                                   "Lib/popen2.py"
                                   "Lib/subprocess.py"
                                   "Modules/_ctypes/libffi/m4/libtool.m4"
                                   "Modules/_ctypes/libffi/config.guess"
                                   "Modules/_ctypes/libffi/ltmain.sh"
                                   "Modules/_ctypes/libffi/configure")
                                 (("/bin/sh")
                                  (string-append bash "/bin/sh")))))
                           %standard-phases)))
    (inputs
     `(("zlib" ,zlib)
       ("openssl" ,openssl)
       ("bzip2" ,bzip2)))
    (home-page "http://python.org")
    (synopsis
     "Python, a high-level dynamically-typed programming language")
    (description
     "Python is a remarkably powerful dynamic programming language that
is used in a wide variety of application domains.  Some of its key
distinguishing features include: clear, readable syntax; strong
introspection capabilities; intuitive object orientation; natural
expression of procedural code; full modularity, supporting hierarchical
packages; exception-based error handling; and very high level dynamic
data types.")
    (license psfl)))

[-- Attachment #2: Type: application/pgp-signature, Size: 835 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2013-02-07  8:56 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-01-28 14:45 'gobject-introspection': No such file or directory Nikita Karetnikov
2013-01-28 16:46 ` Ludovic Courtès
2013-02-01 18:26   ` Nikita Karetnikov
2013-02-04 22:36     ` Ludovic Courtès
2013-02-05  0:43       ` Nikita Karetnikov
2013-02-05  9:00         ` Ludovic Courtès
2013-02-07  8:56           ` Nikita Karetnikov

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.