diff options
111 files changed, 1609 insertions, 633 deletions
diff --git a/.gitignore b/.gitignore index b6786d212b..0b21a03ece 100644 --- a/.gitignore +++ b/.gitignore @@ -64,3 +64,4 @@ stamp-h[0-9] /nix/scripts/list-runtime-roots /test-env /nix/nix-setuid-helper/nix-setuid-helper.cc +/guix-gc diff --git a/Makefile.am b/Makefile.am index 41337fd272..4e80325e98 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,26 +1,27 @@ -# Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -# Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> +# GNU Guix --- Functional package management for GNU +# Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org> # -# This file is part of Guix. +# This file is part of GNU Guix. # -# Guix is free software; you can redistribute it and/or modify it +# 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. # -# Guix is distributed in the hope that it will be useful, but +# 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 Guix. If not, see <http://www.gnu.org/licenses/>. +# along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. bin_SCRIPTS = \ guix-build \ guix-download \ guix-import \ - guix-package + guix-package \ + guix-gc MODULES = \ guix/base32.scm \ @@ -44,6 +45,7 @@ MODULES = \ guix.scm \ distro.scm \ distro/packages/acl.scm \ + distro/packages/algebra.scm \ distro/packages/attr.scm \ distro/packages/autotools.scm \ distro/packages/base.scm \ @@ -51,8 +53,10 @@ MODULES = \ distro/packages/bdw-gc.scm \ distro/packages/bison.scm \ distro/packages/bootstrap.scm \ + distro/packages/check.scm \ distro/packages/compression.scm \ distro/packages/cpio.scm \ + distro/packages/bdb.scm \ distro/packages/ddrescue.scm \ distro/packages/ed.scm \ distro/packages/flex.scm \ @@ -62,18 +66,23 @@ MODULES = \ distro/packages/gnupg.scm \ distro/packages/gnutls.scm \ distro/packages/gperf.scm \ + distro/packages/gsasl.scm \ distro/packages/guile.scm \ distro/packages/help2man.scm \ + distro/packages/idutils.scm \ distro/packages/ld-wrapper.scm \ distro/packages/less.scm \ distro/packages/libffi.scm \ + distro/packages/libidn.scm \ distro/packages/libsigsegv.scm \ distro/packages/libunistring.scm \ + distro/packages/libusb.scm \ distro/packages/linux.scm \ distro/packages/lout.scm \ distro/packages/lsh.scm \ distro/packages/m4.scm \ distro/packages/make-bootstrap.scm \ + distro/packages/mit-krb5.scm \ distro/packages/multiprecision.scm \ distro/packages/nano.scm \ distro/packages/ncurses.scm \ @@ -84,6 +93,7 @@ MODULES = \ distro/packages/pth.scm \ distro/packages/readline.scm \ distro/packages/recutils.scm \ + distro/packages/rsync.scm \ distro/packages/shishi.scm \ distro/packages/system.scm \ distro/packages/texinfo.scm \ @@ -183,6 +193,7 @@ TESTS = \ tests/union.scm \ tests/guix-build.sh \ tests/guix-download.sh \ + tests/guix-gc.sh \ tests/guix-package.sh TEST_EXTENSIONS = .scm .sh diff --git a/build-aux/download.scm b/build-aux/download.scm index aad4fe3c76..97a74b123a 100644 --- a/build-aux/download.scm +++ b/build-aux/download.scm @@ -1,20 +1,20 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012, 2013 Ludovic Courtès <ludo@gnu.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. ;;; ;;; Download a binary file from an external source. diff --git a/configure.ac b/configure.ac index bebb9885c4..0c3a9e5f6f 100644 --- a/configure.ac +++ b/configure.ac @@ -114,10 +114,12 @@ AC_CONFIG_FILES([Makefile guix-download guix-import guix-package + guix-gc pre-inst-env test-env]) AC_CONFIG_COMMANDS([commands-exec], - [chmod +x guix-build guix-download guix-import guix-package pre-inst-env test-env]) + [chmod +x guix-build guix-download guix-import guix-package guix-gc \ + pre-inst-env test-env]) AC_OUTPUT diff --git a/daemon.am b/daemon.am index 26b07c4105..b1265b370a 100644 --- a/daemon.am +++ b/daemon.am @@ -1,20 +1,20 @@ -# Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -# Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> +# GNU Guix --- Functional package management for GNU +# Copyright © 2012 Ludovic Courtès <ludo@gnu.org> # -# This file is part of Guix. +# This file is part of GNU Guix. # -# Guix is free software; you can redistribute it and/or modify it +# 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. # -# Guix is distributed in the hope that it will be useful, but +# 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 Guix. If not, see <http://www.gnu.org/licenses/>. +# along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. # # Integration of the `guix-daemon' code taken from upstream Nix. @@ -175,5 +175,7 @@ TESTS += \ tests/guix-daemon.sh clean-local: - -find "$(GUIX_TEST_ROOT)" | xargs chmod +w + -if test -d "$(GUIX_TEST_ROOT)"; then \ + find "$(GUIX_TEST_ROOT)" | xargs chmod +w; \ + fi -rm -rf "$(GUIX_TEST_ROOT)" diff --git a/distro.scm b/distro.scm index f91b0ee96b..c2d3d1fa40 100644 --- a/distro.scm +++ b/distro.scm @@ -1,20 +1,20 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Ludovic Courtès <ludo@gnu.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (distro) #:use-module (guix packages) diff --git a/distro/packages/acl.scm b/distro/packages/acl.scm index a16ee8f35c..068789b562 100644 --- a/distro/packages/acl.scm +++ b/distro/packages/acl.scm @@ -1,20 +1,20 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012 Nikita Karetnikov <nikita@karetnikov.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (distro packages acl) #:use-module (guix licenses) diff --git a/distro/packages/algebra.scm b/distro/packages/algebra.scm new file mode 100644 index 0000000000..f348955094 --- /dev/null +++ b/distro/packages/algebra.scm @@ -0,0 +1,76 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Andreas Enge <andreas@enge.fr> +;;; +;;; 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 (distro packages algebra) + #:use-module (distro) + #:use-module (distro packages multiprecision) + #:use-module (guix licenses) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu)) + + +(define-public mpfrcx + (package + (name "mpfrcx") + (version "0.4.1") + (source (origin + (method url-fetch) + (uri (string-append + "http://www.multiprecision.org/mpfrcx/download/mpfrcx-" + version ".tar.gz")) + (sha256 + (base32 + "1rrc75chxyicqjgg5mfhgbz7p9mx1fgh0qlx14a82m25vfhifnd1")))) + (build-system gnu-build-system) + (inputs `(("gmp" ,gmp) + ("mpfr" ,mpfr) + ("mpc" ,mpc))) + (synopsis "mpfrcx, a library for the arithmetic of univariate polynomials +over arbitrary precision real or complex numbers") + (description + "mpfrcx is a library for the arithmetic of univariate polynomials over +arbitrary precision real (mpfr) or complex (mpc) numbers, without control +on the rounding. For the time being, only the few functions needed to +implement the floating point approach to complex multiplication are +implemented. On the other hand, these comprise asymptotically fast +multiplication routines such as Toom–Cook and the FFT. ") + (license lgpl2.1+) + (home-page "http://mpfrcx.multiprecision.org/"))) + + +(define-public fplll + (package + (name "fplll") + (version "4.0.1") + (source (origin + (method url-fetch) + (uri (string-append + "http://perso.ens-lyon.fr/damien.stehle/fplll/libfplll-" + version ".tar.gz")) + (sha256 (base32 + "122bpqdlikshhd7nmq0l5qfc0agyk7x21gvplv1l9hb77l8cy9rw")))) + (build-system gnu-build-system) + (inputs `(("gmp" ,gmp) + ("mpfr" ,mpfr))) + (synopsis "fplll, a library for LLL-reduction of euclidean lattices") + (description + "fplll LLL-reduces euclidean lattices. Since version 3, it can also +solve the shortest vector problem.") + (license lgpl2.1+) + (home-page "http://perso.ens-lyon.fr/damien.stehle/fplll/"))) diff --git a/distro/packages/attr.scm b/distro/packages/attr.scm index c61f4d7031..ae0d257dbe 100644 --- a/distro/packages/attr.scm +++ b/distro/packages/attr.scm @@ -1,21 +1,21 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012 Nikita Karetnikov <nikita@karetnikov.org> -;;; Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org> +;;; Copyright © 2012 Ludovic Courtès <ludo@gnu.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (distro packages attr) #:use-module (guix licenses) diff --git a/distro/packages/autotools.scm b/distro/packages/autotools.scm index 32e50a5b12..06568b2224 100644 --- a/distro/packages/autotools.scm +++ b/distro/packages/autotools.scm @@ -1,21 +1,21 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012 Nikita Karetnikov <nikita@karetnikov.org> -;;; Copyright (C) 2012, 2013 Ludovic Courtès <ludo@gnu.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org> +;;; Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (distro packages autotools) #:use-module (guix licenses) @@ -62,7 +62,7 @@ can use, in the form of M4 macro calls.") (define-public automake (package (name "automake") - (version "1.12.5") + (version "1.12.6") (source (origin (method url-fetch) @@ -70,7 +70,7 @@ can use, in the form of M4 macro calls.") version ".tar.xz")) (sha256 (base32 - "1k4pa3rmj626n5d39rc9041dc71lv8nzd341k53dw07iflkwinim")))) + "1ynvca8z4aqcwr94rf7j1bfiid2w9w250y9qhnyj9vmi8lhsnd7q")))) (build-system gnu-build-system) (inputs `(("autoconf" ,autoconf) diff --git a/distro/packages/base.scm b/distro/packages/base.scm index 63eea603ef..cb0cb0fd79 100644 --- a/distro/packages/base.scm +++ b/distro/packages/base.scm @@ -1,21 +1,21 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012, 2013 Ludovic Courtès <ludo@gnu.org> -;;; Copyright (C) 2012 Nikita Karetnikov <nikita@karetnikov.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (distro packages base) #:use-module (guix licenses) diff --git a/distro/packages/bash.scm b/distro/packages/bash.scm index 429a683920..0306c7197e 100644 --- a/distro/packages/bash.scm +++ b/distro/packages/bash.scm @@ -1,20 +1,20 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Ludovic Courtès <ludo@gnu.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (distro packages bash) #:use-module (guix licenses) diff --git a/distro/packages/bdb.scm b/distro/packages/bdb.scm new file mode 100644 index 0000000000..6d6adc000c --- /dev/null +++ b/distro/packages/bdb.scm @@ -0,0 +1,55 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Andreas Enge <andreas@enge.fr> +;;; +;;; 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 (distro packages bdb) + #:use-module (distro) + #:use-module (guix licenses) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu)) + +(define-public bdb + (package + (name "bdb") + (version "5.3.21") + (source (origin + (method url-fetch) + (uri (string-append "http://download.oracle.com/berkeley-db/db-" version + ".tar.gz")) + (sha256 (base32 + "1f2g2612lf8djbwbwhxsvmffmf9d7693kh2l20195pqp0f9jmnfx")))) + (build-system gnu-build-system) + (arguments + (lambda (system) + `(#:tests? #f ; no check target available + #:phases + (alist-replace + 'configure + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (zero? + (system* "./dist/configure" + (string-append "--prefix=" out))))) + %standard-phases)))) + (synopsis "db, the Berkeley database") + (description + "Berkeley DB is an embeddable database allowing developers the choice of +SQL, Key/Value, XML/XQuery or Java Object storage for their data model.") + (license (bsd-style "file://LICENSE" + "See LICENSE in the distribution.")) + (home-page "http://www.oracle.com/us/products/database/berkeley-db/overview/index.html"))) diff --git a/distro/packages/bdw-gc.scm b/distro/packages/bdw-gc.scm index ea5470100d..5a397eaaa3 100644 --- a/distro/packages/bdw-gc.scm +++ b/distro/packages/bdw-gc.scm @@ -1,20 +1,20 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Ludovic Courtès <ludo@gnu.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (distro packages bdw-gc) #:use-module (guix licenses) diff --git a/distro/packages/bison.scm b/distro/packages/bison.scm index 2fc897fadf..b3111c30ab 100644 --- a/distro/packages/bison.scm +++ b/distro/packages/bison.scm @@ -1,20 +1,20 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Ludovic Courtès <ludo@gnu.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (distro packages bison) #:use-module (guix licenses) diff --git a/distro/packages/bootstrap.scm b/distro/packages/bootstrap.scm index 2d35d3cdce..9bf815b2d7 100644 --- a/distro/packages/bootstrap.scm +++ b/distro/packages/bootstrap.scm @@ -1,20 +1,20 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012, 2013 Ludovic Courtès <ludo@gnu.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (distro packages bootstrap) #:use-module (guix licenses) diff --git a/distro/packages/check.scm b/distro/packages/check.scm new file mode 100644 index 0000000000..dd2d588fc3 --- /dev/null +++ b/distro/packages/check.scm @@ -0,0 +1,49 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 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 (distro packages check) + #:use-module (distro) + #:use-module (guix licenses) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu)) + +(define-public check + (package + (name "check") + (version "0.9.9") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/check/" + version "/check-" version ".tar.gz")) + (sha256 + (base32 + "1jcahzrvxcnp5chdn2x46l0y4aba8d8yd70lljfin7h5knxrlyhs")))) + (build-system gnu-build-system) + (home-page "http://check.sourceforge.net/") + (synopsis + "Check, a unit testing framework for C") + (description + "Check is a unit testing framework for C. It features a simple +interface for defining unit tests, putting little in the way of the +developer. Tests are run in a separate address space, so Check can +catch both assertion failures and code errors that cause segmentation +faults or other signals. The output from unit tests can be used within +source code editors and IDEs.") + (license lgpl2.1+))) diff --git a/distro/packages/compression.scm b/distro/packages/compression.scm index f85aa63f19..51a2d70e2d 100644 --- a/distro/packages/compression.scm +++ b/distro/packages/compression.scm @@ -1,20 +1,20 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Ludovic Courtès <ludo@gnu.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (distro packages compression) #:use-module ((guix licenses) diff --git a/distro/packages/cpio.scm b/distro/packages/cpio.scm index cb6d138ec5..07c0ec3f53 100644 --- a/distro/packages/cpio.scm +++ b/distro/packages/cpio.scm @@ -1,20 +1,20 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012 Nikita Karetnikov <nikita@karetnikov.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (distro packages cpio) #:use-module (guix licenses) diff --git a/distro/packages/ddrescue.scm b/distro/packages/ddrescue.scm index cd302d144b..97bfd78309 100644 --- a/distro/packages/ddrescue.scm +++ b/distro/packages/ddrescue.scm @@ -1,20 +1,20 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012 Nikita Karetnikov <nikita@karetnikov.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (distro packages ddrescue) #:use-module (guix licenses) diff --git a/distro/packages/ed.scm b/distro/packages/ed.scm index d3723d41f2..614b3ae645 100644 --- a/distro/packages/ed.scm +++ b/distro/packages/ed.scm @@ -1,20 +1,20 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012 Nikita Karetnikov <nikita@karetnikov.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (distro packages ed) #:use-module (guix licenses) diff --git a/distro/packages/flex.scm b/distro/packages/flex.scm index cf3c69b12a..bbfb7f026e 100644 --- a/distro/packages/flex.scm +++ b/distro/packages/flex.scm @@ -1,20 +1,20 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Ludovic Courtès <ludo@gnu.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (distro packages flex) #:use-module (guix licenses) diff --git a/distro/packages/gawk.scm b/distro/packages/gawk.scm index d875386fc2..0acdbea3e8 100644 --- a/distro/packages/gawk.scm +++ b/distro/packages/gawk.scm @@ -1,20 +1,20 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Ludovic Courtès <ludo@gnu.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (distro packages gawk) #:use-module (guix licenses) diff --git a/distro/packages/gdbm.scm b/distro/packages/gdbm.scm index d62bb7491f..47f1b95e95 100644 --- a/distro/packages/gdbm.scm +++ b/distro/packages/gdbm.scm @@ -1,20 +1,20 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Ludovic Courtès <ludo@gnu.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (distro packages gdbm) #:use-module (guix licenses) diff --git a/distro/packages/gettext.scm b/distro/packages/gettext.scm index 1ceae119f9..e4d4acc615 100644 --- a/distro/packages/gettext.scm +++ b/distro/packages/gettext.scm @@ -1,20 +1,20 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012 Nikita Karetnikov <nikita@karetnikov.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (distro packages gettext) #:use-module (guix licenses) diff --git a/distro/packages/gnupg.scm b/distro/packages/gnupg.scm index eb792e31e0..5fdf19187d 100644 --- a/distro/packages/gnupg.scm +++ b/distro/packages/gnupg.scm @@ -1,20 +1,20 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Ludovic Courtès <ludo@gnu.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (distro packages gnupg) #:use-module (guix licenses) diff --git a/distro/packages/gnutls.scm b/distro/packages/gnutls.scm index 65134bdded..3c5facd1f2 100644 --- a/distro/packages/gnutls.scm +++ b/distro/packages/gnutls.scm @@ -1,20 +1,20 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Ludovic Courtès <ludo@gnu.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (distro packages gnutls) #:use-module (guix licenses) @@ -31,7 +31,7 @@ (define-public libtasn1 (package (name "libtasn1") - (version "3.0") + (version "3.2") (source (origin (method url-fetch) @@ -39,7 +39,7 @@ version ".tar.gz")) (sha256 (base32 - "00czfs2hlxb1nrnqicvwpm4ybpwg3hg5yj0a2nf13zrgkfdlkjzi")))) + "0gvgndypwicchf7m660zh7jdgmkfj9g9xavpcc08pyd0120y0bk7")))) (build-system gnu-build-system) (home-page "http://www.gnu.org/software/libtasn1/") (synopsis "GNU Libtasn1, an ASN.1 library") @@ -52,7 +52,7 @@ portable, and only require an ANSI C89 platform.") (define-public gnutls (package (name "gnutls") - (version "3.1.3") + (version "3.1.5") (source (origin (method url-fetch) @@ -62,7 +62,7 @@ portable, and only require an ANSI C89 platform.") ".tar.xz")) (sha256 (base32 - "0fff9frz0ycbnppfn0w4a2s9x27k21l4hh9zbax3v7a8cg33dcpw")))) + "1lz05l19s64s5hmhc9fh48ip6izy80bdiv0pwkfg9fwwvn25j29g")))) (build-system gnu-build-system) ;; Build of the Guile bindings is not parallel-safe. See diff --git a/distro/packages/gperf.scm b/distro/packages/gperf.scm index 509407398d..f1827e0a65 100644 --- a/distro/packages/gperf.scm +++ b/distro/packages/gperf.scm @@ -1,20 +1,20 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Ludovic Courtès <ludo@gnu.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (distro packages gperf) #:use-module (guix licenses) diff --git a/distro/packages/gsasl.scm b/distro/packages/gsasl.scm new file mode 100644 index 0000000000..43530b57ad --- /dev/null +++ b/distro/packages/gsasl.scm @@ -0,0 +1,113 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Andreas Enge <andreas@enge.fr> +;;; +;;; 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 (distro packages gsasl) + #:use-module (distro) + #:use-module ((distro packages compression) + #:renamer (symbol-prefix-proc 'guix:)) + #:use-module (distro packages gnutls) + #:use-module (distro packages libidn) + #:use-module (distro packages nettle) + #:use-module (distro packages shishi) + #:use-module (guix licenses) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu)) + +(define-public libntlm + (package + (name "libntlm") + (version "1.3") + (source (origin + (method url-fetch) + (uri (string-append "http://www.nongnu.org/libntlm/releases/libntlm-" version + ".tar.gz")) + (sha256 (base32 + "101pr110ardcj2di940g6vaqifsaxc44h6hjn81l63dvmkj5a6ga")))) + (build-system gnu-build-system) + (synopsis "Libntlm, a library that implements NTLM authentication") + (description + "Libntlm is a library that implements NTLM authentication") + (license lgpl2.1+) + (home-page "http://www.nongnu.org/libntlm/"))) + +(define-public gss + (package + (name "gss") + (version "1.0.2") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/gss/gss-" version + ".tar.gz")) + (sha256 (base32 + "1qa8lbkzi6ilfggx7mchfzjnchvhwi68rck3jf9j4425ncz7zsd9")))) + (build-system gnu-build-system) + (inputs `(("nettle" ,nettle) + ("shishi" ,shishi) + ("zlib" ,guix:zlib) + )) + (synopsis "GNU GSS (Generic Security Service), a free implementatio of RFC 2743/2744") + (description + "GNU GSS is an implementation of the Generic Security Service Application +Program Interface (GSS-API). GSS-API is used by network servers to provide +security services, e.g., to authenticate SMTP/IMAP clients against +SMTP/IMAP servers. GSS consists of a library and a manual.") + (license gpl3+) + (home-page "http://www.gnu.org/software/gss/"))) + +(define-public gsasl + (package + (name "gsasl") + (version "1.8.0") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/gsasl/gsasl-" version + ".tar.gz")) + (sha256 (base32 + "1rci64cxvcfr8xcjpqc4inpfq7aw4snnsbf5xz7d30nhvv8n40ii")))) + (build-system gnu-build-system) + (inputs `(("libidn" ,libidn) + ("libntlm" ,libntlm) + ("gnutls" ,gnutls) + ("gss" ,gss) + ("zlib" ,guix:zlib) + )) + (synopsis "GNU SASL, an implementation of the Simple Authentication and Security Layer framework") + (description + "GNU SASL is an implementation of the Simple Authentication and Security +Layer framework and a few common SASL mechanisms. SASL is used by network +servers (e.g., IMAP, SMTP) to request authentication from clients, and in +clients to authenticate against servers. + +GNU SASL consists of a library (libgsasl), a command line utility (gsasl) +to access the library from the shell, and a manual. The library includes +support for the framework (with authentication functions and application +data privacy and integrity functions) and at least partial support for the +CRAM-MD5, EXTERNAL, GSSAPI, ANONYMOUS, PLAIN, SECURID, DIGEST-MD5, +SCRAM-SHA-1, SCRAM-SHA-1-PLUS, LOGIN, and NTLM mechanisms. + +The library is portable because it does not do network communication by +itself, but rather leaves it up to the calling application. The library is +flexible with regards to the authorization infrastructure used, as it +utilises callbacks into the application to decide whether an user is +authorised or not. + +The gsasl package distribution includes the library part as well, +so there is no need to install two packages.") + (license gpl3+) + (home-page "http://www.gnu.org/software/gsasl/"))) diff --git a/distro/packages/guile.scm b/distro/packages/guile.scm index 68c2fcc2ef..9964f9d9f0 100644 --- a/distro/packages/guile.scm +++ b/distro/packages/guile.scm @@ -1,20 +1,20 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Ludovic Courtès <ludo@gnu.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (distro packages guile) #:use-module (guix licenses) diff --git a/distro/packages/help2man.scm b/distro/packages/help2man.scm index 0c3dee24d1..191ef25c85 100644 --- a/distro/packages/help2man.scm +++ b/distro/packages/help2man.scm @@ -1,20 +1,20 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Ludovic Courtès <ludo@gnu.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (distro packages help2man) #:use-module (guix licenses) diff --git a/distro/packages/idutils.scm b/distro/packages/idutils.scm new file mode 100644 index 0000000000..f4c7005f99 --- /dev/null +++ b/distro/packages/idutils.scm @@ -0,0 +1,65 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 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 (distro packages idutils) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu) + #:use-module (guix licenses) + #:use-module (distro)) + +(define-public idutils + (package + (name "idutils") + (version "4.6") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://gnu/idutils/idutils-" + version ".tar.xz")) + (sha256 + (base32 + "1hmai3422iaqnp34kkzxdnywl7n7pvlxp11vrw66ybxn9wxg90c1")))) + (build-system gnu-build-system) + (inputs `(;; TODO: Add Emacs as an input for byte-compilation. + ;; ("emacs" ,emacs) + ("patch/gets" + ,(search-patch "diffutils-gets-undeclared.patch")))) + (arguments `(#:patches (list (assoc-ref %build-inputs "patch/gets")))) + (home-page "http://www.gnu.org/software/idutils/") + (synopsis "GNU Idutils, a text searching utility") + (description + "An \"ID database\" is a binary file containing a list of file +names, a list of tokens, and a sparse matrix indicating which +tokens appear in which files. + +With this database and some tools to query it, many +text-searching tasks become simpler and faster. For example, +you can list all files that reference a particular `\\#include' +file throughout a huge source hierarchy, search for all the +memos containing references to a project, or automatically +invoke an editor on all files containing references to some +function or variable. Anyone with a large software project to +maintain, or a large set of text files to organize, can benefit +from the ID utilities. + +Although the name `ID' is short for `identifier', the ID +utilities handle more than just identifiers; they also treat +other kinds of tokens, most notably numeric constants, and the +contents of certain character strings.") + (license gpl3+))) diff --git a/distro/packages/less.scm b/distro/packages/less.scm index 59c4149aad..1f05b50e1e 100644 --- a/distro/packages/less.scm +++ b/distro/packages/less.scm @@ -1,20 +1,20 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012 Nikita Karetnikov <nikita@karetnikov.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (distro packages less) #:use-module (guix licenses) diff --git a/distro/packages/libffi.scm b/distro/packages/libffi.scm index c2ab94cf43..0900a43cb4 100644 --- a/distro/packages/libffi.scm +++ b/distro/packages/libffi.scm @@ -1,20 +1,20 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Ludovic Courtès <ludo@gnu.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (distro packages libffi) #:use-module (guix licenses) diff --git a/distro/packages/libidn.scm b/distro/packages/libidn.scm new file mode 100644 index 0000000000..dbae143b3a --- /dev/null +++ b/distro/packages/libidn.scm @@ -0,0 +1,51 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Andreas Enge <andreas@enge.fr> +;;; +;;; 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 (distro packages libidn) + #:use-module (distro) + #:use-module (guix licenses) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu)) + +(define-public libidn + (package + (name "libidn") + (version "1.26") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/libidn/libidn-" version + ".tar.gz")) + (sha256 (base32 + "0g657kv60rh486m7bwyp5k24ljmym4wnb8nmk6d3i3qgr1qlqbqa")))) + (build-system gnu-build-system) +;; FIXME: No Java and C# libraries are currently built. + (synopsis "GNU Libidn, a library to encode and decode internationalised domain names") + (description + "GNU Libidn is a fully documented implementation of the Stringprep, +Punycode and IDNA specifications. Libidn's purpose is to encode and decode +internationalised domain names. + +The library contains a generic Stringprep implementation. Profiles for +Nameprep, iSCSI, SASL, XMPP and Kerberos V5 are included. Punycode and +ASCII Compatible Encoding (ACE) via IDNA are supported. A mechanism to +define Top-Level Domain (TLD) specific validation tables, and to compare +strings against those tables, is included. +Default tables for some TLDs are also included.") + (license lgpl2.1+) + (home-page "http://www.gnu.org/software/libidn/"))) diff --git a/distro/packages/libsigsegv.scm b/distro/packages/libsigsegv.scm index f45c2c585e..07185186a5 100644 --- a/distro/packages/libsigsegv.scm +++ b/distro/packages/libsigsegv.scm @@ -1,20 +1,20 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Ludovic Courtès <ludo@gnu.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (distro packages libsigsegv) #:use-module (guix licenses) diff --git a/distro/packages/libunistring.scm b/distro/packages/libunistring.scm index 7b19e7f9f6..1359f9d488 100644 --- a/distro/packages/libunistring.scm +++ b/distro/packages/libunistring.scm @@ -1,20 +1,20 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Ludovic Courtès <ludo@gnu.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (distro packages libunistring) #:use-module (guix licenses) diff --git a/distro/packages/libusb.scm b/distro/packages/libusb.scm new file mode 100644 index 0000000000..eb7edb40e1 --- /dev/null +++ b/distro/packages/libusb.scm @@ -0,0 +1,44 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 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 (distro packages libusb) + #:use-module (distro) + #:use-module (guix licenses) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu)) + +(define-public libusb + (package + (name "libusb") + (version "1.0.9") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/libusb/libusb-1.0/" + "libusb-" version "/libusb-" version ".tar.bz2")) + (sha256 + (base32 + "16sz34ix6hw2wwl3kqx6rf26fg210iryr68wc439dc065pffw879")))) + (build-system gnu-build-system) + (home-page "http://www.libusb.org") + (synopsis "Libusb, a user-space USB library") + (description + "Libusb is a library that gives applications easy access to USB +devices on various operating systems.") + (license lgpl2.1+))) \ No newline at end of file diff --git a/distro/packages/linux.scm b/distro/packages/linux.scm index bbb583455c..a40cc27c3e 100644 --- a/distro/packages/linux.scm +++ b/distro/packages/linux.scm @@ -1,30 +1,31 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> -;;; Copyright (C) 2012 Nikita Karetnikov <nikita@karetnikov.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (distro packages linux) #:use-module (guix licenses) #:use-module ((distro packages compression) #:renamer (symbol-prefix-proc 'guix:)) #:use-module (distro packages flex) + #:use-module (distro packages libusb) #:use-module (distro packages ncurses) #:use-module (distro packages perl) - #:use-module (distro packages ncurses) + #:use-module (distro packages pkg-config) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix build-system gnu)) @@ -176,3 +177,25 @@ providing the system administrator with some help in common tasks.") ;; explicitly defined license. (license '(gpl3+ gpl2+ gpl2 lgpl2.0+ bsd-4 public-domain)))) + +(define-public usbutils + (package + (name "usbutils") + (version "006") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://kernel.org/linux/utils/usb/usbutils/" + "usbutils-" version ".tar.xz")) + (sha256 + (base32 + "03pd57vv8c6x0hgjqcbrxnzi14h8hcghmapg89p8k5zpwpkvbdfr")))) + (build-system gnu-build-system) + (inputs + `(("libusb" ,libusb) ("pkg-config" ,pkg-config))) + (home-page "http://www.linux-usb.org/") + (synopsis + "Tools for working with USB devices, such as lsusb") + (description + "Tools for working with USB devices, such as lsusb.") + (license gpl2+))) diff --git a/distro/packages/lout.scm b/distro/packages/lout.scm index 85a363e963..d3ff390b46 100644 --- a/distro/packages/lout.scm +++ b/distro/packages/lout.scm @@ -1,20 +1,20 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Ludovic Courtès <ludo@gnu.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (distro packages lout) #:use-module (guix licenses) diff --git a/distro/packages/lsh.scm b/distro/packages/lsh.scm index 8f44967726..d2c2d9082d 100644 --- a/distro/packages/lsh.scm +++ b/distro/packages/lsh.scm @@ -1,20 +1,20 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012, 2013 Ludovic Courtès <ludo@gnu.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (distro packages lsh) #:use-module (guix licenses) diff --git a/distro/packages/m4.scm b/distro/packages/m4.scm index ec0e1a868c..7f2bed3ab7 100644 --- a/distro/packages/m4.scm +++ b/distro/packages/m4.scm @@ -1,20 +1,20 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Ludovic Courtès <ludo@gnu.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (distro packages m4) #:use-module (guix licenses) diff --git a/distro/packages/make-bootstrap.scm b/distro/packages/make-bootstrap.scm index ea889d062b..b1d74ec5d6 100644 --- a/distro/packages/make-bootstrap.scm +++ b/distro/packages/make-bootstrap.scm @@ -1,20 +1,20 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012, 2013 Ludovic Courtès <ludo@gnu.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (distro packages make-bootstrap) #:use-module (guix utils) diff --git a/distro/packages/mit-krb5.scm b/distro/packages/mit-krb5.scm new file mode 100644 index 0000000000..13250ff95b --- /dev/null +++ b/distro/packages/mit-krb5.scm @@ -0,0 +1,69 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Andreas Enge <andreas@enge.fr> +;;; +;;; 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 (distro packages mit-krb5) + #:use-module (distro) + #:use-module (distro packages bison) + #:use-module (distro packages perl) + #:use-module (guix licenses) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu)) + +(define-public mit-krb5 + (package + (name "mit-krb5") + (version "1.11") + (source (origin + (method url-fetch) + (uri (string-append "http://web.mit.edu/kerberos/www/dist/krb5/" + version + "/krb5-" version + "-signed.tar")) + (sha256 (base32 + "0lc6lxb98qzg4x01lppq700vkr1ax9rld09znahrinwqnf9zndzy")))) + (build-system gnu-build-system) + (inputs `(("bison" ,bison) + ("perl" ,perl) + )) + (arguments + (lambda (system) + `(#:tests? #f + #:phases + (alist-replace + 'unpack + (lambda* (#:key source #:allow-other-keys) + (system* "echo" source) + (let ((inner + (substring source + (string-index-right source #\k) + (string-index-right source #\-)))) + (system* "echo" inner) + (and (zero? (system* "tar" "xvf" source)) + (zero? (system* "tar" "xvf" (string-append inner ".tar.gz"))) + (chdir inner) + (chdir "src")))) + %standard-phases)))) + (synopsis "MIT Kerberos 5") + (description + "Massachusetts Institute of Technology implementation of Kerberos. +Kerberos is a network authentication protocol designed to provide strong +authentication for client/server applications by using secret-key cryptography.") + (license (bsd-style "file://NOTICE" + "See NOTICE in the distribution.")) + (home-page "http://web.mit.edu/kerberos/"))) diff --git a/distro/packages/multiprecision.scm b/distro/packages/multiprecision.scm index cef09b8df8..40550ee65d 100644 --- a/distro/packages/multiprecision.scm +++ b/distro/packages/multiprecision.scm @@ -1,20 +1,20 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Ludovic Courtès <ludo@gnu.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (distro packages multiprecision) #:use-module (guix licenses) diff --git a/distro/packages/nano.scm b/distro/packages/nano.scm index 1af33aa33b..f51702f4f2 100644 --- a/distro/packages/nano.scm +++ b/distro/packages/nano.scm @@ -1,20 +1,20 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012 Nikita Karetnikov <nikita@karetnikov.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (distro packages nano) #:use-module (guix licenses) diff --git a/distro/packages/ncurses.scm b/distro/packages/ncurses.scm index 62f957ef13..938d1dc2c4 100644 --- a/distro/packages/ncurses.scm +++ b/distro/packages/ncurses.scm @@ -1,20 +1,20 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012, 2013 Ludovic Courtès <ludo@gnu.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (distro packages ncurses) #:use-module (guix licenses) diff --git a/distro/packages/nettle.scm b/distro/packages/nettle.scm index e947780781..9bf7599039 100644 --- a/distro/packages/nettle.scm +++ b/distro/packages/nettle.scm @@ -1,20 +1,20 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Ludovic Courtès <ludo@gnu.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (distro packages nettle) #:use-module (guix licenses) diff --git a/distro/packages/perl.scm b/distro/packages/perl.scm index c4bfb6b260..b6357875b6 100644 --- a/distro/packages/perl.scm +++ b/distro/packages/perl.scm @@ -1,20 +1,20 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012, 2013 Ludovic Courtès <ludo@gnu.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (distro packages perl) #:use-module (guix licenses) diff --git a/distro/packages/pkg-config.scm b/distro/packages/pkg-config.scm index 41efdbe12c..499e3fdc86 100644 --- a/distro/packages/pkg-config.scm +++ b/distro/packages/pkg-config.scm @@ -1,20 +1,20 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Ludovic Courtès <ludo@gnu.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (distro packages pkg-config) #:use-module (guix licenses) diff --git a/distro/packages/pth.scm b/distro/packages/pth.scm index 7934e9fbb9..4c52079544 100644 --- a/distro/packages/pth.scm +++ b/distro/packages/pth.scm @@ -1,20 +1,20 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Ludovic Courtès <ludo@gnu.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (distro packages pth) #:use-module (guix licenses) diff --git a/distro/packages/readline.scm b/distro/packages/readline.scm index 8e2a4cbb5d..5498f15b52 100644 --- a/distro/packages/readline.scm +++ b/distro/packages/readline.scm @@ -1,20 +1,20 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Ludovic Courtès <ludo@gnu.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (distro packages readline) #:use-module (guix licenses) diff --git a/distro/packages/recutils.scm b/distro/packages/recutils.scm index 930f3885b7..72f56917d5 100644 --- a/distro/packages/recutils.scm +++ b/distro/packages/recutils.scm @@ -1,20 +1,20 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Ludovic Courtès <ludo@gnu.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (distro packages recutils) #:use-module (guix licenses) diff --git a/distro/packages/rsync.scm b/distro/packages/rsync.scm new file mode 100644 index 0000000000..8dc0acb118 --- /dev/null +++ b/distro/packages/rsync.scm @@ -0,0 +1,51 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Andreas Enge <andreas@enge.fr> +;;; +;;; 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 (distro packages rsync) + #:use-module (distro) + #:use-module (distro packages perl) + #:use-module (distro packages acl) + #:use-module (guix licenses) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu)) + + +(define-public rsync + (package + (name "rsync") + (version "3.0.9") + (source (origin + (method url-fetch) + (uri (string-append "http://rsync.samba.org/ftp/rsync/rsync-" + version ".tar.gz")) + (sha256 + (base32 + "01bw4klqsrlhh3i9lazd485sd9qx5djvnwa21lj2h3a9sn6hzw9h")))) + (build-system gnu-build-system) + (inputs `(("perl" ,perl) + ("acl" ,acl))) + (synopsis "rsync, a remote (and local) file copying tool") + (description + "rsync is a fast and versatile file copying tool. It can copy locally, +to/from another host over any remote shell, or to/from a remote rsync daemon. +Its delta-transfer algorithm reduces the amount of data sent over the network +by sending only the differences between the source files and the existing +files in the destination.") + (license gpl3+) + (home-page "http://rsync.samba.org/"))) diff --git a/distro/packages/shishi.scm b/distro/packages/shishi.scm index 78ec727a36..acbb1ed5c0 100644 --- a/distro/packages/shishi.scm +++ b/distro/packages/shishi.scm @@ -1,21 +1,21 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012 Nikita Karetnikov <nikita@karetnikov.org> -;;; Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org> +;;; Copyright © 2012 Ludovic Courtès <ludo@gnu.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (distro packages shishi) #:use-module (guix licenses) diff --git a/distro/packages/system.scm b/distro/packages/system.scm index 608b233a94..f2a031ccd7 100644 --- a/distro/packages/system.scm +++ b/distro/packages/system.scm @@ -1,20 +1,20 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Ludovic Courtès <ludo@gnu.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (distro packages system) #:use-module (guix licenses) diff --git a/distro/packages/texinfo.scm b/distro/packages/texinfo.scm index 594f29cb70..99925eeb53 100644 --- a/distro/packages/texinfo.scm +++ b/distro/packages/texinfo.scm @@ -1,20 +1,20 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Ludovic Courtès <ludo@gnu.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (distro packages texinfo) #:use-module (guix licenses) diff --git a/distro/packages/time.scm b/distro/packages/time.scm index 7215ab4fb3..b7eaec0c21 100644 --- a/distro/packages/time.scm +++ b/distro/packages/time.scm @@ -1,20 +1,20 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012 Nikita Karetnikov <nikita@karetnikov.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (distro packages time) #:use-module (guix licenses) diff --git a/distro/packages/wget.scm b/distro/packages/wget.scm index 710cb4c7d8..08b16f167b 100644 --- a/distro/packages/wget.scm +++ b/distro/packages/wget.scm @@ -1,20 +1,20 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012 Nikita Karetnikov <nikita@karetnikov.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (distro packages wget) #:use-module (guix licenses) diff --git a/distro/packages/which.scm b/distro/packages/which.scm index 3f3a05f452..8cdd36841c 100644 --- a/distro/packages/which.scm +++ b/distro/packages/which.scm @@ -1,20 +1,20 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012 Nikita Karetnikov <nikita@karetnikov.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (distro packages which) #:use-module (guix licenses) diff --git a/distro/packages/zile.scm b/distro/packages/zile.scm index 8650852bab..9eae6d4b9f 100644 --- a/distro/packages/zile.scm +++ b/distro/packages/zile.scm @@ -1,20 +1,20 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Ludovic Courtès <ludo@gnu.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (distro packages zile) #:use-module (guix licenses) diff --git a/doc/guix.texi b/doc/guix.texi index 21f6d87b3a..2ca1496bac 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -43,7 +43,7 @@ Documentation License''. @copying This manual documents GNU Guix version @value{VERSION}. -Copyright (C) 2012 Ludovic Courtès +Copyright (C) 2012, 2013 Ludovic Courtès Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or @@ -133,6 +133,7 @@ management tools it provides. @menu * Features:: How Guix will make your life brighter. * Invoking guix-package:: Package installation, removal, etc. +* Invoking guix-gc:: Running the garbage collector. @end menu @node Features @@ -172,9 +173,10 @@ of their profile, which was known to work well. All those packages in the package store may be @emph{garbage-collected}. Guix can determine which packages are still referenced by the user -profiles, and remove those that are provably no longer referenced. -Users may also explicitly remove old generations of their profile so -that the packages they refer to can be collected. +profiles, and remove those that are provably no longer referenced +(@pxref{Invoking guix-gc}). Users may also explicitly remove old +generations of their profile so that the packages they refer to can be +collected. Finally, Guix takes a @dfn{purely functional} approach to package management, as described in the introduction (@pxref{Introduction}). @@ -275,6 +277,53 @@ its version string, and the source location of its definition. @end table +@node Invoking guix-gc +@section Invoking @command{guix-gc} + +@cindex garbage collector +Packages that are installed but not used may be @dfn{garbage-collected}. +The @command{guix-gc} command allows users to explicitly run the garbage +collector to reclaim space from the @file{/nix/store} directory. + +The garbage collector has a set of known @dfn{roots}: any file under +@file{/nix/store} reachable from a root is considered @dfn{live} and +cannot be deleted; any other file is considered @dfn{dead} and may be +deleted. The set of garbage collector roots includes default user +profiles, and may be augmented with @command{guix-build --root}, for +example (@pxref{Invoking guix-build}). + +The @command{guix-gc} command has three mode of operations: it can be +used to garbage-collect any dead files (the default), to delete specific +files (the @code{--delete} option), or to print garbage-collector +information. The available options are listed below: + +@table @code +@item --collect-garbage[=@var{min}] +@itemx -C [@var{min}] +Collect garbage---i.e., unreachable @file{/nix/store} files and +sub-directories. This is the default operation when no option is +specified. + +When @var{min} is given, stop once @var{min} bytes have been collected. +@var{min} may be a number of bytes, or it may include a unit as a +suffix, such as @code{MiB} for mebibytes and @code{GB} for gigabytes. + +When @var{min} is omitted, collect all the garbage. + +@item --delete +@itemx -d +Attempt to delete all the store files and directories specified as +arguments. This fails if some of the files are not in the store, or if +they are still live. + +@item --list-dead +Show the list of dead files and directories still present in the +store---i.e., files and directories no longer reachable from any root. + +@item --list-live +Show the list of live store files and directories. +@end table + @c ********************************************************************* @node Programming Interface diff --git a/guix-build.in b/guix-build.in index 5136a2a5e4..abfab2bbbe 100644 --- a/guix-build.in +++ b/guix-build.in @@ -11,23 +11,23 @@ main='(module-ref (resolve-interface '\''(guix-build)) '\'guix-build')' exec ${GUILE-@GUILE@} -L "@guilemoduledir@" -l "$0" \ -c "(apply $main (cdr (command-line)))" "$@" !# -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (guix-build) #:use-module (guix ui) @@ -104,8 +104,7 @@ Build the given PACKAGE-OR-DERIVATION and return their output paths.\n")) (display (_ " -V, --version display version information and exit")) (newline) - (format #t (_ " -Report bugs to: ~a.~%") "@PACKAGE_BUGREPORT@")) + (show-bug-report-information)) (define %options ;; Specifications of the command-line options. @@ -172,27 +171,24 @@ Report bugs to: ~a.~%") "@PACKAGE_BUGREPORT@")) (alist-cons 'argument arg result)) %default-options)) - (define (register-root drv root) - ;; Register ROOT as an indirect GC root for DRV's outputs. - (let* ((root (string-append (canonicalize-path (dirname root)) - "/" root)) - (drv* (call-with-input-file drv read-derivation)) - (outputs (derivation-outputs drv*)) - (outputs* (map (compose derivation-output-path cdr) outputs))) + (define (register-root paths root) + ;; Register ROOT as an indirect GC root for all of PATHS. + (let* ((root (string-append (canonicalize-path (dirname root)) + "/" root))) (catch 'system-error (lambda () - (match outputs* - ((output) - (symlink output root) + (match paths + ((path) + (symlink path root) (add-indirect-root (%store) root)) - ((outputs ...) - (fold (lambda (output count) + ((paths ...) + (fold (lambda (path count) (let ((root (string-append root "-" (number->string count)))) - (symlink output root) + (symlink path root) (add-indirect-root (%store) root)) (+ 1 count)) 0 - outputs)))) + paths)))) (lambda args (format (current-error-port) (_ "failed to create GC root `~a': ~a~%") @@ -235,7 +231,11 @@ Report bugs to: ~a.~%") "@PACKAGE_BUGREPORT@")) (append (remove (compose (cut valid-path? (%store) <>) derivation-path->output-path) drv) - (map derivation-input-path req))))) + (map derivation-input-path req)))) + (roots (filter-map (match-lambda + (('gc-root . root) root) + (_ #f)) + opts))) (if (assoc-ref opts 'dry-run?) (format (current-error-port) (N_ "~:[the following derivation would be built:~%~{ ~a~%~}~;~]" @@ -256,7 +256,10 @@ Report bugs to: ~a.~%") "@PACKAGE_BUGREPORT@")) #:verbosity (assoc-ref opts 'verbosity)) (if (assoc-ref opts 'derivations-only?) - (format #t "~{~a~%~}" drv) + (begin + (format #t "~{~a~%~}" drv) + (for-each (cut register-root <> <>) + (map list drv) roots)) (or (assoc-ref opts 'dry-run?) (and (build-derivations (%store) drv) (for-each (lambda (d) @@ -269,15 +272,12 @@ Report bugs to: ~a.~%") "@PACKAGE_BUGREPORT@")) d out-name))) (derivation-outputs drv))))) drv) - (let ((roots (filter-map (match-lambda - (('gc-root . root) - root) - (_ #f)) - opts))) - (when roots - (for-each (cut register-root <> <>) - drv roots) - #t)))))))))) + (for-each (cut register-root <> <>) + (map (lambda (drv) + (map cdr + (derivation-path->output-paths drv))) + drv) + roots))))))))) ;; Local Variables: ;; eval: (put 'guard 'scheme-indent-function 1) diff --git a/guix-download.in b/guix-download.in index f76396b97c..f8859618d7 100644 --- a/guix-download.in +++ b/guix-download.in @@ -11,23 +11,23 @@ main='(module-ref (resolve-interface '\''(guix-download)) '\'guix-download')' exec ${GUILE-@GUILE@} -L "@guilemoduledir@" -l "$0" \ -c "(apply $main (cdr (command-line)))" "$@" !# -;;; Guix --- Nix package management from Guile. -;;; Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (guix-download) #:use-module (guix ui) @@ -90,8 +90,7 @@ and the hash of its contents.\n")) (display (_ " -V, --version display version information and exit")) (newline) - (format #t (_ " -Report bugs to: ~a.~%") "@PACKAGE_BUGREPORT@")) + (show-bug-report-information)) (define %options ;; Specifications of the command-line options. diff --git a/guix-gc.in b/guix-gc.in new file mode 100644 index 0000000000..ab7ce3214f --- /dev/null +++ b/guix-gc.in @@ -0,0 +1,183 @@ +#!/bin/sh +# aside from this initial boilerplate, this is actually -*- scheme -*- code + +prefix="@prefix@" +datarootdir="@datarootdir@" + +GUILE_LOAD_COMPILED_PATH="@guilemoduledir@:$GUILE_LOAD_COMPILED_PATH" +export GUILE_LOAD_COMPILED_PATH + +main='(module-ref (resolve-interface '\''(guix-gc)) '\'guix-gc')' +exec ${GUILE-@GUILE@} -L "@guilemoduledir@" -l "$0" \ + -c "(apply $main (cdr (command-line)))" "$@" +!# +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012, 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 (guix-gc) + #:use-module (guix ui) + #:use-module (guix store) + #:use-module (ice-9 match) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-26) + #:use-module (srfi srfi-37) + #:export (guix-gc)) + + +;;; +;;; Command-line options. +;;; + +(define %default-options + ;; Alist of default option values. + `((action . collect-garbage))) + +(define (show-help) + (display (_ "Usage: guix-gc [OPTION]... PATHS... +Invoke the garbage collector.\n")) + (display (_ " + -C, --collect-garbage[=MIN] + collect at least MIN bytes of garbage")) + (display (_ " + -d, --delete attempt to delete PATHS")) + (display (_ " + --list-dead list dead paths")) + (display (_ " + --list-live list live paths")) + (newline) + (display (_ " + -h, --help display this help and exit")) + (display (_ " + -V, --version display version information and exit")) + (newline) + (show-bug-report-information)) + +(define (size->number str) + "Convert STR, a storage measurement representation such as \"1024\" or +\"1MiB\", to a number of bytes. Raise an error if STR could not be +interpreted." + (define unit-pos + (string-rindex str char-set:digit)) + + (define unit + (and unit-pos (substring str (+ 1 unit-pos)))) + + (let* ((numstr (if unit-pos + (substring str 0 (+ 1 unit-pos)) + str)) + (num (string->number numstr))) + (if num + (* num + (match unit + ("KiB" (expt 2 10)) + ("MiB" (expt 2 20)) + ("GiB" (expt 2 30)) + ("TiB" (expt 2 40)) + ("KB" (expt 10 3)) + ("MB" (expt 10 6)) + ("GB" (expt 10 9)) + ("TB" (expt 10 12)) + ("" 1) + (_ + (format (current-error-port) (_ "error: unknown unit: ~a~%") + unit) + (exit 1)))) + (begin + (format (current-error-port) + (_ "error: invalid number: ~a") numstr) + (exit 1))))) + +(define %options + ;; Specification of the command-line options. + (list (option '(#\h "help") #f #f + (lambda args + (show-help) + (exit 0))) + (option '(#\V "version") #f #f + (lambda args + (show-version-and-exit "guix-gc"))) + + (option '(#\C "collect-garbage") #f #t + (lambda (opt name arg result) + (let ((result (alist-cons 'action 'collect-garbage + (alist-delete 'action result)))) + (match arg + ((? string?) + (let ((amount (size->number arg))) + (if arg + (alist-cons 'min-freed amount result) + (begin + (format (current-error-port) + (_ "error: invalid amount of storage: ~a~%") + arg) + (exit 1))))) + (#f result))))) + (option '(#\d "delete") #f #f + (lambda (opt name arg result) + (alist-cons 'action 'delete + (alist-delete 'action result)))) + (option '("list-dead") #f #f + (lambda (opt name arg result) + (alist-cons 'action 'list-dead + (alist-delete 'action result)))) + (option '("list-live") #f #f + (lambda (opt name arg result) + (alist-cons 'action 'list-live + (alist-delete 'action result)))))) + + +;;; +;;; Entry point. +;;; + +(define (guix-gc . args) + (define (parse-options) + ;; Return the alist of option values. + (args-fold args %options + (lambda (opt name arg result) + (leave (_ "~A: unrecognized option~%") name)) + (lambda (arg result) + (alist-cons 'argument arg result)) + %default-options)) + + (setlocale LC_ALL "") + (textdomain "guix") + (setvbuf (current-output-port) _IOLBF) + (setvbuf (current-error-port) _IOLBF) + + (with-error-handling + (let ((opts (parse-options)) + (store (open-connection))) + (case (assoc-ref opts 'action) + ((collect-garbage) + (let ((min-freed (assoc-ref opts 'min-freed))) + (if min-freed + (collect-garbage store min-freed) + (collect-garbage store)))) + ((delete) + (let ((paths (filter-map (match-lambda + (('argument . arg) arg) + (_ #f)) + opts))) + (delete-paths store paths))) + ((list-dead) + (for-each (cut simple-format #t "~a~%" <>) + (dead-paths store))) + ((list-live) + (for-each (cut simple-format #t "~a~%" <>) + (live-paths store))))))) diff --git a/guix-import.in b/guix-import.in index 5dc93708b4..af5c5897e0 100644 --- a/guix-import.in +++ b/guix-import.in @@ -11,23 +11,23 @@ main='(module-ref (resolve-interface '\''(guix-import)) '\'guix-import')' exec ${GUILE-@GUILE@} -L "@guilemoduledir@" -l "$0" \ -c "(apply $main (cdr (command-line)))" "$@" !# -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (guix-import) #:use-module (guix ui) @@ -88,8 +88,7 @@ Import and convert the Nix expression ATTRIBUTE of NIXPKGS.\n")) (display (_ " -V, --version display version information and exit")) (newline) - (format #t (_ " -Report bugs to: ~a.~%") "@PACKAGE_BUGREPORT@")) + (show-bug-report-information)) (define %options ;; Specification of the command-line options. diff --git a/guix-package.in b/guix-package.in index fee1a39b2f..4dc625778b 100644 --- a/guix-package.in +++ b/guix-package.in @@ -11,23 +11,23 @@ main='(module-ref (resolve-interface '\''(guix-package)) '\'guix-package')' exec ${GUILE-@GUILE@} -L "@guilemoduledir@" -l "$0" \ -c "(apply $main (cdr (command-line)))" "$@" !# -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (guix-package) #:use-module (guix ui) @@ -217,8 +217,7 @@ Install, remove, or upgrade PACKAGES in a single transaction.\n")) (display (_ " -V, --version display version information and exit")) (newline) - (format #t (_ " -Report bugs to: ~a.~%") "@PACKAGE_BUGREPORT@")) + (show-bug-report-information)) (define %options ;; Specification of the command-line options. diff --git a/guix.scm b/guix.scm index 9efc6e7139..1b7fd0c5a2 100644 --- a/guix.scm +++ b/guix.scm @@ -1,20 +1,20 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Ludovic Courtès <ludo@gnu.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (guix)) diff --git a/guix/base32.scm b/guix/base32.scm index 6f0a92bd99..e0599dc01e 100644 --- a/guix/base32.scm +++ b/guix/base32.scm @@ -1,20 +1,20 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Ludovic Courtès <ludo@gnu.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (guix base32) #:use-module (srfi srfi-1) diff --git a/guix/build-system.scm b/guix/build-system.scm index 179e7ef2df..0df5e4362b 100644 --- a/guix/build-system.scm +++ b/guix/build-system.scm @@ -1,20 +1,20 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Ludovic Courtès <ludo@gnu.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (guix build-system) #:use-module (guix utils) diff --git a/guix/build-system/gnu.scm b/guix/build-system/gnu.scm index 4d7ecd54de..a3a770f631 100644 --- a/guix/build-system/gnu.scm +++ b/guix/build-system/gnu.scm @@ -1,20 +1,20 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Ludovic Courtès <ludo@gnu.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (guix build-system gnu) #:use-module (guix store) diff --git a/guix/build-system/trivial.scm b/guix/build-system/trivial.scm index 3598018749..866657fdf6 100644 --- a/guix/build-system/trivial.scm +++ b/guix/build-system/trivial.scm @@ -1,20 +1,20 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Ludovic Courtès <ludo@gnu.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (guix build-system trivial) #:use-module (guix store) diff --git a/guix/build/download.scm b/guix/build/download.scm index 5813ea81ea..27f5557692 100644 --- a/guix/build/download.scm +++ b/guix/build/download.scm @@ -60,15 +60,18 @@ which is not available during bootstrap." ((http) 80) ; /etc/services, not for me! (else (error "unsupported URI scheme" uri)))))) - (getaddrinfo (uri-host uri) - (number->string port) - AI_NUMERICSERV))) + (delete-duplicates (getaddrinfo (uri-host uri) + (number->string port) + AI_NUMERICSERV) + (lambda (ai1 ai2) + (equal? (addrinfo:addr ai1) + (addrinfo:addr ai2)))))) (let loop ((addresses addresses)) (let* ((ai (car addresses)) (s (with-fluids ((%default-port-encoding #f)) - (socket (addrinfo:fam ai) (addrinfo:socktype ai) - (addrinfo:protocol ai))))) + ;; Restrict ourselves to TCP. + (socket (addrinfo:fam ai) SOCK_STREAM IPPROTO_IP)))) (catch 'system-error (lambda () (connect s (addrinfo:addr ai)) @@ -81,7 +84,7 @@ which is not available during bootstrap." (lambda args ;; Connection failed, so try one of the other addresses. (close s) - (if (null? addresses) + (if (null? (cdr addresses)) (apply throw args) (loop (cdr addresses)))))))) diff --git a/guix/config.scm.in b/guix/config.scm.in index c5ebd39fae..ab7b0669b8 100644 --- a/guix/config.scm.in +++ b/guix/config.scm.in @@ -1,25 +1,26 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (guix config) #:export (%guix-package-name %guix-version %guix-bug-report-address + %guix-home-page-url %store-directory %state-directory %system @@ -42,6 +43,9 @@ (define %guix-bug-report-address "@PACKAGE_BUGREPORT@") +(define %guix-home-page-url + "@PACKAGE_URL@") + (define %store-directory "@storedir@") diff --git a/guix/derivations.scm b/guix/derivations.scm index 6fbce14da0..7b131955b0 100644 --- a/guix/derivations.scm +++ b/guix/derivations.scm @@ -1,20 +1,20 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (guix derivations) #:use-module (srfi srfi-1) @@ -55,6 +55,7 @@ read-derivation write-derivation derivation-path->output-path + derivation-path->output-paths derivation %guile-for-build @@ -288,6 +289,16 @@ path of its output OUTPUT." (outputs (derivation-outputs drv))) (and=> (assoc-ref outputs output) derivation-output-path))))) +(define (derivation-path->output-paths path) + "Read the derivation from PATH (`/nix/store/xxx.drv'), and return the +list of name/path pairs of its outputs." + (let* ((drv (call-with-input-file path read-derivation)) + (outputs (derivation-outputs drv))) + (map (match-lambda + ((name . output) + (cons name (derivation-output-path output)))) + outputs))) + ;;; ;;; Derivation primitive. diff --git a/guix/download.scm b/guix/download.scm index b21f6f5533..3372567b47 100644 --- a/guix/download.scm +++ b/guix/download.scm @@ -1,20 +1,20 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Ludovic Courtès <ludo@gnu.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (guix download) #:use-module (ice-9 match) @@ -83,8 +83,7 @@ "http://dfn.dl.sourceforge.net/sourceforge/" "http://mesh.dl.sourceforge.net/sourceforge/" "http://ovh.dl.sourceforge.net/sourceforge/" - "http://osdn.dl.sourceforge.net/sourceforge/" - "http://kent.dl.sourceforge.net/sourceforge/") + "http://osdn.dl.sourceforge.net/sourceforge/") (kernel.org "http://www.all.kernel.org/pub/" "http://ramses.wh2.tu-dresden.de/pub/mirrors/kernel.org/" diff --git a/guix/ftp-client.scm b/guix/ftp-client.scm index 67c8472c7d..7e241f37b2 100644 --- a/guix/ftp-client.scm +++ b/guix/ftp-client.scm @@ -1,20 +1,20 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2010, 2011, 2012 Ludovic Courtès <ludo@gnu.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2010, 2011, 2012 Ludovic Courtès <ludo@gnu.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (guix ftp-client) #:use-module (srfi srfi-1) diff --git a/guix/gnu-maintenance.scm b/guix/gnu-maintenance.scm index 2035e44fdb..87ef427481 100644 --- a/guix/gnu-maintenance.scm +++ b/guix/gnu-maintenance.scm @@ -1,21 +1,21 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012 Nikita Karetnikov <nikita@karetnikov.org> -;;; Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org> +;;; Copyright © 2012 Ludovic Courtès <ludo@gnu.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (guix gnu-maintenance) #:use-module (web uri) diff --git a/guix/licenses.scm b/guix/licenses.scm index cc2369bb8e..384d14d046 100644 --- a/guix/licenses.scm +++ b/guix/licenses.scm @@ -1,21 +1,21 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> -;;; Copyright (C) 2012 Nikita Karetnikov <nikita@karetnikov.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (guix licenses) #:use-module (srfi srfi-9) diff --git a/guix/packages.scm b/guix/packages.scm index f7e3f21337..384db6d362 100644 --- a/guix/packages.scm +++ b/guix/packages.scm @@ -1,20 +1,20 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Ludovic Courtès <ludo@gnu.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (guix packages) #:use-module (guix utils) diff --git a/guix/snix.scm b/guix/snix.scm index a5b8447470..c90893bdfe 100644 --- a/guix/snix.scm +++ b/guix/snix.scm @@ -1,20 +1,20 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2010, 2011, 2012 Ludovic Courtès <ludo@gnu.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2010, 2011, 2012 Ludovic Courtès <ludo@gnu.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (guix snix) #:use-module (sxml ssax) diff --git a/guix/store.scm b/guix/store.scm index a8dd566355..2ddb17684c 100644 --- a/guix/store.scm +++ b/guix/store.scm @@ -1,20 +1,20 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Ludovic Courtès <ludo@gnu.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (guix store) #:use-module (guix utils) diff --git a/guix/ui.scm b/guix/ui.scm index 4fc0dd089a..761b1ce444 100644 --- a/guix/ui.scm +++ b/guix/ui.scm @@ -1,20 +1,20 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (guix ui) #:use-module (guix utils) @@ -28,6 +28,7 @@ N_ leave show-version-and-exit + show-bug-report-information call-with-error-handling with-error-handling location->string)) @@ -56,6 +57,15 @@ command %guix-package-name %guix-version) (exit 0)) +(define (show-bug-report-information) + (format #t (_ " +Report bugs to: ~a.") %guix-bug-report-address) + (format #t (_ " +~a home page: <~a>") %guix-package-name %guix-home-page-url) + (display (_ " +General help using GNU software: <http://www.gnu.org/gethelp/>")) + (newline)) + (define (call-with-error-handling thunk) "Call THUNK within a user-friendly error handler." (guard (c ((package-input-error? c) diff --git a/guix/utils.scm b/guix/utils.scm index ad50c20cce..4d761f590d 100644 --- a/guix/utils.scm +++ b/guix/utils.scm @@ -1,20 +1,20 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Ludovic Courtès <ludo@gnu.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (guix utils) #:use-module (guix config) diff --git a/hydra.scm b/hydra.scm index 537e26aa84..e350f286af 100644 --- a/hydra.scm +++ b/hydra.scm @@ -1,20 +1,20 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Ludovic Courtès <ludo@gnu.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. ;;; ;;; This file defines build jobs for the Hydra continuation integration diff --git a/nix/libutil/gcrypt-hash.cc b/nix/libutil/gcrypt-hash.cc index de7e5afc1a..b364a5747a 100644 --- a/nix/libutil/gcrypt-hash.cc +++ b/nix/libutil/gcrypt-hash.cc @@ -1,20 +1,20 @@ -/* Guix --- Nix package management from Guile. -*- coding: utf-8 -*- +/* GNU Guix --- Functional package management for GNU Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> - This file is part of Guix. + This file is part of GNU Guix. - Guix is free software; you can redistribute it and/or modify it + 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. - Guix is distributed in the hope that it will be useful, but + 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 Guix. If not, see <http://www.gnu.org/licenses/>. */ + along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. */ #include <config.h> diff --git a/nix/libutil/gcrypt-hash.hh b/nix/libutil/gcrypt-hash.hh index 1e26398540..d2d40d5fb2 100644 --- a/nix/libutil/gcrypt-hash.hh +++ b/nix/libutil/gcrypt-hash.hh @@ -1,20 +1,20 @@ -/* Guix --- Nix package management from Guile. -*- coding: utf-8 -*- +/* GNU Guix --- Functional package management for GNU Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> - This file is part of Guix. + This file is part of GNU Guix. - Guix is free software; you can redistribute it and/or modify it + 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. - Guix is distributed in the hope that it will be useful, but + 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 Guix. If not, see <http://www.gnu.org/licenses/>. */ + along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. */ /* An OpenSSL-like interface to GNU libgcrypt cryptographic hash functions. */ diff --git a/nix/libutil/md5.h b/nix/libutil/md5.h index 7fa29087d7..4583a458b3 100644 --- a/nix/libutil/md5.h +++ b/nix/libutil/md5.h @@ -1,20 +1,20 @@ -/* Guix --- Nix package management from Guile. -*- coding: utf-8 -*- +/* GNU Guix --- Functional package management for GNU Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> - This file is part of Guix. + This file is part of GNU Guix. - Guix is free software; you can redistribute it and/or modify it + 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. - Guix is distributed in the hope that it will be useful, but + 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 Guix. If not, see <http://www.gnu.org/licenses/>. */ + along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. */ #include <gcrypt-hash.hh> diff --git a/nix/libutil/sha1.h b/nix/libutil/sha1.h index 0eca8e310d..d2d071e058 100644 --- a/nix/libutil/sha1.h +++ b/nix/libutil/sha1.h @@ -1,20 +1,20 @@ -/* Guix --- Nix package management from Guile. -*- coding: utf-8 -*- +/* GNU Guix --- Functional package management for GNU Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> - This file is part of Guix. + This file is part of GNU Guix. - Guix is free software; you can redistribute it and/or modify it + 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. - Guix is distributed in the hope that it will be useful, but + 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 Guix. If not, see <http://www.gnu.org/licenses/>. */ + along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. */ #include <gcrypt-hash.hh> diff --git a/nix/libutil/sha256.h b/nix/libutil/sha256.h index a91f18f689..ca95d7fea8 100644 --- a/nix/libutil/sha256.h +++ b/nix/libutil/sha256.h @@ -1,20 +1,20 @@ -/* Guix --- Nix package management from Guile. -*- coding: utf-8 -*- +/* GNU Guix --- Functional package management for GNU Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> - This file is part of Guix. + This file is part of GNU Guix. - Guix is free software; you can redistribute it and/or modify it + 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. - Guix is distributed in the hope that it will be useful, but + 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 Guix. If not, see <http://www.gnu.org/licenses/>. */ + along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. */ #include <gcrypt-hash.hh> diff --git a/nix/nix-daemon/guix-daemon.cc b/nix/nix-daemon/guix-daemon.cc index 79c719399e..7e266111a0 100644 --- a/nix/nix-daemon/guix-daemon.cc +++ b/nix/nix-daemon/guix-daemon.cc @@ -1,20 +1,20 @@ -/* Guix --- Nix package management from Guile. -*- coding: utf-8 -*- +/* GNU Guix --- Functional package management for GNU Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> - This file is part of Guix. + This file is part of GNU Guix. - Guix is free software; you can redistribute it and/or modify it + 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. - Guix is distributed in the hope that it will be useful, but + 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 Guix. If not, see <http://www.gnu.org/licenses/>. */ + along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. */ #include <config.h> @@ -23,8 +23,13 @@ #include <globals.hh> #include <util.hh> +#include <gcrypt.h> + #include <stdlib.h> #include <argp.h> +#include <unistd.h> +#include <sys/types.h> +#include <exception> /* Variables used by `nix-daemon.cc'. */ volatile ::sig_atomic_t blockInt; @@ -58,6 +63,7 @@ builds derivations on behalf of its clients."; #define GUIX_OPT_DISABLE_STORE_OPTIMIZATION 7 #define GUIX_OPT_IMPERSONATE_LINUX_26 8 #define GUIX_OPT_DEBUG 9 +#define GUIX_OPT_CHROOT_DIR 10 static const struct argp_option options[] = { @@ -74,6 +80,13 @@ static const struct argp_option options[] = "this option has no effect)" #endif }, + { "chroot-directory", GUIX_OPT_CHROOT_DIR, "DIR", 0, + "Add DIR to the build chroot" +#ifndef HAVE_CHROOT + " (chroots are not supported in this configuration, so " + "this option has no effect)" +#endif + }, { "build-users-group", GUIX_OPT_BUILD_USERS_GROUP, "GROUP", 0, "Perform builds as a user of GROUP" }, { "cache-failures", GUIX_OPT_CACHE_FAILURES, 0, 0, @@ -104,6 +117,9 @@ parse_opt (int key, char *arg, struct argp_state *state) case GUIX_OPT_DISABLE_CHROOT: settings.useChroot = false; break; + case GUIX_OPT_CHROOT_DIR: + settings.dirsInChroot.insert (arg); + break; case GUIX_OPT_DISABLE_LOG_COMPRESSION: settings.compressLog = false; break; @@ -151,20 +167,53 @@ main (int argc, char *argv[]) { Strings nothing; + /* Initialize libgcrypt. */ + if (!gcry_check_version (GCRYPT_VERSION)) + { + fprintf (stderr, "error: libgcrypt version mismatch\n"); + exit (EXIT_FAILURE); + } + #ifdef HAVE_CHROOT settings.useChroot = true; #else settings.useChroot = false; #endif - settings.processEnvironment (); + argvSaved = argv; + + try + { + settings.processEnvironment (); - /* FIXME: Disable substitutes until we have something that works. */ - settings.useSubstitutes = false; - settings.substituters.clear (); + /* FIXME: Disable substitutes until we have something that works. */ + settings.useSubstitutes = false; + settings.substituters.clear (); - argp_parse (&argp, argc, argv, 0, 0, 0); + argp_parse (&argp, argc, argv, 0, 0, 0); - argvSaved = argv; - run (nothing); + if (geteuid () == 0 && settings.buildUsersGroup.empty ()) + fprintf (stderr, "warning: running as root is highly recommended, " + "unless `--build-users-group' is used\n"); + +#ifdef HAVE_CHROOT + if (settings.useChroot) + { + foreach (PathSet::iterator, i, settings.dirsInChroot) + { + printMsg (lvlDebug, + format ("directory `%1%' added to the chroot") % *i); + } + } +#endif + + run (nothing); + } + catch (std::exception &e) + { + fprintf (stderr, "error: %s\n", e.what ()); + return EXIT_FAILURE; + } + + return EXIT_SUCCESS; /* never reached */ } diff --git a/nix/nix-daemon/shared.hh b/nix/nix-daemon/shared.hh index a03c09c036..b45e9f0cfd 100644 --- a/nix/nix-daemon/shared.hh +++ b/nix/nix-daemon/shared.hh @@ -1,20 +1,20 @@ -/* Guix --- Nix package management from Guile. -*- coding: utf-8 -*- +/* GNU Guix --- Functional package management for GNU Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> - This file is part of Guix. + This file is part of GNU Guix. - Guix is free software; you can redistribute it and/or modify it + 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. - Guix is distributed in the hope that it will be useful, but + 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 Guix. If not, see <http://www.gnu.org/licenses/>. */ + along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. */ /* Replacement for Nix's libmain/shared.hh. */ diff --git a/nix/scripts/list-runtime-roots.in b/nix/scripts/list-runtime-roots.in index 5c21ae543d..45fa0733d5 100644 --- a/nix/scripts/list-runtime-roots.in +++ b/nix/scripts/list-runtime-roots.in @@ -1,22 +1,22 @@ #!@GUILE@ -ds !# -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Ludovic Courtès <ludo@gnu.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. ;;; ;;; List files being used at run time; these files are garbage collector diff --git a/po/POTFILES.in b/po/POTFILES.in index fcc84f32f0..2ca98ed1b5 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -7,3 +7,5 @@ distro/packages/recutils.scm guix/ui.scm guix-build.in guix-download.in +guix-package.in +guix-gc.in diff --git a/pre-inst-env.in b/pre-inst-env.in index e85291f948..aeadcfd820 100644 --- a/pre-inst-env.in +++ b/pre-inst-env.in @@ -1,22 +1,22 @@ #!/bin/sh -# Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -# Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> +# GNU Guix --- Functional package management for GNU +# Copyright © 2012 Ludovic Courtès <ludo@gnu.org> # -# This file is part of Guix. +# This file is part of GNU Guix. # -# Guix is free software; you can redistribute it and/or modify it +# 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. # -# Guix is distributed in the hope that it will be useful, but +# 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 Guix. If not, see <http://www.gnu.org/licenses/>. +# along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. # Usage: ./pre-inst-env COMMAND ARG... # diff --git a/release.nix b/release.nix index 97eba8b403..369d54ed96 100644 --- a/release.nix +++ b/release.nix @@ -1,20 +1,20 @@ -/* Guix --- Nix package management from Guile. -*- coding: utf-8 -*- - Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> +/* GNU Guix --- Functional package management for GNU + Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> - This file is part of Guix. + This file is part of GNU Guix. - Guix is free software; you can redistribute it and/or modify it + 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. - Guix is distributed in the hope that it will be useful, but + 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 Guix. If not, see <http://www.gnu.org/licenses/>. */ + along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. */ /* Release file to build Guix with Nix. Useful to bootstrap Guix on Guix-enabled Hydra instances. */ diff --git a/test-env.in b/test-env.in index afcf3afedc..491a45c7b4 100644 --- a/test-env.in +++ b/test-env.in @@ -1,22 +1,22 @@ #!/bin/sh -# Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -# Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> +# GNU Guix --- Functional package management for GNU +# Copyright © 2012 Ludovic Courtès <ludo@gnu.org> # -# This file is part of Guix. +# This file is part of GNU Guix. # -# Guix is free software; you can redistribute it and/or modify it +# 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. # -# Guix is distributed in the hope that it will be useful, but +# 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 Guix. If not, see <http://www.gnu.org/licenses/>. +# along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. # Usage: ./test-env COMMAND ARG... # diff --git a/tests/base32.scm b/tests/base32.scm index d1bbaa1764..166ec4da1c 100644 --- a/tests/base32.scm +++ b/tests/base32.scm @@ -1,20 +1,20 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Ludovic Courtès <ludo@gnu.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (test-base32) #:use-module (guix base32) diff --git a/tests/build-utils.scm b/tests/build-utils.scm index 8140708397..0df4cd2737 100644 --- a/tests/build-utils.scm +++ b/tests/build-utils.scm @@ -1,20 +1,20 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Ludovic Courtès <ludo@gnu.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (test-build-utils) diff --git a/tests/builders.scm b/tests/builders.scm index 6035032d5d..a1e3f8088a 100644 --- a/tests/builders.scm +++ b/tests/builders.scm @@ -1,20 +1,20 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Ludovic Courtès <ludo@gnu.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (test-builders) diff --git a/tests/derivations.scm b/tests/derivations.scm index c00f0efc98..692b2aea8d 100644 --- a/tests/derivations.scm +++ b/tests/derivations.scm @@ -1,20 +1,20 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012, 2013 Ludovic Courtès <ludo@gnu.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (test-derivations) @@ -241,7 +241,10 @@ (and succeeded? (let ((one (derivation-path->output-path drv-path "out")) (two (derivation-path->output-path drv-path "second"))) - (and (eq? 'one (call-with-input-file one read)) + (and (lset= equal? + (derivation-path->output-paths drv-path) + `(("out" . ,one) ("second" . ,two))) + (eq? 'one (call-with-input-file one read)) (eq? 'two (call-with-input-file two read))))))) (test-assert "multiple-output derivation, non-alphabetic order" diff --git a/tests/guix-build.sh b/tests/guix-build.sh index 7f0e624edb..f03afbd494 100644 --- a/tests/guix-build.sh +++ b/tests/guix-build.sh @@ -1,20 +1,20 @@ -# Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -# Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> +# GNU Guix --- Functional package management for GNU +# Copyright © 2012 Ludovic Courtès <ludo@gnu.org> # -# This file is part of Guix. +# This file is part of GNU Guix. # -# Guix is free software; you can redistribute it and/or modify it +# 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. # -# Guix is distributed in the hope that it will be useful, but +# 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 Guix. If not, see <http://www.gnu.org/licenses/>. +# along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. # # Test the `guix-build' command-line utility. diff --git a/tests/guix-daemon.sh b/tests/guix-daemon.sh index b942cbd546..ba652b3dce 100644 --- a/tests/guix-daemon.sh +++ b/tests/guix-daemon.sh @@ -1,20 +1,20 @@ -# Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -# Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> +# GNU Guix --- Functional package management for GNU +# Copyright © 2012 Ludovic Courtès <ludo@gnu.org> # -# This file is part of Guix. +# This file is part of GNU Guix. # -# Guix is free software; you can redistribute it and/or modify it +# 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. # -# Guix is distributed in the hope that it will be useful, but +# 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 Guix. If not, see <http://www.gnu.org/licenses/>. +# along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. # # Test the daemon. diff --git a/tests/guix-download.sh b/tests/guix-download.sh index 3c0c6dc7cf..f0ea731430 100644 --- a/tests/guix-download.sh +++ b/tests/guix-download.sh @@ -1,20 +1,20 @@ -# Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -# Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> +# GNU Guix --- Functional package management for GNU +# Copyright © 2012 Ludovic Courtès <ludo@gnu.org> # -# This file is part of Guix. +# This file is part of GNU Guix. # -# Guix is free software; you can redistribute it and/or modify it +# 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. # -# Guix is distributed in the hope that it will be useful, but +# 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 Guix. If not, see <http://www.gnu.org/licenses/>. +# along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. # # Test the `guix-download' command-line utility. diff --git a/tests/guix-gc.sh b/tests/guix-gc.sh new file mode 100644 index 0000000000..805300eeec --- /dev/null +++ b/tests/guix-gc.sh @@ -0,0 +1,54 @@ +# GNU Guix --- Functional package management for GNU +# 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/>. + +# +# Test the `guix-gc' command-line utility. +# + +guix-gc --version + +trap "rm -f guix-gc-root" EXIT +rm -f guix-gc-root + +# Add then reclaim a .drv file. +drv="`guix-build idutils -d`" +test -f "$drv" + +guix-gc --list-dead | grep "$drv" +guix-gc --delete "$drv" +! test -f "$drv" + +# Add a .drv, register it as a root. +drv="`guix-build --root=guix-gc-root lsh -d`" +test -f "$drv" && test -L guix-gc-root + +guix-gc --list-live | grep "$drv" +if guix-gc --delete "$drv"; +then false; else true; fi + +rm guix-gc-root +guix-gc --list-dead | grep "$drv" +guix-gc --delete "$drv" +! test -f "$drv" + +# Try a random collection. +guix-gc -C 1KiB + +# Check trivial error cases. +if guix-gc --delete /dev/null; +then false; else true; fi diff --git a/tests/guix-package.sh b/tests/guix-package.sh index 60a0394f1c..81b7f05634 100644 --- a/tests/guix-package.sh +++ b/tests/guix-package.sh @@ -1,20 +1,20 @@ -# Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -# Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> +# GNU Guix --- Functional package management for GNU +# Copyright © 2012 Ludovic Courtès <ludo@gnu.org> # -# This file is part of Guix. +# This file is part of GNU Guix. # -# Guix is free software; you can redistribute it and/or modify it +# 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. # -# Guix is distributed in the hope that it will be useful, but +# 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 Guix. If not, see <http://www.gnu.org/licenses/>. +# along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. # # Test the `guix-package' command-line utility. diff --git a/tests/packages.scm b/tests/packages.scm index 5b0cd79b0f..f15f404db6 100644 --- a/tests/packages.scm +++ b/tests/packages.scm @@ -1,20 +1,20 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Ludovic Courtès <ludo@gnu.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (test-packages) diff --git a/tests/snix.scm b/tests/snix.scm index da4754b7f3..7623d0cd8f 100644 --- a/tests/snix.scm +++ b/tests/snix.scm @@ -1,20 +1,20 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Ludovic Courtès <ludo@gnu.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (test-snix) #:use-module (guix snix) diff --git a/tests/store.scm b/tests/store.scm index 71f68a1f23..3b3a23489d 100644 --- a/tests/store.scm +++ b/tests/store.scm @@ -1,20 +1,20 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Ludovic Courtès <ludo@gnu.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (test-store) diff --git a/tests/union.scm b/tests/union.scm index b2242a834b..58c0a301b2 100644 --- a/tests/union.scm +++ b/tests/union.scm @@ -1,20 +1,20 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012, 2013 Ludovic Courtès <ludo@gnu.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (test-union) diff --git a/tests/utils.scm b/tests/utils.scm index ba04e281eb..59fde5ac06 100644 --- a/tests/utils.scm +++ b/tests/utils.scm @@ -1,20 +1,20 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Ludovic Courtès <ludo@gnu.org> ;;; -;;; This file is part of Guix. +;;; This file is part of GNU Guix. ;;; -;;; Guix is free software; you can redistribute it and/or modify it +;;; 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. ;;; -;;; Guix is distributed in the hope that it will be useful, but +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (test-utils) #:use-module (guix utils) |