From 1ffa7090b99dfd2f54fa883929c5e78d7852657a Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 18 Jan 2013 01:06:24 +0100 Subject: distro: Change the module name space to (gnu ...). * distro: Rename to... * gnu: ... this. Update module names accordingly. * Makefile.am: Adjust accordingly. * po/POTFILES.in: Likewise. * distro.scm: Search for files under /gnu/packages instead of /distro/packages. * gnu/packages/base.scm (ld-wrapper-boot3): Likewise. --- .gitignore | 4 +- Makefile.am | 230 ++--- distro.scm | 10 +- distro/packages/acl.scm | 66 -- distro/packages/algebra.scm | 193 ---- distro/packages/aspell.scm | 54 - distro/packages/attr.scm | 77 -- distro/packages/autotools.scm | 144 --- distro/packages/base.scm | 1082 -------------------- distro/packages/bash.scm | 110 -- distro/packages/bdb.scm | 57 -- distro/packages/bdw-gc.scm | 60 -- distro/packages/bison.scm | 57 -- distro/packages/bootstrap.scm | 378 ------- distro/packages/bootstrap/i686-linux/bash | Bin 1331220 -> 0 bytes distro/packages/bootstrap/i686-linux/mkdir | Bin 725756 -> 0 bytes distro/packages/bootstrap/i686-linux/tar | Bin 1140196 -> 0 bytes distro/packages/bootstrap/i686-linux/xz | Bin 865372 -> 0 bytes distro/packages/bootstrap/x86_64-linux/bash | Bin 1419928 -> 0 bytes distro/packages/bootstrap/x86_64-linux/mkdir | Bin 799312 -> 0 bytes distro/packages/bootstrap/x86_64-linux/tar | Bin 1229888 -> 0 bytes distro/packages/bootstrap/x86_64-linux/xz | Bin 926000 -> 0 bytes distro/packages/check.scm | 48 - distro/packages/compression.scm | 200 ---- distro/packages/cpio.scm | 58 -- distro/packages/cyrus-sasl.scm | 57 -- distro/packages/ddrescue.scm | 60 -- distro/packages/dejagnu.scm | 88 -- distro/packages/ed.scm | 53 - distro/packages/emacs.scm | 93 -- distro/packages/file.scm | 44 - distro/packages/flex.scm | 63 -- distro/packages/gawk.scm | 71 -- distro/packages/gdb.scm | 65 -- distro/packages/gdbm.scm | 56 - distro/packages/gettext.scm | 78 -- distro/packages/global.scm | 58 -- distro/packages/gnupg.scm | 168 --- distro/packages/gnutls.scm | 98 -- distro/packages/gperf.scm | 55 - distro/packages/gsasl.scm | 113 -- distro/packages/guile.scm | 197 ---- distro/packages/help2man.scm | 52 - distro/packages/icu4c.scm | 66 -- distro/packages/idutils.scm | 65 -- distro/packages/indent.scm | 44 - distro/packages/ld-wrapper.scm | 147 --- distro/packages/less.scm | 51 - distro/packages/libffi.scm | 73 -- distro/packages/libidn.scm | 51 - distro/packages/libjpeg.scm | 57 -- distro/packages/libsigsegv.scm | 47 - distro/packages/libtiff.scm | 65 -- distro/packages/libunistring.scm | 58 -- distro/packages/libusb.scm | 44 - distro/packages/linux.scm | 259 ----- distro/packages/lout.scm | 132 --- distro/packages/lsh.scm | 126 --- distro/packages/m4.scm | 87 -- distro/packages/mailutils.scm | 106 -- distro/packages/make-bootstrap.scm | 562 ---------- distro/packages/mit-krb5.scm | 69 -- distro/packages/multiprecision.scm | 124 --- distro/packages/mysql.scm | 87 -- distro/packages/nano.scm | 52 - distro/packages/ncurses.scm | 128 --- distro/packages/nettle.scm | 60 -- distro/packages/openssl.scm | 68 -- distro/packages/patches/bigloo-gc-shebangs.patch | 17 - .../packages/patches/binutils-ld-new-dtags.patch | 16 - distro/packages/patches/cpio-gets-undeclared.patch | 45 - .../patches/diffutils-gets-undeclared.patch | 71 -- distro/packages/patches/emacs-configure-sh.patch | 14 - .../patches/findutils-absolute-paths.patch | 29 - distro/packages/patches/flex-bison-tests.patch | 24 - distro/packages/patches/gawk-shell.patch | 34 - .../packages/patches/gettext-gets-undeclared.patch | 77 -- .../packages/patches/glibc-bootstrap-system.patch | 28 - distro/packages/patches/glibc-no-ld-so-cache.patch | 53 - distro/packages/patches/guile-1.8-cpp-4.5.patch | 24 - distro/packages/patches/guile-default-utf8.patch | 111 -- distro/packages/patches/guile-relocatable.patch | 70 -- distro/packages/patches/libtool-skip-tests.patch | 37 - distro/packages/patches/lsh-guile-compat.patch | 9 - distro/packages/patches/lsh-no-root-login.patch | 16 - distro/packages/patches/lsh-pam-service-name.patch | 14 - distro/packages/patches/m4-gets-undeclared.patch | 45 - distro/packages/patches/m4-readlink-EINVAL.patch | 18 - distro/packages/patches/m4-s_isdir.patch | 14 - distro/packages/patches/make-impure-dirs.patch | 40 - distro/packages/patches/perl-no-sys-dirs.patch | 156 --- distro/packages/patches/procps-make-3.82.patch | 14 - .../packages/patches/readline-link-ncurses.patch | 18 - .../packages/patches/shishi-gets-undeclared.patch | 71 -- distro/packages/patches/tar-gets-undeclared.patch | 26 - distro/packages/perl.scm | 73 -- distro/packages/pkg-config.scm | 51 - distro/packages/pth.scm | 61 -- distro/packages/python.scm | 58 -- distro/packages/readline.scm | 79 -- distro/packages/recutils.scm | 57 -- distro/packages/rsync.scm | 51 - distro/packages/scheme.scm | 168 --- distro/packages/shishi.scm | 71 -- distro/packages/system.scm | 91 -- distro/packages/tcl.scm | 109 -- distro/packages/texinfo.scm | 61 -- distro/packages/time.scm | 66 -- distro/packages/wget.scm | 61 -- distro/packages/which.scm | 48 - distro/packages/xml.scm | 44 - distro/packages/zile.scm | 66 -- gnu/packages/acl.scm | 66 ++ gnu/packages/algebra.scm | 193 ++++ gnu/packages/aspell.scm | 54 + gnu/packages/attr.scm | 77 ++ gnu/packages/autotools.scm | 144 +++ gnu/packages/base.scm | 1082 ++++++++++++++++++++ gnu/packages/bash.scm | 110 ++ gnu/packages/bdb.scm | 57 ++ gnu/packages/bdw-gc.scm | 60 ++ gnu/packages/bison.scm | 57 ++ gnu/packages/bootstrap.scm | 378 +++++++ gnu/packages/bootstrap/i686-linux/bash | Bin 0 -> 1331220 bytes gnu/packages/bootstrap/i686-linux/mkdir | Bin 0 -> 725756 bytes gnu/packages/bootstrap/i686-linux/tar | Bin 0 -> 1140196 bytes gnu/packages/bootstrap/i686-linux/xz | Bin 0 -> 865372 bytes gnu/packages/bootstrap/x86_64-linux/bash | Bin 0 -> 1419928 bytes gnu/packages/bootstrap/x86_64-linux/mkdir | Bin 0 -> 799312 bytes gnu/packages/bootstrap/x86_64-linux/tar | Bin 0 -> 1229888 bytes gnu/packages/bootstrap/x86_64-linux/xz | Bin 0 -> 926000 bytes gnu/packages/check.scm | 48 + gnu/packages/compression.scm | 200 ++++ gnu/packages/cpio.scm | 58 ++ gnu/packages/cyrus-sasl.scm | 57 ++ gnu/packages/ddrescue.scm | 60 ++ gnu/packages/dejagnu.scm | 88 ++ gnu/packages/ed.scm | 53 + gnu/packages/emacs.scm | 93 ++ gnu/packages/file.scm | 44 + gnu/packages/flex.scm | 63 ++ gnu/packages/gawk.scm | 71 ++ gnu/packages/gdb.scm | 65 ++ gnu/packages/gdbm.scm | 56 + gnu/packages/gettext.scm | 78 ++ gnu/packages/global.scm | 58 ++ gnu/packages/gnupg.scm | 168 +++ gnu/packages/gnutls.scm | 98 ++ gnu/packages/gperf.scm | 55 + gnu/packages/gsasl.scm | 113 ++ gnu/packages/guile.scm | 197 ++++ gnu/packages/help2man.scm | 52 + gnu/packages/icu4c.scm | 66 ++ gnu/packages/idutils.scm | 65 ++ gnu/packages/indent.scm | 44 + gnu/packages/ld-wrapper.scm | 147 +++ gnu/packages/less.scm | 51 + gnu/packages/libffi.scm | 73 ++ gnu/packages/libidn.scm | 51 + gnu/packages/libjpeg.scm | 57 ++ gnu/packages/libsigsegv.scm | 47 + gnu/packages/libtiff.scm | 65 ++ gnu/packages/libunistring.scm | 58 ++ gnu/packages/libusb.scm | 44 + gnu/packages/linux.scm | 259 +++++ gnu/packages/lout.scm | 132 +++ gnu/packages/lsh.scm | 126 +++ gnu/packages/m4.scm | 87 ++ gnu/packages/mailutils.scm | 106 ++ gnu/packages/make-bootstrap.scm | 562 ++++++++++ gnu/packages/mit-krb5.scm | 69 ++ gnu/packages/multiprecision.scm | 124 +++ gnu/packages/mysql.scm | 87 ++ gnu/packages/nano.scm | 52 + gnu/packages/ncurses.scm | 128 +++ gnu/packages/nettle.scm | 60 ++ gnu/packages/openssl.scm | 68 ++ gnu/packages/patches/bigloo-gc-shebangs.patch | 17 + gnu/packages/patches/binutils-ld-new-dtags.patch | 16 + gnu/packages/patches/cpio-gets-undeclared.patch | 45 + .../patches/diffutils-gets-undeclared.patch | 71 ++ gnu/packages/patches/emacs-configure-sh.patch | 14 + .../patches/findutils-absolute-paths.patch | 29 + gnu/packages/patches/flex-bison-tests.patch | 24 + gnu/packages/patches/gawk-shell.patch | 34 + gnu/packages/patches/gettext-gets-undeclared.patch | 77 ++ gnu/packages/patches/glibc-bootstrap-system.patch | 28 + gnu/packages/patches/glibc-no-ld-so-cache.patch | 53 + gnu/packages/patches/guile-1.8-cpp-4.5.patch | 24 + gnu/packages/patches/guile-default-utf8.patch | 111 ++ gnu/packages/patches/guile-relocatable.patch | 70 ++ gnu/packages/patches/libtool-skip-tests.patch | 37 + gnu/packages/patches/lsh-guile-compat.patch | 9 + gnu/packages/patches/lsh-no-root-login.patch | 16 + gnu/packages/patches/lsh-pam-service-name.patch | 14 + gnu/packages/patches/m4-gets-undeclared.patch | 45 + gnu/packages/patches/m4-readlink-EINVAL.patch | 18 + gnu/packages/patches/m4-s_isdir.patch | 14 + gnu/packages/patches/make-impure-dirs.patch | 40 + gnu/packages/patches/perl-no-sys-dirs.patch | 156 +++ gnu/packages/patches/procps-make-3.82.patch | 14 + gnu/packages/patches/readline-link-ncurses.patch | 18 + gnu/packages/patches/shishi-gets-undeclared.patch | 71 ++ gnu/packages/patches/tar-gets-undeclared.patch | 26 + gnu/packages/perl.scm | 73 ++ gnu/packages/pkg-config.scm | 51 + gnu/packages/pth.scm | 61 ++ gnu/packages/python.scm | 58 ++ gnu/packages/readline.scm | 79 ++ gnu/packages/recutils.scm | 57 ++ gnu/packages/rsync.scm | 51 + gnu/packages/scheme.scm | 168 +++ gnu/packages/shishi.scm | 71 ++ gnu/packages/system.scm | 91 ++ gnu/packages/tcl.scm | 109 ++ gnu/packages/texinfo.scm | 61 ++ gnu/packages/time.scm | 66 ++ gnu/packages/wget.scm | 61 ++ gnu/packages/which.scm | 48 + gnu/packages/xml.scm | 44 + gnu/packages/zile.scm | 66 ++ guix-package.in | 4 +- guix/build-system/gnu.scm | 6 +- guix/build-system/trivial.scm | 2 +- guix/download.scm | 2 +- hydra.scm | 4 +- po/POTFILES.in | 8 +- tests/builders.scm | 4 +- tests/derivations.scm | 2 +- tests/guix-build.sh | 8 +- tests/guix-daemon.sh | 2 +- tests/guix-package.sh | 4 +- tests/packages.scm | 6 +- tests/store.scm | 2 +- tests/union.scm | 2 +- 235 files changed, 9137 insertions(+), 9137 deletions(-) delete mode 100644 distro/packages/acl.scm delete mode 100644 distro/packages/algebra.scm delete mode 100644 distro/packages/aspell.scm delete mode 100644 distro/packages/attr.scm delete mode 100644 distro/packages/autotools.scm delete mode 100644 distro/packages/base.scm delete mode 100644 distro/packages/bash.scm delete mode 100644 distro/packages/bdb.scm delete mode 100644 distro/packages/bdw-gc.scm delete mode 100644 distro/packages/bison.scm delete mode 100644 distro/packages/bootstrap.scm delete mode 100755 distro/packages/bootstrap/i686-linux/bash delete mode 100755 distro/packages/bootstrap/i686-linux/mkdir delete mode 100755 distro/packages/bootstrap/i686-linux/tar delete mode 100755 distro/packages/bootstrap/i686-linux/xz delete mode 100755 distro/packages/bootstrap/x86_64-linux/bash delete mode 100755 distro/packages/bootstrap/x86_64-linux/mkdir delete mode 100755 distro/packages/bootstrap/x86_64-linux/tar delete mode 100755 distro/packages/bootstrap/x86_64-linux/xz delete mode 100644 distro/packages/check.scm delete mode 100644 distro/packages/compression.scm delete mode 100644 distro/packages/cpio.scm delete mode 100644 distro/packages/cyrus-sasl.scm delete mode 100644 distro/packages/ddrescue.scm delete mode 100644 distro/packages/dejagnu.scm delete mode 100644 distro/packages/ed.scm delete mode 100644 distro/packages/emacs.scm delete mode 100644 distro/packages/file.scm delete mode 100644 distro/packages/flex.scm delete mode 100644 distro/packages/gawk.scm delete mode 100644 distro/packages/gdb.scm delete mode 100644 distro/packages/gdbm.scm delete mode 100644 distro/packages/gettext.scm delete mode 100644 distro/packages/global.scm delete mode 100644 distro/packages/gnupg.scm delete mode 100644 distro/packages/gnutls.scm delete mode 100644 distro/packages/gperf.scm delete mode 100644 distro/packages/gsasl.scm delete mode 100644 distro/packages/guile.scm delete mode 100644 distro/packages/help2man.scm delete mode 100644 distro/packages/icu4c.scm delete mode 100644 distro/packages/idutils.scm delete mode 100644 distro/packages/indent.scm delete mode 100644 distro/packages/ld-wrapper.scm delete mode 100644 distro/packages/less.scm delete mode 100644 distro/packages/libffi.scm delete mode 100644 distro/packages/libidn.scm delete mode 100644 distro/packages/libjpeg.scm delete mode 100644 distro/packages/libsigsegv.scm delete mode 100644 distro/packages/libtiff.scm delete mode 100644 distro/packages/libunistring.scm delete mode 100644 distro/packages/libusb.scm delete mode 100644 distro/packages/linux.scm delete mode 100644 distro/packages/lout.scm delete mode 100644 distro/packages/lsh.scm delete mode 100644 distro/packages/m4.scm delete mode 100644 distro/packages/mailutils.scm delete mode 100644 distro/packages/make-bootstrap.scm delete mode 100644 distro/packages/mit-krb5.scm delete mode 100644 distro/packages/multiprecision.scm delete mode 100644 distro/packages/mysql.scm delete mode 100644 distro/packages/nano.scm delete mode 100644 distro/packages/ncurses.scm delete mode 100644 distro/packages/nettle.scm delete mode 100644 distro/packages/openssl.scm delete mode 100644 distro/packages/patches/bigloo-gc-shebangs.patch delete mode 100644 distro/packages/patches/binutils-ld-new-dtags.patch delete mode 100644 distro/packages/patches/cpio-gets-undeclared.patch delete mode 100644 distro/packages/patches/diffutils-gets-undeclared.patch delete mode 100644 distro/packages/patches/emacs-configure-sh.patch delete mode 100644 distro/packages/patches/findutils-absolute-paths.patch delete mode 100644 distro/packages/patches/flex-bison-tests.patch delete mode 100644 distro/packages/patches/gawk-shell.patch delete mode 100644 distro/packages/patches/gettext-gets-undeclared.patch delete mode 100644 distro/packages/patches/glibc-bootstrap-system.patch delete mode 100644 distro/packages/patches/glibc-no-ld-so-cache.patch delete mode 100644 distro/packages/patches/guile-1.8-cpp-4.5.patch delete mode 100644 distro/packages/patches/guile-default-utf8.patch delete mode 100644 distro/packages/patches/guile-relocatable.patch delete mode 100644 distro/packages/patches/libtool-skip-tests.patch delete mode 100644 distro/packages/patches/lsh-guile-compat.patch delete mode 100644 distro/packages/patches/lsh-no-root-login.patch delete mode 100644 distro/packages/patches/lsh-pam-service-name.patch delete mode 100644 distro/packages/patches/m4-gets-undeclared.patch delete mode 100644 distro/packages/patches/m4-readlink-EINVAL.patch delete mode 100644 distro/packages/patches/m4-s_isdir.patch delete mode 100644 distro/packages/patches/make-impure-dirs.patch delete mode 100644 distro/packages/patches/perl-no-sys-dirs.patch delete mode 100644 distro/packages/patches/procps-make-3.82.patch delete mode 100644 distro/packages/patches/readline-link-ncurses.patch delete mode 100644 distro/packages/patches/shishi-gets-undeclared.patch delete mode 100644 distro/packages/patches/tar-gets-undeclared.patch delete mode 100644 distro/packages/perl.scm delete mode 100644 distro/packages/pkg-config.scm delete mode 100644 distro/packages/pth.scm delete mode 100644 distro/packages/python.scm delete mode 100644 distro/packages/readline.scm delete mode 100644 distro/packages/recutils.scm delete mode 100644 distro/packages/rsync.scm delete mode 100644 distro/packages/scheme.scm delete mode 100644 distro/packages/shishi.scm delete mode 100644 distro/packages/system.scm delete mode 100644 distro/packages/tcl.scm delete mode 100644 distro/packages/texinfo.scm delete mode 100644 distro/packages/time.scm delete mode 100644 distro/packages/wget.scm delete mode 100644 distro/packages/which.scm delete mode 100644 distro/packages/xml.scm delete mode 100644 distro/packages/zile.scm create mode 100644 gnu/packages/acl.scm create mode 100644 gnu/packages/algebra.scm create mode 100644 gnu/packages/aspell.scm create mode 100644 gnu/packages/attr.scm create mode 100644 gnu/packages/autotools.scm create mode 100644 gnu/packages/base.scm create mode 100644 gnu/packages/bash.scm create mode 100644 gnu/packages/bdb.scm create mode 100644 gnu/packages/bdw-gc.scm create mode 100644 gnu/packages/bison.scm create mode 100644 gnu/packages/bootstrap.scm create mode 100755 gnu/packages/bootstrap/i686-linux/bash create mode 100755 gnu/packages/bootstrap/i686-linux/mkdir create mode 100755 gnu/packages/bootstrap/i686-linux/tar create mode 100755 gnu/packages/bootstrap/i686-linux/xz create mode 100755 gnu/packages/bootstrap/x86_64-linux/bash create mode 100755 gnu/packages/bootstrap/x86_64-linux/mkdir create mode 100755 gnu/packages/bootstrap/x86_64-linux/tar create mode 100755 gnu/packages/bootstrap/x86_64-linux/xz create mode 100644 gnu/packages/check.scm create mode 100644 gnu/packages/compression.scm create mode 100644 gnu/packages/cpio.scm create mode 100644 gnu/packages/cyrus-sasl.scm create mode 100644 gnu/packages/ddrescue.scm create mode 100644 gnu/packages/dejagnu.scm create mode 100644 gnu/packages/ed.scm create mode 100644 gnu/packages/emacs.scm create mode 100644 gnu/packages/file.scm create mode 100644 gnu/packages/flex.scm create mode 100644 gnu/packages/gawk.scm create mode 100644 gnu/packages/gdb.scm create mode 100644 gnu/packages/gdbm.scm create mode 100644 gnu/packages/gettext.scm create mode 100644 gnu/packages/global.scm create mode 100644 gnu/packages/gnupg.scm create mode 100644 gnu/packages/gnutls.scm create mode 100644 gnu/packages/gperf.scm create mode 100644 gnu/packages/gsasl.scm create mode 100644 gnu/packages/guile.scm create mode 100644 gnu/packages/help2man.scm create mode 100644 gnu/packages/icu4c.scm create mode 100644 gnu/packages/idutils.scm create mode 100644 gnu/packages/indent.scm create mode 100644 gnu/packages/ld-wrapper.scm create mode 100644 gnu/packages/less.scm create mode 100644 gnu/packages/libffi.scm create mode 100644 gnu/packages/libidn.scm create mode 100644 gnu/packages/libjpeg.scm create mode 100644 gnu/packages/libsigsegv.scm create mode 100644 gnu/packages/libtiff.scm create mode 100644 gnu/packages/libunistring.scm create mode 100644 gnu/packages/libusb.scm create mode 100644 gnu/packages/linux.scm create mode 100644 gnu/packages/lout.scm create mode 100644 gnu/packages/lsh.scm create mode 100644 gnu/packages/m4.scm create mode 100644 gnu/packages/mailutils.scm create mode 100644 gnu/packages/make-bootstrap.scm create mode 100644 gnu/packages/mit-krb5.scm create mode 100644 gnu/packages/multiprecision.scm create mode 100644 gnu/packages/mysql.scm create mode 100644 gnu/packages/nano.scm create mode 100644 gnu/packages/ncurses.scm create mode 100644 gnu/packages/nettle.scm create mode 100644 gnu/packages/openssl.scm create mode 100644 gnu/packages/patches/bigloo-gc-shebangs.patch create mode 100644 gnu/packages/patches/binutils-ld-new-dtags.patch create mode 100644 gnu/packages/patches/cpio-gets-undeclared.patch create mode 100644 gnu/packages/patches/diffutils-gets-undeclared.patch create mode 100644 gnu/packages/patches/emacs-configure-sh.patch create mode 100644 gnu/packages/patches/findutils-absolute-paths.patch create mode 100644 gnu/packages/patches/flex-bison-tests.patch create mode 100644 gnu/packages/patches/gawk-shell.patch create mode 100644 gnu/packages/patches/gettext-gets-undeclared.patch create mode 100644 gnu/packages/patches/glibc-bootstrap-system.patch create mode 100644 gnu/packages/patches/glibc-no-ld-so-cache.patch create mode 100644 gnu/packages/patches/guile-1.8-cpp-4.5.patch create mode 100644 gnu/packages/patches/guile-default-utf8.patch create mode 100644 gnu/packages/patches/guile-relocatable.patch create mode 100644 gnu/packages/patches/libtool-skip-tests.patch create mode 100644 gnu/packages/patches/lsh-guile-compat.patch create mode 100644 gnu/packages/patches/lsh-no-root-login.patch create mode 100644 gnu/packages/patches/lsh-pam-service-name.patch create mode 100644 gnu/packages/patches/m4-gets-undeclared.patch create mode 100644 gnu/packages/patches/m4-readlink-EINVAL.patch create mode 100644 gnu/packages/patches/m4-s_isdir.patch create mode 100644 gnu/packages/patches/make-impure-dirs.patch create mode 100644 gnu/packages/patches/perl-no-sys-dirs.patch create mode 100644 gnu/packages/patches/procps-make-3.82.patch create mode 100644 gnu/packages/patches/readline-link-ncurses.patch create mode 100644 gnu/packages/patches/shishi-gets-undeclared.patch create mode 100644 gnu/packages/patches/tar-gets-undeclared.patch create mode 100644 gnu/packages/perl.scm create mode 100644 gnu/packages/pkg-config.scm create mode 100644 gnu/packages/pth.scm create mode 100644 gnu/packages/python.scm create mode 100644 gnu/packages/readline.scm create mode 100644 gnu/packages/recutils.scm create mode 100644 gnu/packages/rsync.scm create mode 100644 gnu/packages/scheme.scm create mode 100644 gnu/packages/shishi.scm create mode 100644 gnu/packages/system.scm create mode 100644 gnu/packages/tcl.scm create mode 100644 gnu/packages/texinfo.scm create mode 100644 gnu/packages/time.scm create mode 100644 gnu/packages/wget.scm create mode 100644 gnu/packages/which.scm create mode 100644 gnu/packages/xml.scm create mode 100644 gnu/packages/zile.scm diff --git a/.gitignore b/.gitignore index 0b21a03ece..d841cb1ad6 100644 --- a/.gitignore +++ b/.gitignore @@ -44,9 +44,9 @@ config.cache /doc/guix.pdf /doc/stamp-vti /doc/version.texi -/distro/packages/bootstrap/x86_64-linux/guile-bootstrap-2.0.6.tar.xz /guix-download -/distro/packages/bootstrap/i686-linux/guile-bootstrap-2.0.6.tar.xz +/gnu/packages/bootstrap/x86_64-linux/guile-2.0.7.tar.xz +/gnu/packages/bootstrap/i686-linux/guile-2.0.7.tar.xz /guix-package /guix/config.scm /guix-import diff --git a/Makefile.am b/Makefile.am index 35e973bbba..b4c8c931fd 100644 --- a/Makefile.am +++ b/Makefile.am @@ -45,138 +45,138 @@ MODULES = \ guix/snix.scm \ guix.scm \ distro.scm \ - distro/packages/acl.scm \ - distro/packages/algebra.scm \ - distro/packages/aspell.scm \ - distro/packages/attr.scm \ - distro/packages/autotools.scm \ - distro/packages/base.scm \ - distro/packages/bash.scm \ - distro/packages/bdb.scm \ - 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/cyrus-sasl.scm \ - distro/packages/dejagnu.scm \ - distro/packages/ddrescue.scm \ - distro/packages/ed.scm \ - distro/packages/emacs.scm \ - distro/packages/file.scm \ - distro/packages/flex.scm \ - distro/packages/gawk.scm \ - distro/packages/gdb.scm \ - distro/packages/gdbm.scm \ - distro/packages/gettext.scm \ - distro/packages/global.scm \ - 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/icu4c.scm \ - distro/packages/idutils.scm \ - distro/packages/indent.scm \ - distro/packages/ld-wrapper.scm \ - distro/packages/less.scm \ - distro/packages/libffi.scm \ - distro/packages/libidn.scm \ - distro/packages/libjpeg.scm \ - distro/packages/libsigsegv.scm \ - distro/packages/libtiff.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/mailutils.scm \ - distro/packages/make-bootstrap.scm \ - distro/packages/mit-krb5.scm \ - distro/packages/multiprecision.scm \ - distro/packages/mysql.scm \ - distro/packages/nano.scm \ - distro/packages/ncurses.scm \ - distro/packages/nettle.scm \ - distro/packages/openssl.scm \ - distro/packages/perl.scm \ - distro/packages/pkg-config.scm \ - distro/packages/pth.scm \ - distro/packages/python.scm \ - distro/packages/readline.scm \ - distro/packages/recutils.scm \ - distro/packages/rsync.scm \ - distro/packages/scheme.scm \ - distro/packages/shishi.scm \ - distro/packages/system.scm \ - distro/packages/tcl.scm \ - distro/packages/texinfo.scm \ - distro/packages/time.scm \ - distro/packages/wget.scm \ - distro/packages/which.scm \ - distro/packages/xml.scm \ - distro/packages/zile.scm + gnu/packages/acl.scm \ + gnu/packages/algebra.scm \ + gnu/packages/aspell.scm \ + gnu/packages/attr.scm \ + gnu/packages/autotools.scm \ + gnu/packages/base.scm \ + gnu/packages/bash.scm \ + gnu/packages/bdb.scm \ + gnu/packages/bdw-gc.scm \ + gnu/packages/bison.scm \ + gnu/packages/bootstrap.scm \ + gnu/packages/check.scm \ + gnu/packages/compression.scm \ + gnu/packages/cpio.scm \ + gnu/packages/cyrus-sasl.scm \ + gnu/packages/dejagnu.scm \ + gnu/packages/ddrescue.scm \ + gnu/packages/ed.scm \ + gnu/packages/emacs.scm \ + gnu/packages/file.scm \ + gnu/packages/flex.scm \ + gnu/packages/gawk.scm \ + gnu/packages/gdb.scm \ + gnu/packages/gdbm.scm \ + gnu/packages/gettext.scm \ + gnu/packages/global.scm \ + gnu/packages/gnupg.scm \ + gnu/packages/gnutls.scm \ + gnu/packages/gperf.scm \ + gnu/packages/gsasl.scm \ + gnu/packages/guile.scm \ + gnu/packages/help2man.scm \ + gnu/packages/icu4c.scm \ + gnu/packages/idutils.scm \ + gnu/packages/indent.scm \ + gnu/packages/ld-wrapper.scm \ + gnu/packages/less.scm \ + gnu/packages/libffi.scm \ + gnu/packages/libidn.scm \ + gnu/packages/libjpeg.scm \ + gnu/packages/libsigsegv.scm \ + gnu/packages/libtiff.scm \ + gnu/packages/libunistring.scm \ + gnu/packages/libusb.scm \ + gnu/packages/linux.scm \ + gnu/packages/lout.scm \ + gnu/packages/lsh.scm \ + gnu/packages/m4.scm \ + gnu/packages/mailutils.scm \ + gnu/packages/make-bootstrap.scm \ + gnu/packages/mit-krb5.scm \ + gnu/packages/multiprecision.scm \ + gnu/packages/mysql.scm \ + gnu/packages/nano.scm \ + gnu/packages/ncurses.scm \ + gnu/packages/nettle.scm \ + gnu/packages/openssl.scm \ + gnu/packages/perl.scm \ + gnu/packages/pkg-config.scm \ + gnu/packages/pth.scm \ + gnu/packages/python.scm \ + gnu/packages/readline.scm \ + gnu/packages/recutils.scm \ + gnu/packages/rsync.scm \ + gnu/packages/scheme.scm \ + gnu/packages/shishi.scm \ + gnu/packages/system.scm \ + gnu/packages/tcl.scm \ + gnu/packages/texinfo.scm \ + gnu/packages/time.scm \ + gnu/packages/wget.scm \ + gnu/packages/which.scm \ + gnu/packages/xml.scm \ + gnu/packages/zile.scm GOBJECTS = $(MODULES:%.scm=%.go) guix/config.go nobase_dist_guilemodule_DATA = $(MODULES) -patchdir = $(guilemoduledir)/distro/packages/patches +patchdir = $(guilemoduledir)/gnu/packages/patches dist_patch_DATA = \ - distro/packages/patches/bigloo-gc-shebangs.patch \ - distro/packages/patches/binutils-ld-new-dtags.patch \ - distro/packages/patches/cpio-gets-undeclared.patch \ - distro/packages/patches/diffutils-gets-undeclared.patch \ - distro/packages/patches/emacs-configure-sh.patch \ - distro/packages/patches/flex-bison-tests.patch \ - distro/packages/patches/gawk-shell.patch \ - distro/packages/patches/gettext-gets-undeclared.patch \ - distro/packages/patches/glibc-bootstrap-system.patch \ - distro/packages/patches/glibc-no-ld-so-cache.patch \ - distro/packages/patches/guile-1.8-cpp-4.5.patch \ - distro/packages/patches/guile-default-utf8.patch \ - distro/packages/patches/guile-relocatable.patch \ - distro/packages/patches/libtool-skip-tests.patch \ - distro/packages/patches/lsh-guile-compat.patch \ - distro/packages/patches/lsh-no-root-login.patch \ - distro/packages/patches/lsh-pam-service-name.patch \ - distro/packages/patches/m4-gets-undeclared.patch \ - distro/packages/patches/m4-readlink-EINVAL.patch \ - distro/packages/patches/m4-s_isdir.patch \ - distro/packages/patches/make-impure-dirs.patch \ - distro/packages/patches/findutils-absolute-paths.patch \ - distro/packages/patches/perl-no-sys-dirs.patch \ - distro/packages/patches/procps-make-3.82.patch \ - distro/packages/patches/readline-link-ncurses.patch \ - distro/packages/patches/shishi-gets-undeclared.patch \ - distro/packages/patches/tar-gets-undeclared.patch + gnu/packages/patches/bigloo-gc-shebangs.patch \ + gnu/packages/patches/binutils-ld-new-dtags.patch \ + gnu/packages/patches/cpio-gets-undeclared.patch \ + gnu/packages/patches/diffutils-gets-undeclared.patch \ + gnu/packages/patches/emacs-configure-sh.patch \ + gnu/packages/patches/flex-bison-tests.patch \ + gnu/packages/patches/gawk-shell.patch \ + gnu/packages/patches/gettext-gets-undeclared.patch \ + gnu/packages/patches/glibc-bootstrap-system.patch \ + gnu/packages/patches/glibc-no-ld-so-cache.patch \ + gnu/packages/patches/guile-1.8-cpp-4.5.patch \ + gnu/packages/patches/guile-default-utf8.patch \ + gnu/packages/patches/guile-relocatable.patch \ + gnu/packages/patches/libtool-skip-tests.patch \ + gnu/packages/patches/lsh-guile-compat.patch \ + gnu/packages/patches/lsh-no-root-login.patch \ + gnu/packages/patches/lsh-pam-service-name.patch \ + gnu/packages/patches/m4-gets-undeclared.patch \ + gnu/packages/patches/m4-readlink-EINVAL.patch \ + gnu/packages/patches/m4-s_isdir.patch \ + gnu/packages/patches/make-impure-dirs.patch \ + gnu/packages/patches/findutils-absolute-paths.patch \ + gnu/packages/patches/perl-no-sys-dirs.patch \ + gnu/packages/patches/procps-make-3.82.patch \ + gnu/packages/patches/readline-link-ncurses.patch \ + gnu/packages/patches/shishi-gets-undeclared.patch \ + gnu/packages/patches/tar-gets-undeclared.patch -bootstrapdir = $(guilemoduledir)/distro/packages/bootstrap +bootstrapdir = $(guilemoduledir)/gnu/packages/bootstrap bootstrap_x86_64_linuxdir = $(bootstrapdir)/x86_64-linux bootstrap_i686_linuxdir = $(bootstrapdir)/i686-linux dist_bootstrap_x86_64_linux_DATA = \ - distro/packages/bootstrap/x86_64-linux/bash \ - distro/packages/bootstrap/x86_64-linux/mkdir \ - distro/packages/bootstrap/x86_64-linux/tar \ - distro/packages/bootstrap/x86_64-linux/xz + gnu/packages/bootstrap/x86_64-linux/bash \ + gnu/packages/bootstrap/x86_64-linux/mkdir \ + gnu/packages/bootstrap/x86_64-linux/tar \ + gnu/packages/bootstrap/x86_64-linux/xz dist_bootstrap_i686_linux_DATA = \ - distro/packages/bootstrap/i686-linux/bash \ - distro/packages/bootstrap/i686-linux/mkdir \ - distro/packages/bootstrap/i686-linux/tar \ - distro/packages/bootstrap/i686-linux/xz + gnu/packages/bootstrap/i686-linux/bash \ + gnu/packages/bootstrap/i686-linux/mkdir \ + gnu/packages/bootstrap/i686-linux/tar \ + gnu/packages/bootstrap/i686-linux/xz # Big bootstrap binaries are not included in the tarball. Instead, they # are downloaded. nodist_bootstrap_x86_64_linux_DATA = \ - distro/packages/bootstrap/x86_64-linux/guile-2.0.7.tar.xz + gnu/packages/bootstrap/x86_64-linux/guile-2.0.7.tar.xz nodist_bootstrap_i686_linux_DATA = \ - distro/packages/bootstrap/i686-linux/guile-2.0.7.tar.xz + gnu/packages/bootstrap/i686-linux/guile-2.0.7.tar.xz # Those files must remain executable, so they remain executable once # imported into the store. @@ -193,10 +193,10 @@ DOWNLOAD_FILE = \ $(GUILE) --no-auto-compile -L "$(top_builddir)" -L "$(top_srcdir)" \ "$(top_srcdir)/build-aux/download.scm" -distro/packages/bootstrap/x86_64-linux/guile-2.0.7.tar.xz: +gnu/packages/bootstrap/x86_64-linux/guile-2.0.7.tar.xz: $(MKDIR_P) `dirname "$@"` $(DOWNLOAD_FILE) "$@" "bc43210dcd146d242bef4d354b0aeac12c4ef3118c07502d17ffa8d49e15aa2c" -distro/packages/bootstrap/i686-linux/guile-2.0.7.tar.xz: +gnu/packages/bootstrap/i686-linux/guile-2.0.7.tar.xz: $(MKDIR_P) `dirname "$@"` $(DOWNLOAD_FILE) "$@" "f9a7c6f4c556eaafa2a69bcf07d4ffbb6682ea831d4c9da9ba095aca3ccd217c" diff --git a/distro.scm b/distro.scm index c2d3d1fa40..3973584815 100644 --- a/distro.scm +++ b/distro.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012 Ludovic Courtès +;;; Copyright © 2012, 2013 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -47,12 +47,12 @@ (define %patch-path (make-parameter - (map (cut string-append <> "/distro/packages/patches") + (map (cut string-append <> "/gnu/packages/patches") %load-path))) (define %bootstrap-binaries-path (make-parameter - (map (cut string-append <> "/distro/packages/bootstrap") + (map (cut string-append <> "/gnu/packages/bootstrap") %load-path))) (define (search-patch file-name) @@ -65,9 +65,9 @@ (string-append system "/" file-name))) (define %distro-module-directory - ;; Absolute path of the (distro ...) module root. + ;; Absolute path of the (gnu packages ...) module root. (string-append (dirname (search-path %load-path "distro.scm")) - "/distro/packages")) + "/gnu/packages")) (define (package-files) "Return the list of files that implement distro modules." diff --git a/distro/packages/acl.scm b/distro/packages/acl.scm deleted file mode 100644 index 068789b562..0000000000 --- a/distro/packages/acl.scm +++ /dev/null @@ -1,66 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012 Nikita Karetnikov -;;; -;;; 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 . - -(define-module (distro packages acl) - #:use-module (guix licenses) - #:use-module (distro packages attr) - #:use-module (distro packages perl) - #:use-module ((distro packages gettext) - #:renamer (symbol-prefix-proc 'guix:)) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix build-system gnu)) - -(define-public acl - (package - (name "acl") - (version "2.2.51") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://savannah/acl/acl-" - version ".src.tar.gz")) - (sha256 - (base32 - "09aj30m49ivycl3irram8c3givc0crivjm3ymw0nhfaxrwhlb186")))) - (build-system gnu-build-system) - (arguments - `(#:phases - (alist-cons-after - 'configure 'patch-makefile-SHELL - (lambda _ - (patch-makefile-SHELL "include/buildmacros")) - (alist-replace - 'check - (lambda _ - (system* "make" "tests" "-C" "test") - - ;; XXX: Ignore the test result since this is - ;; dependent on the underlying file system. - #t) - %standard-phases)))) - (inputs `(("attr" ,attr) - ("gettext" ,guix:gettext) - ("perl" ,perl))) - (home-page - "http://savannah.nongnu.org/projects/acl") - (synopsis - "Library and tools for manipulating access control lists") - (description - "Library and tools for manipulating access control lists.") - (license '(gpl2+ lgpl2.1+)))) diff --git a/distro/packages/algebra.scm b/distro/packages/algebra.scm deleted file mode 100644 index 7bbdd6c092..0000000000 --- a/distro/packages/algebra.scm +++ /dev/null @@ -1,193 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013 Andreas Enge -;;; Copyright © 2013 Ludovic Courtès -;;; -;;; 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 . - -(define-module (distro packages algebra) - #:use-module (distro) - #:use-module (distro packages multiprecision) - #:use-module (distro packages perl) - #:use-module (distro packages readline) - #:use-module (distro packages flex) - #: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/"))) - -(define-public gsl - (package - (name "gsl") - (version "1.15") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://gnu/gsl/gsl-" - version ".tar.gz")) - (sha256 - (base32 - "18qf6jzz1r3mzb5qynywv4xx3z9g61hgkbpkdrhbgqh2g7jhgfc5")))) - (build-system gnu-build-system) - (home-page "http://www.gnu.org/software/gsl/") - (synopsis "The GNU Scientific Library, a large numerical library") - (description - "The GNU Scientific Library (GSL) is a numerical library for C -and C++ programmers. It is free software under the GNU General -Public License. - -The library provides a wide range of mathematical routines such -as random number generators, special functions and least-squares -fitting. There are over 1000 functions in total with an -extensive test suite.") - (license gpl3+))) - -(define-public pari-gp - (package - (name "pari-gp") - (version "2.5.3") - (source (origin - (method url-fetch) - (uri (string-append - "http://pari.math.u-bordeaux.fr/pub/pari/unix/pari-" - version ".tar.gz")) - (sha256 (base32 - "0zsjccnnv00kwj2gk3ww2v530kjin1rgj8p8hbl4pwcnwc7m68gl")))) - (build-system gnu-build-system) - (inputs `(("gmp" ,gmp) - ("perl" ,perl) - ("readline" ,readline))) - (arguments - (lambda (system) - `(#:make-flags '("gp") -;; FIXME: building the documentation requires tex; once this is available, -;; replace "gp" by "all" - #:test-target "dobench" - #:phases - (alist-replace - 'configure - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out")) - (readline (assoc-ref inputs "readline")) - (gmp (assoc-ref inputs "gmp"))) - (zero? - (system* "./Configure" - (string-append "--prefix=" out) - (string-append "--with-readline=" readline) - (string-append "--with-gmp=" gmp))))) -;; FIXME: readline and gmp will be detected automatically in the next -;; stable release - %standard-phases)))) - (synopsis "PARI/GP, a computer algebra system for number theory") - (description - "PARI/GP is a widely used computer algebra system designed for fast -computations in number theory (factorisations, algebraic number theory, -elliptic curves...), but it also contains a large number of other useful -functions to compute with mathematical entities such as matrices, -polynomials, power series, algebraic numbers, etc., and a lot of -transcendental functions. -PARI is also available as a C library to allow for faster computations.") - (license gpl2+) - (home-page "http://pari.math.u-bordeaux.fr/"))) - -(define-public bc - (package - (name "bc") - (version "1.06") - (source (origin - (method url-fetch) - (uri (string-append "mirror://gnu/bc/bc-" version ".tar.gz")) - (sha256 - (base32 - "0cqf5jkwx6awgd2xc2a0mkpxilzcfmhncdcfg7c9439wgkqxkxjf")))) - (build-system gnu-build-system) - (inputs `(("readline" ,readline) - ("flex" ,flex))) - (arguments - '(#:phases - (alist-replace 'configure - (lambda* (#:key outputs #:allow-other-keys) - ;; This old `configure' script doesn't support - ;; variables passed as arguments. - (let ((out (assoc-ref outputs "out"))) - (setenv "CONFIG_SHELL" (which "bash")) - (zero? - (system* "./configure" - (string-append "--prefix=" out))))) - %standard-phases))) - (home-page "http://www.gnu.org/software/bc/") - (synopsis "GNU software calculator") - (description - "bc is an arbitrary precision numeric processing language. Syntax -is similar to C, but differs in many substantial areas. It supports -interactive execution of statements. bc is a utility included in the -POSIX P1003.2/D11 draft standard. - -Since the POSIX document does not specify how bc must be implemented, -this version does not use the historical method of having bc be a -compiler for the dc calculator. This version has a single executable -that both compiles the language and runs the resulting `byte code'. The -byte code is not the dc language.") - (license gpl2+))) diff --git a/distro/packages/aspell.scm b/distro/packages/aspell.scm deleted file mode 100644 index a4c14c092c..0000000000 --- a/distro/packages/aspell.scm +++ /dev/null @@ -1,54 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013 Ludovic Courtès -;;; -;;; 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 . - -(define-module (distro packages aspell) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix build-system gnu) - #:use-module (guix licenses) - #:use-module (distro packages perl)) - -(define-public aspell - (package - (name "aspell") - (version "0.60.6.1") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://gnu/aspell/aspell-" - version ".tar.gz")) - (sha256 - (base32 - "1qgn5psfyhbrnap275xjfrzppf5a83fb67gpql0kfqv37al869gm")))) - (build-system gnu-build-system) - (inputs `(("perl" ,perl))) - (home-page "http://aspell.net/") - (synopsis - "GNU Aspell, A spell checker for many languages") - (description - "GNU Aspell is a free spell checker designed to eventually replace -Ispell. It can either be used as a library or as an independent spell -checker. Its main feature is that it does a superior job of suggesting -possible replacements for a misspelled word than just about any other -spell checker out there for the English language. Unlike Ispell, Aspell -can also easily check documents in UTF-8 without having to use a special -dictionary. Aspell will also do its best to respect the current locale -setting. Other advantages over Ispell include support for using -multiple dictionaries at once and intelligently handling personal -dictionaries when more than one Aspell process is open at once.") - (license lgpl2.1+))) diff --git a/distro/packages/attr.scm b/distro/packages/attr.scm deleted file mode 100644 index ae0d257dbe..0000000000 --- a/distro/packages/attr.scm +++ /dev/null @@ -1,77 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012 Nikita Karetnikov -;;; Copyright © 2012 Ludovic Courtès -;;; -;;; 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 . - -(define-module (distro packages attr) - #:use-module (guix licenses) - #:use-module (distro packages perl) - #:use-module ((distro packages gettext) - #:renamer (symbol-prefix-proc 'guix:)) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix build-system gnu)) - -(define-public attr - (package - (name "attr") - (version "2.4.46") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://savannah/attr/attr-" - version ".src.tar.gz")) - (sha256 - (base32 - "07qf6kb2zk512az481bbnsk9jycn477xpva1a726n5pzlzf9pmnw")))) - (build-system gnu-build-system) - (arguments - `(#:phases - (alist-cons-after - 'configure 'patch-makefile-SHELL - (lambda _ - (patch-makefile-SHELL "include/buildmacros")) - (alist-replace - 'install - (lambda _ - (zero? (system* "make" - "install" - "install-lib" - "install-dev"))) - (alist-replace - 'check - (lambda _ - ;; Use the right shell. - (substitute* "test/run" - (("/bin/sh") - (which "bash"))) - - (system* "make" "tests" "-C" "test") - - ;; XXX: Ignore the test result since this is dependent on the - ;; underlying file system. - #t) - %standard-phases))))) - (inputs `(("perl" ,perl) - ("gettext" ,guix:gettext))) - (home-page - "http://savannah.nongnu.org/projects/attr/") - (synopsis - "Library and tools for manipulating extended attributes") - (description - "Portable library and tools for manipulating extended attributes.") - (license '(gpl2+ lgpl2.1+)))) diff --git a/distro/packages/autotools.scm b/distro/packages/autotools.scm deleted file mode 100644 index 06568b2224..0000000000 --- a/distro/packages/autotools.scm +++ /dev/null @@ -1,144 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012 Nikita Karetnikov -;;; Copyright © 2012, 2013 Ludovic Courtès -;;; -;;; 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 . - -(define-module (distro packages autotools) - #:use-module (guix licenses) - #:use-module (distro) - #:use-module (distro packages perl) - #:use-module (distro packages m4) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix build-system gnu)) - -(define-public autoconf - (package - (name "autoconf") - (version "2.69") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://gnu/autoconf/autoconf-" - version ".tar.xz")) - (sha256 - (base32 - "113nlmidxy9kjr45kg9x3ngar4951mvag1js2a3j8nxcz34wxsv4")))) - (build-system gnu-build-system) - (inputs - `(("perl" ,perl) - ("m4" ,m4))) - ;; XXX: testsuite: 209 and 279 failed. The latter is an impurity. It - ;; should use our own "cpp" instead of "/lib/cpp". - (arguments `(#:tests? #f)) - (home-page - "http://www.gnu.org/software/autoconf/") - (synopsis - "GNU Autoconf, a part of the GNU Build System") - (description - "GNU Autoconf is an extensible package of M4 macros that produce -shell scripts to automatically configure software source code -packages. These scripts can adapt the packages to many kinds of -UNIX-like systems without manual user intervention. Autoconf -creates a configuration script for a package from a template -file that lists the operating system features that the package -can use, in the form of M4 macro calls.") - (license gpl3+))) ; some files are under GPLv2+ - -(define-public automake - (package - (name "automake") - (version "1.12.6") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://gnu/automake/automake-" - version ".tar.xz")) - (sha256 - (base32 - "1ynvca8z4aqcwr94rf7j1bfiid2w9w250y9qhnyj9vmi8lhsnd7q")))) - (build-system gnu-build-system) - (inputs - `(("autoconf" ,autoconf) - ("perl" ,perl))) - (home-page - "http://www.gnu.org/software/automake/") - (synopsis - "GNU Automake, a GNU standard-compliant makefile generator") - (description - "GNU Automake is a tool for automatically generating -`Makefile.in' files compliant with the GNU Coding -Standards. Automake requires the use of Autoconf.") - (license gpl2+))) ; some files are under GPLv3+ - -(define-public libtool - (package - (name "libtool") - (version "2.4.2") - (source (origin - (method url-fetch) - (uri (string-append "mirror://gnu/libtool/libtool-" - version ".tar.gz")) - (sha256 - (base32 - "0649qfpzkswgcj9vqkkr9rn4nlcx80faxpyqscy2k1x9c94f93dk")))) - (build-system gnu-build-system) - (native-inputs `(("m4" ,m4) - ("perl" ,perl))) - - ;; Separate binaries from the rest. During bootstrap, only ltdl is - ;; used; not depending on the binaries allows us to avoid retaining - ;; a reference to the bootstrap bash. - (outputs '("bin" ; libtoolize, libtool, etc. - "out")) ; libltdl.so, ltdl.h, etc. - - (arguments - `(#:patches (list (assoc-ref %build-inputs "patch/skip-tests")) - #:phases (alist-cons-before - 'check 'pre-check - (lambda* (#:key inputs #:allow-other-keys) - ;; Run the test suite in parallel, if possible. - (let ((ncores - (cond - ((getenv "NIX_BUILD_CORES") - => - (lambda (n) - (if (zero? (string->number n)) - (number->string (current-processor-count)) - n))) - (else "1")))) - (setenv "TESTSUITEFLAGS" - (string-append "-j" ncores))) - - ;; Path references to /bin/sh. - (let ((bash (assoc-ref inputs "bash"))) - (substitute* "tests/testsuite" - (("/bin/sh") - (string-append bash "/bin/bash"))))) - %standard-phases))) - (inputs `(("patch/skip-tests" - ,(search-patch "libtool-skip-tests.patch")))) - (synopsis "GNU Libtool, a generic library support script") - (description - "GNU libtool is a generic library support script. Libtool hides the -complexity of using shared libraries behind a consistent, portable interface. - -To use libtool, add the new generic library building commands to your -Makefile, Makefile.in, or Makefile.am. See the documentation for -details.") - (license gpl3+) - (home-page "http://www.gnu.org/software/libtool/"))) diff --git a/distro/packages/base.scm b/distro/packages/base.scm deleted file mode 100644 index bc705f16e7..0000000000 --- a/distro/packages/base.scm +++ /dev/null @@ -1,1082 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013 Ludovic Courtès -;;; Copyright © 2012 Nikita Karetnikov -;;; -;;; 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 . - -(define-module (distro packages base) - #:use-module (guix licenses) - #:use-module (distro) - #:use-module (distro packages acl) - #:use-module (distro packages bash) - #:use-module (distro packages bootstrap) - #:use-module (distro packages compression) - #:use-module (distro packages gawk) - #:use-module (distro packages guile) - #:use-module (distro packages multiprecision) - #:use-module (distro packages perl) - #:use-module (distro packages linux) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix build-system gnu) - #:use-module (guix build-system trivial) - #:use-module (guix utils) - #:use-module (srfi srfi-1) - #:use-module (srfi srfi-26) - #:use-module (ice-9 match)) - -;;; Commentary: -;;; -;;; Base packages of the Guix-based GNU user-land software distribution. -;;; -;;; Code: - -(define-public hello - (package - (name "hello") - (version "2.8") - (source (origin - (method url-fetch) - (uri (string-append "mirror://gnu/hello/hello-" version - ".tar.gz")) - (sha256 - (base32 "0wqd8sjmxfskrflaxywc7gqw7sfawrfvdxd9skxawzfgyy0pzdz6")))) - (build-system gnu-build-system) - (arguments '(#:configure-flags - `("--disable-dependency-tracking" - ,(string-append "--with-gawk=" ; for illustration purposes - (assoc-ref %build-inputs "gawk"))))) - (inputs `(("gawk" ,gawk))) - (synopsis "GNU Hello") - (description "Yeah...") - (home-page "http://www.gnu.org/software/hello/") - (license gpl3+))) - -(define-public grep - (package - (name "grep") - (version "2.14") - (source (origin - (method url-fetch) - (uri (string-append "mirror://gnu/grep/grep-" - version ".tar.xz")) - (sha256 - (base32 - "1qbjb1l7f9blckc5pqy8jlf6482hpx4awn2acmhyf5mv9wfq03p7")))) - (build-system gnu-build-system) - (synopsis "GNU implementation of the Unix grep command") - (description - "The grep command searches one or more input files for lines containing a -match to a specified pattern. By default, grep prints the matching -lines.") - (license gpl3+) - (home-page "http://www.gnu.org/software/grep/"))) - -(define-public sed - (package - (name "sed") - (version "4.2.1") - (source (origin - (method url-fetch) - (uri (string-append "mirror://gnu/sed/sed-" version - ".tar.bz2")) - (sha256 - (base32 - "13wlsb4sf5d5a82xjhxqmdvrrn36rmw5f0pl9qyb9zkvldnb7hra")))) - (build-system gnu-build-system) - (synopsis "GNU sed, a batch stream editor") - (arguments - `(#:phases (alist-cons-before - 'patch-source-shebangs 'patch-test-suite - (lambda* (#:key inputs #:allow-other-keys) - (let ((bash (assoc-ref inputs "bash"))) - (patch-makefile-SHELL "testsuite/Makefile.tests") - (substitute* '("testsuite/bsd.sh" - "testsuite/bug-regex9.c") - (("/bin/sh") - (string-append bash "/bin/bash"))))) - %standard-phases))) - (description - "Sed (stream editor) isn't really a true text editor or text processor. -Instead, it is used to filter text, i.e., it takes text input and performs -some operation (or set of operations) on it and outputs the modified text. -Sed is typically used for extracting part of a file using pattern matching or -substituting multiple occurrences of a string within a file.") - (license gpl3+) - (home-page "http://www.gnu.org/software/sed/"))) - -(define-public tar - (package - (name "tar") - (version "1.26") - (source (origin - (method url-fetch) - (uri (string-append "mirror://gnu/tar/tar-" - version ".tar.bz2")) - (sha256 - (base32 - "0hbdkzmchq9ycr2x1pxqdcgdbaxksh8c6ac0jf75jajhcks6jlss")))) - (build-system gnu-build-system) - (inputs `(("patch/gets" ,(search-patch "tar-gets-undeclared.patch")))) - (arguments - `(#:patches (list (assoc-ref %build-inputs "patch/gets")))) - (synopsis "GNU implementation of the `tar' archiver") - (description - "The Tar program provides the ability to create tar archives, as well as -various other kinds of manipulation. For example, you can use Tar on -previously created archives to extract files, to store additional files, or -to update or list files which were already stored. - -Initially, tar archives were used to store files conveniently on magnetic -tape. The name \"Tar\" comes from this use; it stands for tape archiver. -Despite the utility's name, Tar can direct its output to available devices, -files, or other programs (using pipes), it can even access remote devices or -files (as archives).") - (license gpl3+) - (home-page "http://www.gnu.org/software/tar/"))) - -(define-public patch - (package - (name "patch") - (version "2.6.1") - (source (origin - (method url-fetch) - (uri (string-append "mirror://gnu/patch/patch-" - version ".tar.xz")) - (sha256 - (base32 - "18012gxs9wc96izskp1q7bclrwns6rdmkn4jj31c8jbyfz6l5npq")))) - (build-system gnu-build-system) - (native-inputs '()) ; FIXME: needs `ed' for the tests - (arguments - (case-lambda - ((system) '(#:tests? #f)) - ((system cross-system) - '(#:configure-flags '("ac_cv_func_strnlen_working=yes"))))) - (synopsis "GNU Patch, a program to apply differences to files") - (description - "GNU Patch takes a patch file containing a difference listing produced by -the diff program and applies those differences to one or more original files, -producing patched versions.") - (license gpl3+) - (home-page "http://savannah.gnu.org/projects/patch/"))) - -(define-public diffutils - (package - (name "diffutils") - (version "3.2") - (source (origin - (method url-fetch) - (uri (string-append "mirror://gnu/diffutils/diffutils-" - version ".tar.xz")) - (sha256 - (base32 - "0jci0wv68025xd0s0rq4s5qxpx56dd9d730lka63qpzk1rfvfkxb")))) - (build-system gnu-build-system) - (inputs `(("patch/gets" - ,(search-patch "diffutils-gets-undeclared.patch")))) - (arguments `(#:patches (list (assoc-ref %build-inputs "patch/gets")))) - (synopsis "Programs to find differences among text files") - (description - "GNU Diffutils is a package of several programs related to finding -differences between files. - -Computer users often find occasion to ask how two files differ. Perhaps one -file is a newer version of the other file. Or maybe the two files started out -as identical copies but were changed by different people. - -You can use the diff command to show differences between two files, or each -corresponding file in two directories. diff outputs differences between files -line by line in any of several formats, selectable by command line -options. This set of differences is often called a ‘diff’ or ‘patch’. For -files that are identical, diff normally produces no output; for -binary (non-text) files, diff normally reports only that they are different. - -You can use the cmp command to show the offsets and line numbers where two -files differ. cmp can also show all the characters that differ between the -two files, side by side. - -You can use the diff3 command to show differences among three files. When two -people have made independent changes to a common original, diff3 can report -the differences between the original and the two changed versions, and can -produce a merged file that contains both persons' changes together with -warnings about conflicts. - -You can use the sdiff command to merge two files interactively.") - (license gpl3+) - (home-page "http://www.gnu.org/software/diffutils/"))) - -(define-public findutils - (package - (name "findutils") - (version "4.4.2") - (source (origin - (method url-fetch) - (uri (string-append "mirror://gnu/findutils/findutils-" - version ".tar.gz")) - (sha256 - (base32 - "0amn0bbwqvsvvsh6drfwz20ydc2czk374lzw5kksbh6bf78k4ks3")))) - (build-system gnu-build-system) - (native-inputs - `(("patch/absolute-paths" - ,(search-patch "findutils-absolute-paths.patch")))) - (arguments - (case-lambda - ((system) - `(#:patches (list (assoc-ref %build-inputs "patch/absolute-paths")))) - ((system cross-system) - ;; Work around cross-compilation failure. - ;; See . - `(#:configure-flags '("gl_cv_func_wcwidth_works=yes") - ,@(arguments cross-system))))) - (synopsis "Basic directory searching utilities of the GNU operating -system") - (description - "The GNU Find Utilities are the basic directory searching utilities of -the GNU operating system. These programs are typically used in conjunction -with other programs to provide modular and powerful directory search and file -locating capabilities to other commands. - -The tools supplied with this package are: - - * find - search for files in a directory hierarchy; - * locate - list files in databases that match a pattern; - * updatedb - update a file name database; - * xargs - build and execute command lines from standard input. -") - (license gpl3+) - (home-page "http://www.gnu.org/software/findutils/"))) - -(define-public coreutils - (package - (name "coreutils") - (version "8.20") - (source (origin - (method url-fetch) - (uri (string-append "mirror://gnu/coreutils/coreutils-" - version ".tar.xz")) - (sha256 - (base32 - "1cly97xdy3v4nbbx631k43smqw0nnpn651kkprs0yyl2cj3pkjyv")))) - (build-system gnu-build-system) - (inputs `(("acl" ,acl) - ("gmp" ,gmp) - ("perl" ,perl))) ; TODO: add SELinux - (arguments - `(#:parallel-build? #f ; help2man may be called too early - #:phases (alist-cons-before - 'build 'patch-shell-references - (lambda* (#:key inputs #:allow-other-keys) - (let ((bash (assoc-ref inputs "bash"))) - (substitute* (cons "src/split.c" - (find-files "gnulib-tests" - "\\.c$")) - (("/bin/sh") - (format #f "~a/bin/sh" bash))) - (substitute* (find-files "tests" "\\.sh$") - (("#!/bin/sh") - (format #f "#!~a/bin/bash" bash))))) - %standard-phases))) - (synopsis - "The basic file, shell and text manipulation utilities of the GNU -operating system") - (description - "The GNU Core Utilities are the basic file, shell and text manipulation -utilities of the GNU operating system. These are the core utilities which -are expected to exist on every operating system.") - (license gpl3+) - (home-page "http://www.gnu.org/software/coreutils/"))) - -(define-public gnu-make - (package - (name "make") - (version "3.82") - (source (origin - (method url-fetch) - (uri (string-append "mirror://gnu/make/make-" version - ".tar.bz2")) - (sha256 - (base32 - "0ri98385hsd7li6rh4l5afcq92v8l2lgiaz85wgcfh4w2wzsghg2")))) - (build-system gnu-build-system) - (native-inputs - `(("patch/impure-dirs" ,(search-patch "make-impure-dirs.patch")))) - (arguments - '(#:patches (list (assoc-ref %build-inputs "patch/impure-dirs")) - #:phases (alist-cons-before - 'build 'set-default-shell - (lambda* (#:key inputs #:allow-other-keys) - ;; Change the default shell from /bin/sh. - (let ((bash (assoc-ref inputs "bash"))) - (substitute* "job.c" - (("default_shell\\[\\] =.*$") - (format #f "default_shell[] = \"~a/bin/bash\";\n" - bash))))) - %standard-phases))) - (synopsis "GNU Make, a program controlling the generation of non-source -files from sources") - (description - "Make is a tool which controls the generation of executables and other -non-source files of a program from the program's source files. - -Make gets its knowledge of how to build your program from a file called the -makefile, which lists each of the non-source files and how to compute it from -other files. When you write a program, you should write a makefile for it, so -that it is possible to use Make to build and install the program.") - (license gpl3+) - (home-page "http://www.gnu.org/software/make/"))) - -(define-public binutils - (package - (name "binutils") - (version "2.22") - (source (origin - (method url-fetch) - (uri (string-append "mirror://gnu/binutils/binutils-" - version ".tar.bz2")) - (sha256 - (base32 - "1a9w66v5dwvbnawshjwqcgz7km6kw6ihkzp6sswv9ycc3knzhykc")))) - (build-system gnu-build-system) - - ;; Split Binutils in several outputs, mostly to avoid collisions in - ;; user profiles with GCC---e.g., libiberty.a. - (outputs '("out" ; ar, ld, binutils.info, etc. - "lib")) ; libbfd.a, bfd.h, etc. - - ;; TODO: Add dependency on zlib + those for Gold. - (native-inputs - `(("patch/new-dtags" ,(search-patch "binutils-ld-new-dtags.patch")))) - (arguments - `(#:patches (list (assoc-ref %build-inputs "patch/new-dtags")) - #:configure-flags '(;; Add `-static-libgcc' to not retain a dependency - ;; on GCC when bootstrapping. - "LDFLAGS=-static-libgcc" - - ;; Don't search under /usr/lib & co. - "--with-lib-path=/no-ld-lib-path"))) - - (synopsis "GNU Binutils, tools for manipulating binaries (linker, -assembler, etc.)") - (description - "The GNU Binutils are a collection of binary tools. The main ones are -`ld' (the GNU linker) and `as' (the GNU assembler). They also include the -BFD (Binary File Descriptor) library, `gprof', `nm', `strip', etc.") - (license gpl3+) - (home-page "http://www.gnu.org/software/binutils/"))) - -(define-public gcc-4.7 - (let ((stripped? #t)) ; TODO: make this a parameter - (package - (name "gcc") - (version "4.7.2") - (source (origin - (method url-fetch) - (uri (string-append "mirror://gnu/gcc/gcc-" - version "/gcc-" version ".tar.bz2")) - (sha256 - (base32 - "115h03hil99ljig8lkrq4qk426awmzh0g99wrrggxf8g07bq74la")))) - (build-system gnu-build-system) - (inputs `(("gmp" ,gmp) - ("mpfr" ,mpfr) - ("mpc" ,mpc))) ; TODO: libelf, ppl, cloog, zlib, etc. - (arguments - (lambda (system) - `(#:out-of-source? #t - #:strip-binaries? ,stripped? - #:configure-flags - `("--enable-plugin" - "--enable-languages=c,c++" - "--disable-multilib" - - "--with-local-prefix=/no-gcc-local-prefix" - - ,(let ((libc (assoc-ref %build-inputs "libc"))) - (if libc - (string-append "--with-native-system-header-dir=" libc - "/include") - "--without-headers"))) - #:make-flags - (let ((libc (assoc-ref %build-inputs "libc"))) - `(,@(if libc - (list (string-append "LDFLAGS_FOR_BUILD=" - "-L" libc "/lib " - "-Wl,-dynamic-linker " - "-Wl," libc - ,(glibc-dynamic-linker system))) - '()) - ,(string-append "BOOT_CFLAGS=-O2 " - ,(if stripped? "-g0" "-g")))) - - #:tests? #f - #:phases - (alist-cons-before - 'configure 'pre-configure - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out")) - (libc (assoc-ref inputs "libc"))) - (when libc - ;; The following is not performed for `--without-headers' - ;; cross-compiler builds. - - ;; Fix the dynamic linker's file name. - (substitute* (find-files "gcc/config" - "^linux(64|-elf)?\\.h$") - (("#define GLIBC_DYNAMIC_LINKER([^ ]*).*$" _ suffix) - (format #f "#define GLIBC_DYNAMIC_LINKER~a \"~a\"~%" - suffix - (string-append libc ,(glibc-dynamic-linker system))))) - - ;; Tell where to find libstdc++, libc, and `?crt*.o', except - ;; `crt{begin,end}.o', which come with GCC. - (substitute* (find-files "gcc/config" - "^(gnu-user(64)?|linux-elf)\\.h$") - (("#define LIB_SPEC (.*)$" _ suffix) - ;; Note that with this "lib" spec, we may still add a - ;; RUNPATH to GCC even when `libgcc_s' is not NEEDED. - ;; There's not much that can be done to avoid it, though. - (format #f "#define LIB_SPEC \"-L~a/lib %{!static:-rpath=~a/lib \ -%{!static-libgcc:-rpath=~a/lib64 -rpath=~a/lib}} \" ~a~%" - libc libc out out suffix)) - (("#define STARTFILE_SPEC.*$" line) - (format #f "#define STANDARD_STARTFILE_PREFIX_1 \"~a/lib\" -#define STANDARD_STARTFILE_PREFIX_2 \"\" -~a~%" - libc line)))) - - ;; Don't retain a dependency on the build-time sed. - (substitute* "fixincludes/fixincl.x" - (("static char const sed_cmd_z\\[\\] =.*;") - "static char const sed_cmd_z[] = \"sed\";")))) - - (alist-cons-after - 'configure 'post-configure - (lambda _ - ;; Don't store configure flags, to avoid retaining references to - ;; build-time dependencies---e.g., `--with-ppl=/nix/store/xxx'. - (substitute* "Makefile" - (("^TOPLEVEL_CONFIGURE_ARGUMENTS=(.*)$" _ rest) - "TOPLEVEL_CONFIGURE_ARGUMENTS=\n"))) - (alist-replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (zero? - (system* "make" - ,(if stripped? - "install-strip" - "install")))) - %standard-phases)))))) - - (properties `((gcc-libc . ,(assoc-ref inputs "libc")))) - (synopsis "The GNU Compiler Collection") - (description - "The GNU Compiler Collection includes compiler front ends for C, C++, -Objective-C, Fortran, OpenMP for C/C++/Fortran, Java, and Ada, as well as -libraries for these languages (libstdc++, libgcj, libgomp,...). - -GCC development is a part of the GNU Project, aiming to improve the compiler -used in the GNU system including the GNU/Linux variant.") - (license gpl3+) - (home-page "http://gcc.gnu.org/")))) - -(define-public glibc - (package - (name "glibc") - (version "2.17") - (source (origin - (method url-fetch) - (uri (string-append "mirror://gnu/glibc/glibc-" - version ".tar.xz")) - (sha256 - (base32 - "0gmjnn4kma9vgizccw1jv979xw55a8n1nkk94gg0l3hy80vy6539")))) - (build-system gnu-build-system) - - ;; Glibc's refers to , for instance, so glibc - ;; users should automatically pull Linux headers as well. - (propagated-inputs `(("linux-headers" ,linux-libre-headers))) - - (arguments - `(#:out-of-source? #t - #:patches (list (assoc-ref %build-inputs "patch/ld.so.cache")) - #:configure-flags - (list "--enable-add-ons" - "--sysconfdir=/etc" - "--localedir=/var/run/current-system/sw/lib/locale" ; XXX - (string-append "--with-headers=" - (assoc-ref %build-inputs "linux-headers") - "/include") - - ;; The default is to assume a 2.4 Linux interface, but we'll - ;; always use something newer. See "kernel-features.h" in the - ;; GNU libc for details. - "--enable-kernel=2.6.30" - - ;; Use our Bash instead of /bin/sh. - (string-append "BASH_SHELL=" - (assoc-ref %build-inputs "bash") - "/bin/bash") - - ;; XXX: Work around "undefined reference to `__stack_chk_guard'". - "libc_cv_ssp=no") - - #:tests? #f ; XXX - #:phases (alist-cons-before - 'configure 'pre-configure - (lambda* (#:key inputs outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (bin (string-append out "/bin"))) - ;; Use `pwd', not `/bin/pwd'. - (substitute* "configure" - (("/bin/pwd") "pwd")) - - ;; Install the rpc data base file under `$out/etc/rpc'. - ;; FIXME: Use installFlags = [ "sysconfdir=$(out)/etc" ]; - (substitute* "sunrpc/Makefile" - (("^\\$\\(inst_sysconfdir\\)/rpc(.*)$" _ suffix) - (string-append out "/etc/rpc" suffix "\n")) - (("^install-others =.*$") - (string-append "install-others = " out "/etc/rpc\n"))) - - (substitute* "Makeconfig" - ;; According to - ;; , - ;; linking against libgcc_s is not needed with GCC - ;; 4.7.1. - ((" -lgcc_s") "")) - - ;; Copy a statically-linked Bash in the output, with - ;; no references to other store paths. - (mkdir-p bin) - (copy-file (string-append (assoc-ref inputs "static-bash") - "/bin/bash") - (string-append bin "/bash")) - (remove-store-references (string-append bin "/bash")) - (chmod (string-append bin "/bash") #o555) - - ;; Keep a symlink, for `patch-shebang' resolution. - (with-directory-excursion bin - (symlink "bash" "sh")) - - ;; Have `system' use that Bash. - (substitute* "sysdeps/posix/system.c" - (("#define[[:blank:]]+SHELL_PATH.*$") - (format #f "#define SHELL_PATH \"~a/bin/bash\"\n" - out))) - - ;; Same for `popen'. - (substitute* "libio/iopopen.c" - (("/bin/sh") - (string-append out "/bin/bash"))))) - %standard-phases))) - (inputs `(("patch/ld.so.cache" - ,(search-patch "glibc-no-ld-so-cache.patch")) - ("static-bash" ,(static-package bash-light)))) - (synopsis "The GNU C Library") - (description - "Any Unix-like operating system needs a C library: the library which -defines the \"system calls\" and other basic facilities such as open, malloc, -printf, exit... - -The GNU C library is used as the C library in the GNU system and most systems -with the Linux kernel.") - (license lgpl2.0+) - (home-page "http://www.gnu.org/software/libc/"))) - - -;;; -;;; Bootstrap packages. -;;; - -(define gnu-make-boot0 - (package-with-bootstrap-guile - (package (inherit gnu-make) - (name "make-boot0") - (location (source-properties->location (current-source-location))) - (arguments - `(#:guile ,%bootstrap-guile - #:implicit-inputs? #f - #:tests? #f ; cannot run "make check" - ,@(substitute-keyword-arguments (package-arguments gnu-make) - ((#:phases phases) - `(alist-replace - 'build (lambda _ - (zero? (system* "./build.sh"))) - (alist-replace - 'install (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (bin (string-append out "/bin"))) - (mkdir-p bin) - (copy-file "make" - (string-append bin "/make")))) - ,phases)))))) - (inputs %bootstrap-inputs)))) - -(define diffutils-boot0 - (package-with-bootstrap-guile - (let ((p (package-with-explicit-inputs diffutils - `(("make" ,gnu-make-boot0) - ,@%bootstrap-inputs) - #:guile %bootstrap-guile))) - (package (inherit p) - (location (source-properties->location (current-source-location))) - (arguments `(#:tests? #f ; the test suite needs diffutils - ,@(package-arguments p))))))) - -(define findutils-boot0 - (package-with-bootstrap-guile - (package-with-explicit-inputs findutils - `(("make" ,gnu-make-boot0) - ("diffutils" ,diffutils-boot0) ; for tests - ,@%bootstrap-inputs) - (current-source-location) - #:guile %bootstrap-guile))) - - -(define %boot0-inputs - `(("make" ,gnu-make-boot0) - ("diffutils" ,diffutils-boot0) - ("findutils" ,findutils-boot0) - ,@%bootstrap-inputs)) - -(define* (nix-system->gnu-triplet system #:optional (vendor "unknown")) - "Return an a guess of the GNU triplet corresponding to Nix system -identifier SYSTEM." - (let* ((dash (string-index system #\-)) - (arch (substring system 0 dash)) - (os (substring system (+ 1 dash)))) - (string-append arch - "-" vendor "-" - (if (string=? os "linux") - "linux-gnu" - os)))) - -(define boot-triplet - ;; Return the triplet used to create the cross toolchain needed in the - ;; first bootstrapping stage. - (cut nix-system->gnu-triplet <> "guix")) - -;; Following Linux From Scratch, build a cross-toolchain in stage 0. That -;; toolchain actually targets the same OS and arch, but it has the advantage -;; of being independent of the libc and tools in %BOOTSTRAP-INPUTS, since -;; GCC-BOOT0 (below) is built without any reference to the target libc. - -(define binutils-boot0 - (package-with-bootstrap-guile - (package (inherit binutils) - (name "binutils-cross-boot0") - (arguments - (lambda (system) - `(#:guile ,%bootstrap-guile - #:implicit-inputs? #f - ,@(substitute-keyword-arguments (package-arguments binutils) - ((#:configure-flags cf) - `(list ,(string-append "--target=" (boot-triplet system)))))))) - (inputs %boot0-inputs)))) - -(define gcc-boot0 - (package-with-bootstrap-guile - (package (inherit gcc-4.7) - (name "gcc-cross-boot0") - (arguments - (lambda (system) - `(#:guile ,%bootstrap-guile - #:implicit-inputs? #f - #:modules ((guix build gnu-build-system) - (guix build utils) - (ice-9 regex) - (srfi srfi-1) - (srfi srfi-26)) - ,@(substitute-keyword-arguments ((package-arguments gcc-4.7) system) - ((#:configure-flags flags) - `(append (list ,(string-append "--target=" - (boot-triplet system)) - - ;; No libc yet. - "--without-headers" - - ;; Disable features not needed at this stage. - "--disable-shared" - "--enable-languages=c" - "--disable-libmudflap" - "--disable-libgomp" - "--disable-libssp" - "--disable-libquadmath" - "--disable-decimal-float") - (remove (cut string-match "--enable-languages.*" <>) - ,flags))) - ((#:phases phases) - `(alist-cons-after - 'unpack 'unpack-gmp&co - (lambda* (#:key inputs #:allow-other-keys) - (let ((gmp (assoc-ref %build-inputs "gmp-source")) - (mpfr (assoc-ref %build-inputs "mpfr-source")) - (mpc (assoc-ref %build-inputs "mpc-source"))) - - ;; To reduce the set of pre-built bootstrap inputs, build - ;; GMP & co. from GCC. - (for-each (lambda (source) - (or (zero? (system* "tar" "xvf" source)) - (error "failed to unpack tarball" - source))) - (list gmp mpfr mpc)) - - ;; Create symlinks like `gmp' -> `gmp-5.0.5'. - ,@(map (lambda (lib) - `(symlink ,(package-full-name lib) - ,(package-name lib))) - (list gmp mpfr mpc)) - - ;; MPFR headers/lib are found under $(MPFR)/src, but - ;; `configure' wrongfully tells MPC too look under - ;; $(MPFR), so fix that. - (substitute* "configure" - (("extra_mpc_mpfr_configure_flags(.+)--with-mpfr-include=([^/]+)/mpfr(.*)--with-mpfr-lib=([^ ]+)/mpfr" - _ equals include middle lib) - (string-append "extra_mpc_mpfr_configure_flags" equals - "--with-mpfr-include=" include - "/mpfr/src" middle - "--with-mpfr-lib=" lib - "/mpfr/src")) - (("gmpinc='-I([^ ]+)/mpfr -I([^ ]+)/mpfr" _ a b) - (string-append "gmpinc='-I" a "/mpfr/src " - "-I" b "/mpfr/src")) - (("gmplibs='-L([^ ]+)/mpfr" _ a) - (string-append "gmplibs='-L" a "/mpfr/src"))))) - (alist-cons-after - 'install 'symlink-libgcc_eh - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - ;; Glibc wants to link against libgcc_eh, so provide - ;; it. - (with-directory-excursion - (string-append out "/lib/gcc/" - ,(boot-triplet system) - "/" ,(package-version gcc-4.7)) - (symlink "libgcc.a" "libgcc_eh.a")))) - ,phases))))))) - - (inputs `(("gmp-source" ,(package-source gmp)) - ("mpfr-source" ,(package-source mpfr)) - ("mpc-source" ,(package-source mpc)) - ("binutils-cross" ,binutils-boot0) - - ;; Call it differently so that the builder can check whether - ;; the "libc" input is #f. - ("libc-native" ,@(assoc-ref %boot0-inputs "libc")) - ,@(alist-delete "libc" %boot0-inputs)))))) - -(define linux-libre-headers-boot0 - (package-with-bootstrap-guile - (package (inherit linux-libre-headers) - (arguments `(#:guile ,%bootstrap-guile - #:implicit-inputs? #f - ,@(package-arguments linux-libre-headers))) - (native-inputs - (let ((perl (package-with-explicit-inputs perl - %boot0-inputs - (current-source-location) - #:guile %bootstrap-guile))) - `(("perl" ,perl) - ,@%boot0-inputs)))))) - -(define %boot1-inputs - ;; 2nd stage inputs. - `(("gcc" ,gcc-boot0) - ("binutils-cross" ,binutils-boot0) - - ;; Keep "binutils" here because the cross-gcc invokes `as', not the - ;; cross-`as'. - ,@%boot0-inputs)) - -(define glibc-final-with-bootstrap-bash - ;; The final libc, "cross-built". If everything went well, the resulting - ;; store path has no dependencies. Actually, the really-final libc is - ;; built just below; the only difference is that this one uses the - ;; bootstrap Bash. - (package-with-bootstrap-guile - (package (inherit glibc) - (name "glibc-intermediate") - (arguments - (lambda (system) - `(#:guile ,%bootstrap-guile - #:implicit-inputs? #f - - ,@(substitute-keyword-arguments (package-arguments glibc) - ((#:configure-flags flags) - `(append (list ,(string-append "--host=" (boot-triplet system)) - ,(string-append "--build=" - (nix-system->gnu-triplet system)) - - ;; Build Sun/ONC RPC support. In particular, - ;; install rpc/*.h. - "--enable-obsolete-rpc") - ,flags)))))) - (propagated-inputs `(("linux-headers" ,linux-libre-headers-boot0))) - (inputs - `( ;; A native GCC is needed to build `cross-rpcgen'. - ("native-gcc" ,@(assoc-ref %boot0-inputs "gcc")) - - ;; Here, we use the bootstrap Bash, which is not satisfactory - ;; because we don't want to depend on bootstrap tools. - ("static-bash" ,@(assoc-ref %boot0-inputs "bash")) - - ,@%boot1-inputs - ,@(alist-delete "static-bash" - (package-inputs glibc))))))) ; patches - -(define (cross-gcc-wrapper gcc binutils glibc bash) - "Return a wrapper for the pseudo-cross toolchain GCC/BINUTILS/GLIBC -that makes it available under the native tool names." - (package (inherit gcc-4.7) - (name (string-append (package-name gcc) "-wrapped")) - (source #f) - (build-system trivial-build-system) - (arguments - (lambda (system) - `(#:guile ,%bootstrap-guile - #:modules ((guix build utils)) - #:builder (begin - (use-modules (guix build utils)) - - (let* ((binutils (assoc-ref %build-inputs "binutils")) - (gcc (assoc-ref %build-inputs "gcc")) - (libc (assoc-ref %build-inputs "libc")) - (bash (assoc-ref %build-inputs "bash")) - (out (assoc-ref %outputs "out")) - (bindir (string-append out "/bin")) - (triplet ,(boot-triplet system))) - (mkdir-p bindir) - (with-directory-excursion bindir - (for-each (lambda (tool) - (symlink (string-append binutils "/bin/" - triplet "-" tool) - tool)) - '("ar" "ranlib")) - - ;; GCC-BOOT0 is a libc-less cross-compiler, so it - ;; needs to be told where to find the crt files and - ;; the dynamic linker. - (call-with-output-file "gcc" - (lambda (p) - (format p "#!~a/bin/bash -exec ~a/bin/~a-gcc -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%" - bash - gcc triplet - libc libc - ,(glibc-dynamic-linker system)))) - - (chmod "gcc" #o555))))))) - (native-inputs - `(("binutils" ,binutils) - ("gcc" ,gcc) - ("libc" ,glibc) - ("bash" ,bash))) - (inputs '()))) - -(define static-bash-for-glibc - ;; A statically-linked Bash to be embedded in GLIBC-FINAL, for use by - ;; system(3) & co. - (let* ((gcc (cross-gcc-wrapper gcc-boot0 binutils-boot0 - glibc-final-with-bootstrap-bash - (car (assoc-ref %boot1-inputs "bash")))) - (bash (package (inherit bash-light) - (arguments - (lambda (system) - `(#:guile ,%bootstrap-guile - ,@(package-arguments bash-light))))))) - (package-with-bootstrap-guile - (package-with-explicit-inputs (static-package bash) - `(("gcc" ,gcc) - ("libc" ,glibc-final-with-bootstrap-bash) - ,@(fold alist-delete %boot1-inputs - '("gcc" "libc"))) - (current-source-location))))) - -(define-public glibc-final - ;; The final glibc, which embeds the statically-linked Bash built above. - (package (inherit glibc-final-with-bootstrap-bash) - (name "glibc") - (inputs `(("static-bash" ,static-bash-for-glibc) - ,@(alist-delete - "static-bash" - (package-inputs glibc-final-with-bootstrap-bash)))))) - -(define gcc-boot0-wrapped - ;; Make the cross-tools GCC-BOOT0 and BINUTILS-BOOT0 available under the - ;; non-cross names. - (cross-gcc-wrapper gcc-boot0 binutils-boot0 glibc-final - (car (assoc-ref %boot1-inputs "bash")))) - -(define %boot2-inputs - ;; 3rd stage inputs. - `(("libc" ,glibc-final) - ("gcc" ,gcc-boot0-wrapped) - ,@(fold alist-delete %boot1-inputs '("libc" "gcc")))) - -(define-public binutils-final - (package-with-bootstrap-guile - (package (inherit binutils) - (arguments - (lambda (system) - `(#:guile ,%bootstrap-guile - #:implicit-inputs? #f - ,@(package-arguments binutils)))) - (inputs %boot2-inputs)))) - -(define-public gcc-final - ;; The final GCC. - (package (inherit gcc-boot0) - (name "gcc") - (arguments - (lambda (system) - `(#:guile ,%bootstrap-guile - #:implicit-inputs? #f - - ;; Build again GMP & co. within GCC's build process, because it's hard - ;; to do outside (because GCC-BOOT0 is a cross-compiler, and thus - ;; doesn't honor $LIBRARY_PATH, which breaks `gnu-build-system'.) - ,@(substitute-keyword-arguments ((package-arguments gcc-boot0) system) - ((#:configure-flags boot-flags) - (let loop ((args ((package-arguments gcc-4.7) system))) - (match args - ((#:configure-flags normal-flags _ ...) - normal-flags) - ((_ rest ...) - (loop rest))))) - ((#:phases phases) - `(alist-delete 'symlink-libgcc_eh ,phases)))))) - - (inputs `(("gmp-source" ,(package-source gmp)) - ("mpfr-source" ,(package-source mpfr)) - ("mpc-source" ,(package-source mpc)) - ("binutils" ,binutils-final) - ,@%boot2-inputs)))) - -(define ld-wrapper-boot3 - ;; A linker wrapper that uses the bootstrap Guile. - (package - (name "ld-wrapper-boot3") - (version "0") - (source #f) - (build-system trivial-build-system) - (inputs `(("binutils" ,binutils-final) - ("guile" ,%bootstrap-guile) - ("bash" ,@(assoc-ref %boot2-inputs "bash")) - ("wrapper" ,(search-path %load-path - "distro/packages/ld-wrapper.scm")))) - (arguments - `(#:guile ,%bootstrap-guile - #:modules ((guix build utils)) - #:builder (begin - (use-modules (guix build utils) - (system base compile)) - - (let* ((out (assoc-ref %outputs "out")) - (bin (string-append out "/bin")) - (ld (string-append bin "/ld")) - (go (string-append bin "/ld.go"))) - - (setvbuf (current-output-port) _IOLBF) - (format #t "building ~s/bin/ld wrapper in ~s~%" - (assoc-ref %build-inputs "binutils") - out) - - (mkdir-p bin) - (copy-file (assoc-ref %build-inputs "wrapper") ld) - (substitute* ld - (("@GUILE@") - (string-append (assoc-ref %build-inputs "guile") - "/bin/guile")) - (("@BASH@") - (string-append (assoc-ref %build-inputs "bash") - "/bin/bash")) - (("@LD@") - (string-append (assoc-ref %build-inputs "binutils") - "/bin/ld"))) - (chmod ld #o555) - (compile-file ld #:output-file go))))) - (synopsis "The linker wrapper") - (description - "The linker wrapper (or `ld-wrapper') wraps the linker to add any -missing `-rpath' flags, and to detect any misuse of libraries outside of the -store.") - (home-page #f) - (license gpl3+))) - -(define %boot3-inputs - ;; 4th stage inputs. - `(("gcc" ,gcc-final) - ("ld-wrapper" ,ld-wrapper-boot3) - ,@(alist-delete "gcc" %boot2-inputs))) - -(define-public bash-final - ;; Link with `-static-libgcc' to make sure we don't retain a reference - ;; to the bootstrap GCC. - (package-with-bootstrap-guile - (package-with-explicit-inputs (static-libgcc-package bash) - %boot3-inputs - (current-source-location) - #:guile %bootstrap-guile))) - -(define %boot4-inputs - ;; Now use the final Bash. - `(("bash" ,bash-final) - ,@(alist-delete "bash" %boot3-inputs))) - -(define-public guile-final - (package-with-bootstrap-guile - (package-with-explicit-inputs guile-2.0/fixed - %boot4-inputs - (current-source-location) - #:guile %bootstrap-guile))) - -(define-public ld-wrapper - ;; The final `ld' wrapper, which uses the final Guile. - (package (inherit ld-wrapper-boot3) - (name "ld-wrapper") - (inputs `(("guile" ,guile-final) - ("bash" ,bash-final) - ,@(fold alist-delete (package-inputs ld-wrapper-boot3) - '("guile" "bash")))))) - -(define-public %final-inputs - ;; Final derivations used as implicit inputs by `gnu-build-system'. - (let ((finalize (cut package-with-explicit-inputs <> %boot4-inputs - (current-source-location)))) - `(,@(map (match-lambda - ((name package) - (list name (finalize package)))) - `(("tar" ,tar) - ("gzip" ,gzip) - ("bzip2" ,bzip2) - ("xz" ,xz) - ("diffutils" ,diffutils) - ("patch" ,patch) - ("coreutils" ,coreutils) - ("sed" ,sed) - ("grep" ,grep) - ("findutils" ,findutils) - ("gawk" ,gawk) - ("make" ,gnu-make))) - ("bash" ,bash-final) - ("ld-wrapper" ,ld-wrapper) - ("binutils" ,binutils-final) - ("gcc" ,gcc-final) - ("libc" ,glibc-final)))) - -;;; base.scm ends here diff --git a/distro/packages/bash.scm b/distro/packages/bash.scm deleted file mode 100644 index 0306c7197e..0000000000 --- a/distro/packages/bash.scm +++ /dev/null @@ -1,110 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012 Ludovic Courtès -;;; -;;; 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 . - -(define-module (distro packages bash) - #:use-module (guix licenses) - #:use-module (distro packages ncurses) - #:use-module (distro packages readline) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix utils) - #:use-module (guix build-system gnu)) - -(define-public bash - (let ((cppflags (string-join '("-DSYS_BASHRC='\"/etc/bashrc\"'" - "-DSYS_BASH_LOGOUT='\"/etc/bash_logout\"'" - "-DDEFAULT_PATH_VALUE='\"/no-such-path\"'" - "-DSTANDARD_UTILS_PATH='\"/no-such-path\"'" - "-DNON_INTERACTIVE_LOGIN_SHELLS" - "-DSSH_SOURCE_BASHRC") - " ")) - (post-install-phase - '(lambda* (#:key outputs #:allow-other-keys) - ;; Add a `bash' -> `sh' link. - (let ((out (assoc-ref outputs "out"))) - (with-directory-excursion (string-append out "/bin") - (symlink "bash" "sh")))))) - (package - (name "bash") - (version "4.2") - (source (origin - (method url-fetch) - (uri (string-append - "mirror://gnu/bash/bash-" version ".tar.gz")) - (sha256 - (base32 - "1n5kbblp5ykbz5q8aq88lsif2z0gnvddg9babk33024wxiwi2ym2")))) - (build-system gnu-build-system) - (inputs `(("readline" ,readline) - ("ncurses" ,ncurses))) ; TODO: add texinfo - (arguments - `(#:configure-flags `("--with-installed-readline" - ,,(string-append "CPPFLAGS=" cppflags) - ,(string-append - "LDFLAGS=-Wl,-rpath -Wl," - (assoc-ref %build-inputs "readline") - "/lib" - " -Wl,-rpath -Wl," - (assoc-ref %build-inputs "ncurses") - "/lib")) - - ;; Bash is reportedly not parallel-safe. See, for instance, - ;; and - ;; . - #:parallel-build? #f - #:parallel-tests? #f - - ;; XXX: The tests have a lot of hard-coded paths, so disable them - ;; for now. - #:tests? #f - - #:phases (alist-cons-after 'install 'post-install - ,post-install-phase - %standard-phases))) - (synopsis "GNU Bourne-Again Shell") - (description - "Bash is the shell, or command language interpreter, that will appear in -the GNU operating system. Bash is an sh-compatible shell that incorporates -useful features from the Korn shell (ksh) and C shell (csh). It is intended -to conform to the IEEE POSIX P1003.2/ISO 9945.2 Shell and Tools standard. It -offers functional improvements over sh for both programming and interactive -use. In addition, most sh scripts can be run by Bash without -modification.") - (license gpl3+) - (home-page "http://www.gnu.org/software/bash/")))) - -(define-public bash-light - ;; A stripped-down Bash for non-interactive use. - (package (inherit bash) - (name "bash-light") - (inputs '()) ; no readline, no curses - (arguments - (let ((args `(#:modules ((guix build gnu-build-system) - (guix build utils) - (srfi srfi-1) - (srfi srfi-26)) - ,@(package-arguments bash)))) - (substitute-keyword-arguments args - ((#:configure-flags flags) - `(list "--without-bash-malloc" - "--disable-readline" - "--disable-history" - "--disable-help-builtin" - "--disable-progcomp" - "--disable-net-redirections" - "--disable-nls"))))))) diff --git a/distro/packages/bdb.scm b/distro/packages/bdb.scm deleted file mode 100644 index 93bf290231..0000000000 --- a/distro/packages/bdb.scm +++ /dev/null @@ -1,57 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012 Andreas Enge -;;; -;;; 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 . - -(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) - (string-append "CONFIG_SHELL=" (which "bash")) - (string-append "SHELL=" (which "bash")))))) - %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 deleted file mode 100644 index 5a397eaaa3..0000000000 --- a/distro/packages/bdw-gc.scm +++ /dev/null @@ -1,60 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012 Ludovic Courtès -;;; -;;; 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 . - -(define-module (distro packages bdw-gc) - #:use-module (guix licenses) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix utils) - #:use-module (guix build-system gnu)) - -(define-public libgc - (package - (name "libgc") - (version "7.2alpha6") - (source (origin - (method url-fetch) - (uri (string-append - "http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/gc-" - version ".tar.gz")) - (sha256 - (base32 - "05jwadjbrv8pr7z9cb4miskicxqpxm0pca4h2rg5cgbpajr2bx7b")))) - (build-system gnu-build-system) - (synopsis "The Boehm-Demers-Weiser conservative garbage collector -for C and C++") - (description - "The Boehm-Demers-Weiser conservative garbage collector can be used -as a garbage collecting replacement for C malloc or C++ new. It allows -you to allocate memory basically as you normally would, without -explicitly deallocating memory that is no longer useful. The collector -automatically recycles memory when it determines that it can no longer -be otherwise accessed. - -The collector is also used by a number of programming language -implementations that either use C as intermediate code, want to -facilitate easier interoperation with C libraries, or just prefer the -simple collector interface. - -Alternatively, the garbage collector may be used as a leak detector for -C or C++ programs, though that is not its primary goal.") - (home-page "http://www.hpl.hp.com/personal/Hans_Boehm/gc/") - - ;; permissive X11-style license: - ;; http://www.hpl.hp.com/personal/Hans_Boehm/gc/license.txt - (license x11))) diff --git a/distro/packages/bison.scm b/distro/packages/bison.scm deleted file mode 100644 index b3111c30ab..0000000000 --- a/distro/packages/bison.scm +++ /dev/null @@ -1,57 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012 Ludovic Courtès -;;; -;;; 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 . - -(define-module (distro packages bison) - #:use-module (guix licenses) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix build-system gnu) - #:use-module (distro packages m4) - #:use-module (distro packages perl)) - -(define-public bison - (package - (name "bison") - (version "2.6.1") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://gnu/bison/bison-" - version ".tar.xz")) - (sha256 - (base32 - "0y9svfkbw8jc8yv280hqzilpvlwg60gayck83jj98djmzaxr1w86")))) - (build-system gnu-build-system) - (inputs `(("perl" ,perl))) - (propagated-inputs `(("m4" ,m4))) - (home-page "http://www.gnu.org/software/bison/") - (synopsis - "GNU Bison, a Yacc-compatible parser generator") - (description - "Bison is a general-purpose parser generator that converts an -annotated context-free grammar into an LALR(1) or GLR parser for -that grammar. Once you are proficient with Bison, you can use -it to develop a wide range of language parsers, from those used -in simple desk calculators to complex programming languages. - -Bison is upward compatible with Yacc: all properly-written Yacc -grammars ought to work with Bison with no change. Anyone -familiar with Yacc should be able to use Bison with little -trouble. You need to be fluent in C or C++ programming in order -to use Bison.") - (license gpl3+))) diff --git a/distro/packages/bootstrap.scm b/distro/packages/bootstrap.scm deleted file mode 100644 index 27183162b5..0000000000 --- a/distro/packages/bootstrap.scm +++ /dev/null @@ -1,378 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013 Ludovic Courtès -;;; -;;; 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 . - -(define-module (distro packages bootstrap) - #:use-module (guix licenses) - #:use-module (distro) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix build-system) - #:use-module (guix build-system gnu) - #:use-module (guix build-system trivial) - #:use-module ((guix store) #:select (add-to-store add-text-to-store)) - #:use-module ((guix derivations) #:select (derivation)) - #:use-module (guix utils) - #:use-module (srfi srfi-1) - #:use-module (srfi srfi-26) - #:use-module (ice-9 match) - #:export (bootstrap-origin - package-with-bootstrap-guile - glibc-dynamic-linker - - %bootstrap-guile - %bootstrap-coreutils&co - %bootstrap-binutils - %bootstrap-gcc - %bootstrap-glibc - %bootstrap-inputs)) - -;;; Commentary: -;;; -;;; Pre-built packages that are used to bootstrap the -;;; distribution--i.e., to build all the core packages from scratch. -;;; -;;; Code: - - - -;;; -;;; Helper procedures. -;;; - -(define (bootstrap-origin source) - "Return a variant of SOURCE, an instance, whose method uses -%BOOTSTRAP-GUILE to do its job." - (define (boot fetch) - (lambda* (store url hash-algo hash - #:optional name #:key system) - (fetch store url hash-algo hash - #:guile %bootstrap-guile - #:system system))) - - (let ((orig-method (origin-method source))) - (origin (inherit source) - (method (cond ((eq? orig-method url-fetch) - (boot url-fetch)) - (else orig-method)))))) - -(define (package-from-tarball name* source* program-to-test description*) - "Return a package that correspond to the extraction of SOURCE*. -PROGRAM-TO-TEST is a program to run after extraction of SOURCE*, to -check whether everything is alright." - (package - (name name*) - (version "0") - (source #f) - (build-system trivial-build-system) - (arguments - `(#:guile ,%bootstrap-guile - #:modules ((guix build utils)) - #:builder - (let ((out (assoc-ref %outputs "out")) - (tar (assoc-ref %build-inputs "tar")) - (xz (assoc-ref %build-inputs "xz")) - (tarball (assoc-ref %build-inputs "tarball"))) - (use-modules (guix build utils)) - - (mkdir out) - (copy-file tarball "binaries.tar.xz") - (system* xz "-d" "binaries.tar.xz") - (let ((builddir (getcwd))) - (with-directory-excursion out - (and (zero? (system* tar "xvf" - (string-append builddir "/binaries.tar"))) - (zero? (system* (string-append "bin/" ,program-to-test) - "--version")))))))) - (inputs - `(("tar" ,(lambda (system) - (search-bootstrap-binary "tar" system))) - ("xz" ,(lambda (system) - (search-bootstrap-binary "xz" system))) - ("tarball" ,(lambda (system) - (bootstrap-origin (source* system)))))) - (synopsis description*) - (description #f) - (home-page #f))) - -(define package-with-bootstrap-guile - (memoize - (lambda (p) - "Return a variant of P such that all its origins are fetched with -%BOOTSTRAP-GUILE." - (define rewritten-input - (match-lambda - ((name (? origin? o)) - `(,name ,(bootstrap-origin o))) - ((name (? package? p) sub-drvs ...) - `(,name ,(package-with-bootstrap-guile p) ,@sub-drvs)) - (x x))) - - (package (inherit p) - (source (match (package-source p) - ((? origin? o) (bootstrap-origin o)) - (s s))) - (inputs (map rewritten-input - (package-inputs p))) - (native-inputs (map rewritten-input - (package-native-inputs p))) - (propagated-inputs (map rewritten-input - (package-propagated-inputs p))))))) - -(define (glibc-dynamic-linker system) - "Return the name of Glibc's dynamic linker for SYSTEM." - (cond ((string=? system "x86_64-linux") "/lib/ld-linux-x86-64.so.2") - ((string=? system "i686-linux") "/lib/ld-linux.so.2") - (else (error "dynamic linker name not known for this system" - system)))) - - -;;; -;;; Bootstrap packages. -;;; - -(define %bootstrap-guile - ;; The Guile used to run the build scripts of the initial derivations. - ;; It is just unpacked from a tarball containing a pre-built binary. - ;; This is typically built using %GUILE-BOOTSTRAP-TARBALL below. - ;; - ;; XXX: Would need libc's `libnss_files2.so' for proper `getaddrinfo' - ;; support (for /etc/services). - (let ((raw (build-system - (name "raw") - (description "Raw build system with direct store access") - (build (lambda* (store name source inputs #:key outputs system) - (define (->store file) - (add-to-store store file #t #t "sha256" - (or (search-bootstrap-binary file - system) - (error "bootstrap binary not found" - file system)))) - - (let* ((tar (->store "tar")) - (xz (->store "xz")) - (mkdir (->store "mkdir")) - (bash (->store "bash")) - (guile (->store "guile-2.0.7.tar.xz")) - (builder - (add-text-to-store store - "build-bootstrap-guile.sh" - (format #f " -echo \"unpacking bootstrap Guile to '$out'...\" -~a $out -cd $out -~a -dc < ~a | ~a xv - -# Sanity check. -$out/bin/guile --version~%" - mkdir xz guile tar) - (list mkdir xz guile tar)))) - (derivation store name system - bash `(,builder) '() - `((,bash) (,builder))))))))) - (package - (name "guile-bootstrap") - (version "2.0") - (source #f) - (build-system raw) - (synopsis "Bootstrap Guile") - (description "Pre-built Guile for bootstrapping purposes.") - (home-page #f) - (license lgpl3+)))) - -(define %bootstrap-base-urls - ;; This is where the initial binaries come from. - '("http://alpha.gnu.org/gnu/guix/bootstrap" - "http://www.fdn.fr/~lcourtes/software/guix/packages")) - -(define %bootstrap-coreutils&co - (package-from-tarball "bootstrap-binaries" - (lambda (system) - (origin - (method url-fetch) - (uri (map (cut string-append <> "/" system - "/20130105/static-binaries.tar.xz") - %bootstrap-base-urls)) - (sha256 - (match system - ("x86_64-linux" - (base32 - "0md23alzy6nc5f16pric7mkagczdzr8xbh074sb3rjzrls06j1ls")) - ("i686-linux" - (base32 - "0nzj1lmm9b94g7k737cr4w1dv282w5nmhb53238ikax9r6pkc0yb")))))) - "true" ; the program to test - "Bootstrap binaries of Coreutils, Awk, etc.")) - -(define %bootstrap-binutils - (package-from-tarball "binutils-bootstrap" - (lambda (system) - (origin - (method url-fetch) - (uri (map (cut string-append <> "/" system - "/20130105/binutils-2.22.tar.xz") - %bootstrap-base-urls)) - (sha256 - (match system - ("x86_64-linux" - (base32 - "1ffmk2yy2pxvkqgzrkzp3s4jpn4qaaksyk3b5nsc5cjwfm7qkgzh")) - ("i686-linux" - (base32 - "1rafk6aq4sayvv3r3d2khn93nkyzf002xzh0xadlyci4mznr6b0a")))))) - "ld" ; the program to test - "Bootstrap binaries of the GNU Binutils")) - -(define %bootstrap-glibc - ;; The initial libc. - (package - (name "glibc-bootstrap") - (version "0") - (source #f) - (build-system trivial-build-system) - (arguments - `(#:guile ,%bootstrap-guile - #:modules ((guix build utils)) - #:builder - (let ((out (assoc-ref %outputs "out")) - (tar (assoc-ref %build-inputs "tar")) - (xz (assoc-ref %build-inputs "xz")) - (tarball (assoc-ref %build-inputs "tarball"))) - (use-modules (guix build utils)) - - (mkdir out) - (copy-file tarball "binaries.tar.xz") - (system* xz "-d" "binaries.tar.xz") - (let ((builddir (getcwd))) - (with-directory-excursion out - (system* tar "xvf" - (string-append builddir - "/binaries.tar")) - (chmod "lib" #o755) - - ;; Patch libc.so so it refers to the right path. - (substitute* "lib/libc.so" - (("/[^ ]+/lib/(libc|ld)" _ prefix) - (string-append out "/lib/" prefix)))))))) - (inputs - `(("tar" ,(lambda (system) - (search-bootstrap-binary "tar" system))) - ("xz" ,(lambda (system) - (search-bootstrap-binary "xz" system))) - ("tarball" ,(lambda (system) - (bootstrap-origin - (origin - (method url-fetch) - (uri (map (cut string-append <> "/" system - "/20130105/glibc-2.17.tar.xz") - %bootstrap-base-urls)) - (sha256 - (match system - ("x86_64-linux" - (base32 - "18kv1z9d8dr1j3hm9w7663kchqw9p6rsx11n1m143jgba2jz6jy3")) - ("i686-linux" - (base32 - "08hv8i0axwnihrcgbz19x0a7s6zyv3yx38x8r29liwl8h82x9g88")))))))))) - (synopsis "Bootstrap binaries and headers of the GNU C Library") - (description #f) - (home-page #f))) - -(define %bootstrap-gcc - ;; The initial GCC. Uses binaries from a tarball typically built by - ;; %GCC-BOOTSTRAP-TARBALL. - (package - (name "gcc-bootstrap") - (version "0") - (source #f) - (build-system trivial-build-system) - (arguments - (lambda (system) - `(#:guile ,%bootstrap-guile - #:modules ((guix build utils)) - #:builder - (let ((out (assoc-ref %outputs "out")) - (tar (assoc-ref %build-inputs "tar")) - (xz (assoc-ref %build-inputs "xz")) - (bash (assoc-ref %build-inputs "bash")) - (libc (assoc-ref %build-inputs "libc")) - (tarball (assoc-ref %build-inputs "tarball"))) - (use-modules (guix build utils) - (ice-9 popen)) - - (mkdir out) - (copy-file tarball "binaries.tar.xz") - (system* xz "-d" "binaries.tar.xz") - (let ((builddir (getcwd)) - (bindir (string-append out "/bin"))) - (with-directory-excursion out - (system* tar "xvf" - (string-append builddir "/binaries.tar"))) - - (with-directory-excursion bindir - (chmod "." #o755) - (rename-file "gcc" ".gcc-wrapped") - (call-with-output-file "gcc" - (lambda (p) - (format p "#!~a -exec ~a/bin/.gcc-wrapped -B~a/lib \ - -Wl,-rpath -Wl,~a/lib \ - -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%" - bash - out libc libc libc - ,(glibc-dynamic-linker system)))) - - (chmod "gcc" #o555))))))) - (inputs - `(("tar" ,(lambda (system) - (search-bootstrap-binary "tar" system))) - ("xz" ,(lambda (system) - (search-bootstrap-binary "xz" system))) - ("bash" ,(lambda (system) - (search-bootstrap-binary "bash" system))) - ("libc" ,%bootstrap-glibc) - ("tarball" ,(lambda (system) - (bootstrap-origin - (origin - (method url-fetch) - (uri (map (cut string-append <> "/" system - "/20130105/gcc-4.7.2.tar.xz") - %bootstrap-base-urls)) - (sha256 - (match system - ("x86_64-linux" - (base32 - "1x1p7han5crnbw906iwdifykr6grzm0w27dy9gz75j0q1b32i4px")) - ("i686-linux" - (base32 - "06wqs0xxnpw3hn0xjb4c9cs0899p1xwkcysa2rvzhvpra0c5vsg2")))))))))) - (synopsis "Bootstrap binaries of the GNU Compiler Collection") - (description #f) - (home-page #f))) - -(define %bootstrap-inputs - ;; The initial, pre-built inputs. From now on, we can start building our - ;; own packages. - `(("libc" ,%bootstrap-glibc) - ("gcc" ,%bootstrap-gcc) - ("binutils" ,%bootstrap-binutils) - ("coreutils&co" ,%bootstrap-coreutils&co) - - ;; In gnu-build-system.scm, we rely on the availability of Bash. - ("bash" ,%bootstrap-coreutils&co))) - -;;; bootstrap.scm ends here diff --git a/distro/packages/bootstrap/i686-linux/bash b/distro/packages/bootstrap/i686-linux/bash deleted file mode 100755 index 9882d4adc7..0000000000 Binary files a/distro/packages/bootstrap/i686-linux/bash and /dev/null differ diff --git a/distro/packages/bootstrap/i686-linux/mkdir b/distro/packages/bootstrap/i686-linux/mkdir deleted file mode 100755 index 0ddab232b7..0000000000 Binary files a/distro/packages/bootstrap/i686-linux/mkdir and /dev/null differ diff --git a/distro/packages/bootstrap/i686-linux/tar b/distro/packages/bootstrap/i686-linux/tar deleted file mode 100755 index 6bee702cf5..0000000000 Binary files a/distro/packages/bootstrap/i686-linux/tar and /dev/null differ diff --git a/distro/packages/bootstrap/i686-linux/xz b/distro/packages/bootstrap/i686-linux/xz deleted file mode 100755 index 5a126e4fc5..0000000000 Binary files a/distro/packages/bootstrap/i686-linux/xz and /dev/null differ diff --git a/distro/packages/bootstrap/x86_64-linux/bash b/distro/packages/bootstrap/x86_64-linux/bash deleted file mode 100755 index 3b0227fbb1..0000000000 Binary files a/distro/packages/bootstrap/x86_64-linux/bash and /dev/null differ diff --git a/distro/packages/bootstrap/x86_64-linux/mkdir b/distro/packages/bootstrap/x86_64-linux/mkdir deleted file mode 100755 index 7207ad8a46..0000000000 Binary files a/distro/packages/bootstrap/x86_64-linux/mkdir and /dev/null differ diff --git a/distro/packages/bootstrap/x86_64-linux/tar b/distro/packages/bootstrap/x86_64-linux/tar deleted file mode 100755 index 9104da7b53..0000000000 Binary files a/distro/packages/bootstrap/x86_64-linux/tar and /dev/null differ diff --git a/distro/packages/bootstrap/x86_64-linux/xz b/distro/packages/bootstrap/x86_64-linux/xz deleted file mode 100755 index 488e319b37..0000000000 Binary files a/distro/packages/bootstrap/x86_64-linux/xz and /dev/null differ diff --git a/distro/packages/check.scm b/distro/packages/check.scm deleted file mode 100644 index 49197cc135..0000000000 --- a/distro/packages/check.scm +++ /dev/null @@ -1,48 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012 Nikita Karetnikov -;;; -;;; 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 . - -(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/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 deleted file mode 100644 index 51a2d70e2d..0000000000 --- a/distro/packages/compression.scm +++ /dev/null @@ -1,200 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012 Ludovic Courtès -;;; -;;; 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 . - -(define-module (distro packages compression) - #:use-module ((guix licenses) - #:renamer (symbol-prefix-proc 'license:)) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix build-system gnu)) - -(define-public zlib - (package - (name "zlib") - (version "1.2.7") - (source - (origin - (method url-fetch) - (uri (string-append "http://zlib.net/zlib-" - version ".tar.gz")) - (sha256 - (base32 - "1i96gsdvxqb6skp9a58bacf1wxamwi9m9pg4yn7cpf7g7239r77s")))) - (build-system gnu-build-system) - (arguments - `(#:phases (alist-replace - 'configure - (lambda* (#:key outputs #:allow-other-keys) - ;; Zlib's home-made `configure' doesn't fails when passed - ;; extra flags like `--enable-fast-install', so we need to - ;; invoke it with just what it understand. - (let ((out (assoc-ref outputs "out"))) - (zero? (system* "./configure" - (string-append "--prefix=" out))))) - %standard-phases))) - (home-page "http://zlib.net/") - (synopsis "The zlib compression library") - (description - "zlib is designed to be a free, general-purpose, legally unencumbered -- -that is, not covered by any patents -- lossless data-compression library for -use on virtually any computer hardware and operating system. The zlib data -format is itself portable across platforms. Unlike the LZW compression method -used in Unix compress(1) and in the GIF image format, the compression method -currently used in zlib essentially never expands the data. (LZW can double or -triple the file size in extreme cases.) zlib's memory footprint is also -independent of the input data and can be reduced, if necessary, at some cost -in compression.") - (license license:zlib))) - -(define-public gzip - (package - (name "gzip") - (version "1.5") - (source (origin - (method url-fetch) - (uri (string-append "mirror://gnu/gzip/gzip-" - version ".tar.gz")) - (sha256 - (base32 - "18rm80kar7n016g8bsyy1a3zk50i2826xdgs874yh64rzj7nxmdm")))) - (build-system gnu-build-system) - (synopsis "Gzip, the GNU zip compression program") - (arguments - ;; FIXME: The test suite wants `less', and optionally Perl. - '(#:tests? #f)) - (description - "gzip (GNU zip) is a popular data compression program written by Jean-loup -Gailly for the GNU project. Mark Adler wrote the decompression part. - -We developed this program as a replacement for compress because of the Unisys -and IBM patents covering the LZW algorithm used by compress. These patents -made it impossible for us to use compress, and we needed a replacement. The -superior compression ratio of gzip is just a bonus.") - (license license:gpl3+) - (home-page "http://www.gnu.org/software/gzip/"))) - -(define-public bzip2 - (let ((fix-man-dir - ;; Move man pages to $out/share/. - '(lambda* (#:key outputs #:allow-other-keys) - (with-directory-excursion (assoc-ref outputs "out") - (mkdir "share") - (rename-file "man" "share")))) - (build-shared-lib - ;; Build a shared library. - '(lambda* (#:key inputs #:allow-other-keys) - (patch-makefile-SHELL "Makefile-libbz2_so") - (zero? (system* "make" "-f" "Makefile-libbz2_so")))) - (install-shared-lib - '(lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (libdir (string-append out "/lib"))) - (for-each (lambda (file) - (let ((base (basename file))) - (format #t "installing `~a' to `~a'~%" - base libdir) - (copy-file file - (string-append libdir "/" base)))) - (find-files "." "^libbz2\\.so")))))) - (package - (name "bzip2") - (version "1.0.6") - (source (origin - (method url-fetch) - (uri (string-append "http://www.bzip.org/" version "/bzip2-" - version ".tar.gz")) - (sha256 - (base32 - "1kfrc7f0ja9fdn6j1y6yir6li818npy6217hvr3wzmnmzhs8z152")))) - (build-system gnu-build-system) - (arguments - `(#:modules ((guix build gnu-build-system) - (guix build utils) - (srfi srfi-1)) - #:phases - (alist-cons-before - 'build 'build-shared-lib ,build-shared-lib - (alist-cons-after - 'install 'fix-man-dir ,fix-man-dir - (alist-cons-after - 'install 'install-shared-lib ,install-shared-lib - (alist-delete 'configure %standard-phases)))) - #:make-flags (list (string-append "PREFIX=" - (assoc-ref %outputs "out"))))) - (synopsis "high-quality data compression program") - (description - "bzip2 is a freely available, patent free (see below), high-quality data -compressor. It typically compresses files to within 10% to 15% of the best -available techniques (the PPM family of statistical compressors), whilst -being around twice as fast at compression and six times faster at -decompression.") - (license (license:bsd-style "file://LICENSE" - "See LICENSE in the distribution.")) - (home-page "http://www.bzip.org/")))) - -(define-public xz - (package - (name "xz") - (version "5.0.4") - (source (origin - (method url-fetch) - (uri (string-append "http://tukaani.org/xz/xz-" version - ".tar.gz")) - (sha256 - (base32 - "1dl35ca8fdss9z2d6y234gxh24ixq904xksizrjmjr5dimwhax6n")))) - (build-system gnu-build-system) - (synopsis - "XZ, general-purpose data compression software, successor of LZMA") - (description - "XZ Utils is free general-purpose data compression software with high -compression ratio. XZ Utils were written for POSIX-like systems, but also -work on some not-so-POSIX systems. XZ Utils are the successor to LZMA Utils. - -The core of the XZ Utils compression code is based on LZMA SDK, but it has -been modified quite a lot to be suitable for XZ Utils. The primary -compression algorithm is currently LZMA2, which is used inside the .xz -container format. With typical files, XZ Utils create 30 % smaller output -than gzip and 15 % smaller output than bzip2.") - (license '(license:gpl2+ license:lgpl2.1+)) ; bits of both - (home-page "http://tukaani.org/xz/"))) - -(define-public lzo - (package - (name "lzo") - (version "2.06") - (source - (origin - (method url-fetch) - (uri (string-append "http://www.oberhumer.com/opensource/lzo/download/lzo-" - version ".tar.gz")) - (sha256 - (base32 - "0wryshs446s7cclrbjykyj766znhcpnr7s3cxy33ybfn6vwfcygz")))) - (build-system gnu-build-system) - (home-page "http://www.oberhumer.com/opensource/lzo") - (synopsis - "A data compresion library suitable for real-time data de-/compression") - (description - "LZO is a data compression library which is suitable for data -de-/compression in real-time. This means it favours speed over -compression ratio. - -LZO is written in ANSI C. Both the source code and the compressed data -format are designed to be portable across platforms.") - (license license:gpl2+))) diff --git a/distro/packages/cpio.scm b/distro/packages/cpio.scm deleted file mode 100644 index 07c0ec3f53..0000000000 --- a/distro/packages/cpio.scm +++ /dev/null @@ -1,58 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012 Nikita Karetnikov -;;; -;;; 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 . - -(define-module (distro packages cpio) - #:use-module (guix licenses) - #:use-module (distro) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix build-system gnu)) - -(define-public cpio - (package - (name "cpio") - (version "2.11") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://gnu/cpio/cpio-" - version ".tar.bz2")) - (sha256 - (base32 - "1gavgpzqwgkpagjxw72xgxz52y1ifgz0ckqh8g7cckz7jvyhp0mv")))) - (build-system gnu-build-system) - (arguments - `(#:patches (list (assoc-ref %build-inputs - "patch/gets")))) - (inputs - `(("patch/gets" ,(search-patch "cpio-gets-undeclared.patch")))) - (home-page "https://www.gnu.org/software/cpio/") - (synopsis - "A program to create or extract from cpio archives") - (description - "GNU Cpio copies files into or out of a cpio or tar archive. The -archive can be another file on the disk, a magnetic tape, or a pipe. - -GNU Cpio supports the following archive formats: binary, old ASCII, new -ASCII, crc, HPUX binary, HPUX old ASCII, old tar, and POSIX.1 tar. The -tar format is provided for compatability with the tar program. By -default, cpio creates binary format archives, for compatibility with -older cpio programs. When extracting from archives, cpio automatically -recognizes which kind of archive it is reading and can read archives -created on machines with a different byte-order.") - (license gpl3+))) \ No newline at end of file diff --git a/distro/packages/cyrus-sasl.scm b/distro/packages/cyrus-sasl.scm deleted file mode 100644 index 9ce2051a68..0000000000 --- a/distro/packages/cyrus-sasl.scm +++ /dev/null @@ -1,57 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013 Ludovic Courtès -;;; Copyright © 2013 Andreas Enge -;;; -;;; 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 . - -(define-module (distro packages cyrus-sasl) - #:use-module (distro) - #:use-module (distro packages gdbm) - #:use-module (distro packages mit-krb5) - #:use-module (distro packages openssl) - #:use-module ((guix licenses) - #:renamer (symbol-prefix-proc 'license:)) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix build-system gnu)) - -(define-public cyrus-sasl - (package - (name "cyrus-sasl") - (version "2.1.26") - (source (origin - (method url-fetch) - (uri (string-append "ftp://ftp.cyrusimap.org/cyrus-sasl/cyrus-sasl-" version - ".tar.gz")) - (sha256 (base32 - "1hvvbcsg21nlncbgs0cgn3iwlnb3vannzwsp6rwvnn9ba4v53g4g")))) - (build-system gnu-build-system) - (inputs `(("gdbm" ,gdbm) - ("mit-krb5" ,mit-krb5) - ("openssl" ,openssl))) - (arguments - '(#:configure-flags (list (string-append "--with-plugindir=" - (assoc-ref %outputs "out") - "/lib/sasl2")))) - (synopsis "Cyrus SASL, an implementation of the Simple Authentication Security Layer framework") - (description - "SASL (Simple Authentication Security Layer) is an Internet -standards-track method for remote computers to authenticate. The Cyrus SASL -library makes supporting various SASL mechanisms easy for both client and -server writers.") - (license (license:bsd-style "file://COPYING" - "See COPYING in the distribution.")) - (home-page "http://cyrusimap.web.cmu.edu/index.php"))) diff --git a/distro/packages/ddrescue.scm b/distro/packages/ddrescue.scm deleted file mode 100644 index 97bfd78309..0000000000 --- a/distro/packages/ddrescue.scm +++ /dev/null @@ -1,60 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012 Nikita Karetnikov -;;; -;;; 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 . - -(define-module (distro packages ddrescue) - #:use-module (guix licenses) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix build-system gnu)) - -(define-public ddrescue - (package - (name "ddrescue") - (version "1.16") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://gnu/ddrescue/ddrescue-" - version ".tar.gz")) - (sha256 - (base32 - "1rixya7p8c4jrn4p0flf6h5dqwybrilf3hrj4r7x41h3zgjz5cvn")))) - (build-system gnu-build-system) - (home-page - "http://www.gnu.org/software/ddrescue/ddrescue.html") - (synopsis "GNU ddrescue, a data recovery tool") - (description - "GNU ddrescue is a data recovery tool. It copies data from one -file or block device (hard disc, cdrom, etc) to another, trying hard to -rescue data in case of read errors. - -The basic operation of ddrescue is fully automatic. That is, you don't -have to wait for an error, stop the program, read the log, run it in -reverse mode, etc. - -If you use the logfile feature of ddrescue, the data is rescued very -efficiently (only the needed blocks are read). Also you can interrupt -the rescue at any time and resume it later at the same point. - -Automatic merging of backups: If you have two or more damaged copies of -a file, cdrom, etc, and run ddrescue on all of them, one at a time, with -the same output file, you will probably obtain a complete and error-free -file. This is so because the probability of having damaged areas at the -same places on different input files is very low. Using the logfile, -only the needed blocks are read from the second and successive copies.") - (license gpl3+))) diff --git a/distro/packages/dejagnu.scm b/distro/packages/dejagnu.scm deleted file mode 100644 index f350f8a973..0000000000 --- a/distro/packages/dejagnu.scm +++ /dev/null @@ -1,88 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013 Ludovic Courtès -;;; -;;; 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 . - -(define-module (distro packages dejagnu) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix build-system gnu) - #:use-module (guix licenses) - #:use-module (distro packages tcl)) - -(define-public dejagnu - (package - (name "dejagnu") - (version "1.5") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://gnu/dejagnu/dejagnu-" - version ".tar.gz")) - (sha256 - (base32 - "1nx3x3h96a82q92q108q71giv2nz9xmbbn2nrlr3wvvs6l45id68")))) - (build-system gnu-build-system) - (inputs `(("expect" ,expect))) - (arguments - '(#:phases (alist-replace - 'check - (lambda _ - ;; Note: The test-suite *requires* /dev/pts among the - ;; `build-chroot-dirs' of the build daemon when - ;; building in a chroot. See - ;; - ;; for details. - (if (and (directory-exists? "/dev/pts") - (directory-exists? "/proc")) - (begin - ;; Provide `runtest' with a log name, otherwise - ;; it tries to run `whoami', which fails when in - ;; a chroot. - (setenv "LOGNAME" "guix-builder") - - ;; The test-suite needs to have a non-empty stdin: - ;; . - (zero? - (system "make check < /dev/zero"))) - (begin - (display "test suite cannot be run, skipping\n") - #t))) - (alist-cons-after - 'install 'post-install - (lambda* (#:key inputs outputs #:allow-other-keys) - ;; Use the right `expect' binary. - (let ((out (assoc-ref outputs "out")) - (expect (assoc-ref inputs "expect"))) - (substitute* (string-append out "/bin/runtest") - (("^mypath.*$" all) - (string-append all - "export PATH=" - expect "/bin:$PATH\n"))))) - %standard-phases)))) - (home-page - "http://www.gnu.org/software/dejagnu/") - (synopsis "The DejaGNU testing framework") - (description - "DejaGnu is a framework for testing other programs. Its purpose -is to provide a single front end for all tests. Think of it as a -custom library of Tcl procedures crafted to support writing a -test harness. A test harness is the testing infrastructure that -is created to support a specific program or tool. Each program -can have multiple testsuites, all supported by a single test -harness. DejaGnu is written in Expect, which in turn uses Tcl -- -Tool command language.") - (license gpl2+))) diff --git a/distro/packages/ed.scm b/distro/packages/ed.scm deleted file mode 100644 index 614b3ae645..0000000000 --- a/distro/packages/ed.scm +++ /dev/null @@ -1,53 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012 Nikita Karetnikov -;;; -;;; 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 . - -(define-module (distro packages ed) - #:use-module (guix licenses) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix build-system gnu)) - -(define-public ed - (package - (name "ed") - (version "1.5") - (source - (origin - (method url-fetch) - (uri (string-append - "mirror://gnu/ed/ed-" - version - ".tar.gz")) - (sha256 - (base32 - "18gvhyhwpabmgv4lh21lg8vl3z7acdyhh2mr2kj9g75wksj39pcp")))) - (build-system gnu-build-system) - (arguments '(#:configure-flags '("CC=gcc"))) - (home-page "http://www.gnu.org/software/ed/") - (synopsis - "GNU ed, an implementation of the standard Unix editor") - (description - "GNU ed is a line-oriented text editor. It is used to create, -display, modify and otherwise manipulate text files, both -interactively and via shell scripts. A restricted version of ed, -red, can only edit files in the current directory and cannot -execute shell commands. Ed is the \"standard\" text editor in the -sense that it is the original editor for Unix, and thus widely -available. For most purposes, however, it is superseded by -full-screen editors such as GNU Emacs or GNU Moe.") - (license gpl3+))) diff --git a/distro/packages/emacs.scm b/distro/packages/emacs.scm deleted file mode 100644 index 5a3d3f3910..0000000000 --- a/distro/packages/emacs.scm +++ /dev/null @@ -1,93 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013 Ludovic Courtès -;;; -;;; 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 . - -(define-module (distro packages emacs) - #:use-module (guix licenses) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix build-system gnu) - #:use-module (distro) - #:use-module (distro packages ncurses) - #:use-module (distro packages texinfo) - #:use-module (distro packages gnutls) - #:use-module (distro packages pkg-config)) - -(define-public emacs - (package - (name "emacs") - (version "24.2") - (source (origin - (method url-fetch) - (uri (string-append "mirror://gnu/emacs/emacs-" - version ".tar.bz2")) - (sha256 - (base32 - "13wbjfjmz13qpjwssy44nw2230lllmkkgjsy0rqfm6am2cf87n3k")))) - (build-system gnu-build-system) - (arguments - '(#:configure-flags - (list (string-append "--with-crt-dir=" (assoc-ref %build-inputs "libc") - "/lib")) - #:patches (list (assoc-ref %build-inputs "patch/epaths")) - #:phases (alist-cons-before - 'configure 'fix-/bin/pwd - (lambda _ - ;; Use `pwd', not `/bin/pwd'. - (substitute* (find-files "." "^Makefile\\.in$") - (("/bin/pwd") - "pwd"))) - %standard-phases))) - (inputs - `(("pkg-config" ,pkg-config) - ("gnutls" ,gnutls) - ("texinfo" ,texinfo) - ("ncurses" ,ncurses) - - ;; TODO: Add the optional dependencies. - ;; ("xlibs" ,xlibs) - ;; ("gtk+" ,gtk+) - ;; ("libXft" ,libXft) - ;; ("libtiff" ,libtiff) - ;; ("libungif" ,libungif) - ;; ("libjpeg" ,libjpeg) - ;; ("libpng" ,libpng) - ;; ("libXpm" ,libXpm) - ;; ("libxml2" ,libxml2) - ;; ("dbus-library" ,dbus-library) - - ("patch/epaths" ,(search-patch "emacs-configure-sh.patch")) - )) - (home-page "http://www.gnu.org/software/emacs/") - (synopsis - "GNU Emacs 24, the extensible, customizable text editor") - (description - "GNU Emacs is an extensible, customizable text editor—and more. At its -core is an interpreter for Emacs Lisp, a dialect of the Lisp -programming language with extensions to support text editing. - -The features of GNU Emacs include: content-sensitive editing modes, -including syntax coloring, for a wide variety of file types including -plain text, source code, and HTML; complete built-in documentation, -including a tutorial for new users; full Unicode support for nearly all -human languages and their scripts; highly customizable, using Emacs -Lisp code or a graphical interface; a large number of extensions that -add other functionality, including a project planner, mail and news -reader, debugger interface, calendar, and more. Many of these -extensions are distributed with GNU Emacs; others are available -separately.") - (license gpl3+))) diff --git a/distro/packages/file.scm b/distro/packages/file.scm deleted file mode 100644 index 61bdd71cfe..0000000000 --- a/distro/packages/file.scm +++ /dev/null @@ -1,44 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013 Andreas Enge -;;; -;;; 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 . - -(define-module (distro packages file) - #:use-module (distro) - #:use-module (guix licenses) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix build-system gnu)) - -(define-public file - (package - (name "file") - (version "5.12") - (source (origin - (method url-fetch) - (uri (string-append "ftp://ftp.astron.com/pub/file/file-" - version ".tar.gz")) - (sha256 (base32 - "08ix4xrvan0k80n0l5lqfmc4azjv5lyhvhwdxny4r09j5smhv78r")))) - (build-system gnu-build-system) - (synopsis "file, a file type guesser") - (description - "The file command is a file type guesser, a command-line tool that tells -you in words what kind of data a file contains. It does not rely on filename -extentions to tell you the type of a file, but looks at the actual contents -of the file.") - (license bsd-2) - (home-page "http://www.darwinsys.com/file/"))) diff --git a/distro/packages/flex.scm b/distro/packages/flex.scm deleted file mode 100644 index 2cfdbfe23a..0000000000 --- a/distro/packages/flex.scm +++ /dev/null @@ -1,63 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012 Ludovic Courtès -;;; -;;; 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 . - -(define-module (distro packages flex) - #:use-module (guix licenses) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix build-system gnu) - #:use-module (distro) - #:use-module (distro packages m4) - #:use-module (distro packages bison) - #:use-module (distro packages indent)) - -(define-public flex - (package - (name "flex") - (version "2.5.37") - (source (origin - (method url-fetch) - (uri (string-append "mirror://sourceforge/flex/flex-" - version ".tar.bz2")) - (sha256 - (base32 - "0ah5mi4j62b85a9rllv1004mzjb5cd0mn4glvz13p88rpx77pahp")))) - (build-system gnu-build-system) - (arguments - '(#:patches (list (assoc-ref %build-inputs "patch/bison-tests")))) - (inputs `(("patch/bison-tests" ,(search-patch "flex-bison-tests.patch")) - ("bison" ,bison) - ("indent" ,indent))) - (propagated-inputs `(("m4" ,m4))) - (home-page "http://flex.sourceforge.net/") - (synopsis "A fast lexical analyser generator") - (description - "Flex is a tool for generating scanners. A scanner, sometimes -called a tokenizer, is a program which recognizes lexical patterns in -text. The flex program reads user-specified input files, or its standard -input if no file names are given, for a description of a scanner to -generate. The description is in the form of pairs of regular expressions -and C code, called rules. Flex generates a C source file named, -\"lex.yy.c\", which defines the function yylex(). The file \"lex.yy.c\" -can be compiled and linked to produce an executable. When the executable -is run, it analyzes its input for occurrences of text matching the -regular expressions for each rule. Whenever it finds a match, it -executes the corresponding C code.") - (license (bsd-style "file://COPYING" - "See COPYING in the distribution.")))) - diff --git a/distro/packages/gawk.scm b/distro/packages/gawk.scm deleted file mode 100644 index 6fed7f8b70..0000000000 --- a/distro/packages/gawk.scm +++ /dev/null @@ -1,71 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013 Ludovic Courtès -;;; -;;; 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 . - -(define-module (distro packages gawk) - #:use-module (guix licenses) - #:use-module (distro packages libsigsegv) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix utils) - #:use-module (guix build-system gnu)) - -(define-public gawk - (package - (name "gawk") - (version "4.0.0") - (source (origin - (method url-fetch) - (uri (string-append "mirror://gnu/gawk/gawk-" version - ".tar.bz2")) - (sha256 - (base32 "0sss7rhpvizi2a88h6giv0i7w5h07s2fxkw3s6n1hqvcnhrfgbb0")))) - (build-system gnu-build-system) - (arguments - (case-lambda - ((system) - `(#:parallel-tests? #f ; test suite fails in parallel - - ;; Work around test failure on Cygwin. - #:tests? ,(not (string=? system "i686-cygwin")) - - #:phases (alist-cons-before - 'configure 'set-shell-file-name - (lambda* (#:key inputs #:allow-other-keys) - ;; Refer to the right shell. - (let ((bash (assoc-ref inputs "bash"))) - (substitute* "io.c" - (("/bin/sh") - (string-append bash "/bin/bash"))))) - %standard-phases))) - ((system cross-system) - '(#:parallel-tests? #f)))) - (inputs `(("libsigsegv" ,libsigsegv))) - (home-page "http://www.gnu.org/software/gawk/") - (synopsis "GNU implementation of the Awk programming language") - (description - "Many computer users need to manipulate text files: extract and then -operate on data from parts of certain lines while discarding the rest, make -changes in various text files wherever certain patterns appear, and so on. -To write a program to do these things in a language such as C or Pascal is a -time-consuming inconvenience that may take many lines of code. The job is -easy with awk, especially the GNU implementation: Gawk. - -The awk utility interprets a special-purpose programming language that makes -it possible to handle many data-reformatting jobs with just a few lines of -code.") - (license gpl3+))) diff --git a/distro/packages/gdb.scm b/distro/packages/gdb.scm deleted file mode 100644 index 4540c04099..0000000000 --- a/distro/packages/gdb.scm +++ /dev/null @@ -1,65 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013 Ludovic Courtès -;;; -;;; 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 . - -(define-module (distro packages gdb) - #:use-module (distro packages ncurses) - #:use-module (distro packages readline) - #:use-module (distro packages dejagnu) - #:use-module (distro packages texinfo) - #:use-module (distro packages multiprecision) - #:use-module (distro packages xml) - #:use-module (distro packages python) - #:use-module ((guix licenses) #:select (gpl3+)) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix build-system gnu)) - -(define-public gdb - (package - (name "gdb") - (version "7.5") - (source (origin - (method url-fetch) - (uri (string-append "mirror://gnu/gdb/gdb-" - version ".tar.bz2")) - (sha256 - (base32 - "0chrws5ga90b50kp06yll6zy42fhnx9yr87r4i7swsc369fc8y6i")))) - (build-system gnu-build-system) - (arguments - '(#:phases (alist-cons-after - 'configure 'post-configure - (lambda _ - (patch-makefile-SHELL "gdb/gdbserver/Makefile.in")) - %standard-phases))) - (inputs - `(("expat" ,expat) - ("mpfr" ,mpfr) - ("gmp" ,gmp) - ("readline" ,readline) - ("ncurses" ,ncurses) - ("python" ,python) - ("texinfo" ,texinfo) - ("dejagnu" ,dejagnu))) - (home-page "http://www.gnu.org/software/gdb/") - (synopsis "GDB, the GNU Project debugger") - (description - "GDB, the GNU Project debugger, allows you to see what is going -on `inside' another program while it executes -- or what another -program was doing at the moment it crashed.") - (license gpl3+))) diff --git a/distro/packages/gdbm.scm b/distro/packages/gdbm.scm deleted file mode 100644 index 47f1b95e95..0000000000 --- a/distro/packages/gdbm.scm +++ /dev/null @@ -1,56 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012 Ludovic Courtès -;;; -;;; 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 . - -(define-module (distro packages gdbm) - #:use-module (guix licenses) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix build-system gnu)) - -(define-public gdbm - (package - (name "gdbm") - (version "1.10") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://gnu/gdbm/gdbm-" - version ".tar.gz")) - (sha256 - (base32 - "0h9lfzdjc2yl849y0byg51h6xfjg0y7vg9jnsw3gpfwlbd617y13")))) - (build-system gnu-build-system) - (home-page "http://www.gnu.org/software/gdbm/") - (synopsis "GNU dbm key/value database library") - (description - "GNU dbm (or GDBM, for short) is a library of database functions -that use extensible hashing and work similar to the standard UNIX dbm. -These routines are provided to a programmer needing to create and -manipulate a hashed database. - -The basic use of GDBM is to store key/data pairs in a data file. Each -key must be unique and each key is paired with only one data item. - -The library provides primitives for storing key/data pairs, searching -and retrieving the data by its key and deleting a key along with its -data. It also support sequential iteration over all key/data pairs in a -database. - -For compatibility with programs using old UNIX dbm function, the package -also provides traditional dbm and ndbm interfaces.") - (license gpl3+))) diff --git a/distro/packages/gettext.scm b/distro/packages/gettext.scm deleted file mode 100644 index e4d4acc615..0000000000 --- a/distro/packages/gettext.scm +++ /dev/null @@ -1,78 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012 Nikita Karetnikov -;;; -;;; 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 . - -(define-module (distro packages gettext) - #:use-module (guix licenses) - #:use-module (distro) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix build-system gnu)) - -(define-public gettext - (package - (name "gettext") - (version "0.18.1.1") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://gnu/gettext/gettext-" - version ".tar.gz")) - (sha256 - (base32 - "1sa3ch12qxa4h3ya6hkz119yclcccmincl9j20dhrdx5mykp3b4k")))) - (build-system gnu-build-system) - (arguments - `(#:patches (list (assoc-ref %build-inputs "patch/gets")) - #:phases (alist-cons-before - 'check 'patch-tests - (lambda* (#:key inputs #:allow-other-keys) - (let ((bash (assoc-ref inputs "bash"))) - (substitute* (find-files "gettext-tools/tests" - "^msgexec-[0-9]") - (("#![[:blank:]]/bin/sh") - (format #f "#!~a/bin/sh" bash))) - (substitute* (find-files "gettext-tools/gnulib-tests" - "posix_spawn") - (("/bin/sh") - (format #f "~a/bin/bash" bash))))) - %standard-phases))) - (inputs - `(("patch/gets" - ,(search-patch "gettext-gets-undeclared.patch")))) - (home-page - "http://www.gnu.org/software/gettext/") - (synopsis - "GNU gettext, a well integrated set of translation tools and documentation") - (description - "Usually, programs are written and documented in English, and use -English at execution time for interacting with users. Using a common -language is quite handy for communication between developers, -maintainers and users from all countries. On the other hand, most -people are less comfortable with English than with their own native -language, and would rather be using their mother tongue for day to -day's work, as far as possible. Many would simply love seeing their -computer screen showing a lot less of English, and far more of their -own language. - -GNU `gettext' is an important step for the GNU Translation Project, as -bit is an asset on which we may build many other steps. This package -offers to programmers, translators, and even users, a well integrated -set of tools and documentation. Specifically, the GNU `gettext' -utilities are a set of tools that provides a framework to help other -GNU packages produce multi-lingual messages.") - (license gpl3))) ; some files are under GPLv2+ diff --git a/distro/packages/global.scm b/distro/packages/global.scm deleted file mode 100644 index ddd28c2887..0000000000 --- a/distro/packages/global.scm +++ /dev/null @@ -1,58 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013 Ludovic Courtès -;;; -;;; 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 . - -(define-module (distro packages global) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix build-system gnu) - #:use-module (guix licenses) - #:use-module (distro packages ncurses) - #:use-module (distro packages autotools) - #:use-module (distro)) - -(define-public global ; a global variable - (package - (name "global") - (version "6.2.7") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://gnu/global/global-" - version ".tar.gz")) - (sha256 - (base32 - "1dr250kz65wqpbms4lhz857mzmvmpmiaxgyqxvxkb4b0s840i14i")))) - (build-system gnu-build-system) - (inputs `(("ncurses" ,ncurses) - ("libtool" ,libtool))) - (arguments - `(#:configure-flags - (list (string-append "--with-ncurses=" - (assoc-ref %build-inputs "ncurses"))))) - (home-page "http://www.gnu.org/software/global/") - (synopsis "GNU GLOBAL source code tag system") - (description - "GNU GLOBAL is a source code tagging system that works the same way -across diverse environments (Emacs, vi, less, Bash, web browser, etc). -You can locate specified objects in source files and move there easily. -It is useful for hacking a large project containing many -subdirectories, many #ifdef and many main() functions. It is similar -to ctags or etags but is different from them at the point of -independence of any editor. It runs on a UNIX (POSIX) compatible -operating system like GNU and BSD.") - (license "GPLv3+"))) diff --git a/distro/packages/gnupg.scm b/distro/packages/gnupg.scm deleted file mode 100644 index 5fdf19187d..0000000000 --- a/distro/packages/gnupg.scm +++ /dev/null @@ -1,168 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012 Ludovic Courtès -;;; -;;; 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 . - -(define-module (distro packages gnupg) - #:use-module (guix licenses) - #:use-module (distro packages pth) - #:use-module (distro packages readline) - #:use-module ((distro packages compression) - #:renamer (symbol-prefix-proc 'guix:)) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix build-system gnu)) - -(define-public libgpg-error - (package - (name "libgpg-error") - (version "1.10") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://gnupg/libgpg-error/libgpg-error-" - version ".tar.bz2")) - (sha256 - (base32 - "0cal3jdnzdailr13qcy74grfbplbghkgr3qwk6qjjp4bass2j1jj")))) - (build-system gnu-build-system) - (home-page "http://gnupg.org") - (synopsis - "Libgpg-error, a small library that defines common error values for all GnuPG components") - (description - "Libgpg-error is a small library that defines common error values -for all GnuPG components. Among these are GPG, GPGSM, GPGME, -GPG-Agent, libgcrypt, Libksba, DirMngr, Pinentry, SmartCard -Daemon and possibly more in the future.") - (license lgpl2.0+))) - -(define-public libgcrypt - (package - (name "libgcrypt") - (version "1.5.0") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://gnupg/libgcrypt/libgcrypt-" - version ".tar.bz2")) - (sha256 - (base32 - "1ykkh7dm0gyndz7bbpvn3agijj8xb2h02m02f42hm504c18zqqjb")))) - (build-system gnu-build-system) - (propagated-inputs - `(("libgpg-error" ,libgpg-error))) - (home-page "http://gnupg.org/") - (synopsis - "GNU Libgcrypt, a general-pupose cryptographic library") - (description - "GNU Libgcrypt is a general purpose cryptographic library based on -the code from GnuPG. It provides functions for all -cryptographic building blocks: symmetric ciphers, hash -algorithms, MACs, public key algorithms, large integer -functions, random numbers and a lot of supporting functions.") - (license lgpl2.0+))) - -(define-public libassuan - (package - (name "libassuan") - (version "2.0.3") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://gnupg/libassuan/libassuan-" - version ".tar.bz2")) - (sha256 - (base32 - "06xckkvxxlx7cj77803m8x58gxksap4k8yhspc5cqsy7fhinimds")))) - (build-system gnu-build-system) - (propagated-inputs - `(("libgpg-error" ,libgpg-error) ("pth" ,pth))) - (home-page "http://gnupg.org") - (synopsis - "Libassuan, the IPC library used by GnuPG and related software") - (description - "Libassuan is a small library implementing the so-called Assuan -protocol. This protocol is used for IPC between most newer -GnuPG components. Both, server and client side functions are -provided.") - (license lgpl2.0+))) - -(define-public libksba - (package - (name "libksba") - (version "1.2.0") - (source - (origin - (method url-fetch) - (uri (string-append - "mirror://gnupg/libksba/libksba-" - version ".tar.bz2")) - (sha256 - (base32 - "0jwk7hm3x3g4hd7l12z3d79dy7359x7lc88dq6z7q0ixn1jwxbq9")))) - (build-system gnu-build-system) - (propagated-inputs - `(("libgpg-error" ,libgpg-error))) - (home-page "http://www.gnupg.org") - (synopsis - "Libksba is a CMS and X.509 access library under development") - (description - "KSBA (pronounced Kasbah) is a library to make X.509 certificates -as well as the CMS easily accessible by other applications. Both -specifications are building blocks of S/MIME and TLS.") - (license gpl3+))) - -(define-public gnupg - (package - (name "gnupg") - (version "2.0.19") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://gnupg/gnupg/gnupg-" version - ".tar.bz2")) - (sha256 - (base32 - "08n636sfffs5qvg9ppiprvsh00q0dmdw425psg3m3nssja53m8pg")))) - (build-system gnu-build-system) - (inputs - `(;; TODO: Add missing optional deps. - ;; ("curl" ,curl) - ;; ("libusb" ,libusb) - ;; ("openldap" ,openldap) - - ("bzip2" ,guix:bzip2) - ("libassuan" ,libassuan) - ("libgcrypt" ,libgcrypt) - ("libksba" ,libksba) - ("pth" ,pth) - ("libgpg-error" ,libgpg-error) - ("zlib" ,guix:zlib) - ("readline" ,readline))) - (home-page "http://gnupg.org/") - (synopsis - "GNU Privacy Guard (GnuPG), GNU Project's implementation of the OpenPGP standard") - (description - "GnuPG is the GNU project's complete and free implementation of -the OpenPGP standard as defined by RFC4880. GnuPG allows to -encrypt and sign your data and communication, features a -versatile key managment system as well as access modules for all -kind of public key directories. GnuPG, also known as GPG, is a -command line tool with features for easy integration with other -applications. A wealth of frontend applications and libraries -are available. Version 2 of GnuPG also provides support for -S/MIME.") - (license gpl3+))) diff --git a/distro/packages/gnutls.scm b/distro/packages/gnutls.scm deleted file mode 100644 index 269907e7c4..0000000000 --- a/distro/packages/gnutls.scm +++ /dev/null @@ -1,98 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013 Ludovic Courtès -;;; -;;; 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 . - -(define-module (distro packages gnutls) - #:use-module (guix licenses) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix build-system gnu) - #:use-module (distro packages base) - #:use-module ((distro packages compression) - #:renamer (symbol-prefix-proc 'guix:)) - #:use-module (distro packages nettle) - #:use-module (distro packages guile) - #:use-module (distro packages perl) - #:use-module (distro packages which)) - -(define-public libtasn1 - (package - (name "libtasn1") - (version "3.2") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://gnu/libtasn1/libtasn1-" - version ".tar.gz")) - (sha256 - (base32 - "0gvgndypwicchf7m660zh7jdgmkfj9g9xavpcc08pyd0120y0bk7")))) - (build-system gnu-build-system) - (home-page "http://www.gnu.org/software/libtasn1/") - (synopsis "GNU Libtasn1, an ASN.1 library") - (description - "Libtasn1 is the ASN.1 library used by GnuTLS, GNU Shishi and some -other packages. The goal of this implementation is to be highly -portable, and only require an ANSI C89 platform.") - (license lgpl2.0+))) - -(define-public gnutls - (package - (name "gnutls") - (version "3.1.6") - (source - (origin - (method url-fetch) - (uri (string-append - "mirror://gnu/gnutls/gnutls-" - version - ".tar.xz")) - (sha256 - (base32 - "0zsybr9plllk1phh83bx9bg7c5ccik427j4n3k1s9fiy4j69n0w3")))) - (build-system gnu-build-system) - - ;; Build of the Guile bindings is not parallel-safe. See - ;; - ;; for the actual fix. - (arguments '(#:parallel-build? #f)) - - (inputs - `(("guile" ,guile-2.0) - ;; ("lzo" ,lzo) - ("zlib" ,guix:zlib) - ("perl" ,perl))) - (propagated-inputs - `(("libtasn1" ,libtasn1) - ("nettle" ,nettle) - ("which" ,which))) - (home-page "http://www.gnu.org/software/gnutls/") - (synopsis - "The GNU Transport Layer Security Library") - (description - "GnuTLS is a project that aims to develop a library which provides -a secure layer, over a reliable transport layer. Currently the GnuTLS -library implements the proposed standards by the IETF's TLS working -group. - -Quoting from the TLS protocol specification: - -\"The TLS protocol provides communications privacy over the -Internet. The protocol allows client/server applications to communicate -in a way that is designed to prevent eavesdropping, tampering, or -message forgery.\"") - (license lgpl2.1+))) diff --git a/distro/packages/gperf.scm b/distro/packages/gperf.scm deleted file mode 100644 index f1827e0a65..0000000000 --- a/distro/packages/gperf.scm +++ /dev/null @@ -1,55 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012 Ludovic Courtès -;;; -;;; 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 . - -(define-module (distro packages gperf) - #:use-module (guix licenses) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix utils) - #:use-module (guix build-system gnu)) - -(define-public gperf - (package - (name "gperf") - (version "3.0.4") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://gnu/gperf/gperf-" - version ".tar.gz")) - (sha256 - (base32 - "0gnnm8iqcl52m8iha3sxrzrl9mcyhg7lfrhhqgdn4zj00ji14wbn")))) - (build-system gnu-build-system) - (arguments '(#:parallel-tests? #f)) - (home-page "http://www.gnu.org/software/gperf/") - (synopsis - "GNU gperf, a perfect hash function generator") - (description - "GNU gperf is a perfect hash function generator. For a given -list of strings, it produces a hash function and hash table, in -form of C or C++ code, for looking up a value depending on the -input string. The hash function is perfect, which means that -the hash table has no collisions, and the hash table lookup -needs a single string comparison only. - -GNU gperf is highly customizable. There are options for -generating C or C++ code, for emitting switch statements or -nested ifs instead of a hash table, and for tuning the algorithm -employed by gperf.") - (license gpl3+))) diff --git a/distro/packages/gsasl.scm b/distro/packages/gsasl.scm deleted file mode 100644 index 43530b57ad..0000000000 --- a/distro/packages/gsasl.scm +++ /dev/null @@ -1,113 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012 Andreas Enge -;;; -;;; 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 . - -(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 deleted file mode 100644 index 9964f9d9f0..0000000000 --- a/distro/packages/guile.scm +++ /dev/null @@ -1,197 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012 Ludovic Courtès -;;; -;;; 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 . - -(define-module (distro packages guile) - #:use-module (guix licenses) - #:use-module (distro) - #:use-module (distro packages bdw-gc) - #:use-module (distro packages gawk) - #:use-module (distro packages gperf) - #:use-module (distro packages libffi) - #:use-module (distro packages autotools) - #:use-module (distro packages libunistring) - #:use-module (distro packages m4) - #:use-module (distro packages multiprecision) - #:use-module (distro packages pkg-config) - #:use-module (distro packages readline) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix build-system gnu)) - -;;; Commentary: -;;; -;;; GNU Guile, and modules and extensions. -;;; -;;; Code: - -(define-public guile-1.8 - (package - (name "guile") - (version "1.8.8") - (source (origin - (method url-fetch) - (uri (string-append "mirror://gnu/guile/guile-" version - ".tar.gz")) - (sha256 - (base32 - "0l200a0v7h8bh0cwz6v7hc13ds39cgqsmfrks55b1rbj5vniyiy3")))) - (build-system gnu-build-system) - (arguments '(#:configure-flags '("--disable-error-on-warning") - #:patches (list (assoc-ref %build-inputs "patch/snarf")) - - ;; Insert a phase before `configure' to patch things up. - #:phases (alist-cons-before - 'configure - 'patch-loader-search-path - (lambda* (#:key outputs #:allow-other-keys) - ;; Add a call to `lt_dladdsearchdir' so that - ;; `libguile-readline.so' & co. are in the - ;; loader's search path. - (substitute* "libguile/dynl.c" - (("lt_dlinit.*$" match) - (format #f - " ~a~% lt_dladdsearchdir(\"~a/lib\");~%" - match - (assoc-ref outputs "out"))))) - %standard-phases))) - (inputs `(("patch/snarf" ,(search-patch "guile-1.8-cpp-4.5.patch")) - ("gawk" ,gawk) - ("readline" ,readline))) - - ;; Since `guile-1.8.pc' has "Libs: ... -lgmp -lltdl", these must be - ;; propagated. - (propagated-inputs `(("gmp" ,gmp) - ("libtool" ,libtool))) - - ;; When cross-compiling, a native version of Guile itself is needed. - (self-native-input? #t) - - (synopsis "GNU Guile 1.8, an embeddable Scheme interpreter") - (description -"GNU Guile 1.8 is an interpreter for the Scheme programming language, -packaged as a library that can be embedded into programs to make them -extensible. It supports many SRFIs.") - (home-page "http://www.gnu.org/software/guile/") - (license lgpl2.0+))) - -(define-public guile-2.0 - (package - (name "guile") - (version "2.0.7") - (source (origin - (method url-fetch) - (uri (string-append "mirror://gnu/guile/guile-" version - ".tar.xz")) - (sha256 - (base32 - "0f53pxkia4v17n0avwqlcjpy0n89hkazm2xsa6p84lv8k6k8y9vg")))) - (build-system gnu-build-system) - (native-inputs `(("pkgconfig" ,pkg-config))) - (inputs `(("libffi" ,libffi) - ("readline" ,readline))) - - (propagated-inputs - `( ;; These ones aren't normally needed here, but since `libguile-2.0.la' - ;; reads `-lltdl -lunistring', adding them here will add the needed - ;; `-L' flags. As for why the `.la' file lacks the `-L' flags, see - ;; . - ("libunistring" ,libunistring) - ("libtool" ,libtool) - - ;; The headers and/or `guile-2.0.pc' refer to these packages, so they - ;; must be propagated. - ("bdw-gc" ,libgc) - ("gmp" ,gmp))) - - (self-native-input? #t) - - (arguments - '(#:phases (alist-cons-before - 'configure 'pre-configure - (lambda* (#:key inputs #:allow-other-keys) - (let ((bash (assoc-ref inputs "bash"))) - (substitute* "module/ice-9/popen.scm" - (("/bin/sh") - (string-append bash "/bin/bash"))))) - %standard-phases))) - - (synopsis "GNU Guile 2.0, an embeddable Scheme implementation") - (description -"GNU Guile is an implementation of the Scheme programming language, with -support for many SRFIs, packaged for use in a wide variety of environments. -In addition to implementing the R5RS Scheme standard and a large subset of -R6RS, Guile includes a module system, full access to POSIX system calls, -networking support, multiple threads, dynamic linking, a foreign function -call interface, and powerful string processing.") - (home-page "http://www.gnu.org/software/guile/") - (license lgpl3+))) - -(define-public guile-2.0/fixed - ;; A package of Guile 2.0 that's rarely changed. It is the one used - ;; in the `base' module, and thus changing it entails a full rebuild. - guile-2.0) - - -;;; -;;; Extensions. -;;; - -(define (guile-reader guile) - "Build Guile-Reader against GUILE, a package of some version of Guile 1.8 -or 2.0." - (package - (name (string-append "guile-reader-for-guile-" (package-version guile))) - (version "0.6") - (source (origin - (method url-fetch) - (uri (string-append - "http://download-mirror.savannah.gnu.org/releases/guile-reader/guile-reader-" - version ".tar.gz")) - (sha256 - (base32 - "1svlyk5pm4fsdp2g7n6qffdl6fdggxnlicj0jn9s4lxd63gzxy1n")))) - (build-system gnu-build-system) - (native-inputs `(("pkgconfig" ,pkg-config) - ("gperf" ,gperf))) - (inputs `(("guile" ,guile))) - (synopsis "Guile-Reader, a simple framework for building readers for -GNU Guile") - (description -"Guile-Reader is a simple framework for building readers for GNU Guile. - -The idea is to make it easy to build procedures that extend Guile’s read -procedure. Readers supporting various syntax variants can easily be written, -possibly by re-using existing “token readers” of a standard Scheme -readers. For example, it is used to implement Skribilo’s R5RS-derived -document syntax. - -Guile-Reader’s approach is similar to Common Lisp’s “read table”, but -hopefully more powerful and flexible (for instance, one may instantiate as -many readers as needed).") - (home-page "http://www.nongnu.org/guile-reader/") - (license gpl3+))) - -(define-public guile-reader/guile-1.8 - ;; Guile-Reader built against Guile 1.8. - (guile-reader guile-1.8)) - -(define-public guile-reader/guile-2.0 - ;; Guile-Reader built against Guile 2.0. - (guile-reader guile-2.0)) - -;;; guile.scm ends here diff --git a/distro/packages/help2man.scm b/distro/packages/help2man.scm deleted file mode 100644 index 191ef25c85..0000000000 --- a/distro/packages/help2man.scm +++ /dev/null @@ -1,52 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012 Ludovic Courtès -;;; -;;; 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 . - -(define-module (distro packages help2man) - #:use-module (guix licenses) - #:use-module (guix download) - #:use-module (guix packages) - #:use-module (guix build-system gnu) - #:use-module (distro packages perl)) - -(define-public help2man - (package - (name "help2man") - (version "1.40.8") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://gnu/help2man/help2man-" - version ".tar.gz")) - (sha256 - (base32 - "0s6phazn8jgvpbsby8kj2m58rj1zjghi1aipvamh8af226ssqfzj")))) - (build-system gnu-build-system) - (arguments `(;; There's no `check' target. - #:tests? #f)) - (inputs - `(("perl" ,perl) - ;; TODO: Add these optional dependencies. - ;; ("perl-LocaleGettext" ,perl-LocaleGettext) - ;; ("gettext" ,gettext) - )) - (home-page "http://www.gnu.org/software/help2man/") - (synopsis "GNU help2man generates man pages from `--help' output") - (description - "help2man produces simple manual pages from the ‘--help’ and -‘--version’ output of other commands.") - (license gpl3+))) diff --git a/distro/packages/icu4c.scm b/distro/packages/icu4c.scm deleted file mode 100644 index f0adb8f2ce..0000000000 --- a/distro/packages/icu4c.scm +++ /dev/null @@ -1,66 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013 Andreas Enge -;;; -;;; 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 . - -(define-module (distro packages icu4c) - #:use-module (distro) - #: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 icu4c - (package - (name "icu4c") - (version "50.1.1") - (source (origin - (method url-fetch) - (uri (string-append "http://download.icu-project.org/files/icu4c/" - version - "/icu4c-" - (string-map (lambda (x) (if (char=? x #\.) #\_ x)) version) - "-src.tgz")) - (sha256 (base32 - "13yz0kk6zsgj94idnlr3vbg8iph5z4ly4b4xrd5wfja7q3ijdx56")))) - (build-system gnu-build-system) - (inputs `(("perl" ,perl))) - (arguments - `(#:phases - (alist-replace - 'unpack - (lambda* (#:key source #:allow-other-keys) - (and (zero? (system* "tar" "xvf" source)) - (chdir "icu/source"))) - (alist-replace - 'configure - (lambda* (#:key #:allow-other-keys #:rest args) - (let ((configure (assoc-ref %standard-phases 'configure))) - ;; patch out two occurrences of /bin/sh from configure script - ;; that might have disappeared in a release later than 50.1.1 - (substitute* "configure" - (("`/bin/sh") - (string-append "`" (which "bash")))) - (apply configure args))) - %standard-phases)))) - (synopsis "ICU, International Components for Unicode") - (description - "ICU is a set of C/C++ and Java libraries providing Unicode and -globalisation support for software applications. This package contains the -C/C++ part.") - (license x11) - (home-page "http://site.icu-project.org/"))) diff --git a/distro/packages/idutils.scm b/distro/packages/idutils.scm deleted file mode 100644 index f4c7005f99..0000000000 --- a/distro/packages/idutils.scm +++ /dev/null @@ -1,65 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012 Ludovic Courtès -;;; -;;; 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 . - -(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/indent.scm b/distro/packages/indent.scm deleted file mode 100644 index d69a42f978..0000000000 --- a/distro/packages/indent.scm +++ /dev/null @@ -1,44 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013 Andreas Enge -;;; -;;; 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 . - -(define-module (distro packages indent) - #:use-module (distro) - #:use-module (guix licenses) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix build-system gnu)) - -(define-public indent - (package - (name "indent") - (version "2.2.10") - (source (origin - (method url-fetch) - (uri (string-append "mirror://gnu/indent/indent-" version - ".tar.gz")) - (sha256 (base32 - "0f9655vqdvfwbxvs1gpa7py8k1z71aqh8hp73f65vazwbfz436wa")))) - (build-system gnu-build-system) - (synopsis "GNU Indent, a program for code indentation and formatting") - (description - "GNU Indent can be used to make code easier to read. It can also convert -from one style of writing C to another. Indent understands a substantial -amount about the syntax of C, but it also attempts to cope with incomplete -and misformed syntax. The GNU style of indenting is the default.") - (license gpl3+) - (home-page "http://www.gnu.org/software/indent/"))) diff --git a/distro/packages/ld-wrapper.scm b/distro/packages/ld-wrapper.scm deleted file mode 100644 index fd5a4cbd0c..0000000000 --- a/distro/packages/ld-wrapper.scm +++ /dev/null @@ -1,147 +0,0 @@ -#!@BASH@ -# -*- mode: scheme; coding: utf-8; -*- - -# XXX: We have to go through Bash because there's no command-line switch to -# augment %load-compiled-path, and because of the silly 127-byte limit for -# the shebang line in Linux. -# Use `load-compiled' because `load' (and `-l') doesn't otherwise load our -# .go file (see ). - -main="(@ (gnu build-support ld-wrapper) ld-wrapper)" -exec @GUILE@ -c "(load-compiled \"$0.go\") (apply $main (cdr (command-line)))" "$@" -!# -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012 Ludovic Courtès -;;; -;;; 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 . - -(define-module (gnu build-support ld-wrapper) - #:use-module (srfi srfi-1) - #:export (ld-wrapper)) - -;;; Commentary: -;;; -;;; This is a wrapper for the linker. Its purpose is to inspect the -L and -;;; -l switches passed to the linker, add corresponding -rpath arguments, and -;;; invoke the actual linker with this new set of arguments. -;;; -;;; The alternatives to this hack would be: -;;; -;;; 1. Using $LD_RUN_PATH. However, that would tend to include more than -;;; needed in the RPATH; for instance, given a package with `libfoo' as -;;; an input, all its binaries would have libfoo in their RPATH, -;;; regardless of whether they actually NEED it. -;;; -;;; 2. Use a GCC "lib" spec string such as `%{L*:-rpath %*}', which adds a -;;; `-rpath LIBDIR' argument for each occurrence of `-L LIBDIR'. -;;; However, this doesn't work when $LIBRARY_PATH is used, because the -;;; additional `-L' switches are not matched by the above rule, because -;;; the rule only matches explicit user-provided switches. See -;;; for details. -;;; -;;; As a bonus, this wrapper checks for "impurities"--i.e., references to -;;; libraries outside the store. -;;; -;;; Code: - -(define %real-ld - ;; Name of the linker that we wrap. - "@LD@") - -(define %store-directory - ;; File name of the store. - (or (getenv "NIX_STORE") "/nix/store")) - -(define %temporary-directory - ;; Temporary directory. - (or (getenv "TMPDIR") "/tmp")) - -(define %build-directory - ;; Top build directory when run from a builder. - (getenv "NIX_BUILD_TOP")) - -(define %allow-impurities? - ;; Whether to allow references to libraries outside the store. - (getenv "GUIX_LD_WRAPPER_ALLOW_IMPURITIES")) - -(define %debug? - ;; Whether to emit debugging output. - (getenv "GUIX_LD_WRAPPER_DEBUG")) - -(define (pure-file-name? file) - ;; Return #t when FILE is the name of a file either within the store or - ;; within the build directory. - (or (not (string-prefix? "/" file)) - (string-prefix? %store-directory file) - (string-prefix? %temporary-directory file) - (and %build-directory - (string-prefix? %build-directory file)))) - -(define (switch-arguments switch args) - ;; Return the arguments passed for the occurrences of SWITCH--e.g., - ;; "-L"--in ARGS. - (let ((prefix-len (string-length switch))) - (fold-right (lambda (arg path) - (if (string-prefix? switch arg) - (cons (substring arg prefix-len) path) - path)) - '() - args))) - -(define (library-path args) - ;; Return the library search path extracted from `-L' switches in ARGS. - ;; Note: allow references to out-of-store directories. When this leads to - ;; actual impurities, this is caught later. - (switch-arguments "-L" args)) - -(define (library-files-linked args) - ;; Return the file names of shared libraries explicitly linked against via - ;; `-l' in ARGS. - (map (lambda (lib) - (string-append "lib" lib ".so")) - (switch-arguments "-l" args))) - -(define (rpath-arguments lib-path library-files) - ;; Return the `-rpath' argument list for each of LIBRARY-FILES found in - ;; LIB-PATH. - (fold-right (lambda (file args) - (let ((absolute (search-path lib-path file))) - (if absolute - (if (or %allow-impurities? - (pure-file-name? absolute)) - (cons* "-rpath" (dirname absolute) - args) - (begin - (format (current-error-port) - "ld-wrapper: error: attempt to use impure library ~s~%" - absolute) - (exit 1))) - args))) - '() - library-files)) - -(define (ld-wrapper . args) - ;; Invoke the real `ld' with ARGS, augmented with `-rpath' switches. - (let* ((lib-path (library-path args)) - (libs (library-files-linked args)) - (args (append args (rpath-arguments lib-path libs)))) - (if %debug? - (format (current-error-port) - "ld-wrapper: invoking `~a' with ~s~%" - %real-ld args)) - (apply execl %real-ld (basename %real-ld) args))) - -;;; ld-wrapper.scm ends here diff --git a/distro/packages/less.scm b/distro/packages/less.scm deleted file mode 100644 index 1f05b50e1e..0000000000 --- a/distro/packages/less.scm +++ /dev/null @@ -1,51 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012 Nikita Karetnikov -;;; -;;; 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 . - -(define-module (distro packages less) - #:use-module (guix licenses) - #:use-module (distro packages ncurses) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix build-system gnu)) - -(define-public less - (package - (name "less") - (version "451") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://gnu/less/less-" - version ".tar.gz")) - (sha256 - (base32 - "0mszdd9m1dsbg59pav62swg9f87xmjpfspcw2jsazzksciy2is4z")))) - (build-system gnu-build-system) - (inputs `(("ncurses" ,ncurses))) - (home-page "https://www.gnu.org/software/less/") - (synopsis - "GNU less is a program similar to more, but which allows backward -movement in the file as well as forward movement") - (description - "GNU less is a program similar to more, but which allows backward -movement in the file as well as forward movement. Also, less does not -have to read the entire input file before starting, so with large input -files it starts up faster than text editors like vi. Less uses -termcap (or terminfo on some systems), so it can run on a variety of -terminals. There is even limited support for hardcopy terminals.") - (license gpl3+))) ; some files are under GPLv2+ \ No newline at end of file diff --git a/distro/packages/libffi.scm b/distro/packages/libffi.scm deleted file mode 100644 index 0900a43cb4..0000000000 --- a/distro/packages/libffi.scm +++ /dev/null @@ -1,73 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012 Ludovic Courtès -;;; -;;; 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 . - -(define-module (distro packages libffi) - #:use-module (guix licenses) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix utils) - #:use-module (guix build-system gnu)) - -(define-public libffi - (let ((post-install-phase - ;; Install headers in the right place. - '(lambda* (#:key outputs #:allow-other-keys) - (define out (assoc-ref outputs "out")) - (mkdir (string-append out "/include")) - (with-directory-excursion - (string-append out "/lib/libffi-3.0.9/include") - (for-each (lambda (h) - (format #t "moving `~a' to includedir~%" h) - (rename-file h (string-append out "/include/" h))) - (scandir "." - (lambda (x) - (not (member x '("." "..")))))))))) - (package - (name "libffi") - (version "3.0.9") - (source (origin - (method url-fetch) - (uri - (string-append "ftp://sourceware.org/pub/libffi/" - name "-" version ".tar.gz")) - (sha256 - (base32 - "0ln4jbpb6clcsdpb9niqk0frgx4k0xki96wiv067ig0q4cajb7aq")))) - (build-system gnu-build-system) - (arguments `(#:modules ((guix build utils) (guix build gnu-build-system) - (ice-9 ftw) (srfi srfi-26)) - #:phases (alist-cons-after 'install 'post-install - ,post-install-phase - %standard-phases))) - (synopsis "libffi, a foreign function call interface library") - (description - "The libffi library provides a portable, high level programming interface -to various calling conventions. This allows a programmer to call any -function specified by a call interface description at run-time. - -FFI stands for Foreign Function Interface. A foreign function interface is -the popular name for the interface that allows code written in one language -to call code written in another language. The libffi library really only -provides the lowest, machine dependent layer of a fully featured foreign -function interface. A layer must exist above libffi that handles type -conversions for values passed between the two languages.") - (home-page "http://sources.redhat.com/libffi/") - - ;; See . - (license expat)))) - diff --git a/distro/packages/libidn.scm b/distro/packages/libidn.scm deleted file mode 100644 index dbae143b3a..0000000000 --- a/distro/packages/libidn.scm +++ /dev/null @@ -1,51 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012 Andreas Enge -;;; -;;; 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 . - -(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/libjpeg.scm b/distro/packages/libjpeg.scm deleted file mode 100644 index c343771fb0..0000000000 --- a/distro/packages/libjpeg.scm +++ /dev/null @@ -1,57 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013 Andreas Enge -;;; -;;; 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 . - -(define-module (distro packages libjpeg) - #:use-module (distro) - #:use-module (guix licenses) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix build-system gnu)) - -(define-public libjpeg - (package - (name "libjpeg") - (version "9") - (source (origin - (method url-fetch) - (uri (string-append "http://www.ijg.org/files/jpegsrc.v" - version ".tar.gz")) - (sha256 (base32 - "0dg5wxcx3cw0hal9gvivj97vid9z0s5sb1yvg55hpxmafn9rxqn4")))) - (build-system gnu-build-system) - (synopsis "Libjpeg, a library for handling JPEG files") - (description - "Libjpeg implements JPEG image encoding, decoding, and transcoding. -JPEG is a standardized compression method for full-color and gray-scale -images. -The included programs provide conversion between the JPEG format and -image files in PBMPLUS PPM/PGM, GIF, BMP, and Targa file formats.") - (license ijg) - (home-page "http://www.ijg.org/"))) - -(define-public libjpeg-8 - (package (inherit libjpeg) - (name "libjpeg-8") - (version "8d") - (source (origin - (method url-fetch) - (uri (string-append "http://www.ijg.org/files/jpegsrc.v" - version ".tar.gz")) - (sha256 (base32 - "1cz0dy05mgxqdgjf52p54yxpyy95rgl30cnazdrfmw7hfca9n0h0")))))) - diff --git a/distro/packages/libsigsegv.scm b/distro/packages/libsigsegv.scm deleted file mode 100644 index a21e2064c7..0000000000 --- a/distro/packages/libsigsegv.scm +++ /dev/null @@ -1,47 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013 Ludovic Courtès -;;; -;;; 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 . - -(define-module (distro packages libsigsegv) - #:use-module (guix licenses) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix utils) - #:use-module (guix build-system gnu)) - -(define-public libsigsegv - (package - (name "libsigsegv") - (version "2.10") - (source (origin - (method url-fetch) - (uri (string-append - "mirror://gnu/libsigsegv/libsigsegv-" - version ".tar.gz")) - (sha256 - (base32 "16hrs8k3nmc7a8jam5j1fpspd6sdpkamskvsdpcw6m29vnis8q44")))) - (build-system gnu-build-system) - (home-page "http://www.gnu.org/software/libsigsegv/") - (synopsis "GNU libsigsegv, a library to handle page faults in user mode") - (description -"GNU libsigsegv is a library for handling page faults in user mode. A page -fault occurs when a program tries to access to a region of memory that is -currently not available. Catching and handling a page fault is a useful -technique for implementing pageable virtual memory, memory-mapped access to -persistent databases, generational garbage collectors, stack overflow -handlers, distributed shared memory, and more.") - (license gpl2+))) diff --git a/distro/packages/libtiff.scm b/distro/packages/libtiff.scm deleted file mode 100644 index b5a12c53e2..0000000000 --- a/distro/packages/libtiff.scm +++ /dev/null @@ -1,65 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013 Andreas Enge -;;; -;;; 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 . - -(define-module (distro packages libtiff) - #:use-module (distro) - #:use-module (distro packages file) - #:use-module (distro packages libjpeg) - #:use-module (guix licenses) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix build-system gnu)) - -(define-public libtiff - (package - (name "libtiff") - (version "4.0.3") - (source (origin - (method url-fetch) - (uri (string-append "ftp://ftp.remotesensing.org/pub/libtiff/tiff-" - version ".tar.gz")) - (sha256 (base32 - "0wj8d1iwk9vnpax2h29xqc2hwknxg3s0ay2d5pxkg59ihbifn6pa")))) - (build-system gnu-build-system) - (inputs `(("file" ,file) - ("libjpeg-8" ,libjpeg-8))) - ;; currently does not compile with libjpeg version 9 - (arguments - `(#:configure-flags - (list (string-append "--with-jpeg-include-dir=" - (assoc-ref %build-inputs "libjpeg-8") - "/include")) - #:phases - (alist-replace - 'configure - (lambda* (#:key #:allow-other-keys #:rest args) - (let ((configure (assoc-ref %standard-phases 'configure))) - (substitute* "configure" - (("`/usr/bin/file") - (string-append "`" (which "file")))) - (apply configure args))) - %standard-phases))) - (synopsis "Libtiff, a library for handling TIFF files") - (description - "Libtiff provides support for the Tag Image File Format (TIFF), a format -used for storing image data. -Included are a library, libtiff, for reading and writing TIFF and a small -collection of tools for doing simple manipulations of TIFF images.") - (license (bsd-style "file://COPYRIGHT" - "See COPYRIGHT in the distribution.")) - (home-page "http://www.libtiff.org/"))) diff --git a/distro/packages/libunistring.scm b/distro/packages/libunistring.scm deleted file mode 100644 index 1359f9d488..0000000000 --- a/distro/packages/libunistring.scm +++ /dev/null @@ -1,58 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012 Ludovic Courtès -;;; -;;; 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 . - -(define-module (distro packages libunistring) - #:use-module (guix licenses) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix utils) - #:use-module (guix build-system gnu)) - -(define-public libunistring - (package - (name "libunistring") - (version "0.9.3") - (source (origin - (method url-fetch) - (uri (string-append - "mirror://gnu/libunistring/libunistring-" - version ".tar.gz")) - (sha256 - (base32 - "18q620269xzpw39dwvr9zpilnl2dkw5z5kz3mxaadnpv4k3kw3b1")))) - (propagated-inputs '()) ; FIXME: add libiconv when !glibc - (build-system gnu-build-system) - (synopsis "GNU Libunistring, a Unicode string library") - (description - "This library provides functions for manipulating Unicode strings and for -manipulating C strings according to the Unicode standard. - -GNU libunistring is for you if your application involves non-trivial text -processing, such as upper/lower case conversions, line breaking, operations -on words, or more advanced analysis of text. Text provided by the user can, -in general, contain characters of all kinds of scripts. The text processing -functions provided by this library handle all scripts and all languages. - -libunistring is for you if your application already uses the ISO C / POSIX -, functions and the text it operates on is provided by -the user and can be in any language. - -libunistring is also for you if your application uses Unicode strings as -internal in-memory representation.") - (home-page "http://www.gnu.org/software/libunistring/") - (license lgpl3+))) diff --git a/distro/packages/libusb.scm b/distro/packages/libusb.scm deleted file mode 100644 index eb7edb40e1..0000000000 --- a/distro/packages/libusb.scm +++ /dev/null @@ -1,44 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012 Nikita Karetnikov -;;; -;;; 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 . - -(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 deleted file mode 100644 index 534aac11ab..0000000000 --- a/distro/packages/linux.scm +++ /dev/null @@ -1,259 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013 Ludovic Courtès -;;; Copyright © 2012 Nikita Karetnikov -;;; -;;; 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 . - -(define-module (distro packages linux) - #:use-module (guix licenses) - #:use-module (distro) - #: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 pkg-config) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix build-system gnu)) - -(define-public linux-libre-headers - (let* ((version* "3.3.8") - (build-phase - '(lambda* (#:key system #:allow-other-keys) - (let ((arch (car (string-split system #\-)))) - (setenv "ARCH" - (cond ((string=? arch "i686") "i386") - (else arch))) - (format #t "`ARCH' set to `~a'~%" (getenv "ARCH"))) - - (and (zero? (system* "make" "defconfig")) - (zero? (system* "make" "mrproper" "headers_check"))))) - (install-phase - `(lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (and (zero? (system* "make" - (string-append "INSTALL_HDR_PATH=" out) - "headers_install")) - (mkdir (string-append out "/include/config")) - (call-with-output-file - (string-append out - "/include/config/kernel.release") - (lambda (p) - (format p "~a-default~%" ,version*)))))))) - (package - (name "linux-libre-headers") - (version version*) - (source (origin - (method url-fetch) - (uri (string-append - "http://linux-libre.fsfla.org/pub/linux-libre/releases/3.3.8-gnu/linux-libre-" - version "-gnu.tar.xz")) - (sha256 - (base32 - "0jkfh0z1s6izvdnc3njm39dhzp1cg8i06jv06izwqz9w9qsprvnl")))) - (build-system gnu-build-system) - (native-inputs `(("perl" ,perl))) - (arguments - `(#:modules ((guix build gnu-build-system) - (guix build utils) - (srfi srfi-1)) - #:phases (alist-replace - 'build ,build-phase - (alist-replace - 'install ,install-phase - (alist-delete 'configure %standard-phases))) - #:tests? #f)) - (synopsis "GNU Linux-Libre kernel headers") - (description "Headers of the Linux-Libre kernel.") - (license "GPLv2") - (home-page "http://www.gnu.org/software/linux-libre/")))) - -(define-public linux-pam - (package - (name "linux-pam") - (version "1.1.6") - (source - (origin - (method url-fetch) - (uri (list (string-append "http://www.linux-pam.org/library/Linux-PAM-" - version ".tar.bz2") - (string-append "mirror://kernel.org/linux/libs/pam/library/Linux-PAM-" - version ".tar.bz2"))) - (sha256 - (base32 - "1hlz2kqvbjisvwyicdincq7nz897b9rrafyzccwzqiqg53b8gf5s")))) - (build-system gnu-build-system) - (inputs - `(("flex" ,flex) - - ;; TODO: optional dependencies - ;; ("libxcrypt" ,libxcrypt) - ;; ("cracklib" ,cracklib) - )) - (arguments - ;; XXX: Tests won't run in chroot, presumably because /etc/pam.d - ;; isn't available. - '(#:tests? #f)) - (home-page "http://www.linux-pam.org/") - (synopsis "Pluggable authentication modules for Linux") - (description - "A *Free* project to implement OSF's RFC 86.0. -Pluggable authentication modules are small shared object files that can -be used through the PAM API to perform tasks, like authenticating a user -at login. Local and dynamic reconfiguration are its key features") - (license bsd-3))) - -(define-public psmisc - (package - (name "psmisc") - (version "22.20") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://sourceforge/psmisc/psmisc/psmisc-" - version ".tar.gz")) - (sha256 - (base32 - "052mfraykmxnavpi8s78aljx8w87hyvpx8mvzsgpjsjz73i28wmi")))) - (build-system gnu-build-system) - (inputs `(("ncurses" ,ncurses))) - (home-page "http://psmisc.sourceforge.net/") - (synopsis - "set of utilities that use the proc filesystem, such as fuser, killall, and pstree") - (description - "This PSmisc package is a set of some small useful utilities that -use the proc filesystem. We're not about changing the world, but -providing the system administrator with some help in common tasks.") - (license gpl2+))) - -(define-public util-linux - (package - (name "util-linux") - (version "2.21") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://kernel.org/linux/utils/" - name "/v" version "/" - name "-" version ".2" ".tar.xz")) - (sha256 - (base32 - "1rpgghf7n0zx0cdy8hibr41wvkm2qp1yvd8ab1rxr193l1jmgcir")))) - (build-system gnu-build-system) - (arguments - `(#:configure-flags '("--disable-use-tty-group") - #:phases (alist-cons-after - 'install 'patch-chkdupexe - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (substitute* (string-append out "/bin/chkdupexe") - ;; Allow 'patch-shebang' to do its work. - (("@PERL@") "/bin/perl")))) - %standard-phases))) - (inputs `(("zlib" ,guix:zlib) - ("ncurses" ,ncurses) - ("perl" ,perl))) - (home-page "https://www.kernel.org/pub/linux/utils/util-linux/") - (synopsis - "util-linux is a random collection of utilities for the Linux kernel") - (description - "util-linux is a random collection of utilities for the Linux kernel.") - - ;; Note that util-linux doesn't use the same license for all the - ;; code. GPLv2+ is the default license for a code without an - ;; explicitly defined license. - (license (list gpl3+ gpl2+ gpl2 lgpl2.0+ - bsd-4 public-domain)))) - -(define-public procps - (package - (name "procps") - (version "3.2.8") - (source (origin - (method url-fetch) - (uri (string-append "http://procps.sourceforge.net/procps-" - version ".tar.gz")) - (sha256 - (base32 - "0d8mki0q4yamnkk4533kx8mc0jd879573srxhg6r2fs3lkc6iv8i")))) - (build-system gnu-build-system) - (inputs `(("ncurses" ,ncurses) - ("patch/make-3.82" ,(search-patch "procps-make-3.82.patch")))) - (arguments - '(#:patches (list (assoc-ref %build-inputs "patch/make-3.82")) - #:phases (alist-replace - 'configure - (lambda* (#:key outputs #:allow-other-keys) - ;; No `configure', just a single Makefile. - (let ((out (assoc-ref outputs "out"))) - (substitute* "Makefile" - (("/usr/") "/") - (("--(owner|group) 0") "") - (("ldconfig") "true") - (("^LDFLAGS[[:blank:]]*:=(.*)$" _ value) - ;; Add libproc to the RPATH. - (string-append "LDFLAGS := -Wl,-rpath=" - out "/lib" value)))) - (setenv "CC" "gcc")) - (alist-replace - 'install - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (and (zero? - (system* "make" "install" - (string-append "DESTDIR=" out))) - - ;; Sanity check. - (zero? - (system* (string-append out "/bin/ps") - "--version"))))) - %standard-phases)) - - ;; What did you expect? Tests? - #:tests? #f)) - (home-page "http://procps.sourceforge.net/") - (synopsis - "Utilities that give information about processes using the /proc filesystem") - (description - "procps is the package that has a bunch of small useful utilities -that give information about processes using the Linux /proc file system. -The package includes the programs ps, top, vmstat, w, kill, free, -slabtop, and skill.") - (license gpl2))) - -(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 deleted file mode 100644 index d3ff390b46..0000000000 --- a/distro/packages/lout.scm +++ /dev/null @@ -1,132 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012 Ludovic Courtès -;;; -;;; 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 . - -(define-module (distro packages lout) - #:use-module (guix licenses) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix utils) - #:use-module (guix build-system gnu)) - -(define-public lout - ;; This one is a bit tricky, because it doesn't follow the GNU Build System - ;; rules. Instead, it has a makefile that has to be patched to set the - ;; prefix, etc., and it has no makefile rules to build its doc. - (let ((configure-phase - '(lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out")) - (doc (assoc-ref outputs "doc"))) - (substitute* "makefile" - (("^PREFIX[[:blank:]]*=.*$") - (string-append "PREFIX = " out "\n")) - (("^LOUTLIBDIR[[:blank:]]*=.*$") - (string-append "LOUTLIBDIR = " out "/lib/lout\n")) - (("^LOUTDOCDIR[[:blank:]]*=.*$") - (string-append "LOUTDOCDIR = " doc "/doc/lout\n")) - (("^MANDIR[[:blank:]]*=.*$") - (string-append "MANDIR = " out "/man\n"))) - (mkdir out) - (mkdir (string-append out "/bin")) - (mkdir (string-append out "/lib")) - (mkdir (string-append out "/man")) - (mkdir-p (string-append doc "/doc/lout"))))) - (install-man-phase - '(lambda* (#:key outputs #:allow-other-keys) - (zero? (system* "make" "installman")))) - (doc-phase - '(lambda* (#:key outputs #:allow-other-keys) - (define out - (assoc-ref outputs "doc")) - - (setenv "PATH" - (string-append (assoc-ref outputs "out") - "/bin:" (getenv "PATH"))) - (chdir "doc") - (every (lambda (doc) - (format #t "doc: building `~a'...~%" doc) - (with-directory-excursion doc - (let ((file (string-append out "/doc/lout/" - doc ".ps"))) - (and (or (file-exists? "outfile.ps") - (zero? (system* "lout" "-r4" "-o" - "outfile.ps" "all"))) - (begin - (copy-file "outfile.ps" file) - #t) - (zero? (system* "ps2pdf" - "-dPDFSETTINGS=/prepress" - "-sPAPERSIZE=a4" - file - (string-append out "/doc/lout/" - doc ".pdf"))))))) - '("design" "expert" "slides" "user"))))) - (package - (name "lout") - (version "3.39") - (source (origin - (method url-fetch) - ;; FIXME: `http-get' doesn't follow redirects, hence the URL. - (uri (string-append - "http://download-mirror.savannah.gnu.org/releases/lout/lout-" - version ".tar.gz")) - (sha256 - (base32 - "12gkyqrn0kaa8xq7sc7v3wm407pz2fxg9ngc75aybhi5z825b9vq")))) - (build-system gnu-build-system) ; actually, just a makefile - (outputs '("out" "doc")) - (inputs - `(;; FIXME: Add dependency on Ghostscript. - ;; ("ghostscript" ,(lambda _ - ;; (nixpkgs-derivation "ghostscript"))) - )) - (arguments `(#:modules ((guix build utils) - (guix build gnu-build-system) - (srfi srfi-1)) ; we need SRFI-1 - #:tests? #f ; no "check" target - - ;; Customize the build phases. - #:phases (alist-replace - 'configure ,configure-phase - - (alist-cons-after - 'install 'install-man-pages - ,install-man-phase - - (alist-cons-after - 'install 'install-doc - ,doc-phase - %standard-phases))))) - (synopsis "Lout, a document layout system similar in style to LaTeX") - (description -"The Lout document formatting system is now reads a high-level description of -a document similar in style to LaTeX and produces a PostScript or plain text -output file. - -Lout offers an unprecedented range of advanced features, including optimal -paragraph and page breaking, automatic hyphenation, PostScript EPS file -inclusion and generation, equation formatting, tables, diagrams, rotation and -scaling, sorted indexes, bibliographic databases, running headers and -odd-even pages, automatic cross referencing, multilingual documents including -hyphenation (most European languages are supported), formatting of computer -programs, and much more, all ready to use. Furthermore, Lout is easily -extended with definitions which are very much easier to write than troff of -TeX macros because Lout is a high-level, purely functional language, the -outcome of an eight-year research project that went back to the -beginning.") - (license gpl3+) - (home-page "http://savannah.nongnu.org/projects/lout/")))) diff --git a/distro/packages/lsh.scm b/distro/packages/lsh.scm deleted file mode 100644 index d2c2d9082d..0000000000 --- a/distro/packages/lsh.scm +++ /dev/null @@ -1,126 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013 Ludovic Courtès -;;; -;;; 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 . - -(define-module (distro packages lsh) - #:use-module (guix licenses) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix build-system gnu) - #:use-module (distro) - #:use-module (distro packages m4) - #:use-module (distro packages linux) - #:use-module ((distro packages compression) - #:renamer (symbol-prefix-proc 'guix:)) - #:use-module (distro packages multiprecision) - #:use-module (distro packages readline) - #:use-module (distro packages gperf) - #:use-module (distro packages base)) - -(define-public liboop - (package - (name "liboop") - (version "1.0") - (source - (origin - (method url-fetch) - (uri (string-append "http://download.ofb.net/liboop/liboop-" - version ".tar.gz")) - (sha256 - (base32 - "0z6rlalhvfca64jpvksppc9bdhs7jwhiw4y35g5ibvh91xp3rn1l")))) - (build-system gnu-build-system) - (home-page "http://liboop.ofb.net/") - (synopsis "`liboop', an event loop library") - (description "liboop is an event loop library.") - (license lgpl2.1+))) - -(define-public lsh - (package - (name "lsh") - (version "2.0.4") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://gnu/lsh/lsh-" - version ".tar.gz")) - (sha256 - (base32 - "149hf49xcj99wwvi7hcb59igq4vpyv8har1br1if3lrsw5irsjv1")))) - (build-system gnu-build-system) - (inputs - `(("linux-pam" ,linux-pam) - ("m4" ,m4) - ("readline" ,readline) - ("liboop" ,liboop) - ("zlib" ,guix:zlib) - ("gmp" ,gmp) - ("guile" ,guile-final) - ("gperf" ,gperf) - ("psmisc" ,psmisc) ; for `killall' - - ("patch/no-root-login" ,(search-patch "lsh-no-root-login.patch")) - ("patch/guile-compat" ,(search-patch "lsh-guile-compat.patch")) - ("patch/pam-service-name" - ,(search-patch "lsh-pam-service-name.patch")))) - (arguments - '(#:patches (list (assoc-ref %build-inputs "patch/no-root-login") - (assoc-ref %build-inputs "patch/pam-service-name") - (assoc-ref %build-inputs "patch/guile-compat")) - - ;; Skip the `configure' test that checks whether /dev/ptmx & - ;; co. work as expected, because it relies on impurities (for - ;; instance, /dev/pts may be unavailable in chroots.) - #:configure-flags '("lsh_cv_sys_unix98_ptys=yes") - - ;; FIXME: Tests won't run in a chroot, presumably because - ;; /etc/profile is missing, and thus clients get an empty $PATH - ;; and nothing works. - #:tests? #f - - #:phases - (alist-cons-before - 'configure 'fix-test-suite - (lambda _ - ;; Tests rely on $USER being set. - (setenv "USER" "guix") - - (substitute* "src/testsuite/functions.sh" - (("localhost") - ;; Avoid host name lookups since they don't work in chroot - ;; builds. - "127.0.0.1") - (("set -e") - ;; Make tests more verbose. - "set -e\nset -x")) - - (substitute* (find-files "src/testsuite" "-test$") - (("localhost") "127.0.0.1")) - - (substitute* "src/testsuite/login-auth-test" - (("/bin/cat") - ;; Use the right path to `cat'. - (which "cat")))) - %standard-phases))) - (home-page "http://www.lysator.liu.se/~nisse/lsh/") - (synopsis - "GNU lsh, a GPL'd implementation of the SSH protocol") - (description - "lsh is a free implementation (in the GNU sense) of the ssh -version 2 protocol, currently being standardised by the IETF -SECSH working group.") - (license gpl2+))) diff --git a/distro/packages/m4.scm b/distro/packages/m4.scm deleted file mode 100644 index 7f2bed3ab7..0000000000 --- a/distro/packages/m4.scm +++ /dev/null @@ -1,87 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012 Ludovic Courtès -;;; -;;; 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 . - -(define-module (distro packages m4) - #:use-module (guix licenses) - #:use-module (distro) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix utils) - #:use-module (guix build-system gnu)) - -(define-public m4 - (package - (name "m4") - (version "1.4.16") - (source (origin - (method url-fetch) - (uri (string-append "mirror://gnu/m4/m4-" - version ".tar.bz2")) - (sha256 - (base32 - "035r7ma272j2cwni2961jp22k6bn3n9xwn3b3qbcn2yrvlghql22")))) - (build-system gnu-build-system) - (arguments (case-lambda - ((system) - ;; XXX: Disable tests on those platforms with know issues. - `(#:tests? ,(not (member system - '("x86_64-darwin" - "i686-cygwin" - "i686-sunos"))) - #:patches (list (assoc-ref %build-inputs "patch/s_isdir") - (assoc-ref %build-inputs - "patch/readlink-EINVAL") - (assoc-ref %build-inputs "patch/gets")) - #:phases (alist-cons-before - 'check 'pre-check - (lambda* (#:key inputs #:allow-other-keys) - ;; Fix references to /bin/sh. - (let ((bash (assoc-ref inputs "bash"))) - (for-each patch-shebang - (find-files "tests" "\\.sh$")) - (substitute* (find-files "tests" - "posix_spawn") - (("/bin/sh") - (format #f "~a/bin/bash" bash))))) - %standard-phases))) - ((system cross-system) - `(#:patches (list (assoc-ref %build-inputs "patch/s_isdir") - (assoc-ref %build-inputs - "patch/readlink-EINVAL") - (assoc-ref %build-inputs "patch/gets")))))) - (inputs `(("patch/s_isdir" ,(search-patch "m4-s_isdir.patch")) - ("patch/readlink-EINVAL" - ,(search-patch "m4-readlink-EINVAL.patch")) - ("patch/gets" ,(search-patch "m4-gets-undeclared.patch")))) - (synopsis "GNU M4, a macro processor") - (description - "GNU M4 is an implementation of the traditional Unix macro processor. It -is mostly SVR4 compatible although it has some extensions (for example, -handling more than 9 positional parameters to macros). GNU M4 also has -built-in functions for including files, running shell commands, doing -arithmetic, etc. - -GNU M4 is a macro processor in the sense that it copies its input to the -output expanding macros as it goes. Macros are either builtin or -user-defined and can take any number of arguments. Besides just doing macro -expansion, m4 has builtin functions for including named files, running UNIX -commands, doing integer arithmetic, manipulating text in various ways, -recursion etc... m4 can be used either as a front-end to a compiler or as a -macro processor in its own right.") - (license gpl3+) - (home-page "http://www.gnu.org/software/m4/"))) diff --git a/distro/packages/mailutils.scm b/distro/packages/mailutils.scm deleted file mode 100644 index 55b40f5974..0000000000 --- a/distro/packages/mailutils.scm +++ /dev/null @@ -1,106 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013 Ludovic Courtès -;;; -;;; 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 . - -(define-module (distro packages mailutils) - #:use-module (distro) - #:use-module (distro packages linux) - #:use-module (distro packages gnutls) - #:use-module (distro packages gdbm) - #:use-module (distro packages guile) - #:use-module (distro packages ncurses) - #:use-module (distro packages readline) - #:use-module (distro packages dejagnu) - #:use-module (distro packages m4) - #:use-module (distro packages texinfo) - #:use-module (distro packages mysql) - #:use-module (distro packages autotools) - #:use-module (guix licenses) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix build-system gnu)) - -(define-public mailutils - (package - (name "mailutils") - (version "2.2") - (source (origin - (method url-fetch) - (uri (string-append "mirror://gnu/mailutils/mailutils-" - version ".tar.bz2")) - (sha256 - (base32 - "0szbqa12zqzldqyw97lxqax3ja2adis83i7brdfsxmrfw68iaf65")))) - (build-system gnu-build-system) - (arguments - '(;; TODO: Add `--with-sql'. - #:patches (list (assoc-ref %build-inputs - "patch/gets-undeclared")) - #:phases (alist-cons-before - 'build 'pre-build - (lambda _ - ;; Use Guile 2.0's public API. - (substitute* "libmu_scm/mu_message.c" - (("scm_i_string_length") - "scm_c_string_length")) - - ;; This file should be generated to use the right - ;; value of $(libdir) et al. - (delete-file "libmu_scm/mailutils.scm") - - ;; Use the right file name for `cat'. - (substitute* "testsuite/lib/mailutils.exp" - (("/bin/cat") - (which "cat")))) - %standard-phases) - #:parallel-tests? #f)) - (inputs - `(("dejagnu" ,dejagnu) - ("m4" ,m4) - ("texinfo" ,texinfo) - ("guile" ,guile-2.0) - ("gnutls" ,gnutls) - ("ncurses" ,ncurses) - ("readline" ,readline) - ("linux-pam" ,linux-pam) - ("libtool" ,libtool) - ("gdbm" ,gdbm) - ("patch/gets-undeclared" - ,(search-patch "m4-gets-undeclared.patch")))) - (home-page "http://www.gnu.org/software/mailutils/") - (synopsis "A rich and powerful protocol-independent mail framework") - (description - "GNU Mailutils is a rich and powerful protocol-independent mail -framework. It contains a series of useful mail libraries, clients, and -servers. These are the primary mail utilities for the GNU system. The -central library is capable of handling electronic mail in various -mailbox formats and protocols, both local and remote. Specifically, -this project contains a POP3 server, an IMAP4 server, and a Sieve mail -filter. It also provides a POSIX `mailx' client, and a collection of -other handy tools. - -The GNU Mailutils libraries supply an ample set of primitives for -handling electronic mail in programs written in C, C++, Python or -Scheme. - -The utilities provided by Mailutils include imap4d and pop3d mail -servers, mail reporting utility comsatd, general-purpose mail delivery -agent maidag, mail filtering program sieve, and an implementation of MH -message handling system.") - (license - ;; Libraries are under LGPLv3+, and programs under GPLv3+. - (list gpl3+ lgpl3+)))) diff --git a/distro/packages/make-bootstrap.scm b/distro/packages/make-bootstrap.scm deleted file mode 100644 index b1d74ec5d6..0000000000 --- a/distro/packages/make-bootstrap.scm +++ /dev/null @@ -1,562 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013 Ludovic Courtès -;;; -;;; 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 . - -(define-module (distro packages make-bootstrap) - #:use-module (guix utils) - #:use-module (guix packages) - #:use-module (guix licenses) - #:use-module (guix build-system trivial) - #:use-module (guix build-system gnu) - #:use-module ((distro) #:select (search-patch)) - #:use-module (distro packages base) - #:use-module (distro packages bash) - #:use-module (distro packages compression) - #:use-module (distro packages gawk) - #:use-module (distro packages guile) - #:use-module (distro packages linux) - #:use-module (distro packages multiprecision) - #:use-module (ice-9 match) - #:use-module (srfi srfi-1) - #:export (%bootstrap-binaries-tarball - %binutils-bootstrap-tarball - %glibc-bootstrap-tarball - %gcc-bootstrap-tarball - %guile-bootstrap-tarball - %bootstrap-tarballs)) - -;;; Commentary: -;;; -;;; This modules provides tools to build tarballs of the "bootstrap binaries" -;;; used in (distro packages bootstrap). These statically-linked binaries are -;;; taken for granted and used as the root of the whole bootstrap procedure. -;;; -;;; Code: - -(define %glibc-for-bootstrap - ;; A libc whose `system' and `popen' functions looks for `sh' in $PATH, - ;; without nscd, and with static NSS modules. - (package (inherit glibc-final) - (arguments - (lambda (system) - (substitute-keyword-arguments ((package-arguments glibc-final) system) - ((#:patches patches) - `(cons (assoc-ref %build-inputs "patch/system") - ,patches)) - ((#:configure-flags flags) - ;; Arrange so that getaddrinfo & co. do not contact the nscd, - ;; and can use statically-linked NSS modules. - `(cons* "--disable-nscd" "--disable-build-nscd" - "--enable-static-nss" - ,flags))))) - (inputs - `(("patch/system" ,(search-patch "glibc-bootstrap-system.patch")) - ,@(package-inputs glibc-final))))) - -(define %standard-inputs-with-relocatable-glibc - ;; Standard inputs with the above libc and corresponding GCC. - `(("libc", %glibc-for-bootstrap) - ("gcc" ,(package-with-explicit-inputs - gcc-4.7 - `(("libc",%glibc-for-bootstrap) - ,@(alist-delete "libc" %final-inputs)) - (current-source-location))) - ,@(fold alist-delete %final-inputs '("libc" "gcc")))) - -(define %bash-static - (static-package bash-light)) - -(define %static-inputs - ;; Packages that are to be used as %BOOTSTRAP-INPUTS. - (let ((coreutils (package (inherit coreutils) - (arguments - `(#:configure-flags - '("--disable-nls" - "--disable-silent-rules" - "--enable-no-install-program=stdbuf,libstdbuf.so" - "CFLAGS=-Os -g0" ; smaller, please - "LDFLAGS=-static -pthread") - #:tests? #f ; signal-related Gnulib tests fail - ,@(package-arguments coreutils))) - - ;; Remove optional dependencies such as GMP. - (inputs `(,(assoc "perl" (package-inputs coreutils)))))) - (bzip2 (package (inherit bzip2) - (arguments - (substitute-keyword-arguments (package-arguments bzip2) - ((#:phases phases) - `(alist-cons-before - 'build 'dash-static - (lambda _ - (substitute* "Makefile" - (("^LDFLAGS[[:blank:]]*=.*$") - "LDFLAGS = -static"))) - ,phases)))))) - (xz (package (inherit xz) - (arguments - `(#:strip-flags '("--strip-all") - #:phases (alist-cons-before - 'configure 'static-executable - (lambda _ - ;; Ask Libtool for a static executable. - (substitute* "src/xz/Makefile.in" - (("^xz_LDADD =") - "xz_LDADD = -all-static"))) - %standard-phases))))) - (gawk (package (inherit gawk) - (arguments - (lambda (system) - `(#:patches (list (assoc-ref %build-inputs "patch/sh")) - ,@(substitute-keyword-arguments - ((package-arguments gawk) system) - ((#:phases phases) - `(alist-cons-before - 'configure 'no-export-dynamic - (lambda _ - ;; Since we use `-static', remove - ;; `-export-dynamic'. - (substitute* "configure" - (("-export-dynamic") ""))) - ,phases)))))) - (inputs `(("patch/sh" ,(search-patch "gawk-shell.patch")))))) - (finalize (lambda (p) - (static-package (package-with-explicit-inputs - p - %standard-inputs-with-relocatable-glibc) - (current-source-location))))) - `(,@(map (match-lambda - ((name package) - (list name (finalize package)))) - `(("tar" ,tar) - ("gzip" ,gzip) - ("bzip2" ,bzip2) - ("xz" ,xz) - ("patch" ,patch) - ("coreutils" ,coreutils) - ("sed" ,sed) - ("grep" ,grep) - ("gawk" ,gawk))) - ("bash" ,%bash-static) - ;; ("ld-wrapper" ,ld-wrapper) - ;; ("binutils" ,binutils-final) - ;; ("gcc" ,gcc-final) - ;; ("libc" ,glibc-final) - ))) - -(define %static-binaries - (package - (name "static-binaries") - (version "0") - (build-system trivial-build-system) - (source #f) - (inputs %static-inputs) - (arguments - `(#:modules ((guix build utils)) - #:builder - (begin - (use-modules (ice-9 ftw) - (ice-9 match) - (srfi srfi-1) - (srfi srfi-26) - (guix build utils)) - - (let () - (define (directory-contents dir) - (map (cut string-append dir "/" <>) - (scandir dir (negate (cut member <> '("." "..")))))) - - (define (copy-directory source destination) - (for-each (lambda (file) - (format #t "copying ~s...~%" file) - (copy-file file - (string-append destination "/" - (basename file)))) - (directory-contents source))) - - (let* ((out (assoc-ref %outputs "out")) - (bin (string-append out "/bin"))) - (mkdir-p bin) - - ;; Copy Coreutils binaries. - (let* ((coreutils (assoc-ref %build-inputs "coreutils")) - (source (string-append coreutils "/bin"))) - (copy-directory source bin)) - - ;; For the other inputs, copy just one binary, which has the - ;; same name as the input. - (for-each (match-lambda - ((name . dir) - (let ((source (string-append dir "/bin/" name))) - (format #t "copying ~s...~%" source) - (copy-file source - (string-append bin "/" name))))) - (alist-delete "coreutils" %build-inputs)) - - ;; But of course, there are exceptions to this rule. - (let ((grep (assoc-ref %build-inputs "grep"))) - (copy-file (string-append grep "/bin/fgrep") - (string-append bin "/fgrep")) - (copy-file (string-append grep "/bin/egrep") - (string-append bin "/egrep"))) - - ;; Clear references to the store path. - (for-each remove-store-references - (directory-contents bin)) - - (with-directory-excursion bin - ;; Programs such as Perl's build system want these aliases. - (symlink "bash" "sh") - (symlink "gawk" "awk")) - - #t))))) - (synopsis "Statically-linked bootstrap binaries") - (description - "Binaries used to bootstrap the distribution.") - (license #f) - (home-page #f))) - -(define %binutils-static - ;; Statically-linked Binutils. - (package (inherit binutils) - (name "binutils-static") - (arguments - `(#:configure-flags '("--disable-gold" "--with-lib-path=/no-ld-lib-path") - #:strip-flags '("--strip-all") - #:phases (alist-cons-before - 'configure 'all-static - (lambda _ - ;; The `-all-static' libtool flag can only be passed - ;; after `configure', since configure tests don't use - ;; libtool, and only for executables built with libtool. - (substitute* '("binutils/Makefile.in" - "gas/Makefile.in" - "ld/Makefile.in") - (("^LDFLAGS =(.*)$" line) - (string-append line - "\nAM_LDFLAGS = -static -all-static\n")))) - %standard-phases))))) - -(define %binutils-static-stripped - ;; The subset of Binutils that we need. - (package (inherit %binutils-static) - (build-system trivial-build-system) - (arguments - `(#:modules ((guix build utils)) - #:builder - (begin - (use-modules (guix build utils)) - - (setvbuf (current-output-port) _IOLBF) - (let* ((in (assoc-ref %build-inputs "binutils")) - (out (assoc-ref %outputs "out")) - (bin (string-append out "/bin"))) - (mkdir-p bin) - (for-each (lambda (file) - (let ((target (string-append bin "/" file))) - (format #t "copying `~a'...~%" file) - (copy-file (string-append in "/bin/" file) - target) - (remove-store-references target))) - '("ar" "as" "ld" "nm" "objcopy" "objdump" - "ranlib" "readelf" "size" "strings" "strip")) - #t)))) - (inputs `(("binutils" ,%binutils-static))))) - -(define %glibc-stripped - ;; GNU libc's essential shared libraries, dynamic linker, and headers, - ;; with all references to store directories stripped. As a result, - ;; libc.so is unusable and need to be patched for proper relocation. - (let ((glibc %glibc-for-bootstrap)) - (package (inherit glibc) - (name "glibc-stripped") - (build-system trivial-build-system) - (arguments - `(#:modules ((guix build utils)) - #:builder - (begin - (use-modules (guix build utils)) - - (setvbuf (current-output-port) _IOLBF) - (let* ((out (assoc-ref %outputs "out")) - (libdir (string-append out "/lib")) - (incdir (string-append out "/include")) - (libc (assoc-ref %build-inputs "libc")) - (linux (assoc-ref %build-inputs "linux-headers"))) - (mkdir-p libdir) - (for-each (lambda (file) - (let ((target (string-append libdir "/" - (basename file)))) - (copy-file file target) - (remove-store-references target))) - (find-files (string-append libc "/lib") - "^(crt.*|ld.*|lib(c|m|dl|rt|pthread|nsl|util).*\\.so(\\..*)?|libc_nonshared\\.a)$")) - - (copy-recursively (string-append libc "/include") incdir) - - ;; Copy some of the Linux-Libre headers that glibc headers - ;; refer to. - (mkdir (string-append incdir "/linux")) - (for-each (lambda (file) - (copy-file (string-append linux "/include/linux/" file) - (string-append incdir "/linux/" - (basename file)))) - '("limits.h" "errno.h" "socket.h" "kernel.h" - "sysctl.h" "param.h" "ioctl.h" "types.h" - "posix_types.h" "stddef.h")) - - (copy-recursively (string-append linux "/include/asm") - (string-append incdir "/asm")) - (copy-recursively (string-append linux "/include/asm-generic") - (string-append incdir "/asm-generic")) - #t)))) - (inputs `(("libc" ,glibc) - ("linux-headers" ,linux-libre-headers)))))) - -(define %gcc-static - ;; A statically-linked GCC, with stripped-down functionality. - (package-with-explicit-inputs - (package (inherit gcc-final) - (name "gcc-static") - (arguments - (lambda (system) - `(#:modules ((guix build utils) - (guix build gnu-build-system) - (srfi srfi-1) - (srfi srfi-26) - (ice-9 regex)) - ,@(substitute-keyword-arguments ((package-arguments gcc-final) system) - ((#:guile _) #f) - ((#:implicit-inputs? _) #t) - ((#:configure-flags flags) - `(append (list - "--disable-shared" - "--disable-plugin" - "--enable-languages=c" - "--disable-libmudflap" - "--disable-libgomp" - "--disable-libssp" - "--disable-libquadmath" - "--disable-decimal-float") - (remove (cut string-match "--(.*plugin|enable-languages)" <>) - ,flags))) - ((#:make-flags flags) - `(cons "BOOT_LDFLAGS=-static" ,flags)))))) - (inputs `(("gmp-source" ,(package-source gmp)) - ("mpfr-source" ,(package-source mpfr)) - ("mpc-source" ,(package-source mpc)) - ("binutils" ,binutils-final) - ,@(package-inputs gcc-4.7)))) - %standard-inputs-with-relocatable-glibc)) - -(define %gcc-stripped - ;; The subset of GCC files needed for bootstrap. - (package (inherit gcc-4.7) - (name "gcc-stripped") - (build-system trivial-build-system) - (source #f) - (arguments - `(#:modules ((guix build utils)) - #:builder - (begin - (use-modules (srfi srfi-1) - (srfi srfi-26) - (guix build utils)) - - (setvbuf (current-output-port) _IOLBF) - (let* ((out (assoc-ref %outputs "out")) - (bindir (string-append out "/bin")) - (libdir (string-append out "/lib")) - (libexecdir (string-append out "/libexec")) - (gcc (assoc-ref %build-inputs "gcc"))) - (copy-recursively (string-append gcc "/bin") bindir) - (for-each remove-store-references - (find-files bindir ".*")) - - (copy-recursively (string-append gcc "/lib") libdir) - (for-each remove-store-references - (remove (cut string-suffix? ".h" <>) - (find-files libdir ".*"))) - - (copy-recursively (string-append gcc "/libexec") - libexecdir) - (for-each remove-store-references - (find-files libexecdir ".*")) - #t)))) - (inputs `(("gcc" ,%gcc-static))))) - -(define %guile-static - ;; A statically-linked Guile that is relocatable--i.e., it can search - ;; .scm and .go files relative to its installation directory, rather - ;; than in hard-coded configure-time paths. - (let ((guile (package (inherit guile-2.0) - (inputs - `(("patch/relocatable" - ,(search-patch "guile-relocatable.patch")) - ("patch/utf8" - ,(search-patch "guile-default-utf8.patch")) - ,@(package-inputs guile-2.0))) - (arguments - `(;; When `configure' checks for ltdl availability, it - ;; doesn't try to link using libtool, and thus fails - ;; because of a missing -ldl. Work around that. - #:configure-flags '("LDFLAGS=-ldl") - - #:phases (alist-cons-before - 'configure 'static-guile - (lambda _ - (substitute* "libguile/Makefile.in" - ;; Create a statically-linked `guile' - ;; executable. - (("^guile_LDFLAGS =") - "guile_LDFLAGS = -all-static") - - ;; Add `-ldl' *after* libguile-2.0.la. - (("^guile_LDADD =(.*)$" _ ldadd) - (string-append "guile_LDADD = " - (string-trim-right ldadd) - " -ldl\n")))) - %standard-phases) - - ;; Allow Guile to be relocated, as is needed during - ;; bootstrap. - #:patches - (list (assoc-ref %build-inputs "patch/relocatable") - (assoc-ref %build-inputs "patch/utf8")) - - ;; There are uses of `dynamic-link' in - ;; {foreign,coverage}.test that don't fly here. - #:tests? #f))))) - (package-with-explicit-inputs (static-package guile) - %standard-inputs-with-relocatable-glibc - (current-source-location)))) - -(define %guile-static-stripped - ;; A stripped static Guile binary, for use during bootstrap. - (package (inherit %guile-static) - (name "guile-static-stripped") - (build-system trivial-build-system) - (arguments - `(#:modules ((guix build utils)) - #:builder - (let () - (use-modules (guix build utils)) - - (let ((in (assoc-ref %build-inputs "guile")) - (out (assoc-ref %outputs "out"))) - (mkdir-p (string-append out "/share/guile/2.0")) - (copy-recursively (string-append in "/share/guile/2.0") - (string-append out "/share/guile/2.0")) - - (mkdir-p (string-append out "/lib/guile/2.0/ccache")) - (copy-recursively (string-append in "/lib/guile/2.0/ccache") - (string-append out "/lib/guile/2.0/ccache")) - - (mkdir (string-append out "/bin")) - (copy-file (string-append in "/bin/guile") - (string-append out "/bin/guile")) - (remove-store-references (string-append out "/bin/guile")) - #t)))) - (inputs `(("guile" ,%guile-static))))) - -(define (tarball-package pkg) - "Return a package containing a tarball of PKG." - (package (inherit pkg) - (location (source-properties->location (current-source-location))) - (name (string-append (package-name pkg) "-tarball")) - (build-system trivial-build-system) - (inputs `(("tar" ,tar) - ("xz" ,xz) - ("input" ,pkg))) - (arguments - (lambda (system) - (let ((name (package-name pkg)) - (version (package-version pkg))) - `(#:modules ((guix build utils)) - #:builder - (begin - (use-modules (guix build utils)) - (let ((out (assoc-ref %outputs "out")) - (input (assoc-ref %build-inputs "input")) - (tar (assoc-ref %build-inputs "tar")) - (xz (assoc-ref %build-inputs "xz"))) - (mkdir out) - (set-path-environment-variable "PATH" '("bin") (list tar xz)) - (with-directory-excursion input - (zero? (system* "tar" "cJvf" - (string-append out "/" - ,name "-" ,version - "-" ,system ".tar.xz") - "."))))))))))) - -(define %bootstrap-binaries-tarball - ;; A tarball with the statically-linked bootstrap binaries. - (tarball-package %static-binaries)) - -(define %binutils-bootstrap-tarball - ;; A tarball with the statically-linked Binutils programs. - (tarball-package %binutils-static-stripped)) - -(define %glibc-bootstrap-tarball - ;; A tarball with GNU libc's shared libraries, dynamic linker, and headers. - (tarball-package %glibc-stripped)) - -(define %gcc-bootstrap-tarball - ;; A tarball with a dynamic-linked GCC and its headers. - (tarball-package %gcc-stripped)) - -(define %guile-bootstrap-tarball - ;; A tarball with the statically-linked, relocatable Guile. - (tarball-package %guile-static-stripped)) - -(define %bootstrap-tarballs - ;; A single derivation containing all the bootstrap tarballs, for - ;; convenience. - (package - (name "bootstrap-tarballs") - (version "0") - (source #f) - (build-system trivial-build-system) - (arguments - `(#:modules ((guix build utils)) - #:builder - (let ((out (assoc-ref %outputs "out"))) - (use-modules (guix build utils) - (ice-9 match) - (srfi srfi-26)) - - (setvbuf (current-output-port) _IOLBF) - (mkdir out) - (chdir out) - (for-each (match-lambda - ((name . directory) - (for-each (lambda (file) - (format #t "~a -> ~a~%" file out) - (symlink file (basename file))) - (find-files directory "\\.tar\\.")))) - %build-inputs) - #t))) - (inputs `(("guile-tarball" ,%guile-bootstrap-tarball) - ("gcc-tarball" ,%gcc-bootstrap-tarball) - ("binutils-tarball" ,%binutils-bootstrap-tarball) - ("glibc-tarball" ,%glibc-bootstrap-tarball) - ("coreutils&co-tarball" ,%bootstrap-binaries-tarball))) - (synopsis #f) - (description #f) - (home-page #f) - (license gpl3+))) - -;;; make-bootstrap.scm ends here diff --git a/distro/packages/mit-krb5.scm b/distro/packages/mit-krb5.scm deleted file mode 100644 index 13250ff95b..0000000000 --- a/distro/packages/mit-krb5.scm +++ /dev/null @@ -1,69 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012 Andreas Enge -;;; -;;; 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 . - -(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 deleted file mode 100644 index 444c6103eb..0000000000 --- a/distro/packages/multiprecision.scm +++ /dev/null @@ -1,124 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013 Ludovic Courtès -;;; -;;; 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 . - -(define-module (distro packages multiprecision) - #:use-module (guix licenses) - #:use-module (distro) - #:use-module (distro packages m4) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix utils) - #:use-module (guix build-system gnu)) - -(define-public gmp - (package - (name "gmp") - (version "5.1.0") - (source (origin - (method url-fetch) - (uri - ;; Note: this version is not available from GNU mirrors - ;; because it was made with an Automake affected by - ;; CVE-2012-3386. - (string-append "ftp://ftp.gmplib.org/pub/gmp-" - version "/gmp-" version ".tar.bz2")) - (sha256 - (base32 - "15n7xxgasbxdch8ii8z9ic6fxc2ysk3q8iavf55abjp5iylspnfz")))) - (build-system gnu-build-system) - (native-inputs `(("m4" ,m4))) - (arguments `(#:configure-flags - '(;; Build a "fat binary", with routines for several - ;; sub-architectures. - "--enable-fat" - "--enable-cxx"))) - (synopsis "GMP, the GNU multiple precision arithmetic library") - (description - "GMP is a free library for arbitrary precision arithmetic, operating on -signed integers, rational numbers, and floating point numbers. There is no -practical limit to the precision except the ones implied by the available -memory in the machine GMP runs on. GMP has a rich set of functions, and the -functions have a regular interface. - -The main target applications for GMP are cryptography applications and -research, Internet security applications, algebra systems, computational -algebra research, etc. - -GMP is carefully designed to be as fast as possible, both for small operands -and for huge operands. The speed is achieved by using fullwords as the basic -arithmetic type, by using fast algorithms, with highly optimised assembly -code for the most common inner loops for a lot of CPUs, and by a general -emphasis on speed. - -GMP is faster than any other bignum library. The advantage for GMP increases -with the operand sizes for many operations, since GMP uses asymptotically -faster algorithms.") - (license lgpl3+) - (home-page "http://gmplib.org/"))) - -(define-public mpfr - (package - (name "mpfr") - (version "3.1.1") - (source (origin - (method url-fetch) - (uri (string-append "mirror://gnu/mpfr/mpfr-" version - ".tar.xz")) - (sha256 (base32 - "0ym1ylcq803n52qrggxqmkz66gbn8ncc3ybawal31v5y5p1srma9")))) - (build-system gnu-build-system) - (inputs `(("gmp" ,gmp))) - (synopsis "GNU MPFR, a library for multiple-precision floating-point -arithmetic") - (description - "The GNU MPFR library is a C library for multiple-precision -floating-point computations with correct rounding. MPFR is based on the GMP -multiple-precision library. - -The main goal of MPFR is to provide a library for multiple-precision -floating-point computation which is both efficient and has a well-defined -semantics. It copies the good ideas from the ANSI/IEEE-754 standard for -double-precision floating-point arithmetic (53-bit mantissa).") - (license lgpl3+) - (home-page "http://www.mpfr.org/"))) - -(define-public mpc - (package - (name "mpc") - (version "1.0.1") - (source (origin - (method url-fetch) - (uri (string-append - "mirror://gnu/mpc/mpc-" version ".tar.gz")) - (sha256 (base32 - "1zq0fidp1jii2j5k5n9hmx55a6wwid33gjzhimvxq9d5zrf82npd")))) - (build-system gnu-build-system) - (inputs `(("gmp" ,gmp) - ("mpfr" ,mpfr))) - (synopsis "GNU MPC, a library for multiprecision complex arithmetic -with exact rounding") - (description - "GNU MPC is a C library for the arithmetic of complex numbers with -arbitrarily high precision and correct rounding of the result. It extends -the principles of the IEEE-754 standard for fixed precision real floating -point numbers to complex numbers, providing well-defined semantics for -every operation. At the same time, speed of operation at high precision -is a major design goal. The library is built upon and follows the same -principles as GNU MPFR.") - (license lgpl3+) - (home-page "http://mpc.multiprecision.org/"))) diff --git a/distro/packages/mysql.scm b/distro/packages/mysql.scm deleted file mode 100644 index d98271a78b..0000000000 --- a/distro/packages/mysql.scm +++ /dev/null @@ -1,87 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013 Ludovic Courtès -;;; -;;; 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 . - -(define-module (distro packages mysql) - #:use-module (distro) - #:use-module (distro packages perl) - #:use-module (distro packages linux) - #:use-module (distro packages openssl) - #:use-module (distro packages compression) - #:use-module (distro packages ncurses) - #:use-module ((guix licenses) #:select (gpl2)) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix build-system gnu)) - -(define-public mysql - (package - (name "mysql") - (version "5.1.54") - (source (origin - (method url-fetch) - (uri (string-append - "http://downloads.mysql.com/archives/mysql-5.1/mysql-" - version ".tar.gz")) - (sha256 - (base32 - "07xbnwk7h1xya8s6dw34nrv7ampzag8l0l1szd2pc9zyqkzhydw4")))) - (build-system gnu-build-system) - (inputs - `(("procps" ,procps) - ("openssl" ,openssl) - ("perl" ,perl) - ("zlib" ,zlib) - ("ncurses" ,ncurses))) - (arguments - '(#:modules ((guix build gnu-build-system) - (guix build utils) - (ice-9 ftw)) ; for "rm -rf" - #:phases (alist-cons-after - 'install 'clean-up - (lambda* (#:key outputs #:allow-other-keys) - ;; Remove the 112 MiB of tests that get installed. - (let ((out (assoc-ref outputs "out"))) - (define (rm-rf dir) - (file-system-fold (const #t) ; enter? - (lambda (file stat result) ; leaf - (delete-file file)) - (const #t) ; down - (lambda (dir stat result) ; up - (rmdir dir)) - (const #t) - (lambda (file stat errno result) - (format (current-error-port) - "error: ~a: ~a~%" - file (strerror errno))) - #t - (string-append out "/" dir))) - (rm-rf "mysql-test") - (rm-rf "sql-bench") - - ;; Compress the 14 MiB Info file. - (zero? - (system* "gzip" "--best" - (string-append out "/share/info/mysql.info"))))) - %standard-phases))) - (home-page "http://www.mysql.com/") - (synopsis "A fast, easy to use, and popular database") - (description - "MySQL is a fast, reliable, and easy to use relational database -management system that supports the standardized Structured Query -Language.") - (license gpl2))) diff --git a/distro/packages/nano.scm b/distro/packages/nano.scm deleted file mode 100644 index f51702f4f2..0000000000 --- a/distro/packages/nano.scm +++ /dev/null @@ -1,52 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012 Nikita Karetnikov -;;; -;;; 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 . - -(define-module (distro packages nano) - #:use-module (guix licenses) - #:use-module ((distro packages gettext) - #:renamer (symbol-prefix-proc 'guix:)) - #:use-module (distro packages ncurses) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix build-system gnu)) - -(define-public nano - (package - (name "nano") - (version "2.2.6") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://gnu/nano/nano-" - version ".tar.gz")) - (sha256 - (base32 - "0yp6pid67k8h7394spzw0067fl2r7rxm2b6kfccg87g8nlry2s5y")))) - (build-system gnu-build-system) - (inputs - `(("gettext" ,guix:gettext) - ("ncurses" ,ncurses))) - (home-page "http://www.nano-editor.org/") - (synopsis - "A small, user-friendly console text editor") - (description - "GNU nano is designed to be a free replacement for the Pico text -editor, part of the Pine email suite from The University of -Washington. It aims to emulate Pico as closely as possible and perhaps -include extra functionality.") - (license gpl3+))) ; some files are under GPLv2+ \ No newline at end of file diff --git a/distro/packages/ncurses.scm b/distro/packages/ncurses.scm deleted file mode 100644 index 938d1dc2c4..0000000000 --- a/distro/packages/ncurses.scm +++ /dev/null @@ -1,128 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013 Ludovic Courtès -;;; -;;; 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 . - -(define-module (distro packages ncurses) - #:use-module (guix licenses) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix utils) - #:use-module (guix build-system gnu)) - -(define-public ncurses - (let ((patch-makefile-phase - '(lambda _ - (for-each patch-makefile-SHELL - (find-files "." "Makefile.in")))) - (configure-phase - '(lambda* (#:key inputs outputs configure-flags - #:allow-other-keys) - ;; The `ncursesw5-config' has a #!/bin/sh. We want to patch - ;; it to point to libc's embedded Bash, to avoid retaining a - ;; reference to the bootstrap Bash. - (let* ((libc (assoc-ref inputs "libc")) - (bash (string-append libc "/bin/bash")) - (out (assoc-ref outputs "out"))) - (format #t "configure flags: ~s~%" configure-flags) - (zero? (apply system* bash "./configure" - (string-append "SHELL=" bash) - (string-append "CONFIG_SHELL=" bash) - (string-append "--prefix=" out) - configure-flags))))) - (post-install-phase - '(lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - ;; When building a wide-character (Unicode) build, create backward - ;; compatibility links from the the "normal" libraries to the - ;; wide-character libraries (e.g. libncurses.so to libncursesw.so). - (with-directory-excursion (string-append out "/lib") - (for-each (lambda (lib) - (define libw.a - (string-append "lib" lib "w.a")) - (define lib.a - (string-append "lib" lib ".a")) - (define libw.so.x - (string-append "lib" lib "w.so.5")) - (define lib.so.x - (string-append "lib" lib ".so.5")) - (define lib.so - (string-append "lib" lib ".so")) - - (when (file-exists? libw.a) - (format #t "creating symlinks for `lib~a'~%" lib) - (symlink libw.a lib.a) - (symlink libw.so.x lib.so.x) - (false-if-exception (delete-file lib.so)) - (call-with-output-file lib.so - (lambda (p) - (format p "INPUT (-l~aw)~%" lib))))) - '("curses" "ncurses" "form" "panel" "menu"))))))) - (package - (name "ncurses") - (version "5.9") - (source (origin - (method url-fetch) - (uri (string-append "mirror://gnu/ncurses/ncurses-" - version ".tar.gz")) - (sha256 - (base32 - "0fsn7xis81za62afan0vvm38bvgzg5wfmv1m86flqcj0nj7jjilh")))) - (build-system gnu-build-system) - (arguments - (case-lambda - ((system) - `(#:configure-flags - `("--with-shared" "--without-debug" "--enable-widec" - - ;; By default headers land in an `ncursesw' subdir, which is not - ;; what users expect. - ,(string-append "--includedir=" (assoc-ref %outputs "out") - "/include") - - ;; C++ bindings fail to build on - ;; `i386-pc-solaris2.11' with GCC 3.4.3: - ;; . - ,,@(if (string=? system "i686-solaris") - '("--without-cxx-binding") - '())) - #:tests? #f ; no "check" target - #:phases (alist-cons-after - 'install 'post-install ,post-install-phase - (alist-cons-before - 'configure 'patch-makefile-SHELL - ,patch-makefile-phase - (alist-replace - 'configure - ,configure-phase - %standard-phases))))) - ((system cross-system) - (arguments cross-system)))) - (self-native-input? #t) - (synopsis - "GNU Ncurses, a free software emulation of curses in SVR4 and more") - (description - "The Ncurses (new curses) library is a free software emulation of curses -in System V Release 4.0, and more. It uses Terminfo format, supports pads -and color and multiple highlights and forms characters and function-key -mapping, and has all the other SYSV-curses enhancements over BSD Curses. - -The ncurses code was developed under GNU/Linux. It has been in use for some -time with OpenBSD as the system curses library, and on FreeBSD and NetBSD as -an external package. It should port easily to any ANSI/POSIX-conforming -UNIX. It has even been ported to OS/2 Warp!") - (license x11) - (home-page "http://www.gnu.org/software/ncurses/")))) diff --git a/distro/packages/nettle.scm b/distro/packages/nettle.scm deleted file mode 100644 index 2f512a36d0..0000000000 --- a/distro/packages/nettle.scm +++ /dev/null @@ -1,60 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013 Ludovic Courtès -;;; -;;; 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 . - -(define-module (distro packages nettle) - #:use-module (guix licenses) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix build-system gnu) - #:use-module (distro packages multiprecision) - #:use-module (distro packages m4)) - -(define-public nettle - (package - (name "nettle") - (version "2.6") - (source (origin - (method url-fetch) - (uri (string-append "mirror://gnu/nettle/nettle-" - version ".tar.gz")) - (sha256 - (base32 - "0mminj3fg0vba8qx4q6dbf0xz6fskamli7z2r8rci5xrcd7n5pv0")))) - (build-system gnu-build-system) - (inputs `(("m4" ,m4))) - (propagated-inputs `(("gmp" ,gmp))) - (home-page "http://www.lysator.liu.se/~nisse/nettle/") - (synopsis "GNU Nettle, a cryptographic library") - (description - "Nettle is a cryptographic library that is designed to fit easily -in more or less any context: In crypto toolkits for object-oriented -languages (C++, Python, Pike, ...), in applications like LSH or GNUPG, -or even in kernel space. In most contexts, you need more than the basic -cryptographic algorithms, you also need some way to keep track of -available algorithms, their properties and variants. You often have -some algorithm selection process, often dictated by a protocol you want -to implement. - -And as the requirements of applications differ in subtle and not so -subtle ways, an API that fits one application well can be a pain to use -in a different context. And that is why there are so many different -cryptographic libraries around. \nNettle tries to avoid this problem by -doing one thing, the low-level crypto stuff, and providing a simple but -general interface to it. In particular, Nettle doesn't do algorithm -selection. It doesn't do memory allocation. It doesn't do any I/O.") - (license gpl2+))) diff --git a/distro/packages/openssl.scm b/distro/packages/openssl.scm deleted file mode 100644 index 503f593bdd..0000000000 --- a/distro/packages/openssl.scm +++ /dev/null @@ -1,68 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013 Andreas Enge -;;; -;;; 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 . - -(define-module (distro packages openssl) - #:use-module (distro) - #:use-module (distro packages perl) - #:use-module ((guix licenses) #:renamer (symbol-prefix-proc 'license:)) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix build-system gnu)) - -(define-public openssl - (package - (name "openssl") - (version "1.0.1c") - (source (origin - (method url-fetch) - (uri (string-append "ftp://ftp.openssl.org/source/openssl-" version - ".tar.gz")) - (sha256 (base32 - "1gjy6a7d8nszi9wq8jdzx3cffn0nss23h3cw2ywlw4cb9v6v77ia")))) - (build-system gnu-build-system) - (inputs `(("perl" ,perl))) - (arguments - (lambda (system) - `(#:parallel-build? #f - #:parallel-tests? #f - #:test-target "test" - #:phases - (alist-replace - 'configure - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (zero? - (system* "./config" - "shared" ; build shared libraries - "--libdir=lib" - (string-append "--prefix=" out))))) - (alist-cons-before - 'patch-source-shebangs 'patch-tests - (lambda* (#:key inputs #:allow-other-keys) - (let ((bash (assoc-ref inputs "bash"))) - (substitute* (find-files "test" ".*") - (("/bin/sh") - (string-append bash "/bin/bash")) - (("/bin/rm") - "rm")))) - %standard-phases))))) - (synopsis "OpenSSL, an SSL/TLS implementation") - (description - "OpenSSL is an implementation of SSL/TLS") - (license license:openssl) - (home-page "http://www.openssl.org/"))) diff --git a/distro/packages/patches/bigloo-gc-shebangs.patch b/distro/packages/patches/bigloo-gc-shebangs.patch deleted file mode 100644 index 07af261887..0000000000 --- a/distro/packages/patches/bigloo-gc-shebangs.patch +++ /dev/null @@ -1,17 +0,0 @@ -Patch shebangs in source that gets unpacked by `configure'. - ---- bigloo3.9a/gc/install-gc-7.2d 2013-01-14 15:24:01.000000000 +0100 -+++ bigloo3.9a/gc/install-gc-7.2d 2013-01-14 15:23:51.000000000 +0100 -@@ -29,9 +29,11 @@ fi - # untar the two versions of the GC - $tar xfz $src -C ../gc || (echo "$tar xfz $src failed"; exit 1) - /bin/rm -rf "../gc/$gc"_fth -+find ../gc/gc-7.2 -perm /111 -type f | xargs sed -i -e"s|/bin/sh|`type -P bash`|g" - mv ../gc/gc-7.2 "../gc/$gc"_fth || (echo "mv gc-7.2 failed"; exit 1) - - $tar xfz $src -C ../gc || (echo "$tar xfz $src failed"; exit 1) -+find ../gc/gc-7.2 -perm /111 -type f | xargs sed -i -e"s|/bin/sh|`type -P bash`|g" - mv ../gc/gc-7.2 "../gc/$gc" - - # general Bigloo patch - diff --git a/distro/packages/patches/binutils-ld-new-dtags.patch b/distro/packages/patches/binutils-ld-new-dtags.patch deleted file mode 100644 index 5f7a03fc38..0000000000 --- a/distro/packages/patches/binutils-ld-new-dtags.patch +++ /dev/null @@ -1,16 +0,0 @@ -Turn on --enable-new-dtags by default to make the linker set RUNPATH -instead of RPATH on binaries. This is important because RUNPATH can -be overriden using LD_LIBRARY_PATH at runtime. - -Patch from Nixpkgs by Eelco Dolstra . - ---- binutils/ld/ldmain.c -+++ binutils/ld/ldmain.c -@@ -296,6 +296,7 @@ main (int argc, char **argv) - - link_info.allow_undefined_version = TRUE; - link_info.keep_memory = TRUE; -+ link_info.new_dtags = TRUE; - link_info.combreloc = TRUE; - link_info.strip_discarded = TRUE; - link_info.callbacks = &link_callbacks; diff --git a/distro/packages/patches/cpio-gets-undeclared.patch b/distro/packages/patches/cpio-gets-undeclared.patch deleted file mode 100644 index bc34de6455..0000000000 --- a/distro/packages/patches/cpio-gets-undeclared.patch +++ /dev/null @@ -1,45 +0,0 @@ -This patch is needed to allow builds with newer versions of -the GNU libc (2.16+). - -The upstream fix was: - - commit 66712c23388e93e5c518ebc8515140fa0c807348 - Author: Eric Blake - Date: Thu Mar 29 13:30:41 2012 -0600 - - stdio: don't assume gets any more - - Gnulib intentionally does not have a gets module, and now that C11 - and glibc have dropped it, we should be more proactive about warning - any user on a platform that still has a declaration of this dangerous - interface. - - * m4/stdio_h.m4 (gl_STDIO_H, gl_STDIO_H_DEFAULTS): Drop gets - support. - * modules/stdio (Makefile.am): Likewise. - * lib/stdio-read.c (gets): Likewise. - * tests/test-stdio-c++.cc: Likewise. - * m4/warn-on-use.m4 (gl_WARN_ON_USE_PREPARE): Fix comment. - * lib/stdio.in.h (gets): Make warning occur in more places. - * doc/posix-functions/gets.texi (gets): Update documentation. - Reported by Christer Solskogen. - - Signed-off-by: Eric Blake - -This patch just gets rid of the offending part. - ---- cpio-2.11/gnu/stdio.in.h-orig 2012-11-25 22:17:06.000000000 +0400 -+++ cpio-2.11/gnu/stdio.in.h 2012-11-25 22:18:36.000000000 +0400 -@@ -135,12 +135,6 @@ - "use gnulib module fflush for portable POSIX compliance"); - #endif - --/* It is very rare that the developer ever has full control of stdin, -- so any use of gets warrants an unconditional warning. Assume it is -- always declared, since it is required by C89. */ --#undef gets --_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead"); -- - #if @GNULIB_FOPEN@ - # if @REPLACE_FOPEN@ - # if !(defined __cplusplus && defined GNULIB_NAMESPACE) diff --git a/distro/packages/patches/diffutils-gets-undeclared.patch b/distro/packages/patches/diffutils-gets-undeclared.patch deleted file mode 100644 index b6cdc77caa..0000000000 --- a/distro/packages/patches/diffutils-gets-undeclared.patch +++ /dev/null @@ -1,71 +0,0 @@ -This patch is needed to allow builds with newer versions of -the GNU libc (2.16+). - - -commit 66712c23388e93e5c518ebc8515140fa0c807348 -Author: Eric Blake -Date: Thu Mar 29 13:30:41 2012 -0600 - - stdio: don't assume gets any more - - Gnulib intentionally does not have a gets module, and now that C11 - and glibc have dropped it, we should be more proactive about warning - any user on a platform that still has a declaration of this dangerous - interface. - - * m4/stdio_h.m4 (gl_STDIO_H, gl_STDIO_H_DEFAULTS): Drop gets - support. - * modules/stdio (Makefile.am): Likewise. - * lib/stdio-read.c (gets): Likewise. - * tests/test-stdio-c++.cc: Likewise. - * m4/warn-on-use.m4 (gl_WARN_ON_USE_PREPARE): Fix comment. - * lib/stdio.in.h (gets): Make warning occur in more places. - * doc/posix-functions/gets.texi (gets): Update documentation. - Reported by Christer Solskogen. - - Signed-off-by: Eric Blake - -diff --git a/lib/stdio.in.h b/lib/stdio.in.h -index aa7b599..c377b6e 100644 ---- a/lib/stdio.in.h -+++ b/lib/stdio.in.h -@@ -698,22 +698,11 @@ _GL_WARN_ON_USE (getline, "getline is unportable - " - # endif - #endif - --#if @GNULIB_GETS@ --# if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ --# if !(defined __cplusplus && defined GNULIB_NAMESPACE) --# undef gets --# define gets rpl_gets --# endif --_GL_FUNCDECL_RPL (gets, char *, (char *s) _GL_ARG_NONNULL ((1))); --_GL_CXXALIAS_RPL (gets, char *, (char *s)); --# else --_GL_CXXALIAS_SYS (gets, char *, (char *s)); --# undef gets --# endif --_GL_CXXALIASWARN (gets); - /* It is very rare that the developer ever has full control of stdin, -- so any use of gets warrants an unconditional warning. Assume it is -- always declared, since it is required by C89. */ -+ so any use of gets warrants an unconditional warning; besides, C11 -+ removed it. */ -+#undef gets -+#if HAVE_RAW_DECL_GETS - _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead"); - #endif - -@@ -1053,9 +1042,9 @@ _GL_WARN_ON_USE (snprintf, "snprintf is unportable - " - # endif - #endif - --/* Some people would argue that sprintf should be handled like gets -- (for example, OpenBSD issues a link warning for both functions), -- since both can cause security holes due to buffer overruns. -+/* Some people would argue that all sprintf uses should be warned about -+ (for example, OpenBSD issues a link warning for it), -+ since it can cause security holes due to buffer overruns. - However, we believe that sprintf can be used safely, and is more - efficient than snprintf in those safe cases; and as proof of our - belief, we use sprintf in several gnulib modules. So this header diff --git a/distro/packages/patches/emacs-configure-sh.patch b/distro/packages/patches/emacs-configure-sh.patch deleted file mode 100644 index fd34d06ced..0000000000 --- a/distro/packages/patches/emacs-configure-sh.patch +++ /dev/null @@ -1,14 +0,0 @@ -Make sure the right shell is used when creating src/epaths.h. - ---- emacs-24.2/configure 2013-01-13 17:01:53.000000000 +0100 -+++ emacs-24.2/configure 2013-01-13 17:01:57.000000000 +0100 -@@ -24135,7 +24135,7 @@ done - ;; - "epaths":C) - echo creating src/epaths.h --${MAKE-make} epaths-force -+${MAKE-make} epaths-force SHELL="$CONFIG_SHELL" - ;; - "gdbinit":C) - if test ! -f src/.gdbinit && test -f $srcdir/src/.gdbinit; then - diff --git a/distro/packages/patches/findutils-absolute-paths.patch b/distro/packages/patches/findutils-absolute-paths.patch deleted file mode 100644 index 96341e281f..0000000000 --- a/distro/packages/patches/findutils-absolute-paths.patch +++ /dev/null @@ -1,29 +0,0 @@ -Fix use of LFS-style absolute paths. - -Patches from Nixpkgs by Armijn Hemel -and Wouter den Breejen . - -diff -ruN findutils-4.2.20/locate/updatedb.sh findutils-4.2.20.new/locate/updatedb.sh ---- findutils-4.2.20/locate/updatedb.sh 2005-01-24 17:12:35.000000000 +0100 -+++ findutils-4.2.20.new/locate/updatedb.sh 2005-08-23 14:37:10.000000000 +0200 -@@ -141,7 +141,7 @@ - : ${code:=${LIBEXECDIR}/@code@} - - --PATH=/bin:/usr/bin:${BINDIR}; export PATH -+PATH=/bin:/usr/bin:${BINDIR}:${PATH}; export PATH - - : ${PRUNEFS="nfs NFS proc afs proc smbfs autofs iso9660 ncpfs coda devpts ftpfs devfs mfs sysfs shfs"} - -diff -Naur findutils-4.2.30/xargs/xargs.c findutils-4.2.30_new/xargs/xargs.c ---- findutils-4.2.30/xargs/xargs.c 2007-02-27 11:21:08.000000000 +0100 -+++ findutils-4.2.30_new/xargs/xargs.c 2007-07-17 19:02:05.000000000 +0200 -@@ -402,7 +402,7 @@ - int show_limits = 0; /* --show-limits */ - int always_run_command = 1; - char *input_file = "-"; /* "-" is stdin */ -- char *default_cmd = "/bin/echo"; -+ char *default_cmd = "echo"; - int (*read_args) PARAMS ((void)) = read_line; - void (*act_on_init_result)(void) = noop; - int env_too_big = 0; diff --git a/distro/packages/patches/flex-bison-tests.patch b/distro/packages/patches/flex-bison-tests.patch deleted file mode 100644 index 0f372f83bf..0000000000 --- a/distro/packages/patches/flex-bison-tests.patch +++ /dev/null @@ -1,24 +0,0 @@ -The `test-bison-yyl{loc,val}' tests fail with "conflicting types for -'testparse'" because `YYPARSE_PARAM' is undefined; work around that. - ---- flex-2.5.37/tests/test-bison-yylloc/main.c 2012-11-22 18:17:01.000000000 +0100 -+++ flex-2.5.37/tests/test-bison-yylloc/main.c 2012-11-22 18:17:07.000000000 +0100 -@@ -21,6 +21,7 @@ - * PURPOSE. - */ - -+#define YYPARSE_PARAM scanner - #include "parser.h" - #include "scanner.h" - - ---- flex-2.5.37/tests/test-bison-yylval/main.c 2012-11-22 18:17:42.000000000 +0100 -+++ flex-2.5.37/tests/test-bison-yylval/main.c 2012-11-22 18:17:49.000000000 +0100 -@@ -21,6 +21,7 @@ - * PURPOSE. - */ - -+#define YYPARSE_PARAM scanner - #include "parser.h" - #include "scanner.h" - diff --git a/distro/packages/patches/gawk-shell.patch b/distro/packages/patches/gawk-shell.patch deleted file mode 100644 index 89b8540a8d..0000000000 --- a/distro/packages/patches/gawk-shell.patch +++ /dev/null @@ -1,34 +0,0 @@ -As for libc's `system', change Awk to look for `sh' in $PATH. This patch is -only meant to be used during bootstrapping, where we don't know in advance the -absolute file name of `sh'. - ---- gawk-4.0.0/io.c 2011-05-18 20:47:29.000000000 +0200 -+++ gawk-4.0.0/io.c 2012-12-18 15:56:06.000000000 +0100 -@@ -1759,7 +1759,7 @@ two_way_open(const char *str, struct red - - signal(SIGPIPE, SIG_DFL); - -- execl("/bin/sh", "sh", "-c", str, NULL); -+ execlp("sh", "sh", "-c", str, NULL); - _exit(errno == ENOENT ? 127 : 126); - - case -1: -@@ -1924,7 +1924,7 @@ use_pipes: - || close(ctop[0]) == -1 || close(ctop[1]) == -1) - fatal(_("close of pipe failed (%s)"), strerror(errno)); - /* stderr does NOT get dup'ed onto child's stdout */ -- execl("/bin/sh", "sh", "-c", str, NULL); -+ execlp("sh", "sh", "-c", str, NULL); - _exit(errno == ENOENT ? 127 : 126); - } - #endif /* NOT __EMX__ */ -@@ -2074,7 +2074,7 @@ gawk_popen(const char *cmd, struct redir - fatal(_("moving pipe to stdout in child failed (dup: %s)"), strerror(errno)); - if (close(p[0]) == -1 || close(p[1]) == -1) - fatal(_("close of pipe failed (%s)"), strerror(errno)); -- execl("/bin/sh", "sh", "-c", cmd, NULL); -+ execlp("sh", "sh", "-c", cmd, NULL); - _exit(errno == ENOENT ? 127 : 126); - } - #endif /* NOT __EMX__ */ - diff --git a/distro/packages/patches/gettext-gets-undeclared.patch b/distro/packages/patches/gettext-gets-undeclared.patch deleted file mode 100644 index 072a8d94ab..0000000000 --- a/distro/packages/patches/gettext-gets-undeclared.patch +++ /dev/null @@ -1,77 +0,0 @@ -This patch is needed to allow builds with newer versions of -the GNU libc (2.16+). - -The upstream fix was: - - commit 66712c23388e93e5c518ebc8515140fa0c807348 - Author: Eric Blake - Date: Thu Mar 29 13:30:41 2012 -0600 - - stdio: don't assume gets any more - - Gnulib intentionally does not have a gets module, and now that C11 - and glibc have dropped it, we should be more proactive about warning - any user on a platform that still has a declaration of this dangerous - interface. - - * m4/stdio_h.m4 (gl_STDIO_H, gl_STDIO_H_DEFAULTS): Drop gets - support. - * modules/stdio (Makefile.am): Likewise. - * lib/stdio-read.c (gets): Likewise. - * tests/test-stdio-c++.cc: Likewise. - * m4/warn-on-use.m4 (gl_WARN_ON_USE_PREPARE): Fix comment. - * lib/stdio.in.h (gets): Make warning occur in more places. - * doc/posix-functions/gets.texi (gets): Update documentation. - Reported by Christer Solskogen. - - Signed-off-by: Eric Blake - -This patch just gets rid of the offending part. - ---- gettext-0.18.1.1/gettext-tools/libgettextpo/stdio.in.h-orig 2012-11-24 01:13:14.000000000 +0400 -+++ gettext-0.18.1.1/gettext-tools/libgettextpo/stdio.in.h 2012-11-24 01:13:46.000000000 +0400 -@@ -137,12 +137,6 @@ - "use gnulib module fflush for portable POSIX compliance"); - #endif - --/* It is very rare that the developer ever has full control of stdin, -- so any use of gets warrants an unconditional warning. Assume it is -- always declared, since it is required by C89. */ --#undef gets --_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead"); -- - #if @GNULIB_FOPEN@ - # if @REPLACE_FOPEN@ - # if !(defined __cplusplus && defined GNULIB_NAMESPACE) - ---- gettext-0.18.1.1/gettext-runtime/gnulib-lib/stdio.in.h-orig 2012-11-24 00:26:49.000000000 +0400 -+++ gettext-0.18.1.1/gettext-runtime/gnulib-lib/stdio.in.h 2012-11-24 00:45:54.000000000 +0400 -@@ -137,12 +137,6 @@ - "use gnulib module fflush for portable POSIX compliance"); - #endif - --/* It is very rare that the developer ever has full control of stdin, -- so any use of gets warrants an unconditional warning. Assume it is -- always declared, since it is required by C89. */ --#undef gets --_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead"); -- - #if @GNULIB_FOPEN@ - # if @REPLACE_FOPEN@ - # if !(defined __cplusplus && defined GNULIB_NAMESPACE) - ---- gettext-0.18.1.1/gettext-tools/gnulib-lib/stdio.in.h-orig 2012-11-24 01:00:26.000000000 +0400 -+++ gettext-0.18.1.1/gettext-tools/gnulib-lib/stdio.in.h 2012-11-24 01:00:53.000000000 +0400 -@@ -137,12 +137,6 @@ - "use gnulib module fflush for portable POSIX compliance"); - #endif - --/* It is very rare that the developer ever has full control of stdin, -- so any use of gets warrants an unconditional warning. Assume it is -- always declared, since it is required by C89. */ --#undef gets --_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead"); -- - #if @GNULIB_FOPEN@ - # if @REPLACE_FOPEN@ - # if !(defined __cplusplus && defined GNULIB_NAMESPACE) diff --git a/distro/packages/patches/glibc-bootstrap-system.patch b/distro/packages/patches/glibc-bootstrap-system.patch deleted file mode 100644 index 7208cce3f4..0000000000 --- a/distro/packages/patches/glibc-bootstrap-system.patch +++ /dev/null @@ -1,28 +0,0 @@ -We want to allow builds in chroots that lack /bin/sh. Thus, system(3) -and popen(3) need to be tweaked to use the right shell. For the bootstrap -glibc, we just use whatever `sh' can be found in $PATH. The final glibc -instead uses the hard-coded absolute file name of `bash'. - ---- a/sysdeps/posix/system.c -+++ b/sysdeps/posix/system.c -@@ -134,7 +134,7 @@ do_system (const char *line) - INIT_LOCK (); - - /* Exec the shell. */ -- (void) __execve (SHELL_PATH, (char *const *) new_argv, __environ); -+ (void) __execvpe (SHELL_NAME, (char *const *) new_argv, __environ); - _exit (127); - } - else if (pid < (pid_t) 0) - ---- b/libio/iopopen.c 2012-06-30 21:12:34.000000000 +0200 -+++ b/libio/iopopen.c 2012-12-19 12:52:29.000000000 +0100 -@@ -226,7 +226,7 @@ _IO_new_proc_open (fp, command, mode) - _IO_close (fd); - } - -- _IO_execl ("/bin/sh", "sh", "-c", command, (char *) 0); -+ execlp ("sh", "sh", "-c", command, (char *) 0); - _IO__exit (127); - } - _IO_close (child_end); diff --git a/distro/packages/patches/glibc-no-ld-so-cache.patch b/distro/packages/patches/glibc-no-ld-so-cache.patch deleted file mode 100644 index 75fff50b47..0000000000 --- a/distro/packages/patches/glibc-no-ld-so-cache.patch +++ /dev/null @@ -1,53 +0,0 @@ -Disable attempts to use the system-wide /etc/ld.so.cache. This is -required on LFS distros to avoid loading the distro's libc.so instead -of ours. - -Patch from Nixpkgs. Idea by Eelco Dolstra, initial patch by Jack -Cummings, minor fixups by Shea Levy. - -diff -Naur glibc-2.13-orig/elf/ldconfig.c glibc-2.13/elf/ldconfig.c ---- glibc-2.13-orig/elf/ldconfig.c 2011-01-17 23:34:07.000000000 -0500 -+++ glibc-2.13/elf/ldconfig.c 2012-04-10 23:28:45.957492340 -0400 -@@ -51,7 +51,7 @@ - #endif - - #ifndef LD_SO_CONF --# define LD_SO_CONF SYSCONFDIR "/ld.so.conf" -+# define LD_SO_CONF PREFIX "/etc/ld.so.conf" - #endif - - /* Get libc version number. */ - ---- glibc-2.16.0/elf/Makefile 2012-06-30 21:12:34.000000000 +0200 -+++ glibc-2.16.0/elf/Makefile 2012-11-12 23:52:21.000000000 +0100 -@@ -415,12 +415,12 @@ $(objpfx)ldconfig: $(ldconfig-modules:%= - - $(objpfx)pldd: $(pldd-modules:%=$(objpfx)%.o) - --SYSCONF-FLAGS := -D'SYSCONFDIR="$(sysconfdir)"' --CFLAGS-ldconfig.c = $(SYSCONF-FLAGS) -D'LIBDIR="$(libdir)"' \ -+PREFIX-FLAGS := -D'PREFIX="$(sysconfdir)"' -+CFLAGS-ldconfig.c = $(PREFIX-FLAGS) -D'LIBDIR="$(libdir)"' \ - -D'SLIBDIR="$(slibdir)"' -DIS_IN_ldconfig=1 --CFLAGS-dl-cache.c = $(SYSCONF-FLAGS) --CFLAGS-cache.c = $(SYSCONF-FLAGS) --CFLAGS-rtld.c = $(SYSCONF-FLAGS) -+CFLAGS-dl-cache.c = $(PREFIX-FLAGS) -+CFLAGS-cache.c = $(PREFIX-FLAGS) -+CFLAGS-rtld.c = $(PREFIX-FLAGS) - - CPPFLAGS-.os += $(if $(filter $(@F),$(patsubst %,%.os,$(all-rtld-routines))),\ - -DNOT_IN_libc=1 -DIS_IN_rtld=1 -DIN_LIB=rtld) - -diff -Naur glibc-2.13-orig/sysdeps/generic/dl-cache.h glibc-2.13/sysdeps/generic/dl-cache.h ---- glibc-2.13-orig/sysdeps/generic/dl-cache.h 2011-01-17 23:34:07.000000000 -0500 -+++ glibc-2.13/sysdeps/generic/dl-cache.h 2012-04-10 23:28:20.077488815 -0400 -@@ -29,7 +29,7 @@ - #endif - - #ifndef LD_SO_CACHE --# define LD_SO_CACHE SYSCONFDIR "/ld.so.cache" -+# define LD_SO_CACHE PREFIX "/etc/ld.so.cache" - #endif - - #ifndef add_system_dir diff --git a/distro/packages/patches/guile-1.8-cpp-4.5.patch b/distro/packages/patches/guile-1.8-cpp-4.5.patch deleted file mode 100644 index 638d071baf..0000000000 --- a/distro/packages/patches/guile-1.8-cpp-4.5.patch +++ /dev/null @@ -1,24 +0,0 @@ -Fix doc snarfing with GCC 4.5+. -From . - -diff --git a/scripts/snarf-check-and-output-texi b/scripts/snarf-check-and-output-texi -index ea33e17..8cd42e8 100755 ---- a/scripts/snarf-check-and-output-texi -+++ b/scripts/snarf-check-and-output-texi -@@ -267,6 +267,17 @@ exec ${GUILE-guile} -l $0 -c "(apply $main (cdr (command-line)))" "$@" - (set! *file* file) - (set! *line* line)) - -+ ;; newer gccs like to throw around more location markers into the -+ ;; preprocessed source; these (hash . hash) bits are what they translate to -+ ;; in snarfy terms. -+ (('location ('string . file) ('int . line) ('hash . 'hash)) -+ (set! *file* file) -+ (set! *line* line)) -+ -+ (('location ('hash . 'hash) ('string . file) ('int . line) ('hash . 'hash)) -+ (set! *file* file) -+ (set! *line* line)) -+ - (('arglist rest ...) - (set! *args* (do-arglist rest))) diff --git a/distro/packages/patches/guile-default-utf8.patch b/distro/packages/patches/guile-default-utf8.patch deleted file mode 100644 index 409f435161..0000000000 --- a/distro/packages/patches/guile-default-utf8.patch +++ /dev/null @@ -1,111 +0,0 @@ -This hack makes Guile default to UTF-8. This avoids calls to -`iconv_open'; `iconv_open' tries to open shared objects that aren't -available during bootstrap, so using UTF-8 avoids that (and UTF-8 has -built-in conversions in glibc, too.) - -diff --git a/libguile/bytevectors.c b/libguile/bytevectors.c -index cf41f2f..facfb91 100644 ---- a/libguile/bytevectors.c -+++ b/libguile/bytevectors.c -@@ -1887,7 +1887,7 @@ utf_encoding_name (char *name, size_t utf_width, SCM endianness) - if (scm_i_is_narrow_string (str)) \ - { \ - err = mem_iconveh (scm_i_string_chars (str), c_strlen, \ -- "ISO-8859-1", c_utf_name, \ -+ "UTF-8", c_utf_name, \ - iconveh_question_mark, NULL, \ - &c_utf, &c_utf_len); \ - if (SCM_UNLIKELY (err)) \ -diff --git a/libguile/ports.c b/libguile/ports.c -index 301bc44..b0ea2e6 100644 ---- a/libguile/ports.c -+++ b/libguile/ports.c -@@ -1750,7 +1750,7 @@ scm_ungetc (scm_t_wchar c, SCM port) - if (pt->encoding != NULL) - encoding = pt->encoding; - else -- encoding = "ISO-8859-1"; -+ encoding = "UTF-8"; - - len = sizeof (result_buf); - result = u32_conv_to_encoding (encoding, -@@ -2212,7 +2212,7 @@ scm_i_set_port_encoding_x (SCM port, const char *encoding) - pt = SCM_PTAB_ENTRY (port); - - if (encoding == NULL) -- encoding = "ISO-8859-1"; -+ encoding = "UTF-8"; - - if (pt->encoding != encoding) - pt->encoding = scm_gc_strdup (encoding, "port"); -diff --git a/libguile/posix.c b/libguile/posix.c -index 4f8b8ac..fea7f74 100644 ---- a/libguile/posix.c -+++ b/libguile/posix.c -@@ -1740,7 +1740,7 @@ SCM_DEFINE (scm_setlocale, "setlocale", 1, 1, 0, - SCM_SYSERROR; - } - -- enc = locale_charset (); -+ enc = "UTF-8"; - - /* Set the default encoding for new ports. */ - scm_i_set_default_port_encoding (enc); -diff --git a/libguile/script.c b/libguile/script.c -index 83daf8a..083891e 100644 ---- a/libguile/script.c -+++ b/libguile/script.c -@@ -387,7 +387,7 @@ locale_arguments_to_string_list (int argc, char **const argv) - SCM lst; - const char *encoding; - -- encoding = environ_locale_charset (); -+ encoding = "UTF-8"; - for (i = argc - 1, lst = SCM_EOL; - i >= 0; - i--) -diff --git a/libguile/strings.c b/libguile/strings.c -index 5d0db23..8266247 100644 ---- a/libguile/strings.c -+++ b/libguile/strings.c -@@ -1576,7 +1576,7 @@ scm_from_locale_string (const char *str) - SCM - scm_from_locale_stringn (const char *str, size_t len) - { -- return scm_from_stringn (str, len, locale_charset (), -+ return scm_from_stringn (str, len, "UTF-8", - scm_i_default_port_conversion_handler ()); - } - -@@ -1803,7 +1803,7 @@ char * - scm_to_locale_stringn (SCM str, size_t *lenp) - { - return scm_to_stringn (str, lenp, -- locale_charset (), -+ "UTF-8", - scm_i_default_port_conversion_handler ()); - } - -@@ -2054,7 +2054,7 @@ scm_to_stringn (SCM str, size_t *lenp, const char *encoding, - "string contains #\\nul character: ~S", - scm_list_1 (str)); - -- if (scm_i_is_narrow_string (str) && (encoding == NULL)) -+ if (scm_i_is_narrow_string (str)) - { - /* If using native Latin-1 encoding, just copy the string - contents. */ -@@ -2079,11 +2079,11 @@ scm_to_stringn (SCM str, size_t *lenp, const char *encoding, - len = 0; - enc = encoding; - if (enc == NULL) -- enc = "ISO-8859-1"; -+ enc = "UTF-8"; - if (scm_i_is_narrow_string (str)) - { - ret = mem_iconveh (scm_i_string_chars (str), ilen, -- "ISO-8859-1", enc, -+ "UTF-8", enc, - (enum iconv_ilseq_handler) handler, NULL, - &buf, &len); - diff --git a/distro/packages/patches/guile-relocatable.patch b/distro/packages/patches/guile-relocatable.patch deleted file mode 100644 index 077394cdde..0000000000 --- a/distro/packages/patches/guile-relocatable.patch +++ /dev/null @@ -1,70 +0,0 @@ -This patch changes Guile to use a default search path relative to the -location of the `guile' binary, allowing it to be relocated. - -diff --git a/libguile/load.c b/libguile/load.c -index af2ca45..19dd338 100644 ---- a/libguile/load.c -+++ b/libguile/load.c -@@ -26,6 +26,7 @@ - - #include - #include -+#include - - #include "libguile/_scm.h" - #include "libguile/private-gc.h" /* scm_getenv_int */ -@@ -255,6 +256,32 @@ scm_init_load_path () - SCM cpath = SCM_EOL; - - #ifdef SCM_LIBRARY_DIR -+ char *program, *bin_dir, *prefix, *module_dir, *ccache_dir; -+ -+ /* Determine the source and compiled module directories at run-time, -+ relative to the executable's location. -+ -+ Note: Use /proc/self/exe instead of argv[0] because the latter is -+ not necessarily an absolute, nor a valid file name. */ -+ -+ program = scm_gc_malloc_pointerless (256, "string"); -+ readlink ("/proc/self/exe", program, 256); -+ -+ bin_dir = dirname (strdupa (program)); -+ -+ prefix = scm_gc_malloc_pointerless (strlen (bin_dir) + 4, "string"); -+ strcpy (prefix, bin_dir); -+ strcat (prefix, "/.."); -+ prefix = canonicalize_file_name (prefix); -+ -+ module_dir = scm_gc_malloc_pointerless (strlen (prefix) + 50, "string"); -+ strcpy (module_dir, prefix); -+ strcat (module_dir, "/share/guile/2.0"); -+ -+ ccache_dir = scm_gc_malloc_pointerless (strlen (prefix) + 50, "string"); -+ strcpy (ccache_dir, prefix); -+ strcat (ccache_dir, "/lib/guile/2.0/ccache"); -+ - env = getenv ("GUILE_SYSTEM_PATH"); - if (env && strcmp (env, "") == 0) - /* special-case interpret system-path=="" as meaning no system path instead -@@ -263,10 +290,7 @@ scm_init_load_path () - else if (env) - path = scm_parse_path (scm_from_locale_string (env), path); - else -- path = scm_list_4 (scm_from_locale_string (SCM_LIBRARY_DIR), -- scm_from_locale_string (SCM_SITE_DIR), -- scm_from_locale_string (SCM_GLOBAL_SITE_DIR), -- scm_from_locale_string (SCM_PKGDATA_DIR)); -+ path = scm_list_1 (scm_from_locale_string (module_dir)); - - env = getenv ("GUILE_SYSTEM_COMPILED_PATH"); - if (env && strcmp (env, "") == 0) -@@ -276,8 +300,7 @@ scm_init_load_path () - cpath = scm_parse_path (scm_from_locale_string (env), cpath); - else - { -- cpath = scm_list_2 (scm_from_locale_string (SCM_CCACHE_DIR), -- scm_from_locale_string (SCM_SITE_CCACHE_DIR)); -+ cpath = scm_list_1 (scm_from_locale_string (ccache_dir)); - } - - #endif /* SCM_LIBRARY_DIR */ diff --git a/distro/packages/patches/libtool-skip-tests.patch b/distro/packages/patches/libtool-skip-tests.patch deleted file mode 100644 index 6e12615d51..0000000000 --- a/distro/packages/patches/libtool-skip-tests.patch +++ /dev/null @@ -1,37 +0,0 @@ -Because our GCC `lib' spec automatically adds `-rpath' for each `-L' -and a couple more `-rpath, there are two test failures: -demo-hardcode.test, and destdir.at. Disable these. - ---- libtool-2.4.2/Makefile.in 2011-10-17 12:18:55.000000000 +0200 -+++ libtool-2.4.2/Makefile.in 2012-09-13 23:50:37.000000000 +0200 -@@ -909,7 +908,7 @@ COMMON_TESTS = \ - # but they depend on the other tests being run beforehand. - INTERACTIVE_TESTS = tests/demo-shared.test tests/demo-shared-make.test \ - tests/demo-shared-exec.test tests/demo-shared-inst.test \ -- tests/demo-hardcode.test tests/demo-relink.test \ -+ tests/demo-relink.test \ - tests/demo-noinst-link.test tests/demo-shared-unst.test \ - tests/depdemo-shared.test tests/depdemo-shared-make.test \ - tests/depdemo-shared-exec.test tests/depdemo-shared-inst.test \ -@@ -2580,8 +2579,7 @@ tests/cdemo-static-make.log: tests/cdemo - - tests/demo-shared-unst.log: tests/demo-noinst-link.log - tests/demo-noinst-link.log: tests/demo-relink.log --tests/demo-relink.log: tests/demo-hardcode.log --tests/demo-hardcode.log: tests/demo-shared-inst.log -+tests/demo-relink.log: tests/demo-shared-inst.log - tests/demo-shared-inst.log: tests/demo-shared-exec.log - tests/demo-shared-exec.log: tests/demo-shared-make.log - tests/demo-shared-make.log: tests/demo-shared.log - ---- libtool-2.4.2/tests/testsuite 2011-10-17 12:19:52.000000000 +0200 -+++ libtool-2.4.2/tests/testsuite 2012-09-14 00:28:45.000000000 +0200 -@@ -14443,6 +14443,6 @@ read at_status <"$at_status_file" - #AT_START_69 - at_fn_group_banner 69 'destdir.at:75' \ - "DESTDIR with in-package deplibs" " " 4 --at_xfail=no -+at_xfail=yes - eval `$LIBTOOL --config | grep '^fast_install='` - case $fast_install in no) :;; *) false;; esac && at_xfail=yes - diff --git a/distro/packages/patches/lsh-guile-compat.patch b/distro/packages/patches/lsh-guile-compat.patch deleted file mode 100644 index 0fe0484580..0000000000 --- a/distro/packages/patches/lsh-guile-compat.patch +++ /dev/null @@ -1,9 +0,0 @@ -Use (ice-9 rdelim) for `read-line'. - ---- lsh-2.0.4/src/scm/guile-compat.scm 2012-12-03 23:28:01.000000000 +0100 -+++ lsh-2.0.4/src/scm/guile-compat.scm 2012-12-03 23:28:04.000000000 +0100 -@@ -21,3 +21,4 @@ - ;; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - (use-syntax (ice-9 syncase)) -+(use-modules (ice-9 rdelim)) diff --git a/distro/packages/patches/lsh-no-root-login.patch b/distro/packages/patches/lsh-no-root-login.patch deleted file mode 100644 index 9dd81de3fb..0000000000 --- a/distro/packages/patches/lsh-no-root-login.patch +++ /dev/null @@ -1,16 +0,0 @@ -Correctly handle the `--no-root-login' option. - ---- lsh-2.0.4/src/lshd.c 2006-05-01 13:47:44.000000000 +0200 -+++ lsh-2.0.4/src/lshd.c 2009-09-08 12:20:36.000000000 +0200 -@@ -758,6 +758,10 @@ main_argp_parser(int key, char *arg, str - self->allow_root = 1; - break; - -+ case OPT_NO_ROOT_LOGIN: -+ self->allow_root = 0; -+ break; -+ - case OPT_KERBEROS_PASSWD: - self->pw_helper = PATH_KERBEROS_HELPER; - break; - diff --git a/distro/packages/patches/lsh-pam-service-name.patch b/distro/packages/patches/lsh-pam-service-name.patch deleted file mode 100644 index 6a6156855c..0000000000 --- a/distro/packages/patches/lsh-pam-service-name.patch +++ /dev/null @@ -1,14 +0,0 @@ -Tell `lsh-pam-checkpw', the PAM password helper program, to use a more -descriptive service name. - ---- lsh-2.0.4/src/lsh-pam-checkpw.c 2003-02-16 22:30:10.000000000 +0100 -+++ lsh-2.0.4/src/lsh-pam-checkpw.c 2008-11-28 16:16:58.000000000 +0100 -@@ -38,7 +38,7 @@ - #include - - #define PWD_MAXLEN 1024 --#define SERVICE_NAME "other" -+#define SERVICE_NAME "lshd" - #define TIMEOUT 600 - - static int diff --git a/distro/packages/patches/m4-gets-undeclared.patch b/distro/packages/patches/m4-gets-undeclared.patch deleted file mode 100644 index d28f0cdcc4..0000000000 --- a/distro/packages/patches/m4-gets-undeclared.patch +++ /dev/null @@ -1,45 +0,0 @@ -This patch is needed to allow builds with newer versions of -the GNU libc (2.16+). - -The upstream fix was: - - commit 66712c23388e93e5c518ebc8515140fa0c807348 - Author: Eric Blake - Date: Thu Mar 29 13:30:41 2012 -0600 - - stdio: don't assume gets any more - - Gnulib intentionally does not have a gets module, and now that C11 - and glibc have dropped it, we should be more proactive about warning - any user on a platform that still has a declaration of this dangerous - interface. - - * m4/stdio_h.m4 (gl_STDIO_H, gl_STDIO_H_DEFAULTS): Drop gets - support. - * modules/stdio (Makefile.am): Likewise. - * lib/stdio-read.c (gets): Likewise. - * tests/test-stdio-c++.cc: Likewise. - * m4/warn-on-use.m4 (gl_WARN_ON_USE_PREPARE): Fix comment. - * lib/stdio.in.h (gets): Make warning occur in more places. - * doc/posix-functions/gets.texi (gets): Update documentation. - Reported by Christer Solskogen. - - Signed-off-by: Eric Blake - -This patch just gets rid of the offending part. - ---- m4-1.4.16/lib/stdio.in.h.orig 2012-09-01 01:05:36.000000000 +0200 -+++ m4-1.4.16/lib/stdio.in.h 2012-09-01 01:05:42.000000000 +0200 -@@ -158,12 +158,6 @@ _GL_WARN_ON_USE (fflush, "fflush is not - "use gnulib module fflush for portable POSIX compliance"); - #endif - --/* It is very rare that the developer ever has full control of stdin, -- so any use of gets warrants an unconditional warning. Assume it is -- always declared, since it is required by C89. */ --#undef gets --_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead"); -- - #if @GNULIB_FOPEN@ - # if @REPLACE_FOPEN@ - # if !(defined __cplusplus && defined GNULIB_NAMESPACE) diff --git a/distro/packages/patches/m4-readlink-EINVAL.patch b/distro/packages/patches/m4-readlink-EINVAL.patch deleted file mode 100644 index dd371584a7..0000000000 --- a/distro/packages/patches/m4-readlink-EINVAL.patch +++ /dev/null @@ -1,18 +0,0 @@ -Newer Linux kernels would return EINVAL instead of ENOENT. -The patch below, taken from Gnulib, allows the test to pass when -these Linux versions are in use: -https://lists.gnu.org/archive/html/bug-gnulib/2011-03/msg00308.html . - -diff --git a/tests/test-readlink.h b/tests/test-readlink.h -index 08d5662..7247fc4 100644 ---- a/tests/test-readlink.h -+++ b/tests/test-readlink.h -@@ -38,7 +38,7 @@ test_readlink (ssize_t (*func) (char const *, char *, size_t), bool print) - ASSERT (errno == ENOENT); - errno = 0; - ASSERT (func ("", buf, sizeof buf) == -1); -- ASSERT (errno == ENOENT); -+ ASSERT (errno == ENOENT || errno == EINVAL); - errno = 0; - ASSERT (func (".", buf, sizeof buf) == -1); - ASSERT (errno == EINVAL); diff --git a/distro/packages/patches/m4-s_isdir.patch b/distro/packages/patches/m4-s_isdir.patch deleted file mode 100644 index a009a4ba44..0000000000 --- a/distro/packages/patches/m4-s_isdir.patch +++ /dev/null @@ -1,14 +0,0 @@ -Fails to build with glibc 2.12.1 without this patch. - -http://lists.gnu.org/archive/html/bug-m4/2010-05/msg00002.html - ---- a/src/path.c -+++ b/src/path.c -@@ -22,6 +22,7 @@ - /* Handling of path search of included files via the builtins "include" - and "sinclude". */ - - #include "m4.h" -+#include "sys/stat.h" - - struct includes diff --git a/distro/packages/patches/make-impure-dirs.patch b/distro/packages/patches/make-impure-dirs.patch deleted file mode 100644 index 83a5fbe3a5..0000000000 --- a/distro/packages/patches/make-impure-dirs.patch +++ /dev/null @@ -1,40 +0,0 @@ -Purity: don't look for library dependencies (of the form `-lfoo') in -/lib and /usr/lib. Likewise, when searching for included Makefiles, -don't look in /usr/include and friends. - -Patch from Nixpkgs, by Eelco Dolstra. - -diff -rc make-3.81-orig/read.c make-3.81/read.c -*** make-3.81-orig/read.c 2006-03-17 15:24:20.000000000 +0100 ---- make-3.81/read.c 2007-05-24 17:16:31.000000000 +0200 -*************** -*** 99,107 **** ---- 99,109 ---- - #endif - INCLUDEDIR, - #ifndef _AMIGA -+ #if 0 - "/usr/gnu/include", - "/usr/local/include", - "/usr/include", -+ #endif - #endif - 0 - }; -diff -rc make-3.81-orig/remake.c make-3.81/remake.c -*** make-3.81-orig/remake.c 2006-03-20 03:36:37.000000000 +0100 ---- make-3.81/remake.c 2007-05-24 17:06:54.000000000 +0200 -*************** -*** 1452,1460 **** ---- 1452,1462 ---- - static char *dirs[] = - { - #ifndef _AMIGA -+ #if 0 - "/lib", - "/usr/lib", - #endif -+ #endif - #if defined(WINDOWS32) && !defined(LIBDIR) - /* - * This is completely up to the user at product install time. Just define diff --git a/distro/packages/patches/perl-no-sys-dirs.patch b/distro/packages/patches/perl-no-sys-dirs.patch deleted file mode 100644 index 3aba4d7529..0000000000 --- a/distro/packages/patches/perl-no-sys-dirs.patch +++ /dev/null @@ -1,156 +0,0 @@ -Don't long for headers and libraries in "traditional" locations. - -Patch from Nixpkgs by Eelco Dolstra . - -diff -ru -x '*~' perl-5.14.2-orig/Configure perl-5.14.2/Configure ---- perl-5.14.2-orig/Configure 2011-09-26 11:44:34.000000000 +0200 -+++ perl-5.14.2/Configure 2012-01-20 17:05:23.089223129 +0100 -@@ -106,15 +106,7 @@ - fi - - : Proper PATH setting --paths='/bin /usr/bin /usr/local/bin /usr/ucb /usr/local /usr/lbin' --paths="$paths /opt/bin /opt/local/bin /opt/local /opt/lbin" --paths="$paths /usr/5bin /etc /usr/gnu/bin /usr/new /usr/new/bin /usr/nbin" --paths="$paths /opt/gnu/bin /opt/new /opt/new/bin /opt/nbin" --paths="$paths /sys5.3/bin /sys5.3/usr/bin /bsd4.3/bin /bsd4.3/usr/ucb" --paths="$paths /bsd4.3/usr/bin /usr/bsd /bsd43/bin /opt/ansic/bin /usr/ccs/bin" --paths="$paths /etc /usr/lib /usr/ucblib /lib /usr/ccs/lib" --paths="$paths /sbin /usr/sbin /usr/libexec" --paths="$paths /system/gnu_library/bin" -+paths='' - - for p in $paths - do -@@ -1311,8 +1303,7 @@ - archname='' - : Possible local include directories to search. - : Set locincpth to "" in a hint file to defeat local include searches. --locincpth="/usr/local/include /opt/local/include /usr/gnu/include" --locincpth="$locincpth /opt/gnu/include /usr/GNU/include /opt/GNU/include" -+locincpth="" - : - : no include file wanted by default - inclwanted='' -@@ -1328,17 +1319,12 @@ - archobjs='' - libnames='' - : change the next line if compiling for Xenix/286 on Xenix/386 --xlibpth='/usr/lib/386 /lib/386' -+xlibpth='' - : Possible local library directories to search. --loclibpth="/usr/local/lib /opt/local/lib /usr/gnu/lib" --loclibpth="$loclibpth /opt/gnu/lib /usr/GNU/lib /opt/GNU/lib" -+loclibpth="" - - : general looking path for locating libraries --glibpth="/lib /usr/lib $xlibpth" --glibpth="$glibpth /usr/ccs/lib /usr/ucblib /usr/local/lib" --test -f /usr/shlib/libc.so && glibpth="/usr/shlib $glibpth" --test -f /shlib/libc.so && glibpth="/shlib $glibpth" --test -d /usr/lib64 && glibpth="$glibpth /lib64 /usr/lib64 /usr/local/lib64" -+glibpth="" - - : Private path used by Configure to find libraries. Its value - : is prepended to libpth. This variable takes care of special -@@ -1371,8 +1357,6 @@ - libswanted="$libswanted m crypt sec util c cposix posix ucb bsd BSD" - : We probably want to search /usr/shlib before most other libraries. - : This is only used by the lib/ExtUtils/MakeMaker.pm routine extliblist. --glibpth=`echo " $glibpth " | sed -e 's! /usr/shlib ! !'` --glibpth="/usr/shlib $glibpth" - : Do not use vfork unless overridden by a hint file. - usevfork=false - -@@ -2380,7 +2364,6 @@ - zip - " - pth=`echo $PATH | sed -e "s/$p_/ /g"` --pth="$pth /lib /usr/lib" - for file in $loclist; do - eval xxx=\$$file - case "$xxx" in -@@ -4785,7 +4768,7 @@ - : Set private lib path - case "$plibpth" in - '') if ./mips; then -- plibpth="$incpath/usr/lib /usr/local/lib /usr/ccs/lib" -+ plibpth="$incpath/usr/lib" - fi;; - esac - case "$libpth" in -@@ -8390,13 +8373,8 @@ - echo " " - case "$sysman" in - '') -- syspath='/usr/share/man/man1 /usr/man/man1' -- syspath="$syspath /usr/man/mann /usr/man/manl /usr/man/local/man1" -- syspath="$syspath /usr/man/u_man/man1" -- syspath="$syspath /usr/catman/u_man/man1 /usr/man/l_man/man1" -- syspath="$syspath /usr/local/man/u_man/man1 /usr/local/man/l_man/man1" -- syspath="$syspath /usr/man/man.L /local/man/man1 /usr/local/man/man1" -- sysman=`./loc . /usr/man/man1 $syspath` -+ syspath='' -+ sysman='' - ;; - esac - if $test -d "$sysman"; then -@@ -19721,9 +19699,10 @@ - case "$full_ar" in - '') full_ar=$ar ;; - esac -+full_ar=ar - - : Store the full pathname to the sed program for use in the C program --full_sed=$sed -+full_sed=sed - - : see what type gids are declared as in the kernel - echo " " -diff -ru -x '*~' perl-5.14.2-orig/ext/Errno/Errno_pm.PL perl-5.14.2/ext/Errno/Errno_pm.PL ---- perl-5.14.2-orig/ext/Errno/Errno_pm.PL 2011-09-26 11:44:34.000000000 +0200 -+++ perl-5.14.2/ext/Errno/Errno_pm.PL 2012-01-20 17:02:07.938138311 +0100 -@@ -137,11 +137,7 @@ - if ($dep =~ /(\S+errno\.h)/) { - $file{$1} = 1; - } -- } elsif ($^O eq 'linux' && -- $Config{gccversion} ne '' && -- $Config{gccversion} !~ /intel/i -- # might be using, say, Intel's icc -- ) { -+ } elsif (0) { - # Some Linuxes have weird errno.hs which generate - # no #file or #line directives - my $linux_errno_h = -e '/usr/include/errno.h' ? -diff -ru -x '*~' perl-5.14.2-orig/hints/freebsd.sh perl-5.14.2/hints/freebsd.sh ---- perl-5.14.2-orig/hints/freebsd.sh 2011-09-19 15:18:22.000000000 +0200 -+++ perl-5.14.2/hints/freebsd.sh 2012-01-20 17:10:37.267924044 +0100 -@@ -118,21 +118,21 @@ - objformat=`/usr/bin/objformat` - if [ x$objformat = xaout ]; then - if [ -e /usr/lib/aout ]; then -- libpth="/usr/lib/aout /usr/local/lib /usr/lib" -- glibpth="/usr/lib/aout /usr/local/lib /usr/lib" -+ libpth="" -+ glibpth="" - fi - lddlflags='-Bshareable' - else -- libpth="/usr/lib /usr/local/lib" -- glibpth="/usr/lib /usr/local/lib" -+ libpth="" -+ glibpth="" - ldflags="-Wl,-E " - lddlflags="-shared " - fi - cccdlflags='-DPIC -fPIC' - ;; - *) -- libpth="/usr/lib /usr/local/lib" -- glibpth="/usr/lib /usr/local/lib" -+ libpth="" -+ glibpth="" - ldflags="-Wl,-E " - lddlflags="-shared " - cccdlflags='-DPIC -fPIC' diff --git a/distro/packages/patches/procps-make-3.82.patch b/distro/packages/patches/procps-make-3.82.patch deleted file mode 100644 index 7bf53e2ccc..0000000000 --- a/distro/packages/patches/procps-make-3.82.patch +++ /dev/null @@ -1,14 +0,0 @@ -Fix compilation with GNU Make 3.82 (patch from Nixpkgs). - -diff --git a/Makefile b/Makefile -index 09fb3ed..59eba16 100644 ---- a/Makefile -+++ b/Makefile -@@ -174,7 +174,7 @@ INSTALL := $(BINFILES) $(MANFILES) - # want this rule first, use := on ALL, and ALL not filled in yet - all: do_all - ---include */module.mk -+-include proc/module.mk ps/module.mk - - do_all: $(ALL) diff --git a/distro/packages/patches/readline-link-ncurses.patch b/distro/packages/patches/readline-link-ncurses.patch deleted file mode 100644 index 0fd0598f46..0000000000 --- a/distro/packages/patches/readline-link-ncurses.patch +++ /dev/null @@ -1,18 +0,0 @@ -This patch is to make sure that `libncurses' is among the `NEEDED' -dependencies of `libreadline.so' and `libhistory.so'. - -Failing to do that, applications linking against Readline are -forced to explicitly link against libncurses as well; in addition, -this trick doesn't work when using GNU ld's `--as-needed'. - ---- shlib/Makefile.in 2009-01-06 18:03:22.000000000 +0100 -+++ shlib/Makefile.in 2009-07-27 14:43:25.000000000 +0200 -@@ -84,7 +84,7 @@ SHOBJ_LDFLAGS = @SHOBJ_LDFLAGS@ - SHOBJ_XLDFLAGS = @SHOBJ_XLDFLAGS@ - SHOBJ_LIBS = @SHOBJ_LIBS@ - --SHLIB_XLDFLAGS = @LDFLAGS@ @SHLIB_XLDFLAGS@ -+SHLIB_XLDFLAGS = @LDFLAGS@ @SHLIB_XLDFLAGS@ -lncurses - SHLIB_LIBS = @SHLIB_LIBS@ - - SHLIB_DOT = @SHLIB_DOT@ diff --git a/distro/packages/patches/shishi-gets-undeclared.patch b/distro/packages/patches/shishi-gets-undeclared.patch deleted file mode 100644 index a3d6d0cca2..0000000000 --- a/distro/packages/patches/shishi-gets-undeclared.patch +++ /dev/null @@ -1,71 +0,0 @@ -This patch is needed to allow builds with newer versions of -the GNU libc (2.16+). - - -commit 66712c23388e93e5c518ebc8515140fa0c807348 -Author: Eric Blake -Date: Thu Mar 29 13:30:41 2012 -0600 - - stdio: don't assume gets any more - - Gnulib intentionally does not have a gets module, and now that C11 - and glibc have dropped it, we should be more proactive about warning - any user on a platform that still has a declaration of this dangerous - interface. - - * m4/stdio_h.m4 (gl_STDIO_H, gl_STDIO_H_DEFAULTS): Drop gets - support. - * modules/stdio (Makefile.am): Likewise. - * lib/stdio-read.c (gets): Likewise. - * tests/test-stdio-c++.cc: Likewise. - * m4/warn-on-use.m4 (gl_WARN_ON_USE_PREPARE): Fix comment. - * lib/stdio.in.h (gets): Make warning occur in more places. - * doc/posix-functions/gets.texi (gets): Update documentation. - Reported by Christer Solskogen. - - Signed-off-by: Eric Blake - -diff --git a/gl/stdio.in.h b/gl/stdio.in.h -index aa7b599..c377b6e 100644 ---- a/gl/stdio.in.h -+++ b/gl/stdio.in.h -@@ -698,22 +698,11 @@ _GL_WARN_ON_USE (getline, "getline is unportable - " - # endif - #endif - --#if @GNULIB_GETS@ --# if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ --# if !(defined __cplusplus && defined GNULIB_NAMESPACE) --# undef gets --# define gets rpl_gets --# endif --_GL_FUNCDECL_RPL (gets, char *, (char *s) _GL_ARG_NONNULL ((1))); --_GL_CXXALIAS_RPL (gets, char *, (char *s)); --# else --_GL_CXXALIAS_SYS (gets, char *, (char *s)); --# undef gets --# endif --_GL_CXXALIASWARN (gets); - /* It is very rare that the developer ever has full control of stdin, -- so any use of gets warrants an unconditional warning. Assume it is -- always declared, since it is required by C89. */ -+ so any use of gets warrants an unconditional warning; besides, C11 -+ removed it. */ -+#undef gets -+#if HAVE_RAW_DECL_GETS - _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead"); - #endif - -@@ -1053,9 +1042,9 @@ _GL_WARN_ON_USE (snprintf, "snprintf is unportable - " - # endif - #endif - --/* Some people would argue that sprintf should be handled like gets -- (for example, OpenBSD issues a link warning for both functions), -- since both can cause security holes due to buffer overruns. -+/* Some people would argue that all sprintf uses should be warned about -+ (for example, OpenBSD issues a link warning for it), -+ since it can cause security holes due to buffer overruns. - However, we believe that sprintf can be used safely, and is more - efficient than snprintf in those safe cases; and as proof of our - belief, we use sprintf in several gnulib modules. So this header diff --git a/distro/packages/patches/tar-gets-undeclared.patch b/distro/packages/patches/tar-gets-undeclared.patch deleted file mode 100644 index 301a09dde1..0000000000 --- a/distro/packages/patches/tar-gets-undeclared.patch +++ /dev/null @@ -1,26 +0,0 @@ -This patch is needed to allow builds with newer versions of -the GNU libc (2.16+). - -This is a backport of this patch: - -commit 66712c23388e93e5c518ebc8515140fa0c807348 -Author: Eric Blake -Date: Thu Mar 29 13:30:41 2012 -0600 - - stdio: don't assume gets any more - ---- tar-1.26/gnu/stdio.in.h 2012-07-02 14:28:45.000000000 +0200 -+++ tar-1.26/gnu/stdio.in.h 2012-07-02 14:28:50.000000000 +0200 -@@ -160,12 +160,6 @@ _GL_WARN_ON_USE (fflush, "fflush is not - "use gnulib module fflush for portable POSIX compliance"); - #endif - --/* It is very rare that the developer ever has full control of stdin, -- so any use of gets warrants an unconditional warning. Assume it is -- always declared, since it is required by C89. */ --#undef gets --_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead"); -- - #if @GNULIB_FOPEN@ - # if @REPLACE_FOPEN@ - # if !(defined __cplusplus && defined GNULIB_NAMESPACE) diff --git a/distro/packages/perl.scm b/distro/packages/perl.scm deleted file mode 100644 index b6357875b6..0000000000 --- a/distro/packages/perl.scm +++ /dev/null @@ -1,73 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013 Ludovic Courtès -;;; -;;; 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 . - -(define-module (distro packages perl) - #:use-module (guix licenses) - #:use-module (distro) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix utils) - #:use-module (guix build-system gnu)) - -(define-public perl - ;; Yeah, Perl... It is required early in the bootstrap process by Linux. - (package - (name "perl") - (version "5.16.1") - (source (origin - (method url-fetch) - (uri (string-append "http://www.cpan.org/src/5.0/perl-" - version ".tar.gz")) - (sha256 - (base32 - "15qxzba3a50c9nik5ydgyfp62x7h9vxxn12yd1jgl93hb1wj96km")))) - (build-system gnu-build-system) - (arguments - (lambda (system) - `(#:tests? #f - #:patches (list (assoc-ref %build-inputs "patch/no-sys-dirs")) - #:phases - (alist-replace - 'configure - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out")) - (libc (assoc-ref inputs "libc"))) - ;; Use the right path for `pwd'. - (substitute* "dist/Cwd/Cwd.pm" - (("/bin/pwd") - (which "pwd"))) - - (zero? - (system* "./Configure" - (string-append "-Dprefix=" out) - (string-append "-Dman1dir=" out "/share/man/man1") - (string-append "-Dman3dir=" out "/share/man/man3") - "-de" "-Dcc=gcc" - "-Uinstallusrbinperl" - "-Dinstallstyle=lib/perl5" - "-Duseshrplib" - (string-append "-Dlocincpth=" libc "/include") - (string-append "-Dloclibpth=" libc "/lib"))))) - %standard-phases)))) - (inputs `(("patch/no-sys-dirs" ,(search-patch "perl-no-sys-dirs.patch")))) - (synopsis "Implementation of the Perl programming language") - (description - "Perl 5 is a highly capable, feature-rich programming language with over -24 years of development.") - (home-page "http://www.perl.org/") - (license gpl1+))) ; or "Artistic" diff --git a/distro/packages/pkg-config.scm b/distro/packages/pkg-config.scm deleted file mode 100644 index 499e3fdc86..0000000000 --- a/distro/packages/pkg-config.scm +++ /dev/null @@ -1,51 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012 Ludovic Courtès -;;; -;;; 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 . - -(define-module (distro packages pkg-config) - #:use-module (guix licenses) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix utils) - #:use-module (guix build-system gnu)) - -(define-public pkg-config - (package - (name "pkg-config") - (version "0.27.1") - (source (origin - (method url-fetch) - (uri (string-append - "http://pkgconfig.freedesktop.org/releases/pkg-config-" - version ".tar.gz")) - (sha256 - (base32 - "05wc5nwkqz7saj2v33ydmz1y6jdg659dll4jjh91n41m63gx0qsg")))) - (build-system gnu-build-system) - (arguments `(#:configure-flags '("--with-internal-glib"))) - (home-page "http://www.freedesktop.org/wiki/Software/pkg-config") - (license gpl2+) - (synopsis "a helper tool used when compiling applications and -libraries") - (description - "pkg-config is a helper tool used when compiling applications and -libraries. It helps you insert the correct compiler options on the -command line so an application can use gcc -o test test.c `pkg-config ---libs --cflags glib-2.0` for instance, rather than hard-coding values -on where to find glib (or other libraries). It is language-agnostic, so -it can be used for defining the location of documentation tools, for -instance."))) diff --git a/distro/packages/pth.scm b/distro/packages/pth.scm deleted file mode 100644 index 4c52079544..0000000000 --- a/distro/packages/pth.scm +++ /dev/null @@ -1,61 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012 Ludovic Courtès -;;; -;;; 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 . - -(define-module (distro packages pth) - #:use-module (guix licenses) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix build-system gnu)) - -(define-public pth - (package - (name "pth") - (version "2.0.7") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://gnu/pth/pth-" version - ".tar.gz")) - (sha256 - (base32 - "0ckjqw5kz5m30srqi87idj7xhpw6bpki43mj07bazjm2qmh3cdbj")))) - (build-system gnu-build-system) - (arguments '(#:parallel-build? #f)) - (home-page "http://www.gnu.org/software/pth") - (synopsis "The GNU Portable Threads library") - (description - "Pth is a very portable POSIX/ANSI-C based library for Unix -platforms which provides non-preemptive priority-based scheduling for -multiple threads of execution (aka ``multithreading'') inside -event-driven applications. All threads run in the same address space of -the server application, but each thread has it's own individual -program-counter, run-time stack, signal mask and errno variable. - -The thread scheduling itself is done in a cooperative way, i.e., the -threads are managed by a priority- and event-based non-preemptive -scheduler. The intention is that this way one can achieve better -portability and run-time performance than with preemptive -scheduling. The event facility allows threads to wait until various -types of events occur, including pending I/O on file descriptors, -asynchronous signals, elapsed timers, pending I/O on message ports, -thread and process termination, and even customized callback functions. - -Additionally Pth provides an optional emulation API for POSIX.1c -threads (\"Pthreads\") which can be used for backward compatibility to -existing multithreaded applications.") - (license lgpl2.1+))) diff --git a/distro/packages/python.scm b/distro/packages/python.scm deleted file mode 100644 index 5692cd5bd5..0000000000 --- a/distro/packages/python.scm +++ /dev/null @@ -1,58 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013 Nikita Karetnikov -;;; Copyright © 2013 Ludovic Courtès -;;; -;;; 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 . - -(define-module (distro packages python) - #:use-module ((guix licenses) #:select (psfl)) - #:use-module (distro packages compression) - #:use-module (distro packages openssl) - #:use-module (distro packages base) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix build-system gnu)) - -(define-public python - (package - (name "python") - (version "2.7.3") - (source - (origin - (method url-fetch) - (uri (string-append "http://www.python.org/ftp/python/" - version "/Python-" version ".tar.xz")) - (sha256 - (base32 - "11f9aw855lrmknr6c82gm1ijr3n0smc6idyp94y7774yivjnplv1")))) - (build-system gnu-build-system) - (arguments `(#:tests? #f)) ; XXX: some tests fail - (inputs - `(("zlib" ,zlib) - ("openssl" ,openssl) - ("bzip2" ,bzip2))) - (home-page "http://python.org") - (synopsis - "Python, a high-level dynamically-typed programming language") - (description - "Python is a remarkably powerful dynamic programming language that -is used in a wide variety of application domains. Some of its key -distinguishing features include: clear, readable syntax; strong -introspection capabilities; intuitive object orientation; natural -expression of procedural code; full modularity, supporting hierarchical -packages; exception-based error handling; and very high level dynamic -data types.") - (license psfl))) diff --git a/distro/packages/readline.scm b/distro/packages/readline.scm deleted file mode 100644 index 5498f15b52..0000000000 --- a/distro/packages/readline.scm +++ /dev/null @@ -1,79 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012 Ludovic Courtès -;;; -;;; 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 . - -(define-module (distro packages readline) - #:use-module (guix licenses) - #:use-module (distro) - #:use-module (distro packages ncurses) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix utils) - #:use-module (guix build-system gnu)) - -(define-public readline - (let ((post-install-phase - '(lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (lib (string-append out "/lib"))) - ;; Make libraries writable so that `strip' can work. - ;; Failing to do that, it bails out with "Permission - ;; denied". - (for-each (lambda (f) (chmod f #o755)) - (find-files lib "\\.so")) - (for-each (lambda (f) (chmod f #o644)) - (find-files lib "\\.a")))))) - (package - (name "readline") - (version "6.2") - (source (origin - (method url-fetch) - (uri (string-append "mirror://gnu/readline/readline-" - version ".tar.gz")) - (sha256 - (base32 - "10ckm2bd2rkxhvdmj7nmbsylmihw0abwcsnxf8y27305183rd9kr")))) - (build-system gnu-build-system) - (propagated-inputs `(("ncurses" ,ncurses))) - (inputs `(("patch/link-ncurses" - ,(search-patch "readline-link-ncurses.patch")))) - (arguments `(#:patches (list (assoc-ref %build-inputs - "patch/link-ncurses")) - #:patch-flags '("-p0") - #:configure-flags - (list (string-append "LDFLAGS=-Wl,-rpath -Wl," - (assoc-ref %build-inputs "ncurses") - "/lib")) - - #:phases (alist-cons-after - 'install 'post-install - ,post-install-phase - %standard-phases))) - (synopsis "GNU Readline, a library for interactive line editing") - (description - "The GNU Readline library provides a set of functions for use by -applications that allow users to edit command lines as they are typed in. -Both Emacs and vi editing modes are available. The Readline library includes -additional functions to maintain a list of previously-entered command lines, -to recall and perhaps reedit those lines, and perform csh-like history -expansion on previous commands. - -The history facilites are also placed into a separate library, the History -library, as part of the build process. The History library may be used -without Readline in applications which desire its capabilities.") - (license gpl3+) - (home-page "http://savannah.gnu.org/projects/readline/")))) diff --git a/distro/packages/recutils.scm b/distro/packages/recutils.scm deleted file mode 100644 index 484dd232bb..0000000000 --- a/distro/packages/recutils.scm +++ /dev/null @@ -1,57 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013 Ludovic Courtès -;;; -;;; 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 . - -(define-module (distro packages recutils) - #:use-module (guix licenses) - #:use-module (distro) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix utils) - #:use-module (guix build-system gnu) - #:use-module (distro packages emacs) - #:use-module (distro packages check) - #:use-module (distro packages algebra)) - -(define-public recutils - (package - (name "recutils") - (version "1.5") - (source (origin - (method url-fetch) - (uri (string-append "mirror://gnu/recutils/recutils-" - version ".tar.gz")) - (sha256 - (base32 - "1v2xzwwwhc5j5kmvg4sv6baxjpsfqh8ln7ilv4mgb1408rs7xmky")))) - (build-system gnu-build-system) - (inputs `(;; TODO: Enable optional deps when they're packaged. - ;; ("curl" ,(nixpkgs-derivation "curl")) - ("emacs" ,emacs) - ("check" ,check) - ("bc" ,bc) - ("patch/gets" - ,(search-patch "diffutils-gets-undeclared.patch")))) - (arguments `(#:patches (list (assoc-ref %build-inputs "patch/gets")))) - (synopsis "GNU recutils, tools and libraries to access human-editable, -text-based databases") - (description - "GNU recutils is a set of tools and libraries to access human-editable, -text-based databases called recfiles. The data is stored as a sequence of -records, each record containing an arbitrary number of named fields.") - (license gpl3+) - (home-page "http://www.gnu.org/software/recutils/"))) diff --git a/distro/packages/rsync.scm b/distro/packages/rsync.scm deleted file mode 100644 index 8dc0acb118..0000000000 --- a/distro/packages/rsync.scm +++ /dev/null @@ -1,51 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012 Andreas Enge -;;; -;;; 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 . - -(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/scheme.scm b/distro/packages/scheme.scm deleted file mode 100644 index b18697cb08..0000000000 --- a/distro/packages/scheme.scm +++ /dev/null @@ -1,168 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013 Ludovic Courtès -;;; -;;; 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 . - -(define-module (distro packages scheme) - #:use-module (distro) - #:use-module (guix licenses) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix build-system gnu) - #:use-module (distro packages m4) - #:use-module (distro packages multiprecision) - #:use-module (distro packages emacs) - #:use-module (distro packages texinfo) - #:use-module (ice-9 match)) - -(define-public mit-scheme - (package - (name "mit-scheme") - (version "9.1.1") - (source #f) ; see below - (build-system gnu-build-system) - (arguments - `(#:tests? #f ; no "check" target - #:phases - (alist-replace - 'unpack - (lambda* (#:key inputs #:allow-other-keys) - (and (zero? (system* "tar" "xzvf" - (assoc-ref inputs "source"))) - (chdir ,(string-append name "-" version)) - (begin - ;; Delete these dangling symlinks since they break - ;; `patch-shebangs'. - (for-each delete-file - (append (find-files "src/lib/lib" "\\.so$") - (find-files "src/lib" "^ffi-test"))) - (chdir "src") - #t))) - (alist-replace - 'build - (lambda* (#:key system outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (if (or (string-prefix? "x86_64" system) - (string-prefix? "i686" system)) - (zero? (system* "make" "compile-microcode")) - (zero? (system* "./etc/make-liarc.sh" - (string-append "--prefix=" out)))))) - %standard-phases)))) - (inputs - `(;; TODO: Build doc when TeX Live is available. - ;; ("automake" ,automake) - ;; ("texlive-core" ,texlive-core) - ("texinfo" ,texinfo) - ("m4" ,m4) - - ("source" - ,(lambda (system) - ;; MIT/GNU Scheme is not bootstrappable, so it's recommended to - ;; compile from the architecture-specific tarballs, which contain - ;; pre-built binaries. It leads to more efficient code than when - ;; building the tarball that contains generated C code instead of - ;; those binaries. - (origin - (method url-fetch) - (uri (string-append "mirror://gnu/mit-scheme/stable.pkg/" - version "/mit-scheme-" - version "-" - (match system - ("x86_64-linux" "x86-64") - ("i686-linux" "i386") - (_ "c")) - ".tar.gz")) - (sha256 - (match system - ("x86_64-linux" - (base32 - "1wcxm9hyfc53myvlcn93fyqrnnn4scwkknl9hkbp1cphc6mp291x")) - ("i686-linux" - (base32 - "0vi760fy550d9db538m0vzbq1mpdncvw9g8bk4lswk0kcdira55z")) - (_ - (base32 - "0pclakzwxbqgy6wqwvs6ml62wgby8ba8xzmwzdwhx1v8wv05yw1j"))))))))) - (home-page "http://www.gnu.org/software/mit-scheme/") - (synopsis "MIT/GNU Scheme, a native code Scheme compiler") - (description - "MIT/GNU Scheme is an implementation of the Scheme programming -language, providing an interpreter, compiler, source-code debugger, -integrated Emacs-like editor, and a large runtime library. MIT/GNU -Scheme is best suited to programming large applications with a rapid -development cycle.") - (license gpl2+))) - -(define-public bigloo - (package - (name "bigloo") - (version "3.9a") - (source (origin - (method url-fetch) - (uri (string-append "ftp://ftp-sop.inria.fr/indes/fp/Bigloo/bigloo" - version ".tar.gz")) - (sha256 - (base32 - "0v1q0gcbn38ackdzsnvpkdgaj6ydkfdya31l2hag21aig087px1y")))) - (build-system gnu-build-system) - (arguments - '(#:patches (list (assoc-ref %build-inputs "patch/shebangs")) - #:test-target "test" - #:phases (alist-replace - 'configure - (lambda* (#:key outputs #:allow-other-keys) - - (substitute* "configure" - (("^shell=.*$") - (string-append "shell=" (which "bash") "\n"))) - - ;; Those variables are used by libgc's `configure'. - (setenv "SHELL" (which "bash")) - (setenv "CONFIG_SHELL" (which "bash")) - - ;; The `configure' script doesn't understand options - ;; of those of Autoconf. - (let ((out (assoc-ref outputs "out"))) - (zero? - (system* "./configure" - (string-append "--prefix=" out) - (string-append"--mv=" (which "mv")) - (string-append "--rm=" (which "rm")))))) - (alist-cons-after - 'patch 'patch-absolute-file-names - (lambda _ - (substitute* (cons "configure" - (find-files "gc" "^install-gc")) - (("/bin/rm") (which "rm")) - (("/bin/mv") (which "mv")))) - %standard-phases)))) - (inputs - `(("gmp" ,gmp) - ("emacs" ,emacs) - ("patch/shebangs" ,(search-patch "bigloo-gc-shebangs.patch")))) - (home-page "http://www-sop.inria.fr/indes/fp/Bigloo/") - (synopsis "Bigloo, an efficient Scheme compiler") - (description - "Bigloo is a Scheme implementation devoted to one goal: enabling -Scheme based programming style where C(++) is usually -required. Bigloo attempts to make Scheme practical by offering -features usually presented by traditional programming languages -but not offered by Scheme and functional programming. Bigloo -compiles Scheme modules. It delivers small and fast stand alone -binary executables. Bigloo enables full connections between -Scheme and C programs, between Scheme and Java programs, and -between Scheme and C# programs.") - (license gpl2+))) diff --git a/distro/packages/shishi.scm b/distro/packages/shishi.scm deleted file mode 100644 index acbb1ed5c0..0000000000 --- a/distro/packages/shishi.scm +++ /dev/null @@ -1,71 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012 Nikita Karetnikov -;;; Copyright © 2012 Ludovic Courtès -;;; -;;; 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 . - -(define-module (distro packages shishi) - #:use-module (guix licenses) - #:use-module (distro) - #:use-module (distro packages gnutls) - #:use-module (distro packages gnupg) - #:use-module ((distro packages compression) - #:renamer (symbol-prefix-proc 'guix:)) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix build-system gnu)) - -(define-public shishi - (package - (name "shishi") - (version "1.0.1") - (source - (origin - (method url-fetch) - (uri (string-append - "mirror://gnu/shishi/shishi-" - version - ".tar.gz")) - (sha256 - (base32 - "13c6w9rpaqb3am65nrn86byvmll5r78pld2vb0i68491vww4fzlx")))) - (build-system gnu-build-system) - (arguments - `(#:make-flags - '("CPPFLAGS=-DMAX_ERROR_DESCRIPTION_SIZE=ASN1_MAX_ERROR_DESCRIPTION_SIZE") - #:patches (list (assoc-ref %build-inputs - "patch/gets")))) - (inputs - `(("gnutls" ,gnutls) - ("zlib" ,guix:zlib) - ("libgcrypt" ,libgcrypt) - ("libtasn1" ,libtasn1) - ("patch/gets" ,(search-patch "shishi-gets-undeclared.patch")))) - (home-page "http://www.gnu.org/software/shishi/") - (synopsis - "GNU Shishi, free implementation of the Kerberos 5 network security system") - (description - " GNU Shishi is an implementation of the Kerberos 5 network - authentication system, as specified in RFC 4120. Shishi can be - used to authenticate users in distributed systems. - - Shishi contains a library (`libshishi') that can be used by - application developers to add support for Kerberos 5. Shishi - contains a command line utility (1shishi') that is used by - users to acquire and manage tickets (and more). The server - side, a Key Distribution Center, is implemented by `shishid'. -") - (license gpl3+))) ; some files are under GPLv2+ diff --git a/distro/packages/system.scm b/distro/packages/system.scm deleted file mode 100644 index f2a031ccd7..0000000000 --- a/distro/packages/system.scm +++ /dev/null @@ -1,91 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012 Ludovic Courtès -;;; -;;; 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 . - -(define-module (distro packages system) - #:use-module (guix licenses) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix build-system gnu) - #:use-module (distro) - #:use-module (distro packages ncurses)) - -(define-public pies - (package - (name "pies") - (version "1.2") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://gnu/pies/pies-" - version ".tar.bz2")) - (sha256 - (base32 - "18w0dbg77i56cx1bwa789w0qi3l4xkkbascxcv2b6gbm0zmjg1g6")))) - (build-system gnu-build-system) - (home-page "http://www.gnu.org/software/pies/") - (synopsis - "GNU Pies, a program invocation and execution supervisor") - (description - "The name Pies (pronounced \"p-yes\") stands for Program Invocation -and Execution Supervisor. This utility starts and controls execution of -external programs, called components. Each component is a stand-alone -program, which is executed in the foreground. Upon startup, pies reads -the list of components from its configuration file, starts them, and -remains in the background, controlling their execution. If any of the -components terminates, the default action of Pies is to restart it. -However, it can also be programmed to perform a variety of another -actions such as, e.g., sending mail notifications to the system -administrator, invoking another external program, etc. - -Pies can be used for a wide variety of tasks. Its most obious use is to -put in backgound a program which normally cannot detach itself from the -controlling terminal, such as, e.g., minicom. It can launch and control -components of some complex system, such as Jabberd or MeTA1 (and it -offers much more control over them than the native utilities). Finally, -it can replace the inetd utility!") - (license gpl3+))) - -(define-public inetutils - (package - (name "inetutils") - (version "1.9.1") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://gnu/inetutils/inetutils-" - version ".tar.gz")) - (sha256 - (base32 - "0azzg6njgq79byl6960kb0wihfhhzf49snslhxgvi30ribgfpa82")))) - (build-system gnu-build-system) - (arguments `(#:patches (list (assoc-ref %build-inputs "patch/gets")) - - ;; FIXME: `tftp.sh' relies on `netstat' from utils-linux, - ;; which is currently missing. - #:tests? #f)) - (inputs `(("patch/gets" ,(search-patch "diffutils-gets-undeclared.patch")) - ("ncurses" ,ncurses))) - (home-page "http://www.gnu.org/software/inetutils/") - (synopsis - "GNU Inetutils, a collection of common network programs") - (description - "The GNU network utilities suite provides the following tools: -ftp(d), hostname, ifconfig, inetd, logger, ping, rcp, rexec(d), -rlogin(d), rsh(d), syslogd, talk(d), telnet(d), tftp(d), traceroute, -uucpd, and whois.") - (license gpl3+))) diff --git a/distro/packages/tcl.scm b/distro/packages/tcl.scm deleted file mode 100644 index d764f6b8ad..0000000000 --- a/distro/packages/tcl.scm +++ /dev/null @@ -1,109 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013 Ludovic Courtès -;;; -;;; 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 . - -(define-module (distro packages tcl) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix build-system gnu) - #:use-module (guix licenses)) - -(define-public tcl - (package - (name "tcl") - (version "8.6.0") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://sourceforge/tcl/Tcl/" - version "/tcl" version "-src.tar.gz")) - (sha256 - (base32 - "1pnabp3xsja4rc8c01l9q1avb65a3zhdzci3j54qa5krqjwj4i1m")))) - (build-system gnu-build-system) - (arguments - '(#:phases (alist-cons-before - 'configure 'pre-configure - (lambda _ - (chdir "unix")) - (alist-cons-after - 'install 'install-private-headers - (lambda _ - ;; Private headers are needed by Expect. - (zero? (system* "make" "install-private-headers"))) - %standard-phases)) - - ;; XXX: There are a few test failures (related to HTTP, most - ;; likely related to name resolution), but that doesn't cause - ;; `make' to fail. - #:test-target "test")) - (home-page "http://www.tcl.tk/") - (synopsis "The Tcl scripting language") - (description "The Tcl (Tool Command Language) scripting language.") - (license (bsd-style "http://www.tcl.tk/software/tcltk/license.html" - "Tcl/Tk license")))) - - -(define-public expect - (package - (name "expect") - (version "5.45") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://sourceforge/expect/Expect/" - version "/expect" version ".tar.gz")) - (sha256 - (base32 - "0h60bifxj876afz4im35rmnbnxjx4lbdqp2ja3k30fwa8a8cm3dj")))) - (build-system gnu-build-system) - (inputs - `(;; TODO: Add these optional dependencies. - ;; ("libX11" ,libX11) - ;; ("xproto" ,xproto) - ;; ("tk" ,tk) - ("tcl" ,tcl))) - (arguments - '(#:configure-flags - (list (string-append "--with-tcl=" - (assoc-ref %build-inputs "tcl") - "/lib") - (string-append "--with-tclinclude=" - (assoc-ref %build-inputs "tcl") - "/include") - (string-append "--exec-prefix=" - (assoc-ref %outputs "out"))) - - #:phases (alist-cons-before - 'configure 'set-path-to-stty - (lambda _ - (substitute* "configure" - (("STTY_BIN=/bin/stty") - (string-append "STTY_BIN=" (which "stty"))))) - %standard-phases) - - #:test-target "test")) - (home-page "http://expect.nist.gov/") - (synopsis - "A tool for automating interactive applications") - (description - "Expect is a tool for automating interactive applications such as -telnet, ftp, passwd, fsck, rlogin, tip, etc. Expect really makes this -stuff trivial. Expect is also useful for testing these same -applications. And by adding Tk, you can wrap interactive applications in -X11 GUIs.") - (license public-domain))) ; as written in `license.terms' diff --git a/distro/packages/texinfo.scm b/distro/packages/texinfo.scm deleted file mode 100644 index 99925eeb53..0000000000 --- a/distro/packages/texinfo.scm +++ /dev/null @@ -1,61 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012 Ludovic Courtès -;;; -;;; 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 . - -(define-module (distro packages texinfo) - #:use-module (guix licenses) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix build-system gnu) - #:use-module (distro packages compression) - #:use-module (distro packages ncurses)) - -(define-public texinfo - (package - (name "texinfo") - (version "4.13a") - (source - (origin - (method url-fetch) - (uri (string-append - "mirror://gnu/texinfo/texinfo-" - version - ".tar.lzma")) - (sha256 - (base32 - "1rf9ckpqwixj65bw469i634897xwlgkm5i9g2hv3avl6mv7b0a3d")))) - (build-system gnu-build-system) - (inputs `(("ncurses" ,ncurses) ("xz" ,xz))) - (home-page - "http://www.gnu.org/software/texinfo/") - (synopsis - "GNU Texinfo, the GNU documentation system") - (description - "Texinfo is the official documentation format of the GNU project. -It was invented by Richard Stallman and Bob Chassell many years -ago, loosely based on Brian Reid's Scribe and other formatting -languages of the time. It is used by many non-GNU projects as -well. - -Texinfo uses a single source file to produce output in a number -of formats, both online and printed (dvi, html, info, pdf, xml, -etc.). This means that instead of writing different documents -for online information and another for a printed manual, you -need write only one document. And when the work is revised, you -need revise only that one document. The Texinfo system is -well-integrated with GNU Emacs.") - (license gpl3+))) diff --git a/distro/packages/time.scm b/distro/packages/time.scm deleted file mode 100644 index 0b7bde9a1b..0000000000 --- a/distro/packages/time.scm +++ /dev/null @@ -1,66 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012 Nikita Karetnikov -;;; Copyright © 2013 Ludovic Courtès -;;; -;;; 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 . - -(define-module (distro packages time) - #:use-module (guix licenses) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix build-system gnu)) - -(define-public time - (package - (name "time") - (version "1.7") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://gnu/time/time-" - version ".tar.gz")) - (sha256 - (base32 - "0va9063fcn7xykv658v2s9gilj2fq4rcdxx2mn2mmy1v4ndafzp3")))) - (build-system gnu-build-system) - (arguments - '(#:phases - (alist-replace 'configure - (lambda* (#:key outputs #:allow-other-keys) - ;; This old `configure' script doesn't support - ;; variables passed as arguments. - (let ((out (assoc-ref outputs "out"))) - (setenv "CONFIG_SHELL" (which "bash")) - (zero? - (system* "./configure" - (string-append "--prefix=" out))))) - %standard-phases))) - (home-page "http://www.gnu.org/software/time/") - (synopsis - "GNU Time, a tool that runs programs and summarizes the system -resources they use") - (description - "The 'time' command runs another program, then displays information -about the resources used by that program, collected by the system while -the program was running. You can select which information is reported -and the format in which it is shown, or have 'time' save the information -in a file instead of displaying it on the screen. - -The resources that 'time' can report on fall into the general categories -of time, memory, and I/O and IPC calls. Some systems do not provide -much information about program resource use; 'time' reports unavailable -information as zero values.") - (license gpl2+))) diff --git a/distro/packages/wget.scm b/distro/packages/wget.scm deleted file mode 100644 index 08b16f167b..0000000000 --- a/distro/packages/wget.scm +++ /dev/null @@ -1,61 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012 Nikita Karetnikov -;;; -;;; 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 . - -(define-module (distro packages wget) - #:use-module (guix licenses) - #:use-module ((distro packages gettext) - #:renamer (symbol-prefix-proc 'guix:)) - #:use-module (distro packages gnutls) - #:use-module (distro packages perl) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix build-system gnu)) - -(define-public wget - (package - (name "wget") - (version "1.14") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://gnu/wget/wget-" - version ".tar.xz")) - (sha256 - (base32 - "0yqllj3nv9p3vqbdm6j4nvpjcwf1y19rq8sd966nrbd2qvvxfq8p")))) - (build-system gnu-build-system) - (inputs - `(("gnutls" ,gnutls) - ("perl" ,perl) - ("gettext" ,guix:gettext))) - (arguments - '(#:phases - (alist-cons-before 'build 'patch-/usr/bin/env - (lambda _ - (for-each patch-shebang - '("doc/texi2pod.pl" "tests/run-px"))) - %standard-phases))) - (home-page "http://www.gnu.org/software/wget/") - (synopsis - "GNU Wget, a tool for retrieving files using HTTP, HTTPS, and FTP") - (description - "GNU Wget is a free software package for retrieving files using HTTP, -HTTPS and FTP, the most widely-used Internet protocols. It is a -non-interactive commandline tool, so it may easily be called from -scripts, cron jobs, terminals without X-Windows support, etc.") - (license gpl3+))) ; some files are under GPLv2+ diff --git a/distro/packages/which.scm b/distro/packages/which.scm deleted file mode 100644 index 8cdd36841c..0000000000 --- a/distro/packages/which.scm +++ /dev/null @@ -1,48 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012 Nikita Karetnikov -;;; -;;; 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 . - -(define-module (distro packages which) - #:use-module (guix licenses) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix build-system gnu)) - -(define-public which - (package - (name "which") - (version "2.20") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://gnu/which/which-" - version ".tar.gz")) - (sha256 - (base32 - "1y2p50zadb36izzh2zw4dm5hvdiydqf3qa88l8kav20dcmfbc5yl")))) - (build-system gnu-build-system) - (home-page "https://gnu.org/software/which/") - (synopsis - "GNU Which shows the full path of (shell) commands") - (description - "GNU Which takes one or more arguments. For each of its arguments -it prints to stdout the full path of the executables that would have -been executed when this argument had been entered at the shell -prompt. It does this by searching for an executable or script in the -directories listed in the environment variable PATH using the same -algorithm as bash(1).") - (license gpl3+))) ; some files are under GPLv2+ diff --git a/distro/packages/xml.scm b/distro/packages/xml.scm deleted file mode 100644 index 5962e35d86..0000000000 --- a/distro/packages/xml.scm +++ /dev/null @@ -1,44 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013 Ludovic Courtès -;;; -;;; 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 . - -(define-module (distro packages xml) - #:use-module ((guix licenses) - #:renamer (symbol-prefix-proc 'license:)) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix build-system gnu)) - -(define-public expat - (package - (name "expat") - (version "2.1.0") - (source (origin - (method url-fetch) - (uri (string-append "mirror://sourceforge/expat/expat/" - version "/expat-" version ".tar.gz")) - (sha256 - (base32 - "11pblz61zyxh68s5pdcbhc30ha1b2vfjd83aiwfg4vc15x3hadw2")))) - (build-system gnu-build-system) - (home-page "http://www.libexpat.org/") - (synopsis "A stream-oriented XML parser library written in C") - (description - "Expat is an XML parser library written in C. It is a -stream-oriented parser in which an application registers handlers for -things the parser might find in the XML document (like start tags).") - (license license:expat))) diff --git a/distro/packages/zile.scm b/distro/packages/zile.scm deleted file mode 100644 index 9eae6d4b9f..0000000000 --- a/distro/packages/zile.scm +++ /dev/null @@ -1,66 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012 Ludovic Courtès -;;; -;;; 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 . - -(define-module (distro packages zile) - #:use-module (guix licenses) - #:use-module (guix download) - #:use-module (guix packages) - #:use-module (guix build-system gnu) - #:use-module (distro packages bdw-gc) - #:use-module (distro packages perl) - #:use-module (distro packages help2man) - #:use-module (distro packages ncurses)) - -(define-public zile - (package - (name "zile") - (version "2.4.9") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://gnu/zile/zile-" - version ".tar.gz")) - (sha256 - (base32 - "0j801c28ypm924rw3lqyb6khxyslg6ycrv16wmmwcam0mk3mj6f7")))) - (build-system gnu-build-system) - (inputs - `(("boehm-gc" ,libgc) - ("ncurses" ,ncurses) - ("perl" ,perl) - ("help2man" ,help2man))) - (home-page "http://www.gnu.org/software/zile/") - (synopsis "GNU Zile, a lightweight Emacs clone") - (description - "GNU Zile, which is a lightweight Emacs clone. Zile is short -for Zile Is Lossy Emacs. Zile has been written to be as -similar as possible to Emacs; every Emacs user should feel at -home. - -Zile has all of Emacs's basic editing features: it is 8-bit -clean (though it currently lacks Unicode support), and the -number of editing buffers and windows is only limited by -available memory and screen space respectively. Registers, -minibuffer completion and auto fill are available. Function -and variable names are identical with Emacs's (except those -containing the word \"emacs\", which instead contain the word -\"zile\"!). - -However, all of this is packed into a program which typically -compiles to about 130Kb.") - (license gpl3+))) diff --git a/gnu/packages/acl.scm b/gnu/packages/acl.scm new file mode 100644 index 0000000000..1cba608c8c --- /dev/null +++ b/gnu/packages/acl.scm @@ -0,0 +1,66 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Nikita Karetnikov +;;; +;;; 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 . + +(define-module (gnu packages acl) + #:use-module (guix licenses) + #:use-module (gnu packages attr) + #:use-module (gnu packages perl) + #:use-module ((gnu packages gettext) + #:renamer (symbol-prefix-proc 'guix:)) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu)) + +(define-public acl + (package + (name "acl") + (version "2.2.51") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://savannah/acl/acl-" + version ".src.tar.gz")) + (sha256 + (base32 + "09aj30m49ivycl3irram8c3givc0crivjm3ymw0nhfaxrwhlb186")))) + (build-system gnu-build-system) + (arguments + `(#:phases + (alist-cons-after + 'configure 'patch-makefile-SHELL + (lambda _ + (patch-makefile-SHELL "include/buildmacros")) + (alist-replace + 'check + (lambda _ + (system* "make" "tests" "-C" "test") + + ;; XXX: Ignore the test result since this is + ;; dependent on the underlying file system. + #t) + %standard-phases)))) + (inputs `(("attr" ,attr) + ("gettext" ,guix:gettext) + ("perl" ,perl))) + (home-page + "http://savannah.nongnu.org/projects/acl") + (synopsis + "Library and tools for manipulating access control lists") + (description + "Library and tools for manipulating access control lists.") + (license '(gpl2+ lgpl2.1+)))) diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm new file mode 100644 index 0000000000..088e32bc0c --- /dev/null +++ b/gnu/packages/algebra.scm @@ -0,0 +1,193 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012, 2013 Andreas Enge +;;; Copyright © 2013 Ludovic Courtès +;;; +;;; 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 . + +(define-module (gnu packages algebra) + #:use-module (distro) + #:use-module (gnu packages multiprecision) + #:use-module (gnu packages perl) + #:use-module (gnu packages readline) + #:use-module (gnu packages flex) + #: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/"))) + +(define-public gsl + (package + (name "gsl") + (version "1.15") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://gnu/gsl/gsl-" + version ".tar.gz")) + (sha256 + (base32 + "18qf6jzz1r3mzb5qynywv4xx3z9g61hgkbpkdrhbgqh2g7jhgfc5")))) + (build-system gnu-build-system) + (home-page "http://www.gnu.org/software/gsl/") + (synopsis "The GNU Scientific Library, a large numerical library") + (description + "The GNU Scientific Library (GSL) is a numerical library for C +and C++ programmers. It is free software under the GNU General +Public License. + +The library provides a wide range of mathematical routines such +as random number generators, special functions and least-squares +fitting. There are over 1000 functions in total with an +extensive test suite.") + (license gpl3+))) + +(define-public pari-gp + (package + (name "pari-gp") + (version "2.5.3") + (source (origin + (method url-fetch) + (uri (string-append + "http://pari.math.u-bordeaux.fr/pub/pari/unix/pari-" + version ".tar.gz")) + (sha256 (base32 + "0zsjccnnv00kwj2gk3ww2v530kjin1rgj8p8hbl4pwcnwc7m68gl")))) + (build-system gnu-build-system) + (inputs `(("gmp" ,gmp) + ("perl" ,perl) + ("readline" ,readline))) + (arguments + (lambda (system) + `(#:make-flags '("gp") +;; FIXME: building the documentation requires tex; once this is available, +;; replace "gp" by "all" + #:test-target "dobench" + #:phases + (alist-replace + 'configure + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (readline (assoc-ref inputs "readline")) + (gmp (assoc-ref inputs "gmp"))) + (zero? + (system* "./Configure" + (string-append "--prefix=" out) + (string-append "--with-readline=" readline) + (string-append "--with-gmp=" gmp))))) +;; FIXME: readline and gmp will be detected automatically in the next +;; stable release + %standard-phases)))) + (synopsis "PARI/GP, a computer algebra system for number theory") + (description + "PARI/GP is a widely used computer algebra system designed for fast +computations in number theory (factorisations, algebraic number theory, +elliptic curves...), but it also contains a large number of other useful +functions to compute with mathematical entities such as matrices, +polynomials, power series, algebraic numbers, etc., and a lot of +transcendental functions. +PARI is also available as a C library to allow for faster computations.") + (license gpl2+) + (home-page "http://pari.math.u-bordeaux.fr/"))) + +(define-public bc + (package + (name "bc") + (version "1.06") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/bc/bc-" version ".tar.gz")) + (sha256 + (base32 + "0cqf5jkwx6awgd2xc2a0mkpxilzcfmhncdcfg7c9439wgkqxkxjf")))) + (build-system gnu-build-system) + (inputs `(("readline" ,readline) + ("flex" ,flex))) + (arguments + '(#:phases + (alist-replace 'configure + (lambda* (#:key outputs #:allow-other-keys) + ;; This old `configure' script doesn't support + ;; variables passed as arguments. + (let ((out (assoc-ref outputs "out"))) + (setenv "CONFIG_SHELL" (which "bash")) + (zero? + (system* "./configure" + (string-append "--prefix=" out))))) + %standard-phases))) + (home-page "http://www.gnu.org/software/bc/") + (synopsis "GNU software calculator") + (description + "bc is an arbitrary precision numeric processing language. Syntax +is similar to C, but differs in many substantial areas. It supports +interactive execution of statements. bc is a utility included in the +POSIX P1003.2/D11 draft standard. + +Since the POSIX document does not specify how bc must be implemented, +this version does not use the historical method of having bc be a +compiler for the dc calculator. This version has a single executable +that both compiles the language and runs the resulting `byte code'. The +byte code is not the dc language.") + (license gpl2+))) diff --git a/gnu/packages/aspell.scm b/gnu/packages/aspell.scm new file mode 100644 index 0000000000..ca0218d814 --- /dev/null +++ b/gnu/packages/aspell.scm @@ -0,0 +1,54 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2013 Ludovic Courtès +;;; +;;; 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 . + +(define-module (gnu packages aspell) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu) + #:use-module (guix licenses) + #:use-module (gnu packages perl)) + +(define-public aspell + (package + (name "aspell") + (version "0.60.6.1") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://gnu/aspell/aspell-" + version ".tar.gz")) + (sha256 + (base32 + "1qgn5psfyhbrnap275xjfrzppf5a83fb67gpql0kfqv37al869gm")))) + (build-system gnu-build-system) + (inputs `(("perl" ,perl))) + (home-page "http://aspell.net/") + (synopsis + "GNU Aspell, A spell checker for many languages") + (description + "GNU Aspell is a free spell checker designed to eventually replace +Ispell. It can either be used as a library or as an independent spell +checker. Its main feature is that it does a superior job of suggesting +possible replacements for a misspelled word than just about any other +spell checker out there for the English language. Unlike Ispell, Aspell +can also easily check documents in UTF-8 without having to use a special +dictionary. Aspell will also do its best to respect the current locale +setting. Other advantages over Ispell include support for using +multiple dictionaries at once and intelligently handling personal +dictionaries when more than one Aspell process is open at once.") + (license lgpl2.1+))) diff --git a/gnu/packages/attr.scm b/gnu/packages/attr.scm new file mode 100644 index 0000000000..2f8a0e0e65 --- /dev/null +++ b/gnu/packages/attr.scm @@ -0,0 +1,77 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Nikita Karetnikov +;;; Copyright © 2012 Ludovic Courtès +;;; +;;; 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 . + +(define-module (gnu packages attr) + #:use-module (guix licenses) + #:use-module (gnu packages perl) + #:use-module ((gnu packages gettext) + #:renamer (symbol-prefix-proc 'guix:)) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu)) + +(define-public attr + (package + (name "attr") + (version "2.4.46") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://savannah/attr/attr-" + version ".src.tar.gz")) + (sha256 + (base32 + "07qf6kb2zk512az481bbnsk9jycn477xpva1a726n5pzlzf9pmnw")))) + (build-system gnu-build-system) + (arguments + `(#:phases + (alist-cons-after + 'configure 'patch-makefile-SHELL + (lambda _ + (patch-makefile-SHELL "include/buildmacros")) + (alist-replace + 'install + (lambda _ + (zero? (system* "make" + "install" + "install-lib" + "install-dev"))) + (alist-replace + 'check + (lambda _ + ;; Use the right shell. + (substitute* "test/run" + (("/bin/sh") + (which "bash"))) + + (system* "make" "tests" "-C" "test") + + ;; XXX: Ignore the test result since this is dependent on the + ;; underlying file system. + #t) + %standard-phases))))) + (inputs `(("perl" ,perl) + ("gettext" ,guix:gettext))) + (home-page + "http://savannah.nongnu.org/projects/attr/") + (synopsis + "Library and tools for manipulating extended attributes") + (description + "Portable library and tools for manipulating extended attributes.") + (license '(gpl2+ lgpl2.1+)))) diff --git a/gnu/packages/autotools.scm b/gnu/packages/autotools.scm new file mode 100644 index 0000000000..b5c8b6ec87 --- /dev/null +++ b/gnu/packages/autotools.scm @@ -0,0 +1,144 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Nikita Karetnikov +;;; Copyright © 2012, 2013 Ludovic Courtès +;;; +;;; 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 . + +(define-module (gnu packages autotools) + #:use-module (guix licenses) + #:use-module (distro) + #:use-module (gnu packages perl) + #:use-module (gnu packages m4) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu)) + +(define-public autoconf + (package + (name "autoconf") + (version "2.69") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://gnu/autoconf/autoconf-" + version ".tar.xz")) + (sha256 + (base32 + "113nlmidxy9kjr45kg9x3ngar4951mvag1js2a3j8nxcz34wxsv4")))) + (build-system gnu-build-system) + (inputs + `(("perl" ,perl) + ("m4" ,m4))) + ;; XXX: testsuite: 209 and 279 failed. The latter is an impurity. It + ;; should use our own "cpp" instead of "/lib/cpp". + (arguments `(#:tests? #f)) + (home-page + "http://www.gnu.org/software/autoconf/") + (synopsis + "GNU Autoconf, a part of the GNU Build System") + (description + "GNU Autoconf is an extensible package of M4 macros that produce +shell scripts to automatically configure software source code +packages. These scripts can adapt the packages to many kinds of +UNIX-like systems without manual user intervention. Autoconf +creates a configuration script for a package from a template +file that lists the operating system features that the package +can use, in the form of M4 macro calls.") + (license gpl3+))) ; some files are under GPLv2+ + +(define-public automake + (package + (name "automake") + (version "1.12.6") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://gnu/automake/automake-" + version ".tar.xz")) + (sha256 + (base32 + "1ynvca8z4aqcwr94rf7j1bfiid2w9w250y9qhnyj9vmi8lhsnd7q")))) + (build-system gnu-build-system) + (inputs + `(("autoconf" ,autoconf) + ("perl" ,perl))) + (home-page + "http://www.gnu.org/software/automake/") + (synopsis + "GNU Automake, a GNU standard-compliant makefile generator") + (description + "GNU Automake is a tool for automatically generating +`Makefile.in' files compliant with the GNU Coding +Standards. Automake requires the use of Autoconf.") + (license gpl2+))) ; some files are under GPLv3+ + +(define-public libtool + (package + (name "libtool") + (version "2.4.2") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/libtool/libtool-" + version ".tar.gz")) + (sha256 + (base32 + "0649qfpzkswgcj9vqkkr9rn4nlcx80faxpyqscy2k1x9c94f93dk")))) + (build-system gnu-build-system) + (native-inputs `(("m4" ,m4) + ("perl" ,perl))) + + ;; Separate binaries from the rest. During bootstrap, only ltdl is + ;; used; not depending on the binaries allows us to avoid retaining + ;; a reference to the bootstrap bash. + (outputs '("bin" ; libtoolize, libtool, etc. + "out")) ; libltdl.so, ltdl.h, etc. + + (arguments + `(#:patches (list (assoc-ref %build-inputs "patch/skip-tests")) + #:phases (alist-cons-before + 'check 'pre-check + (lambda* (#:key inputs #:allow-other-keys) + ;; Run the test suite in parallel, if possible. + (let ((ncores + (cond + ((getenv "NIX_BUILD_CORES") + => + (lambda (n) + (if (zero? (string->number n)) + (number->string (current-processor-count)) + n))) + (else "1")))) + (setenv "TESTSUITEFLAGS" + (string-append "-j" ncores))) + + ;; Path references to /bin/sh. + (let ((bash (assoc-ref inputs "bash"))) + (substitute* "tests/testsuite" + (("/bin/sh") + (string-append bash "/bin/bash"))))) + %standard-phases))) + (inputs `(("patch/skip-tests" + ,(search-patch "libtool-skip-tests.patch")))) + (synopsis "GNU Libtool, a generic library support script") + (description + "GNU libtool is a generic library support script. Libtool hides the +complexity of using shared libraries behind a consistent, portable interface. + +To use libtool, add the new generic library building commands to your +Makefile, Makefile.in, or Makefile.am. See the documentation for +details.") + (license gpl3+) + (home-page "http://www.gnu.org/software/libtool/"))) diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm new file mode 100644 index 0000000000..b5a5856609 --- /dev/null +++ b/gnu/packages/base.scm @@ -0,0 +1,1082 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012, 2013 Ludovic Courtès +;;; Copyright © 2012 Nikita Karetnikov +;;; +;;; 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 . + +(define-module (gnu packages base) + #:use-module (guix licenses) + #:use-module (distro) + #:use-module (gnu packages acl) + #:use-module (gnu packages bash) + #:use-module (gnu packages bootstrap) + #:use-module (gnu packages compression) + #:use-module (gnu packages gawk) + #:use-module (gnu packages guile) + #:use-module (gnu packages multiprecision) + #:use-module (gnu packages perl) + #:use-module (gnu packages linux) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu) + #:use-module (guix build-system trivial) + #:use-module (guix utils) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-26) + #:use-module (ice-9 match)) + +;;; Commentary: +;;; +;;; Base packages of the Guix-based GNU user-land software distribution. +;;; +;;; Code: + +(define-public hello + (package + (name "hello") + (version "2.8") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/hello/hello-" version + ".tar.gz")) + (sha256 + (base32 "0wqd8sjmxfskrflaxywc7gqw7sfawrfvdxd9skxawzfgyy0pzdz6")))) + (build-system gnu-build-system) + (arguments '(#:configure-flags + `("--disable-dependency-tracking" + ,(string-append "--with-gawk=" ; for illustration purposes + (assoc-ref %build-inputs "gawk"))))) + (inputs `(("gawk" ,gawk))) + (synopsis "GNU Hello") + (description "Yeah...") + (home-page "http://www.gnu.org/software/hello/") + (license gpl3+))) + +(define-public grep + (package + (name "grep") + (version "2.14") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/grep/grep-" + version ".tar.xz")) + (sha256 + (base32 + "1qbjb1l7f9blckc5pqy8jlf6482hpx4awn2acmhyf5mv9wfq03p7")))) + (build-system gnu-build-system) + (synopsis "GNU implementation of the Unix grep command") + (description + "The grep command searches one or more input files for lines containing a +match to a specified pattern. By default, grep prints the matching +lines.") + (license gpl3+) + (home-page "http://www.gnu.org/software/grep/"))) + +(define-public sed + (package + (name "sed") + (version "4.2.1") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/sed/sed-" version + ".tar.bz2")) + (sha256 + (base32 + "13wlsb4sf5d5a82xjhxqmdvrrn36rmw5f0pl9qyb9zkvldnb7hra")))) + (build-system gnu-build-system) + (synopsis "GNU sed, a batch stream editor") + (arguments + `(#:phases (alist-cons-before + 'patch-source-shebangs 'patch-test-suite + (lambda* (#:key inputs #:allow-other-keys) + (let ((bash (assoc-ref inputs "bash"))) + (patch-makefile-SHELL "testsuite/Makefile.tests") + (substitute* '("testsuite/bsd.sh" + "testsuite/bug-regex9.c") + (("/bin/sh") + (string-append bash "/bin/bash"))))) + %standard-phases))) + (description + "Sed (stream editor) isn't really a true text editor or text processor. +Instead, it is used to filter text, i.e., it takes text input and performs +some operation (or set of operations) on it and outputs the modified text. +Sed is typically used for extracting part of a file using pattern matching or +substituting multiple occurrences of a string within a file.") + (license gpl3+) + (home-page "http://www.gnu.org/software/sed/"))) + +(define-public tar + (package + (name "tar") + (version "1.26") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/tar/tar-" + version ".tar.bz2")) + (sha256 + (base32 + "0hbdkzmchq9ycr2x1pxqdcgdbaxksh8c6ac0jf75jajhcks6jlss")))) + (build-system gnu-build-system) + (inputs `(("patch/gets" ,(search-patch "tar-gets-undeclared.patch")))) + (arguments + `(#:patches (list (assoc-ref %build-inputs "patch/gets")))) + (synopsis "GNU implementation of the `tar' archiver") + (description + "The Tar program provides the ability to create tar archives, as well as +various other kinds of manipulation. For example, you can use Tar on +previously created archives to extract files, to store additional files, or +to update or list files which were already stored. + +Initially, tar archives were used to store files conveniently on magnetic +tape. The name \"Tar\" comes from this use; it stands for tape archiver. +Despite the utility's name, Tar can direct its output to available devices, +files, or other programs (using pipes), it can even access remote devices or +files (as archives).") + (license gpl3+) + (home-page "http://www.gnu.org/software/tar/"))) + +(define-public patch + (package + (name "patch") + (version "2.6.1") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/patch/patch-" + version ".tar.xz")) + (sha256 + (base32 + "18012gxs9wc96izskp1q7bclrwns6rdmkn4jj31c8jbyfz6l5npq")))) + (build-system gnu-build-system) + (native-inputs '()) ; FIXME: needs `ed' for the tests + (arguments + (case-lambda + ((system) '(#:tests? #f)) + ((system cross-system) + '(#:configure-flags '("ac_cv_func_strnlen_working=yes"))))) + (synopsis "GNU Patch, a program to apply differences to files") + (description + "GNU Patch takes a patch file containing a difference listing produced by +the diff program and applies those differences to one or more original files, +producing patched versions.") + (license gpl3+) + (home-page "http://savannah.gnu.org/projects/patch/"))) + +(define-public diffutils + (package + (name "diffutils") + (version "3.2") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/diffutils/diffutils-" + version ".tar.xz")) + (sha256 + (base32 + "0jci0wv68025xd0s0rq4s5qxpx56dd9d730lka63qpzk1rfvfkxb")))) + (build-system gnu-build-system) + (inputs `(("patch/gets" + ,(search-patch "diffutils-gets-undeclared.patch")))) + (arguments `(#:patches (list (assoc-ref %build-inputs "patch/gets")))) + (synopsis "Programs to find differences among text files") + (description + "GNU Diffutils is a package of several programs related to finding +differences between files. + +Computer users often find occasion to ask how two files differ. Perhaps one +file is a newer version of the other file. Or maybe the two files started out +as identical copies but were changed by different people. + +You can use the diff command to show differences between two files, or each +corresponding file in two directories. diff outputs differences between files +line by line in any of several formats, selectable by command line +options. This set of differences is often called a ‘diff’ or ‘patch’. For +files that are identical, diff normally produces no output; for +binary (non-text) files, diff normally reports only that they are different. + +You can use the cmp command to show the offsets and line numbers where two +files differ. cmp can also show all the characters that differ between the +two files, side by side. + +You can use the diff3 command to show differences among three files. When two +people have made independent changes to a common original, diff3 can report +the differences between the original and the two changed versions, and can +produce a merged file that contains both persons' changes together with +warnings about conflicts. + +You can use the sdiff command to merge two files interactively.") + (license gpl3+) + (home-page "http://www.gnu.org/software/diffutils/"))) + +(define-public findutils + (package + (name "findutils") + (version "4.4.2") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/findutils/findutils-" + version ".tar.gz")) + (sha256 + (base32 + "0amn0bbwqvsvvsh6drfwz20ydc2czk374lzw5kksbh6bf78k4ks3")))) + (build-system gnu-build-system) + (native-inputs + `(("patch/absolute-paths" + ,(search-patch "findutils-absolute-paths.patch")))) + (arguments + (case-lambda + ((system) + `(#:patches (list (assoc-ref %build-inputs "patch/absolute-paths")))) + ((system cross-system) + ;; Work around cross-compilation failure. + ;; See . + `(#:configure-flags '("gl_cv_func_wcwidth_works=yes") + ,@(arguments cross-system))))) + (synopsis "Basic directory searching utilities of the GNU operating +system") + (description + "The GNU Find Utilities are the basic directory searching utilities of +the GNU operating system. These programs are typically used in conjunction +with other programs to provide modular and powerful directory search and file +locating capabilities to other commands. + +The tools supplied with this package are: + + * find - search for files in a directory hierarchy; + * locate - list files in databases that match a pattern; + * updatedb - update a file name database; + * xargs - build and execute command lines from standard input. +") + (license gpl3+) + (home-page "http://www.gnu.org/software/findutils/"))) + +(define-public coreutils + (package + (name "coreutils") + (version "8.20") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/coreutils/coreutils-" + version ".tar.xz")) + (sha256 + (base32 + "1cly97xdy3v4nbbx631k43smqw0nnpn651kkprs0yyl2cj3pkjyv")))) + (build-system gnu-build-system) + (inputs `(("acl" ,acl) + ("gmp" ,gmp) + ("perl" ,perl))) ; TODO: add SELinux + (arguments + `(#:parallel-build? #f ; help2man may be called too early + #:phases (alist-cons-before + 'build 'patch-shell-references + (lambda* (#:key inputs #:allow-other-keys) + (let ((bash (assoc-ref inputs "bash"))) + (substitute* (cons "src/split.c" + (find-files "gnulib-tests" + "\\.c$")) + (("/bin/sh") + (format #f "~a/bin/sh" bash))) + (substitute* (find-files "tests" "\\.sh$") + (("#!/bin/sh") + (format #f "#!~a/bin/bash" bash))))) + %standard-phases))) + (synopsis + "The basic file, shell and text manipulation utilities of the GNU +operating system") + (description + "The GNU Core Utilities are the basic file, shell and text manipulation +utilities of the GNU operating system. These are the core utilities which +are expected to exist on every operating system.") + (license gpl3+) + (home-page "http://www.gnu.org/software/coreutils/"))) + +(define-public gnu-make + (package + (name "make") + (version "3.82") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/make/make-" version + ".tar.bz2")) + (sha256 + (base32 + "0ri98385hsd7li6rh4l5afcq92v8l2lgiaz85wgcfh4w2wzsghg2")))) + (build-system gnu-build-system) + (native-inputs + `(("patch/impure-dirs" ,(search-patch "make-impure-dirs.patch")))) + (arguments + '(#:patches (list (assoc-ref %build-inputs "patch/impure-dirs")) + #:phases (alist-cons-before + 'build 'set-default-shell + (lambda* (#:key inputs #:allow-other-keys) + ;; Change the default shell from /bin/sh. + (let ((bash (assoc-ref inputs "bash"))) + (substitute* "job.c" + (("default_shell\\[\\] =.*$") + (format #f "default_shell[] = \"~a/bin/bash\";\n" + bash))))) + %standard-phases))) + (synopsis "GNU Make, a program controlling the generation of non-source +files from sources") + (description + "Make is a tool which controls the generation of executables and other +non-source files of a program from the program's source files. + +Make gets its knowledge of how to build your program from a file called the +makefile, which lists each of the non-source files and how to compute it from +other files. When you write a program, you should write a makefile for it, so +that it is possible to use Make to build and install the program.") + (license gpl3+) + (home-page "http://www.gnu.org/software/make/"))) + +(define-public binutils + (package + (name "binutils") + (version "2.22") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/binutils/binutils-" + version ".tar.bz2")) + (sha256 + (base32 + "1a9w66v5dwvbnawshjwqcgz7km6kw6ihkzp6sswv9ycc3knzhykc")))) + (build-system gnu-build-system) + + ;; Split Binutils in several outputs, mostly to avoid collisions in + ;; user profiles with GCC---e.g., libiberty.a. + (outputs '("out" ; ar, ld, binutils.info, etc. + "lib")) ; libbfd.a, bfd.h, etc. + + ;; TODO: Add dependency on zlib + those for Gold. + (native-inputs + `(("patch/new-dtags" ,(search-patch "binutils-ld-new-dtags.patch")))) + (arguments + `(#:patches (list (assoc-ref %build-inputs "patch/new-dtags")) + #:configure-flags '(;; Add `-static-libgcc' to not retain a dependency + ;; on GCC when bootstrapping. + "LDFLAGS=-static-libgcc" + + ;; Don't search under /usr/lib & co. + "--with-lib-path=/no-ld-lib-path"))) + + (synopsis "GNU Binutils, tools for manipulating binaries (linker, +assembler, etc.)") + (description + "The GNU Binutils are a collection of binary tools. The main ones are +`ld' (the GNU linker) and `as' (the GNU assembler). They also include the +BFD (Binary File Descriptor) library, `gprof', `nm', `strip', etc.") + (license gpl3+) + (home-page "http://www.gnu.org/software/binutils/"))) + +(define-public gcc-4.7 + (let ((stripped? #t)) ; TODO: make this a parameter + (package + (name "gcc") + (version "4.7.2") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/gcc/gcc-" + version "/gcc-" version ".tar.bz2")) + (sha256 + (base32 + "115h03hil99ljig8lkrq4qk426awmzh0g99wrrggxf8g07bq74la")))) + (build-system gnu-build-system) + (inputs `(("gmp" ,gmp) + ("mpfr" ,mpfr) + ("mpc" ,mpc))) ; TODO: libelf, ppl, cloog, zlib, etc. + (arguments + (lambda (system) + `(#:out-of-source? #t + #:strip-binaries? ,stripped? + #:configure-flags + `("--enable-plugin" + "--enable-languages=c,c++" + "--disable-multilib" + + "--with-local-prefix=/no-gcc-local-prefix" + + ,(let ((libc (assoc-ref %build-inputs "libc"))) + (if libc + (string-append "--with-native-system-header-dir=" libc + "/include") + "--without-headers"))) + #:make-flags + (let ((libc (assoc-ref %build-inputs "libc"))) + `(,@(if libc + (list (string-append "LDFLAGS_FOR_BUILD=" + "-L" libc "/lib " + "-Wl,-dynamic-linker " + "-Wl," libc + ,(glibc-dynamic-linker system))) + '()) + ,(string-append "BOOT_CFLAGS=-O2 " + ,(if stripped? "-g0" "-g")))) + + #:tests? #f + #:phases + (alist-cons-before + 'configure 'pre-configure + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (libc (assoc-ref inputs "libc"))) + (when libc + ;; The following is not performed for `--without-headers' + ;; cross-compiler builds. + + ;; Fix the dynamic linker's file name. + (substitute* (find-files "gcc/config" + "^linux(64|-elf)?\\.h$") + (("#define GLIBC_DYNAMIC_LINKER([^ ]*).*$" _ suffix) + (format #f "#define GLIBC_DYNAMIC_LINKER~a \"~a\"~%" + suffix + (string-append libc ,(glibc-dynamic-linker system))))) + + ;; Tell where to find libstdc++, libc, and `?crt*.o', except + ;; `crt{begin,end}.o', which come with GCC. + (substitute* (find-files "gcc/config" + "^(gnu-user(64)?|linux-elf)\\.h$") + (("#define LIB_SPEC (.*)$" _ suffix) + ;; Note that with this "lib" spec, we may still add a + ;; RUNPATH to GCC even when `libgcc_s' is not NEEDED. + ;; There's not much that can be done to avoid it, though. + (format #f "#define LIB_SPEC \"-L~a/lib %{!static:-rpath=~a/lib \ +%{!static-libgcc:-rpath=~a/lib64 -rpath=~a/lib}} \" ~a~%" + libc libc out out suffix)) + (("#define STARTFILE_SPEC.*$" line) + (format #f "#define STANDARD_STARTFILE_PREFIX_1 \"~a/lib\" +#define STANDARD_STARTFILE_PREFIX_2 \"\" +~a~%" + libc line)))) + + ;; Don't retain a dependency on the build-time sed. + (substitute* "fixincludes/fixincl.x" + (("static char const sed_cmd_z\\[\\] =.*;") + "static char const sed_cmd_z[] = \"sed\";")))) + + (alist-cons-after + 'configure 'post-configure + (lambda _ + ;; Don't store configure flags, to avoid retaining references to + ;; build-time dependencies---e.g., `--with-ppl=/nix/store/xxx'. + (substitute* "Makefile" + (("^TOPLEVEL_CONFIGURE_ARGUMENTS=(.*)$" _ rest) + "TOPLEVEL_CONFIGURE_ARGUMENTS=\n"))) + (alist-replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (zero? + (system* "make" + ,(if stripped? + "install-strip" + "install")))) + %standard-phases)))))) + + (properties `((gcc-libc . ,(assoc-ref inputs "libc")))) + (synopsis "The GNU Compiler Collection") + (description + "The GNU Compiler Collection includes compiler front ends for C, C++, +Objective-C, Fortran, OpenMP for C/C++/Fortran, Java, and Ada, as well as +libraries for these languages (libstdc++, libgcj, libgomp,...). + +GCC development is a part of the GNU Project, aiming to improve the compiler +used in the GNU system including the GNU/Linux variant.") + (license gpl3+) + (home-page "http://gcc.gnu.org/")))) + +(define-public glibc + (package + (name "glibc") + (version "2.17") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/glibc/glibc-" + version ".tar.xz")) + (sha256 + (base32 + "0gmjnn4kma9vgizccw1jv979xw55a8n1nkk94gg0l3hy80vy6539")))) + (build-system gnu-build-system) + + ;; Glibc's refers to , for instance, so glibc + ;; users should automatically pull Linux headers as well. + (propagated-inputs `(("linux-headers" ,linux-libre-headers))) + + (arguments + `(#:out-of-source? #t + #:patches (list (assoc-ref %build-inputs "patch/ld.so.cache")) + #:configure-flags + (list "--enable-add-ons" + "--sysconfdir=/etc" + "--localedir=/var/run/current-system/sw/lib/locale" ; XXX + (string-append "--with-headers=" + (assoc-ref %build-inputs "linux-headers") + "/include") + + ;; The default is to assume a 2.4 Linux interface, but we'll + ;; always use something newer. See "kernel-features.h" in the + ;; GNU libc for details. + "--enable-kernel=2.6.30" + + ;; Use our Bash instead of /bin/sh. + (string-append "BASH_SHELL=" + (assoc-ref %build-inputs "bash") + "/bin/bash") + + ;; XXX: Work around "undefined reference to `__stack_chk_guard'". + "libc_cv_ssp=no") + + #:tests? #f ; XXX + #:phases (alist-cons-before + 'configure 'pre-configure + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin"))) + ;; Use `pwd', not `/bin/pwd'. + (substitute* "configure" + (("/bin/pwd") "pwd")) + + ;; Install the rpc data base file under `$out/etc/rpc'. + ;; FIXME: Use installFlags = [ "sysconfdir=$(out)/etc" ]; + (substitute* "sunrpc/Makefile" + (("^\\$\\(inst_sysconfdir\\)/rpc(.*)$" _ suffix) + (string-append out "/etc/rpc" suffix "\n")) + (("^install-others =.*$") + (string-append "install-others = " out "/etc/rpc\n"))) + + (substitute* "Makeconfig" + ;; According to + ;; , + ;; linking against libgcc_s is not needed with GCC + ;; 4.7.1. + ((" -lgcc_s") "")) + + ;; Copy a statically-linked Bash in the output, with + ;; no references to other store paths. + (mkdir-p bin) + (copy-file (string-append (assoc-ref inputs "static-bash") + "/bin/bash") + (string-append bin "/bash")) + (remove-store-references (string-append bin "/bash")) + (chmod (string-append bin "/bash") #o555) + + ;; Keep a symlink, for `patch-shebang' resolution. + (with-directory-excursion bin + (symlink "bash" "sh")) + + ;; Have `system' use that Bash. + (substitute* "sysdeps/posix/system.c" + (("#define[[:blank:]]+SHELL_PATH.*$") + (format #f "#define SHELL_PATH \"~a/bin/bash\"\n" + out))) + + ;; Same for `popen'. + (substitute* "libio/iopopen.c" + (("/bin/sh") + (string-append out "/bin/bash"))))) + %standard-phases))) + (inputs `(("patch/ld.so.cache" + ,(search-patch "glibc-no-ld-so-cache.patch")) + ("static-bash" ,(static-package bash-light)))) + (synopsis "The GNU C Library") + (description + "Any Unix-like operating system needs a C library: the library which +defines the \"system calls\" and other basic facilities such as open, malloc, +printf, exit... + +The GNU C library is used as the C library in the GNU system and most systems +with the Linux kernel.") + (license lgpl2.0+) + (home-page "http://www.gnu.org/software/libc/"))) + + +;;; +;;; Bootstrap packages. +;;; + +(define gnu-make-boot0 + (package-with-bootstrap-guile + (package (inherit gnu-make) + (name "make-boot0") + (location (source-properties->location (current-source-location))) + (arguments + `(#:guile ,%bootstrap-guile + #:implicit-inputs? #f + #:tests? #f ; cannot run "make check" + ,@(substitute-keyword-arguments (package-arguments gnu-make) + ((#:phases phases) + `(alist-replace + 'build (lambda _ + (zero? (system* "./build.sh"))) + (alist-replace + 'install (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin"))) + (mkdir-p bin) + (copy-file "make" + (string-append bin "/make")))) + ,phases)))))) + (inputs %bootstrap-inputs)))) + +(define diffutils-boot0 + (package-with-bootstrap-guile + (let ((p (package-with-explicit-inputs diffutils + `(("make" ,gnu-make-boot0) + ,@%bootstrap-inputs) + #:guile %bootstrap-guile))) + (package (inherit p) + (location (source-properties->location (current-source-location))) + (arguments `(#:tests? #f ; the test suite needs diffutils + ,@(package-arguments p))))))) + +(define findutils-boot0 + (package-with-bootstrap-guile + (package-with-explicit-inputs findutils + `(("make" ,gnu-make-boot0) + ("diffutils" ,diffutils-boot0) ; for tests + ,@%bootstrap-inputs) + (current-source-location) + #:guile %bootstrap-guile))) + + +(define %boot0-inputs + `(("make" ,gnu-make-boot0) + ("diffutils" ,diffutils-boot0) + ("findutils" ,findutils-boot0) + ,@%bootstrap-inputs)) + +(define* (nix-system->gnu-triplet system #:optional (vendor "unknown")) + "Return an a guess of the GNU triplet corresponding to Nix system +identifier SYSTEM." + (let* ((dash (string-index system #\-)) + (arch (substring system 0 dash)) + (os (substring system (+ 1 dash)))) + (string-append arch + "-" vendor "-" + (if (string=? os "linux") + "linux-gnu" + os)))) + +(define boot-triplet + ;; Return the triplet used to create the cross toolchain needed in the + ;; first bootstrapping stage. + (cut nix-system->gnu-triplet <> "guix")) + +;; Following Linux From Scratch, build a cross-toolchain in stage 0. That +;; toolchain actually targets the same OS and arch, but it has the advantage +;; of being independent of the libc and tools in %BOOTSTRAP-INPUTS, since +;; GCC-BOOT0 (below) is built without any reference to the target libc. + +(define binutils-boot0 + (package-with-bootstrap-guile + (package (inherit binutils) + (name "binutils-cross-boot0") + (arguments + (lambda (system) + `(#:guile ,%bootstrap-guile + #:implicit-inputs? #f + ,@(substitute-keyword-arguments (package-arguments binutils) + ((#:configure-flags cf) + `(list ,(string-append "--target=" (boot-triplet system)))))))) + (inputs %boot0-inputs)))) + +(define gcc-boot0 + (package-with-bootstrap-guile + (package (inherit gcc-4.7) + (name "gcc-cross-boot0") + (arguments + (lambda (system) + `(#:guile ,%bootstrap-guile + #:implicit-inputs? #f + #:modules ((guix build gnu-build-system) + (guix build utils) + (ice-9 regex) + (srfi srfi-1) + (srfi srfi-26)) + ,@(substitute-keyword-arguments ((package-arguments gcc-4.7) system) + ((#:configure-flags flags) + `(append (list ,(string-append "--target=" + (boot-triplet system)) + + ;; No libc yet. + "--without-headers" + + ;; Disable features not needed at this stage. + "--disable-shared" + "--enable-languages=c" + "--disable-libmudflap" + "--disable-libgomp" + "--disable-libssp" + "--disable-libquadmath" + "--disable-decimal-float") + (remove (cut string-match "--enable-languages.*" <>) + ,flags))) + ((#:phases phases) + `(alist-cons-after + 'unpack 'unpack-gmp&co + (lambda* (#:key inputs #:allow-other-keys) + (let ((gmp (assoc-ref %build-inputs "gmp-source")) + (mpfr (assoc-ref %build-inputs "mpfr-source")) + (mpc (assoc-ref %build-inputs "mpc-source"))) + + ;; To reduce the set of pre-built bootstrap inputs, build + ;; GMP & co. from GCC. + (for-each (lambda (source) + (or (zero? (system* "tar" "xvf" source)) + (error "failed to unpack tarball" + source))) + (list gmp mpfr mpc)) + + ;; Create symlinks like `gmp' -> `gmp-5.0.5'. + ,@(map (lambda (lib) + `(symlink ,(package-full-name lib) + ,(package-name lib))) + (list gmp mpfr mpc)) + + ;; MPFR headers/lib are found under $(MPFR)/src, but + ;; `configure' wrongfully tells MPC too look under + ;; $(MPFR), so fix that. + (substitute* "configure" + (("extra_mpc_mpfr_configure_flags(.+)--with-mpfr-include=([^/]+)/mpfr(.*)--with-mpfr-lib=([^ ]+)/mpfr" + _ equals include middle lib) + (string-append "extra_mpc_mpfr_configure_flags" equals + "--with-mpfr-include=" include + "/mpfr/src" middle + "--with-mpfr-lib=" lib + "/mpfr/src")) + (("gmpinc='-I([^ ]+)/mpfr -I([^ ]+)/mpfr" _ a b) + (string-append "gmpinc='-I" a "/mpfr/src " + "-I" b "/mpfr/src")) + (("gmplibs='-L([^ ]+)/mpfr" _ a) + (string-append "gmplibs='-L" a "/mpfr/src"))))) + (alist-cons-after + 'install 'symlink-libgcc_eh + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + ;; Glibc wants to link against libgcc_eh, so provide + ;; it. + (with-directory-excursion + (string-append out "/lib/gcc/" + ,(boot-triplet system) + "/" ,(package-version gcc-4.7)) + (symlink "libgcc.a" "libgcc_eh.a")))) + ,phases))))))) + + (inputs `(("gmp-source" ,(package-source gmp)) + ("mpfr-source" ,(package-source mpfr)) + ("mpc-source" ,(package-source mpc)) + ("binutils-cross" ,binutils-boot0) + + ;; Call it differently so that the builder can check whether + ;; the "libc" input is #f. + ("libc-native" ,@(assoc-ref %boot0-inputs "libc")) + ,@(alist-delete "libc" %boot0-inputs)))))) + +(define linux-libre-headers-boot0 + (package-with-bootstrap-guile + (package (inherit linux-libre-headers) + (arguments `(#:guile ,%bootstrap-guile + #:implicit-inputs? #f + ,@(package-arguments linux-libre-headers))) + (native-inputs + (let ((perl (package-with-explicit-inputs perl + %boot0-inputs + (current-source-location) + #:guile %bootstrap-guile))) + `(("perl" ,perl) + ,@%boot0-inputs)))))) + +(define %boot1-inputs + ;; 2nd stage inputs. + `(("gcc" ,gcc-boot0) + ("binutils-cross" ,binutils-boot0) + + ;; Keep "binutils" here because the cross-gcc invokes `as', not the + ;; cross-`as'. + ,@%boot0-inputs)) + +(define glibc-final-with-bootstrap-bash + ;; The final libc, "cross-built". If everything went well, the resulting + ;; store path has no dependencies. Actually, the really-final libc is + ;; built just below; the only difference is that this one uses the + ;; bootstrap Bash. + (package-with-bootstrap-guile + (package (inherit glibc) + (name "glibc-intermediate") + (arguments + (lambda (system) + `(#:guile ,%bootstrap-guile + #:implicit-inputs? #f + + ,@(substitute-keyword-arguments (package-arguments glibc) + ((#:configure-flags flags) + `(append (list ,(string-append "--host=" (boot-triplet system)) + ,(string-append "--build=" + (nix-system->gnu-triplet system)) + + ;; Build Sun/ONC RPC support. In particular, + ;; install rpc/*.h. + "--enable-obsolete-rpc") + ,flags)))))) + (propagated-inputs `(("linux-headers" ,linux-libre-headers-boot0))) + (inputs + `( ;; A native GCC is needed to build `cross-rpcgen'. + ("native-gcc" ,@(assoc-ref %boot0-inputs "gcc")) + + ;; Here, we use the bootstrap Bash, which is not satisfactory + ;; because we don't want to depend on bootstrap tools. + ("static-bash" ,@(assoc-ref %boot0-inputs "bash")) + + ,@%boot1-inputs + ,@(alist-delete "static-bash" + (package-inputs glibc))))))) ; patches + +(define (cross-gcc-wrapper gcc binutils glibc bash) + "Return a wrapper for the pseudo-cross toolchain GCC/BINUTILS/GLIBC +that makes it available under the native tool names." + (package (inherit gcc-4.7) + (name (string-append (package-name gcc) "-wrapped")) + (source #f) + (build-system trivial-build-system) + (arguments + (lambda (system) + `(#:guile ,%bootstrap-guile + #:modules ((guix build utils)) + #:builder (begin + (use-modules (guix build utils)) + + (let* ((binutils (assoc-ref %build-inputs "binutils")) + (gcc (assoc-ref %build-inputs "gcc")) + (libc (assoc-ref %build-inputs "libc")) + (bash (assoc-ref %build-inputs "bash")) + (out (assoc-ref %outputs "out")) + (bindir (string-append out "/bin")) + (triplet ,(boot-triplet system))) + (mkdir-p bindir) + (with-directory-excursion bindir + (for-each (lambda (tool) + (symlink (string-append binutils "/bin/" + triplet "-" tool) + tool)) + '("ar" "ranlib")) + + ;; GCC-BOOT0 is a libc-less cross-compiler, so it + ;; needs to be told where to find the crt files and + ;; the dynamic linker. + (call-with-output-file "gcc" + (lambda (p) + (format p "#!~a/bin/bash +exec ~a/bin/~a-gcc -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%" + bash + gcc triplet + libc libc + ,(glibc-dynamic-linker system)))) + + (chmod "gcc" #o555))))))) + (native-inputs + `(("binutils" ,binutils) + ("gcc" ,gcc) + ("libc" ,glibc) + ("bash" ,bash))) + (inputs '()))) + +(define static-bash-for-glibc + ;; A statically-linked Bash to be embedded in GLIBC-FINAL, for use by + ;; system(3) & co. + (let* ((gcc (cross-gcc-wrapper gcc-boot0 binutils-boot0 + glibc-final-with-bootstrap-bash + (car (assoc-ref %boot1-inputs "bash")))) + (bash (package (inherit bash-light) + (arguments + (lambda (system) + `(#:guile ,%bootstrap-guile + ,@(package-arguments bash-light))))))) + (package-with-bootstrap-guile + (package-with-explicit-inputs (static-package bash) + `(("gcc" ,gcc) + ("libc" ,glibc-final-with-bootstrap-bash) + ,@(fold alist-delete %boot1-inputs + '("gcc" "libc"))) + (current-source-location))))) + +(define-public glibc-final + ;; The final glibc, which embeds the statically-linked Bash built above. + (package (inherit glibc-final-with-bootstrap-bash) + (name "glibc") + (inputs `(("static-bash" ,static-bash-for-glibc) + ,@(alist-delete + "static-bash" + (package-inputs glibc-final-with-bootstrap-bash)))))) + +(define gcc-boot0-wrapped + ;; Make the cross-tools GCC-BOOT0 and BINUTILS-BOOT0 available under the + ;; non-cross names. + (cross-gcc-wrapper gcc-boot0 binutils-boot0 glibc-final + (car (assoc-ref %boot1-inputs "bash")))) + +(define %boot2-inputs + ;; 3rd stage inputs. + `(("libc" ,glibc-final) + ("gcc" ,gcc-boot0-wrapped) + ,@(fold alist-delete %boot1-inputs '("libc" "gcc")))) + +(define-public binutils-final + (package-with-bootstrap-guile + (package (inherit binutils) + (arguments + (lambda (system) + `(#:guile ,%bootstrap-guile + #:implicit-inputs? #f + ,@(package-arguments binutils)))) + (inputs %boot2-inputs)))) + +(define-public gcc-final + ;; The final GCC. + (package (inherit gcc-boot0) + (name "gcc") + (arguments + (lambda (system) + `(#:guile ,%bootstrap-guile + #:implicit-inputs? #f + + ;; Build again GMP & co. within GCC's build process, because it's hard + ;; to do outside (because GCC-BOOT0 is a cross-compiler, and thus + ;; doesn't honor $LIBRARY_PATH, which breaks `gnu-build-system'.) + ,@(substitute-keyword-arguments ((package-arguments gcc-boot0) system) + ((#:configure-flags boot-flags) + (let loop ((args ((package-arguments gcc-4.7) system))) + (match args + ((#:configure-flags normal-flags _ ...) + normal-flags) + ((_ rest ...) + (loop rest))))) + ((#:phases phases) + `(alist-delete 'symlink-libgcc_eh ,phases)))))) + + (inputs `(("gmp-source" ,(package-source gmp)) + ("mpfr-source" ,(package-source mpfr)) + ("mpc-source" ,(package-source mpc)) + ("binutils" ,binutils-final) + ,@%boot2-inputs)))) + +(define ld-wrapper-boot3 + ;; A linker wrapper that uses the bootstrap Guile. + (package + (name "ld-wrapper-boot3") + (version "0") + (source #f) + (build-system trivial-build-system) + (inputs `(("binutils" ,binutils-final) + ("guile" ,%bootstrap-guile) + ("bash" ,@(assoc-ref %boot2-inputs "bash")) + ("wrapper" ,(search-path %load-path + "gnu/packages/ld-wrapper.scm")))) + (arguments + `(#:guile ,%bootstrap-guile + #:modules ((guix build utils)) + #:builder (begin + (use-modules (guix build utils) + (system base compile)) + + (let* ((out (assoc-ref %outputs "out")) + (bin (string-append out "/bin")) + (ld (string-append bin "/ld")) + (go (string-append bin "/ld.go"))) + + (setvbuf (current-output-port) _IOLBF) + (format #t "building ~s/bin/ld wrapper in ~s~%" + (assoc-ref %build-inputs "binutils") + out) + + (mkdir-p bin) + (copy-file (assoc-ref %build-inputs "wrapper") ld) + (substitute* ld + (("@GUILE@") + (string-append (assoc-ref %build-inputs "guile") + "/bin/guile")) + (("@BASH@") + (string-append (assoc-ref %build-inputs "bash") + "/bin/bash")) + (("@LD@") + (string-append (assoc-ref %build-inputs "binutils") + "/bin/ld"))) + (chmod ld #o555) + (compile-file ld #:output-file go))))) + (synopsis "The linker wrapper") + (description + "The linker wrapper (or `ld-wrapper') wraps the linker to add any +missing `-rpath' flags, and to detect any misuse of libraries outside of the +store.") + (home-page #f) + (license gpl3+))) + +(define %boot3-inputs + ;; 4th stage inputs. + `(("gcc" ,gcc-final) + ("ld-wrapper" ,ld-wrapper-boot3) + ,@(alist-delete "gcc" %boot2-inputs))) + +(define-public bash-final + ;; Link with `-static-libgcc' to make sure we don't retain a reference + ;; to the bootstrap GCC. + (package-with-bootstrap-guile + (package-with-explicit-inputs (static-libgcc-package bash) + %boot3-inputs + (current-source-location) + #:guile %bootstrap-guile))) + +(define %boot4-inputs + ;; Now use the final Bash. + `(("bash" ,bash-final) + ,@(alist-delete "bash" %boot3-inputs))) + +(define-public guile-final + (package-with-bootstrap-guile + (package-with-explicit-inputs guile-2.0/fixed + %boot4-inputs + (current-source-location) + #:guile %bootstrap-guile))) + +(define-public ld-wrapper + ;; The final `ld' wrapper, which uses the final Guile. + (package (inherit ld-wrapper-boot3) + (name "ld-wrapper") + (inputs `(("guile" ,guile-final) + ("bash" ,bash-final) + ,@(fold alist-delete (package-inputs ld-wrapper-boot3) + '("guile" "bash")))))) + +(define-public %final-inputs + ;; Final derivations used as implicit inputs by `gnu-build-system'. + (let ((finalize (cut package-with-explicit-inputs <> %boot4-inputs + (current-source-location)))) + `(,@(map (match-lambda + ((name package) + (list name (finalize package)))) + `(("tar" ,tar) + ("gzip" ,gzip) + ("bzip2" ,bzip2) + ("xz" ,xz) + ("diffutils" ,diffutils) + ("patch" ,patch) + ("coreutils" ,coreutils) + ("sed" ,sed) + ("grep" ,grep) + ("findutils" ,findutils) + ("gawk" ,gawk) + ("make" ,gnu-make))) + ("bash" ,bash-final) + ("ld-wrapper" ,ld-wrapper) + ("binutils" ,binutils-final) + ("gcc" ,gcc-final) + ("libc" ,glibc-final)))) + +;;; base.scm ends here diff --git a/gnu/packages/bash.scm b/gnu/packages/bash.scm new file mode 100644 index 0000000000..d74315ad18 --- /dev/null +++ b/gnu/packages/bash.scm @@ -0,0 +1,110 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Ludovic Courtès +;;; +;;; 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 . + +(define-module (gnu packages bash) + #:use-module (guix licenses) + #:use-module (gnu packages ncurses) + #:use-module (gnu packages readline) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix utils) + #:use-module (guix build-system gnu)) + +(define-public bash + (let ((cppflags (string-join '("-DSYS_BASHRC='\"/etc/bashrc\"'" + "-DSYS_BASH_LOGOUT='\"/etc/bash_logout\"'" + "-DDEFAULT_PATH_VALUE='\"/no-such-path\"'" + "-DSTANDARD_UTILS_PATH='\"/no-such-path\"'" + "-DNON_INTERACTIVE_LOGIN_SHELLS" + "-DSSH_SOURCE_BASHRC") + " ")) + (post-install-phase + '(lambda* (#:key outputs #:allow-other-keys) + ;; Add a `bash' -> `sh' link. + (let ((out (assoc-ref outputs "out"))) + (with-directory-excursion (string-append out "/bin") + (symlink "bash" "sh")))))) + (package + (name "bash") + (version "4.2") + (source (origin + (method url-fetch) + (uri (string-append + "mirror://gnu/bash/bash-" version ".tar.gz")) + (sha256 + (base32 + "1n5kbblp5ykbz5q8aq88lsif2z0gnvddg9babk33024wxiwi2ym2")))) + (build-system gnu-build-system) + (inputs `(("readline" ,readline) + ("ncurses" ,ncurses))) ; TODO: add texinfo + (arguments + `(#:configure-flags `("--with-installed-readline" + ,,(string-append "CPPFLAGS=" cppflags) + ,(string-append + "LDFLAGS=-Wl,-rpath -Wl," + (assoc-ref %build-inputs "readline") + "/lib" + " -Wl,-rpath -Wl," + (assoc-ref %build-inputs "ncurses") + "/lib")) + + ;; Bash is reportedly not parallel-safe. See, for instance, + ;; and + ;; . + #:parallel-build? #f + #:parallel-tests? #f + + ;; XXX: The tests have a lot of hard-coded paths, so disable them + ;; for now. + #:tests? #f + + #:phases (alist-cons-after 'install 'post-install + ,post-install-phase + %standard-phases))) + (synopsis "GNU Bourne-Again Shell") + (description + "Bash is the shell, or command language interpreter, that will appear in +the GNU operating system. Bash is an sh-compatible shell that incorporates +useful features from the Korn shell (ksh) and C shell (csh). It is intended +to conform to the IEEE POSIX P1003.2/ISO 9945.2 Shell and Tools standard. It +offers functional improvements over sh for both programming and interactive +use. In addition, most sh scripts can be run by Bash without +modification.") + (license gpl3+) + (home-page "http://www.gnu.org/software/bash/")))) + +(define-public bash-light + ;; A stripped-down Bash for non-interactive use. + (package (inherit bash) + (name "bash-light") + (inputs '()) ; no readline, no curses + (arguments + (let ((args `(#:modules ((guix build gnu-build-system) + (guix build utils) + (srfi srfi-1) + (srfi srfi-26)) + ,@(package-arguments bash)))) + (substitute-keyword-arguments args + ((#:configure-flags flags) + `(list "--without-bash-malloc" + "--disable-readline" + "--disable-history" + "--disable-help-builtin" + "--disable-progcomp" + "--disable-net-redirections" + "--disable-nls"))))))) diff --git a/gnu/packages/bdb.scm b/gnu/packages/bdb.scm new file mode 100644 index 0000000000..1be57b302a --- /dev/null +++ b/gnu/packages/bdb.scm @@ -0,0 +1,57 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Andreas Enge +;;; +;;; 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 . + +(define-module (gnu 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) + (string-append "CONFIG_SHELL=" (which "bash")) + (string-append "SHELL=" (which "bash")))))) + %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/gnu/packages/bdw-gc.scm b/gnu/packages/bdw-gc.scm new file mode 100644 index 0000000000..65c2fd99ce --- /dev/null +++ b/gnu/packages/bdw-gc.scm @@ -0,0 +1,60 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Ludovic Courtès +;;; +;;; 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 . + +(define-module (gnu packages bdw-gc) + #:use-module (guix licenses) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix utils) + #:use-module (guix build-system gnu)) + +(define-public libgc + (package + (name "libgc") + (version "7.2alpha6") + (source (origin + (method url-fetch) + (uri (string-append + "http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/gc-" + version ".tar.gz")) + (sha256 + (base32 + "05jwadjbrv8pr7z9cb4miskicxqpxm0pca4h2rg5cgbpajr2bx7b")))) + (build-system gnu-build-system) + (synopsis "The Boehm-Demers-Weiser conservative garbage collector +for C and C++") + (description + "The Boehm-Demers-Weiser conservative garbage collector can be used +as a garbage collecting replacement for C malloc or C++ new. It allows +you to allocate memory basically as you normally would, without +explicitly deallocating memory that is no longer useful. The collector +automatically recycles memory when it determines that it can no longer +be otherwise accessed. + +The collector is also used by a number of programming language +implementations that either use C as intermediate code, want to +facilitate easier interoperation with C libraries, or just prefer the +simple collector interface. + +Alternatively, the garbage collector may be used as a leak detector for +C or C++ programs, though that is not its primary goal.") + (home-page "http://www.hpl.hp.com/personal/Hans_Boehm/gc/") + + ;; permissive X11-style license: + ;; http://www.hpl.hp.com/personal/Hans_Boehm/gc/license.txt + (license x11))) diff --git a/gnu/packages/bison.scm b/gnu/packages/bison.scm new file mode 100644 index 0000000000..95ffb17522 --- /dev/null +++ b/gnu/packages/bison.scm @@ -0,0 +1,57 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Ludovic Courtès +;;; +;;; 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 . + +(define-module (gnu packages bison) + #:use-module (guix licenses) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu) + #:use-module (gnu packages m4) + #:use-module (gnu packages perl)) + +(define-public bison + (package + (name "bison") + (version "2.6.1") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://gnu/bison/bison-" + version ".tar.xz")) + (sha256 + (base32 + "0y9svfkbw8jc8yv280hqzilpvlwg60gayck83jj98djmzaxr1w86")))) + (build-system gnu-build-system) + (inputs `(("perl" ,perl))) + (propagated-inputs `(("m4" ,m4))) + (home-page "http://www.gnu.org/software/bison/") + (synopsis + "GNU Bison, a Yacc-compatible parser generator") + (description + "Bison is a general-purpose parser generator that converts an +annotated context-free grammar into an LALR(1) or GLR parser for +that grammar. Once you are proficient with Bison, you can use +it to develop a wide range of language parsers, from those used +in simple desk calculators to complex programming languages. + +Bison is upward compatible with Yacc: all properly-written Yacc +grammars ought to work with Bison with no change. Anyone +familiar with Yacc should be able to use Bison with little +trouble. You need to be fluent in C or C++ programming in order +to use Bison.") + (license gpl3+))) diff --git a/gnu/packages/bootstrap.scm b/gnu/packages/bootstrap.scm new file mode 100644 index 0000000000..6cad933644 --- /dev/null +++ b/gnu/packages/bootstrap.scm @@ -0,0 +1,378 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012, 2013 Ludovic Courtès +;;; +;;; 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 . + +(define-module (gnu packages bootstrap) + #:use-module (guix licenses) + #:use-module (distro) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system) + #:use-module (guix build-system gnu) + #:use-module (guix build-system trivial) + #:use-module ((guix store) #:select (add-to-store add-text-to-store)) + #:use-module ((guix derivations) #:select (derivation)) + #:use-module (guix utils) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-26) + #:use-module (ice-9 match) + #:export (bootstrap-origin + package-with-bootstrap-guile + glibc-dynamic-linker + + %bootstrap-guile + %bootstrap-coreutils&co + %bootstrap-binutils + %bootstrap-gcc + %bootstrap-glibc + %bootstrap-inputs)) + +;;; Commentary: +;;; +;;; Pre-built packages that are used to bootstrap the +;;; distribution--i.e., to build all the core packages from scratch. +;;; +;;; Code: + + + +;;; +;;; Helper procedures. +;;; + +(define (bootstrap-origin source) + "Return a variant of SOURCE, an instance, whose method uses +%BOOTSTRAP-GUILE to do its job." + (define (boot fetch) + (lambda* (store url hash-algo hash + #:optional name #:key system) + (fetch store url hash-algo hash + #:guile %bootstrap-guile + #:system system))) + + (let ((orig-method (origin-method source))) + (origin (inherit source) + (method (cond ((eq? orig-method url-fetch) + (boot url-fetch)) + (else orig-method)))))) + +(define (package-from-tarball name* source* program-to-test description*) + "Return a package that correspond to the extraction of SOURCE*. +PROGRAM-TO-TEST is a program to run after extraction of SOURCE*, to +check whether everything is alright." + (package + (name name*) + (version "0") + (source #f) + (build-system trivial-build-system) + (arguments + `(#:guile ,%bootstrap-guile + #:modules ((guix build utils)) + #:builder + (let ((out (assoc-ref %outputs "out")) + (tar (assoc-ref %build-inputs "tar")) + (xz (assoc-ref %build-inputs "xz")) + (tarball (assoc-ref %build-inputs "tarball"))) + (use-modules (guix build utils)) + + (mkdir out) + (copy-file tarball "binaries.tar.xz") + (system* xz "-d" "binaries.tar.xz") + (let ((builddir (getcwd))) + (with-directory-excursion out + (and (zero? (system* tar "xvf" + (string-append builddir "/binaries.tar"))) + (zero? (system* (string-append "bin/" ,program-to-test) + "--version")))))))) + (inputs + `(("tar" ,(lambda (system) + (search-bootstrap-binary "tar" system))) + ("xz" ,(lambda (system) + (search-bootstrap-binary "xz" system))) + ("tarball" ,(lambda (system) + (bootstrap-origin (source* system)))))) + (synopsis description*) + (description #f) + (home-page #f))) + +(define package-with-bootstrap-guile + (memoize + (lambda (p) + "Return a variant of P such that all its origins are fetched with +%BOOTSTRAP-GUILE." + (define rewritten-input + (match-lambda + ((name (? origin? o)) + `(,name ,(bootstrap-origin o))) + ((name (? package? p) sub-drvs ...) + `(,name ,(package-with-bootstrap-guile p) ,@sub-drvs)) + (x x))) + + (package (inherit p) + (source (match (package-source p) + ((? origin? o) (bootstrap-origin o)) + (s s))) + (inputs (map rewritten-input + (package-inputs p))) + (native-inputs (map rewritten-input + (package-native-inputs p))) + (propagated-inputs (map rewritten-input + (package-propagated-inputs p))))))) + +(define (glibc-dynamic-linker system) + "Return the name of Glibc's dynamic linker for SYSTEM." + (cond ((string=? system "x86_64-linux") "/lib/ld-linux-x86-64.so.2") + ((string=? system "i686-linux") "/lib/ld-linux.so.2") + (else (error "dynamic linker name not known for this system" + system)))) + + +;;; +;;; Bootstrap packages. +;;; + +(define %bootstrap-guile + ;; The Guile used to run the build scripts of the initial derivations. + ;; It is just unpacked from a tarball containing a pre-built binary. + ;; This is typically built using %GUILE-BOOTSTRAP-TARBALL below. + ;; + ;; XXX: Would need libc's `libnss_files2.so' for proper `getaddrinfo' + ;; support (for /etc/services). + (let ((raw (build-system + (name "raw") + (description "Raw build system with direct store access") + (build (lambda* (store name source inputs #:key outputs system) + (define (->store file) + (add-to-store store file #t #t "sha256" + (or (search-bootstrap-binary file + system) + (error "bootstrap binary not found" + file system)))) + + (let* ((tar (->store "tar")) + (xz (->store "xz")) + (mkdir (->store "mkdir")) + (bash (->store "bash")) + (guile (->store "guile-2.0.7.tar.xz")) + (builder + (add-text-to-store store + "build-bootstrap-guile.sh" + (format #f " +echo \"unpacking bootstrap Guile to '$out'...\" +~a $out +cd $out +~a -dc < ~a | ~a xv + +# Sanity check. +$out/bin/guile --version~%" + mkdir xz guile tar) + (list mkdir xz guile tar)))) + (derivation store name system + bash `(,builder) '() + `((,bash) (,builder))))))))) + (package + (name "guile-bootstrap") + (version "2.0") + (source #f) + (build-system raw) + (synopsis "Bootstrap Guile") + (description "Pre-built Guile for bootstrapping purposes.") + (home-page #f) + (license lgpl3+)))) + +(define %bootstrap-base-urls + ;; This is where the initial binaries come from. + '("http://alpha.gnu.org/gnu/guix/bootstrap" + "http://www.fdn.fr/~lcourtes/software/guix/packages")) + +(define %bootstrap-coreutils&co + (package-from-tarball "bootstrap-binaries" + (lambda (system) + (origin + (method url-fetch) + (uri (map (cut string-append <> "/" system + "/20130105/static-binaries.tar.xz") + %bootstrap-base-urls)) + (sha256 + (match system + ("x86_64-linux" + (base32 + "0md23alzy6nc5f16pric7mkagczdzr8xbh074sb3rjzrls06j1ls")) + ("i686-linux" + (base32 + "0nzj1lmm9b94g7k737cr4w1dv282w5nmhb53238ikax9r6pkc0yb")))))) + "true" ; the program to test + "Bootstrap binaries of Coreutils, Awk, etc.")) + +(define %bootstrap-binutils + (package-from-tarball "binutils-bootstrap" + (lambda (system) + (origin + (method url-fetch) + (uri (map (cut string-append <> "/" system + "/20130105/binutils-2.22.tar.xz") + %bootstrap-base-urls)) + (sha256 + (match system + ("x86_64-linux" + (base32 + "1ffmk2yy2pxvkqgzrkzp3s4jpn4qaaksyk3b5nsc5cjwfm7qkgzh")) + ("i686-linux" + (base32 + "1rafk6aq4sayvv3r3d2khn93nkyzf002xzh0xadlyci4mznr6b0a")))))) + "ld" ; the program to test + "Bootstrap binaries of the GNU Binutils")) + +(define %bootstrap-glibc + ;; The initial libc. + (package + (name "glibc-bootstrap") + (version "0") + (source #f) + (build-system trivial-build-system) + (arguments + `(#:guile ,%bootstrap-guile + #:modules ((guix build utils)) + #:builder + (let ((out (assoc-ref %outputs "out")) + (tar (assoc-ref %build-inputs "tar")) + (xz (assoc-ref %build-inputs "xz")) + (tarball (assoc-ref %build-inputs "tarball"))) + (use-modules (guix build utils)) + + (mkdir out) + (copy-file tarball "binaries.tar.xz") + (system* xz "-d" "binaries.tar.xz") + (let ((builddir (getcwd))) + (with-directory-excursion out + (system* tar "xvf" + (string-append builddir + "/binaries.tar")) + (chmod "lib" #o755) + + ;; Patch libc.so so it refers to the right path. + (substitute* "lib/libc.so" + (("/[^ ]+/lib/(libc|ld)" _ prefix) + (string-append out "/lib/" prefix)))))))) + (inputs + `(("tar" ,(lambda (system) + (search-bootstrap-binary "tar" system))) + ("xz" ,(lambda (system) + (search-bootstrap-binary "xz" system))) + ("tarball" ,(lambda (system) + (bootstrap-origin + (origin + (method url-fetch) + (uri (map (cut string-append <> "/" system + "/20130105/glibc-2.17.tar.xz") + %bootstrap-base-urls)) + (sha256 + (match system + ("x86_64-linux" + (base32 + "18kv1z9d8dr1j3hm9w7663kchqw9p6rsx11n1m143jgba2jz6jy3")) + ("i686-linux" + (base32 + "08hv8i0axwnihrcgbz19x0a7s6zyv3yx38x8r29liwl8h82x9g88")))))))))) + (synopsis "Bootstrap binaries and headers of the GNU C Library") + (description #f) + (home-page #f))) + +(define %bootstrap-gcc + ;; The initial GCC. Uses binaries from a tarball typically built by + ;; %GCC-BOOTSTRAP-TARBALL. + (package + (name "gcc-bootstrap") + (version "0") + (source #f) + (build-system trivial-build-system) + (arguments + (lambda (system) + `(#:guile ,%bootstrap-guile + #:modules ((guix build utils)) + #:builder + (let ((out (assoc-ref %outputs "out")) + (tar (assoc-ref %build-inputs "tar")) + (xz (assoc-ref %build-inputs "xz")) + (bash (assoc-ref %build-inputs "bash")) + (libc (assoc-ref %build-inputs "libc")) + (tarball (assoc-ref %build-inputs "tarball"))) + (use-modules (guix build utils) + (ice-9 popen)) + + (mkdir out) + (copy-file tarball "binaries.tar.xz") + (system* xz "-d" "binaries.tar.xz") + (let ((builddir (getcwd)) + (bindir (string-append out "/bin"))) + (with-directory-excursion out + (system* tar "xvf" + (string-append builddir "/binaries.tar"))) + + (with-directory-excursion bindir + (chmod "." #o755) + (rename-file "gcc" ".gcc-wrapped") + (call-with-output-file "gcc" + (lambda (p) + (format p "#!~a +exec ~a/bin/.gcc-wrapped -B~a/lib \ + -Wl,-rpath -Wl,~a/lib \ + -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%" + bash + out libc libc libc + ,(glibc-dynamic-linker system)))) + + (chmod "gcc" #o555))))))) + (inputs + `(("tar" ,(lambda (system) + (search-bootstrap-binary "tar" system))) + ("xz" ,(lambda (system) + (search-bootstrap-binary "xz" system))) + ("bash" ,(lambda (system) + (search-bootstrap-binary "bash" system))) + ("libc" ,%bootstrap-glibc) + ("tarball" ,(lambda (system) + (bootstrap-origin + (origin + (method url-fetch) + (uri (map (cut string-append <> "/" system + "/20130105/gcc-4.7.2.tar.xz") + %bootstrap-base-urls)) + (sha256 + (match system + ("x86_64-linux" + (base32 + "1x1p7han5crnbw906iwdifykr6grzm0w27dy9gz75j0q1b32i4px")) + ("i686-linux" + (base32 + "06wqs0xxnpw3hn0xjb4c9cs0899p1xwkcysa2rvzhvpra0c5vsg2")))))))))) + (synopsis "Bootstrap binaries of the GNU Compiler Collection") + (description #f) + (home-page #f))) + +(define %bootstrap-inputs + ;; The initial, pre-built inputs. From now on, we can start building our + ;; own packages. + `(("libc" ,%bootstrap-glibc) + ("gcc" ,%bootstrap-gcc) + ("binutils" ,%bootstrap-binutils) + ("coreutils&co" ,%bootstrap-coreutils&co) + + ;; In gnu-build-system.scm, we rely on the availability of Bash. + ("bash" ,%bootstrap-coreutils&co))) + +;;; bootstrap.scm ends here diff --git a/gnu/packages/bootstrap/i686-linux/bash b/gnu/packages/bootstrap/i686-linux/bash new file mode 100755 index 0000000000..9882d4adc7 Binary files /dev/null and b/gnu/packages/bootstrap/i686-linux/bash differ diff --git a/gnu/packages/bootstrap/i686-linux/mkdir b/gnu/packages/bootstrap/i686-linux/mkdir new file mode 100755 index 0000000000..0ddab232b7 Binary files /dev/null and b/gnu/packages/bootstrap/i686-linux/mkdir differ diff --git a/gnu/packages/bootstrap/i686-linux/tar b/gnu/packages/bootstrap/i686-linux/tar new file mode 100755 index 0000000000..6bee702cf5 Binary files /dev/null and b/gnu/packages/bootstrap/i686-linux/tar differ diff --git a/gnu/packages/bootstrap/i686-linux/xz b/gnu/packages/bootstrap/i686-linux/xz new file mode 100755 index 0000000000..5a126e4fc5 Binary files /dev/null and b/gnu/packages/bootstrap/i686-linux/xz differ diff --git a/gnu/packages/bootstrap/x86_64-linux/bash b/gnu/packages/bootstrap/x86_64-linux/bash new file mode 100755 index 0000000000..3b0227fbb1 Binary files /dev/null and b/gnu/packages/bootstrap/x86_64-linux/bash differ diff --git a/gnu/packages/bootstrap/x86_64-linux/mkdir b/gnu/packages/bootstrap/x86_64-linux/mkdir new file mode 100755 index 0000000000..7207ad8a46 Binary files /dev/null and b/gnu/packages/bootstrap/x86_64-linux/mkdir differ diff --git a/gnu/packages/bootstrap/x86_64-linux/tar b/gnu/packages/bootstrap/x86_64-linux/tar new file mode 100755 index 0000000000..9104da7b53 Binary files /dev/null and b/gnu/packages/bootstrap/x86_64-linux/tar differ diff --git a/gnu/packages/bootstrap/x86_64-linux/xz b/gnu/packages/bootstrap/x86_64-linux/xz new file mode 100755 index 0000000000..488e319b37 Binary files /dev/null and b/gnu/packages/bootstrap/x86_64-linux/xz differ diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm new file mode 100644 index 0000000000..ec2997cbe6 --- /dev/null +++ b/gnu/packages/check.scm @@ -0,0 +1,48 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Nikita Karetnikov +;;; +;;; 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 . + +(define-module (gnu 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/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/gnu/packages/compression.scm b/gnu/packages/compression.scm new file mode 100644 index 0000000000..dc00f323ce --- /dev/null +++ b/gnu/packages/compression.scm @@ -0,0 +1,200 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Ludovic Courtès +;;; +;;; 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 . + +(define-module (gnu packages compression) + #:use-module ((guix licenses) + #:renamer (symbol-prefix-proc 'license:)) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu)) + +(define-public zlib + (package + (name "zlib") + (version "1.2.7") + (source + (origin + (method url-fetch) + (uri (string-append "http://zlib.net/zlib-" + version ".tar.gz")) + (sha256 + (base32 + "1i96gsdvxqb6skp9a58bacf1wxamwi9m9pg4yn7cpf7g7239r77s")))) + (build-system gnu-build-system) + (arguments + `(#:phases (alist-replace + 'configure + (lambda* (#:key outputs #:allow-other-keys) + ;; Zlib's home-made `configure' doesn't fails when passed + ;; extra flags like `--enable-fast-install', so we need to + ;; invoke it with just what it understand. + (let ((out (assoc-ref outputs "out"))) + (zero? (system* "./configure" + (string-append "--prefix=" out))))) + %standard-phases))) + (home-page "http://zlib.net/") + (synopsis "The zlib compression library") + (description + "zlib is designed to be a free, general-purpose, legally unencumbered -- +that is, not covered by any patents -- lossless data-compression library for +use on virtually any computer hardware and operating system. The zlib data +format is itself portable across platforms. Unlike the LZW compression method +used in Unix compress(1) and in the GIF image format, the compression method +currently used in zlib essentially never expands the data. (LZW can double or +triple the file size in extreme cases.) zlib's memory footprint is also +independent of the input data and can be reduced, if necessary, at some cost +in compression.") + (license license:zlib))) + +(define-public gzip + (package + (name "gzip") + (version "1.5") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/gzip/gzip-" + version ".tar.gz")) + (sha256 + (base32 + "18rm80kar7n016g8bsyy1a3zk50i2826xdgs874yh64rzj7nxmdm")))) + (build-system gnu-build-system) + (synopsis "Gzip, the GNU zip compression program") + (arguments + ;; FIXME: The test suite wants `less', and optionally Perl. + '(#:tests? #f)) + (description + "gzip (GNU zip) is a popular data compression program written by Jean-loup +Gailly for the GNU project. Mark Adler wrote the decompression part. + +We developed this program as a replacement for compress because of the Unisys +and IBM patents covering the LZW algorithm used by compress. These patents +made it impossible for us to use compress, and we needed a replacement. The +superior compression ratio of gzip is just a bonus.") + (license license:gpl3+) + (home-page "http://www.gnu.org/software/gzip/"))) + +(define-public bzip2 + (let ((fix-man-dir + ;; Move man pages to $out/share/. + '(lambda* (#:key outputs #:allow-other-keys) + (with-directory-excursion (assoc-ref outputs "out") + (mkdir "share") + (rename-file "man" "share")))) + (build-shared-lib + ;; Build a shared library. + '(lambda* (#:key inputs #:allow-other-keys) + (patch-makefile-SHELL "Makefile-libbz2_so") + (zero? (system* "make" "-f" "Makefile-libbz2_so")))) + (install-shared-lib + '(lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (libdir (string-append out "/lib"))) + (for-each (lambda (file) + (let ((base (basename file))) + (format #t "installing `~a' to `~a'~%" + base libdir) + (copy-file file + (string-append libdir "/" base)))) + (find-files "." "^libbz2\\.so")))))) + (package + (name "bzip2") + (version "1.0.6") + (source (origin + (method url-fetch) + (uri (string-append "http://www.bzip.org/" version "/bzip2-" + version ".tar.gz")) + (sha256 + (base32 + "1kfrc7f0ja9fdn6j1y6yir6li818npy6217hvr3wzmnmzhs8z152")))) + (build-system gnu-build-system) + (arguments + `(#:modules ((guix build gnu-build-system) + (guix build utils) + (srfi srfi-1)) + #:phases + (alist-cons-before + 'build 'build-shared-lib ,build-shared-lib + (alist-cons-after + 'install 'fix-man-dir ,fix-man-dir + (alist-cons-after + 'install 'install-shared-lib ,install-shared-lib + (alist-delete 'configure %standard-phases)))) + #:make-flags (list (string-append "PREFIX=" + (assoc-ref %outputs "out"))))) + (synopsis "high-quality data compression program") + (description + "bzip2 is a freely available, patent free (see below), high-quality data +compressor. It typically compresses files to within 10% to 15% of the best +available techniques (the PPM family of statistical compressors), whilst +being around twice as fast at compression and six times faster at +decompression.") + (license (license:bsd-style "file://LICENSE" + "See LICENSE in the distribution.")) + (home-page "http://www.bzip.org/")))) + +(define-public xz + (package + (name "xz") + (version "5.0.4") + (source (origin + (method url-fetch) + (uri (string-append "http://tukaani.org/xz/xz-" version + ".tar.gz")) + (sha256 + (base32 + "1dl35ca8fdss9z2d6y234gxh24ixq904xksizrjmjr5dimwhax6n")))) + (build-system gnu-build-system) + (synopsis + "XZ, general-purpose data compression software, successor of LZMA") + (description + "XZ Utils is free general-purpose data compression software with high +compression ratio. XZ Utils were written for POSIX-like systems, but also +work on some not-so-POSIX systems. XZ Utils are the successor to LZMA Utils. + +The core of the XZ Utils compression code is based on LZMA SDK, but it has +been modified quite a lot to be suitable for XZ Utils. The primary +compression algorithm is currently LZMA2, which is used inside the .xz +container format. With typical files, XZ Utils create 30 % smaller output +than gzip and 15 % smaller output than bzip2.") + (license '(license:gpl2+ license:lgpl2.1+)) ; bits of both + (home-page "http://tukaani.org/xz/"))) + +(define-public lzo + (package + (name "lzo") + (version "2.06") + (source + (origin + (method url-fetch) + (uri (string-append "http://www.oberhumer.com/opensource/lzo/download/lzo-" + version ".tar.gz")) + (sha256 + (base32 + "0wryshs446s7cclrbjykyj766znhcpnr7s3cxy33ybfn6vwfcygz")))) + (build-system gnu-build-system) + (home-page "http://www.oberhumer.com/opensource/lzo") + (synopsis + "A data compresion library suitable for real-time data de-/compression") + (description + "LZO is a data compression library which is suitable for data +de-/compression in real-time. This means it favours speed over +compression ratio. + +LZO is written in ANSI C. Both the source code and the compressed data +format are designed to be portable across platforms.") + (license license:gpl2+))) diff --git a/gnu/packages/cpio.scm b/gnu/packages/cpio.scm new file mode 100644 index 0000000000..6fddc3f768 --- /dev/null +++ b/gnu/packages/cpio.scm @@ -0,0 +1,58 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Nikita Karetnikov +;;; +;;; 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 . + +(define-module (gnu packages cpio) + #:use-module (guix licenses) + #:use-module (distro) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu)) + +(define-public cpio + (package + (name "cpio") + (version "2.11") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://gnu/cpio/cpio-" + version ".tar.bz2")) + (sha256 + (base32 + "1gavgpzqwgkpagjxw72xgxz52y1ifgz0ckqh8g7cckz7jvyhp0mv")))) + (build-system gnu-build-system) + (arguments + `(#:patches (list (assoc-ref %build-inputs + "patch/gets")))) + (inputs + `(("patch/gets" ,(search-patch "cpio-gets-undeclared.patch")))) + (home-page "https://www.gnu.org/software/cpio/") + (synopsis + "A program to create or extract from cpio archives") + (description + "GNU Cpio copies files into or out of a cpio or tar archive. The +archive can be another file on the disk, a magnetic tape, or a pipe. + +GNU Cpio supports the following archive formats: binary, old ASCII, new +ASCII, crc, HPUX binary, HPUX old ASCII, old tar, and POSIX.1 tar. The +tar format is provided for compatability with the tar program. By +default, cpio creates binary format archives, for compatibility with +older cpio programs. When extracting from archives, cpio automatically +recognizes which kind of archive it is reading and can read archives +created on machines with a different byte-order.") + (license gpl3+))) \ No newline at end of file diff --git a/gnu/packages/cyrus-sasl.scm b/gnu/packages/cyrus-sasl.scm new file mode 100644 index 0000000000..fe8ea4ef7c --- /dev/null +++ b/gnu/packages/cyrus-sasl.scm @@ -0,0 +1,57 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2013 Ludovic Courtès +;;; Copyright © 2013 Andreas Enge +;;; +;;; 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 . + +(define-module (gnu packages cyrus-sasl) + #:use-module (distro) + #:use-module (gnu packages gdbm) + #:use-module (gnu packages mit-krb5) + #:use-module (gnu packages openssl) + #:use-module ((guix licenses) + #:renamer (symbol-prefix-proc 'license:)) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu)) + +(define-public cyrus-sasl + (package + (name "cyrus-sasl") + (version "2.1.26") + (source (origin + (method url-fetch) + (uri (string-append "ftp://ftp.cyrusimap.org/cyrus-sasl/cyrus-sasl-" version + ".tar.gz")) + (sha256 (base32 + "1hvvbcsg21nlncbgs0cgn3iwlnb3vannzwsp6rwvnn9ba4v53g4g")))) + (build-system gnu-build-system) + (inputs `(("gdbm" ,gdbm) + ("mit-krb5" ,mit-krb5) + ("openssl" ,openssl))) + (arguments + '(#:configure-flags (list (string-append "--with-plugindir=" + (assoc-ref %outputs "out") + "/lib/sasl2")))) + (synopsis "Cyrus SASL, an implementation of the Simple Authentication Security Layer framework") + (description + "SASL (Simple Authentication Security Layer) is an Internet +standards-track method for remote computers to authenticate. The Cyrus SASL +library makes supporting various SASL mechanisms easy for both client and +server writers.") + (license (license:bsd-style "file://COPYING" + "See COPYING in the distribution.")) + (home-page "http://cyrusimap.web.cmu.edu/index.php"))) diff --git a/gnu/packages/ddrescue.scm b/gnu/packages/ddrescue.scm new file mode 100644 index 0000000000..e9c7856af3 --- /dev/null +++ b/gnu/packages/ddrescue.scm @@ -0,0 +1,60 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Nikita Karetnikov +;;; +;;; 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 . + +(define-module (gnu packages ddrescue) + #:use-module (guix licenses) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu)) + +(define-public ddrescue + (package + (name "ddrescue") + (version "1.16") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://gnu/ddrescue/ddrescue-" + version ".tar.gz")) + (sha256 + (base32 + "1rixya7p8c4jrn4p0flf6h5dqwybrilf3hrj4r7x41h3zgjz5cvn")))) + (build-system gnu-build-system) + (home-page + "http://www.gnu.org/software/ddrescue/ddrescue.html") + (synopsis "GNU ddrescue, a data recovery tool") + (description + "GNU ddrescue is a data recovery tool. It copies data from one +file or block device (hard disc, cdrom, etc) to another, trying hard to +rescue data in case of read errors. + +The basic operation of ddrescue is fully automatic. That is, you don't +have to wait for an error, stop the program, read the log, run it in +reverse mode, etc. + +If you use the logfile feature of ddrescue, the data is rescued very +efficiently (only the needed blocks are read). Also you can interrupt +the rescue at any time and resume it later at the same point. + +Automatic merging of backups: If you have two or more damaged copies of +a file, cdrom, etc, and run ddrescue on all of them, one at a time, with +the same output file, you will probably obtain a complete and error-free +file. This is so because the probability of having damaged areas at the +same places on different input files is very low. Using the logfile, +only the needed blocks are read from the second and successive copies.") + (license gpl3+))) diff --git a/gnu/packages/dejagnu.scm b/gnu/packages/dejagnu.scm new file mode 100644 index 0000000000..1efc7c78e7 --- /dev/null +++ b/gnu/packages/dejagnu.scm @@ -0,0 +1,88 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2013 Ludovic Courtès +;;; +;;; 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 . + +(define-module (gnu packages dejagnu) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu) + #:use-module (guix licenses) + #:use-module (gnu packages tcl)) + +(define-public dejagnu + (package + (name "dejagnu") + (version "1.5") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://gnu/dejagnu/dejagnu-" + version ".tar.gz")) + (sha256 + (base32 + "1nx3x3h96a82q92q108q71giv2nz9xmbbn2nrlr3wvvs6l45id68")))) + (build-system gnu-build-system) + (inputs `(("expect" ,expect))) + (arguments + '(#:phases (alist-replace + 'check + (lambda _ + ;; Note: The test-suite *requires* /dev/pts among the + ;; `build-chroot-dirs' of the build daemon when + ;; building in a chroot. See + ;; + ;; for details. + (if (and (directory-exists? "/dev/pts") + (directory-exists? "/proc")) + (begin + ;; Provide `runtest' with a log name, otherwise + ;; it tries to run `whoami', which fails when in + ;; a chroot. + (setenv "LOGNAME" "guix-builder") + + ;; The test-suite needs to have a non-empty stdin: + ;; . + (zero? + (system "make check < /dev/zero"))) + (begin + (display "test suite cannot be run, skipping\n") + #t))) + (alist-cons-after + 'install 'post-install + (lambda* (#:key inputs outputs #:allow-other-keys) + ;; Use the right `expect' binary. + (let ((out (assoc-ref outputs "out")) + (expect (assoc-ref inputs "expect"))) + (substitute* (string-append out "/bin/runtest") + (("^mypath.*$" all) + (string-append all + "export PATH=" + expect "/bin:$PATH\n"))))) + %standard-phases)))) + (home-page + "http://www.gnu.org/software/dejagnu/") + (synopsis "The DejaGNU testing framework") + (description + "DejaGnu is a framework for testing other programs. Its purpose +is to provide a single front end for all tests. Think of it as a +custom library of Tcl procedures crafted to support writing a +test harness. A test harness is the testing infrastructure that +is created to support a specific program or tool. Each program +can have multiple testsuites, all supported by a single test +harness. DejaGnu is written in Expect, which in turn uses Tcl -- +Tool command language.") + (license gpl2+))) diff --git a/gnu/packages/ed.scm b/gnu/packages/ed.scm new file mode 100644 index 0000000000..83d8b21bfb --- /dev/null +++ b/gnu/packages/ed.scm @@ -0,0 +1,53 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Nikita Karetnikov +;;; +;;; 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 . + +(define-module (gnu packages ed) + #:use-module (guix licenses) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu)) + +(define-public ed + (package + (name "ed") + (version "1.5") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://gnu/ed/ed-" + version + ".tar.gz")) + (sha256 + (base32 + "18gvhyhwpabmgv4lh21lg8vl3z7acdyhh2mr2kj9g75wksj39pcp")))) + (build-system gnu-build-system) + (arguments '(#:configure-flags '("CC=gcc"))) + (home-page "http://www.gnu.org/software/ed/") + (synopsis + "GNU ed, an implementation of the standard Unix editor") + (description + "GNU ed is a line-oriented text editor. It is used to create, +display, modify and otherwise manipulate text files, both +interactively and via shell scripts. A restricted version of ed, +red, can only edit files in the current directory and cannot +execute shell commands. Ed is the \"standard\" text editor in the +sense that it is the original editor for Unix, and thus widely +available. For most purposes, however, it is superseded by +full-screen editors such as GNU Emacs or GNU Moe.") + (license gpl3+))) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm new file mode 100644 index 0000000000..c9d0822a80 --- /dev/null +++ b/gnu/packages/emacs.scm @@ -0,0 +1,93 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2013 Ludovic Courtès +;;; +;;; 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 . + +(define-module (gnu packages emacs) + #:use-module (guix licenses) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu) + #:use-module (distro) + #:use-module (gnu packages ncurses) + #:use-module (gnu packages texinfo) + #:use-module (gnu packages gnutls) + #:use-module (gnu packages pkg-config)) + +(define-public emacs + (package + (name "emacs") + (version "24.2") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/emacs/emacs-" + version ".tar.bz2")) + (sha256 + (base32 + "13wbjfjmz13qpjwssy44nw2230lllmkkgjsy0rqfm6am2cf87n3k")))) + (build-system gnu-build-system) + (arguments + '(#:configure-flags + (list (string-append "--with-crt-dir=" (assoc-ref %build-inputs "libc") + "/lib")) + #:patches (list (assoc-ref %build-inputs "patch/epaths")) + #:phases (alist-cons-before + 'configure 'fix-/bin/pwd + (lambda _ + ;; Use `pwd', not `/bin/pwd'. + (substitute* (find-files "." "^Makefile\\.in$") + (("/bin/pwd") + "pwd"))) + %standard-phases))) + (inputs + `(("pkg-config" ,pkg-config) + ("gnutls" ,gnutls) + ("texinfo" ,texinfo) + ("ncurses" ,ncurses) + + ;; TODO: Add the optional dependencies. + ;; ("xlibs" ,xlibs) + ;; ("gtk+" ,gtk+) + ;; ("libXft" ,libXft) + ;; ("libtiff" ,libtiff) + ;; ("libungif" ,libungif) + ;; ("libjpeg" ,libjpeg) + ;; ("libpng" ,libpng) + ;; ("libXpm" ,libXpm) + ;; ("libxml2" ,libxml2) + ;; ("dbus-library" ,dbus-library) + + ("patch/epaths" ,(search-patch "emacs-configure-sh.patch")) + )) + (home-page "http://www.gnu.org/software/emacs/") + (synopsis + "GNU Emacs 24, the extensible, customizable text editor") + (description + "GNU Emacs is an extensible, customizable text editor—and more. At its +core is an interpreter for Emacs Lisp, a dialect of the Lisp +programming language with extensions to support text editing. + +The features of GNU Emacs include: content-sensitive editing modes, +including syntax coloring, for a wide variety of file types including +plain text, source code, and HTML; complete built-in documentation, +including a tutorial for new users; full Unicode support for nearly all +human languages and their scripts; highly customizable, using Emacs +Lisp code or a graphical interface; a large number of extensions that +add other functionality, including a project planner, mail and news +reader, debugger interface, calendar, and more. Many of these +extensions are distributed with GNU Emacs; others are available +separately.") + (license gpl3+))) diff --git a/gnu/packages/file.scm b/gnu/packages/file.scm new file mode 100644 index 0000000000..5a2cc2ad80 --- /dev/null +++ b/gnu/packages/file.scm @@ -0,0 +1,44 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2013 Andreas Enge +;;; +;;; 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 . + +(define-module (gnu packages file) + #:use-module (distro) + #:use-module (guix licenses) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu)) + +(define-public file + (package + (name "file") + (version "5.12") + (source (origin + (method url-fetch) + (uri (string-append "ftp://ftp.astron.com/pub/file/file-" + version ".tar.gz")) + (sha256 (base32 + "08ix4xrvan0k80n0l5lqfmc4azjv5lyhvhwdxny4r09j5smhv78r")))) + (build-system gnu-build-system) + (synopsis "file, a file type guesser") + (description + "The file command is a file type guesser, a command-line tool that tells +you in words what kind of data a file contains. It does not rely on filename +extentions to tell you the type of a file, but looks at the actual contents +of the file.") + (license bsd-2) + (home-page "http://www.darwinsys.com/file/"))) diff --git a/gnu/packages/flex.scm b/gnu/packages/flex.scm new file mode 100644 index 0000000000..7a6d5f507d --- /dev/null +++ b/gnu/packages/flex.scm @@ -0,0 +1,63 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Ludovic Courtès +;;; +;;; 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 . + +(define-module (gnu packages flex) + #:use-module (guix licenses) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu) + #:use-module (distro) + #:use-module (gnu packages m4) + #:use-module (gnu packages bison) + #:use-module (gnu packages indent)) + +(define-public flex + (package + (name "flex") + (version "2.5.37") + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/flex/flex-" + version ".tar.bz2")) + (sha256 + (base32 + "0ah5mi4j62b85a9rllv1004mzjb5cd0mn4glvz13p88rpx77pahp")))) + (build-system gnu-build-system) + (arguments + '(#:patches (list (assoc-ref %build-inputs "patch/bison-tests")))) + (inputs `(("patch/bison-tests" ,(search-patch "flex-bison-tests.patch")) + ("bison" ,bison) + ("indent" ,indent))) + (propagated-inputs `(("m4" ,m4))) + (home-page "http://flex.sourceforge.net/") + (synopsis "A fast lexical analyser generator") + (description + "Flex is a tool for generating scanners. A scanner, sometimes +called a tokenizer, is a program which recognizes lexical patterns in +text. The flex program reads user-specified input files, or its standard +input if no file names are given, for a description of a scanner to +generate. The description is in the form of pairs of regular expressions +and C code, called rules. Flex generates a C source file named, +\"lex.yy.c\", which defines the function yylex(). The file \"lex.yy.c\" +can be compiled and linked to produce an executable. When the executable +is run, it analyzes its input for occurrences of text matching the +regular expressions for each rule. Whenever it finds a match, it +executes the corresponding C code.") + (license (bsd-style "file://COPYING" + "See COPYING in the distribution.")))) + diff --git a/gnu/packages/gawk.scm b/gnu/packages/gawk.scm new file mode 100644 index 0000000000..802042665a --- /dev/null +++ b/gnu/packages/gawk.scm @@ -0,0 +1,71 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012, 2013 Ludovic Courtès +;;; +;;; 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 . + +(define-module (gnu packages gawk) + #:use-module (guix licenses) + #:use-module (gnu packages libsigsegv) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix utils) + #:use-module (guix build-system gnu)) + +(define-public gawk + (package + (name "gawk") + (version "4.0.0") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/gawk/gawk-" version + ".tar.bz2")) + (sha256 + (base32 "0sss7rhpvizi2a88h6giv0i7w5h07s2fxkw3s6n1hqvcnhrfgbb0")))) + (build-system gnu-build-system) + (arguments + (case-lambda + ((system) + `(#:parallel-tests? #f ; test suite fails in parallel + + ;; Work around test failure on Cygwin. + #:tests? ,(not (string=? system "i686-cygwin")) + + #:phases (alist-cons-before + 'configure 'set-shell-file-name + (lambda* (#:key inputs #:allow-other-keys) + ;; Refer to the right shell. + (let ((bash (assoc-ref inputs "bash"))) + (substitute* "io.c" + (("/bin/sh") + (string-append bash "/bin/bash"))))) + %standard-phases))) + ((system cross-system) + '(#:parallel-tests? #f)))) + (inputs `(("libsigsegv" ,libsigsegv))) + (home-page "http://www.gnu.org/software/gawk/") + (synopsis "GNU implementation of the Awk programming language") + (description + "Many computer users need to manipulate text files: extract and then +operate on data from parts of certain lines while discarding the rest, make +changes in various text files wherever certain patterns appear, and so on. +To write a program to do these things in a language such as C or Pascal is a +time-consuming inconvenience that may take many lines of code. The job is +easy with awk, especially the GNU implementation: Gawk. + +The awk utility interprets a special-purpose programming language that makes +it possible to handle many data-reformatting jobs with just a few lines of +code.") + (license gpl3+))) diff --git a/gnu/packages/gdb.scm b/gnu/packages/gdb.scm new file mode 100644 index 0000000000..c8c771bfd5 --- /dev/null +++ b/gnu/packages/gdb.scm @@ -0,0 +1,65 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2013 Ludovic Courtès +;;; +;;; 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 . + +(define-module (gnu packages gdb) + #:use-module (gnu packages ncurses) + #:use-module (gnu packages readline) + #:use-module (gnu packages dejagnu) + #:use-module (gnu packages texinfo) + #:use-module (gnu packages multiprecision) + #:use-module (gnu packages xml) + #:use-module (gnu packages python) + #:use-module ((guix licenses) #:select (gpl3+)) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu)) + +(define-public gdb + (package + (name "gdb") + (version "7.5") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/gdb/gdb-" + version ".tar.bz2")) + (sha256 + (base32 + "0chrws5ga90b50kp06yll6zy42fhnx9yr87r4i7swsc369fc8y6i")))) + (build-system gnu-build-system) + (arguments + '(#:phases (alist-cons-after + 'configure 'post-configure + (lambda _ + (patch-makefile-SHELL "gdb/gdbserver/Makefile.in")) + %standard-phases))) + (inputs + `(("expat" ,expat) + ("mpfr" ,mpfr) + ("gmp" ,gmp) + ("readline" ,readline) + ("ncurses" ,ncurses) + ("python" ,python) + ("texinfo" ,texinfo) + ("dejagnu" ,dejagnu))) + (home-page "http://www.gnu.org/software/gdb/") + (synopsis "GDB, the GNU Project debugger") + (description + "GDB, the GNU Project debugger, allows you to see what is going +on `inside' another program while it executes -- or what another +program was doing at the moment it crashed.") + (license gpl3+))) diff --git a/gnu/packages/gdbm.scm b/gnu/packages/gdbm.scm new file mode 100644 index 0000000000..588b732b02 --- /dev/null +++ b/gnu/packages/gdbm.scm @@ -0,0 +1,56 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Ludovic Courtès +;;; +;;; 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 . + +(define-module (gnu packages gdbm) + #:use-module (guix licenses) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu)) + +(define-public gdbm + (package + (name "gdbm") + (version "1.10") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://gnu/gdbm/gdbm-" + version ".tar.gz")) + (sha256 + (base32 + "0h9lfzdjc2yl849y0byg51h6xfjg0y7vg9jnsw3gpfwlbd617y13")))) + (build-system gnu-build-system) + (home-page "http://www.gnu.org/software/gdbm/") + (synopsis "GNU dbm key/value database library") + (description + "GNU dbm (or GDBM, for short) is a library of database functions +that use extensible hashing and work similar to the standard UNIX dbm. +These routines are provided to a programmer needing to create and +manipulate a hashed database. + +The basic use of GDBM is to store key/data pairs in a data file. Each +key must be unique and each key is paired with only one data item. + +The library provides primitives for storing key/data pairs, searching +and retrieving the data by its key and deleting a key along with its +data. It also support sequential iteration over all key/data pairs in a +database. + +For compatibility with programs using old UNIX dbm function, the package +also provides traditional dbm and ndbm interfaces.") + (license gpl3+))) diff --git a/gnu/packages/gettext.scm b/gnu/packages/gettext.scm new file mode 100644 index 0000000000..c45a488dca --- /dev/null +++ b/gnu/packages/gettext.scm @@ -0,0 +1,78 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Nikita Karetnikov +;;; +;;; 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 . + +(define-module (gnu packages gettext) + #:use-module (guix licenses) + #:use-module (distro) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu)) + +(define-public gettext + (package + (name "gettext") + (version "0.18.1.1") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://gnu/gettext/gettext-" + version ".tar.gz")) + (sha256 + (base32 + "1sa3ch12qxa4h3ya6hkz119yclcccmincl9j20dhrdx5mykp3b4k")))) + (build-system gnu-build-system) + (arguments + `(#:patches (list (assoc-ref %build-inputs "patch/gets")) + #:phases (alist-cons-before + 'check 'patch-tests + (lambda* (#:key inputs #:allow-other-keys) + (let ((bash (assoc-ref inputs "bash"))) + (substitute* (find-files "gettext-tools/tests" + "^msgexec-[0-9]") + (("#![[:blank:]]/bin/sh") + (format #f "#!~a/bin/sh" bash))) + (substitute* (find-files "gettext-tools/gnulib-tests" + "posix_spawn") + (("/bin/sh") + (format #f "~a/bin/bash" bash))))) + %standard-phases))) + (inputs + `(("patch/gets" + ,(search-patch "gettext-gets-undeclared.patch")))) + (home-page + "http://www.gnu.org/software/gettext/") + (synopsis + "GNU gettext, a well integrated set of translation tools and documentation") + (description + "Usually, programs are written and documented in English, and use +English at execution time for interacting with users. Using a common +language is quite handy for communication between developers, +maintainers and users from all countries. On the other hand, most +people are less comfortable with English than with their own native +language, and would rather be using their mother tongue for day to +day's work, as far as possible. Many would simply love seeing their +computer screen showing a lot less of English, and far more of their +own language. + +GNU `gettext' is an important step for the GNU Translation Project, as +bit is an asset on which we may build many other steps. This package +offers to programmers, translators, and even users, a well integrated +set of tools and documentation. Specifically, the GNU `gettext' +utilities are a set of tools that provides a framework to help other +GNU packages produce multi-lingual messages.") + (license gpl3))) ; some files are under GPLv2+ diff --git a/gnu/packages/global.scm b/gnu/packages/global.scm new file mode 100644 index 0000000000..705efbbbed --- /dev/null +++ b/gnu/packages/global.scm @@ -0,0 +1,58 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2013 Ludovic Courtès +;;; +;;; 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 . + +(define-module (gnu packages global) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu) + #:use-module (guix licenses) + #:use-module (gnu packages ncurses) + #:use-module (gnu packages autotools) + #:use-module (distro)) + +(define-public global ; a global variable + (package + (name "global") + (version "6.2.7") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://gnu/global/global-" + version ".tar.gz")) + (sha256 + (base32 + "1dr250kz65wqpbms4lhz857mzmvmpmiaxgyqxvxkb4b0s840i14i")))) + (build-system gnu-build-system) + (inputs `(("ncurses" ,ncurses) + ("libtool" ,libtool))) + (arguments + `(#:configure-flags + (list (string-append "--with-ncurses=" + (assoc-ref %build-inputs "ncurses"))))) + (home-page "http://www.gnu.org/software/global/") + (synopsis "GNU GLOBAL source code tag system") + (description + "GNU GLOBAL is a source code tagging system that works the same way +across diverse environments (Emacs, vi, less, Bash, web browser, etc). +You can locate specified objects in source files and move there easily. +It is useful for hacking a large project containing many +subdirectories, many #ifdef and many main() functions. It is similar +to ctags or etags but is different from them at the point of +independence of any editor. It runs on a UNIX (POSIX) compatible +operating system like GNU and BSD.") + (license "GPLv3+"))) diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm new file mode 100644 index 0000000000..82f8d26a65 --- /dev/null +++ b/gnu/packages/gnupg.scm @@ -0,0 +1,168 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Ludovic Courtès +;;; +;;; 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 . + +(define-module (gnu packages gnupg) + #:use-module (guix licenses) + #:use-module (gnu packages pth) + #:use-module (gnu packages readline) + #:use-module ((gnu packages compression) + #:renamer (symbol-prefix-proc 'guix:)) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu)) + +(define-public libgpg-error + (package + (name "libgpg-error") + (version "1.10") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://gnupg/libgpg-error/libgpg-error-" + version ".tar.bz2")) + (sha256 + (base32 + "0cal3jdnzdailr13qcy74grfbplbghkgr3qwk6qjjp4bass2j1jj")))) + (build-system gnu-build-system) + (home-page "http://gnupg.org") + (synopsis + "Libgpg-error, a small library that defines common error values for all GnuPG components") + (description + "Libgpg-error is a small library that defines common error values +for all GnuPG components. Among these are GPG, GPGSM, GPGME, +GPG-Agent, libgcrypt, Libksba, DirMngr, Pinentry, SmartCard +Daemon and possibly more in the future.") + (license lgpl2.0+))) + +(define-public libgcrypt + (package + (name "libgcrypt") + (version "1.5.0") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://gnupg/libgcrypt/libgcrypt-" + version ".tar.bz2")) + (sha256 + (base32 + "1ykkh7dm0gyndz7bbpvn3agijj8xb2h02m02f42hm504c18zqqjb")))) + (build-system gnu-build-system) + (propagated-inputs + `(("libgpg-error" ,libgpg-error))) + (home-page "http://gnupg.org/") + (synopsis + "GNU Libgcrypt, a general-pupose cryptographic library") + (description + "GNU Libgcrypt is a general purpose cryptographic library based on +the code from GnuPG. It provides functions for all +cryptographic building blocks: symmetric ciphers, hash +algorithms, MACs, public key algorithms, large integer +functions, random numbers and a lot of supporting functions.") + (license lgpl2.0+))) + +(define-public libassuan + (package + (name "libassuan") + (version "2.0.3") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://gnupg/libassuan/libassuan-" + version ".tar.bz2")) + (sha256 + (base32 + "06xckkvxxlx7cj77803m8x58gxksap4k8yhspc5cqsy7fhinimds")))) + (build-system gnu-build-system) + (propagated-inputs + `(("libgpg-error" ,libgpg-error) ("pth" ,pth))) + (home-page "http://gnupg.org") + (synopsis + "Libassuan, the IPC library used by GnuPG and related software") + (description + "Libassuan is a small library implementing the so-called Assuan +protocol. This protocol is used for IPC between most newer +GnuPG components. Both, server and client side functions are +provided.") + (license lgpl2.0+))) + +(define-public libksba + (package + (name "libksba") + (version "1.2.0") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://gnupg/libksba/libksba-" + version ".tar.bz2")) + (sha256 + (base32 + "0jwk7hm3x3g4hd7l12z3d79dy7359x7lc88dq6z7q0ixn1jwxbq9")))) + (build-system gnu-build-system) + (propagated-inputs + `(("libgpg-error" ,libgpg-error))) + (home-page "http://www.gnupg.org") + (synopsis + "Libksba is a CMS and X.509 access library under development") + (description + "KSBA (pronounced Kasbah) is a library to make X.509 certificates +as well as the CMS easily accessible by other applications. Both +specifications are building blocks of S/MIME and TLS.") + (license gpl3+))) + +(define-public gnupg + (package + (name "gnupg") + (version "2.0.19") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://gnupg/gnupg/gnupg-" version + ".tar.bz2")) + (sha256 + (base32 + "08n636sfffs5qvg9ppiprvsh00q0dmdw425psg3m3nssja53m8pg")))) + (build-system gnu-build-system) + (inputs + `(;; TODO: Add missing optional deps. + ;; ("curl" ,curl) + ;; ("libusb" ,libusb) + ;; ("openldap" ,openldap) + + ("bzip2" ,guix:bzip2) + ("libassuan" ,libassuan) + ("libgcrypt" ,libgcrypt) + ("libksba" ,libksba) + ("pth" ,pth) + ("libgpg-error" ,libgpg-error) + ("zlib" ,guix:zlib) + ("readline" ,readline))) + (home-page "http://gnupg.org/") + (synopsis + "GNU Privacy Guard (GnuPG), GNU Project's implementation of the OpenPGP standard") + (description + "GnuPG is the GNU project's complete and free implementation of +the OpenPGP standard as defined by RFC4880. GnuPG allows to +encrypt and sign your data and communication, features a +versatile key managment system as well as access modules for all +kind of public key directories. GnuPG, also known as GPG, is a +command line tool with features for easy integration with other +applications. A wealth of frontend applications and libraries +are available. Version 2 of GnuPG also provides support for +S/MIME.") + (license gpl3+))) diff --git a/gnu/packages/gnutls.scm b/gnu/packages/gnutls.scm new file mode 100644 index 0000000000..4bda9a9ac5 --- /dev/null +++ b/gnu/packages/gnutls.scm @@ -0,0 +1,98 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012, 2013 Ludovic Courtès +;;; +;;; 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 . + +(define-module (gnu packages gnutls) + #:use-module (guix licenses) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu) + #:use-module (gnu packages base) + #:use-module ((gnu packages compression) + #:renamer (symbol-prefix-proc 'guix:)) + #:use-module (gnu packages nettle) + #:use-module (gnu packages guile) + #:use-module (gnu packages perl) + #:use-module (gnu packages which)) + +(define-public libtasn1 + (package + (name "libtasn1") + (version "3.2") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://gnu/libtasn1/libtasn1-" + version ".tar.gz")) + (sha256 + (base32 + "0gvgndypwicchf7m660zh7jdgmkfj9g9xavpcc08pyd0120y0bk7")))) + (build-system gnu-build-system) + (home-page "http://www.gnu.org/software/libtasn1/") + (synopsis "GNU Libtasn1, an ASN.1 library") + (description + "Libtasn1 is the ASN.1 library used by GnuTLS, GNU Shishi and some +other packages. The goal of this implementation is to be highly +portable, and only require an ANSI C89 platform.") + (license lgpl2.0+))) + +(define-public gnutls + (package + (name "gnutls") + (version "3.1.6") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://gnu/gnutls/gnutls-" + version + ".tar.xz")) + (sha256 + (base32 + "0zsybr9plllk1phh83bx9bg7c5ccik427j4n3k1s9fiy4j69n0w3")))) + (build-system gnu-build-system) + + ;; Build of the Guile bindings is not parallel-safe. See + ;; + ;; for the actual fix. + (arguments '(#:parallel-build? #f)) + + (inputs + `(("guile" ,guile-2.0) + ;; ("lzo" ,lzo) + ("zlib" ,guix:zlib) + ("perl" ,perl))) + (propagated-inputs + `(("libtasn1" ,libtasn1) + ("nettle" ,nettle) + ("which" ,which))) + (home-page "http://www.gnu.org/software/gnutls/") + (synopsis + "The GNU Transport Layer Security Library") + (description + "GnuTLS is a project that aims to develop a library which provides +a secure layer, over a reliable transport layer. Currently the GnuTLS +library implements the proposed standards by the IETF's TLS working +group. + +Quoting from the TLS protocol specification: + +\"The TLS protocol provides communications privacy over the +Internet. The protocol allows client/server applications to communicate +in a way that is designed to prevent eavesdropping, tampering, or +message forgery.\"") + (license lgpl2.1+))) diff --git a/gnu/packages/gperf.scm b/gnu/packages/gperf.scm new file mode 100644 index 0000000000..94fa62b652 --- /dev/null +++ b/gnu/packages/gperf.scm @@ -0,0 +1,55 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Ludovic Courtès +;;; +;;; 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 . + +(define-module (gnu packages gperf) + #:use-module (guix licenses) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix utils) + #:use-module (guix build-system gnu)) + +(define-public gperf + (package + (name "gperf") + (version "3.0.4") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://gnu/gperf/gperf-" + version ".tar.gz")) + (sha256 + (base32 + "0gnnm8iqcl52m8iha3sxrzrl9mcyhg7lfrhhqgdn4zj00ji14wbn")))) + (build-system gnu-build-system) + (arguments '(#:parallel-tests? #f)) + (home-page "http://www.gnu.org/software/gperf/") + (synopsis + "GNU gperf, a perfect hash function generator") + (description + "GNU gperf is a perfect hash function generator. For a given +list of strings, it produces a hash function and hash table, in +form of C or C++ code, for looking up a value depending on the +input string. The hash function is perfect, which means that +the hash table has no collisions, and the hash table lookup +needs a single string comparison only. + +GNU gperf is highly customizable. There are options for +generating C or C++ code, for emitting switch statements or +nested ifs instead of a hash table, and for tuning the algorithm +employed by gperf.") + (license gpl3+))) diff --git a/gnu/packages/gsasl.scm b/gnu/packages/gsasl.scm new file mode 100644 index 0000000000..dc75b18455 --- /dev/null +++ b/gnu/packages/gsasl.scm @@ -0,0 +1,113 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Andreas Enge +;;; +;;; 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 . + +(define-module (gnu packages gsasl) + #:use-module (distro) + #:use-module ((gnu packages compression) + #:renamer (symbol-prefix-proc 'guix:)) + #:use-module (gnu packages gnutls) + #:use-module (gnu packages libidn) + #:use-module (gnu packages nettle) + #:use-module (gnu 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/gnu/packages/guile.scm b/gnu/packages/guile.scm new file mode 100644 index 0000000000..5034ae914a --- /dev/null +++ b/gnu/packages/guile.scm @@ -0,0 +1,197 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Ludovic Courtès +;;; +;;; 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 . + +(define-module (gnu packages guile) + #:use-module (guix licenses) + #:use-module (distro) + #:use-module (gnu packages bdw-gc) + #:use-module (gnu packages gawk) + #:use-module (gnu packages gperf) + #:use-module (gnu packages libffi) + #:use-module (gnu packages autotools) + #:use-module (gnu packages libunistring) + #:use-module (gnu packages m4) + #:use-module (gnu packages multiprecision) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages readline) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu)) + +;;; Commentary: +;;; +;;; GNU Guile, and modules and extensions. +;;; +;;; Code: + +(define-public guile-1.8 + (package + (name "guile") + (version "1.8.8") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/guile/guile-" version + ".tar.gz")) + (sha256 + (base32 + "0l200a0v7h8bh0cwz6v7hc13ds39cgqsmfrks55b1rbj5vniyiy3")))) + (build-system gnu-build-system) + (arguments '(#:configure-flags '("--disable-error-on-warning") + #:patches (list (assoc-ref %build-inputs "patch/snarf")) + + ;; Insert a phase before `configure' to patch things up. + #:phases (alist-cons-before + 'configure + 'patch-loader-search-path + (lambda* (#:key outputs #:allow-other-keys) + ;; Add a call to `lt_dladdsearchdir' so that + ;; `libguile-readline.so' & co. are in the + ;; loader's search path. + (substitute* "libguile/dynl.c" + (("lt_dlinit.*$" match) + (format #f + " ~a~% lt_dladdsearchdir(\"~a/lib\");~%" + match + (assoc-ref outputs "out"))))) + %standard-phases))) + (inputs `(("patch/snarf" ,(search-patch "guile-1.8-cpp-4.5.patch")) + ("gawk" ,gawk) + ("readline" ,readline))) + + ;; Since `guile-1.8.pc' has "Libs: ... -lgmp -lltdl", these must be + ;; propagated. + (propagated-inputs `(("gmp" ,gmp) + ("libtool" ,libtool))) + + ;; When cross-compiling, a native version of Guile itself is needed. + (self-native-input? #t) + + (synopsis "GNU Guile 1.8, an embeddable Scheme interpreter") + (description +"GNU Guile 1.8 is an interpreter for the Scheme programming language, +packaged as a library that can be embedded into programs to make them +extensible. It supports many SRFIs.") + (home-page "http://www.gnu.org/software/guile/") + (license lgpl2.0+))) + +(define-public guile-2.0 + (package + (name "guile") + (version "2.0.7") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/guile/guile-" version + ".tar.xz")) + (sha256 + (base32 + "0f53pxkia4v17n0avwqlcjpy0n89hkazm2xsa6p84lv8k6k8y9vg")))) + (build-system gnu-build-system) + (native-inputs `(("pkgconfig" ,pkg-config))) + (inputs `(("libffi" ,libffi) + ("readline" ,readline))) + + (propagated-inputs + `( ;; These ones aren't normally needed here, but since `libguile-2.0.la' + ;; reads `-lltdl -lunistring', adding them here will add the needed + ;; `-L' flags. As for why the `.la' file lacks the `-L' flags, see + ;; . + ("libunistring" ,libunistring) + ("libtool" ,libtool) + + ;; The headers and/or `guile-2.0.pc' refer to these packages, so they + ;; must be propagated. + ("bdw-gc" ,libgc) + ("gmp" ,gmp))) + + (self-native-input? #t) + + (arguments + '(#:phases (alist-cons-before + 'configure 'pre-configure + (lambda* (#:key inputs #:allow-other-keys) + (let ((bash (assoc-ref inputs "bash"))) + (substitute* "module/ice-9/popen.scm" + (("/bin/sh") + (string-append bash "/bin/bash"))))) + %standard-phases))) + + (synopsis "GNU Guile 2.0, an embeddable Scheme implementation") + (description +"GNU Guile is an implementation of the Scheme programming language, with +support for many SRFIs, packaged for use in a wide variety of environments. +In addition to implementing the R5RS Scheme standard and a large subset of +R6RS, Guile includes a module system, full access to POSIX system calls, +networking support, multiple threads, dynamic linking, a foreign function +call interface, and powerful string processing.") + (home-page "http://www.gnu.org/software/guile/") + (license lgpl3+))) + +(define-public guile-2.0/fixed + ;; A package of Guile 2.0 that's rarely changed. It is the one used + ;; in the `base' module, and thus changing it entails a full rebuild. + guile-2.0) + + +;;; +;;; Extensions. +;;; + +(define (guile-reader guile) + "Build Guile-Reader against GUILE, a package of some version of Guile 1.8 +or 2.0." + (package + (name (string-append "guile-reader-for-guile-" (package-version guile))) + (version "0.6") + (source (origin + (method url-fetch) + (uri (string-append + "http://download-mirror.savannah.gnu.org/releases/guile-reader/guile-reader-" + version ".tar.gz")) + (sha256 + (base32 + "1svlyk5pm4fsdp2g7n6qffdl6fdggxnlicj0jn9s4lxd63gzxy1n")))) + (build-system gnu-build-system) + (native-inputs `(("pkgconfig" ,pkg-config) + ("gperf" ,gperf))) + (inputs `(("guile" ,guile))) + (synopsis "Guile-Reader, a simple framework for building readers for +GNU Guile") + (description +"Guile-Reader is a simple framework for building readers for GNU Guile. + +The idea is to make it easy to build procedures that extend Guile’s read +procedure. Readers supporting various syntax variants can easily be written, +possibly by re-using existing “token readers” of a standard Scheme +readers. For example, it is used to implement Skribilo’s R5RS-derived +document syntax. + +Guile-Reader’s approach is similar to Common Lisp’s “read table”, but +hopefully more powerful and flexible (for instance, one may instantiate as +many readers as needed).") + (home-page "http://www.nongnu.org/guile-reader/") + (license gpl3+))) + +(define-public guile-reader/guile-1.8 + ;; Guile-Reader built against Guile 1.8. + (guile-reader guile-1.8)) + +(define-public guile-reader/guile-2.0 + ;; Guile-Reader built against Guile 2.0. + (guile-reader guile-2.0)) + +;;; guile.scm ends here diff --git a/gnu/packages/help2man.scm b/gnu/packages/help2man.scm new file mode 100644 index 0000000000..0acd39a524 --- /dev/null +++ b/gnu/packages/help2man.scm @@ -0,0 +1,52 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Ludovic Courtès +;;; +;;; 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 . + +(define-module (gnu packages help2man) + #:use-module (guix licenses) + #:use-module (guix download) + #:use-module (guix packages) + #:use-module (guix build-system gnu) + #:use-module (gnu packages perl)) + +(define-public help2man + (package + (name "help2man") + (version "1.40.8") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://gnu/help2man/help2man-" + version ".tar.gz")) + (sha256 + (base32 + "0s6phazn8jgvpbsby8kj2m58rj1zjghi1aipvamh8af226ssqfzj")))) + (build-system gnu-build-system) + (arguments `(;; There's no `check' target. + #:tests? #f)) + (inputs + `(("perl" ,perl) + ;; TODO: Add these optional dependencies. + ;; ("perl-LocaleGettext" ,perl-LocaleGettext) + ;; ("gettext" ,gettext) + )) + (home-page "http://www.gnu.org/software/help2man/") + (synopsis "GNU help2man generates man pages from `--help' output") + (description + "help2man produces simple manual pages from the ‘--help’ and +‘--version’ output of other commands.") + (license gpl3+))) diff --git a/gnu/packages/icu4c.scm b/gnu/packages/icu4c.scm new file mode 100644 index 0000000000..e0aa3bcd88 --- /dev/null +++ b/gnu/packages/icu4c.scm @@ -0,0 +1,66 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2013 Andreas Enge +;;; +;;; 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 . + +(define-module (gnu packages icu4c) + #:use-module (distro) + #:use-module (gnu packages perl) + #:use-module (guix licenses) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu)) + +(define-public icu4c + (package + (name "icu4c") + (version "50.1.1") + (source (origin + (method url-fetch) + (uri (string-append "http://download.icu-project.org/files/icu4c/" + version + "/icu4c-" + (string-map (lambda (x) (if (char=? x #\.) #\_ x)) version) + "-src.tgz")) + (sha256 (base32 + "13yz0kk6zsgj94idnlr3vbg8iph5z4ly4b4xrd5wfja7q3ijdx56")))) + (build-system gnu-build-system) + (inputs `(("perl" ,perl))) + (arguments + `(#:phases + (alist-replace + 'unpack + (lambda* (#:key source #:allow-other-keys) + (and (zero? (system* "tar" "xvf" source)) + (chdir "icu/source"))) + (alist-replace + 'configure + (lambda* (#:key #:allow-other-keys #:rest args) + (let ((configure (assoc-ref %standard-phases 'configure))) + ;; patch out two occurrences of /bin/sh from configure script + ;; that might have disappeared in a release later than 50.1.1 + (substitute* "configure" + (("`/bin/sh") + (string-append "`" (which "bash")))) + (apply configure args))) + %standard-phases)))) + (synopsis "ICU, International Components for Unicode") + (description + "ICU is a set of C/C++ and Java libraries providing Unicode and +globalisation support for software applications. This package contains the +C/C++ part.") + (license x11) + (home-page "http://site.icu-project.org/"))) diff --git a/gnu/packages/idutils.scm b/gnu/packages/idutils.scm new file mode 100644 index 0000000000..34b6dfcff9 --- /dev/null +++ b/gnu/packages/idutils.scm @@ -0,0 +1,65 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Ludovic Courtès +;;; +;;; 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 . + +(define-module (gnu 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/gnu/packages/indent.scm b/gnu/packages/indent.scm new file mode 100644 index 0000000000..eb42e6a7b4 --- /dev/null +++ b/gnu/packages/indent.scm @@ -0,0 +1,44 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2013 Andreas Enge +;;; +;;; 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 . + +(define-module (gnu packages indent) + #:use-module (distro) + #:use-module (guix licenses) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu)) + +(define-public indent + (package + (name "indent") + (version "2.2.10") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/indent/indent-" version + ".tar.gz")) + (sha256 (base32 + "0f9655vqdvfwbxvs1gpa7py8k1z71aqh8hp73f65vazwbfz436wa")))) + (build-system gnu-build-system) + (synopsis "GNU Indent, a program for code indentation and formatting") + (description + "GNU Indent can be used to make code easier to read. It can also convert +from one style of writing C to another. Indent understands a substantial +amount about the syntax of C, but it also attempts to cope with incomplete +and misformed syntax. The GNU style of indenting is the default.") + (license gpl3+) + (home-page "http://www.gnu.org/software/indent/"))) diff --git a/gnu/packages/ld-wrapper.scm b/gnu/packages/ld-wrapper.scm new file mode 100644 index 0000000000..fd5a4cbd0c --- /dev/null +++ b/gnu/packages/ld-wrapper.scm @@ -0,0 +1,147 @@ +#!@BASH@ +# -*- mode: scheme; coding: utf-8; -*- + +# XXX: We have to go through Bash because there's no command-line switch to +# augment %load-compiled-path, and because of the silly 127-byte limit for +# the shebang line in Linux. +# Use `load-compiled' because `load' (and `-l') doesn't otherwise load our +# .go file (see ). + +main="(@ (gnu build-support ld-wrapper) ld-wrapper)" +exec @GUILE@ -c "(load-compiled \"$0.go\") (apply $main (cdr (command-line)))" "$@" +!# +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Ludovic Courtès +;;; +;;; 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 . + +(define-module (gnu build-support ld-wrapper) + #:use-module (srfi srfi-1) + #:export (ld-wrapper)) + +;;; Commentary: +;;; +;;; This is a wrapper for the linker. Its purpose is to inspect the -L and +;;; -l switches passed to the linker, add corresponding -rpath arguments, and +;;; invoke the actual linker with this new set of arguments. +;;; +;;; The alternatives to this hack would be: +;;; +;;; 1. Using $LD_RUN_PATH. However, that would tend to include more than +;;; needed in the RPATH; for instance, given a package with `libfoo' as +;;; an input, all its binaries would have libfoo in their RPATH, +;;; regardless of whether they actually NEED it. +;;; +;;; 2. Use a GCC "lib" spec string such as `%{L*:-rpath %*}', which adds a +;;; `-rpath LIBDIR' argument for each occurrence of `-L LIBDIR'. +;;; However, this doesn't work when $LIBRARY_PATH is used, because the +;;; additional `-L' switches are not matched by the above rule, because +;;; the rule only matches explicit user-provided switches. See +;;; for details. +;;; +;;; As a bonus, this wrapper checks for "impurities"--i.e., references to +;;; libraries outside the store. +;;; +;;; Code: + +(define %real-ld + ;; Name of the linker that we wrap. + "@LD@") + +(define %store-directory + ;; File name of the store. + (or (getenv "NIX_STORE") "/nix/store")) + +(define %temporary-directory + ;; Temporary directory. + (or (getenv "TMPDIR") "/tmp")) + +(define %build-directory + ;; Top build directory when run from a builder. + (getenv "NIX_BUILD_TOP")) + +(define %allow-impurities? + ;; Whether to allow references to libraries outside the store. + (getenv "GUIX_LD_WRAPPER_ALLOW_IMPURITIES")) + +(define %debug? + ;; Whether to emit debugging output. + (getenv "GUIX_LD_WRAPPER_DEBUG")) + +(define (pure-file-name? file) + ;; Return #t when FILE is the name of a file either within the store or + ;; within the build directory. + (or (not (string-prefix? "/" file)) + (string-prefix? %store-directory file) + (string-prefix? %temporary-directory file) + (and %build-directory + (string-prefix? %build-directory file)))) + +(define (switch-arguments switch args) + ;; Return the arguments passed for the occurrences of SWITCH--e.g., + ;; "-L"--in ARGS. + (let ((prefix-len (string-length switch))) + (fold-right (lambda (arg path) + (if (string-prefix? switch arg) + (cons (substring arg prefix-len) path) + path)) + '() + args))) + +(define (library-path args) + ;; Return the library search path extracted from `-L' switches in ARGS. + ;; Note: allow references to out-of-store directories. When this leads to + ;; actual impurities, this is caught later. + (switch-arguments "-L" args)) + +(define (library-files-linked args) + ;; Return the file names of shared libraries explicitly linked against via + ;; `-l' in ARGS. + (map (lambda (lib) + (string-append "lib" lib ".so")) + (switch-arguments "-l" args))) + +(define (rpath-arguments lib-path library-files) + ;; Return the `-rpath' argument list for each of LIBRARY-FILES found in + ;; LIB-PATH. + (fold-right (lambda (file args) + (let ((absolute (search-path lib-path file))) + (if absolute + (if (or %allow-impurities? + (pure-file-name? absolute)) + (cons* "-rpath" (dirname absolute) + args) + (begin + (format (current-error-port) + "ld-wrapper: error: attempt to use impure library ~s~%" + absolute) + (exit 1))) + args))) + '() + library-files)) + +(define (ld-wrapper . args) + ;; Invoke the real `ld' with ARGS, augmented with `-rpath' switches. + (let* ((lib-path (library-path args)) + (libs (library-files-linked args)) + (args (append args (rpath-arguments lib-path libs)))) + (if %debug? + (format (current-error-port) + "ld-wrapper: invoking `~a' with ~s~%" + %real-ld args)) + (apply execl %real-ld (basename %real-ld) args))) + +;;; ld-wrapper.scm ends here diff --git a/gnu/packages/less.scm b/gnu/packages/less.scm new file mode 100644 index 0000000000..63a3d98a9b --- /dev/null +++ b/gnu/packages/less.scm @@ -0,0 +1,51 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Nikita Karetnikov +;;; +;;; 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 . + +(define-module (gnu packages less) + #:use-module (guix licenses) + #:use-module (gnu packages ncurses) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu)) + +(define-public less + (package + (name "less") + (version "451") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://gnu/less/less-" + version ".tar.gz")) + (sha256 + (base32 + "0mszdd9m1dsbg59pav62swg9f87xmjpfspcw2jsazzksciy2is4z")))) + (build-system gnu-build-system) + (inputs `(("ncurses" ,ncurses))) + (home-page "https://www.gnu.org/software/less/") + (synopsis + "GNU less is a program similar to more, but which allows backward +movement in the file as well as forward movement") + (description + "GNU less is a program similar to more, but which allows backward +movement in the file as well as forward movement. Also, less does not +have to read the entire input file before starting, so with large input +files it starts up faster than text editors like vi. Less uses +termcap (or terminfo on some systems), so it can run on a variety of +terminals. There is even limited support for hardcopy terminals.") + (license gpl3+))) ; some files are under GPLv2+ \ No newline at end of file diff --git a/gnu/packages/libffi.scm b/gnu/packages/libffi.scm new file mode 100644 index 0000000000..87c849e564 --- /dev/null +++ b/gnu/packages/libffi.scm @@ -0,0 +1,73 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Ludovic Courtès +;;; +;;; 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 . + +(define-module (gnu packages libffi) + #:use-module (guix licenses) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix utils) + #:use-module (guix build-system gnu)) + +(define-public libffi + (let ((post-install-phase + ;; Install headers in the right place. + '(lambda* (#:key outputs #:allow-other-keys) + (define out (assoc-ref outputs "out")) + (mkdir (string-append out "/include")) + (with-directory-excursion + (string-append out "/lib/libffi-3.0.9/include") + (for-each (lambda (h) + (format #t "moving `~a' to includedir~%" h) + (rename-file h (string-append out "/include/" h))) + (scandir "." + (lambda (x) + (not (member x '("." "..")))))))))) + (package + (name "libffi") + (version "3.0.9") + (source (origin + (method url-fetch) + (uri + (string-append "ftp://sourceware.org/pub/libffi/" + name "-" version ".tar.gz")) + (sha256 + (base32 + "0ln4jbpb6clcsdpb9niqk0frgx4k0xki96wiv067ig0q4cajb7aq")))) + (build-system gnu-build-system) + (arguments `(#:modules ((guix build utils) (guix build gnu-build-system) + (ice-9 ftw) (srfi srfi-26)) + #:phases (alist-cons-after 'install 'post-install + ,post-install-phase + %standard-phases))) + (synopsis "libffi, a foreign function call interface library") + (description + "The libffi library provides a portable, high level programming interface +to various calling conventions. This allows a programmer to call any +function specified by a call interface description at run-time. + +FFI stands for Foreign Function Interface. A foreign function interface is +the popular name for the interface that allows code written in one language +to call code written in another language. The libffi library really only +provides the lowest, machine dependent layer of a fully featured foreign +function interface. A layer must exist above libffi that handles type +conversions for values passed between the two languages.") + (home-page "http://sources.redhat.com/libffi/") + + ;; See . + (license expat)))) + diff --git a/gnu/packages/libidn.scm b/gnu/packages/libidn.scm new file mode 100644 index 0000000000..dd246ef3e1 --- /dev/null +++ b/gnu/packages/libidn.scm @@ -0,0 +1,51 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Andreas Enge +;;; +;;; 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 . + +(define-module (gnu 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/gnu/packages/libjpeg.scm b/gnu/packages/libjpeg.scm new file mode 100644 index 0000000000..22d5a6b1c1 --- /dev/null +++ b/gnu/packages/libjpeg.scm @@ -0,0 +1,57 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2013 Andreas Enge +;;; +;;; 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 . + +(define-module (gnu packages libjpeg) + #:use-module (distro) + #:use-module (guix licenses) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu)) + +(define-public libjpeg + (package + (name "libjpeg") + (version "9") + (source (origin + (method url-fetch) + (uri (string-append "http://www.ijg.org/files/jpegsrc.v" + version ".tar.gz")) + (sha256 (base32 + "0dg5wxcx3cw0hal9gvivj97vid9z0s5sb1yvg55hpxmafn9rxqn4")))) + (build-system gnu-build-system) + (synopsis "Libjpeg, a library for handling JPEG files") + (description + "Libjpeg implements JPEG image encoding, decoding, and transcoding. +JPEG is a standardized compression method for full-color and gray-scale +images. +The included programs provide conversion between the JPEG format and +image files in PBMPLUS PPM/PGM, GIF, BMP, and Targa file formats.") + (license ijg) + (home-page "http://www.ijg.org/"))) + +(define-public libjpeg-8 + (package (inherit libjpeg) + (name "libjpeg-8") + (version "8d") + (source (origin + (method url-fetch) + (uri (string-append "http://www.ijg.org/files/jpegsrc.v" + version ".tar.gz")) + (sha256 (base32 + "1cz0dy05mgxqdgjf52p54yxpyy95rgl30cnazdrfmw7hfca9n0h0")))))) + diff --git a/gnu/packages/libsigsegv.scm b/gnu/packages/libsigsegv.scm new file mode 100644 index 0000000000..de896e4e8b --- /dev/null +++ b/gnu/packages/libsigsegv.scm @@ -0,0 +1,47 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012, 2013 Ludovic Courtès +;;; +;;; 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 . + +(define-module (gnu packages libsigsegv) + #:use-module (guix licenses) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix utils) + #:use-module (guix build-system gnu)) + +(define-public libsigsegv + (package + (name "libsigsegv") + (version "2.10") + (source (origin + (method url-fetch) + (uri (string-append + "mirror://gnu/libsigsegv/libsigsegv-" + version ".tar.gz")) + (sha256 + (base32 "16hrs8k3nmc7a8jam5j1fpspd6sdpkamskvsdpcw6m29vnis8q44")))) + (build-system gnu-build-system) + (home-page "http://www.gnu.org/software/libsigsegv/") + (synopsis "GNU libsigsegv, a library to handle page faults in user mode") + (description +"GNU libsigsegv is a library for handling page faults in user mode. A page +fault occurs when a program tries to access to a region of memory that is +currently not available. Catching and handling a page fault is a useful +technique for implementing pageable virtual memory, memory-mapped access to +persistent databases, generational garbage collectors, stack overflow +handlers, distributed shared memory, and more.") + (license gpl2+))) diff --git a/gnu/packages/libtiff.scm b/gnu/packages/libtiff.scm new file mode 100644 index 0000000000..0e785a622b --- /dev/null +++ b/gnu/packages/libtiff.scm @@ -0,0 +1,65 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2013 Andreas Enge +;;; +;;; 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 . + +(define-module (gnu packages libtiff) + #:use-module (distro) + #:use-module (gnu packages file) + #:use-module (gnu packages libjpeg) + #:use-module (guix licenses) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu)) + +(define-public libtiff + (package + (name "libtiff") + (version "4.0.3") + (source (origin + (method url-fetch) + (uri (string-append "ftp://ftp.remotesensing.org/pub/libtiff/tiff-" + version ".tar.gz")) + (sha256 (base32 + "0wj8d1iwk9vnpax2h29xqc2hwknxg3s0ay2d5pxkg59ihbifn6pa")))) + (build-system gnu-build-system) + (inputs `(("file" ,file) + ("libjpeg-8" ,libjpeg-8))) + ;; currently does not compile with libjpeg version 9 + (arguments + `(#:configure-flags + (list (string-append "--with-jpeg-include-dir=" + (assoc-ref %build-inputs "libjpeg-8") + "/include")) + #:phases + (alist-replace + 'configure + (lambda* (#:key #:allow-other-keys #:rest args) + (let ((configure (assoc-ref %standard-phases 'configure))) + (substitute* "configure" + (("`/usr/bin/file") + (string-append "`" (which "file")))) + (apply configure args))) + %standard-phases))) + (synopsis "Libtiff, a library for handling TIFF files") + (description + "Libtiff provides support for the Tag Image File Format (TIFF), a format +used for storing image data. +Included are a library, libtiff, for reading and writing TIFF and a small +collection of tools for doing simple manipulations of TIFF images.") + (license (bsd-style "file://COPYRIGHT" + "See COPYRIGHT in the distribution.")) + (home-page "http://www.libtiff.org/"))) diff --git a/gnu/packages/libunistring.scm b/gnu/packages/libunistring.scm new file mode 100644 index 0000000000..62ade5e378 --- /dev/null +++ b/gnu/packages/libunistring.scm @@ -0,0 +1,58 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Ludovic Courtès +;;; +;;; 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 . + +(define-module (gnu packages libunistring) + #:use-module (guix licenses) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix utils) + #:use-module (guix build-system gnu)) + +(define-public libunistring + (package + (name "libunistring") + (version "0.9.3") + (source (origin + (method url-fetch) + (uri (string-append + "mirror://gnu/libunistring/libunistring-" + version ".tar.gz")) + (sha256 + (base32 + "18q620269xzpw39dwvr9zpilnl2dkw5z5kz3mxaadnpv4k3kw3b1")))) + (propagated-inputs '()) ; FIXME: add libiconv when !glibc + (build-system gnu-build-system) + (synopsis "GNU Libunistring, a Unicode string library") + (description + "This library provides functions for manipulating Unicode strings and for +manipulating C strings according to the Unicode standard. + +GNU libunistring is for you if your application involves non-trivial text +processing, such as upper/lower case conversions, line breaking, operations +on words, or more advanced analysis of text. Text provided by the user can, +in general, contain characters of all kinds of scripts. The text processing +functions provided by this library handle all scripts and all languages. + +libunistring is for you if your application already uses the ISO C / POSIX +, functions and the text it operates on is provided by +the user and can be in any language. + +libunistring is also for you if your application uses Unicode strings as +internal in-memory representation.") + (home-page "http://www.gnu.org/software/libunistring/") + (license lgpl3+))) diff --git a/gnu/packages/libusb.scm b/gnu/packages/libusb.scm new file mode 100644 index 0000000000..1813f0cd04 --- /dev/null +++ b/gnu/packages/libusb.scm @@ -0,0 +1,44 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Nikita Karetnikov +;;; +;;; 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 . + +(define-module (gnu 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/gnu/packages/linux.scm b/gnu/packages/linux.scm new file mode 100644 index 0000000000..ded36c5eec --- /dev/null +++ b/gnu/packages/linux.scm @@ -0,0 +1,259 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012, 2013 Ludovic Courtès +;;; Copyright © 2012 Nikita Karetnikov +;;; +;;; 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 . + +(define-module (gnu packages linux) + #:use-module (guix licenses) + #:use-module (distro) + #:use-module ((gnu packages compression) + #:renamer (symbol-prefix-proc 'guix:)) + #:use-module (gnu packages flex) + #:use-module (gnu packages libusb) + #:use-module (gnu packages ncurses) + #:use-module (gnu packages perl) + #:use-module (gnu packages pkg-config) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu)) + +(define-public linux-libre-headers + (let* ((version* "3.3.8") + (build-phase + '(lambda* (#:key system #:allow-other-keys) + (let ((arch (car (string-split system #\-)))) + (setenv "ARCH" + (cond ((string=? arch "i686") "i386") + (else arch))) + (format #t "`ARCH' set to `~a'~%" (getenv "ARCH"))) + + (and (zero? (system* "make" "defconfig")) + (zero? (system* "make" "mrproper" "headers_check"))))) + (install-phase + `(lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (and (zero? (system* "make" + (string-append "INSTALL_HDR_PATH=" out) + "headers_install")) + (mkdir (string-append out "/include/config")) + (call-with-output-file + (string-append out + "/include/config/kernel.release") + (lambda (p) + (format p "~a-default~%" ,version*)))))))) + (package + (name "linux-libre-headers") + (version version*) + (source (origin + (method url-fetch) + (uri (string-append + "http://linux-libre.fsfla.org/pub/linux-libre/releases/3.3.8-gnu/linux-libre-" + version "-gnu.tar.xz")) + (sha256 + (base32 + "0jkfh0z1s6izvdnc3njm39dhzp1cg8i06jv06izwqz9w9qsprvnl")))) + (build-system gnu-build-system) + (native-inputs `(("perl" ,perl))) + (arguments + `(#:modules ((guix build gnu-build-system) + (guix build utils) + (srfi srfi-1)) + #:phases (alist-replace + 'build ,build-phase + (alist-replace + 'install ,install-phase + (alist-delete 'configure %standard-phases))) + #:tests? #f)) + (synopsis "GNU Linux-Libre kernel headers") + (description "Headers of the Linux-Libre kernel.") + (license "GPLv2") + (home-page "http://www.gnu.org/software/linux-libre/")))) + +(define-public linux-pam + (package + (name "linux-pam") + (version "1.1.6") + (source + (origin + (method url-fetch) + (uri (list (string-append "http://www.linux-pam.org/library/Linux-PAM-" + version ".tar.bz2") + (string-append "mirror://kernel.org/linux/libs/pam/library/Linux-PAM-" + version ".tar.bz2"))) + (sha256 + (base32 + "1hlz2kqvbjisvwyicdincq7nz897b9rrafyzccwzqiqg53b8gf5s")))) + (build-system gnu-build-system) + (inputs + `(("flex" ,flex) + + ;; TODO: optional dependencies + ;; ("libxcrypt" ,libxcrypt) + ;; ("cracklib" ,cracklib) + )) + (arguments + ;; XXX: Tests won't run in chroot, presumably because /etc/pam.d + ;; isn't available. + '(#:tests? #f)) + (home-page "http://www.linux-pam.org/") + (synopsis "Pluggable authentication modules for Linux") + (description + "A *Free* project to implement OSF's RFC 86.0. +Pluggable authentication modules are small shared object files that can +be used through the PAM API to perform tasks, like authenticating a user +at login. Local and dynamic reconfiguration are its key features") + (license bsd-3))) + +(define-public psmisc + (package + (name "psmisc") + (version "22.20") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/psmisc/psmisc/psmisc-" + version ".tar.gz")) + (sha256 + (base32 + "052mfraykmxnavpi8s78aljx8w87hyvpx8mvzsgpjsjz73i28wmi")))) + (build-system gnu-build-system) + (inputs `(("ncurses" ,ncurses))) + (home-page "http://psmisc.sourceforge.net/") + (synopsis + "set of utilities that use the proc filesystem, such as fuser, killall, and pstree") + (description + "This PSmisc package is a set of some small useful utilities that +use the proc filesystem. We're not about changing the world, but +providing the system administrator with some help in common tasks.") + (license gpl2+))) + +(define-public util-linux + (package + (name "util-linux") + (version "2.21") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://kernel.org/linux/utils/" + name "/v" version "/" + name "-" version ".2" ".tar.xz")) + (sha256 + (base32 + "1rpgghf7n0zx0cdy8hibr41wvkm2qp1yvd8ab1rxr193l1jmgcir")))) + (build-system gnu-build-system) + (arguments + `(#:configure-flags '("--disable-use-tty-group") + #:phases (alist-cons-after + 'install 'patch-chkdupexe + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (substitute* (string-append out "/bin/chkdupexe") + ;; Allow 'patch-shebang' to do its work. + (("@PERL@") "/bin/perl")))) + %standard-phases))) + (inputs `(("zlib" ,guix:zlib) + ("ncurses" ,ncurses) + ("perl" ,perl))) + (home-page "https://www.kernel.org/pub/linux/utils/util-linux/") + (synopsis + "util-linux is a random collection of utilities for the Linux kernel") + (description + "util-linux is a random collection of utilities for the Linux kernel.") + + ;; Note that util-linux doesn't use the same license for all the + ;; code. GPLv2+ is the default license for a code without an + ;; explicitly defined license. + (license (list gpl3+ gpl2+ gpl2 lgpl2.0+ + bsd-4 public-domain)))) + +(define-public procps + (package + (name "procps") + (version "3.2.8") + (source (origin + (method url-fetch) + (uri (string-append "http://procps.sourceforge.net/procps-" + version ".tar.gz")) + (sha256 + (base32 + "0d8mki0q4yamnkk4533kx8mc0jd879573srxhg6r2fs3lkc6iv8i")))) + (build-system gnu-build-system) + (inputs `(("ncurses" ,ncurses) + ("patch/make-3.82" ,(search-patch "procps-make-3.82.patch")))) + (arguments + '(#:patches (list (assoc-ref %build-inputs "patch/make-3.82")) + #:phases (alist-replace + 'configure + (lambda* (#:key outputs #:allow-other-keys) + ;; No `configure', just a single Makefile. + (let ((out (assoc-ref outputs "out"))) + (substitute* "Makefile" + (("/usr/") "/") + (("--(owner|group) 0") "") + (("ldconfig") "true") + (("^LDFLAGS[[:blank:]]*:=(.*)$" _ value) + ;; Add libproc to the RPATH. + (string-append "LDFLAGS := -Wl,-rpath=" + out "/lib" value)))) + (setenv "CC" "gcc")) + (alist-replace + 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (and (zero? + (system* "make" "install" + (string-append "DESTDIR=" out))) + + ;; Sanity check. + (zero? + (system* (string-append out "/bin/ps") + "--version"))))) + %standard-phases)) + + ;; What did you expect? Tests? + #:tests? #f)) + (home-page "http://procps.sourceforge.net/") + (synopsis + "Utilities that give information about processes using the /proc filesystem") + (description + "procps is the package that has a bunch of small useful utilities +that give information about processes using the Linux /proc file system. +The package includes the programs ps, top, vmstat, w, kill, free, +slabtop, and skill.") + (license gpl2))) + +(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/gnu/packages/lout.scm b/gnu/packages/lout.scm new file mode 100644 index 0000000000..b95b694ab4 --- /dev/null +++ b/gnu/packages/lout.scm @@ -0,0 +1,132 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Ludovic Courtès +;;; +;;; 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 . + +(define-module (gnu packages lout) + #:use-module (guix licenses) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix utils) + #:use-module (guix build-system gnu)) + +(define-public lout + ;; This one is a bit tricky, because it doesn't follow the GNU Build System + ;; rules. Instead, it has a makefile that has to be patched to set the + ;; prefix, etc., and it has no makefile rules to build its doc. + (let ((configure-phase + '(lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (doc (assoc-ref outputs "doc"))) + (substitute* "makefile" + (("^PREFIX[[:blank:]]*=.*$") + (string-append "PREFIX = " out "\n")) + (("^LOUTLIBDIR[[:blank:]]*=.*$") + (string-append "LOUTLIBDIR = " out "/lib/lout\n")) + (("^LOUTDOCDIR[[:blank:]]*=.*$") + (string-append "LOUTDOCDIR = " doc "/doc/lout\n")) + (("^MANDIR[[:blank:]]*=.*$") + (string-append "MANDIR = " out "/man\n"))) + (mkdir out) + (mkdir (string-append out "/bin")) + (mkdir (string-append out "/lib")) + (mkdir (string-append out "/man")) + (mkdir-p (string-append doc "/doc/lout"))))) + (install-man-phase + '(lambda* (#:key outputs #:allow-other-keys) + (zero? (system* "make" "installman")))) + (doc-phase + '(lambda* (#:key outputs #:allow-other-keys) + (define out + (assoc-ref outputs "doc")) + + (setenv "PATH" + (string-append (assoc-ref outputs "out") + "/bin:" (getenv "PATH"))) + (chdir "doc") + (every (lambda (doc) + (format #t "doc: building `~a'...~%" doc) + (with-directory-excursion doc + (let ((file (string-append out "/doc/lout/" + doc ".ps"))) + (and (or (file-exists? "outfile.ps") + (zero? (system* "lout" "-r4" "-o" + "outfile.ps" "all"))) + (begin + (copy-file "outfile.ps" file) + #t) + (zero? (system* "ps2pdf" + "-dPDFSETTINGS=/prepress" + "-sPAPERSIZE=a4" + file + (string-append out "/doc/lout/" + doc ".pdf"))))))) + '("design" "expert" "slides" "user"))))) + (package + (name "lout") + (version "3.39") + (source (origin + (method url-fetch) + ;; FIXME: `http-get' doesn't follow redirects, hence the URL. + (uri (string-append + "http://download-mirror.savannah.gnu.org/releases/lout/lout-" + version ".tar.gz")) + (sha256 + (base32 + "12gkyqrn0kaa8xq7sc7v3wm407pz2fxg9ngc75aybhi5z825b9vq")))) + (build-system gnu-build-system) ; actually, just a makefile + (outputs '("out" "doc")) + (inputs + `(;; FIXME: Add dependency on Ghostscript. + ;; ("ghostscript" ,(lambda _ + ;; (nixpkgs-derivation "ghostscript"))) + )) + (arguments `(#:modules ((guix build utils) + (guix build gnu-build-system) + (srfi srfi-1)) ; we need SRFI-1 + #:tests? #f ; no "check" target + + ;; Customize the build phases. + #:phases (alist-replace + 'configure ,configure-phase + + (alist-cons-after + 'install 'install-man-pages + ,install-man-phase + + (alist-cons-after + 'install 'install-doc + ,doc-phase + %standard-phases))))) + (synopsis "Lout, a document layout system similar in style to LaTeX") + (description +"The Lout document formatting system is now reads a high-level description of +a document similar in style to LaTeX and produces a PostScript or plain text +output file. + +Lout offers an unprecedented range of advanced features, including optimal +paragraph and page breaking, automatic hyphenation, PostScript EPS file +inclusion and generation, equation formatting, tables, diagrams, rotation and +scaling, sorted indexes, bibliographic databases, running headers and +odd-even pages, automatic cross referencing, multilingual documents including +hyphenation (most European languages are supported), formatting of computer +programs, and much more, all ready to use. Furthermore, Lout is easily +extended with definitions which are very much easier to write than troff of +TeX macros because Lout is a high-level, purely functional language, the +outcome of an eight-year research project that went back to the +beginning.") + (license gpl3+) + (home-page "http://savannah.nongnu.org/projects/lout/")))) diff --git a/gnu/packages/lsh.scm b/gnu/packages/lsh.scm new file mode 100644 index 0000000000..b42eb24639 --- /dev/null +++ b/gnu/packages/lsh.scm @@ -0,0 +1,126 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012, 2013 Ludovic Courtès +;;; +;;; 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 . + +(define-module (gnu packages lsh) + #:use-module (guix licenses) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu) + #:use-module (distro) + #:use-module (gnu packages m4) + #:use-module (gnu packages linux) + #:use-module ((gnu packages compression) + #:renamer (symbol-prefix-proc 'guix:)) + #:use-module (gnu packages multiprecision) + #:use-module (gnu packages readline) + #:use-module (gnu packages gperf) + #:use-module (gnu packages base)) + +(define-public liboop + (package + (name "liboop") + (version "1.0") + (source + (origin + (method url-fetch) + (uri (string-append "http://download.ofb.net/liboop/liboop-" + version ".tar.gz")) + (sha256 + (base32 + "0z6rlalhvfca64jpvksppc9bdhs7jwhiw4y35g5ibvh91xp3rn1l")))) + (build-system gnu-build-system) + (home-page "http://liboop.ofb.net/") + (synopsis "`liboop', an event loop library") + (description "liboop is an event loop library.") + (license lgpl2.1+))) + +(define-public lsh + (package + (name "lsh") + (version "2.0.4") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://gnu/lsh/lsh-" + version ".tar.gz")) + (sha256 + (base32 + "149hf49xcj99wwvi7hcb59igq4vpyv8har1br1if3lrsw5irsjv1")))) + (build-system gnu-build-system) + (inputs + `(("linux-pam" ,linux-pam) + ("m4" ,m4) + ("readline" ,readline) + ("liboop" ,liboop) + ("zlib" ,guix:zlib) + ("gmp" ,gmp) + ("guile" ,guile-final) + ("gperf" ,gperf) + ("psmisc" ,psmisc) ; for `killall' + + ("patch/no-root-login" ,(search-patch "lsh-no-root-login.patch")) + ("patch/guile-compat" ,(search-patch "lsh-guile-compat.patch")) + ("patch/pam-service-name" + ,(search-patch "lsh-pam-service-name.patch")))) + (arguments + '(#:patches (list (assoc-ref %build-inputs "patch/no-root-login") + (assoc-ref %build-inputs "patch/pam-service-name") + (assoc-ref %build-inputs "patch/guile-compat")) + + ;; Skip the `configure' test that checks whether /dev/ptmx & + ;; co. work as expected, because it relies on impurities (for + ;; instance, /dev/pts may be unavailable in chroots.) + #:configure-flags '("lsh_cv_sys_unix98_ptys=yes") + + ;; FIXME: Tests won't run in a chroot, presumably because + ;; /etc/profile is missing, and thus clients get an empty $PATH + ;; and nothing works. + #:tests? #f + + #:phases + (alist-cons-before + 'configure 'fix-test-suite + (lambda _ + ;; Tests rely on $USER being set. + (setenv "USER" "guix") + + (substitute* "src/testsuite/functions.sh" + (("localhost") + ;; Avoid host name lookups since they don't work in chroot + ;; builds. + "127.0.0.1") + (("set -e") + ;; Make tests more verbose. + "set -e\nset -x")) + + (substitute* (find-files "src/testsuite" "-test$") + (("localhost") "127.0.0.1")) + + (substitute* "src/testsuite/login-auth-test" + (("/bin/cat") + ;; Use the right path to `cat'. + (which "cat")))) + %standard-phases))) + (home-page "http://www.lysator.liu.se/~nisse/lsh/") + (synopsis + "GNU lsh, a GPL'd implementation of the SSH protocol") + (description + "lsh is a free implementation (in the GNU sense) of the ssh +version 2 protocol, currently being standardised by the IETF +SECSH working group.") + (license gpl2+))) diff --git a/gnu/packages/m4.scm b/gnu/packages/m4.scm new file mode 100644 index 0000000000..bac8d02c85 --- /dev/null +++ b/gnu/packages/m4.scm @@ -0,0 +1,87 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Ludovic Courtès +;;; +;;; 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 . + +(define-module (gnu packages m4) + #:use-module (guix licenses) + #:use-module (distro) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix utils) + #:use-module (guix build-system gnu)) + +(define-public m4 + (package + (name "m4") + (version "1.4.16") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/m4/m4-" + version ".tar.bz2")) + (sha256 + (base32 + "035r7ma272j2cwni2961jp22k6bn3n9xwn3b3qbcn2yrvlghql22")))) + (build-system gnu-build-system) + (arguments (case-lambda + ((system) + ;; XXX: Disable tests on those platforms with know issues. + `(#:tests? ,(not (member system + '("x86_64-darwin" + "i686-cygwin" + "i686-sunos"))) + #:patches (list (assoc-ref %build-inputs "patch/s_isdir") + (assoc-ref %build-inputs + "patch/readlink-EINVAL") + (assoc-ref %build-inputs "patch/gets")) + #:phases (alist-cons-before + 'check 'pre-check + (lambda* (#:key inputs #:allow-other-keys) + ;; Fix references to /bin/sh. + (let ((bash (assoc-ref inputs "bash"))) + (for-each patch-shebang + (find-files "tests" "\\.sh$")) + (substitute* (find-files "tests" + "posix_spawn") + (("/bin/sh") + (format #f "~a/bin/bash" bash))))) + %standard-phases))) + ((system cross-system) + `(#:patches (list (assoc-ref %build-inputs "patch/s_isdir") + (assoc-ref %build-inputs + "patch/readlink-EINVAL") + (assoc-ref %build-inputs "patch/gets")))))) + (inputs `(("patch/s_isdir" ,(search-patch "m4-s_isdir.patch")) + ("patch/readlink-EINVAL" + ,(search-patch "m4-readlink-EINVAL.patch")) + ("patch/gets" ,(search-patch "m4-gets-undeclared.patch")))) + (synopsis "GNU M4, a macro processor") + (description + "GNU M4 is an implementation of the traditional Unix macro processor. It +is mostly SVR4 compatible although it has some extensions (for example, +handling more than 9 positional parameters to macros). GNU M4 also has +built-in functions for including files, running shell commands, doing +arithmetic, etc. + +GNU M4 is a macro processor in the sense that it copies its input to the +output expanding macros as it goes. Macros are either builtin or +user-defined and can take any number of arguments. Besides just doing macro +expansion, m4 has builtin functions for including named files, running UNIX +commands, doing integer arithmetic, manipulating text in various ways, +recursion etc... m4 can be used either as a front-end to a compiler or as a +macro processor in its own right.") + (license gpl3+) + (home-page "http://www.gnu.org/software/m4/"))) diff --git a/gnu/packages/mailutils.scm b/gnu/packages/mailutils.scm new file mode 100644 index 0000000000..f6d46aaf34 --- /dev/null +++ b/gnu/packages/mailutils.scm @@ -0,0 +1,106 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2013 Ludovic Courtès +;;; +;;; 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 . + +(define-module (gnu packages mailutils) + #:use-module (distro) + #:use-module (gnu packages linux) + #:use-module (gnu packages gnutls) + #:use-module (gnu packages gdbm) + #:use-module (gnu packages guile) + #:use-module (gnu packages ncurses) + #:use-module (gnu packages readline) + #:use-module (gnu packages dejagnu) + #:use-module (gnu packages m4) + #:use-module (gnu packages texinfo) + #:use-module (gnu packages mysql) + #:use-module (gnu packages autotools) + #:use-module (guix licenses) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu)) + +(define-public mailutils + (package + (name "mailutils") + (version "2.2") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/mailutils/mailutils-" + version ".tar.bz2")) + (sha256 + (base32 + "0szbqa12zqzldqyw97lxqax3ja2adis83i7brdfsxmrfw68iaf65")))) + (build-system gnu-build-system) + (arguments + '(;; TODO: Add `--with-sql'. + #:patches (list (assoc-ref %build-inputs + "patch/gets-undeclared")) + #:phases (alist-cons-before + 'build 'pre-build + (lambda _ + ;; Use Guile 2.0's public API. + (substitute* "libmu_scm/mu_message.c" + (("scm_i_string_length") + "scm_c_string_length")) + + ;; This file should be generated to use the right + ;; value of $(libdir) et al. + (delete-file "libmu_scm/mailutils.scm") + + ;; Use the right file name for `cat'. + (substitute* "testsuite/lib/mailutils.exp" + (("/bin/cat") + (which "cat")))) + %standard-phases) + #:parallel-tests? #f)) + (inputs + `(("dejagnu" ,dejagnu) + ("m4" ,m4) + ("texinfo" ,texinfo) + ("guile" ,guile-2.0) + ("gnutls" ,gnutls) + ("ncurses" ,ncurses) + ("readline" ,readline) + ("linux-pam" ,linux-pam) + ("libtool" ,libtool) + ("gdbm" ,gdbm) + ("patch/gets-undeclared" + ,(search-patch "m4-gets-undeclared.patch")))) + (home-page "http://www.gnu.org/software/mailutils/") + (synopsis "A rich and powerful protocol-independent mail framework") + (description + "GNU Mailutils is a rich and powerful protocol-independent mail +framework. It contains a series of useful mail libraries, clients, and +servers. These are the primary mail utilities for the GNU system. The +central library is capable of handling electronic mail in various +mailbox formats and protocols, both local and remote. Specifically, +this project contains a POP3 server, an IMAP4 server, and a Sieve mail +filter. It also provides a POSIX `mailx' client, and a collection of +other handy tools. + +The GNU Mailutils libraries supply an ample set of primitives for +handling electronic mail in programs written in C, C++, Python or +Scheme. + +The utilities provided by Mailutils include imap4d and pop3d mail +servers, mail reporting utility comsatd, general-purpose mail delivery +agent maidag, mail filtering program sieve, and an implementation of MH +message handling system.") + (license + ;; Libraries are under LGPLv3+, and programs under GPLv3+. + (list gpl3+ lgpl3+)))) diff --git a/gnu/packages/make-bootstrap.scm b/gnu/packages/make-bootstrap.scm new file mode 100644 index 0000000000..20679d2244 --- /dev/null +++ b/gnu/packages/make-bootstrap.scm @@ -0,0 +1,562 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012, 2013 Ludovic Courtès +;;; +;;; 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 . + +(define-module (gnu packages make-bootstrap) + #:use-module (guix utils) + #:use-module (guix packages) + #:use-module (guix licenses) + #:use-module (guix build-system trivial) + #:use-module (guix build-system gnu) + #:use-module ((distro) #:select (search-patch)) + #:use-module (gnu packages base) + #:use-module (gnu packages bash) + #:use-module (gnu packages compression) + #:use-module (gnu packages gawk) + #:use-module (gnu packages guile) + #:use-module (gnu packages linux) + #:use-module (gnu packages multiprecision) + #:use-module (ice-9 match) + #:use-module (srfi srfi-1) + #:export (%bootstrap-binaries-tarball + %binutils-bootstrap-tarball + %glibc-bootstrap-tarball + %gcc-bootstrap-tarball + %guile-bootstrap-tarball + %bootstrap-tarballs)) + +;;; Commentary: +;;; +;;; This modules provides tools to build tarballs of the "bootstrap binaries" +;;; used in (gnu packages bootstrap). These statically-linked binaries are +;;; taken for granted and used as the root of the whole bootstrap procedure. +;;; +;;; Code: + +(define %glibc-for-bootstrap + ;; A libc whose `system' and `popen' functions looks for `sh' in $PATH, + ;; without nscd, and with static NSS modules. + (package (inherit glibc-final) + (arguments + (lambda (system) + (substitute-keyword-arguments ((package-arguments glibc-final) system) + ((#:patches patches) + `(cons (assoc-ref %build-inputs "patch/system") + ,patches)) + ((#:configure-flags flags) + ;; Arrange so that getaddrinfo & co. do not contact the nscd, + ;; and can use statically-linked NSS modules. + `(cons* "--disable-nscd" "--disable-build-nscd" + "--enable-static-nss" + ,flags))))) + (inputs + `(("patch/system" ,(search-patch "glibc-bootstrap-system.patch")) + ,@(package-inputs glibc-final))))) + +(define %standard-inputs-with-relocatable-glibc + ;; Standard inputs with the above libc and corresponding GCC. + `(("libc", %glibc-for-bootstrap) + ("gcc" ,(package-with-explicit-inputs + gcc-4.7 + `(("libc",%glibc-for-bootstrap) + ,@(alist-delete "libc" %final-inputs)) + (current-source-location))) + ,@(fold alist-delete %final-inputs '("libc" "gcc")))) + +(define %bash-static + (static-package bash-light)) + +(define %static-inputs + ;; Packages that are to be used as %BOOTSTRAP-INPUTS. + (let ((coreutils (package (inherit coreutils) + (arguments + `(#:configure-flags + '("--disable-nls" + "--disable-silent-rules" + "--enable-no-install-program=stdbuf,libstdbuf.so" + "CFLAGS=-Os -g0" ; smaller, please + "LDFLAGS=-static -pthread") + #:tests? #f ; signal-related Gnulib tests fail + ,@(package-arguments coreutils))) + + ;; Remove optional dependencies such as GMP. + (inputs `(,(assoc "perl" (package-inputs coreutils)))))) + (bzip2 (package (inherit bzip2) + (arguments + (substitute-keyword-arguments (package-arguments bzip2) + ((#:phases phases) + `(alist-cons-before + 'build 'dash-static + (lambda _ + (substitute* "Makefile" + (("^LDFLAGS[[:blank:]]*=.*$") + "LDFLAGS = -static"))) + ,phases)))))) + (xz (package (inherit xz) + (arguments + `(#:strip-flags '("--strip-all") + #:phases (alist-cons-before + 'configure 'static-executable + (lambda _ + ;; Ask Libtool for a static executable. + (substitute* "src/xz/Makefile.in" + (("^xz_LDADD =") + "xz_LDADD = -all-static"))) + %standard-phases))))) + (gawk (package (inherit gawk) + (arguments + (lambda (system) + `(#:patches (list (assoc-ref %build-inputs "patch/sh")) + ,@(substitute-keyword-arguments + ((package-arguments gawk) system) + ((#:phases phases) + `(alist-cons-before + 'configure 'no-export-dynamic + (lambda _ + ;; Since we use `-static', remove + ;; `-export-dynamic'. + (substitute* "configure" + (("-export-dynamic") ""))) + ,phases)))))) + (inputs `(("patch/sh" ,(search-patch "gawk-shell.patch")))))) + (finalize (lambda (p) + (static-package (package-with-explicit-inputs + p + %standard-inputs-with-relocatable-glibc) + (current-source-location))))) + `(,@(map (match-lambda + ((name package) + (list name (finalize package)))) + `(("tar" ,tar) + ("gzip" ,gzip) + ("bzip2" ,bzip2) + ("xz" ,xz) + ("patch" ,patch) + ("coreutils" ,coreutils) + ("sed" ,sed) + ("grep" ,grep) + ("gawk" ,gawk))) + ("bash" ,%bash-static) + ;; ("ld-wrapper" ,ld-wrapper) + ;; ("binutils" ,binutils-final) + ;; ("gcc" ,gcc-final) + ;; ("libc" ,glibc-final) + ))) + +(define %static-binaries + (package + (name "static-binaries") + (version "0") + (build-system trivial-build-system) + (source #f) + (inputs %static-inputs) + (arguments + `(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (ice-9 ftw) + (ice-9 match) + (srfi srfi-1) + (srfi srfi-26) + (guix build utils)) + + (let () + (define (directory-contents dir) + (map (cut string-append dir "/" <>) + (scandir dir (negate (cut member <> '("." "..")))))) + + (define (copy-directory source destination) + (for-each (lambda (file) + (format #t "copying ~s...~%" file) + (copy-file file + (string-append destination "/" + (basename file)))) + (directory-contents source))) + + (let* ((out (assoc-ref %outputs "out")) + (bin (string-append out "/bin"))) + (mkdir-p bin) + + ;; Copy Coreutils binaries. + (let* ((coreutils (assoc-ref %build-inputs "coreutils")) + (source (string-append coreutils "/bin"))) + (copy-directory source bin)) + + ;; For the other inputs, copy just one binary, which has the + ;; same name as the input. + (for-each (match-lambda + ((name . dir) + (let ((source (string-append dir "/bin/" name))) + (format #t "copying ~s...~%" source) + (copy-file source + (string-append bin "/" name))))) + (alist-delete "coreutils" %build-inputs)) + + ;; But of course, there are exceptions to this rule. + (let ((grep (assoc-ref %build-inputs "grep"))) + (copy-file (string-append grep "/bin/fgrep") + (string-append bin "/fgrep")) + (copy-file (string-append grep "/bin/egrep") + (string-append bin "/egrep"))) + + ;; Clear references to the store path. + (for-each remove-store-references + (directory-contents bin)) + + (with-directory-excursion bin + ;; Programs such as Perl's build system want these aliases. + (symlink "bash" "sh") + (symlink "gawk" "awk")) + + #t))))) + (synopsis "Statically-linked bootstrap binaries") + (description + "Binaries used to bootstrap the distribution.") + (license #f) + (home-page #f))) + +(define %binutils-static + ;; Statically-linked Binutils. + (package (inherit binutils) + (name "binutils-static") + (arguments + `(#:configure-flags '("--disable-gold" "--with-lib-path=/no-ld-lib-path") + #:strip-flags '("--strip-all") + #:phases (alist-cons-before + 'configure 'all-static + (lambda _ + ;; The `-all-static' libtool flag can only be passed + ;; after `configure', since configure tests don't use + ;; libtool, and only for executables built with libtool. + (substitute* '("binutils/Makefile.in" + "gas/Makefile.in" + "ld/Makefile.in") + (("^LDFLAGS =(.*)$" line) + (string-append line + "\nAM_LDFLAGS = -static -all-static\n")))) + %standard-phases))))) + +(define %binutils-static-stripped + ;; The subset of Binutils that we need. + (package (inherit %binutils-static) + (build-system trivial-build-system) + (arguments + `(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils)) + + (setvbuf (current-output-port) _IOLBF) + (let* ((in (assoc-ref %build-inputs "binutils")) + (out (assoc-ref %outputs "out")) + (bin (string-append out "/bin"))) + (mkdir-p bin) + (for-each (lambda (file) + (let ((target (string-append bin "/" file))) + (format #t "copying `~a'...~%" file) + (copy-file (string-append in "/bin/" file) + target) + (remove-store-references target))) + '("ar" "as" "ld" "nm" "objcopy" "objdump" + "ranlib" "readelf" "size" "strings" "strip")) + #t)))) + (inputs `(("binutils" ,%binutils-static))))) + +(define %glibc-stripped + ;; GNU libc's essential shared libraries, dynamic linker, and headers, + ;; with all references to store directories stripped. As a result, + ;; libc.so is unusable and need to be patched for proper relocation. + (let ((glibc %glibc-for-bootstrap)) + (package (inherit glibc) + (name "glibc-stripped") + (build-system trivial-build-system) + (arguments + `(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils)) + + (setvbuf (current-output-port) _IOLBF) + (let* ((out (assoc-ref %outputs "out")) + (libdir (string-append out "/lib")) + (incdir (string-append out "/include")) + (libc (assoc-ref %build-inputs "libc")) + (linux (assoc-ref %build-inputs "linux-headers"))) + (mkdir-p libdir) + (for-each (lambda (file) + (let ((target (string-append libdir "/" + (basename file)))) + (copy-file file target) + (remove-store-references target))) + (find-files (string-append libc "/lib") + "^(crt.*|ld.*|lib(c|m|dl|rt|pthread|nsl|util).*\\.so(\\..*)?|libc_nonshared\\.a)$")) + + (copy-recursively (string-append libc "/include") incdir) + + ;; Copy some of the Linux-Libre headers that glibc headers + ;; refer to. + (mkdir (string-append incdir "/linux")) + (for-each (lambda (file) + (copy-file (string-append linux "/include/linux/" file) + (string-append incdir "/linux/" + (basename file)))) + '("limits.h" "errno.h" "socket.h" "kernel.h" + "sysctl.h" "param.h" "ioctl.h" "types.h" + "posix_types.h" "stddef.h")) + + (copy-recursively (string-append linux "/include/asm") + (string-append incdir "/asm")) + (copy-recursively (string-append linux "/include/asm-generic") + (string-append incdir "/asm-generic")) + #t)))) + (inputs `(("libc" ,glibc) + ("linux-headers" ,linux-libre-headers)))))) + +(define %gcc-static + ;; A statically-linked GCC, with stripped-down functionality. + (package-with-explicit-inputs + (package (inherit gcc-final) + (name "gcc-static") + (arguments + (lambda (system) + `(#:modules ((guix build utils) + (guix build gnu-build-system) + (srfi srfi-1) + (srfi srfi-26) + (ice-9 regex)) + ,@(substitute-keyword-arguments ((package-arguments gcc-final) system) + ((#:guile _) #f) + ((#:implicit-inputs? _) #t) + ((#:configure-flags flags) + `(append (list + "--disable-shared" + "--disable-plugin" + "--enable-languages=c" + "--disable-libmudflap" + "--disable-libgomp" + "--disable-libssp" + "--disable-libquadmath" + "--disable-decimal-float") + (remove (cut string-match "--(.*plugin|enable-languages)" <>) + ,flags))) + ((#:make-flags flags) + `(cons "BOOT_LDFLAGS=-static" ,flags)))))) + (inputs `(("gmp-source" ,(package-source gmp)) + ("mpfr-source" ,(package-source mpfr)) + ("mpc-source" ,(package-source mpc)) + ("binutils" ,binutils-final) + ,@(package-inputs gcc-4.7)))) + %standard-inputs-with-relocatable-glibc)) + +(define %gcc-stripped + ;; The subset of GCC files needed for bootstrap. + (package (inherit gcc-4.7) + (name "gcc-stripped") + (build-system trivial-build-system) + (source #f) + (arguments + `(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (srfi srfi-1) + (srfi srfi-26) + (guix build utils)) + + (setvbuf (current-output-port) _IOLBF) + (let* ((out (assoc-ref %outputs "out")) + (bindir (string-append out "/bin")) + (libdir (string-append out "/lib")) + (libexecdir (string-append out "/libexec")) + (gcc (assoc-ref %build-inputs "gcc"))) + (copy-recursively (string-append gcc "/bin") bindir) + (for-each remove-store-references + (find-files bindir ".*")) + + (copy-recursively (string-append gcc "/lib") libdir) + (for-each remove-store-references + (remove (cut string-suffix? ".h" <>) + (find-files libdir ".*"))) + + (copy-recursively (string-append gcc "/libexec") + libexecdir) + (for-each remove-store-references + (find-files libexecdir ".*")) + #t)))) + (inputs `(("gcc" ,%gcc-static))))) + +(define %guile-static + ;; A statically-linked Guile that is relocatable--i.e., it can search + ;; .scm and .go files relative to its installation directory, rather + ;; than in hard-coded configure-time paths. + (let ((guile (package (inherit guile-2.0) + (inputs + `(("patch/relocatable" + ,(search-patch "guile-relocatable.patch")) + ("patch/utf8" + ,(search-patch "guile-default-utf8.patch")) + ,@(package-inputs guile-2.0))) + (arguments + `(;; When `configure' checks for ltdl availability, it + ;; doesn't try to link using libtool, and thus fails + ;; because of a missing -ldl. Work around that. + #:configure-flags '("LDFLAGS=-ldl") + + #:phases (alist-cons-before + 'configure 'static-guile + (lambda _ + (substitute* "libguile/Makefile.in" + ;; Create a statically-linked `guile' + ;; executable. + (("^guile_LDFLAGS =") + "guile_LDFLAGS = -all-static") + + ;; Add `-ldl' *after* libguile-2.0.la. + (("^guile_LDADD =(.*)$" _ ldadd) + (string-append "guile_LDADD = " + (string-trim-right ldadd) + " -ldl\n")))) + %standard-phases) + + ;; Allow Guile to be relocated, as is needed during + ;; bootstrap. + #:patches + (list (assoc-ref %build-inputs "patch/relocatable") + (assoc-ref %build-inputs "patch/utf8")) + + ;; There are uses of `dynamic-link' in + ;; {foreign,coverage}.test that don't fly here. + #:tests? #f))))) + (package-with-explicit-inputs (static-package guile) + %standard-inputs-with-relocatable-glibc + (current-source-location)))) + +(define %guile-static-stripped + ;; A stripped static Guile binary, for use during bootstrap. + (package (inherit %guile-static) + (name "guile-static-stripped") + (build-system trivial-build-system) + (arguments + `(#:modules ((guix build utils)) + #:builder + (let () + (use-modules (guix build utils)) + + (let ((in (assoc-ref %build-inputs "guile")) + (out (assoc-ref %outputs "out"))) + (mkdir-p (string-append out "/share/guile/2.0")) + (copy-recursively (string-append in "/share/guile/2.0") + (string-append out "/share/guile/2.0")) + + (mkdir-p (string-append out "/lib/guile/2.0/ccache")) + (copy-recursively (string-append in "/lib/guile/2.0/ccache") + (string-append out "/lib/guile/2.0/ccache")) + + (mkdir (string-append out "/bin")) + (copy-file (string-append in "/bin/guile") + (string-append out "/bin/guile")) + (remove-store-references (string-append out "/bin/guile")) + #t)))) + (inputs `(("guile" ,%guile-static))))) + +(define (tarball-package pkg) + "Return a package containing a tarball of PKG." + (package (inherit pkg) + (location (source-properties->location (current-source-location))) + (name (string-append (package-name pkg) "-tarball")) + (build-system trivial-build-system) + (inputs `(("tar" ,tar) + ("xz" ,xz) + ("input" ,pkg))) + (arguments + (lambda (system) + (let ((name (package-name pkg)) + (version (package-version pkg))) + `(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils)) + (let ((out (assoc-ref %outputs "out")) + (input (assoc-ref %build-inputs "input")) + (tar (assoc-ref %build-inputs "tar")) + (xz (assoc-ref %build-inputs "xz"))) + (mkdir out) + (set-path-environment-variable "PATH" '("bin") (list tar xz)) + (with-directory-excursion input + (zero? (system* "tar" "cJvf" + (string-append out "/" + ,name "-" ,version + "-" ,system ".tar.xz") + "."))))))))))) + +(define %bootstrap-binaries-tarball + ;; A tarball with the statically-linked bootstrap binaries. + (tarball-package %static-binaries)) + +(define %binutils-bootstrap-tarball + ;; A tarball with the statically-linked Binutils programs. + (tarball-package %binutils-static-stripped)) + +(define %glibc-bootstrap-tarball + ;; A tarball with GNU libc's shared libraries, dynamic linker, and headers. + (tarball-package %glibc-stripped)) + +(define %gcc-bootstrap-tarball + ;; A tarball with a dynamic-linked GCC and its headers. + (tarball-package %gcc-stripped)) + +(define %guile-bootstrap-tarball + ;; A tarball with the statically-linked, relocatable Guile. + (tarball-package %guile-static-stripped)) + +(define %bootstrap-tarballs + ;; A single derivation containing all the bootstrap tarballs, for + ;; convenience. + (package + (name "bootstrap-tarballs") + (version "0") + (source #f) + (build-system trivial-build-system) + (arguments + `(#:modules ((guix build utils)) + #:builder + (let ((out (assoc-ref %outputs "out"))) + (use-modules (guix build utils) + (ice-9 match) + (srfi srfi-26)) + + (setvbuf (current-output-port) _IOLBF) + (mkdir out) + (chdir out) + (for-each (match-lambda + ((name . directory) + (for-each (lambda (file) + (format #t "~a -> ~a~%" file out) + (symlink file (basename file))) + (find-files directory "\\.tar\\.")))) + %build-inputs) + #t))) + (inputs `(("guile-tarball" ,%guile-bootstrap-tarball) + ("gcc-tarball" ,%gcc-bootstrap-tarball) + ("binutils-tarball" ,%binutils-bootstrap-tarball) + ("glibc-tarball" ,%glibc-bootstrap-tarball) + ("coreutils&co-tarball" ,%bootstrap-binaries-tarball))) + (synopsis #f) + (description #f) + (home-page #f) + (license gpl3+))) + +;;; make-bootstrap.scm ends here diff --git a/gnu/packages/mit-krb5.scm b/gnu/packages/mit-krb5.scm new file mode 100644 index 0000000000..4b30a7ca17 --- /dev/null +++ b/gnu/packages/mit-krb5.scm @@ -0,0 +1,69 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Andreas Enge +;;; +;;; 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 . + +(define-module (gnu packages mit-krb5) + #:use-module (distro) + #:use-module (gnu packages bison) + #:use-module (gnu 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/gnu/packages/multiprecision.scm b/gnu/packages/multiprecision.scm new file mode 100644 index 0000000000..f05fe1994e --- /dev/null +++ b/gnu/packages/multiprecision.scm @@ -0,0 +1,124 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012, 2013 Ludovic Courtès +;;; +;;; 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 . + +(define-module (gnu packages multiprecision) + #:use-module (guix licenses) + #:use-module (distro) + #:use-module (gnu packages m4) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix utils) + #:use-module (guix build-system gnu)) + +(define-public gmp + (package + (name "gmp") + (version "5.1.0") + (source (origin + (method url-fetch) + (uri + ;; Note: this version is not available from GNU mirrors + ;; because it was made with an Automake affected by + ;; CVE-2012-3386. + (string-append "ftp://ftp.gmplib.org/pub/gmp-" + version "/gmp-" version ".tar.bz2")) + (sha256 + (base32 + "15n7xxgasbxdch8ii8z9ic6fxc2ysk3q8iavf55abjp5iylspnfz")))) + (build-system gnu-build-system) + (native-inputs `(("m4" ,m4))) + (arguments `(#:configure-flags + '(;; Build a "fat binary", with routines for several + ;; sub-architectures. + "--enable-fat" + "--enable-cxx"))) + (synopsis "GMP, the GNU multiple precision arithmetic library") + (description + "GMP is a free library for arbitrary precision arithmetic, operating on +signed integers, rational numbers, and floating point numbers. There is no +practical limit to the precision except the ones implied by the available +memory in the machine GMP runs on. GMP has a rich set of functions, and the +functions have a regular interface. + +The main target applications for GMP are cryptography applications and +research, Internet security applications, algebra systems, computational +algebra research, etc. + +GMP is carefully designed to be as fast as possible, both for small operands +and for huge operands. The speed is achieved by using fullwords as the basic +arithmetic type, by using fast algorithms, with highly optimised assembly +code for the most common inner loops for a lot of CPUs, and by a general +emphasis on speed. + +GMP is faster than any other bignum library. The advantage for GMP increases +with the operand sizes for many operations, since GMP uses asymptotically +faster algorithms.") + (license lgpl3+) + (home-page "http://gmplib.org/"))) + +(define-public mpfr + (package + (name "mpfr") + (version "3.1.1") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/mpfr/mpfr-" version + ".tar.xz")) + (sha256 (base32 + "0ym1ylcq803n52qrggxqmkz66gbn8ncc3ybawal31v5y5p1srma9")))) + (build-system gnu-build-system) + (inputs `(("gmp" ,gmp))) + (synopsis "GNU MPFR, a library for multiple-precision floating-point +arithmetic") + (description + "The GNU MPFR library is a C library for multiple-precision +floating-point computations with correct rounding. MPFR is based on the GMP +multiple-precision library. + +The main goal of MPFR is to provide a library for multiple-precision +floating-point computation which is both efficient and has a well-defined +semantics. It copies the good ideas from the ANSI/IEEE-754 standard for +double-precision floating-point arithmetic (53-bit mantissa).") + (license lgpl3+) + (home-page "http://www.mpfr.org/"))) + +(define-public mpc + (package + (name "mpc") + (version "1.0.1") + (source (origin + (method url-fetch) + (uri (string-append + "mirror://gnu/mpc/mpc-" version ".tar.gz")) + (sha256 (base32 + "1zq0fidp1jii2j5k5n9hmx55a6wwid33gjzhimvxq9d5zrf82npd")))) + (build-system gnu-build-system) + (inputs `(("gmp" ,gmp) + ("mpfr" ,mpfr))) + (synopsis "GNU MPC, a library for multiprecision complex arithmetic +with exact rounding") + (description + "GNU MPC is a C library for the arithmetic of complex numbers with +arbitrarily high precision and correct rounding of the result. It extends +the principles of the IEEE-754 standard for fixed precision real floating +point numbers to complex numbers, providing well-defined semantics for +every operation. At the same time, speed of operation at high precision +is a major design goal. The library is built upon and follows the same +principles as GNU MPFR.") + (license lgpl3+) + (home-page "http://mpc.multiprecision.org/"))) diff --git a/gnu/packages/mysql.scm b/gnu/packages/mysql.scm new file mode 100644 index 0000000000..517f65610e --- /dev/null +++ b/gnu/packages/mysql.scm @@ -0,0 +1,87 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2013 Ludovic Courtès +;;; +;;; 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 . + +(define-module (gnu packages mysql) + #:use-module (distro) + #:use-module (gnu packages perl) + #:use-module (gnu packages linux) + #:use-module (gnu packages openssl) + #:use-module (gnu packages compression) + #:use-module (gnu packages ncurses) + #:use-module ((guix licenses) #:select (gpl2)) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu)) + +(define-public mysql + (package + (name "mysql") + (version "5.1.54") + (source (origin + (method url-fetch) + (uri (string-append + "http://downloads.mysql.com/archives/mysql-5.1/mysql-" + version ".tar.gz")) + (sha256 + (base32 + "07xbnwk7h1xya8s6dw34nrv7ampzag8l0l1szd2pc9zyqkzhydw4")))) + (build-system gnu-build-system) + (inputs + `(("procps" ,procps) + ("openssl" ,openssl) + ("perl" ,perl) + ("zlib" ,zlib) + ("ncurses" ,ncurses))) + (arguments + '(#:modules ((guix build gnu-build-system) + (guix build utils) + (ice-9 ftw)) ; for "rm -rf" + #:phases (alist-cons-after + 'install 'clean-up + (lambda* (#:key outputs #:allow-other-keys) + ;; Remove the 112 MiB of tests that get installed. + (let ((out (assoc-ref outputs "out"))) + (define (rm-rf dir) + (file-system-fold (const #t) ; enter? + (lambda (file stat result) ; leaf + (delete-file file)) + (const #t) ; down + (lambda (dir stat result) ; up + (rmdir dir)) + (const #t) + (lambda (file stat errno result) + (format (current-error-port) + "error: ~a: ~a~%" + file (strerror errno))) + #t + (string-append out "/" dir))) + (rm-rf "mysql-test") + (rm-rf "sql-bench") + + ;; Compress the 14 MiB Info file. + (zero? + (system* "gzip" "--best" + (string-append out "/share/info/mysql.info"))))) + %standard-phases))) + (home-page "http://www.mysql.com/") + (synopsis "A fast, easy to use, and popular database") + (description + "MySQL is a fast, reliable, and easy to use relational database +management system that supports the standardized Structured Query +Language.") + (license gpl2))) diff --git a/gnu/packages/nano.scm b/gnu/packages/nano.scm new file mode 100644 index 0000000000..09fbe7f168 --- /dev/null +++ b/gnu/packages/nano.scm @@ -0,0 +1,52 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Nikita Karetnikov +;;; +;;; 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 . + +(define-module (gnu packages nano) + #:use-module (guix licenses) + #:use-module ((gnu packages gettext) + #:renamer (symbol-prefix-proc 'guix:)) + #:use-module (gnu packages ncurses) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu)) + +(define-public nano + (package + (name "nano") + (version "2.2.6") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://gnu/nano/nano-" + version ".tar.gz")) + (sha256 + (base32 + "0yp6pid67k8h7394spzw0067fl2r7rxm2b6kfccg87g8nlry2s5y")))) + (build-system gnu-build-system) + (inputs + `(("gettext" ,guix:gettext) + ("ncurses" ,ncurses))) + (home-page "http://www.nano-editor.org/") + (synopsis + "A small, user-friendly console text editor") + (description + "GNU nano is designed to be a free replacement for the Pico text +editor, part of the Pine email suite from The University of +Washington. It aims to emulate Pico as closely as possible and perhaps +include extra functionality.") + (license gpl3+))) ; some files are under GPLv2+ \ No newline at end of file diff --git a/gnu/packages/ncurses.scm b/gnu/packages/ncurses.scm new file mode 100644 index 0000000000..1be2551a63 --- /dev/null +++ b/gnu/packages/ncurses.scm @@ -0,0 +1,128 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012, 2013 Ludovic Courtès +;;; +;;; 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 . + +(define-module (gnu packages ncurses) + #:use-module (guix licenses) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix utils) + #:use-module (guix build-system gnu)) + +(define-public ncurses + (let ((patch-makefile-phase + '(lambda _ + (for-each patch-makefile-SHELL + (find-files "." "Makefile.in")))) + (configure-phase + '(lambda* (#:key inputs outputs configure-flags + #:allow-other-keys) + ;; The `ncursesw5-config' has a #!/bin/sh. We want to patch + ;; it to point to libc's embedded Bash, to avoid retaining a + ;; reference to the bootstrap Bash. + (let* ((libc (assoc-ref inputs "libc")) + (bash (string-append libc "/bin/bash")) + (out (assoc-ref outputs "out"))) + (format #t "configure flags: ~s~%" configure-flags) + (zero? (apply system* bash "./configure" + (string-append "SHELL=" bash) + (string-append "CONFIG_SHELL=" bash) + (string-append "--prefix=" out) + configure-flags))))) + (post-install-phase + '(lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + ;; When building a wide-character (Unicode) build, create backward + ;; compatibility links from the the "normal" libraries to the + ;; wide-character libraries (e.g. libncurses.so to libncursesw.so). + (with-directory-excursion (string-append out "/lib") + (for-each (lambda (lib) + (define libw.a + (string-append "lib" lib "w.a")) + (define lib.a + (string-append "lib" lib ".a")) + (define libw.so.x + (string-append "lib" lib "w.so.5")) + (define lib.so.x + (string-append "lib" lib ".so.5")) + (define lib.so + (string-append "lib" lib ".so")) + + (when (file-exists? libw.a) + (format #t "creating symlinks for `lib~a'~%" lib) + (symlink libw.a lib.a) + (symlink libw.so.x lib.so.x) + (false-if-exception (delete-file lib.so)) + (call-with-output-file lib.so + (lambda (p) + (format p "INPUT (-l~aw)~%" lib))))) + '("curses" "ncurses" "form" "panel" "menu"))))))) + (package + (name "ncurses") + (version "5.9") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/ncurses/ncurses-" + version ".tar.gz")) + (sha256 + (base32 + "0fsn7xis81za62afan0vvm38bvgzg5wfmv1m86flqcj0nj7jjilh")))) + (build-system gnu-build-system) + (arguments + (case-lambda + ((system) + `(#:configure-flags + `("--with-shared" "--without-debug" "--enable-widec" + + ;; By default headers land in an `ncursesw' subdir, which is not + ;; what users expect. + ,(string-append "--includedir=" (assoc-ref %outputs "out") + "/include") + + ;; C++ bindings fail to build on + ;; `i386-pc-solaris2.11' with GCC 3.4.3: + ;; . + ,,@(if (string=? system "i686-solaris") + '("--without-cxx-binding") + '())) + #:tests? #f ; no "check" target + #:phases (alist-cons-after + 'install 'post-install ,post-install-phase + (alist-cons-before + 'configure 'patch-makefile-SHELL + ,patch-makefile-phase + (alist-replace + 'configure + ,configure-phase + %standard-phases))))) + ((system cross-system) + (arguments cross-system)))) + (self-native-input? #t) + (synopsis + "GNU Ncurses, a free software emulation of curses in SVR4 and more") + (description + "The Ncurses (new curses) library is a free software emulation of curses +in System V Release 4.0, and more. It uses Terminfo format, supports pads +and color and multiple highlights and forms characters and function-key +mapping, and has all the other SYSV-curses enhancements over BSD Curses. + +The ncurses code was developed under GNU/Linux. It has been in use for some +time with OpenBSD as the system curses library, and on FreeBSD and NetBSD as +an external package. It should port easily to any ANSI/POSIX-conforming +UNIX. It has even been ported to OS/2 Warp!") + (license x11) + (home-page "http://www.gnu.org/software/ncurses/")))) diff --git a/gnu/packages/nettle.scm b/gnu/packages/nettle.scm new file mode 100644 index 0000000000..6a0b6ef40a --- /dev/null +++ b/gnu/packages/nettle.scm @@ -0,0 +1,60 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012, 2013 Ludovic Courtès +;;; +;;; 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 . + +(define-module (gnu packages nettle) + #:use-module (guix licenses) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu) + #:use-module (gnu packages multiprecision) + #:use-module (gnu packages m4)) + +(define-public nettle + (package + (name "nettle") + (version "2.6") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/nettle/nettle-" + version ".tar.gz")) + (sha256 + (base32 + "0mminj3fg0vba8qx4q6dbf0xz6fskamli7z2r8rci5xrcd7n5pv0")))) + (build-system gnu-build-system) + (inputs `(("m4" ,m4))) + (propagated-inputs `(("gmp" ,gmp))) + (home-page "http://www.lysator.liu.se/~nisse/nettle/") + (synopsis "GNU Nettle, a cryptographic library") + (description + "Nettle is a cryptographic library that is designed to fit easily +in more or less any context: In crypto toolkits for object-oriented +languages (C++, Python, Pike, ...), in applications like LSH or GNUPG, +or even in kernel space. In most contexts, you need more than the basic +cryptographic algorithms, you also need some way to keep track of +available algorithms, their properties and variants. You often have +some algorithm selection process, often dictated by a protocol you want +to implement. + +And as the requirements of applications differ in subtle and not so +subtle ways, an API that fits one application well can be a pain to use +in a different context. And that is why there are so many different +cryptographic libraries around. \nNettle tries to avoid this problem by +doing one thing, the low-level crypto stuff, and providing a simple but +general interface to it. In particular, Nettle doesn't do algorithm +selection. It doesn't do memory allocation. It doesn't do any I/O.") + (license gpl2+))) diff --git a/gnu/packages/openssl.scm b/gnu/packages/openssl.scm new file mode 100644 index 0000000000..8c8ba4c668 --- /dev/null +++ b/gnu/packages/openssl.scm @@ -0,0 +1,68 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2013 Andreas Enge +;;; +;;; 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 . + +(define-module (gnu packages openssl) + #:use-module (distro) + #:use-module (gnu packages perl) + #:use-module ((guix licenses) #:renamer (symbol-prefix-proc 'license:)) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu)) + +(define-public openssl + (package + (name "openssl") + (version "1.0.1c") + (source (origin + (method url-fetch) + (uri (string-append "ftp://ftp.openssl.org/source/openssl-" version + ".tar.gz")) + (sha256 (base32 + "1gjy6a7d8nszi9wq8jdzx3cffn0nss23h3cw2ywlw4cb9v6v77ia")))) + (build-system gnu-build-system) + (inputs `(("perl" ,perl))) + (arguments + (lambda (system) + `(#:parallel-build? #f + #:parallel-tests? #f + #:test-target "test" + #:phases + (alist-replace + 'configure + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (zero? + (system* "./config" + "shared" ; build shared libraries + "--libdir=lib" + (string-append "--prefix=" out))))) + (alist-cons-before + 'patch-source-shebangs 'patch-tests + (lambda* (#:key inputs #:allow-other-keys) + (let ((bash (assoc-ref inputs "bash"))) + (substitute* (find-files "test" ".*") + (("/bin/sh") + (string-append bash "/bin/bash")) + (("/bin/rm") + "rm")))) + %standard-phases))))) + (synopsis "OpenSSL, an SSL/TLS implementation") + (description + "OpenSSL is an implementation of SSL/TLS") + (license license:openssl) + (home-page "http://www.openssl.org/"))) diff --git a/gnu/packages/patches/bigloo-gc-shebangs.patch b/gnu/packages/patches/bigloo-gc-shebangs.patch new file mode 100644 index 0000000000..07af261887 --- /dev/null +++ b/gnu/packages/patches/bigloo-gc-shebangs.patch @@ -0,0 +1,17 @@ +Patch shebangs in source that gets unpacked by `configure'. + +--- bigloo3.9a/gc/install-gc-7.2d 2013-01-14 15:24:01.000000000 +0100 ++++ bigloo3.9a/gc/install-gc-7.2d 2013-01-14 15:23:51.000000000 +0100 +@@ -29,9 +29,11 @@ fi + # untar the two versions of the GC + $tar xfz $src -C ../gc || (echo "$tar xfz $src failed"; exit 1) + /bin/rm -rf "../gc/$gc"_fth ++find ../gc/gc-7.2 -perm /111 -type f | xargs sed -i -e"s|/bin/sh|`type -P bash`|g" + mv ../gc/gc-7.2 "../gc/$gc"_fth || (echo "mv gc-7.2 failed"; exit 1) + + $tar xfz $src -C ../gc || (echo "$tar xfz $src failed"; exit 1) ++find ../gc/gc-7.2 -perm /111 -type f | xargs sed -i -e"s|/bin/sh|`type -P bash`|g" + mv ../gc/gc-7.2 "../gc/$gc" + + # general Bigloo patch + diff --git a/gnu/packages/patches/binutils-ld-new-dtags.patch b/gnu/packages/patches/binutils-ld-new-dtags.patch new file mode 100644 index 0000000000..5f7a03fc38 --- /dev/null +++ b/gnu/packages/patches/binutils-ld-new-dtags.patch @@ -0,0 +1,16 @@ +Turn on --enable-new-dtags by default to make the linker set RUNPATH +instead of RPATH on binaries. This is important because RUNPATH can +be overriden using LD_LIBRARY_PATH at runtime. + +Patch from Nixpkgs by Eelco Dolstra . + +--- binutils/ld/ldmain.c ++++ binutils/ld/ldmain.c +@@ -296,6 +296,7 @@ main (int argc, char **argv) + + link_info.allow_undefined_version = TRUE; + link_info.keep_memory = TRUE; ++ link_info.new_dtags = TRUE; + link_info.combreloc = TRUE; + link_info.strip_discarded = TRUE; + link_info.callbacks = &link_callbacks; diff --git a/gnu/packages/patches/cpio-gets-undeclared.patch b/gnu/packages/patches/cpio-gets-undeclared.patch new file mode 100644 index 0000000000..bc34de6455 --- /dev/null +++ b/gnu/packages/patches/cpio-gets-undeclared.patch @@ -0,0 +1,45 @@ +This patch is needed to allow builds with newer versions of +the GNU libc (2.16+). + +The upstream fix was: + + commit 66712c23388e93e5c518ebc8515140fa0c807348 + Author: Eric Blake + Date: Thu Mar 29 13:30:41 2012 -0600 + + stdio: don't assume gets any more + + Gnulib intentionally does not have a gets module, and now that C11 + and glibc have dropped it, we should be more proactive about warning + any user on a platform that still has a declaration of this dangerous + interface. + + * m4/stdio_h.m4 (gl_STDIO_H, gl_STDIO_H_DEFAULTS): Drop gets + support. + * modules/stdio (Makefile.am): Likewise. + * lib/stdio-read.c (gets): Likewise. + * tests/test-stdio-c++.cc: Likewise. + * m4/warn-on-use.m4 (gl_WARN_ON_USE_PREPARE): Fix comment. + * lib/stdio.in.h (gets): Make warning occur in more places. + * doc/posix-functions/gets.texi (gets): Update documentation. + Reported by Christer Solskogen. + + Signed-off-by: Eric Blake + +This patch just gets rid of the offending part. + +--- cpio-2.11/gnu/stdio.in.h-orig 2012-11-25 22:17:06.000000000 +0400 ++++ cpio-2.11/gnu/stdio.in.h 2012-11-25 22:18:36.000000000 +0400 +@@ -135,12 +135,6 @@ + "use gnulib module fflush for portable POSIX compliance"); + #endif + +-/* It is very rare that the developer ever has full control of stdin, +- so any use of gets warrants an unconditional warning. Assume it is +- always declared, since it is required by C89. */ +-#undef gets +-_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead"); +- + #if @GNULIB_FOPEN@ + # if @REPLACE_FOPEN@ + # if !(defined __cplusplus && defined GNULIB_NAMESPACE) diff --git a/gnu/packages/patches/diffutils-gets-undeclared.patch b/gnu/packages/patches/diffutils-gets-undeclared.patch new file mode 100644 index 0000000000..b6cdc77caa --- /dev/null +++ b/gnu/packages/patches/diffutils-gets-undeclared.patch @@ -0,0 +1,71 @@ +This patch is needed to allow builds with newer versions of +the GNU libc (2.16+). + + +commit 66712c23388e93e5c518ebc8515140fa0c807348 +Author: Eric Blake +Date: Thu Mar 29 13:30:41 2012 -0600 + + stdio: don't assume gets any more + + Gnulib intentionally does not have a gets module, and now that C11 + and glibc have dropped it, we should be more proactive about warning + any user on a platform that still has a declaration of this dangerous + interface. + + * m4/stdio_h.m4 (gl_STDIO_H, gl_STDIO_H_DEFAULTS): Drop gets + support. + * modules/stdio (Makefile.am): Likewise. + * lib/stdio-read.c (gets): Likewise. + * tests/test-stdio-c++.cc: Likewise. + * m4/warn-on-use.m4 (gl_WARN_ON_USE_PREPARE): Fix comment. + * lib/stdio.in.h (gets): Make warning occur in more places. + * doc/posix-functions/gets.texi (gets): Update documentation. + Reported by Christer Solskogen. + + Signed-off-by: Eric Blake + +diff --git a/lib/stdio.in.h b/lib/stdio.in.h +index aa7b599..c377b6e 100644 +--- a/lib/stdio.in.h ++++ b/lib/stdio.in.h +@@ -698,22 +698,11 @@ _GL_WARN_ON_USE (getline, "getline is unportable - " + # endif + #endif + +-#if @GNULIB_GETS@ +-# if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ +-# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +-# undef gets +-# define gets rpl_gets +-# endif +-_GL_FUNCDECL_RPL (gets, char *, (char *s) _GL_ARG_NONNULL ((1))); +-_GL_CXXALIAS_RPL (gets, char *, (char *s)); +-# else +-_GL_CXXALIAS_SYS (gets, char *, (char *s)); +-# undef gets +-# endif +-_GL_CXXALIASWARN (gets); + /* It is very rare that the developer ever has full control of stdin, +- so any use of gets warrants an unconditional warning. Assume it is +- always declared, since it is required by C89. */ ++ so any use of gets warrants an unconditional warning; besides, C11 ++ removed it. */ ++#undef gets ++#if HAVE_RAW_DECL_GETS + _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead"); + #endif + +@@ -1053,9 +1042,9 @@ _GL_WARN_ON_USE (snprintf, "snprintf is unportable - " + # endif + #endif + +-/* Some people would argue that sprintf should be handled like gets +- (for example, OpenBSD issues a link warning for both functions), +- since both can cause security holes due to buffer overruns. ++/* Some people would argue that all sprintf uses should be warned about ++ (for example, OpenBSD issues a link warning for it), ++ since it can cause security holes due to buffer overruns. + However, we believe that sprintf can be used safely, and is more + efficient than snprintf in those safe cases; and as proof of our + belief, we use sprintf in several gnulib modules. So this header diff --git a/gnu/packages/patches/emacs-configure-sh.patch b/gnu/packages/patches/emacs-configure-sh.patch new file mode 100644 index 0000000000..fd34d06ced --- /dev/null +++ b/gnu/packages/patches/emacs-configure-sh.patch @@ -0,0 +1,14 @@ +Make sure the right shell is used when creating src/epaths.h. + +--- emacs-24.2/configure 2013-01-13 17:01:53.000000000 +0100 ++++ emacs-24.2/configure 2013-01-13 17:01:57.000000000 +0100 +@@ -24135,7 +24135,7 @@ done + ;; + "epaths":C) + echo creating src/epaths.h +-${MAKE-make} epaths-force ++${MAKE-make} epaths-force SHELL="$CONFIG_SHELL" + ;; + "gdbinit":C) + if test ! -f src/.gdbinit && test -f $srcdir/src/.gdbinit; then + diff --git a/gnu/packages/patches/findutils-absolute-paths.patch b/gnu/packages/patches/findutils-absolute-paths.patch new file mode 100644 index 0000000000..96341e281f --- /dev/null +++ b/gnu/packages/patches/findutils-absolute-paths.patch @@ -0,0 +1,29 @@ +Fix use of LFS-style absolute paths. + +Patches from Nixpkgs by Armijn Hemel +and Wouter den Breejen . + +diff -ruN findutils-4.2.20/locate/updatedb.sh findutils-4.2.20.new/locate/updatedb.sh +--- findutils-4.2.20/locate/updatedb.sh 2005-01-24 17:12:35.000000000 +0100 ++++ findutils-4.2.20.new/locate/updatedb.sh 2005-08-23 14:37:10.000000000 +0200 +@@ -141,7 +141,7 @@ + : ${code:=${LIBEXECDIR}/@code@} + + +-PATH=/bin:/usr/bin:${BINDIR}; export PATH ++PATH=/bin:/usr/bin:${BINDIR}:${PATH}; export PATH + + : ${PRUNEFS="nfs NFS proc afs proc smbfs autofs iso9660 ncpfs coda devpts ftpfs devfs mfs sysfs shfs"} + +diff -Naur findutils-4.2.30/xargs/xargs.c findutils-4.2.30_new/xargs/xargs.c +--- findutils-4.2.30/xargs/xargs.c 2007-02-27 11:21:08.000000000 +0100 ++++ findutils-4.2.30_new/xargs/xargs.c 2007-07-17 19:02:05.000000000 +0200 +@@ -402,7 +402,7 @@ + int show_limits = 0; /* --show-limits */ + int always_run_command = 1; + char *input_file = "-"; /* "-" is stdin */ +- char *default_cmd = "/bin/echo"; ++ char *default_cmd = "echo"; + int (*read_args) PARAMS ((void)) = read_line; + void (*act_on_init_result)(void) = noop; + int env_too_big = 0; diff --git a/gnu/packages/patches/flex-bison-tests.patch b/gnu/packages/patches/flex-bison-tests.patch new file mode 100644 index 0000000000..0f372f83bf --- /dev/null +++ b/gnu/packages/patches/flex-bison-tests.patch @@ -0,0 +1,24 @@ +The `test-bison-yyl{loc,val}' tests fail with "conflicting types for +'testparse'" because `YYPARSE_PARAM' is undefined; work around that. + +--- flex-2.5.37/tests/test-bison-yylloc/main.c 2012-11-22 18:17:01.000000000 +0100 ++++ flex-2.5.37/tests/test-bison-yylloc/main.c 2012-11-22 18:17:07.000000000 +0100 +@@ -21,6 +21,7 @@ + * PURPOSE. + */ + ++#define YYPARSE_PARAM scanner + #include "parser.h" + #include "scanner.h" + + +--- flex-2.5.37/tests/test-bison-yylval/main.c 2012-11-22 18:17:42.000000000 +0100 ++++ flex-2.5.37/tests/test-bison-yylval/main.c 2012-11-22 18:17:49.000000000 +0100 +@@ -21,6 +21,7 @@ + * PURPOSE. + */ + ++#define YYPARSE_PARAM scanner + #include "parser.h" + #include "scanner.h" + diff --git a/gnu/packages/patches/gawk-shell.patch b/gnu/packages/patches/gawk-shell.patch new file mode 100644 index 0000000000..89b8540a8d --- /dev/null +++ b/gnu/packages/patches/gawk-shell.patch @@ -0,0 +1,34 @@ +As for libc's `system', change Awk to look for `sh' in $PATH. This patch is +only meant to be used during bootstrapping, where we don't know in advance the +absolute file name of `sh'. + +--- gawk-4.0.0/io.c 2011-05-18 20:47:29.000000000 +0200 ++++ gawk-4.0.0/io.c 2012-12-18 15:56:06.000000000 +0100 +@@ -1759,7 +1759,7 @@ two_way_open(const char *str, struct red + + signal(SIGPIPE, SIG_DFL); + +- execl("/bin/sh", "sh", "-c", str, NULL); ++ execlp("sh", "sh", "-c", str, NULL); + _exit(errno == ENOENT ? 127 : 126); + + case -1: +@@ -1924,7 +1924,7 @@ use_pipes: + || close(ctop[0]) == -1 || close(ctop[1]) == -1) + fatal(_("close of pipe failed (%s)"), strerror(errno)); + /* stderr does NOT get dup'ed onto child's stdout */ +- execl("/bin/sh", "sh", "-c", str, NULL); ++ execlp("sh", "sh", "-c", str, NULL); + _exit(errno == ENOENT ? 127 : 126); + } + #endif /* NOT __EMX__ */ +@@ -2074,7 +2074,7 @@ gawk_popen(const char *cmd, struct redir + fatal(_("moving pipe to stdout in child failed (dup: %s)"), strerror(errno)); + if (close(p[0]) == -1 || close(p[1]) == -1) + fatal(_("close of pipe failed (%s)"), strerror(errno)); +- execl("/bin/sh", "sh", "-c", cmd, NULL); ++ execlp("sh", "sh", "-c", cmd, NULL); + _exit(errno == ENOENT ? 127 : 126); + } + #endif /* NOT __EMX__ */ + diff --git a/gnu/packages/patches/gettext-gets-undeclared.patch b/gnu/packages/patches/gettext-gets-undeclared.patch new file mode 100644 index 0000000000..072a8d94ab --- /dev/null +++ b/gnu/packages/patches/gettext-gets-undeclared.patch @@ -0,0 +1,77 @@ +This patch is needed to allow builds with newer versions of +the GNU libc (2.16+). + +The upstream fix was: + + commit 66712c23388e93e5c518ebc8515140fa0c807348 + Author: Eric Blake + Date: Thu Mar 29 13:30:41 2012 -0600 + + stdio: don't assume gets any more + + Gnulib intentionally does not have a gets module, and now that C11 + and glibc have dropped it, we should be more proactive about warning + any user on a platform that still has a declaration of this dangerous + interface. + + * m4/stdio_h.m4 (gl_STDIO_H, gl_STDIO_H_DEFAULTS): Drop gets + support. + * modules/stdio (Makefile.am): Likewise. + * lib/stdio-read.c (gets): Likewise. + * tests/test-stdio-c++.cc: Likewise. + * m4/warn-on-use.m4 (gl_WARN_ON_USE_PREPARE): Fix comment. + * lib/stdio.in.h (gets): Make warning occur in more places. + * doc/posix-functions/gets.texi (gets): Update documentation. + Reported by Christer Solskogen. + + Signed-off-by: Eric Blake + +This patch just gets rid of the offending part. + +--- gettext-0.18.1.1/gettext-tools/libgettextpo/stdio.in.h-orig 2012-11-24 01:13:14.000000000 +0400 ++++ gettext-0.18.1.1/gettext-tools/libgettextpo/stdio.in.h 2012-11-24 01:13:46.000000000 +0400 +@@ -137,12 +137,6 @@ + "use gnulib module fflush for portable POSIX compliance"); + #endif + +-/* It is very rare that the developer ever has full control of stdin, +- so any use of gets warrants an unconditional warning. Assume it is +- always declared, since it is required by C89. */ +-#undef gets +-_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead"); +- + #if @GNULIB_FOPEN@ + # if @REPLACE_FOPEN@ + # if !(defined __cplusplus && defined GNULIB_NAMESPACE) + +--- gettext-0.18.1.1/gettext-runtime/gnulib-lib/stdio.in.h-orig 2012-11-24 00:26:49.000000000 +0400 ++++ gettext-0.18.1.1/gettext-runtime/gnulib-lib/stdio.in.h 2012-11-24 00:45:54.000000000 +0400 +@@ -137,12 +137,6 @@ + "use gnulib module fflush for portable POSIX compliance"); + #endif + +-/* It is very rare that the developer ever has full control of stdin, +- so any use of gets warrants an unconditional warning. Assume it is +- always declared, since it is required by C89. */ +-#undef gets +-_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead"); +- + #if @GNULIB_FOPEN@ + # if @REPLACE_FOPEN@ + # if !(defined __cplusplus && defined GNULIB_NAMESPACE) + +--- gettext-0.18.1.1/gettext-tools/gnulib-lib/stdio.in.h-orig 2012-11-24 01:00:26.000000000 +0400 ++++ gettext-0.18.1.1/gettext-tools/gnulib-lib/stdio.in.h 2012-11-24 01:00:53.000000000 +0400 +@@ -137,12 +137,6 @@ + "use gnulib module fflush for portable POSIX compliance"); + #endif + +-/* It is very rare that the developer ever has full control of stdin, +- so any use of gets warrants an unconditional warning. Assume it is +- always declared, since it is required by C89. */ +-#undef gets +-_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead"); +- + #if @GNULIB_FOPEN@ + # if @REPLACE_FOPEN@ + # if !(defined __cplusplus && defined GNULIB_NAMESPACE) diff --git a/gnu/packages/patches/glibc-bootstrap-system.patch b/gnu/packages/patches/glibc-bootstrap-system.patch new file mode 100644 index 0000000000..7208cce3f4 --- /dev/null +++ b/gnu/packages/patches/glibc-bootstrap-system.patch @@ -0,0 +1,28 @@ +We want to allow builds in chroots that lack /bin/sh. Thus, system(3) +and popen(3) need to be tweaked to use the right shell. For the bootstrap +glibc, we just use whatever `sh' can be found in $PATH. The final glibc +instead uses the hard-coded absolute file name of `bash'. + +--- a/sysdeps/posix/system.c ++++ b/sysdeps/posix/system.c +@@ -134,7 +134,7 @@ do_system (const char *line) + INIT_LOCK (); + + /* Exec the shell. */ +- (void) __execve (SHELL_PATH, (char *const *) new_argv, __environ); ++ (void) __execvpe (SHELL_NAME, (char *const *) new_argv, __environ); + _exit (127); + } + else if (pid < (pid_t) 0) + +--- b/libio/iopopen.c 2012-06-30 21:12:34.000000000 +0200 ++++ b/libio/iopopen.c 2012-12-19 12:52:29.000000000 +0100 +@@ -226,7 +226,7 @@ _IO_new_proc_open (fp, command, mode) + _IO_close (fd); + } + +- _IO_execl ("/bin/sh", "sh", "-c", command, (char *) 0); ++ execlp ("sh", "sh", "-c", command, (char *) 0); + _IO__exit (127); + } + _IO_close (child_end); diff --git a/gnu/packages/patches/glibc-no-ld-so-cache.patch b/gnu/packages/patches/glibc-no-ld-so-cache.patch new file mode 100644 index 0000000000..75fff50b47 --- /dev/null +++ b/gnu/packages/patches/glibc-no-ld-so-cache.patch @@ -0,0 +1,53 @@ +Disable attempts to use the system-wide /etc/ld.so.cache. This is +required on LFS distros to avoid loading the distro's libc.so instead +of ours. + +Patch from Nixpkgs. Idea by Eelco Dolstra, initial patch by Jack +Cummings, minor fixups by Shea Levy. + +diff -Naur glibc-2.13-orig/elf/ldconfig.c glibc-2.13/elf/ldconfig.c +--- glibc-2.13-orig/elf/ldconfig.c 2011-01-17 23:34:07.000000000 -0500 ++++ glibc-2.13/elf/ldconfig.c 2012-04-10 23:28:45.957492340 -0400 +@@ -51,7 +51,7 @@ + #endif + + #ifndef LD_SO_CONF +-# define LD_SO_CONF SYSCONFDIR "/ld.so.conf" ++# define LD_SO_CONF PREFIX "/etc/ld.so.conf" + #endif + + /* Get libc version number. */ + +--- glibc-2.16.0/elf/Makefile 2012-06-30 21:12:34.000000000 +0200 ++++ glibc-2.16.0/elf/Makefile 2012-11-12 23:52:21.000000000 +0100 +@@ -415,12 +415,12 @@ $(objpfx)ldconfig: $(ldconfig-modules:%= + + $(objpfx)pldd: $(pldd-modules:%=$(objpfx)%.o) + +-SYSCONF-FLAGS := -D'SYSCONFDIR="$(sysconfdir)"' +-CFLAGS-ldconfig.c = $(SYSCONF-FLAGS) -D'LIBDIR="$(libdir)"' \ ++PREFIX-FLAGS := -D'PREFIX="$(sysconfdir)"' ++CFLAGS-ldconfig.c = $(PREFIX-FLAGS) -D'LIBDIR="$(libdir)"' \ + -D'SLIBDIR="$(slibdir)"' -DIS_IN_ldconfig=1 +-CFLAGS-dl-cache.c = $(SYSCONF-FLAGS) +-CFLAGS-cache.c = $(SYSCONF-FLAGS) +-CFLAGS-rtld.c = $(SYSCONF-FLAGS) ++CFLAGS-dl-cache.c = $(PREFIX-FLAGS) ++CFLAGS-cache.c = $(PREFIX-FLAGS) ++CFLAGS-rtld.c = $(PREFIX-FLAGS) + + CPPFLAGS-.os += $(if $(filter $(@F),$(patsubst %,%.os,$(all-rtld-routines))),\ + -DNOT_IN_libc=1 -DIS_IN_rtld=1 -DIN_LIB=rtld) + +diff -Naur glibc-2.13-orig/sysdeps/generic/dl-cache.h glibc-2.13/sysdeps/generic/dl-cache.h +--- glibc-2.13-orig/sysdeps/generic/dl-cache.h 2011-01-17 23:34:07.000000000 -0500 ++++ glibc-2.13/sysdeps/generic/dl-cache.h 2012-04-10 23:28:20.077488815 -0400 +@@ -29,7 +29,7 @@ + #endif + + #ifndef LD_SO_CACHE +-# define LD_SO_CACHE SYSCONFDIR "/ld.so.cache" ++# define LD_SO_CACHE PREFIX "/etc/ld.so.cache" + #endif + + #ifndef add_system_dir diff --git a/gnu/packages/patches/guile-1.8-cpp-4.5.patch b/gnu/packages/patches/guile-1.8-cpp-4.5.patch new file mode 100644 index 0000000000..638d071baf --- /dev/null +++ b/gnu/packages/patches/guile-1.8-cpp-4.5.patch @@ -0,0 +1,24 @@ +Fix doc snarfing with GCC 4.5+. +From . + +diff --git a/scripts/snarf-check-and-output-texi b/scripts/snarf-check-and-output-texi +index ea33e17..8cd42e8 100755 +--- a/scripts/snarf-check-and-output-texi ++++ b/scripts/snarf-check-and-output-texi +@@ -267,6 +267,17 @@ exec ${GUILE-guile} -l $0 -c "(apply $main (cdr (command-line)))" "$@" + (set! *file* file) + (set! *line* line)) + ++ ;; newer gccs like to throw around more location markers into the ++ ;; preprocessed source; these (hash . hash) bits are what they translate to ++ ;; in snarfy terms. ++ (('location ('string . file) ('int . line) ('hash . 'hash)) ++ (set! *file* file) ++ (set! *line* line)) ++ ++ (('location ('hash . 'hash) ('string . file) ('int . line) ('hash . 'hash)) ++ (set! *file* file) ++ (set! *line* line)) ++ + (('arglist rest ...) + (set! *args* (do-arglist rest))) diff --git a/gnu/packages/patches/guile-default-utf8.patch b/gnu/packages/patches/guile-default-utf8.patch new file mode 100644 index 0000000000..409f435161 --- /dev/null +++ b/gnu/packages/patches/guile-default-utf8.patch @@ -0,0 +1,111 @@ +This hack makes Guile default to UTF-8. This avoids calls to +`iconv_open'; `iconv_open' tries to open shared objects that aren't +available during bootstrap, so using UTF-8 avoids that (and UTF-8 has +built-in conversions in glibc, too.) + +diff --git a/libguile/bytevectors.c b/libguile/bytevectors.c +index cf41f2f..facfb91 100644 +--- a/libguile/bytevectors.c ++++ b/libguile/bytevectors.c +@@ -1887,7 +1887,7 @@ utf_encoding_name (char *name, size_t utf_width, SCM endianness) + if (scm_i_is_narrow_string (str)) \ + { \ + err = mem_iconveh (scm_i_string_chars (str), c_strlen, \ +- "ISO-8859-1", c_utf_name, \ ++ "UTF-8", c_utf_name, \ + iconveh_question_mark, NULL, \ + &c_utf, &c_utf_len); \ + if (SCM_UNLIKELY (err)) \ +diff --git a/libguile/ports.c b/libguile/ports.c +index 301bc44..b0ea2e6 100644 +--- a/libguile/ports.c ++++ b/libguile/ports.c +@@ -1750,7 +1750,7 @@ scm_ungetc (scm_t_wchar c, SCM port) + if (pt->encoding != NULL) + encoding = pt->encoding; + else +- encoding = "ISO-8859-1"; ++ encoding = "UTF-8"; + + len = sizeof (result_buf); + result = u32_conv_to_encoding (encoding, +@@ -2212,7 +2212,7 @@ scm_i_set_port_encoding_x (SCM port, const char *encoding) + pt = SCM_PTAB_ENTRY (port); + + if (encoding == NULL) +- encoding = "ISO-8859-1"; ++ encoding = "UTF-8"; + + if (pt->encoding != encoding) + pt->encoding = scm_gc_strdup (encoding, "port"); +diff --git a/libguile/posix.c b/libguile/posix.c +index 4f8b8ac..fea7f74 100644 +--- a/libguile/posix.c ++++ b/libguile/posix.c +@@ -1740,7 +1740,7 @@ SCM_DEFINE (scm_setlocale, "setlocale", 1, 1, 0, + SCM_SYSERROR; + } + +- enc = locale_charset (); ++ enc = "UTF-8"; + + /* Set the default encoding for new ports. */ + scm_i_set_default_port_encoding (enc); +diff --git a/libguile/script.c b/libguile/script.c +index 83daf8a..083891e 100644 +--- a/libguile/script.c ++++ b/libguile/script.c +@@ -387,7 +387,7 @@ locale_arguments_to_string_list (int argc, char **const argv) + SCM lst; + const char *encoding; + +- encoding = environ_locale_charset (); ++ encoding = "UTF-8"; + for (i = argc - 1, lst = SCM_EOL; + i >= 0; + i--) +diff --git a/libguile/strings.c b/libguile/strings.c +index 5d0db23..8266247 100644 +--- a/libguile/strings.c ++++ b/libguile/strings.c +@@ -1576,7 +1576,7 @@ scm_from_locale_string (const char *str) + SCM + scm_from_locale_stringn (const char *str, size_t len) + { +- return scm_from_stringn (str, len, locale_charset (), ++ return scm_from_stringn (str, len, "UTF-8", + scm_i_default_port_conversion_handler ()); + } + +@@ -1803,7 +1803,7 @@ char * + scm_to_locale_stringn (SCM str, size_t *lenp) + { + return scm_to_stringn (str, lenp, +- locale_charset (), ++ "UTF-8", + scm_i_default_port_conversion_handler ()); + } + +@@ -2054,7 +2054,7 @@ scm_to_stringn (SCM str, size_t *lenp, const char *encoding, + "string contains #\\nul character: ~S", + scm_list_1 (str)); + +- if (scm_i_is_narrow_string (str) && (encoding == NULL)) ++ if (scm_i_is_narrow_string (str)) + { + /* If using native Latin-1 encoding, just copy the string + contents. */ +@@ -2079,11 +2079,11 @@ scm_to_stringn (SCM str, size_t *lenp, const char *encoding, + len = 0; + enc = encoding; + if (enc == NULL) +- enc = "ISO-8859-1"; ++ enc = "UTF-8"; + if (scm_i_is_narrow_string (str)) + { + ret = mem_iconveh (scm_i_string_chars (str), ilen, +- "ISO-8859-1", enc, ++ "UTF-8", enc, + (enum iconv_ilseq_handler) handler, NULL, + &buf, &len); + diff --git a/gnu/packages/patches/guile-relocatable.patch b/gnu/packages/patches/guile-relocatable.patch new file mode 100644 index 0000000000..077394cdde --- /dev/null +++ b/gnu/packages/patches/guile-relocatable.patch @@ -0,0 +1,70 @@ +This patch changes Guile to use a default search path relative to the +location of the `guile' binary, allowing it to be relocated. + +diff --git a/libguile/load.c b/libguile/load.c +index af2ca45..19dd338 100644 +--- a/libguile/load.c ++++ b/libguile/load.c +@@ -26,6 +26,7 @@ + + #include + #include ++#include + + #include "libguile/_scm.h" + #include "libguile/private-gc.h" /* scm_getenv_int */ +@@ -255,6 +256,32 @@ scm_init_load_path () + SCM cpath = SCM_EOL; + + #ifdef SCM_LIBRARY_DIR ++ char *program, *bin_dir, *prefix, *module_dir, *ccache_dir; ++ ++ /* Determine the source and compiled module directories at run-time, ++ relative to the executable's location. ++ ++ Note: Use /proc/self/exe instead of argv[0] because the latter is ++ not necessarily an absolute, nor a valid file name. */ ++ ++ program = scm_gc_malloc_pointerless (256, "string"); ++ readlink ("/proc/self/exe", program, 256); ++ ++ bin_dir = dirname (strdupa (program)); ++ ++ prefix = scm_gc_malloc_pointerless (strlen (bin_dir) + 4, "string"); ++ strcpy (prefix, bin_dir); ++ strcat (prefix, "/.."); ++ prefix = canonicalize_file_name (prefix); ++ ++ module_dir = scm_gc_malloc_pointerless (strlen (prefix) + 50, "string"); ++ strcpy (module_dir, prefix); ++ strcat (module_dir, "/share/guile/2.0"); ++ ++ ccache_dir = scm_gc_malloc_pointerless (strlen (prefix) + 50, "string"); ++ strcpy (ccache_dir, prefix); ++ strcat (ccache_dir, "/lib/guile/2.0/ccache"); ++ + env = getenv ("GUILE_SYSTEM_PATH"); + if (env && strcmp (env, "") == 0) + /* special-case interpret system-path=="" as meaning no system path instead +@@ -263,10 +290,7 @@ scm_init_load_path () + else if (env) + path = scm_parse_path (scm_from_locale_string (env), path); + else +- path = scm_list_4 (scm_from_locale_string (SCM_LIBRARY_DIR), +- scm_from_locale_string (SCM_SITE_DIR), +- scm_from_locale_string (SCM_GLOBAL_SITE_DIR), +- scm_from_locale_string (SCM_PKGDATA_DIR)); ++ path = scm_list_1 (scm_from_locale_string (module_dir)); + + env = getenv ("GUILE_SYSTEM_COMPILED_PATH"); + if (env && strcmp (env, "") == 0) +@@ -276,8 +300,7 @@ scm_init_load_path () + cpath = scm_parse_path (scm_from_locale_string (env), cpath); + else + { +- cpath = scm_list_2 (scm_from_locale_string (SCM_CCACHE_DIR), +- scm_from_locale_string (SCM_SITE_CCACHE_DIR)); ++ cpath = scm_list_1 (scm_from_locale_string (ccache_dir)); + } + + #endif /* SCM_LIBRARY_DIR */ diff --git a/gnu/packages/patches/libtool-skip-tests.patch b/gnu/packages/patches/libtool-skip-tests.patch new file mode 100644 index 0000000000..6e12615d51 --- /dev/null +++ b/gnu/packages/patches/libtool-skip-tests.patch @@ -0,0 +1,37 @@ +Because our GCC `lib' spec automatically adds `-rpath' for each `-L' +and a couple more `-rpath, there are two test failures: +demo-hardcode.test, and destdir.at. Disable these. + +--- libtool-2.4.2/Makefile.in 2011-10-17 12:18:55.000000000 +0200 ++++ libtool-2.4.2/Makefile.in 2012-09-13 23:50:37.000000000 +0200 +@@ -909,7 +908,7 @@ COMMON_TESTS = \ + # but they depend on the other tests being run beforehand. + INTERACTIVE_TESTS = tests/demo-shared.test tests/demo-shared-make.test \ + tests/demo-shared-exec.test tests/demo-shared-inst.test \ +- tests/demo-hardcode.test tests/demo-relink.test \ ++ tests/demo-relink.test \ + tests/demo-noinst-link.test tests/demo-shared-unst.test \ + tests/depdemo-shared.test tests/depdemo-shared-make.test \ + tests/depdemo-shared-exec.test tests/depdemo-shared-inst.test \ +@@ -2580,8 +2579,7 @@ tests/cdemo-static-make.log: tests/cdemo + + tests/demo-shared-unst.log: tests/demo-noinst-link.log + tests/demo-noinst-link.log: tests/demo-relink.log +-tests/demo-relink.log: tests/demo-hardcode.log +-tests/demo-hardcode.log: tests/demo-shared-inst.log ++tests/demo-relink.log: tests/demo-shared-inst.log + tests/demo-shared-inst.log: tests/demo-shared-exec.log + tests/demo-shared-exec.log: tests/demo-shared-make.log + tests/demo-shared-make.log: tests/demo-shared.log + +--- libtool-2.4.2/tests/testsuite 2011-10-17 12:19:52.000000000 +0200 ++++ libtool-2.4.2/tests/testsuite 2012-09-14 00:28:45.000000000 +0200 +@@ -14443,6 +14443,6 @@ read at_status <"$at_status_file" + #AT_START_69 + at_fn_group_banner 69 'destdir.at:75' \ + "DESTDIR with in-package deplibs" " " 4 +-at_xfail=no ++at_xfail=yes + eval `$LIBTOOL --config | grep '^fast_install='` + case $fast_install in no) :;; *) false;; esac && at_xfail=yes + diff --git a/gnu/packages/patches/lsh-guile-compat.patch b/gnu/packages/patches/lsh-guile-compat.patch new file mode 100644 index 0000000000..0fe0484580 --- /dev/null +++ b/gnu/packages/patches/lsh-guile-compat.patch @@ -0,0 +1,9 @@ +Use (ice-9 rdelim) for `read-line'. + +--- lsh-2.0.4/src/scm/guile-compat.scm 2012-12-03 23:28:01.000000000 +0100 ++++ lsh-2.0.4/src/scm/guile-compat.scm 2012-12-03 23:28:04.000000000 +0100 +@@ -21,3 +21,4 @@ + ;; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + (use-syntax (ice-9 syncase)) ++(use-modules (ice-9 rdelim)) diff --git a/gnu/packages/patches/lsh-no-root-login.patch b/gnu/packages/patches/lsh-no-root-login.patch new file mode 100644 index 0000000000..9dd81de3fb --- /dev/null +++ b/gnu/packages/patches/lsh-no-root-login.patch @@ -0,0 +1,16 @@ +Correctly handle the `--no-root-login' option. + +--- lsh-2.0.4/src/lshd.c 2006-05-01 13:47:44.000000000 +0200 ++++ lsh-2.0.4/src/lshd.c 2009-09-08 12:20:36.000000000 +0200 +@@ -758,6 +758,10 @@ main_argp_parser(int key, char *arg, str + self->allow_root = 1; + break; + ++ case OPT_NO_ROOT_LOGIN: ++ self->allow_root = 0; ++ break; ++ + case OPT_KERBEROS_PASSWD: + self->pw_helper = PATH_KERBEROS_HELPER; + break; + diff --git a/gnu/packages/patches/lsh-pam-service-name.patch b/gnu/packages/patches/lsh-pam-service-name.patch new file mode 100644 index 0000000000..6a6156855c --- /dev/null +++ b/gnu/packages/patches/lsh-pam-service-name.patch @@ -0,0 +1,14 @@ +Tell `lsh-pam-checkpw', the PAM password helper program, to use a more +descriptive service name. + +--- lsh-2.0.4/src/lsh-pam-checkpw.c 2003-02-16 22:30:10.000000000 +0100 ++++ lsh-2.0.4/src/lsh-pam-checkpw.c 2008-11-28 16:16:58.000000000 +0100 +@@ -38,7 +38,7 @@ + #include + + #define PWD_MAXLEN 1024 +-#define SERVICE_NAME "other" ++#define SERVICE_NAME "lshd" + #define TIMEOUT 600 + + static int diff --git a/gnu/packages/patches/m4-gets-undeclared.patch b/gnu/packages/patches/m4-gets-undeclared.patch new file mode 100644 index 0000000000..d28f0cdcc4 --- /dev/null +++ b/gnu/packages/patches/m4-gets-undeclared.patch @@ -0,0 +1,45 @@ +This patch is needed to allow builds with newer versions of +the GNU libc (2.16+). + +The upstream fix was: + + commit 66712c23388e93e5c518ebc8515140fa0c807348 + Author: Eric Blake + Date: Thu Mar 29 13:30:41 2012 -0600 + + stdio: don't assume gets any more + + Gnulib intentionally does not have a gets module, and now that C11 + and glibc have dropped it, we should be more proactive about warning + any user on a platform that still has a declaration of this dangerous + interface. + + * m4/stdio_h.m4 (gl_STDIO_H, gl_STDIO_H_DEFAULTS): Drop gets + support. + * modules/stdio (Makefile.am): Likewise. + * lib/stdio-read.c (gets): Likewise. + * tests/test-stdio-c++.cc: Likewise. + * m4/warn-on-use.m4 (gl_WARN_ON_USE_PREPARE): Fix comment. + * lib/stdio.in.h (gets): Make warning occur in more places. + * doc/posix-functions/gets.texi (gets): Update documentation. + Reported by Christer Solskogen. + + Signed-off-by: Eric Blake + +This patch just gets rid of the offending part. + +--- m4-1.4.16/lib/stdio.in.h.orig 2012-09-01 01:05:36.000000000 +0200 ++++ m4-1.4.16/lib/stdio.in.h 2012-09-01 01:05:42.000000000 +0200 +@@ -158,12 +158,6 @@ _GL_WARN_ON_USE (fflush, "fflush is not + "use gnulib module fflush for portable POSIX compliance"); + #endif + +-/* It is very rare that the developer ever has full control of stdin, +- so any use of gets warrants an unconditional warning. Assume it is +- always declared, since it is required by C89. */ +-#undef gets +-_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead"); +- + #if @GNULIB_FOPEN@ + # if @REPLACE_FOPEN@ + # if !(defined __cplusplus && defined GNULIB_NAMESPACE) diff --git a/gnu/packages/patches/m4-readlink-EINVAL.patch b/gnu/packages/patches/m4-readlink-EINVAL.patch new file mode 100644 index 0000000000..dd371584a7 --- /dev/null +++ b/gnu/packages/patches/m4-readlink-EINVAL.patch @@ -0,0 +1,18 @@ +Newer Linux kernels would return EINVAL instead of ENOENT. +The patch below, taken from Gnulib, allows the test to pass when +these Linux versions are in use: +https://lists.gnu.org/archive/html/bug-gnulib/2011-03/msg00308.html . + +diff --git a/tests/test-readlink.h b/tests/test-readlink.h +index 08d5662..7247fc4 100644 +--- a/tests/test-readlink.h ++++ b/tests/test-readlink.h +@@ -38,7 +38,7 @@ test_readlink (ssize_t (*func) (char const *, char *, size_t), bool print) + ASSERT (errno == ENOENT); + errno = 0; + ASSERT (func ("", buf, sizeof buf) == -1); +- ASSERT (errno == ENOENT); ++ ASSERT (errno == ENOENT || errno == EINVAL); + errno = 0; + ASSERT (func (".", buf, sizeof buf) == -1); + ASSERT (errno == EINVAL); diff --git a/gnu/packages/patches/m4-s_isdir.patch b/gnu/packages/patches/m4-s_isdir.patch new file mode 100644 index 0000000000..a009a4ba44 --- /dev/null +++ b/gnu/packages/patches/m4-s_isdir.patch @@ -0,0 +1,14 @@ +Fails to build with glibc 2.12.1 without this patch. + +http://lists.gnu.org/archive/html/bug-m4/2010-05/msg00002.html + +--- a/src/path.c ++++ b/src/path.c +@@ -22,6 +22,7 @@ + /* Handling of path search of included files via the builtins "include" + and "sinclude". */ + + #include "m4.h" ++#include "sys/stat.h" + + struct includes diff --git a/gnu/packages/patches/make-impure-dirs.patch b/gnu/packages/patches/make-impure-dirs.patch new file mode 100644 index 0000000000..83a5fbe3a5 --- /dev/null +++ b/gnu/packages/patches/make-impure-dirs.patch @@ -0,0 +1,40 @@ +Purity: don't look for library dependencies (of the form `-lfoo') in +/lib and /usr/lib. Likewise, when searching for included Makefiles, +don't look in /usr/include and friends. + +Patch from Nixpkgs, by Eelco Dolstra. + +diff -rc make-3.81-orig/read.c make-3.81/read.c +*** make-3.81-orig/read.c 2006-03-17 15:24:20.000000000 +0100 +--- make-3.81/read.c 2007-05-24 17:16:31.000000000 +0200 +*************** +*** 99,107 **** +--- 99,109 ---- + #endif + INCLUDEDIR, + #ifndef _AMIGA ++ #if 0 + "/usr/gnu/include", + "/usr/local/include", + "/usr/include", ++ #endif + #endif + 0 + }; +diff -rc make-3.81-orig/remake.c make-3.81/remake.c +*** make-3.81-orig/remake.c 2006-03-20 03:36:37.000000000 +0100 +--- make-3.81/remake.c 2007-05-24 17:06:54.000000000 +0200 +*************** +*** 1452,1460 **** +--- 1452,1462 ---- + static char *dirs[] = + { + #ifndef _AMIGA ++ #if 0 + "/lib", + "/usr/lib", + #endif ++ #endif + #if defined(WINDOWS32) && !defined(LIBDIR) + /* + * This is completely up to the user at product install time. Just define diff --git a/gnu/packages/patches/perl-no-sys-dirs.patch b/gnu/packages/patches/perl-no-sys-dirs.patch new file mode 100644 index 0000000000..3aba4d7529 --- /dev/null +++ b/gnu/packages/patches/perl-no-sys-dirs.patch @@ -0,0 +1,156 @@ +Don't long for headers and libraries in "traditional" locations. + +Patch from Nixpkgs by Eelco Dolstra . + +diff -ru -x '*~' perl-5.14.2-orig/Configure perl-5.14.2/Configure +--- perl-5.14.2-orig/Configure 2011-09-26 11:44:34.000000000 +0200 ++++ perl-5.14.2/Configure 2012-01-20 17:05:23.089223129 +0100 +@@ -106,15 +106,7 @@ + fi + + : Proper PATH setting +-paths='/bin /usr/bin /usr/local/bin /usr/ucb /usr/local /usr/lbin' +-paths="$paths /opt/bin /opt/local/bin /opt/local /opt/lbin" +-paths="$paths /usr/5bin /etc /usr/gnu/bin /usr/new /usr/new/bin /usr/nbin" +-paths="$paths /opt/gnu/bin /opt/new /opt/new/bin /opt/nbin" +-paths="$paths /sys5.3/bin /sys5.3/usr/bin /bsd4.3/bin /bsd4.3/usr/ucb" +-paths="$paths /bsd4.3/usr/bin /usr/bsd /bsd43/bin /opt/ansic/bin /usr/ccs/bin" +-paths="$paths /etc /usr/lib /usr/ucblib /lib /usr/ccs/lib" +-paths="$paths /sbin /usr/sbin /usr/libexec" +-paths="$paths /system/gnu_library/bin" ++paths='' + + for p in $paths + do +@@ -1311,8 +1303,7 @@ + archname='' + : Possible local include directories to search. + : Set locincpth to "" in a hint file to defeat local include searches. +-locincpth="/usr/local/include /opt/local/include /usr/gnu/include" +-locincpth="$locincpth /opt/gnu/include /usr/GNU/include /opt/GNU/include" ++locincpth="" + : + : no include file wanted by default + inclwanted='' +@@ -1328,17 +1319,12 @@ + archobjs='' + libnames='' + : change the next line if compiling for Xenix/286 on Xenix/386 +-xlibpth='/usr/lib/386 /lib/386' ++xlibpth='' + : Possible local library directories to search. +-loclibpth="/usr/local/lib /opt/local/lib /usr/gnu/lib" +-loclibpth="$loclibpth /opt/gnu/lib /usr/GNU/lib /opt/GNU/lib" ++loclibpth="" + + : general looking path for locating libraries +-glibpth="/lib /usr/lib $xlibpth" +-glibpth="$glibpth /usr/ccs/lib /usr/ucblib /usr/local/lib" +-test -f /usr/shlib/libc.so && glibpth="/usr/shlib $glibpth" +-test -f /shlib/libc.so && glibpth="/shlib $glibpth" +-test -d /usr/lib64 && glibpth="$glibpth /lib64 /usr/lib64 /usr/local/lib64" ++glibpth="" + + : Private path used by Configure to find libraries. Its value + : is prepended to libpth. This variable takes care of special +@@ -1371,8 +1357,6 @@ + libswanted="$libswanted m crypt sec util c cposix posix ucb bsd BSD" + : We probably want to search /usr/shlib before most other libraries. + : This is only used by the lib/ExtUtils/MakeMaker.pm routine extliblist. +-glibpth=`echo " $glibpth " | sed -e 's! /usr/shlib ! !'` +-glibpth="/usr/shlib $glibpth" + : Do not use vfork unless overridden by a hint file. + usevfork=false + +@@ -2380,7 +2364,6 @@ + zip + " + pth=`echo $PATH | sed -e "s/$p_/ /g"` +-pth="$pth /lib /usr/lib" + for file in $loclist; do + eval xxx=\$$file + case "$xxx" in +@@ -4785,7 +4768,7 @@ + : Set private lib path + case "$plibpth" in + '') if ./mips; then +- plibpth="$incpath/usr/lib /usr/local/lib /usr/ccs/lib" ++ plibpth="$incpath/usr/lib" + fi;; + esac + case "$libpth" in +@@ -8390,13 +8373,8 @@ + echo " " + case "$sysman" in + '') +- syspath='/usr/share/man/man1 /usr/man/man1' +- syspath="$syspath /usr/man/mann /usr/man/manl /usr/man/local/man1" +- syspath="$syspath /usr/man/u_man/man1" +- syspath="$syspath /usr/catman/u_man/man1 /usr/man/l_man/man1" +- syspath="$syspath /usr/local/man/u_man/man1 /usr/local/man/l_man/man1" +- syspath="$syspath /usr/man/man.L /local/man/man1 /usr/local/man/man1" +- sysman=`./loc . /usr/man/man1 $syspath` ++ syspath='' ++ sysman='' + ;; + esac + if $test -d "$sysman"; then +@@ -19721,9 +19699,10 @@ + case "$full_ar" in + '') full_ar=$ar ;; + esac ++full_ar=ar + + : Store the full pathname to the sed program for use in the C program +-full_sed=$sed ++full_sed=sed + + : see what type gids are declared as in the kernel + echo " " +diff -ru -x '*~' perl-5.14.2-orig/ext/Errno/Errno_pm.PL perl-5.14.2/ext/Errno/Errno_pm.PL +--- perl-5.14.2-orig/ext/Errno/Errno_pm.PL 2011-09-26 11:44:34.000000000 +0200 ++++ perl-5.14.2/ext/Errno/Errno_pm.PL 2012-01-20 17:02:07.938138311 +0100 +@@ -137,11 +137,7 @@ + if ($dep =~ /(\S+errno\.h)/) { + $file{$1} = 1; + } +- } elsif ($^O eq 'linux' && +- $Config{gccversion} ne '' && +- $Config{gccversion} !~ /intel/i +- # might be using, say, Intel's icc +- ) { ++ } elsif (0) { + # Some Linuxes have weird errno.hs which generate + # no #file or #line directives + my $linux_errno_h = -e '/usr/include/errno.h' ? +diff -ru -x '*~' perl-5.14.2-orig/hints/freebsd.sh perl-5.14.2/hints/freebsd.sh +--- perl-5.14.2-orig/hints/freebsd.sh 2011-09-19 15:18:22.000000000 +0200 ++++ perl-5.14.2/hints/freebsd.sh 2012-01-20 17:10:37.267924044 +0100 +@@ -118,21 +118,21 @@ + objformat=`/usr/bin/objformat` + if [ x$objformat = xaout ]; then + if [ -e /usr/lib/aout ]; then +- libpth="/usr/lib/aout /usr/local/lib /usr/lib" +- glibpth="/usr/lib/aout /usr/local/lib /usr/lib" ++ libpth="" ++ glibpth="" + fi + lddlflags='-Bshareable' + else +- libpth="/usr/lib /usr/local/lib" +- glibpth="/usr/lib /usr/local/lib" ++ libpth="" ++ glibpth="" + ldflags="-Wl,-E " + lddlflags="-shared " + fi + cccdlflags='-DPIC -fPIC' + ;; + *) +- libpth="/usr/lib /usr/local/lib" +- glibpth="/usr/lib /usr/local/lib" ++ libpth="" ++ glibpth="" + ldflags="-Wl,-E " + lddlflags="-shared " + cccdlflags='-DPIC -fPIC' diff --git a/gnu/packages/patches/procps-make-3.82.patch b/gnu/packages/patches/procps-make-3.82.patch new file mode 100644 index 0000000000..7bf53e2ccc --- /dev/null +++ b/gnu/packages/patches/procps-make-3.82.patch @@ -0,0 +1,14 @@ +Fix compilation with GNU Make 3.82 (patch from Nixpkgs). + +diff --git a/Makefile b/Makefile +index 09fb3ed..59eba16 100644 +--- a/Makefile ++++ b/Makefile +@@ -174,7 +174,7 @@ INSTALL := $(BINFILES) $(MANFILES) + # want this rule first, use := on ALL, and ALL not filled in yet + all: do_all + +--include */module.mk ++-include proc/module.mk ps/module.mk + + do_all: $(ALL) diff --git a/gnu/packages/patches/readline-link-ncurses.patch b/gnu/packages/patches/readline-link-ncurses.patch new file mode 100644 index 0000000000..0fd0598f46 --- /dev/null +++ b/gnu/packages/patches/readline-link-ncurses.patch @@ -0,0 +1,18 @@ +This patch is to make sure that `libncurses' is among the `NEEDED' +dependencies of `libreadline.so' and `libhistory.so'. + +Failing to do that, applications linking against Readline are +forced to explicitly link against libncurses as well; in addition, +this trick doesn't work when using GNU ld's `--as-needed'. + +--- shlib/Makefile.in 2009-01-06 18:03:22.000000000 +0100 ++++ shlib/Makefile.in 2009-07-27 14:43:25.000000000 +0200 +@@ -84,7 +84,7 @@ SHOBJ_LDFLAGS = @SHOBJ_LDFLAGS@ + SHOBJ_XLDFLAGS = @SHOBJ_XLDFLAGS@ + SHOBJ_LIBS = @SHOBJ_LIBS@ + +-SHLIB_XLDFLAGS = @LDFLAGS@ @SHLIB_XLDFLAGS@ ++SHLIB_XLDFLAGS = @LDFLAGS@ @SHLIB_XLDFLAGS@ -lncurses + SHLIB_LIBS = @SHLIB_LIBS@ + + SHLIB_DOT = @SHLIB_DOT@ diff --git a/gnu/packages/patches/shishi-gets-undeclared.patch b/gnu/packages/patches/shishi-gets-undeclared.patch new file mode 100644 index 0000000000..a3d6d0cca2 --- /dev/null +++ b/gnu/packages/patches/shishi-gets-undeclared.patch @@ -0,0 +1,71 @@ +This patch is needed to allow builds with newer versions of +the GNU libc (2.16+). + + +commit 66712c23388e93e5c518ebc8515140fa0c807348 +Author: Eric Blake +Date: Thu Mar 29 13:30:41 2012 -0600 + + stdio: don't assume gets any more + + Gnulib intentionally does not have a gets module, and now that C11 + and glibc have dropped it, we should be more proactive about warning + any user on a platform that still has a declaration of this dangerous + interface. + + * m4/stdio_h.m4 (gl_STDIO_H, gl_STDIO_H_DEFAULTS): Drop gets + support. + * modules/stdio (Makefile.am): Likewise. + * lib/stdio-read.c (gets): Likewise. + * tests/test-stdio-c++.cc: Likewise. + * m4/warn-on-use.m4 (gl_WARN_ON_USE_PREPARE): Fix comment. + * lib/stdio.in.h (gets): Make warning occur in more places. + * doc/posix-functions/gets.texi (gets): Update documentation. + Reported by Christer Solskogen. + + Signed-off-by: Eric Blake + +diff --git a/gl/stdio.in.h b/gl/stdio.in.h +index aa7b599..c377b6e 100644 +--- a/gl/stdio.in.h ++++ b/gl/stdio.in.h +@@ -698,22 +698,11 @@ _GL_WARN_ON_USE (getline, "getline is unportable - " + # endif + #endif + +-#if @GNULIB_GETS@ +-# if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ +-# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +-# undef gets +-# define gets rpl_gets +-# endif +-_GL_FUNCDECL_RPL (gets, char *, (char *s) _GL_ARG_NONNULL ((1))); +-_GL_CXXALIAS_RPL (gets, char *, (char *s)); +-# else +-_GL_CXXALIAS_SYS (gets, char *, (char *s)); +-# undef gets +-# endif +-_GL_CXXALIASWARN (gets); + /* It is very rare that the developer ever has full control of stdin, +- so any use of gets warrants an unconditional warning. Assume it is +- always declared, since it is required by C89. */ ++ so any use of gets warrants an unconditional warning; besides, C11 ++ removed it. */ ++#undef gets ++#if HAVE_RAW_DECL_GETS + _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead"); + #endif + +@@ -1053,9 +1042,9 @@ _GL_WARN_ON_USE (snprintf, "snprintf is unportable - " + # endif + #endif + +-/* Some people would argue that sprintf should be handled like gets +- (for example, OpenBSD issues a link warning for both functions), +- since both can cause security holes due to buffer overruns. ++/* Some people would argue that all sprintf uses should be warned about ++ (for example, OpenBSD issues a link warning for it), ++ since it can cause security holes due to buffer overruns. + However, we believe that sprintf can be used safely, and is more + efficient than snprintf in those safe cases; and as proof of our + belief, we use sprintf in several gnulib modules. So this header diff --git a/gnu/packages/patches/tar-gets-undeclared.patch b/gnu/packages/patches/tar-gets-undeclared.patch new file mode 100644 index 0000000000..301a09dde1 --- /dev/null +++ b/gnu/packages/patches/tar-gets-undeclared.patch @@ -0,0 +1,26 @@ +This patch is needed to allow builds with newer versions of +the GNU libc (2.16+). + +This is a backport of this patch: + +commit 66712c23388e93e5c518ebc8515140fa0c807348 +Author: Eric Blake +Date: Thu Mar 29 13:30:41 2012 -0600 + + stdio: don't assume gets any more + +--- tar-1.26/gnu/stdio.in.h 2012-07-02 14:28:45.000000000 +0200 ++++ tar-1.26/gnu/stdio.in.h 2012-07-02 14:28:50.000000000 +0200 +@@ -160,12 +160,6 @@ _GL_WARN_ON_USE (fflush, "fflush is not + "use gnulib module fflush for portable POSIX compliance"); + #endif + +-/* It is very rare that the developer ever has full control of stdin, +- so any use of gets warrants an unconditional warning. Assume it is +- always declared, since it is required by C89. */ +-#undef gets +-_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead"); +- + #if @GNULIB_FOPEN@ + # if @REPLACE_FOPEN@ + # if !(defined __cplusplus && defined GNULIB_NAMESPACE) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm new file mode 100644 index 0000000000..719aa4db5c --- /dev/null +++ b/gnu/packages/perl.scm @@ -0,0 +1,73 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012, 2013 Ludovic Courtès +;;; +;;; 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 . + +(define-module (gnu packages perl) + #:use-module (guix licenses) + #:use-module (distro) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix utils) + #:use-module (guix build-system gnu)) + +(define-public perl + ;; Yeah, Perl... It is required early in the bootstrap process by Linux. + (package + (name "perl") + (version "5.16.1") + (source (origin + (method url-fetch) + (uri (string-append "http://www.cpan.org/src/5.0/perl-" + version ".tar.gz")) + (sha256 + (base32 + "15qxzba3a50c9nik5ydgyfp62x7h9vxxn12yd1jgl93hb1wj96km")))) + (build-system gnu-build-system) + (arguments + (lambda (system) + `(#:tests? #f + #:patches (list (assoc-ref %build-inputs "patch/no-sys-dirs")) + #:phases + (alist-replace + 'configure + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (libc (assoc-ref inputs "libc"))) + ;; Use the right path for `pwd'. + (substitute* "dist/Cwd/Cwd.pm" + (("/bin/pwd") + (which "pwd"))) + + (zero? + (system* "./Configure" + (string-append "-Dprefix=" out) + (string-append "-Dman1dir=" out "/share/man/man1") + (string-append "-Dman3dir=" out "/share/man/man3") + "-de" "-Dcc=gcc" + "-Uinstallusrbinperl" + "-Dinstallstyle=lib/perl5" + "-Duseshrplib" + (string-append "-Dlocincpth=" libc "/include") + (string-append "-Dloclibpth=" libc "/lib"))))) + %standard-phases)))) + (inputs `(("patch/no-sys-dirs" ,(search-patch "perl-no-sys-dirs.patch")))) + (synopsis "Implementation of the Perl programming language") + (description + "Perl 5 is a highly capable, feature-rich programming language with over +24 years of development.") + (home-page "http://www.perl.org/") + (license gpl1+))) ; or "Artistic" diff --git a/gnu/packages/pkg-config.scm b/gnu/packages/pkg-config.scm new file mode 100644 index 0000000000..f9bcf18728 --- /dev/null +++ b/gnu/packages/pkg-config.scm @@ -0,0 +1,51 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Ludovic Courtès +;;; +;;; 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 . + +(define-module (gnu packages pkg-config) + #:use-module (guix licenses) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix utils) + #:use-module (guix build-system gnu)) + +(define-public pkg-config + (package + (name "pkg-config") + (version "0.27.1") + (source (origin + (method url-fetch) + (uri (string-append + "http://pkgconfig.freedesktop.org/releases/pkg-config-" + version ".tar.gz")) + (sha256 + (base32 + "05wc5nwkqz7saj2v33ydmz1y6jdg659dll4jjh91n41m63gx0qsg")))) + (build-system gnu-build-system) + (arguments `(#:configure-flags '("--with-internal-glib"))) + (home-page "http://www.freedesktop.org/wiki/Software/pkg-config") + (license gpl2+) + (synopsis "a helper tool used when compiling applications and +libraries") + (description + "pkg-config is a helper tool used when compiling applications and +libraries. It helps you insert the correct compiler options on the +command line so an application can use gcc -o test test.c `pkg-config +--libs --cflags glib-2.0` for instance, rather than hard-coding values +on where to find glib (or other libraries). It is language-agnostic, so +it can be used for defining the location of documentation tools, for +instance."))) diff --git a/gnu/packages/pth.scm b/gnu/packages/pth.scm new file mode 100644 index 0000000000..b0d5092cb0 --- /dev/null +++ b/gnu/packages/pth.scm @@ -0,0 +1,61 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Ludovic Courtès +;;; +;;; 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 . + +(define-module (gnu packages pth) + #:use-module (guix licenses) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu)) + +(define-public pth + (package + (name "pth") + (version "2.0.7") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://gnu/pth/pth-" version + ".tar.gz")) + (sha256 + (base32 + "0ckjqw5kz5m30srqi87idj7xhpw6bpki43mj07bazjm2qmh3cdbj")))) + (build-system gnu-build-system) + (arguments '(#:parallel-build? #f)) + (home-page "http://www.gnu.org/software/pth") + (synopsis "The GNU Portable Threads library") + (description + "Pth is a very portable POSIX/ANSI-C based library for Unix +platforms which provides non-preemptive priority-based scheduling for +multiple threads of execution (aka ``multithreading'') inside +event-driven applications. All threads run in the same address space of +the server application, but each thread has it's own individual +program-counter, run-time stack, signal mask and errno variable. + +The thread scheduling itself is done in a cooperative way, i.e., the +threads are managed by a priority- and event-based non-preemptive +scheduler. The intention is that this way one can achieve better +portability and run-time performance than with preemptive +scheduling. The event facility allows threads to wait until various +types of events occur, including pending I/O on file descriptors, +asynchronous signals, elapsed timers, pending I/O on message ports, +thread and process termination, and even customized callback functions. + +Additionally Pth provides an optional emulation API for POSIX.1c +threads (\"Pthreads\") which can be used for backward compatibility to +existing multithreaded applications.") + (license lgpl2.1+))) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm new file mode 100644 index 0000000000..39d4880ecc --- /dev/null +++ b/gnu/packages/python.scm @@ -0,0 +1,58 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2013 Nikita Karetnikov +;;; Copyright © 2013 Ludovic Courtès +;;; +;;; 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 . + +(define-module (gnu packages python) + #:use-module ((guix licenses) #:select (psfl)) + #:use-module (gnu packages compression) + #:use-module (gnu packages openssl) + #:use-module (gnu packages base) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu)) + +(define-public python + (package + (name "python") + (version "2.7.3") + (source + (origin + (method url-fetch) + (uri (string-append "http://www.python.org/ftp/python/" + version "/Python-" version ".tar.xz")) + (sha256 + (base32 + "11f9aw855lrmknr6c82gm1ijr3n0smc6idyp94y7774yivjnplv1")))) + (build-system gnu-build-system) + (arguments `(#:tests? #f)) ; XXX: some tests fail + (inputs + `(("zlib" ,zlib) + ("openssl" ,openssl) + ("bzip2" ,bzip2))) + (home-page "http://python.org") + (synopsis + "Python, a high-level dynamically-typed programming language") + (description + "Python is a remarkably powerful dynamic programming language that +is used in a wide variety of application domains. Some of its key +distinguishing features include: clear, readable syntax; strong +introspection capabilities; intuitive object orientation; natural +expression of procedural code; full modularity, supporting hierarchical +packages; exception-based error handling; and very high level dynamic +data types.") + (license psfl))) diff --git a/gnu/packages/readline.scm b/gnu/packages/readline.scm new file mode 100644 index 0000000000..8623e63758 --- /dev/null +++ b/gnu/packages/readline.scm @@ -0,0 +1,79 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Ludovic Courtès +;;; +;;; 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 . + +(define-module (gnu packages readline) + #:use-module (guix licenses) + #:use-module (distro) + #:use-module (gnu packages ncurses) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix utils) + #:use-module (guix build-system gnu)) + +(define-public readline + (let ((post-install-phase + '(lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (lib (string-append out "/lib"))) + ;; Make libraries writable so that `strip' can work. + ;; Failing to do that, it bails out with "Permission + ;; denied". + (for-each (lambda (f) (chmod f #o755)) + (find-files lib "\\.so")) + (for-each (lambda (f) (chmod f #o644)) + (find-files lib "\\.a")))))) + (package + (name "readline") + (version "6.2") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/readline/readline-" + version ".tar.gz")) + (sha256 + (base32 + "10ckm2bd2rkxhvdmj7nmbsylmihw0abwcsnxf8y27305183rd9kr")))) + (build-system gnu-build-system) + (propagated-inputs `(("ncurses" ,ncurses))) + (inputs `(("patch/link-ncurses" + ,(search-patch "readline-link-ncurses.patch")))) + (arguments `(#:patches (list (assoc-ref %build-inputs + "patch/link-ncurses")) + #:patch-flags '("-p0") + #:configure-flags + (list (string-append "LDFLAGS=-Wl,-rpath -Wl," + (assoc-ref %build-inputs "ncurses") + "/lib")) + + #:phases (alist-cons-after + 'install 'post-install + ,post-install-phase + %standard-phases))) + (synopsis "GNU Readline, a library for interactive line editing") + (description + "The GNU Readline library provides a set of functions for use by +applications that allow users to edit command lines as they are typed in. +Both Emacs and vi editing modes are available. The Readline library includes +additional functions to maintain a list of previously-entered command lines, +to recall and perhaps reedit those lines, and perform csh-like history +expansion on previous commands. + +The history facilites are also placed into a separate library, the History +library, as part of the build process. The History library may be used +without Readline in applications which desire its capabilities.") + (license gpl3+) + (home-page "http://savannah.gnu.org/projects/readline/")))) diff --git a/gnu/packages/recutils.scm b/gnu/packages/recutils.scm new file mode 100644 index 0000000000..39452b54b9 --- /dev/null +++ b/gnu/packages/recutils.scm @@ -0,0 +1,57 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012, 2013 Ludovic Courtès +;;; +;;; 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 . + +(define-module (gnu packages recutils) + #:use-module (guix licenses) + #:use-module (distro) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix utils) + #:use-module (guix build-system gnu) + #:use-module (gnu packages emacs) + #:use-module (gnu packages check) + #:use-module (gnu packages algebra)) + +(define-public recutils + (package + (name "recutils") + (version "1.5") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/recutils/recutils-" + version ".tar.gz")) + (sha256 + (base32 + "1v2xzwwwhc5j5kmvg4sv6baxjpsfqh8ln7ilv4mgb1408rs7xmky")))) + (build-system gnu-build-system) + (inputs `(;; TODO: Enable optional deps when they're packaged. + ;; ("curl" ,(nixpkgs-derivation "curl")) + ("emacs" ,emacs) + ("check" ,check) + ("bc" ,bc) + ("patch/gets" + ,(search-patch "diffutils-gets-undeclared.patch")))) + (arguments `(#:patches (list (assoc-ref %build-inputs "patch/gets")))) + (synopsis "GNU recutils, tools and libraries to access human-editable, +text-based databases") + (description + "GNU recutils is a set of tools and libraries to access human-editable, +text-based databases called recfiles. The data is stored as a sequence of +records, each record containing an arbitrary number of named fields.") + (license gpl3+) + (home-page "http://www.gnu.org/software/recutils/"))) diff --git a/gnu/packages/rsync.scm b/gnu/packages/rsync.scm new file mode 100644 index 0000000000..3fb7874434 --- /dev/null +++ b/gnu/packages/rsync.scm @@ -0,0 +1,51 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Andreas Enge +;;; +;;; 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 . + +(define-module (gnu packages rsync) + #:use-module (distro) + #:use-module (gnu packages perl) + #:use-module (gnu 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/gnu/packages/scheme.scm b/gnu/packages/scheme.scm new file mode 100644 index 0000000000..a1b8f68c9d --- /dev/null +++ b/gnu/packages/scheme.scm @@ -0,0 +1,168 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2013 Ludovic Courtès +;;; +;;; 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 . + +(define-module (gnu packages scheme) + #:use-module (distro) + #:use-module (guix licenses) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu) + #:use-module (gnu packages m4) + #:use-module (gnu packages multiprecision) + #:use-module (gnu packages emacs) + #:use-module (gnu packages texinfo) + #:use-module (ice-9 match)) + +(define-public mit-scheme + (package + (name "mit-scheme") + (version "9.1.1") + (source #f) ; see below + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; no "check" target + #:phases + (alist-replace + 'unpack + (lambda* (#:key inputs #:allow-other-keys) + (and (zero? (system* "tar" "xzvf" + (assoc-ref inputs "source"))) + (chdir ,(string-append name "-" version)) + (begin + ;; Delete these dangling symlinks since they break + ;; `patch-shebangs'. + (for-each delete-file + (append (find-files "src/lib/lib" "\\.so$") + (find-files "src/lib" "^ffi-test"))) + (chdir "src") + #t))) + (alist-replace + 'build + (lambda* (#:key system outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (if (or (string-prefix? "x86_64" system) + (string-prefix? "i686" system)) + (zero? (system* "make" "compile-microcode")) + (zero? (system* "./etc/make-liarc.sh" + (string-append "--prefix=" out)))))) + %standard-phases)))) + (inputs + `(;; TODO: Build doc when TeX Live is available. + ;; ("automake" ,automake) + ;; ("texlive-core" ,texlive-core) + ("texinfo" ,texinfo) + ("m4" ,m4) + + ("source" + ,(lambda (system) + ;; MIT/GNU Scheme is not bootstrappable, so it's recommended to + ;; compile from the architecture-specific tarballs, which contain + ;; pre-built binaries. It leads to more efficient code than when + ;; building the tarball that contains generated C code instead of + ;; those binaries. + (origin + (method url-fetch) + (uri (string-append "mirror://gnu/mit-scheme/stable.pkg/" + version "/mit-scheme-" + version "-" + (match system + ("x86_64-linux" "x86-64") + ("i686-linux" "i386") + (_ "c")) + ".tar.gz")) + (sha256 + (match system + ("x86_64-linux" + (base32 + "1wcxm9hyfc53myvlcn93fyqrnnn4scwkknl9hkbp1cphc6mp291x")) + ("i686-linux" + (base32 + "0vi760fy550d9db538m0vzbq1mpdncvw9g8bk4lswk0kcdira55z")) + (_ + (base32 + "0pclakzwxbqgy6wqwvs6ml62wgby8ba8xzmwzdwhx1v8wv05yw1j"))))))))) + (home-page "http://www.gnu.org/software/mit-scheme/") + (synopsis "MIT/GNU Scheme, a native code Scheme compiler") + (description + "MIT/GNU Scheme is an implementation of the Scheme programming +language, providing an interpreter, compiler, source-code debugger, +integrated Emacs-like editor, and a large runtime library. MIT/GNU +Scheme is best suited to programming large applications with a rapid +development cycle.") + (license gpl2+))) + +(define-public bigloo + (package + (name "bigloo") + (version "3.9a") + (source (origin + (method url-fetch) + (uri (string-append "ftp://ftp-sop.inria.fr/indes/fp/Bigloo/bigloo" + version ".tar.gz")) + (sha256 + (base32 + "0v1q0gcbn38ackdzsnvpkdgaj6ydkfdya31l2hag21aig087px1y")))) + (build-system gnu-build-system) + (arguments + '(#:patches (list (assoc-ref %build-inputs "patch/shebangs")) + #:test-target "test" + #:phases (alist-replace + 'configure + (lambda* (#:key outputs #:allow-other-keys) + + (substitute* "configure" + (("^shell=.*$") + (string-append "shell=" (which "bash") "\n"))) + + ;; Those variables are used by libgc's `configure'. + (setenv "SHELL" (which "bash")) + (setenv "CONFIG_SHELL" (which "bash")) + + ;; The `configure' script doesn't understand options + ;; of those of Autoconf. + (let ((out (assoc-ref outputs "out"))) + (zero? + (system* "./configure" + (string-append "--prefix=" out) + (string-append"--mv=" (which "mv")) + (string-append "--rm=" (which "rm")))))) + (alist-cons-after + 'patch 'patch-absolute-file-names + (lambda _ + (substitute* (cons "configure" + (find-files "gc" "^install-gc")) + (("/bin/rm") (which "rm")) + (("/bin/mv") (which "mv")))) + %standard-phases)))) + (inputs + `(("gmp" ,gmp) + ("emacs" ,emacs) + ("patch/shebangs" ,(search-patch "bigloo-gc-shebangs.patch")))) + (home-page "http://www-sop.inria.fr/indes/fp/Bigloo/") + (synopsis "Bigloo, an efficient Scheme compiler") + (description + "Bigloo is a Scheme implementation devoted to one goal: enabling +Scheme based programming style where C(++) is usually +required. Bigloo attempts to make Scheme practical by offering +features usually presented by traditional programming languages +but not offered by Scheme and functional programming. Bigloo +compiles Scheme modules. It delivers small and fast stand alone +binary executables. Bigloo enables full connections between +Scheme and C programs, between Scheme and Java programs, and +between Scheme and C# programs.") + (license gpl2+))) diff --git a/gnu/packages/shishi.scm b/gnu/packages/shishi.scm new file mode 100644 index 0000000000..d6d152f368 --- /dev/null +++ b/gnu/packages/shishi.scm @@ -0,0 +1,71 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Nikita Karetnikov +;;; Copyright © 2012 Ludovic Courtès +;;; +;;; 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 . + +(define-module (gnu packages shishi) + #:use-module (guix licenses) + #:use-module (distro) + #:use-module (gnu packages gnutls) + #:use-module (gnu packages gnupg) + #:use-module ((gnu packages compression) + #:renamer (symbol-prefix-proc 'guix:)) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu)) + +(define-public shishi + (package + (name "shishi") + (version "1.0.1") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://gnu/shishi/shishi-" + version + ".tar.gz")) + (sha256 + (base32 + "13c6w9rpaqb3am65nrn86byvmll5r78pld2vb0i68491vww4fzlx")))) + (build-system gnu-build-system) + (arguments + `(#:make-flags + '("CPPFLAGS=-DMAX_ERROR_DESCRIPTION_SIZE=ASN1_MAX_ERROR_DESCRIPTION_SIZE") + #:patches (list (assoc-ref %build-inputs + "patch/gets")))) + (inputs + `(("gnutls" ,gnutls) + ("zlib" ,guix:zlib) + ("libgcrypt" ,libgcrypt) + ("libtasn1" ,libtasn1) + ("patch/gets" ,(search-patch "shishi-gets-undeclared.patch")))) + (home-page "http://www.gnu.org/software/shishi/") + (synopsis + "GNU Shishi, free implementation of the Kerberos 5 network security system") + (description + " GNU Shishi is an implementation of the Kerberos 5 network + authentication system, as specified in RFC 4120. Shishi can be + used to authenticate users in distributed systems. + + Shishi contains a library (`libshishi') that can be used by + application developers to add support for Kerberos 5. Shishi + contains a command line utility (1shishi') that is used by + users to acquire and manage tickets (and more). The server + side, a Key Distribution Center, is implemented by `shishid'. +") + (license gpl3+))) ; some files are under GPLv2+ diff --git a/gnu/packages/system.scm b/gnu/packages/system.scm new file mode 100644 index 0000000000..5fb3dc463b --- /dev/null +++ b/gnu/packages/system.scm @@ -0,0 +1,91 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Ludovic Courtès +;;; +;;; 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 . + +(define-module (gnu packages system) + #:use-module (guix licenses) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu) + #:use-module (distro) + #:use-module (gnu packages ncurses)) + +(define-public pies + (package + (name "pies") + (version "1.2") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://gnu/pies/pies-" + version ".tar.bz2")) + (sha256 + (base32 + "18w0dbg77i56cx1bwa789w0qi3l4xkkbascxcv2b6gbm0zmjg1g6")))) + (build-system gnu-build-system) + (home-page "http://www.gnu.org/software/pies/") + (synopsis + "GNU Pies, a program invocation and execution supervisor") + (description + "The name Pies (pronounced \"p-yes\") stands for Program Invocation +and Execution Supervisor. This utility starts and controls execution of +external programs, called components. Each component is a stand-alone +program, which is executed in the foreground. Upon startup, pies reads +the list of components from its configuration file, starts them, and +remains in the background, controlling their execution. If any of the +components terminates, the default action of Pies is to restart it. +However, it can also be programmed to perform a variety of another +actions such as, e.g., sending mail notifications to the system +administrator, invoking another external program, etc. + +Pies can be used for a wide variety of tasks. Its most obious use is to +put in backgound a program which normally cannot detach itself from the +controlling terminal, such as, e.g., minicom. It can launch and control +components of some complex system, such as Jabberd or MeTA1 (and it +offers much more control over them than the native utilities). Finally, +it can replace the inetd utility!") + (license gpl3+))) + +(define-public inetutils + (package + (name "inetutils") + (version "1.9.1") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://gnu/inetutils/inetutils-" + version ".tar.gz")) + (sha256 + (base32 + "0azzg6njgq79byl6960kb0wihfhhzf49snslhxgvi30ribgfpa82")))) + (build-system gnu-build-system) + (arguments `(#:patches (list (assoc-ref %build-inputs "patch/gets")) + + ;; FIXME: `tftp.sh' relies on `netstat' from utils-linux, + ;; which is currently missing. + #:tests? #f)) + (inputs `(("patch/gets" ,(search-patch "diffutils-gets-undeclared.patch")) + ("ncurses" ,ncurses))) + (home-page "http://www.gnu.org/software/inetutils/") + (synopsis + "GNU Inetutils, a collection of common network programs") + (description + "The GNU network utilities suite provides the following tools: +ftp(d), hostname, ifconfig, inetd, logger, ping, rcp, rexec(d), +rlogin(d), rsh(d), syslogd, talk(d), telnet(d), tftp(d), traceroute, +uucpd, and whois.") + (license gpl3+))) diff --git a/gnu/packages/tcl.scm b/gnu/packages/tcl.scm new file mode 100644 index 0000000000..a8c4c957c4 --- /dev/null +++ b/gnu/packages/tcl.scm @@ -0,0 +1,109 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2013 Ludovic Courtès +;;; +;;; 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 . + +(define-module (gnu packages tcl) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu) + #:use-module (guix licenses)) + +(define-public tcl + (package + (name "tcl") + (version "8.6.0") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/tcl/Tcl/" + version "/tcl" version "-src.tar.gz")) + (sha256 + (base32 + "1pnabp3xsja4rc8c01l9q1avb65a3zhdzci3j54qa5krqjwj4i1m")))) + (build-system gnu-build-system) + (arguments + '(#:phases (alist-cons-before + 'configure 'pre-configure + (lambda _ + (chdir "unix")) + (alist-cons-after + 'install 'install-private-headers + (lambda _ + ;; Private headers are needed by Expect. + (zero? (system* "make" "install-private-headers"))) + %standard-phases)) + + ;; XXX: There are a few test failures (related to HTTP, most + ;; likely related to name resolution), but that doesn't cause + ;; `make' to fail. + #:test-target "test")) + (home-page "http://www.tcl.tk/") + (synopsis "The Tcl scripting language") + (description "The Tcl (Tool Command Language) scripting language.") + (license (bsd-style "http://www.tcl.tk/software/tcltk/license.html" + "Tcl/Tk license")))) + + +(define-public expect + (package + (name "expect") + (version "5.45") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/expect/Expect/" + version "/expect" version ".tar.gz")) + (sha256 + (base32 + "0h60bifxj876afz4im35rmnbnxjx4lbdqp2ja3k30fwa8a8cm3dj")))) + (build-system gnu-build-system) + (inputs + `(;; TODO: Add these optional dependencies. + ;; ("libX11" ,libX11) + ;; ("xproto" ,xproto) + ;; ("tk" ,tk) + ("tcl" ,tcl))) + (arguments + '(#:configure-flags + (list (string-append "--with-tcl=" + (assoc-ref %build-inputs "tcl") + "/lib") + (string-append "--with-tclinclude=" + (assoc-ref %build-inputs "tcl") + "/include") + (string-append "--exec-prefix=" + (assoc-ref %outputs "out"))) + + #:phases (alist-cons-before + 'configure 'set-path-to-stty + (lambda _ + (substitute* "configure" + (("STTY_BIN=/bin/stty") + (string-append "STTY_BIN=" (which "stty"))))) + %standard-phases) + + #:test-target "test")) + (home-page "http://expect.nist.gov/") + (synopsis + "A tool for automating interactive applications") + (description + "Expect is a tool for automating interactive applications such as +telnet, ftp, passwd, fsck, rlogin, tip, etc. Expect really makes this +stuff trivial. Expect is also useful for testing these same +applications. And by adding Tk, you can wrap interactive applications in +X11 GUIs.") + (license public-domain))) ; as written in `license.terms' diff --git a/gnu/packages/texinfo.scm b/gnu/packages/texinfo.scm new file mode 100644 index 0000000000..9a264c627c --- /dev/null +++ b/gnu/packages/texinfo.scm @@ -0,0 +1,61 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Ludovic Courtès +;;; +;;; 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 . + +(define-module (gnu packages texinfo) + #:use-module (guix licenses) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu) + #:use-module (gnu packages compression) + #:use-module (gnu packages ncurses)) + +(define-public texinfo + (package + (name "texinfo") + (version "4.13a") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://gnu/texinfo/texinfo-" + version + ".tar.lzma")) + (sha256 + (base32 + "1rf9ckpqwixj65bw469i634897xwlgkm5i9g2hv3avl6mv7b0a3d")))) + (build-system gnu-build-system) + (inputs `(("ncurses" ,ncurses) ("xz" ,xz))) + (home-page + "http://www.gnu.org/software/texinfo/") + (synopsis + "GNU Texinfo, the GNU documentation system") + (description + "Texinfo is the official documentation format of the GNU project. +It was invented by Richard Stallman and Bob Chassell many years +ago, loosely based on Brian Reid's Scribe and other formatting +languages of the time. It is used by many non-GNU projects as +well. + +Texinfo uses a single source file to produce output in a number +of formats, both online and printed (dvi, html, info, pdf, xml, +etc.). This means that instead of writing different documents +for online information and another for a printed manual, you +need write only one document. And when the work is revised, you +need revise only that one document. The Texinfo system is +well-integrated with GNU Emacs.") + (license gpl3+))) diff --git a/gnu/packages/time.scm b/gnu/packages/time.scm new file mode 100644 index 0000000000..cfb3261f94 --- /dev/null +++ b/gnu/packages/time.scm @@ -0,0 +1,66 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Nikita Karetnikov +;;; Copyright © 2013 Ludovic Courtès +;;; +;;; 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 . + +(define-module (gnu packages time) + #:use-module (guix licenses) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu)) + +(define-public time + (package + (name "time") + (version "1.7") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://gnu/time/time-" + version ".tar.gz")) + (sha256 + (base32 + "0va9063fcn7xykv658v2s9gilj2fq4rcdxx2mn2mmy1v4ndafzp3")))) + (build-system gnu-build-system) + (arguments + '(#:phases + (alist-replace 'configure + (lambda* (#:key outputs #:allow-other-keys) + ;; This old `configure' script doesn't support + ;; variables passed as arguments. + (let ((out (assoc-ref outputs "out"))) + (setenv "CONFIG_SHELL" (which "bash")) + (zero? + (system* "./configure" + (string-append "--prefix=" out))))) + %standard-phases))) + (home-page "http://www.gnu.org/software/time/") + (synopsis + "GNU Time, a tool that runs programs and summarizes the system +resources they use") + (description + "The 'time' command runs another program, then displays information +about the resources used by that program, collected by the system while +the program was running. You can select which information is reported +and the format in which it is shown, or have 'time' save the information +in a file instead of displaying it on the screen. + +The resources that 'time' can report on fall into the general categories +of time, memory, and I/O and IPC calls. Some systems do not provide +much information about program resource use; 'time' reports unavailable +information as zero values.") + (license gpl2+))) diff --git a/gnu/packages/wget.scm b/gnu/packages/wget.scm new file mode 100644 index 0000000000..ea31a1e70d --- /dev/null +++ b/gnu/packages/wget.scm @@ -0,0 +1,61 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Nikita Karetnikov +;;; +;;; 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 . + +(define-module (gnu packages wget) + #:use-module (guix licenses) + #:use-module ((gnu packages gettext) + #:renamer (symbol-prefix-proc 'guix:)) + #:use-module (gnu packages gnutls) + #:use-module (gnu packages perl) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu)) + +(define-public wget + (package + (name "wget") + (version "1.14") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://gnu/wget/wget-" + version ".tar.xz")) + (sha256 + (base32 + "0yqllj3nv9p3vqbdm6j4nvpjcwf1y19rq8sd966nrbd2qvvxfq8p")))) + (build-system gnu-build-system) + (inputs + `(("gnutls" ,gnutls) + ("perl" ,perl) + ("gettext" ,guix:gettext))) + (arguments + '(#:phases + (alist-cons-before 'build 'patch-/usr/bin/env + (lambda _ + (for-each patch-shebang + '("doc/texi2pod.pl" "tests/run-px"))) + %standard-phases))) + (home-page "http://www.gnu.org/software/wget/") + (synopsis + "GNU Wget, a tool for retrieving files using HTTP, HTTPS, and FTP") + (description + "GNU Wget is a free software package for retrieving files using HTTP, +HTTPS and FTP, the most widely-used Internet protocols. It is a +non-interactive commandline tool, so it may easily be called from +scripts, cron jobs, terminals without X-Windows support, etc.") + (license gpl3+))) ; some files are under GPLv2+ diff --git a/gnu/packages/which.scm b/gnu/packages/which.scm new file mode 100644 index 0000000000..aa5330cad7 --- /dev/null +++ b/gnu/packages/which.scm @@ -0,0 +1,48 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Nikita Karetnikov +;;; +;;; 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 . + +(define-module (gnu packages which) + #:use-module (guix licenses) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu)) + +(define-public which + (package + (name "which") + (version "2.20") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://gnu/which/which-" + version ".tar.gz")) + (sha256 + (base32 + "1y2p50zadb36izzh2zw4dm5hvdiydqf3qa88l8kav20dcmfbc5yl")))) + (build-system gnu-build-system) + (home-page "https://gnu.org/software/which/") + (synopsis + "GNU Which shows the full path of (shell) commands") + (description + "GNU Which takes one or more arguments. For each of its arguments +it prints to stdout the full path of the executables that would have +been executed when this argument had been entered at the shell +prompt. It does this by searching for an executable or script in the +directories listed in the environment variable PATH using the same +algorithm as bash(1).") + (license gpl3+))) ; some files are under GPLv2+ diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm new file mode 100644 index 0000000000..d67057dab2 --- /dev/null +++ b/gnu/packages/xml.scm @@ -0,0 +1,44 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2013 Ludovic Courtès +;;; +;;; 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 . + +(define-module (gnu packages xml) + #:use-module ((guix licenses) + #:renamer (symbol-prefix-proc 'license:)) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu)) + +(define-public expat + (package + (name "expat") + (version "2.1.0") + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/expat/expat/" + version "/expat-" version ".tar.gz")) + (sha256 + (base32 + "11pblz61zyxh68s5pdcbhc30ha1b2vfjd83aiwfg4vc15x3hadw2")))) + (build-system gnu-build-system) + (home-page "http://www.libexpat.org/") + (synopsis "A stream-oriented XML parser library written in C") + (description + "Expat is an XML parser library written in C. It is a +stream-oriented parser in which an application registers handlers for +things the parser might find in the XML document (like start tags).") + (license license:expat))) diff --git a/gnu/packages/zile.scm b/gnu/packages/zile.scm new file mode 100644 index 0000000000..b5366c046f --- /dev/null +++ b/gnu/packages/zile.scm @@ -0,0 +1,66 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Ludovic Courtès +;;; +;;; 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 . + +(define-module (gnu packages zile) + #:use-module (guix licenses) + #:use-module (guix download) + #:use-module (guix packages) + #:use-module (guix build-system gnu) + #:use-module (gnu packages bdw-gc) + #:use-module (gnu packages perl) + #:use-module (gnu packages help2man) + #:use-module (gnu packages ncurses)) + +(define-public zile + (package + (name "zile") + (version "2.4.9") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://gnu/zile/zile-" + version ".tar.gz")) + (sha256 + (base32 + "0j801c28ypm924rw3lqyb6khxyslg6ycrv16wmmwcam0mk3mj6f7")))) + (build-system gnu-build-system) + (inputs + `(("boehm-gc" ,libgc) + ("ncurses" ,ncurses) + ("perl" ,perl) + ("help2man" ,help2man))) + (home-page "http://www.gnu.org/software/zile/") + (synopsis "GNU Zile, a lightweight Emacs clone") + (description + "GNU Zile, which is a lightweight Emacs clone. Zile is short +for Zile Is Lossy Emacs. Zile has been written to be as +similar as possible to Emacs; every Emacs user should feel at +home. + +Zile has all of Emacs's basic editing features: it is 8-bit +clean (though it currently lacks Unicode support), and the +number of editing buffers and windows is only limited by +available memory and screen space respectively. Registers, +minibuffer completion and auto fill are available. Function +and variable names are identical with Emacs's (except those +containing the word \"emacs\", which instead contain the word +\"zile\"!). + +However, all of this is packed into a program which typically +compiles to about 130Kb.") + (license gpl3+))) diff --git a/guix-package.in b/guix-package.in index 217c888d2f..933b85dced 100644 --- a/guix-package.in +++ b/guix-package.in @@ -48,8 +48,8 @@ exec ${GUILE-@GUILE@} -L "@guilemoduledir@" -l "$0" \ #:use-module (srfi srfi-34) #:use-module (srfi srfi-37) #:use-module (distro) - #:use-module ((distro packages base) #:select (guile-final)) - #:use-module ((distro packages bootstrap) #:select (%bootstrap-guile)) + #:use-module ((gnu packages base) #:select (guile-final)) + #:use-module ((gnu packages bootstrap) #:select (%bootstrap-guile)) #:export (guix-package)) (define %store diff --git a/guix/build-system/gnu.scm b/guix/build-system/gnu.scm index 3eaed4bd78..4f84b3ccee 100644 --- a/guix/build-system/gnu.scm +++ b/guix/build-system/gnu.scm @@ -159,8 +159,8 @@ System: GCC, GNU Make, Bash, Coreutils, etc." (z (error "invalid standard input" z))) - ;; Resolve (distro packages base) lazily to hide circular dependency. - (let* ((distro (resolve-module '(distro packages base))) + ;; Resolve (gnu packages base) lazily to hide circular dependency. + (let* ((distro (resolve-module '(gnu packages base))) (inputs (module-ref distro '%final-inputs))) (append inputs (append-map (match-lambda @@ -233,7 +233,7 @@ which could lead to gratuitous input divergence." ((and (? string?) (? derivation-path?)) guile) (#f ; the default - (let* ((distro (resolve-interface '(distro packages base))) + (let* ((distro (resolve-interface '(gnu packages base))) (guile (module-ref distro 'guile-final))) (package-derivation store guile system))))) diff --git a/guix/build-system/trivial.scm b/guix/build-system/trivial.scm index 866657fdf6..e5bbeaa91d 100644 --- a/guix/build-system/trivial.scm +++ b/guix/build-system/trivial.scm @@ -36,7 +36,7 @@ ignored." ((and (? string?) (? derivation-path?)) guile) (#f ; the default - (let* ((distro (resolve-interface '(distro packages base))) + (let* ((distro (resolve-interface '(gnu packages base))) (guile (module-ref distro 'guile-final))) (package-derivation store guile system))))) diff --git a/guix/download.scm b/guix/download.scm index 3372567b47..cf68ade74b 100644 --- a/guix/download.scm +++ b/guix/download.scm @@ -118,7 +118,7 @@ must be a list of symbol/URL-list pairs." ((and (? string?) (? derivation-path?)) guile) (#f ; the default - (let* ((distro (resolve-interface '(distro packages base))) + (let* ((distro (resolve-interface '(gnu packages base))) (guile (module-ref distro 'guile-final))) (package-derivation store guile system))))) diff --git a/hydra.scm b/hydra.scm index e350f286af..fdca935d5f 100644 --- a/hydra.scm +++ b/hydra.scm @@ -25,8 +25,8 @@ (guix packages) ((guix utils) #:select (%current-system)) (distro) - (distro packages base) - (distro packages guile) + (gnu packages base) + (gnu packages guile) (srfi srfi-1) (srfi srfi-26) (ice-9 match)) diff --git a/po/POTFILES.in b/po/POTFILES.in index 2ca98ed1b5..d8fb384ae5 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -1,9 +1,9 @@ # List of source files which contain translatable strings. distro.scm -distro/packages/base.scm -distro/packages/guile.scm -distro/packages/lout.scm -distro/packages/recutils.scm +gnu/packages/base.scm +gnu/packages/guile.scm +gnu/packages/lout.scm +gnu/packages/recutils.scm guix/ui.scm guix-build.in guix-download.in diff --git a/tests/builders.scm b/tests/builders.scm index a1e3f8088a..7fafaf5dca 100644 --- a/tests/builders.scm +++ b/tests/builders.scm @@ -26,7 +26,7 @@ #:use-module (guix base32) #:use-module (guix derivations) #:use-module ((guix packages) #:select (package-derivation)) - #:use-module (distro packages bootstrap) + #:use-module (gnu packages bootstrap) #:use-module (ice-9 match) #:use-module (srfi srfi-1) #:use-module (srfi srfi-64)) @@ -48,7 +48,7 @@ (map (match-lambda ((name package) (list name (package-derivation %store package)))) - (@@ (distro packages base) %boot0-inputs)))) + (@@ (gnu packages base) %boot0-inputs)))) (define network-reachable? (false-if-exception (getaddrinfo "www.gnu.org" "80" AI_NUMERICSERV))) diff --git a/tests/derivations.scm b/tests/derivations.scm index 166a917490..21c2a6acd9 100644 --- a/tests/derivations.scm +++ b/tests/derivations.scm @@ -24,7 +24,7 @@ #:use-module (guix base32) #:use-module ((guix packages) #:select (package-derivation)) #:use-module ((distro) #:select (search-bootstrap-binary)) - #:use-module (distro packages bootstrap) + #:use-module (gnu packages bootstrap) #:use-module (srfi srfi-1) #:use-module (srfi srfi-11) #:use-module (srfi srfi-26) diff --git a/tests/guix-build.sh b/tests/guix-build.sh index f03afbd494..fccf2168b1 100644 --- a/tests/guix-build.sh +++ b/tests/guix-build.sh @@ -27,11 +27,11 @@ if guix-build -e +; then false; else true; fi # Should fail because this is a source-less package. -if guix-build -e '(@ (distro packages bootstrap) %bootstrap-glibc)' -S +if guix-build -e '(@ (gnu packages bootstrap) %bootstrap-glibc)' -S then false; else true; fi # Should pass. -guix-build -e '(@@ (distro packages base) %bootstrap-guile)' | \ +guix-build -e '(@@ (gnu packages base) %bootstrap-guile)' | \ grep -e '-guile-' guix-build hello -d | \ grep -e '-hello-[0-9\.]\+\.drv$' @@ -42,11 +42,11 @@ if guix-build hello-0.0.1 -n; then false; else true; fi # Keep a symlink to the result, registered as a root. result="t-result-$$" guix-build -r "$result" \ - -e '(@@ (distro packages base) %bootstrap-guile)' + -e '(@@ (gnu packages base) %bootstrap-guile)' test -x "$result/bin/guile" # Should fail, because $result already exists. -if guix-build -r "$result" -e '(@@ (distro packages base) %bootstrap-guile)' +if guix-build -r "$result" -e '(@@ (gnu packages base) %bootstrap-guile)' then false; else true; fi rm -f "$result" diff --git a/tests/guix-daemon.sh b/tests/guix-daemon.sh index ba652b3dce..0d39ff4c24 100644 --- a/tests/guix-daemon.sh +++ b/tests/guix-daemon.sh @@ -25,5 +25,5 @@ set -e guix-daemon --version guix-build --version -guix-build -e '(@ (distro packages bootstrap) %bootstrap-guile)' +guix-build -e '(@ (gnu packages bootstrap) %bootstrap-guile)' guix-build coreutils -n diff --git a/tests/guix-package.sh b/tests/guix-package.sh index fc80939646..7b7835dcaa 100644 --- a/tests/guix-package.sh +++ b/tests/guix-package.sh @@ -32,7 +32,7 @@ rm -f "$profile" trap 'rm "$profile" "$profile-"[0-9]* ; rm -rf t-home-'"$$" EXIT -boot_guile="`guix-build -e '(@ (distro packages bootstrap) %bootstrap-guile)'`" +boot_guile="`guix-build -e '(@ (gnu packages bootstrap) %bootstrap-guile)'`" guix-package --bootstrap -p "$profile" -i "$boot_guile" test -L "$profile" && test -L "$profile-1-link" @@ -47,7 +47,7 @@ test -f "$profile/bin/guile" # Check whether we have network access. if guile -c '(getaddrinfo "www.gnu.org" "80" AI_NUMERICSERV)' 2> /dev/null then - boot_make="`guix-build -e '(@@ (distro packages base) gnu-make-boot0)'`" + boot_make="`guix-build -e '(@@ (gnu packages base) gnu-make-boot0)'`" guix-package --bootstrap -p "$profile" -i "$boot_make" test -L "$profile-2-link" test -f "$profile/bin/make" && test -f "$profile/bin/guile" diff --git a/tests/packages.scm b/tests/packages.scm index f15f404db6..07d2ea54c7 100644 --- a/tests/packages.scm +++ b/tests/packages.scm @@ -25,8 +25,8 @@ #:use-module (guix build-system trivial) #:use-module (guix build-system gnu) #:use-module (distro) - #:use-module (distro packages base) - #:use-module (distro packages bootstrap) + #:use-module (gnu packages base) + #:use-module (gnu packages bootstrap) #:use-module (srfi srfi-26) #:use-module (srfi srfi-64) #:use-module (rnrs io ports) @@ -130,7 +130,7 @@ (test-assert "GNU Make, bootstrap" ;; GNU Make is the first program built during bootstrap; we choose it ;; here so that the test doesn't last for too long. - (let ((gnu-make (@@ (distro packages base) gnu-make-boot0))) + (let ((gnu-make (@@ (gnu packages base) gnu-make-boot0))) (and (package? gnu-make) (or (location? (package-location gnu-make)) (not (package-location gnu-make))) diff --git a/tests/store.scm b/tests/store.scm index 3b3a23489d..c10c035d5d 100644 --- a/tests/store.scm +++ b/tests/store.scm @@ -21,7 +21,7 @@ #:use-module (guix store) #:use-module (guix utils) #:use-module (guix base32) - #:use-module (distro packages bootstrap) + #:use-module (gnu packages bootstrap) #:use-module (ice-9 match) #:use-module (srfi srfi-1) #:use-module (srfi srfi-11) diff --git a/tests/union.scm b/tests/union.scm index 5bbf992a59..455bdb208d 100644 --- a/tests/union.scm +++ b/tests/union.scm @@ -25,7 +25,7 @@ #:use-module (guix build union) #:use-module ((guix build utils) #:select (with-directory-excursion directory-exists?)) - #:use-module (distro packages bootstrap) + #:use-module (gnu packages bootstrap) #:use-module (srfi srfi-1) #:use-module (srfi srfi-64) #:use-module (ice-9 match)) -- cgit v1.2.3