bug-gsrc
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug-gsrc] Re: Nix on ‘fencepost’


From: Ludovic Courtès
Subject: [bug-gsrc] Re: Nix on ‘fencepost’
Date: Mon, 15 Mar 2010 22:51:16 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1 (gnu/linux)

Hello GNU SRC!  :-)

Brian Gough <address@hidden> writes:

> The next step will be to have a nix expression for all the GNU
> packages (and any necessary dependencies) that we can use to compile
> the "GNU Source Release Collection" and check that it all works
> together.
>
> We can continue this discussion on address@hidden as the
> installation on fencepost is part of the bootstrapping for that.

Sure.  Nixpkgs{,-libre} already show the status of GNU packages built
from recent tarballs.

The attached Guile script provides an approximate list of GNU packages
available in Nixpkgs.  The output for ‘trunk’ is shown below.

Thanks,
Ludo’.

acct-6.5.4
aspell-0.60.6
auctex-11.85
autoconf-2.13
autoconf-2.65
autogen-5.9.8
automake-1.10.3
automake-1.11.1
automake-1.9.6
ballandpaddle-0.8.1
bash-4.1-p2
bash-4.1-p2-interactive
binutils-2.20
bison-2.3
bison-2.4.1
ccrtp-1.7.0
cflow-1.3
classpath-0.98
coreutils-8.4
cpio-2.9
cppi-1.14
ddd-3.3.12
ddrescue-1.8
dejagnu-1.4.4
dico-2.0
diffutils-2.8.1
ed-1.4
eglibc-2.10
emacs-22.3
emacs-23.1
emacs-snapshot-23-2009-06-26
emms-3.0
enscript-1.6.5.1
fdisk-1.2.4
findutils-4.4.1
freefont-ttf-20090104
fribidi-0.10.9
gawk-3.1.7
gcc-cross-wrapper
gcc-wrapper-3.3.6
gcc-wrapper-3.4.6
gcc-wrapper-4.0.4
gcc-wrapper-4.1.2
gcc-wrapper-4.2.4
gcc-wrapper-4.3.4
gcc-wrapper-4.4.3
gcj-wrapper-4.4.3
gdb-7.0.1
gdbm-1.8.3
gengetopt-2.22.4
gettext-0.17
gfortran-wrapper-4.1.2
gfortran-wrapper-4.2.4
gfortran-wrapper-4.3.4
gfortran-wrapper-4.4.3
ghostscript-8.64.0
ghostscript-8.64.0-with-X
glibc-2.11.1
glibc-2.5
glibc-2.9
glibc-locales-2.11.1
global-5.7.5
gnash-0.8.6
gnat-wrapper-4.4.3
gnuchess-5.07
gnugrep-2.5.4
gnum4-1.4.13
gnumake-3.81
gnunet-0.8.1b
gnupg-2.0.12
gnused-4.1.5
gnused-4.2
gnutar-1.22
gnutls-2.8.5
gperf-3.0.4
gprolog-1.3.1
groff-1.20.1
grub-1.97.2
gsl-1.13
guile-1.8.7
guile-1.9.8
guile-gnome-platform-2.16.1
gv-3.6.8
gzip-1.3.13
hello-2.5
icecat-3.6
icecat-with-xulrunner-3.6
icecat-with-xulrunner-3.6-with-plugins
idutils-4.2
indent-2.2.10
inetutils-1.7
jwhois-4.0
libcdio-0.80
libextractor-0.5.23
libgcrypt-1.4.5
libiconv-1.13.1
libidn-1.18
libmicrohttpd-0.4.4
libsigsegv-2.8
libtasn1-2.4
libtool-1.5.26
libtool-2.2.6b
libunistring-0.9.2.1
libxmi-1.2
libzrtpcpp-1.4.1
lightning-1.2c
lsh-2.0.4
mailutils-2.1
mcron-1.0.4
miscfiles-1.4.2
mkisofs-1.13
mpfr-2.4.2
myserver-0.9.2
ncurses-5.7
nettle-2.0
parted-2.2
patch-2.6.1
plotutils-2.6
pth-2.0.7
pthread-man-pages-2.3.6
readline-6.1
remake-3.81-dbg-0.2
sharutils-4.9
texinfo-4.13a
texmacs-1.0.7
time-1.7
tla-1.3.5
wget-1.12
zile-2.3.15

(use-modules (sxml simple)
             (ice-9 popen)
             (ice-9 match)
             (srfi srfi-1))

(define (gnu? package)
  ;; Return the name of PACKAGE if it is a GNU package (according to a simple
  ;; heuristic.)  Otherwise return #f.
  (match package
    (('item ('@ attributes ...) body ...)
     (and (any (lambda (attr)
                 (match attr
                   (('meta ('@ attributes ...))
                    (let ((attr-name (car (assq-ref attributes 'name)))
                          (value     (car (assq-ref attributes 'value))))
                      (or (and (string=? attr-name "description")
                               (string-prefix? "GNU" value))
                          (and (string=? attr-name "homepage")
                               (string-contains value "www.gnu.org")))))
                   (else #f)))
               body)
          (car (assq-ref attributes 'name))))
    (else #f)))

;; Assume Nixpkgs is under ~/src/nixpkgs.
(let* ((home    (getenv "HOME"))
       (nixpkgs (string-append home "/src/nixpkgs"))
       (input   (open-pipe* OPEN_READ "nix-env"
                            "-qa" "*" "--meta" "--xml"
                            "-f" nixpkgs))
       (gnu     (filter-map gnu? (assq-ref (xml->sxml input) 'items))))
  (for-each (lambda (pkg)
              (format #t "~A~%" pkg))
            gnu))

reply via email to

[Prev in Thread] Current Thread [Next in Thread]