From bbe04ae102211d6486691652a4892744ee7f9a85 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 14 Oct 2015 11:56:13 +0200 Subject: gnu: dbus: Update to 1.10.0. * gnu/packages/glib.scm (dbus)[source]: Update to 1.10.0. [arguments]: Add --sysconfdir=/etc. * gnu/packages/patches/dbus-localstatedir.patch: Update. --- gnu/packages/glib.scm | 15 +++++++---- gnu/packages/patches/dbus-localstatedir.patch | 39 ++++++++++++++++----------- 2 files changed, 34 insertions(+), 20 deletions(-) diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm index 2e8797560b..9137db3949 100644 --- a/gnu/packages/glib.scm +++ b/gnu/packages/glib.scm @@ -57,7 +57,7 @@ (define dbus (package (name "dbus") - (version "1.8.16") + (version "1.10.0") (source (origin (method url-fetch) (uri @@ -65,16 +65,21 @@ version ".tar.gz")) (sha256 (base32 - "01rba8mp8kqvmy6ibdmi806kjr3m14swnskqk02gyhykxxl54ybz")) + "0jwj7wlrhq5y0fwfh8k2d9rgdpfax06lj8698g6iqbwrzd2rgyqx")) (patches (list (search-patch "dbus-localstatedir.patch"))))) (build-system gnu-build-system) (arguments '(#:configure-flags (list ;; Install the system bus socket under /var. "--localstatedir=/var" - ;; XXX: Fix the following to allow system-wide - ;; config. - ;; "--sysconfdir=/etc" + ;; Look for configuration file under + ;; /etc/dbus-1. This is notably required by + ;; 'dbus-daemon-launch-helper', which looks for + ;; the 'system.conf' file in that place, + ;; regardless of what '--config-file' was + ;; passed to 'dbus-daemon' on the command line; + ;; see . + "--sysconfdir=/etc" "--with-session-socket-dir=/tmp") #:phases (alist-cons-after diff --git a/gnu/packages/patches/dbus-localstatedir.patch b/gnu/packages/patches/dbus-localstatedir.patch index 61bed91b5c..921ec29be4 100644 --- a/gnu/packages/patches/dbus-localstatedir.patch +++ b/gnu/packages/patches/dbus-localstatedir.patch @@ -1,25 +1,34 @@ Do not try to create $localstatedir and $sysconfdir since we cannot do this when they are /var and /etc. ---- dbus-1.6.4/bus/Makefile.in 2013-09-11 16:15:13.000000000 +0200 -+++ dbus-1.6.4/bus/Makefile.in 2013-09-11 16:15:15.000000000 +0200 -@@ -1510,9 +1510,6 @@ clean-local: - /bin/rm *.bb *.bbg *.da *.gcov || true - +--- a/bus/Makefile.in ++++ b/bus/Makefile.in +@@ -565,7 +565,7 @@ top_build_prefix = @top_build_prefix@ + top_builddir = @top_builddir@ + top_srcdir = @top_srcdir@ + dbusdatadir = $(datadir)/dbus-1 +-legacydbusdatadir = $(sysconfdir)/dbus-1 ++legacydbusdatadir = $(prefix)/etc/dbus-1 + dbus_daemon_execdir = $(DBUS_DAEMONDIR) + DBUS_BUS_LIBS = \ + $(XML_LIBS) \ +@@ -1669,7 +1669,6 @@ clean-local: install-data-hook: -- $(mkinstalldirs) $(DESTDIR)$(localstatedir)/run/dbus -- $(mkinstalldirs) $(DESTDIR)$(configdir)/system.d -- $(mkinstalldirs) $(DESTDIR)$(configdir)/session.d - $(mkinstalldirs) $(DESTDIR)$(datadir)/dbus-1/services - $(mkinstalldirs) $(DESTDIR)$(datadir)/dbus-1/system-services + $(mkinstalldirs) $(DESTDIR)$(dbusdatadir)/session.d + $(mkinstalldirs) $(DESTDIR)$(dbusdatadir)/services +-@DBUS_UNIX_TRUE@ $(mkinstalldirs) $(DESTDIR)$(localstatedir)/run/dbus + @DBUS_UNIX_TRUE@ $(mkinstalldirs) $(DESTDIR)$(dbusdatadir)/system.d + @DBUS_UNIX_TRUE@ $(mkinstalldirs) $(DESTDIR)$(dbusdatadir)/system-services # Install dbus.socket as default implementation of a D-Bus stack. - ---- dbus-1.6.4/tools/Makefile.in 2013-09-11 16:10:31.000000000 +0200 -+++ dbus-1.6.4/tools/Makefile.in 2013-09-11 16:10:32.000000000 +0200 -@@ -757,11 +757,6 @@ uninstall-am: uninstall-binPROGRAMS +diff --git a/tools/Makefile.in b/tools/Makefile.in +index 915971d..6b6897d 100644 +--- a/tools/Makefile.in ++++ b/tools/Makefile.in +@@ -1055,12 +1055,6 @@ uninstall-am: uninstall-binPROGRAMS uninstall-dist_examplesSCRIPTS + .PRECIOUS: Makefile - # create the /var/lib/dbus directory for dbus-uuidgen +-# create the /var/lib/dbus directory for dbus-uuidgen -install-data-local: - $(MKDIR_P) $(DESTDIR)$(localstatedir)/lib/dbus - -- cgit v1.2.3 From 53b5856ac1b19a6e7c74f781b1f14bf37965a8a4 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 14 Oct 2015 14:39:23 +0200 Subject: gnu: glib: Update to 2.46.0. * gnu/packages/glib.scm (glib): Update to 2.46.0. * gnu/packages/patches/glib-tests-desktop.patch: Add hunk to disable 'gdbus-unix-addresses' test. --- gnu/packages/glib.scm | 4 ++-- gnu/packages/patches/glib-tests-desktop.patch | 18 ++++++++++++++---- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm index 9137db3949..c223b56096 100644 --- a/gnu/packages/glib.scm +++ b/gnu/packages/glib.scm @@ -124,7 +124,7 @@ shared NFS home directories.") (define glib (package (name "glib") - (version "2.44.1") + (version "2.46.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" @@ -132,7 +132,7 @@ shared NFS home directories.") name "-" version ".tar.xz")) (sha256 (base32 - "01yabrfp64i11mrks3p1gcks99lw0zm7f5vhkc53sl4amyndw4c8")) + "1d5cpb2zp5js98jjnbfn1fb96kj1j3q3fz16gkqq0zdfd4sfikmi")) (patches (list (search-patch "glib-tests-homedir.patch") (search-patch "glib-tests-desktop.patch") (search-patch "glib-tests-prlimit.patch") diff --git a/gnu/packages/patches/glib-tests-desktop.patch b/gnu/packages/patches/glib-tests-desktop.patch index 61f48607f7..642234ebbc 100644 --- a/gnu/packages/patches/glib-tests-desktop.patch +++ b/gnu/packages/patches/glib-tests-desktop.patch @@ -56,11 +56,12 @@ database, the `update-desktop-database' program, which we don't provide. ----------------------------- The hunk below removes tests that depend on `gdbus-testserver.py', -because that script depends on python-gobject. +because that script depends on python-gobject. The second hunk +disables a test that expects /etc/machine-id in the build environment. ---- glib-2.39.1/gio/tests/Makefile.in 2014-01-20 00:18:16.000000000 +0100 -+++ glib-2.39.1/gio/tests/Makefile.in 2014-01-20 00:18:47.000000000 +0100 -@@ -171,20 +171,13 @@ check_PROGRAMS = $(am__EXEEXT_14) +--- glib-2.46.0/gio/tests/Makefile.in 2015-10-14 14:11:00.928809504 +0200 ++++ glib-2.46.0/gio/tests/Makefile.in 2015-10-14 14:12:13.157291092 +0200 +@@ -186,20 +186,13 @@ check_PROGRAMS = $(am__EXEEXT_16) @HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-auth \ @HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-bz627724 \ @HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-close-pending \ @@ -79,7 +80,16 @@ because that script depends on python-gobject. @HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-test-codegen-old \ -@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-threading \ @HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gmenumodel \ + @HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gnotification \ @HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ $(NULL) +@@ -321,8 +314,7 @@ libresourceplugin_la_LINK = $(LIBTOOL) $ + am__EXEEXT_1 = + @OS_UNIX_TRUE@am__EXEEXT_2 = contenttype$(EXEEXT) file$(EXEEXT) \ + @OS_UNIX_TRUE@ gdbus-peer-object-manager$(EXEEXT) \ +-@OS_UNIX_TRUE@ gdbus-unix-addresses$(EXEEXT) \ + @OS_UNIX_TRUE@ live-g-file$(EXEEXT) socket-address$(EXEEXT) \ + @OS_UNIX_TRUE@ stream-rw_all$(EXEEXT) unix-fd$(EXEEXT) \ + @OS_UNIX_TRUE@ unix-streams$(EXEEXT) $(am__EXEEXT_1) \ The test below depends on the availability /etc/passwd to dbus-daemon. -- cgit v1.2.3 From 25087f60b67e6031583cff2f4ac10873bf3d5520 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 1 Oct 2015 09:58:33 +0800 Subject: gnu: dbus: Drop patch. * gnu/packges/patches/dbus-localstatedir.patch: Remove file. * gnu-system.am (dist_patch_DATA): Remove it. * gnu/packages/glib.scm (dbus): Remove patch. [argumests]: Remove 'post-install' phase. Don't create localestatedir and sysconfdir in the 'install' phase. --- gnu-system.am | 1 - gnu/packages/glib.scm | 64 ++++++++++++++++++++++++++------------------------- 2 files changed, 33 insertions(+), 32 deletions(-) diff --git a/gnu-system.am b/gnu-system.am index d846bcecde..ee3c686bb3 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -427,7 +427,6 @@ dist_patch_DATA = \ gnu/packages/patches/cssc-missing-include.patch \ gnu/packages/patches/clucene-contribs-lib.patch \ gnu/packages/patches/cursynth-wave-rand.patch \ - gnu/packages/patches/dbus-localstatedir.patch \ gnu/packages/patches/dealii-p4est-interface.patch \ gnu/packages/patches/diffutils-gets-undeclared.patch \ gnu/packages/patches/dfu-programmer-fix-libusb.patch \ diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm index c223b56096..a34d8f8776 100644 --- a/gnu/packages/glib.scm +++ b/gnu/packages/glib.scm @@ -59,39 +59,41 @@ (name "dbus") (version "1.10.0") (source (origin - (method url-fetch) - (uri - (string-append "http://dbus.freedesktop.org/releases/dbus/dbus-" - version ".tar.gz")) - (sha256 - (base32 - "0jwj7wlrhq5y0fwfh8k2d9rgdpfax06lj8698g6iqbwrzd2rgyqx")) - (patches (list (search-patch "dbus-localstatedir.patch"))))) + (method url-fetch) + (uri (string-append + "http://dbus.freedesktop.org/releases/dbus/dbus-" + version ".tar.gz")) + (sha256 + (base32 + "0jwj7wlrhq5y0fwfh8k2d9rgdpfax06lj8698g6iqbwrzd2rgyqx")))) (build-system gnu-build-system) (arguments - '(#:configure-flags (list ;; Install the system bus socket under /var. - "--localstatedir=/var" - - ;; Look for configuration file under - ;; /etc/dbus-1. This is notably required by - ;; 'dbus-daemon-launch-helper', which looks for - ;; the 'system.conf' file in that place, - ;; regardless of what '--config-file' was - ;; passed to 'dbus-daemon' on the command line; - ;; see . - "--sysconfdir=/etc" - - "--with-session-socket-dir=/tmp") - #:phases (alist-cons-after - 'install 'post-install - (lambda* (#:key outputs #:allow-other-keys) - ;; 'dbus-launch' bails out if the 'session.d' directory - ;; below is missing, so create it along with its companion. - (let ((out (assoc-ref outputs "out"))) - (mkdir (string-append out "/etc/dbus-1/session.d")) - (mkdir (string-append out "/etc/dbus-1/system.d")) - #t)) - %standard-phases))) + '(#:configure-flags + (list + ;; Install the system bus socket under /var. + "--localstatedir=/var" + + ;; Install the session bus socket under /tmp. + "--with-session-socket-dir=/tmp" + + ;; Use /etc/dbus-1 for system-wide config. + ;; Look for configuration file under + ;; /etc/dbus-1. This is notably required by + ;; 'dbus-daemon-launch-helper', which looks for + ;; the 'system.conf' file in that place, + ;; regardless of what '--config-file' was + ;; passed to 'dbus-daemon' on the command line; + ;; see . + "--sysconfdir=/etc") + #:phases + (modify-phases %standard-phases + (replace 'install + (lambda _ + ;; Don't try to create /var and /etc. + (system* "make" + "localstatedir=/tmp/dummy" + "sysconfdir=/tmp/dummy" + "install")))))) (native-inputs `(("pkg-config" ,pkg-config))) (inputs -- cgit v1.2.3 From 1c255eeec9a6e8f6701c8c197b52dd3006ce07a8 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Wed, 14 Oct 2015 21:42:07 +0800 Subject: gnu: Remove dbus-localstatedir.patch. This is a followup to 25087f. * gnu/packages/patches/dbus-localstatedir.patch: Remove file. --- gnu/packages/patches/dbus-localstatedir.patch | 39 --------------------------- 1 file changed, 39 deletions(-) delete mode 100644 gnu/packages/patches/dbus-localstatedir.patch diff --git a/gnu/packages/patches/dbus-localstatedir.patch b/gnu/packages/patches/dbus-localstatedir.patch deleted file mode 100644 index 921ec29be4..0000000000 --- a/gnu/packages/patches/dbus-localstatedir.patch +++ /dev/null @@ -1,39 +0,0 @@ -Do not try to create $localstatedir and $sysconfdir since we cannot do this -when they are /var and /etc. - ---- a/bus/Makefile.in -+++ b/bus/Makefile.in -@@ -565,7 +565,7 @@ top_build_prefix = @top_build_prefix@ - top_builddir = @top_builddir@ - top_srcdir = @top_srcdir@ - dbusdatadir = $(datadir)/dbus-1 --legacydbusdatadir = $(sysconfdir)/dbus-1 -+legacydbusdatadir = $(prefix)/etc/dbus-1 - dbus_daemon_execdir = $(DBUS_DAEMONDIR) - DBUS_BUS_LIBS = \ - $(XML_LIBS) \ -@@ -1669,7 +1669,6 @@ clean-local: - install-data-hook: - $(mkinstalldirs) $(DESTDIR)$(dbusdatadir)/session.d - $(mkinstalldirs) $(DESTDIR)$(dbusdatadir)/services --@DBUS_UNIX_TRUE@ $(mkinstalldirs) $(DESTDIR)$(localstatedir)/run/dbus - @DBUS_UNIX_TRUE@ $(mkinstalldirs) $(DESTDIR)$(dbusdatadir)/system.d - @DBUS_UNIX_TRUE@ $(mkinstalldirs) $(DESTDIR)$(dbusdatadir)/system-services - # Install dbus.socket as default implementation of a D-Bus stack. -diff --git a/tools/Makefile.in b/tools/Makefile.in -index 915971d..6b6897d 100644 ---- a/tools/Makefile.in -+++ b/tools/Makefile.in -@@ -1055,12 +1055,6 @@ uninstall-am: uninstall-binPROGRAMS uninstall-dist_examplesSCRIPTS - .PRECIOUS: Makefile - - --# create the /var/lib/dbus directory for dbus-uuidgen --install-data-local: -- $(MKDIR_P) $(DESTDIR)$(localstatedir)/lib/dbus -- --installcheck-local: -- test -d $(DESTDIR)$(localstatedir)/lib/dbus - - # Tell versions [3.59,3.63) of GNU make to not export all variables. - # Otherwise a system limit (for SysV at least) may be exceeded. -- cgit v1.2.3 From 3c19c6a4d3e7ff87fa657f2a36e54fb51e39e853 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 15 Oct 2015 20:50:40 +0800 Subject: gnu: glib: Update to 2.46.1. * gnu/packages/glib.scm (glib): Update to 2.46.1. --- gnu/packages/glib.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm index a34d8f8776..407d789c1b 100644 --- a/gnu/packages/glib.scm +++ b/gnu/packages/glib.scm @@ -126,7 +126,7 @@ shared NFS home directories.") (define glib (package (name "glib") - (version "2.46.0") + (version "2.46.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" @@ -134,7 +134,7 @@ shared NFS home directories.") name "-" version ".tar.xz")) (sha256 (base32 - "1d5cpb2zp5js98jjnbfn1fb96kj1j3q3fz16gkqq0zdfd4sfikmi")) + "1yzxr1ip3l0m9ydk5nq32piq70c9f17p5f0jyvlsghzbaawh67ss")) (patches (list (search-patch "glib-tests-homedir.patch") (search-patch "glib-tests-desktop.patch") (search-patch "glib-tests-prlimit.patch") -- cgit v1.2.3 From ed89d9011763bf6db774017b9d7fe01eea3dcdca Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 15 Oct 2015 22:03:14 +0800 Subject: gnu: gobject-introspection: Update to 1.46.0. * gnu/packages/glib.scm (gobject-introspection): Update to 1.46.0. [source]: Add a snippet to correct python shebang. --- gnu/packages/glib.scm | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm index 407d789c1b..22c8b8a12a 100644 --- a/gnu/packages/glib.scm +++ b/gnu/packages/glib.scm @@ -214,14 +214,18 @@ dynamic loading, and an object system.") (define gobject-introspection (package (name "gobject-introspection") - (version "1.44.0") + (version "1.46.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" "gobject-introspection/" (version-major+minor version) "/gobject-introspection-" version ".tar.xz")) (sha256 - (base32 "1b972qg2yb51sdavfvb6kc19akwc15c1bwnbg81vadxamql2q33g")) + (base32 "0cs27r18fga44ypp8icy62fwx6nh70r1bvhi4lzfn4w85cybsn36")) + (modules '((guix build utils))) + (snippet + '(substitute* "tools/g-ir-tool-template.in" + (("#!/usr/bin/env @PYTHON@") "#!@PYTHON@"))) (patches (list (search-patch "gobject-introspection-cc.patch") (search-patch -- cgit v1.2.3 From fa09ebfa0ef79e80b37a971c760dc3fa65ca417c Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 15 Oct 2015 22:04:13 +0800 Subject: gnu: intltool: Update to 0.51.0. * gnu/packages/glib.scm (intltool): Update to 0.51.0. --- gnu/packages/glib.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm index 22c8b8a12a..7c3836b4e8 100644 --- a/gnu/packages/glib.scm +++ b/gnu/packages/glib.scm @@ -269,7 +269,7 @@ bindings to call into the C library.") (define intltool (package (name "intltool") - (version "0.50.2") + (version "0.51.0") (source (origin (method url-fetch) (uri (string-append "https://launchpad.net/intltool/trunk/" @@ -277,7 +277,7 @@ bindings to call into the C library.") version ".tar.gz")) (sha256 (base32 - "01j4yd7i84n9nk4ccs6yifg84pp68nr9by57jdbhj7dpdxf5rwk7")))) + "1karx4sb7bnm2j67q0q74hspkfn6lqprpy5r99vkn5bb36a4viv7")))) (build-system gnu-build-system) (inputs `(("file" ,file))) -- cgit v1.2.3 From 93d809b0df19e5b6a3b47a1a20fd805063db7083 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 15 Oct 2015 22:06:02 +0800 Subject: gnu: libsigc++: Update to 2.6.1. * gnu/packages/glib.scm (libsigc++): Update to 2.6.1. --- gnu/packages/glib.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm index 7c3836b4e8..f4a42aa1f7 100644 --- a/gnu/packages/glib.scm +++ b/gnu/packages/glib.scm @@ -393,7 +393,7 @@ by GDBus included in Glib.") (define libsigc++ (package (name "libsigc++") - (version "2.4.1") + (version "2.6.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/libsigc++/" @@ -401,7 +401,7 @@ by GDBus included in Glib.") name "-" version ".tar.xz")) (sha256 (base32 - "1v0rvkzglzmf67y9nkcppwjwi68j1cy5yhldvcq7xrv8594l612l")))) + "06xyvxaaxh3nbpjg86gcq5zcc2qnpx354wcfrqlhbndkq5kj2vqq")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) ("m4" ,m4))) -- cgit v1.2.3 From 9b4613d2ad9376f43d64fc39be8b8238b3a1fe32 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 15 Oct 2015 22:06:49 +0800 Subject: gnu: glibmm: Update to 2.46.1. * gnu/packages/glib.scm (glibmm): Update to 2.46.1. --- gnu/packages/glib.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm index f4a42aa1f7..e234f466d1 100644 --- a/gnu/packages/glib.scm +++ b/gnu/packages/glib.scm @@ -420,7 +420,7 @@ has an ease of use unmatched by other C++ callback libraries.") (define glibmm (package (name "glibmm") - (version "2.44.0") + (version "2.46.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/glibmm/" @@ -428,7 +428,7 @@ has an ease of use unmatched by other C++ callback libraries.") "/glibmm-" version ".tar.xz")) (sha256 (base32 - "1a1fczy7hcpn24fglyn4i79f4yjc8s50is70q03mb294bm1c02hv")))) + "1an4v1yk06svlmcyp1psk2a3bsn29s1a4gdx0ai2w788q6bfaiwn")))) (build-system gnu-build-system) (arguments `(#:phases (alist-cons-before -- cgit v1.2.3 From 13ddcf404bbaaa7b6d8e3dbba2f3b2cd2b4b180a Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 15 Oct 2015 22:07:41 +0800 Subject: gnu: python-pygobject: Update to 3.18.0. * gnu/packages/glib.scm (python-pygobject): Update to 3.18.0. --- gnu/packages/glib.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm index e234f466d1..6ef64e4b73 100644 --- a/gnu/packages/glib.scm +++ b/gnu/packages/glib.scm @@ -502,7 +502,7 @@ useful for C++.") (define-public python-pygobject (package (name "python-pygobject") - (version "3.16.1") + (version "3.18.0") (source (origin (method url-fetch) @@ -511,7 +511,7 @@ useful for C++.") "/pygobject-" version ".tar.xz")) (sha256 (base32 - "1hqyma73w0lnjcgx68kawhnq84aq92xlkdqphrlc2ppia38dm5kx")))) + "1jbd2m39vcjh5h3m33l0317ziq8dxfzi40r6hrfcs4rp5l8s2fqw")))) (build-system gnu-build-system) (native-inputs `(("which" ,which) -- cgit v1.2.3 From 7363cda42d2eeeddc7361241dd3d6966e6ada224 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 15 Oct 2015 22:08:51 +0800 Subject: gnu: poppler: Update to 0.37.0. * gnu/packages/pdf.scm (poppler): Update to 0.37.0. --- gnu/packages/pdf.scm | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm index 03ed5113b1..4b30bf09d5 100644 --- a/gnu/packages/pdf.scm +++ b/gnu/packages/pdf.scm @@ -52,13 +52,13 @@ (define-public poppler (package (name "poppler") - (version "0.36.0") + (version "0.37.0") (source (origin (method url-fetch) (uri (string-append "http://poppler.freedesktop.org/poppler-" version ".tar.xz")) (sha256 (base32 - "13i440kv873wgmw50rs4d1v05cj0r7bqnghd70hp9vy44dxhdk4k")))) + "1vjvd0md8y37hlq3lsj0l01a3v3mzm572rzpn1311frvmrg9r7xq")))) (build-system gnu-build-system) ;; FIXME: more dependencies could be added ;; cairo output: no (requires cairo >= 1.10.0) @@ -68,7 +68,7 @@ ;; use libcurl: no (inputs `(("fontconfig" ,fontconfig) ("freetype" ,freetype) - ("libjpeg-8" ,libjpeg-8) + ("libjpeg" ,libjpeg) ("libpng" ,libpng) ("libtiff" ,libtiff) ("lcms" ,lcms) @@ -87,8 +87,7 @@ (arguments `(#:tests? #f ; no test data provided with the tarball #:configure-flags - '("--enable-libopenjpeg" - "--enable-xpdf-headers" ; to install header files + '("--enable-xpdf-headers" ; to install header files "--enable-zlib") #:phases (alist-cons-before -- cgit v1.2.3 From 492b0e383b4c5b33fe7a7ff7a6fb41cb989f7752 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 15 Oct 2015 22:09:37 +0800 Subject: gnu: atk: Update to 2.18.0. * gnu/packages/gtk.scm (atk): Update to 2.18.0. --- gnu/packages/gtk.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index a01e6d0dd3..fb2541acf8 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -60,7 +60,7 @@ (define-public atk (package (name "atk") - (version "2.16.0") + (version "2.18.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -68,7 +68,7 @@ name "-" version ".tar.xz")) (sha256 (base32 - "0qp5i91kfk6rhrlam3s8ha0cz88lkyp89vsyn4pb5856c1h9hpq9")))) + "0ay9s137x49f0akx658p7kznz0rdapfrd8ym54q0hlgrggblhv6f")))) (build-system gnu-build-system) (outputs '("out" "doc")) (arguments -- cgit v1.2.3 From 7a2c7808d0c3d7ca9abedc2961358ce6119ec77a Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 15 Oct 2015 23:26:13 +0800 Subject: gnu: harfbuzz: Update to 1.0.5. * gnu/packages/gtk.scm (harfbuzz): Update to 1.0.5. --- gnu/packages/gtk.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index fb2541acf8..0e53c51d6d 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -144,7 +144,7 @@ affine transformation (scale, rotation, shear, etc.).") (define-public harfbuzz (package (name "harfbuzz") - (version "1.0.3") + (version "1.0.5") (source (origin (method url-fetch) (uri (string-append "http://www.freedesktop.org/software/" @@ -152,7 +152,7 @@ affine transformation (scale, rotation, shear, etc.).") version ".tar.bz2")) (sha256 (base32 - "1xrxlrvgyr6mm9qjxmkif2kvcah082y94gf1vqi0f0bdl1g8gp7b")))) + "0h2l362qzkck5dnnj7zlz593hf1ni3k25dfaii9mbjwflp3d56ad")))) (build-system gnu-build-system) (outputs '("out" "bin")) ; 160K, only hb-view depend on cairo -- cgit v1.2.3 From e94578782915417ee5f4dd3b14a5a6f9e4f7c92e Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 15 Oct 2015 23:33:43 +0800 Subject: gnu: pango: Update to 1.38.1. * gnu/packages/gtk.scm (pango): Update to 1.38.1. --- gnu/packages/gtk.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index 0e53c51d6d..d513286b1e 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -182,7 +182,7 @@ affine transformation (scale, rotation, shear, etc.).") (define-public pango (package (name "pango") - (version "1.36.8") + (version "1.38.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/pango/" @@ -190,7 +190,7 @@ affine transformation (scale, rotation, shear, etc.).") name "-" version ".tar.xz")) (sha256 (base32 - "01rdzjh68w8l5zn0648yibyarj8p6g7yfn59nw5awaz1i8dvbnqq")))) + "1dsf45m51i4rcyvh5wlxxrjfhvn5b67d5ckjc6vdcxbddjgmc80k")))) (build-system gnu-build-system) (propagated-inputs `(("cairo" ,cairo) -- cgit v1.2.3 From f14c0a49a76ccf810f59cd8938e6a8a3d98f0355 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 15 Oct 2015 23:34:14 +0800 Subject: gnu: at-spi2-core: Update to 2.18.1. * gnu/packages/gtk.scm (at-spi2-core): Update to 2.18.1. --- gnu/packages/gtk.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index d513286b1e..10b71cc999 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -381,7 +381,7 @@ in the GNOME project.") (define-public at-spi2-core (package (name "at-spi2-core") - (version "2.16.0") + (version "2.18.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -389,7 +389,7 @@ in the GNOME project.") name "-" version ".tar.xz")) (sha256 (base32 - "1l3l39mw23zyjlcqidvkyqlr4gwbhplzw2hcv3qvn6p8ikxpf2qw")))) + "1kq17w4fm51d49vzmglkxqdm6s0yvjvrpgw78r2hajf69jz5bmap")))) (build-system gnu-build-system) (outputs '("out" "doc")) (arguments -- cgit v1.2.3 From 9fbfb4ecb041ff9e1e633be90d45e76360b7fd44 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 15 Oct 2015 23:34:42 +0800 Subject: gnu: at-spi2-atk: Update to 2.18.1. * gnu/packages/gtk.scm (at-spi2-atk): Update to 2.18.1. --- gnu/packages/gtk.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index 10b71cc999..e5f2c65ed9 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -424,7 +424,7 @@ is part of the GNOME accessibility project.") (define-public at-spi2-atk (package (name "at-spi2-atk") - (version "2.16.0") + (version "2.18.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -432,7 +432,7 @@ is part of the GNOME accessibility project.") name "-" version ".tar.xz")) (sha256 (base32 - "1y9gfz1iz3wpja7s000f0bmyyvc6im5fcdl6bxwbz0v3qdgc9vvq")))) + "0bf1g5cj84rmx7p1q547vwbc0hlpcs2wrxnmv96lckfkhs9mzcf4")))) (build-system gnu-build-system) (arguments '(#:phases -- cgit v1.2.3 From 9fe2e17dd1b129605603f3e1271a4ae020d0a12e Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 15 Oct 2015 23:36:00 +0800 Subject: gnu: gtk+: Update to 3.18.2. * gnu/packages/gtk.scm (gtk+): Update to 3.18.2. --- gnu/packages/gtk.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index e5f2c65ed9..678d7f4d08 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -514,7 +514,7 @@ application suites.") (define-public gtk+ (package (inherit gtk+-2) (name "gtk+") - (version "3.16.6") + (version "3.18.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -522,7 +522,7 @@ application suites.") name "-" version ".tar.xz")) (sha256 (base32 - "1gpzlnfrifc17yfk0zki6b2vmsfpf5cmrbh232s6iaan11np44jd")))) + "0lp1hn0qydxx03bianzzr0a4maqzsvylrkzr7c3p0050qihwbgjx")))) (propagated-inputs `(("at-spi2-atk" ,at-spi2-atk) ("atk" ,atk) -- cgit v1.2.3 From 2079087cccb4371a9a1d32aee358e7bc81846293 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 15 Oct 2015 23:36:39 +0800 Subject: gnu: cairomm: Update to 1.12.0. * gnu/packages/gtk.scm (cairomm): Update to 1.12.0. [source]: Change to "mirror://gnome/". --- gnu/packages/gtk.scm | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index 678d7f4d08..e602a56a48 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -731,14 +731,15 @@ documents.") (define-public cairomm (package (name "cairomm") - (version "1.11.2") + (version "1.12.0") (source (origin - (method url-fetch) - (uri (string-append "http://cairographics.org/releases/cairomm-" - version ".tar.gz")) - (sha256 - (base32 - "138052ybc58q5yl92m2p0br0k0a9g1pi9gfhmn4y220yih4pgxnc")))) + (method url-fetch) + (uri (string-append "mirror://gnome/sources/cairomm/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "1rmgs6zjj2vaxh9hsa0944m23fdn1psycqh7bi984qd8jj1xljm5")))) (build-system gnu-build-system) (arguments ;; The examples lack -lcairo. -- cgit v1.2.3 From 256da71fb154c3f15de7de21e88e639ca486231d Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 15 Oct 2015 23:39:08 +0800 Subject: gnu: pangomm: Update to 2.38.1. * gnu/packages/gtk.scm (pangomm): Update to 2.38.1. --- gnu/packages/gtk.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index e602a56a48..562343dc11 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -760,7 +760,7 @@ library.") (define-public pangomm (package (name "pangomm") - (version "2.36.0") + (version "2.38.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -768,7 +768,7 @@ library.") name "-" version ".tar.xz")) (sha256 (base32 - "1w11d05nkxglzg67rfa81vqghm75xhy6j396xmmp5mq8qx96knd8")))) + "12xwjvqfxhqblcv7641k0l6r8n3qifnrx8w9571izn1nbd81iyzg")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) (propagated-inputs -- cgit v1.2.3 From b172ea003f3f80116788396879f64e33fb472acb Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 15 Oct 2015 23:39:42 +0800 Subject: gnu: atkmm: Update to 2.24.1. * gnu/packages/gtk.scm (atkmm): Update to 2.24.1. --- gnu/packages/gtk.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index 562343dc11..ab9966e1b2 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -786,7 +786,7 @@ library.") (define-public atkmm (package (name "atkmm") - (version "2.22.7") + (version "2.24.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -794,7 +794,7 @@ library.") name "-" version ".tar.xz")) (sha256 (base32 - "06zrf2ymml2dzp53sss0d4ch4dk9v09jm8rglnrmwk4v81mq9gxz")))) + "08zd6s5c1q90wm8310mdrb5f2lj8v63wxihrybwyw13xlf6ivi16")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) (propagated-inputs -- cgit v1.2.3 From aa382d7e4673b8bdcb92f275e2c56d74d73e26d8 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 15 Oct 2015 23:40:05 +0800 Subject: gnu: gtkmm: Update to 3.18.0. * gnu/packages/gtk.scm (gtkmm): Update to 3.18.0. --- gnu/packages/gtk.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index ab9966e1b2..e7ad56ecc6 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -809,7 +809,7 @@ toolkit.") (define-public gtkmm (package (name "gtkmm") - (version "3.16.0") + (version "3.18.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -817,7 +817,7 @@ toolkit.") name "-" version ".tar.xz")) (sha256 (base32 - "036xn22jkaf3akpid7w23b8vkqa3xxqz93mwacmyar5vw7slm3cv")))) + "0sxq700invkjpksn790gbnl8px8751kvgwn39663jx7dv89s37w2")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) (propagated-inputs -- cgit v1.2.3 From 37fe56cff6d6de24914f724e45e522d8c6eb7a67 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Fri, 16 Oct 2015 21:07:48 +0800 Subject: gnu: at-spi2-core: Fix test failure. * gnu/packages/gtk.scm (at-spi2-core)[arguments]: Run test with 'DBUS_FATAL_WARNINGS=0'. --- gnu/packages/gtk.scm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index e7ad56ecc6..078f0e7c84 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -402,6 +402,8 @@ in the GNOME project.") (replace 'check ;; Run test-suite under a dbus session. (lambda _ + ;; Don't fail on missing '/etc/machine-id'. + (setenv "DBUS_FATAL_WARNINGS" "0") (zero? (system* "dbus-launch" "make" "check"))))))) (propagated-inputs ;; atspi-2.pc refers to all these. -- cgit v1.2.3 From e75230c1b7a34232ed3fb532d2696349fde507a3 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Fri, 16 Oct 2015 21:13:02 +0800 Subject: gnu: eudev: Update to 3.1.5. * gnu/packages/linux.scm (eudev): Update to 3.1.5. * gnu/packages/patches/eudev-rules-directory.patch: Adapt to it. --- gnu/packages/linux.scm | 52 +++--------------------- gnu/packages/patches/eudev-rules-directory.patch | 18 ++++---- 2 files changed, 15 insertions(+), 55 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 4ee42349f8..474e914c13 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -1568,7 +1568,7 @@ from the module-init-tools project.") ;; The post-systemd fork, maintained by Gentoo. (package (name "eudev") - (version "2.1.1") + (version "3.1.5") (source (origin (method url-fetch) (uri (string-append @@ -1576,55 +1576,15 @@ from the module-init-tools project.") version ".tar.gz")) (sha256 (base32 - "0shf5vqiz9fdxl95aa1a8vh0xjxwim3psc39wr2xr8lnahf11vva")) - (patches (list (search-patch "eudev-rules-directory.patch"))) - (modules '((guix build utils))) - (snippet - ;; 'configure' checks uses as an indication of - ;; whether Linux headers are available, but it doesn't actually - ;; use it, and our 'linux-libre-headers' package doesn't - ;; provide it. So just remove that. - '(substitute* "configure" - (("linux/btrfs\\.h") - ""))))) + "0akg9gcc3c2p56xbhlvbybqavcprly5q0bvk655zwl6d62j8an7p")) + (patches (list (search-patch "eudev-rules-directory.patch"))))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) - ("gperf" ,gperf) - ("glib" ,glib "bin") ; glib-genmarshal, etc. - ("perl" ,perl) ; for the tests - ("python" ,python-2))) ; ditto + ("perl" ,perl) + ("gperf" ,gperf))) (inputs - `(("kmod" ,kmod) - ("pciutils" ,pciutils) - ("usbutils" ,usbutils) - ("util-linux" ,util-linux) - ("glib" ,glib) - ("gobject-introspection" ,gobject-introspection))) - (arguments - `(#:configure-flags (list "--enable-libkmod" - - (string-append - "--with-pci-ids-path=" - (assoc-ref %build-inputs "pciutils") - "/share/pci.ids.gz") - - "--with-firmware-path=/no/firmware" - - ;; Work around undefined reference to - ;; 'mq_getattr' in sc-daemon.c. - "LDFLAGS=-lrt") - #:phases - (alist-cons-before - 'build 'pre-build - ;; The program 'g-ir-scanner' (part of the package - ;; 'gobject-introspection'), to generate .gir files, makes some - ;; library pre-processing. During that phase it looks for the C - ;; compiler as either 'cc' or as defined by the environment variable - ;; 'CC' (with code in 'giscanner/dumper.py'). - (lambda* _ - (setenv "CC" "gcc")) - %standard-phases))) + `(("kmod" ,kmod))) (home-page "http://www.gentoo.org/proj/en/eudev/") (synopsis "Userspace device management") (description "Udev is a daemon which dynamically creates and removes diff --git a/gnu/packages/patches/eudev-rules-directory.patch b/gnu/packages/patches/eudev-rules-directory.patch index 9173e22f76..54fc01c6d5 100644 --- a/gnu/packages/patches/eudev-rules-directory.patch +++ b/gnu/packages/patches/eudev-rules-directory.patch @@ -4,9 +4,9 @@ The old udev 182 supported $UDEV_CONFIG_FILE, which in turn allowed the search path to be customized, but eudev no longer has this, hence this hack. ---- eudev-1.9/src/udev/udev-rules.c 2014-09-13 10:21:59.615980259 +0200 -+++ eudev-1.9/src/udev/udev-rules.c 2014-09-13 10:24:13.839976335 +0200 -@@ -46,15 +46,11 @@ +--- eudev-3.1.5/src/udev/udev-rules.c 2015-10-13 06:22:14.000000000 +0800 ++++ eudev-3.1.5/src/udev/udev-rules.c 2015-10-16 20:45:38.491934336 +0800 +@@ -47,15 +47,11 @@ }; }; @@ -14,23 +14,23 @@ this hack. +static const char* rules_dirs[] = { UDEV_CONF_DIR "/rules.d", UDEV_RULES_DIR, -- "/run/udev/rules.d", +- UDEV_ROOT_RUN "/udev/rules.d", UDEV_LIBEXEC_DIR "/rules.d", -#ifdef HAVE_SPLIT_USR - "/lib/udev/rules.d", - "/usr/lib/udev/rules.d", -#endif -+ NULL, /* placeholder for $EUDEV_RULES_DIRECTORY */ ++ NULL, /* placeholder for $EUDEV_RULES_DIRECTORY */ NULL}; struct udev_rules { -@@ -1637,6 +1633,9 @@ +@@ -1704,6 +1700,9 @@ udev_rules_check_timestamp(rules); -+ /* Allow the user to specify an additional rules directory. */ -+ rules_dirs[3] = getenv("EUDEV_RULES_DIRECTORY"); ++ /* Allow the user to specify an additional rules directory. */ ++ rules_dirs[3] = getenv("EUDEV_RULES_DIRECTORY"); + r = conf_files_list_strv(&files, ".rules", NULL, rules_dirs); if (r < 0) { - log_error("failed to enumerate rules files: %s", strerror(-r)); + log_error_errno(r, "failed to enumerate rules files: %m"); -- cgit v1.2.3 From 3ad29c9ef53d13f707290b4808d7862217756380 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Fri, 16 Oct 2015 22:19:20 +0800 Subject: gnu: gtkmm-2: Fix build by passing '-std=c++11'. * gnu/packages/gtk.scm (gtkmm-2)[arguments]: Pass '-std=c++11' as CPPFLAGS. --- gnu/packages/gtk.scm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index 078f0e7c84..cee8bd6b44 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -852,6 +852,8 @@ extensive documentation, including API reference and a tutorial.") (sha256 (base32 "1vpmjqv0aqb1ds0xi6nigxnhlr0c74090xzi15b92amlzkrjyfj4")))) + (arguments + '(#:configure-flags '("CPPFLAGS=-std=c++11"))) ; required by libsigc++ (propagated-inputs `(("pangomm" ,pangomm) ("cairomm" ,cairomm) -- cgit v1.2.3 From f43c0e9c44911b1f4b0787fd8da723b32daba43c Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Fri, 16 Oct 2015 23:04:33 +0800 Subject: gnu: librsvg: Update to 2.40.11. * gnu/packages/gnome.scm (librsvg): Update to 2.40.11. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 5440433402..fb7fa793ec 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -821,7 +821,7 @@ dealing with different structured file formats.") (define-public librsvg (package (name "librsvg") - (version "2.40.10") + (version "2.40.11") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -829,7 +829,7 @@ dealing with different structured file formats.") name "-" version ".tar.xz")) (sha256 (base32 - "0y9lvnb9ij9mjg8cyp7xysi0c5ms5v4q1zrhx42b546f71s80p4n")))) + "00ifd9wjjjsw0ybk5j6qs4yyh66jj34hjmggy6dhrgfy8ksw06k1")))) (build-system gnu-build-system) (arguments `(#:phases -- cgit v1.2.3 From 5f37e56ba41edb1bd47b7b1663aea07078f943d2 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Sat, 17 Oct 2015 10:30:25 +0800 Subject: gnu: librsvg: Fix tests. GLib doesn't allow duplicate test case paths any more. * gnu/packages/patches/librsvg-tests.patch: New file. * gnu/packages/gnome.scm (librsvg)[source]: Add patch. * gnu-system.am (dist_patch_DATA): Add it. --- gnu-system.am | 1 + gnu/packages/gnome.scm | 4 +++- gnu/packages/patches/librsvg-tests.patch | 27 +++++++++++++++++++++++++++ 3 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/librsvg-tests.patch diff --git a/gnu-system.am b/gnu-system.am index ee3c686bb3..36c94d602b 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -527,6 +527,7 @@ dist_patch_DATA = \ gnu/packages/patches/libmad-armv7-thumb-pt2.patch \ gnu/packages/patches/libmad-frame-length.patch \ gnu/packages/patches/libmad-mips-newgcc.patch \ + gnu/packages/patches/librsvg-tests.patch \ gnu/packages/patches/libtheora-config-guess.patch \ gnu/packages/patches/libtool-skip-tests2.patch \ gnu/packages/patches/libssh-CVE-2014-0017.patch \ diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index fb7fa793ec..5811299d35 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -829,7 +829,9 @@ dealing with different structured file formats.") name "-" version ".tar.xz")) (sha256 (base32 - "00ifd9wjjjsw0ybk5j6qs4yyh66jj34hjmggy6dhrgfy8ksw06k1")))) + "00ifd9wjjjsw0ybk5j6qs4yyh66jj34hjmggy6dhrgfy8ksw06k1")) + (patches + (list (search-patch "librsvg-tests.patch"))))) (build-system gnu-build-system) (arguments `(#:phases diff --git a/gnu/packages/patches/librsvg-tests.patch b/gnu/packages/patches/librsvg-tests.patch new file mode 100644 index 0000000000..dc5b94e185 --- /dev/null +++ b/gnu/packages/patches/librsvg-tests.patch @@ -0,0 +1,27 @@ +From e06fc71a57156123e4e50a39957100a651ab632b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= +Date: Sat, 17 Oct 2015 10:20:33 +0800 +Subject: [PATCH] tests/styles: Don't duplicate test names. + +--- + tests/styles.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/tests/styles.c b/tests/styles.c +index d09b1f2..a938835 100644 +--- a/tests/styles.c ++++ b/tests/styles.c +@@ -97,8 +97,8 @@ static const FixtureData fixtures[] = + {"/styles/selectors/2 or more selectors (stroke)", "592207", "styles/bug592207.svg", "#target", "stroke", .expected.color = 0xff0000ff}, + {"/styles/svg-element-style", "615701", "styles/svg-class.svg", "#svg", "fill", .expected.color = 0xff0000ff}, + {"/styles/presentation attribute in svg element", "620693", "styles/bug620693.svg", "#svg", "stroke", .expected.color = 0xffff0000}, +- {"/styles/!important", "379629", "styles/bug379629.svg", "#base_shadow", "stroke", .expected.color = 0xffffc0cb /* pink */}, +- {"/styles/!important", "379629", "styles/bug379629.svg", "#base_shadow", "stroke-width", .expected.length = {POINTS_LENGTH(5.), 'i'}}, ++ {"/styles/!important/1", "379629", "styles/bug379629.svg", "#base_shadow", "stroke", .expected.color = 0xffffc0cb /* pink */}, ++ {"/styles/!important/2", "379629", "styles/bug379629.svg", "#base_shadow", "stroke-width", .expected.length = {POINTS_LENGTH(5.), 'i'}}, + {"/styles/!important/class", "614606", "styles/bug614606.svg", "#path6306", "fill", .expected.color = 0xffff0000 /* red */ }, + {"/styles/!important/element", "614606", "styles/bug614606.svg", "#path6308", "fill", .expected.color = 0xff000000}, + {"/styles/!important/#id prior than class", NULL, "styles/important.svg", "#red", "fill", .expected.color = 0xffff0000 }, +-- +2.5.0 + -- cgit v1.2.3 From f4925a4fb89c745fadbe9867ac5e017215d97acf Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Sat, 17 Oct 2015 10:48:52 +0800 Subject: gnu: vala: Update to 0.30.0. * gnu/packages/gnome.scm (vala): Update to 0.30.0. [arguments]: Run tests with "DBUS_FATAL_WARNINGS=0'. --- gnu/packages/gnome.scm | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 5811299d35..dc41e9eb94 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -1627,7 +1627,7 @@ passwords in the GNOME keyring.") (define-public vala (package (name "vala") - (version "0.28.0") + (version "0.30.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -1635,14 +1635,16 @@ passwords in the GNOME keyring.") name "-" version ".tar.xz")) (sha256 (base32 - "0zwpzhkhfk3piya14m7p2hl2vaabahprphppfm46ci91z39kp7hd")))) + "1pyyhfw3zzbhxfscbn8xz70dg6vx0kh8gshzikpxczhg01xk7w31")))) (build-system gnu-build-system) (arguments '(#:phases (modify-phases %standard-phases - (add-before 'check 'set-cc + (add-before 'check 'pre-check (lambda _ (setenv "CC" "gcc") + ;; For missing '/etc/machine-id'. + (setenv "DBUS_FATAL_WARNINGS" "0") #t))))) (native-inputs `(("pkg-config" ,pkg-config) -- cgit v1.2.3 From 3e429a86a999897ed2bbc07a5c6fc295fe06e8c8 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Sat, 17 Oct 2015 10:50:46 +0800 Subject: gnu: gsettings-desktop-schemas: Update to 3.18.0. * gnu/packages/gnome.scm (gsettings-desktop-schemas): Update to 3.18.0. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index dc41e9eb94..74c45ec6ea 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -446,7 +446,7 @@ on the GNOME Desktop with a single simple application.") (define-public gsettings-desktop-schemas (package (name "gsettings-desktop-schemas") - (version "3.16.0") + (version "3.18.0") (source (origin (method url-fetch) @@ -455,7 +455,7 @@ on the GNOME Desktop with a single simple application.") name "-" version ".tar.xz")) (sha256 (base32 - "02dp1hl38k16m9abydfca1n236mdazqdz0p3n92s7haf9mdqsf16")))) + "1szc857f46spdhrbnq9ci3kwfqg5vwpikbf0hprq6vd94rr369xs")))) (build-system gnu-build-system) (inputs `(("glib" ,glib))) -- cgit v1.2.3 From aa8789c012a408aadfc36ce6e68c0f0ec26c2e21 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Sat, 17 Oct 2015 10:51:20 +0800 Subject: gnu: glib-networking: Update to 2.46.1. * gnu/packages/gnome.scm (glib-networking): Update to 2.46.1. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 74c45ec6ea..841682062b 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -1875,7 +1875,7 @@ library.") (define-public glib-networking (package (name "glib-networking") - (version "2.44.0") + (version "2.46.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/glib-networking/" @@ -1883,7 +1883,7 @@ library.") name "-" version ".tar.xz")) (sha256 (base32 - "0ij33bhvn7y5gagx4sbrw906dsjjjs9dllxn73pzv6x97c6k92lg")) + "1cchmi08jpjypgmm9i7xzh5qfg2q5k61kry9ns8mhw3z44a440ym")) (patches (list (search-patch "glib-networking-ssl-cert-file.patch"))))) (build-system gnu-build-system) -- cgit v1.2.3 From fd730590b6a61021196256f60024aedb4c8dcf68 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Sat, 17 Oct 2015 11:06:20 +0800 Subject: gnu: libsoup: Update to 2.52.1, enable vala bindings. * gnu/packages/gnome.scm (vala): Update to 2.52.1. [native-inputs]: Add vala. [arguments]: Pass vapidir=$out/share/vala/vapi in the 'install' phase. --- gnu/packages/gnome.scm | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 841682062b..a5cb7312d3 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -1957,7 +1957,7 @@ libxml to ease remote use of the RESTful API.") (define-public libsoup (package (name "libsoup") - (version "2.50.0") + (version "2.52.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/libsoup/" @@ -1965,18 +1965,14 @@ libxml to ease remote use of the RESTful API.") name "-" version ".tar.xz")) (sha256 (base32 - "0yv61y5vfar1rfksa6f53zhfw9wcb39zjix8gqc1ff5gqid3c08y")))) + "0j6cnnpqqgnb9nj2r0j8j6898np4z503hrnpis7b4l5d8yhbq68f")))) (build-system gnu-build-system) (outputs '("out" "doc")) (arguments `(#:configure-flags (list (string-append "--with-html-dir=" (assoc-ref %outputs "doc") - "/share/gtk-doc/html") - ;; To find GIO modules from glib-networking. - (string-append "GIO_EXTRA_MODULES=" - (assoc-ref %build-inputs "glib-networking") - "/lib/gio/modules")) + "/share/gtk-doc/html")) #:phases (modify-phases %standard-phases (add-before 'configure 'disable-unconnected-socket-test @@ -1994,13 +1990,22 @@ libxml to ease remote use of the RESTful API.") ;; The ca-certificates.crt is not available in the build ;; environment. (setenv "SSL_CERT_FILE" "/dev/null") - #t))))) + #t)) + (replace 'install + (lambda _ + (zero? + (system* "make" + ;; Install vala bindings into $out. + (string-append "vapidir=" %output + "/share/vala/vapi") + "install"))))))) (native-inputs `(("glib:bin" ,glib "bin") ; for glib-mkenums ("gobject-introspection" ,gobject-introspection) ("intltool" ,intltool) ("pkg-config" ,pkg-config) ("python" ,python-wrapper) + ("vala" ,vala) ;; These are needed for the tests. ;; FIXME: Add PHP once available. ("curl" ,curl) -- cgit v1.2.3 From 6410d25700e3659b15d70d2bce5d54c59085c73b Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Sat, 17 Oct 2015 11:27:19 +0800 Subject: gnu: libva: Update to 1.6.1. * gnu/packages/video.scm (libva): Update to 1.6.1. --- gnu/packages/video.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 45c10998f5..26483f707b 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -320,7 +320,7 @@ SMPTE 314M.") (define-public libva (package (name "libva") - (version "1.5.1") + (version "1.6.1") (source (origin (method url-fetch) @@ -328,7 +328,7 @@ SMPTE 314M.") "http://www.freedesktop.org/software/vaapi/releases/libva/libva-" version".tar.bz2")) (sha256 - (base32 "01d01mm9fgpwzqycmjjcj3in3vvzcibi3f64icsw2sksmmgb4495")))) + (base32 "0bjfb5s8dk3lql843l91ffxzlq47isqks5sj19cxh7j3nhzw58kz")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) -- cgit v1.2.3 From 381d3400b1c8d15e7cf9cc3b845597f394494c2d Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Sat, 17 Oct 2015 11:39:03 +0800 Subject: gnu: libpciaccess: Update to 0.13.4. * gnu/packages/xorg.scm (libpciaccess): Update to 0.13.4. --- gnu/packages/xorg.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index efef1eadc2..f90c75ae10 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -1111,7 +1111,7 @@ themselves.") (define-public libpciaccess (package (name "libpciaccess") - (version "0.13.2") + (version "0.13.4") (source (origin (method url-fetch) @@ -1121,7 +1121,7 @@ themselves.") ".tar.bz2")) (sha256 (base32 - "06fy43n3c450h7xqpn3094bnfn7ca1mrq3i856y8kyqa0lmqraxb")))) + "1krgryi9ngjr66242v0v5mczihgv0y7rrvx0563arr318mjn9y07")))) (build-system gnu-build-system) (inputs `(("zlib" ,zlib))) -- cgit v1.2.3 From 3b54548f033554c765f73d4a37fcfd8b821921b2 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Sat, 17 Oct 2015 11:39:56 +0800 Subject: gnu: libdrm: Update to 2.4.65. * gnu/packages/xdisorg.scm (libdrm): Update to 2.4.65. --- gnu/packages/xdisorg.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index fbe8af33d0..7a0b50bdab 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -197,7 +197,7 @@ rasterisation.") (define-public libdrm (package (name "libdrm") - (version "2.4.58") + (version "2.4.65") (source (origin (method url-fetch) @@ -207,7 +207,7 @@ rasterisation.") ".tar.bz2")) (sha256 (base32 - "1pb5lfb3kh36p9axq620daclq68rqb3mhzxpz0pb18y9p7kglmdi")))) + "1i4n7mz49l0j4kr0dg9n1j3hlc786ncqgj0v5fci1mz7pp40m5ki")))) (build-system gnu-build-system) (inputs `(("libpciaccess" ,libpciaccess) -- cgit v1.2.3 From d18c3c646c9a72f843332ee5bd0abfad9cbf6998 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Sat, 17 Oct 2015 13:24:47 +0800 Subject: gnu: mesa: Update to 11.0.3. * gnu/packages/gl.scm (mesa): Update to 11.0.3. --- gnu/packages/gl.scm | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm index e8003f88a3..25d65a0fd2 100644 --- a/gnu/packages/gl.scm +++ b/gnu/packages/gl.scm @@ -185,7 +185,7 @@ also known as DXTn or DXTC) for Mesa.") (define-public mesa (package (name "mesa") - (version "10.5.4") + (version "11.0.3") (source (origin (method url-fetch) @@ -193,7 +193,7 @@ also known as DXTn or DXTC) for Mesa.") version "/mesa-" version ".tar.xz")) (sha256 (base32 - "00v89jna7m6r2w1yrnx09isc97r2bd1hkn4jib445n1078zp47mm")))) + "1mikw0biw0wxq0fn3cp18bm6kjrkd66fy84774yc5b91rvp94adb")))) (build-system gnu-build-system) (propagated-inputs `(("glproto" ,glproto) @@ -257,9 +257,6 @@ also known as DXTn or DXTC) for Mesa.") "src/mesa/main/texcompress_s3tc.c") (("\"libtxc_dxtn\\.so") (string-append "\"" s2tc "/lib/libtxc_dxtn.so"))) - (substitute* "src/gallium/targets/egl-static/egl_st.c" - (("\"libglapi\"") - (string-append "\"" out "/lib/libglapi\""))) (substitute* "src/loader/loader.c" (("dlopen\\(\"libudev\\.so") (string-append "dlopen(\"" udev "/lib/libudev.so"))) -- cgit v1.2.3 From ecd9c37f1f720f344975337410ec3c77a1cf4a55 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Sat, 17 Oct 2015 14:47:28 +0800 Subject: gnu: cmake: Update to 3.3.2. * gnu/packages/cmake.scm (cmake): Update to 3.3.2. --- gnu/packages/cmake.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/cmake.scm b/gnu/packages/cmake.scm index 128f0370dd..9b8ebde761 100644 --- a/gnu/packages/cmake.scm +++ b/gnu/packages/cmake.scm @@ -36,7 +36,7 @@ (define-public cmake (package (name "cmake") - (version "3.3.1") + (version "3.3.2") (source (origin (method url-fetch) (uri (string-append @@ -44,7 +44,7 @@ (version-major+minor version) "/cmake-" version ".tar.gz")) (sha256 - (base32 "1mp32dqywk4dfw7zmpgp31axszv7h74yk69g273z21q7d8n04rfd")) + (base32 "08pwy9ip9cgwgynhn5vrjw8drw29gijy1rmziq22n65zds6ifnp7")) (patches (list (search-patch "cmake-fix-tests.patch"))))) (build-system gnu-build-system) (arguments -- cgit v1.2.3 From 8ce36e81c216dd0484d27f4e2044f40fdb8b0c0b Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Sat, 17 Oct 2015 14:48:02 +0800 Subject: gnu: freeglut: Update to 3.0.0. * gnu/packages/gl.scm (freeglut): Update to 3.0.0. --- gnu/packages/gl.scm | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm index 25d65a0fd2..eee3d245ab 100644 --- a/gnu/packages/gl.scm +++ b/gnu/packages/gl.scm @@ -26,6 +26,7 @@ #:use-module (guix packages) #:use-module (guix download) #:use-module (guix build-system gnu) + #:use-module (guix build-system cmake) #:use-module (guix packages) #:use-module (guix utils) #:use-module (gnu packages autotools) @@ -74,14 +75,15 @@ as ASCII text.") (define-public freeglut (package (name "freeglut") - (version "2.8.1") + (version "3.0.0") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/project/freeglut/freeglut/" version "/freeglut-" version ".tar.gz")) (sha256 - (base32 "16lrxxxd9ps9l69y3zsw6iy0drwjsp6m26d1937xj71alqk6dr6x")))) - (build-system gnu-build-system) + (base32 "18knkyczzwbmyg8hr4zh8a1i5ga01np2jzd1rwmsh7mh2n2vwhra")))) + (build-system cmake-build-system) + (arguments '(#:tests? #f)) ; no test target (inputs `(("mesa" ,mesa) ("libx11" ,libx11) ("libxi" ,libxi) -- cgit v1.2.3 From 9b0bbb47672bb9e36cc4dda3ffd47958823ed5b0 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Sat, 17 Oct 2015 15:31:20 +0800 Subject: gnu: graphite2: Update to 1.3.3. * gnu/packages/fontutils.scm (graphite2): Update to 1.3.3. --- gnu/packages/fontutils.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm index 3db8f9f11d..f31b905156 100644 --- a/gnu/packages/fontutils.scm +++ b/gnu/packages/fontutils.scm @@ -203,7 +203,7 @@ applications should be.") (define-public graphite2 (package (name "graphite2") - (version "1.3.1") + (version "1.3.3") (source (origin (method url-fetch) @@ -212,7 +212,7 @@ applications should be.") version ".tgz")) (sha256 (base32 - "0xvhmlyyxg2qmbwyl8k2f9w7mrbjyl59823pnjd8xmxpyl6976d5")))) + "1n22vvi4jl83m4sqhvd7v31bhyhyd8j6c3yjgh4zjfyrvid16jrg")))) (build-system cmake-build-system) (native-inputs `(("python" ,python-2) ; because of "import imap" in tests -- cgit v1.2.3 From 5fba12ecd3146e17d826167b6b9ffdfcbe2a49c9 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Sat, 17 Oct 2015 17:52:54 +0800 Subject: gnu: at-spi2-atk: Fix test. * gnu/packages/gtk.scm (at-spi2-atk)[arguments]: Run test with 'DBUS_FATAL_WARNINGS=0'. --- gnu/packages/gtk.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index cee8bd6b44..4d66dd532c 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -442,6 +442,7 @@ is part of the GNOME accessibility project.") (replace 'check ;; Run test-suite under a dbus session. (lambda _ + (setenv "DBUS_FATAL_WARNINGS" "0") (zero? (system* "dbus-launch" "make" "check"))))))) (propagated-inputs `(("at-spi2-core" ,at-spi2-core))) ; required by atk-bridge-2.0.pc -- cgit v1.2.3 From 406766c0d0f9ab45efb45baf0b542ebb7788ccd4 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Sun, 18 Oct 2015 08:41:44 +0800 Subject: gnu: xfconf: Fix test. * gnu/packages/xfce.scm (xfconf)[arguments]: Run test with 'DBUS_FATAL_WARNINGS=0'. --- gnu/packages/xfce.scm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gnu/packages/xfce.scm b/gnu/packages/xfce.scm index e42c58050d..ae10929bf2 100644 --- a/gnu/packages/xfce.scm +++ b/gnu/packages/xfce.scm @@ -111,6 +111,8 @@ Xfce Desktop Environment.") ;; Run test-suite under a dbus session. (setenv "XDG_DATA_DIRS" ; for finding org.xfce.Xfconf.service (string-append %output "/share")) + ;; For the missing '/etc/machine-id'. + (setenv "DBUS_FATAL_WARNINGS" "0"); (zero? (system* "dbus-launch" "make" "check"))) (alist-delete 'check %standard-phases)))) (native-inputs -- cgit v1.2.3 From 6717c87964a7b210c34c122ce9dcef54ad7119cf Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Sun, 18 Oct 2015 08:43:40 +0800 Subject: gnu: python-dbus: Fix test. * gnu/packages/python.scm (python-dbus)[arguments]: Run test with 'DBUS_FATAL_WARNINGS=0'. --- gnu/packages/python.scm | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index c972b62500..9db578ed96 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -4211,6 +4211,17 @@ features useful for text console applications.") (sha256 (base32 "1py62qir966lvdkngg0v8k1khsqxwk5m4s8nflpk1agk5f5nqb71")))) (build-system gnu-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-before + 'check 'pre-check + (lambda _ + ;; XXX: For the missing '/etc/machine-id'. + (substitute* "test/run-test.sh" + (("DBUS_FATAL_WARNINGS=1") + "DBUS_FATAL_WARNINGS=0")) + #t))))) (native-inputs `(("pkg-config" ,pkg-config))) (inputs -- cgit v1.2.3 From 7765bfc61f60e2aa3cbbb37b02bb66231667760a Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Sun, 18 Oct 2015 09:30:21 +0800 Subject: gnu: elogind: Fix build by explicitly link with librt. * gnu/packages/freedesktop.scm (elogind)[arguments]: Pass 'LDFLAGS=-lrt' to configure. --- gnu/packages/freedesktop.scm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index c085fe5770..b3503e694c 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -156,7 +156,10 @@ the freedesktop.org XDG Base Directory specification.") (assoc-ref %build-inputs "libcap")) (string-append "--with-udevrulesdir=" (assoc-ref %outputs "out") - "/lib/udev/rules.d")) + "/lib/udev/rules.d") + ;; XXX: fail with: + ;; src/shared/clean-ipc.c:315: undefined reference to `mq_unlink' + "LDFLAGS=-lrt") #:make-flags '("PKTTYAGENT=/run/current-system/profile/bin/pkttyagent"))) (native-inputs `(("intltool" ,intltool) -- cgit v1.2.3 From 4955ab7d651b24915b99de96587d516401c8db5e Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Sun, 18 Oct 2015 13:30:18 +0800 Subject: gnu: json-glib: Update to 1.0.4, fix test. * gnu/packages/gnome.scm (json-glib): Update to 1.0.4. [source]: Add snippet. --- gnu/packages/gnome.scm | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index a5cb7312d3..9a82762372 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -1775,7 +1775,7 @@ configuration storage systems.") (define-public json-glib (package (name "json-glib") - (version "1.0.2") + (version "1.0.4") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -1783,7 +1783,14 @@ configuration storage systems.") name "-" version ".tar.xz")) (sha256 (base32 - "02k66lpc4cmgygj66n8zcy59bggy7yzm3v4hni9xqplgva9d2yw8")))) + "1k85vvb2prmk8aa8hmr2rp9rnbhffjgnmr18b13g24xxnqy5kww0")) + (modules '((guix build utils))) + (snippet + ;; Don't duplicate test names. + ;; . + '(substitute* "json-glib/tests/builder.c" + (("\"/builder/complex\", test_builder_empty") + "\"/builder/empty\", test_builder_empty"))))) (build-system gnu-build-system) (native-inputs `(("glib" ,glib "bin") ;for glib-mkenums and glib-genmarshal -- cgit v1.2.3 From 80c7dd1a4ed97dc9d36616fd6441bbb7c79f53ea Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Sun, 18 Oct 2015 13:46:22 +0800 Subject: gnu: colord: Add input libgudev. * gnu/packages/gnome.scm (colord)[inputs]: Add libgudev. --- gnu/packages/gnome.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 9a82762372..34608786e4 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -2226,6 +2226,7 @@ keyboard shortcuts.") ("lcms" ,lcms))) (inputs `(("dbus-glib" ,dbus-glib) + ("libgudev" ,libgudev) ("libusb" ,libusb) ("sqlite" ,sqlite) ("polkit" ,polkit) -- cgit v1.2.3 From a572dca8482d79366d31f6ea025496df486f6500 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Sun, 18 Oct 2015 15:02:41 +0800 Subject: gnu: gtk+: Add more inputs. * gnu/packages/gtk.scm (gtk+)[propagated-inputs]: Add libxcursor. [inputs]: Add rest, json-glib and colord. --- gnu/packages/gtk.scm | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index 4d66dd532c..1ab816d717 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -531,6 +531,7 @@ application suites.") ("atk" ,atk) ("gdk-pixbuf" ,gdk-pixbuf) ("libepoxy" ,libepoxy) + ("libxcursor" ,libxcursor) ("libxi" ,libxi) ("libxinerama" ,libxinerama) ("libxdamage" ,libxdamage) @@ -538,7 +539,10 @@ application suites.") (inputs `(("librsvg" ,librsvg) ;for gtk-encode-symbolic-svg ("libxml2" ,libxml2) - ("cups" ,cups))) ;for printing support + ("colord" ,colord) + ("cups" ,cups) ;for printing support + ("rest" ,rest) + ("json-glib" ,json-glib))) (native-inputs `(("perl" ,perl) ("glib" ,glib "bin") -- cgit v1.2.3 From b2aab72c14a7992df1910cfed8cf36b789dff203 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Sun, 18 Oct 2015 23:51:53 -0400 Subject: gnu: libdrm: Fix symbol check tests on mips64el and armhf. * gnu/packages/patches/libdrm-symbol-check.patch: New file. * gnu-system.am (dist_patch_DATA): Add it. * gnu/packages/xdisorg.scm (libdrm)[source]: Add patch. --- gnu-system.am | 1 + gnu/packages/patches/libdrm-symbol-check.patch | 195 +++++++++++++++++++++++++ gnu/packages/xdisorg.scm | 3 +- 3 files changed, 198 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/libdrm-symbol-check.patch diff --git a/gnu-system.am b/gnu-system.am index 6eb41304a7..859b123c2c 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -519,6 +519,7 @@ dist_patch_DATA = \ gnu/packages/patches/libarchive-mtree-filename-length-fix.patch \ gnu/packages/patches/libbonobo-activation-test-race.patch \ gnu/packages/patches/libcanberra-sound-theme-freedesktop.patch \ + gnu/packages/patches/libdrm-symbol-check.patch \ gnu/packages/patches/libevent-dns-tests.patch \ gnu/packages/patches/libmtp-devices.patch \ gnu/packages/patches/liboop-mips64-deplibs-fix.patch \ diff --git a/gnu/packages/patches/libdrm-symbol-check.patch b/gnu/packages/patches/libdrm-symbol-check.patch new file mode 100644 index 0000000000..676024beb4 --- /dev/null +++ b/gnu/packages/patches/libdrm-symbol-check.patch @@ -0,0 +1,195 @@ +Augment the list of expected symbols to fix the symbol-check tests on +mips64el-linux and armhf-linux. + +--- libdrm-2.4.65/freedreno/freedreno-symbol-check.orig 2015-09-04 11:07:40.000000000 -0400 ++++ libdrm-2.4.65/freedreno/freedreno-symbol-check 2015-10-18 23:57:15.288416229 -0400 +@@ -1,6 +1,6 @@ + #!/bin/bash + +-# The following symbols (past the first five) are taken from the public headers. ++# The following symbols (past the first 12) are taken from the public headers. + # A list of the latter should be available Makefile.sources/LIBDRM_FREEDRENO_H_FILES + + FUNCS=$(nm -D --format=bsd --defined-only ${1-.libs/libdrm_freedreno.so} | awk '{print $3}'| while read func; do +@@ -10,6 +10,13 @@ + _end + _fini + _init ++_fbss ++_fdata ++_ftext ++__bss_start__ ++__bss_end__ ++_bss_end__ ++__end__ + fd_bo_cpu_fini + fd_bo_cpu_prep + fd_bo_del +--- libdrm-2.4.65/nouveau/nouveau-symbol-check.orig 2015-05-04 11:47:43.000000000 -0400 ++++ libdrm-2.4.65/nouveau/nouveau-symbol-check 2015-10-18 23:55:26.078327118 -0400 +@@ -1,6 +1,6 @@ + #!/bin/bash + +-# The following symbols (past the first five) are taken from the public headers. ++# The following symbols (past the first 12) are taken from the public headers. + # A list of the latter should be available Makefile.sources/LIBDRM_NOUVEAU_H_FILES + + FUNCS=$(nm -D --format=bsd --defined-only ${1-.libs/libdrm_nouveau.so} | awk '{print $3}'| while read func; do +@@ -10,6 +10,13 @@ + _end + _fini + _init ++_fbss ++_fdata ++_ftext ++__bss_start__ ++__bss_end__ ++_bss_end__ ++__end__ + nouveau_bo_map + nouveau_bo_name_get + nouveau_bo_name_ref +--- libdrm-2.4.65/libkms/kms-symbol-check.orig 2015-05-04 11:47:43.000000000 -0400 ++++ libdrm-2.4.65/libkms/kms-symbol-check 2015-10-18 23:46:10.683869471 -0400 +@@ -1,6 +1,6 @@ + #!/bin/bash + +-# The following symbols (past the first five) are taken from the public headers. ++# The following symbols (past the first 12) are taken from the public headers. + # A list of the latter should be available Makefile.sources/LIBKMS_H_FILES + + FUNCS=$(nm -D --format=bsd --defined-only ${1-.libs/libkms.so} | awk '{print $3}'| while read func; do +@@ -10,6 +10,13 @@ + _end + _fini + _init ++_fbss ++_fdata ++_ftext ++__bss_start__ ++__bss_end__ ++_bss_end__ ++__end__ + kms_bo_create + kms_bo_destroy + kms_bo_get_prop +--- libdrm-2.4.65/intel/intel-symbol-check.orig 2015-05-04 11:47:43.000000000 -0400 ++++ libdrm-2.4.65/intel/intel-symbol-check 2015-10-18 23:55:53.309558508 -0400 +@@ -1,6 +1,6 @@ + #!/bin/bash + +-# The following symbols (past the first five) are taken from the public headers. ++# The following symbols (past the first 12) are taken from the public headers. + # A list of the latter should be available Makefile.sources/LIBDRM_INTEL_H_FILES + + FUNCS=$(nm -D --format=bsd --defined-only ${1-.libs/libdrm_intel.so} | awk '{print $3}' | while read func; do +@@ -10,6 +10,13 @@ + _end + _fini + _init ++_fbss ++_fdata ++_ftext ++__bss_start__ ++__bss_end__ ++_bss_end__ ++__end__ + drm_intel_bo_alloc + drm_intel_bo_alloc_for_render + drm_intel_bo_alloc_tiled +--- libdrm-2.4.65/amdgpu/amdgpu-symbol-check.orig 2015-08-17 10:08:11.000000000 -0400 ++++ libdrm-2.4.65/amdgpu/amdgpu-symbol-check 2015-10-18 23:56:10.606917723 -0400 +@@ -1,6 +1,6 @@ + #!/bin/bash + +-# The following symbols (past the first five) are taken from the public headers. ++# The following symbols (past the first 12) are taken from the public headers. + # A list of the latter should be available Makefile.am/libdrm_amdgpuinclude_HEADERS + + FUNCS=$(nm -D --format=bsd --defined-only ${1-.libs/libdrm_amdgpu.so} | awk '{print $3}' | while read func; do +@@ -10,6 +10,13 @@ + _end + _fini + _init ++_fbss ++_fdata ++_ftext ++__bss_start__ ++__bss_end__ ++_bss_end__ ++__end__ + amdgpu_bo_alloc + amdgpu_bo_cpu_map + amdgpu_bo_cpu_unmap +--- libdrm-2.4.65/exynos/exynos-symbol-check.orig 2015-05-04 11:47:43.000000000 -0400 ++++ libdrm-2.4.65/exynos/exynos-symbol-check 2015-10-18 23:56:32.025486153 -0400 +@@ -1,6 +1,6 @@ + #!/bin/bash + +-# The following symbols (past the first five) are taken from the public headers. ++# The following symbols (past the first 12) are taken from the public headers. + # A list of the latter should be available Makefile.am/libdrm_exynos*_HEADERS + + FUNCS=$(nm -D --format=bsd --defined-only ${1-.libs/libdrm_exynos.so} | awk '{print $3}'| while read func; do +@@ -10,6 +10,13 @@ + _end + _fini + _init ++_fbss ++_fdata ++_ftext ++__bss_start__ ++__bss_end__ ++_bss_end__ ++__end__ + exynos_bo_create + exynos_bo_destroy + exynos_bo_from_name +--- libdrm-2.4.65/omap/omap-symbol-check.orig 2015-05-04 11:47:43.000000000 -0400 ++++ libdrm-2.4.65/omap/omap-symbol-check 2015-10-18 23:56:44.834438626 -0400 +@@ -1,6 +1,6 @@ + #!/bin/bash + +-# The following symbols (past the first five) are taken from the public headers. ++# The following symbols (past the first 12) are taken from the public headers. + # A list of the latter should be available Makefile.am/libdrm_omap*HEADERS + + FUNCS=$(nm -D --format=bsd --defined-only ${1-.libs/libdrm_omap.so} | awk '{print $3}'| while read func; do +@@ -10,6 +10,13 @@ + _end + _fini + _init ++_fbss ++_fdata ++_ftext ++__bss_start__ ++__bss_end__ ++_bss_end__ ++__end__ + omap_bo_cpu_fini + omap_bo_cpu_prep + omap_bo_del +--- libdrm-2.4.65/tegra/tegra-symbol-check.orig 2015-05-04 11:47:43.000000000 -0400 ++++ libdrm-2.4.65/tegra/tegra-symbol-check 2015-10-18 23:57:00.756759698 -0400 +@@ -1,6 +1,6 @@ + #!/bin/bash + +-# The following symbols (past the first five) are taken from the public headers. ++# The following symbols (past the first 12) are taken from the public headers. + # A list of the latter should be available Makefile.sources/LIBDRM_FREEDRENO_H_FILES + + FUNCS=$(nm -D --format=bsd --defined-only ${1-.libs/libdrm_tegra.so} | awk '{print $3}'| while read func; do +@@ -10,6 +10,13 @@ + _end + _fini + _init ++_fbss ++_fdata ++_ftext ++__bss_start__ ++__bss_end__ ++_bss_end__ ++__end__ + drm_tegra_bo_get_flags + drm_tegra_bo_get_handle + drm_tegra_bo_get_tiling diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index 42a0454a35..21e403e9ab 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -209,7 +209,8 @@ rasterisation.") ".tar.bz2")) (sha256 (base32 - "1i4n7mz49l0j4kr0dg9n1j3hlc786ncqgj0v5fci1mz7pp40m5ki")))) + "1i4n7mz49l0j4kr0dg9n1j3hlc786ncqgj0v5fci1mz7pp40m5ki")) + (patches (list (search-patch "libdrm-symbol-check.patch"))))) (build-system gnu-build-system) (inputs `(("libpciaccess" ,libpciaccess) -- cgit v1.2.3 From 64643b90ab490eef34226c2f01de9f782de7333f Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Sun, 18 Oct 2015 14:18:52 +0800 Subject: services: dbus: Build '/etc/dbus-1/system-local.conf'. * gnu/services/dbus.scm (dbus-etc-files): New procedure. (dbus-dmd-service): Remove the use of '--config-file'. (dbus-configuration-directory): Adjust accordingly. (dbus-root-service-type): Add extension of ETC-SERVICE-TYPE. --- gnu/services/dbus.scm | 45 +++++++++++++++++++++------------------------ 1 file changed, 21 insertions(+), 24 deletions(-) diff --git a/gnu/services/dbus.scm b/gnu/services/dbus.scm index e4ecd961c5..1fa910af56 100644 --- a/gnu/services/dbus.scm +++ b/gnu/services/dbus.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013, 2014, 2015 Ludovic Courtès +;;; Copyright © 2015 Sou Bunnbu ;;; ;;; This file is part of GNU Guix. ;;; @@ -41,9 +42,9 @@ (services dbus-configuration-services ;list of (default '()))) -(define (dbus-configuration-directory dbus services) - "Return a configuration directory for @var{dbus} that includes the -@code{etc/dbus-1/system.d} directories of each package listed in +(define (dbus-configuration-directory services) + "Return a directory contains the @code{system-local.conf} file for DBUS that +includes the @code{etc/dbus-1/system.d} directories of each package listed in @var{services}." (define build #~(begin @@ -65,13 +66,6 @@ services))) (mkdir #$output) - (copy-file (string-append #$dbus "/etc/dbus-1/system.conf") - (string-append #$output "/system.conf")) - - ;; The default 'system.conf' has an clause for - ;; 'system.d', so create it. - (mkdir (string-append #$output "/system.d")) - ;; 'system-local.conf' is automatically included by the default ;; 'system.conf', so this is where we stuff our own things. (call-with-output-file (string-append #$output "/system-local.conf") @@ -81,6 +75,12 @@ (computed-file "dbus-configuration" build)) +(define (dbus-etc-files config) + "Return a list of FILES for @var{etc-service-type} to build the +@code{/etc/dbus-1} directory." + (list `("dbus-1" ,(dbus-configuration-directory + (dbus-configuration-services config))))) + (define %dbus-accounts ;; Accounts used by the system bus. (list (user-group (name "messagebus") (system? #t)) @@ -118,20 +118,15 @@ (execl prog))) (waitpid pid))))))) -(define dbus-dmd-service - (match-lambda - (($ dbus services) - (let ((conf (dbus-configuration-directory dbus services))) - (list (dmd-service - (documentation "Run the D-Bus system daemon.") - (provision '(dbus-system)) - (requirement '(user-processes)) - (start #~(make-forkexec-constructor - (list (string-append #$dbus "/bin/dbus-daemon") - "--nofork" - (string-append "--config-file=" #$conf - "/system.conf")))) - (stop #~(make-kill-destructor)))))))) +(define (dbus-dmd-service config) + (list (dmd-service + (documentation "Run the D-Bus system daemon.") + (provision '(dbus-system)) + (requirement '(user-processes)) + (start #~(make-forkexec-constructor + (list (string-append #$dbus "/bin/dbus-daemon") + "--nofork" "--system"))) + (stop #~(make-kill-destructor))))) (define dbus-root-service-type (service-type (name 'dbus) @@ -140,6 +135,8 @@ dbus-dmd-service) (service-extension activation-service-type dbus-activation) + (service-extension etc-service-type + dbus-etc-files) (service-extension account-service-type (const %dbus-accounts)))) -- cgit v1.2.3 From 1cb16f1ea3a182339b4d4cbf28107a2cba29ac55 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Mon, 19 Oct 2015 21:39:46 +0800 Subject: gnu: gtk+: Remove colord from inputs. This broke building on non-intel systems. * gnu/packages/gtk.scm (gtk+)[inputs]: Remove colord. --- gnu/packages/gtk.scm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index 1ab816d717..c6a61b7f44 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -539,7 +539,9 @@ application suites.") (inputs `(("librsvg" ,librsvg) ;for gtk-encode-symbolic-svg ("libxml2" ,libxml2) - ("colord" ,colord) + ;; XXX: colord depends on mozjs (through polkit), which fails on + ;; on non-intel systems now. + ;;("colord" ,colord) ("cups" ,cups) ;for printing support ("rest" ,rest) ("json-glib" ,json-glib))) -- cgit v1.2.3 From 20848f3637af2bb97db03e9cd2e01d11494c6f02 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Mon, 19 Oct 2015 22:21:21 +0800 Subject: gnu: mesa: Patch the dlopen call for 'libudev.so'. Fixes a regression introduced in d18c3c6. * gnu/packages/gl.scm (mesa)[arguments]: Update the 'substitute*' call for 'libudev.so'. --- gnu/packages/gl.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm index eee3d245ab..ec6a7f1684 100644 --- a/gnu/packages/gl.scm +++ b/gnu/packages/gl.scm @@ -260,8 +260,9 @@ also known as DXTn or DXTC) for Mesa.") (("\"libtxc_dxtn\\.so") (string-append "\"" s2tc "/lib/libtxc_dxtn.so"))) (substitute* "src/loader/loader.c" - (("dlopen\\(\"libudev\\.so") - (string-append "dlopen(\"" udev "/lib/libudev.so"))) + (("udev_handle = dlopen\\(name") + (string-append "udev_handle = dlopen(\"" + udev "/lib/libudev.so\""))) (substitute* "src/glx/dri_common.c" (("dlopen\\(\"libGL\\.so") (string-append "dlopen(\"" out "/lib/libGL.so"))) -- cgit v1.2.3 From e38a71eea9abaa4e03ef1d7081104f93d26e31b3 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 19 Oct 2015 17:55:18 +0200 Subject: gnu: qemu: Adjust to newer GLib versions. * gnu/packages/qemu.scm (qemu-patch): New procedure. (%glib-memory-vtable-patch, %glib-duplicate-test-patch): New variables. --- gnu/packages/qemu.scm | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/gnu/packages/qemu.scm b/gnu/packages/qemu.scm index fc90346371..71600b2347 100644 --- a/gnu/packages/qemu.scm +++ b/gnu/packages/qemu.scm @@ -40,6 +40,28 @@ #:use-module (gnu packages sdl) #:use-module (gnu packages perl)) +(define (qemu-patch commit file-name sha256) + "Return an origin for COMMIT." + (origin + (method url-fetch) + (uri (string-append + "http://git.qemu.org/?p=qemu.git;a=commitdiff_plain;h=" + commit)) + (sha256 sha256) + (file-name file-name))) + +(define %glib-memory-vtable-patch + (qemu-patch "deb847bf" + "qemu-glib-memory-vtable.patch" + (base32 + "0afb7rvxy14104jxmhr7m02w5baiz0c7vhq3h642h09jgxrcmzzi"))) + +(define %glib-duplicate-test-patch + (qemu-patch "98cf48f6" + "qemu-glib-duplicate-test.patch" + (base32 + "1aicbplzdj5s5y13jmqyvfajay05x9dnkzd197waz8v6kha7d9d5"))) + (define-public qemu-headless ;; This is QEMU without GUI support. (package @@ -52,7 +74,12 @@ (sha256 (base32 "1nqv5p94zpnhcaqkifnn83ap7dd0qrb0qiicswbyhhby0f48pzpc")) - (patches (map search-patch '("qemu-CVE-2015-6855.patch"))))) + (patches (list (search-patch "qemu-CVE-2015-6855.patch") + + ;; These two patches allow QEMU's tests to run + ;; correctly with 'gtester' from the latest GLib. + %glib-memory-vtable-patch + %glib-duplicate-test-patch)))) (build-system gnu-build-system) (arguments '(#:phases (alist-replace -- cgit v1.2.3 From 8cab7580f55fbd0951ac47be168b9ab5a003c93b Mon Sep 17 00:00:00 2001 From: Andreas Enge Date: Sun, 18 Oct 2015 12:20:02 +0200 Subject: gnu: curl: Update to 7.45.0. * gnu/packages/curl.scm (curl): Update to 7.45.0. --- gnu/packages/curl.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/curl.scm b/gnu/packages/curl.scm index f7c9f083b7..3e435f4b13 100644 --- a/gnu/packages/curl.scm +++ b/gnu/packages/curl.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014 Andreas Enge +;;; Copyright © 2013, 2014, 2015 Andreas Enge ;;; Copyright © 2015 Mark H Weaver ;;; Copyright © 2015 Tomáš Čech ;;; Copyright © 2015 Ludovic Courtès @@ -39,14 +39,14 @@ (define-public curl (package (name "curl") - (version "7.44.0") + (version "7.45.0") (source (origin (method url-fetch) (uri (string-append "http://curl.haxx.se/download/curl-" version ".tar.lzma")) (sha256 (base32 - "0gjnaav9vmwwwza451na1643br7i0kxgd4002pwqh3xk5ywvdap7")))) + "0bamqik0mi2rmai016iakwrwmsz0s5xad1ghkbwsd3zkv08rgkcn")))) (build-system gnu-build-system) (outputs '("out" "doc")) ;1.2 MiB of man3 pages -- cgit v1.2.3 From 938ecdfcaba2068bca1de2db27094bfefaf207d4 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 20 Oct 2015 20:36:16 +0300 Subject: gnu: giflib: Update to 5.1.1. * gnu/packages/image.scm (giflib): Update to 5.1.1. --- gnu/packages/image.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index 58338af5c6..5a86beea3f 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -337,14 +337,14 @@ error-resilience, a Java-viewer for j2k-images, ...") (define-public giflib (package (name "giflib") - (version "4.2.3") + (version "5.1.1") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/giflib/giflib-" (first (string-split version #\.)) ".x/giflib-" version ".tar.bz2")) (sha256 - (base32 "0rmp7ipzk42r841bggd7bfqk4p8qsssbp4wcck4qnz7p4rkxbj0a")))) + (base32 "1z1gzq16sdya8xnl5qjc07634kkwj5m0n3bvvj4v9j11xfn1841r")))) (build-system gnu-build-system) (outputs '("bin" ; utility programs "out")) ; library -- cgit v1.2.3 From 5e3bfe9d018f42324c19a5486e91d922cde40db6 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 20 Oct 2015 22:37:26 +0200 Subject: gnu: inkscape: Fix build with newer GLibmm. * gnu/packages/inkscape.scm (inkscape)[arguments]: Add #:configure-flags. --- gnu/packages/inkscape.scm | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/gnu/packages/inkscape.scm b/gnu/packages/inkscape.scm index 76102fab05..b09e84ee08 100644 --- a/gnu/packages/inkscape.scm +++ b/gnu/packages/inkscape.scm @@ -74,7 +74,11 @@ ("perl" ,perl) ("pkg-config" ,pkg-config))) (arguments - `(#:phases (alist-cons-after + `(;; Add '-std=c++11', required by recent versions of GLibmm & co. + ;; Use '-g0' to reduce disk usage during the build. + #:configure-flags '("CXXFLAGS=-g0 -O2 -fopenmp -std=c++11") + + #:phases (alist-cons-after 'unpack 'fix-test-includes (lambda _ (substitute* "src/cxxtests.cpp" -- cgit v1.2.3 From c3c239e615371c2edd9c34589ea91bdfb8ff94d8 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Mon, 19 Oct 2015 13:05:30 +0200 Subject: gnu: Add opusfile. * gnu/packages/xiph.scm (opusfile): New variable. --- gnu/packages/xiph.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/xiph.scm b/gnu/packages/xiph.scm index c4db640d0f..31251ca3a5 100644 --- a/gnu/packages/xiph.scm +++ b/gnu/packages/xiph.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2013 David Thompson ;;; Copyright © 2014 Sree Harsha Totakura ;;; Copyright © 2014 Mark H Weaver +;;; Copyright © 2015 Paul van der Walt ;;; ;;; This file is part of GNU Guix. ;;; @@ -46,6 +47,7 @@ libkate vorbis-tools opus + opusfile opus-tools)) (define libogg @@ -341,6 +343,34 @@ decoding .opus files.") (license license:bsd-3) (home-page "http://www.opus-codec.org"))) +(define opusfile + (package + (name "opusfile") + (version "0.6") + (source (origin + (method url-fetch) + (uri (string-append + "http://downloads.xiph.org/releases/opus/opusfile-" version + ".tar.gz")) + (sha256 + (base32 + "19iys2kld75k0210b807i4illrdmj3cmmnrgxlc9y4vf6mxp2a14")))) + (build-system gnu-build-system) + (propagated-inputs + `(("opus" ,opus))) + `(native-inputs + ("pkg-config" ,pkg-config)) + (inputs + `(("libogg" ,libogg) + ("openssl" ,openssl))) + (synopsis "Versatile audio codec") + (description + "The opusfile library provides seeking, decode, and playback of Opus +streams in the Ogg container (.opus files) including over http(s) on posix and +windows systems.") + (license license:bsd-3) + (home-page "http://www.opus-codec.org"))) + (define-public icecast (package (name "icecast") -- cgit v1.2.3 From fab7428881f76f8f3d6bed6475970f45d454d9b0 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Mon, 19 Oct 2015 13:12:51 +0200 Subject: gnu: Add libcue. * gnu/packages/cdrom.scm (libcue): New variable. --- gnu/packages/cdrom.scm | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/gnu/packages/cdrom.scm b/gnu/packages/cdrom.scm index 62a6040280..884ba8bfa6 100644 --- a/gnu/packages/cdrom.scm +++ b/gnu/packages/cdrom.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2013, 2014, 2015 Ludovic Courtès ;;; Copyright © 2013, 2014 Andreas Enge ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer +;;; Copyright © 2015 Paul van der Walt ;;; ;;; This file is part of GNU Guix. ;;; @@ -231,6 +232,25 @@ depend on the file system of the medium. The maximum error correction capacity is user-selectable.") (license gpl2+))) +(define-public libcue + (package + (name "libcue") + (version "1.4.0") + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/libcue/libcue-" + version ".tar.bz2")) + (sha256 + (base32 + "17kjd7rjz1bvfn44n3n2bjb7a1ywd0yc0g4sqp5ihf9b5bn7cwlb")))) + (build-system gnu-build-system) + (home-page "http://libcue.sourceforge.net/") + (synopsis "C library to parse cue sheets") + (description "Libcue is a C library to parse so-called @dfn{cue sheets} +which contain meta-data for CD/DVD tracks. It provides an API to manipulate +the data.") + (license gpl2+))) + (define-public cd-discid (package (name "cd-discid") -- cgit v1.2.3 From 845b4f5b7b57ce947f13745c2556e141b434f6a6 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Wed, 21 Oct 2015 21:48:52 +0200 Subject: Revert "gnu: Add opusfile." This reverts commit c3c239e615371c2edd9c34589ea91bdfb8ff94d8. --- gnu/packages/xiph.scm | 30 ------------------------------ 1 file changed, 30 deletions(-) diff --git a/gnu/packages/xiph.scm b/gnu/packages/xiph.scm index 31251ca3a5..c4db640d0f 100644 --- a/gnu/packages/xiph.scm +++ b/gnu/packages/xiph.scm @@ -4,7 +4,6 @@ ;;; Copyright © 2013 David Thompson ;;; Copyright © 2014 Sree Harsha Totakura ;;; Copyright © 2014 Mark H Weaver -;;; Copyright © 2015 Paul van der Walt ;;; ;;; This file is part of GNU Guix. ;;; @@ -47,7 +46,6 @@ libkate vorbis-tools opus - opusfile opus-tools)) (define libogg @@ -343,34 +341,6 @@ decoding .opus files.") (license license:bsd-3) (home-page "http://www.opus-codec.org"))) -(define opusfile - (package - (name "opusfile") - (version "0.6") - (source (origin - (method url-fetch) - (uri (string-append - "http://downloads.xiph.org/releases/opus/opusfile-" version - ".tar.gz")) - (sha256 - (base32 - "19iys2kld75k0210b807i4illrdmj3cmmnrgxlc9y4vf6mxp2a14")))) - (build-system gnu-build-system) - (propagated-inputs - `(("opus" ,opus))) - `(native-inputs - ("pkg-config" ,pkg-config)) - (inputs - `(("libogg" ,libogg) - ("openssl" ,openssl))) - (synopsis "Versatile audio codec") - (description - "The opusfile library provides seeking, decode, and playback of Opus -streams in the Ogg container (.opus files) including over http(s) on posix and -windows systems.") - (license license:bsd-3) - (home-page "http://www.opus-codec.org"))) - (define-public icecast (package (name "icecast") -- cgit v1.2.3 From a7aa4e2a64f53eff0c1d97a27e88e93fb83aedf0 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Wed, 21 Oct 2015 21:56:38 +0200 Subject: gnu: Add opusfile. * gnu/packages/xiph.scm (opusfile): New variable. --- gnu/packages/xiph.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/xiph.scm b/gnu/packages/xiph.scm index c4db640d0f..705ebe1d73 100644 --- a/gnu/packages/xiph.scm +++ b/gnu/packages/xiph.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2013 David Thompson ;;; Copyright © 2014 Sree Harsha Totakura ;;; Copyright © 2014 Mark H Weaver +;;; Copyright © 2015 Paul van der Walt ;;; ;;; This file is part of GNU Guix. ;;; @@ -46,6 +47,7 @@ libkate vorbis-tools opus + opusfile opus-tools)) (define libogg @@ -341,6 +343,34 @@ decoding .opus files.") (license license:bsd-3) (home-page "http://www.opus-codec.org"))) +(define opusfile + (package + (name "opusfile") + (version "0.6") + (source (origin + (method url-fetch) + (uri (string-append + "http://downloads.xiph.org/releases/opus/opusfile-" version + ".tar.gz")) + (sha256 + (base32 + "19iys2kld75k0210b807i4illrdmj3cmmnrgxlc9y4vf6mxp2a14")))) + (build-system gnu-build-system) + (propagated-inputs + `(("opus" ,opus))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("libogg" ,libogg) + ("openssl" ,openssl))) + (synopsis "Versatile audio codec") + (description + "The opusfile library provides seeking, decode, and playback of Opus +streams in the Ogg container (.opus files) including over http(s) on posix and +windows systems.") + (license license:bsd-3) + (home-page "http://www.opus-codec.org"))) + (define-public icecast (package (name "icecast") -- cgit v1.2.3 From e8069d012f63979867a15b56b5490d56ef345d6c Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Mon, 19 Oct 2015 13:18:09 +0200 Subject: gnu: Add cmus. * gnu/packages/music.scm (cmus): New variable. --- gnu/packages/music.scm | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index a72f7543dd..7970d17978 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 Ricardo Wurmus +;;; Copyright © 2015 Paul van der Walt ;;; ;;; This file is part of GNU Guix. ;;; @@ -33,6 +34,7 @@ #:use-module (gnu packages base) ;libbdf #:use-module (gnu packages boost) #:use-module (gnu packages bison) + #:use-module (gnu packages cdrom) #:use-module (gnu packages code) #:use-module (gnu packages check) #:use-module (gnu packages compression) @@ -55,6 +57,7 @@ #:use-module (gnu packages linux) ; for alsa-utils #:use-module (gnu packages man) #:use-module (gnu packages mp3) + #:use-module (gnu packages ncurses) #:use-module (gnu packages netpbm) #:use-module (gnu packages pdf) #:use-module (gnu packages perl) @@ -67,6 +70,7 @@ #:use-module (gnu packages tcl) #:use-module (gnu packages texinfo) #:use-module (gnu packages texlive) + #:use-module (gnu packages video) #:use-module (gnu packages web) #:use-module (gnu packages xml) #:use-module (gnu packages xorg) @@ -74,6 +78,66 @@ #:use-module (gnu packages zip) #:use-module ((srfi srfi-1) #:select (last))) +(define-public cmus + (package + (name "cmus") + (version "2.7.1") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/" name "/" name "/archive/v" + version ".tar.gz")) + (sha256 + (base32 + "0raixgjavkm7hxppzsc5zqbfbh2bhjcmbiplhnsxsmyj8flafyc1")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; cmus does not include tests + #:phases + (modify-phases %standard-phases + (replace + 'configure + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + + ;; It's an idiosyncratic configure script that doesn't + ;; understand --prefix=..; it wants prefix=.. instead. + (zero? + (system* "./configure" + (string-append "prefix=" out))))))))) + ;; TODO: cmus optionally supports the following formats, which haven't yet + ;; been added to Guix: + ;; + ;; - Roar, libroar + ;; + ;; - DISCID_LIBS, apparently different from cd-discid which is included in + ;; Guix. See + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("alsa-lib" ,alsa-lib) + ("ao" ,ao) + ("ffmpeg" ,ffmpeg) + ("flac" ,flac) + ("jack" ,jack-1) + ("libcddb" ,libcddb) + ("libcdio-paranoia" ,libcdio-paranoia) + ("libcue" ,libcue) + ("libmad" ,libmad) + ("libmodplug" ,libmodplug) + ("libmpcdec" ,libmpcdec) + ("libsamplerate" ,libsamplerate) + ("libvorbis" ,libvorbis) + ("ncurses" ,ncurses) + ("opusfile" ,opusfile) + ("pulseaudio" ,pulseaudio) + ("wavpack" ,wavpack))) + (home-page "https://cmus.github.io/") + (synopsis "Small console music player") + (description "Cmus is a small and fast console music player. It supports +many input formats and provides a customisable Vi-style user interface.") + (license license:gpl2+))) + (define-public hydrogen (package (name "hydrogen") -- cgit v1.2.3 From e11b27520412ea046834eb425f32f7592f7fe094 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Mon, 19 Oct 2015 15:24:45 +0200 Subject: gnu: Add dosbox x86 emulator. * gnu/packages/games.scm (dosbox): New variable. --- gnu/packages/games.scm | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 3023794218..6552729087 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -12,6 +12,7 @@ ;;; Copyright © 2015 Christopher Allan Webber ;;; Copyright © 2015 Ricardo Wurmus ;;; Copyright © 2015 Alex Kost +;;; Copyright © 2015 Paul van der Walt ;;; ;;; This file is part of GNU Guix. ;;; @@ -34,7 +35,9 @@ #:use-module (guix packages) #:use-module (guix download) #:use-module (guix git-download) + #:use-module (guix svn-download) #:use-module (gnu packages) + #:use-module (gnu packages autotools) #:use-module (gnu packages base) #:use-module (gnu packages admin) #:use-module (gnu packages audio) @@ -1048,6 +1051,47 @@ experience and advance levels, and are carried over from one scenario to the next campaign.") (license license:gpl2+))) +(define-public dosbox + (package + (name "dosbox") + (version "0.74.svn3947") + (source (origin + (method svn-fetch) + (uri (svn-reference + (url "http://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk/") + (revision 3947))) + ;; Use SVN head, since the last release (2010) is incompatible + ;; with GCC 4.8+ (see + ;; ). + (sha256 + (base32 + "1p918j6090d1nkvgq7ifvmn506zrdmyi32y7p3ms40d5ssqjg8fj")))) + (build-system gnu-build-system) + (arguments + `(#:phases (modify-phases %standard-phases + (add-before + 'configure 'autogen.sh + (lambda _ + (zero? (system* "sh" "autogen.sh"))))))) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake))) + (inputs + `(("sdl" ,sdl) + ("libpng" ,libpng) + ("zlib" ,zlib) + ("alsa-lib" ,alsa-lib) + ("glu" ,glu) + ("mesa" ,mesa))) + (home-page "http://www.dosbox.com") + (synopsis "x86 emulator with CGA/EGA/VGA/etc. graphics and sound") + (description "DOSBox is a DOS-emulator that uses the SDL library. DOSBox +also emulates CPU:286/386 realmode/protected mode, Directory +FileSystem/XMS/EMS, Tandy/Hercules/CGA/EGA/VGA/VESA graphics, a +SoundBlaster/Gravis Ultra Sound card for excellent sound compatibility with +older games.") + (license license:gpl2+))) + (define-public gamine (package (name "gamine") -- cgit v1.2.3 From 4a663ca4e8b5ded9a3d92870fba8f2ebde22d75a Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 21 Oct 2015 23:37:02 +0200 Subject: services: dbus: Honor the config's dbus package. * gnu/services/dbus.scm (dbus-dmd-service): Rewrite using 'match-lambda' so that the config's dbus package is used. Fixes a regression introduced in 64643b9. --- gnu/services/dbus.scm | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/gnu/services/dbus.scm b/gnu/services/dbus.scm index 1fa910af56..1d504a8309 100644 --- a/gnu/services/dbus.scm +++ b/gnu/services/dbus.scm @@ -118,15 +118,17 @@ includes the @code{etc/dbus-1/system.d} directories of each package listed in (execl prog))) (waitpid pid))))))) -(define (dbus-dmd-service config) - (list (dmd-service - (documentation "Run the D-Bus system daemon.") - (provision '(dbus-system)) - (requirement '(user-processes)) - (start #~(make-forkexec-constructor - (list (string-append #$dbus "/bin/dbus-daemon") - "--nofork" "--system"))) - (stop #~(make-kill-destructor))))) +(define dbus-dmd-service + (match-lambda + (($ dbus) + (list (dmd-service + (documentation "Run the D-Bus system daemon.") + (provision '(dbus-system)) + (requirement '(user-processes)) + (start #~(make-forkexec-constructor + (list (string-append #$dbus "/bin/dbus-daemon") + "--nofork" "--system"))) + (stop #~(make-kill-destructor))))))) (define dbus-root-service-type (service-type (name 'dbus) -- cgit v1.2.3 From da51f5bb010d8bfbdeaa63db5a54788da4adf9a2 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 22 Oct 2015 00:25:03 +0200 Subject: gnu: dbus: Add variant with proper helper for service activation. * gnu/packages/patches/dbus-helper-search-path.patch: New file. * gnu-system.am (dist_patch_DATA): Add it. * gnu/packages/glib.scm (dbus/activation): New variable. --- gnu-system.am | 1 + gnu/packages/glib.scm | 12 ++++++++++++ gnu/packages/patches/dbus-helper-search-path.patch | 18 ++++++++++++++++++ 3 files changed, 31 insertions(+) create mode 100644 gnu/packages/patches/dbus-helper-search-path.patch diff --git a/gnu-system.am b/gnu-system.am index 859b123c2c..3daec42e28 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -427,6 +427,7 @@ dist_patch_DATA = \ gnu/packages/patches/cssc-missing-include.patch \ gnu/packages/patches/clucene-contribs-lib.patch \ gnu/packages/patches/cursynth-wave-rand.patch \ + gnu/packages/patches/dbus-helper-search-path.patch \ gnu/packages/patches/dealii-p4est-interface.patch \ gnu/packages/patches/diffutils-gets-undeclared.patch \ gnu/packages/patches/dfu-programmer-fix-libusb.patch \ diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm index 6ef64e4b73..e4bf6ad0fc 100644 --- a/gnu/packages/glib.scm +++ b/gnu/packages/glib.scm @@ -59,6 +59,7 @@ (name "dbus") (version "1.10.0") (source (origin + ;; TODO: Apply patch from DBUS/ACTIVATION below. (method url-fetch) (uri (string-append "http://dbus.freedesktop.org/releases/dbus/dbus-" @@ -123,6 +124,17 @@ or through unencrypted TCP/IP suitable for use behind a firewall with shared NFS home directories.") (license license:gpl2+))) ; or Academic Free License 2.1 +(define-public dbus/activation + ;; D-Bus with a patch to fix service activation. + ;; TODO: Merge with DBUS above. + (package + (inherit dbus) + (version (string-append (package-version dbus) ".a")) + (source (origin + (inherit (package-source dbus)) + (patches + (list (search-patch "dbus-helper-search-path.patch"))))))) + (define glib (package (name "glib") diff --git a/gnu/packages/patches/dbus-helper-search-path.patch b/gnu/packages/patches/dbus-helper-search-path.patch new file mode 100644 index 0000000000..30c142312b --- /dev/null +++ b/gnu/packages/patches/dbus-helper-search-path.patch @@ -0,0 +1,18 @@ +The setuid helper of D-Bus is responsible for "service activation". +It looks for '.service' files in fixed locations, but the default locations +make no sense (see below), so replace them with /etc/dbus-1/system-services. + +--- dbus-1.10.0/dbus/dbus-sysdeps-util-unix.c 2015-10-22 00:07:03.829251854 +0200 ++++ dbus-1.10.0/dbus/dbus-sysdeps-util-unix.c 2015-10-22 00:07:14.893445175 +0200 +@@ -1410,10 +1410,7 @@ _dbus_get_standard_system_servicedirs (D + * be available. + */ + static const char standard_search_path[] = +- "/usr/local/share:" +- "/usr/share:" +- DBUS_DATADIR ":" +- "/lib"; ++ "/etc"; + DBusString servicedir_path; + + _dbus_string_init_const (&servicedir_path, standard_search_path); -- cgit v1.2.3 From e0a7d364589578a9b75943f827b05e74e7b63dea Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Wed, 21 Oct 2015 18:37:53 -0400 Subject: gnu: dosbox: Put the 'autogen.sh' phase after 'unpack'. * gnu/packages/games.scm (dosbox)[arguments]: Put the 'autogen.sh' phase after 'unpack', instead of before 'configure'. --- gnu/packages/games.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 6552729087..9d2058af43 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -6,7 +6,7 @@ ;;; Copyright © 2014 Sylvain Beucler ;;; Copyright © 2014, 2015 Ludovic Courtès ;;; Copyright © 2014, 2015 Sou Bunnbu -;;; Copyright © 2014 Mark H Weaver +;;; Copyright © 2014, 2015 Mark H Weaver ;;; Copyright © 2015 Andreas Enge ;;; Copyright © 2015 David Hashe ;;; Copyright © 2015 Christopher Allan Webber @@ -1069,8 +1069,8 @@ next campaign.") (build-system gnu-build-system) (arguments `(#:phases (modify-phases %standard-phases - (add-before - 'configure 'autogen.sh + (add-after + 'unpack 'autogen.sh (lambda _ (zero? (system* "sh" "autogen.sh"))))))) (native-inputs -- cgit v1.2.3 From cde0402169cd93497084664c8d8d399808a1ea82 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 22 Oct 2015 00:35:10 +0200 Subject: services: dbus: Support service activation. * gnu/services/dbus.scm (system-service-directory): New procedure. (dbus-configuration-directory)[services->sxml]: Add /etc/dbus-1/system-services tag, and remove the per-service "/share/dbus-1/system-services" tag. Symlink OUTPUT/system-services. (dbus-setuid-programs): New procedure. (dbus-root-service-type): Extend SETUID-PROGRAM-SERVICE-TYPE. (dbus-service): Default to DBUS/ACTIVATION. --- gnu/services/dbus.scm | 66 +++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 53 insertions(+), 13 deletions(-) diff --git a/gnu/services/dbus.scm b/gnu/services/dbus.scm index 1d504a8309..9b0d198683 100644 --- a/gnu/services/dbus.scm +++ b/gnu/services/dbus.scm @@ -21,7 +21,7 @@ #:use-module (gnu services) #:use-module (gnu services dmd) #:use-module (gnu system shadow) - #:use-module (gnu packages glib) + #:use-module ((gnu packages glib) #:select (dbus/activation)) #:use-module (gnu packages admin) #:use-module (guix gexp) #:use-module (guix records) @@ -38,10 +38,35 @@ dbus-configuration make-dbus-configuration dbus-configuration? (dbus dbus-configuration-dbus ; - (default dbus)) + (default dbus/activation)) (services dbus-configuration-services ;list of (default '()))) +(define (system-service-directory services) + "Return the system service directory, containing @code{.service} files for +all the services that may be activated by the daemon." + (computed-file "dbus-system-services" + #~(begin + (use-modules (guix build utils) + (srfi srfi-1)) + + (define files + (append-map (lambda (service) + (find-files (string-append + service + "/share/dbus-1/system-services") + "\\.service$")) + (list #$@services))) + + (mkdir #$output) + (for-each (lambda (file) + (symlink file + (string-append #$output "/" + (basename file)))) + files) + #t) + #:modules '((guix build utils)))) + (define (dbus-configuration-directory services) "Return a directory contains the @code{system-local.conf} file for DBUS that includes the @code{etc/dbus-1/system.d} directories of each package listed in @@ -54,18 +79,28 @@ includes the @code{etc/dbus-1/system.d} directories of each package listed in (define (services->sxml services) ;; Return the SXML 'includedir' clauses for DIRS. `(busconfig + (servicehelper "/run/setuid-programs/dbus-daemon-launch-helper") + + ;; First, the '.service' files of services subject to activation. + ;; We use a fixed location under /etc because the setuid helper + ;; looks for them in that location and nowhere else. See + ;; . + (servicedir "/etc/dbus-1/system-services") + ,@(append-map (lambda (dir) `((includedir ,(string-append dir "/etc/dbus-1/system.d")) - (servicedir ;for '.service' files - ,(string-append dir "/share/dbus-1/services")) - (servicedir ;likewise, for auto-activation - ,(string-append - dir - "/share/dbus-1/system-services")))) + (servicedir ;for '.service' files + ,(string-append dir "/share/dbus-1/services")))) services))) (mkdir #$output) + + ;; Provide /etc/dbus-1/system-services, which is where the setuid + ;; helper looks for system service files. + (symlink #$(system-service-directory services) + (string-append #$output "/system-services")) + ;; 'system-local.conf' is automatically included by the default ;; 'system.conf', so this is where we stuff our own things. (call-with-output-file (string-append #$output "/system-local.conf") @@ -92,6 +127,12 @@ includes the @code{etc/dbus-1/system.d} directories of each package listed in (home-directory "/var/run/dbus") (shell #~(string-append #$shadow "/sbin/nologin"))))) +(define dbus-setuid-programs + ;; Return the file name of the setuid program that we need. + (match-lambda + (($ dbus services) + (list #~(string-append #$dbus "/libexec/dbus-daemon-launch-helper"))))) + (define (dbus-activation config) "Return an activation gexp for D-Bus using @var{config}." #~(begin @@ -140,13 +181,12 @@ includes the @code{etc/dbus-1/system.d} directories of each package listed in (service-extension etc-service-type dbus-etc-files) (service-extension account-service-type - (const %dbus-accounts)))) + (const %dbus-accounts)) + (service-extension setuid-program-service-type + dbus-setuid-programs))) ;; Extensions consist of lists of packages (representing D-Bus ;; services) that we just concatenate. - ;; - ;; FIXME: We need 'dbus-daemon-launch-helper' to be - ;; setuid-root for auto-activation to work. (compose concatenate) ;; The service's parameters field is extended by augmenting @@ -158,7 +198,7 @@ includes the @code{etc/dbus-1/system.d} directories of each package listed in (append (dbus-configuration-services config) services))))))) -(define* (dbus-service #:key (dbus dbus) (services '())) +(define* (dbus-service #:key (dbus dbus/activation) (services '())) "Return a service that runs the \"system bus\", using @var{dbus}, with support for @var{services}. -- cgit v1.2.3 From 26909789d06b1e006ff45980aac59d3faa31436e Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 22 Oct 2015 00:42:33 +0200 Subject: services: Rely on D-Bus activation for colord, geoclue, and polkit. * gnu/services/desktop.scm (colord-dmd-service): Remove. (colord-service-type): Adjust accordingly. (geoclue-dmd-service): Remove. (geoclue-service-type): Adjust accordingly. (polkit-dmd-service): Remove. (polkit-service-type): Adjust accordingly. --- gnu/services/desktop.scm | 50 +++--------------------------------------------- 1 file changed, 3 insertions(+), 47 deletions(-) diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm index 69edc6d9bb..87d3eaa1b0 100644 --- a/gnu/services/desktop.scm +++ b/gnu/services/desktop.scm @@ -245,17 +245,6 @@ levels, with the given configuration settings. It implements the (home-directory "/var/empty") (shell #~(string-append #$shadow "/sbin/nologin"))))) -(define (colord-dmd-service colord) - "Return a dmd service for COLORD." - ;; TODO: Remove when D-Bus activation works. - (list (dmd-service - (documentation "Run the colord color management service.") - (provision '(colord-daemon)) - (requirement '(dbus-system udev)) - (start #~(make-forkexec-constructor - (list (string-append #$colord "/libexec/colord")))) - (stop #~(make-kill-destructor))))) - (define colord-service-type (service-type (name 'colord) (extensions @@ -263,8 +252,6 @@ levels, with the given configuration settings. It implements the (const %colord-accounts)) (service-extension activation-service-type (const %colord-activation)) - (service-extension dmd-root-service-type - colord-dmd-service) ;; Colord is a D-Bus service that dbus-daemon can ;; activate. @@ -343,23 +330,6 @@ users are allowed." "GEOCLUE_CONFIG_FILE" (geoclue-configuration-file config)))) -(define (geoclue-dmd-service config) - "Return a GeoClue dmd service for CONFIG." - ;; TODO: Remove when D-Bus activation works. - (let ((geoclue (geoclue-configuration-geoclue config)) - (config (geoclue-configuration-file config))) - (list (dmd-service - (documentation "Run the GeoClue location service.") - (provision '(geoclue-daemon)) - (requirement '(dbus-system)) - - (start #~(make-forkexec-constructor - (list (string-append #$geoclue "/libexec/geoclue")) - #:user "geoclue" - #:environment-variables - (list (string-append "GEOCLUE_CONFIG_FILE=" #$config)))) - (stop #~(make-kill-destructor)))))) - (define %geoclue-accounts (list (user-group (name "geoclue") (system? #t)) (user-account @@ -375,8 +345,6 @@ users are allowed." (extensions (list (service-extension dbus-root-service-type geoclue-dbus-service) - (service-extension dmd-root-service-type - geoclue-dmd-service) (service-extension account-service-type (const %geoclue-accounts)))))) @@ -426,18 +394,6 @@ site} for more information." (define %polkit-pam-services (list (unix-pam-service "polkitd"))) -(define (polkit-dmd-service polkit) - "Return the for POLKIT." - ;; TODO: Remove when D-Bus activation works. - (list (dmd-service - (documentation "Run the polkit privilege management service.") - (provision '(polkit-daemon)) - (requirement '(dbus-system)) - - (start #~(make-forkexec-constructor - (list (string-append #$polkit "/lib/polkit-1/polkitd")))) - (stop #~(make-kill-destructor))))) - (define polkit-service-type ;; TODO: Make it extensible so it can collect policy files from other ;; services. @@ -448,9 +404,7 @@ site} for more information." (service-extension pam-root-service-type (const %polkit-pam-services)) (service-extension dbus-root-service-type - list) - (service-extension dmd-root-service-type - polkit-dmd-service))))) + list))))) (define* (polkit-service #:key (polkit polkit)) "Return a service that runs the @command{polkit} privilege management @@ -601,6 +555,8 @@ the system if the user is logged in locally." (define (elogind-dmd-service config) "Return a dmd service for elogind, using @var{config}." + ;; TODO: We could probably rely on service activation but the '.service' + ;; file currently contains an erroneous 'Exec' line. (let ((config-file (elogind-configuration-file config)) (elogind (elogind-package config))) (list (dmd-service -- cgit v1.2.3 From 1e656049b01bdeb2370229641ef8e0def92b4f89 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 13 Oct 2015 14:56:15 +0200 Subject: gnu: Add python-numexpr. * gnu/packages/python.scm (python-numexpr, python2-numexpr): New variables. --- gnu/packages/python.scm | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index c972b62500..9721343235 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -3060,6 +3060,43 @@ that client code uses to construct the grammar directly in Python code.") (define-public python2-numpydoc (package-with-python2 python-numpydoc)) +(define-public python-numexpr + (package + (name "python-numexpr") + (version "2.4.4") + (source + (origin + (method url-fetch) + (uri (string-append "https://pypi.python.org/packages/source/" + "n/numexpr/numexpr-" version ".tar.gz")) + (sha256 + (base32 + "0nsnff5312fm38w6dm34bw7ghfqqy8vl9gig0al963h4mz8zm8nz")))) + (build-system python-build-system) + (arguments `(#:tests? #f)) ; no tests included + (propagated-inputs + `(("python-numpy" ,python-numpy))) + (home-page "https://github.com/pydata/numexpr") + (synopsis "Fast numerical expression evaluator for NumPy") + (description + "Numexpr is a fast numerical expression evaluator for NumPy. With it, +expressions that operate on arrays are accelerated and use less memory than +doing the same calculation in Python. In addition, its multi-threaded +capabilities can make use of all your cores, which may accelerate +computations, most specially if they are not memory-bounded (e.g. those using +transcendental functions).") + (license license:expat))) + +(define-public python2-numexpr + (let ((numexpr (package-with-python2 python-numexpr))) + (package (inherit numexpr) + ;; Make sure to use special packages for Python 2 instead + ;; of those automatically rewritten by package-with-python2. + (propagated-inputs + `(("python2-numpy" ,python2-numpy) + ,@(alist-delete "python-numpy" + (package-propagated-inputs numexpr))))))) + (define-public python-matplotlib (package (name "python-matplotlib") -- cgit v1.2.3 From fe4c37c244c0fb786c135e2da62306dc90df5638 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 16 Oct 2015 17:41:07 +0200 Subject: gnu: Add MOSAIK. * gnu/packages/bioinformatics.scm (mosaik): New variable. --- gnu/packages/bioinformatics.scm | 46 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 51e3df6d81..48edd56854 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -2149,6 +2149,52 @@ viewer.") (string-append bin "/samtools"))))) (delete 'patch-tests))))))) +(define-public mosaik + (let ((commit "5c25216d")) + (package + (name "mosaik") + (version "2.2.30") + (source (origin + ;; There are no release tarballs nor tags. + (method git-fetch) + (uri (git-reference + (url "https://github.com/wanpinglee/MOSAIK.git") + (commit commit))) + (file-name (string-append name "-" version)) + (sha256 + (base32 + "17gj3s07cm77r41z92awh0bim7w7q7fbn0sf5nkqmcm1vw052qgw")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; no tests + #:make-flags (list "CC=gcc") + #:phases + (modify-phases %standard-phases + (replace 'configure + (lambda _ (chdir "src") #t)) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((bin (string-append (assoc-ref outputs "out") + "/bin"))) + (mkdir-p bin) + (copy-recursively "../bin" bin) + #t)))))) + (inputs + `(("perl" ,perl) + ("zlib" ,zlib))) + (home-page "https://code.google.com/p/mosaik-aligner/") + (synopsis "Map nucleotide sequence reads to reference genomes") + (description + "MOSAIK is a program for mapping second and third-generation sequencing +reads to a reference genome. MOSAIK can align reads generated by all the +major sequencing technologies, including Illumina, Applied Biosystems SOLiD, +Roche 454, Ion Torrent and Pacific BioSciences SMRT.") + ;; MOSAIK is released under the GPLv2+ with the exception of third-party + ;; code released into the public domain: + ;; 1. fastlz by Ariya Hidayat - http://www.fastlz.org/ + ;; 2. MD5 implementation - RSA Data Security, RFC 1321 + (license (list license:gpl2+ license:public-domain))))) + (define-public ngs-sdk (package (name "ngs-sdk") -- cgit v1.2.3 From 1a6566724004af32c2016092d9bc6dfc2c28a933 Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Wed, 21 Oct 2015 16:29:54 -0500 Subject: gnu: conkeror: Upgrade to 1.0pre1.20150730. * gnu/packages/conkeror.scm (conkeror): Upgrade to 1.0pre1.20150730. [arguments]: Adjust #:make-flags and #:phases for new Makefile, and use modify-phases. --- gnu/packages/conkeror.scm | 54 ++++++++++++++++++++++------------------------- 1 file changed, 25 insertions(+), 29 deletions(-) diff --git a/gnu/packages/conkeror.scm b/gnu/packages/conkeror.scm index 51bb1a260a..d91fe9e78b 100644 --- a/gnu/packages/conkeror.scm +++ b/gnu/packages/conkeror.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 Cyrill Schenkel -;;; Copyright © 2014 Eric Bavier +;;; Copyright © 2014, 2015 Eric Bavier ;;; ;;; This file is part of GNU Guix. ;;; @@ -28,46 +28,42 @@ (define-public conkeror (package (name "conkeror") - (version "1.0pre1") + (version "1.0pre1.20150730") (source (origin (method url-fetch) (uri (string-append "http://repo.or.cz/w/conkeror.git/snapshot/" - "8a26fff5896a3360549e2adfbf06b1d57e909266" - ".tar.gz")) ; tag: debian-1.0--pre-1+git140616-1 + "a1f7e879b129df5cf14ea4ce80a9c1407380ed58" + ".tar.gz")) ; tag: debian-1.0--pre-1+git150730-1 (sha256 (base32 - "1cgjzi7g3g22zcx6bpfnid4i12sb45w6icmxdzjn8d3c0m8qsyp1")))) + "1q45hc30733gz3ca2ixvw0rzzcbi7rlay7gx7kvzjv17a030nyk0")))) (build-system gnu-build-system) (inputs `(("icecat" ,icecat))) (arguments `(#:tests? #f ;no tests - #:make-flags '("CC=gcc") + #:make-flags `("CC=gcc" + ,(string-append "PREFIX=" (assoc-ref %outputs "out"))) #:phases - (alist-delete - 'configure - (alist-replace - 'install - (lambda _ - (begin - (use-modules (guix build utils)) - (let* ((datadir (string-append %output "/share/conkeror")) - (bindir (string-append %output "/bin")) - (launcher (string-append bindir "/conkeror")) - (spawn (string-append bindir "/conkeror-spawn-helper"))) - (copy-recursively "." datadir) - (mkdir-p bindir) - (copy-file "conkeror-spawn-helper" spawn) - (call-with-output-file launcher - (lambda (p) - (format p "#!~a/bin/bash + (modify-phases %standard-phases + (delete 'configure) + (add-after + 'install 'install-app-launcher + (lambda* (#:key inputs outputs #:allow-other-keys) + ;; This overwrites the installed launcher, which execs xulrunner, + ;; with one that execs 'icecat --app' + (let* ((out (assoc-ref outputs "out")) + (datadir (string-append out "/share/conkeror")) + (launcher (string-append out "/bin/conkeror"))) + (call-with-output-file launcher + (lambda (p) + (format p "#!~a/bin/bash exec ~a/bin/icecat --app ~a \"$@\"~%" - (assoc-ref %build-inputs "bash") ;implicit input - (assoc-ref %build-inputs "icecat") - (string-append datadir - "/application.ini")))) - (chmod launcher #o555)))) - %standard-phases)))) + (assoc-ref inputs "bash") ;implicit input + (assoc-ref inputs "icecat") + (string-append datadir + "/application.ini")))) + (chmod launcher #o555))))))) (synopsis "Keyboard focused web browser with Emacs look and feel") (description "Conkeror is a highly-programmable web browser based on Mozilla XULRunner which is the base of all Mozilla products including Firefox. -- cgit v1.2.3 From 566fc7fa139218d216671135e03f3339dc76e610 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 22 Oct 2015 11:21:51 +0200 Subject: gnu: cmus: Add file-name property. * gnu/packages/music.scm (cmus): Add file-name, since the downloaded tar.gz only contains version number. --- gnu/packages/music.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 7970d17978..c693f0faf0 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -87,6 +87,7 @@ (uri (string-append "https://github.com/" name "/" name "/archive/v" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 "0raixgjavkm7hxppzsc5zqbfbh2bhjcmbiplhnsxsmyj8flafyc1")))) -- cgit v1.2.3 From ff9a5f7e97622058940260c89b75122daa64d4f5 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 22 Oct 2015 11:22:36 +0200 Subject: gnu: dosbox: Add file-name property. * gnu/packages/games.scm (dosbox): Add file-name property, since the package is built from an SVN checkout. --- gnu/packages/games.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 9d2058af43..9c44bbe3e0 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -1060,6 +1060,7 @@ next campaign.") (uri (svn-reference (url "http://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk/") (revision 3947))) + (file-name (string-append name "-" version "-checkout")) ;; Use SVN head, since the last release (2010) is incompatible ;; with GCC 4.8+ (see ;; ). -- cgit v1.2.3 From 5d47eab0242d6f89a6837123141acdae68745328 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 22 Oct 2015 13:12:07 +0300 Subject: gnu: Add pbzip2. * gnu/packages/compression.scm (pbzip2): New variable. --- gnu/packages/compression.scm | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm index 941844b870..0bb3919cee 100644 --- a/gnu/packages/compression.scm +++ b/gnu/packages/compression.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2015 Ricardo Wurmus ;;; Copyright © 2015 Leo Famulari ;;; Copyright © 2015 Jeff Mickey +;;; Copyright © 2015 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -225,6 +226,38 @@ decompression.") "See LICENSE in the distribution.")) (home-page "http://www.bzip.org/")))) +(define-public pbzip2 + (package + (name "pbzip2") + (version "1.1.12") + (source (origin + (method url-fetch) + (uri (string-append "https://launchpad.net/pbzip2/1.1/" version + "/+download/" name "-" version ".tar.gz")) + (sha256 + (base32 + "1vk6065dv3a47p86vmp8hv3n1ygd9hraz0gq89gvzlx7lmcb6fsp")))) + (build-system gnu-build-system) + (inputs + `(("bzip2", bzip2))) + (arguments + `(#:tests? #f ; no tests + #:phases (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key outputs #:allow-other-keys) + (substitute* "Makefile" + (("/usr") (assoc-ref outputs "out"))) + #t))))) + (home-page "http://compression.ca/pbzip2/") + (synopsis "Parallel bzip2 implementation") + (description + "Pbzip2 is a parallel implementation of the bzip2 block-sorting file +compressor that uses pthreads and achieves near-linear speedup on SMP machines. +The output of this version is fully compatible with bzip2 v1.0.2 (ie: anything +compressed with pbzip2 can be decompressed with bzip2).") + (license (license:non-copyleft "file://COPYING" + "See COPYING in the distribution.")))) + (define-public xz (package (name "xz") -- cgit v1.2.3 From 9bc08aa0cb65ef0689f06fed7b0859f9fe542ae1 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 12 Oct 2015 17:41:58 +0200 Subject: gnu: Add python-patsy. * gnu/packages/statistics.scm (python-patsy, python2-patsy): New variables. --- gnu/packages/statistics.scm | 58 ++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 57 insertions(+), 1 deletion(-) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index f854a44d96..14920944c5 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -24,6 +24,7 @@ #:use-module (guix utils) #:use-module (guix build-system gnu) #:use-module (guix build-system r) + #:use-module (guix build-system python) #:use-module (gnu packages) #:use-module (gnu packages compression) #:use-module (gnu packages gcc) @@ -35,11 +36,14 @@ #:use-module (gnu packages pcre) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages python) #:use-module (gnu packages readline) #:use-module (gnu packages texlive) #:use-module (gnu packages texinfo) #:use-module (gnu packages base) - #:use-module (gnu packages xorg)) + #:use-module (gnu packages xorg) + #:use-module (gnu packages zip) + #:use-module (srfi srfi-1)) (define-public r (package @@ -933,3 +937,55 @@ times.") large data (e.g. 100GB in RAM), fast ordered joins, fast add/modify/delete of columns by group, column listing and fast file reading.") (license license:gpl2+))) + +(define-public python-patsy + (package + (name "python-patsy") + (version "0.4.0") + (source (origin + (method url-fetch) + (uri (string-append "https://pypi.python.org/packages/source/" + "p/patsy/patsy-" version ".zip")) + (sha256 + (base32 + "1kbs996xc2haxalmhd19rr1wh5fa4gbbxf81czkf5w4kam7h7wz4")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check (lambda _ (zero? (system* "nosetests" "-v")))) + (add-after 'unpack 'prevent-generation-of-egg-archive + (lambda _ + (substitute* "setup.py" + (("from setuptools import setup") + "from distutils.core import setup")) + #t))))) + (propagated-inputs + `(("python-numpy" ,python-numpy) + ("python-scipy" ,python-scipy) + ("python-six" ,python-six))) + (native-inputs + `(("python-nose" ,python-nose) + ("unzip" ,unzip))) + (home-page "https://github.com/pydata/patsy") + (synopsis "Describe statistical models and build design matrices") + (description + "Patsy is a Python package for describing statistical models and for +building design matrices.") + ;; The majority of the code is distributed under BSD-2. The module + ;; patsy.compat contains code derived from the Python standard library, + ;; and is covered by the PSFL. + (license (list license:bsd-2 license:psfl)))) + +(define-public python2-patsy + (let ((patsy (package-with-python2 python-patsy))) + (package (inherit patsy) + (native-inputs + `(("python2-setuptools" ,python2-setuptools) + ,@(package-native-inputs patsy))) + (propagated-inputs + `(("python2-numpy" ,python2-numpy) + ("python2-scipy" ,python2-scipy) + ,@(alist-delete "python-numpy" + (alist-delete "python-scipy" + (package-propagated-inputs patsy)))))))) -- cgit v1.2.3 From 37fdba7e0ba3d3bd8b3e58f55fa982aec05dc163 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 13 Oct 2015 13:28:58 +0200 Subject: gnu: Add python-statsmodels. * gnu/packages/statistics.scm (python-statsmodels, python2-statsmodels): New variables. --- gnu/packages/statistics.scm | 64 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 14920944c5..0c0464c2b9 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -989,3 +989,67 @@ building design matrices.") ,@(alist-delete "python-numpy" (alist-delete "python-scipy" (package-propagated-inputs patsy)))))))) + +(define-public python-statsmodels + (package + (name "python-statsmodels") + (version "0.6.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://pypi.python.org/packages/source/" + "s/statsmodels/statsmodels-" version ".tar.gz")) + (sha256 + (base32 + "0xn67sqr0cc1lmlhzm71352hrb4hw7g318p5ff5q97pc98vl8kmy")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + ;; tests must be run after installation + (delete 'check) + (add-after 'unpack 'set-matplotlib-backend-to-agg + (lambda _ + ;; Set the matplotlib backend to Agg to avoid problems using the + ;; GTK backend without a display. + (substitute* (find-files "statsmodels/graphics/tests" "\\.py") + (("import matplotlib\\.pyplot as plt" line) + (string-append "import matplotlib;matplotlib.use('Agg');" + line))) + #t)) + (add-after 'install 'check + (lambda _ + (with-directory-excursion "/tmp" + (zero? (system* "nosetests" + "--stop" + "-v" "statsmodels")))))))) + (propagated-inputs + `(("python-numpy" ,python-numpy) + ("python-scipy" ,python-scipy) + ("python-pandas" ,python-pandas) + ("python-patsy" ,python-patsy) + ("python-matplotlib" ,python-matplotlib))) + (native-inputs + `(("python-cython" ,python-cython) + ("python-nose" ,python-nose) + ("python-sphinx" ,python-sphinx))) + (home-page "http://statsmodels.sourceforge.net/") + (synopsis "Statistical modeling and econometrics in Python") + (description + "Statsmodels is a Python package that provides a complement to scipy for +statistical computations including descriptive statistics and estimation and +inference for statistical models.") + (license license:bsd-3))) + +(define-public python2-statsmodels + (let ((stats (package-with-python2 python-statsmodels))) + (package (inherit stats) + (propagated-inputs + `(("python2-numpy" ,python2-numpy) + ("python2-scipy" ,python2-scipy) + ("python2-pandas" ,python2-pandas) + ("python2-patsy" ,python2-patsy) + ("python2-matplotlib" ,python2-matplotlib))) + (native-inputs + `(("python2-setuptools" ,python2-setuptools) + ,@(package-native-inputs stats)))))) -- cgit v1.2.3 From dddb11b506ee9c7feca26be852d9995faf587099 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Thu, 22 Oct 2015 14:30:01 -0400 Subject: gnu: ntp: Update to 4.2.8p4. * gnu/packages/ntp.scm (ntp): Update to 4.2.8p4. --- gnu/packages/ntp.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/ntp.scm b/gnu/packages/ntp.scm index a53d98efdd..9e6db67e3e 100644 --- a/gnu/packages/ntp.scm +++ b/gnu/packages/ntp.scm @@ -35,7 +35,7 @@ (define-public ntp (package (name "ntp") - (version "4.2.8p3") + (version "4.2.8p4") (source (origin (method url-fetch) (uri (string-append @@ -44,7 +44,7 @@ "/ntp-" version ".tar.gz")) (sha256 (base32 - "13zkzcvjm5kbxl4xbcmaq07slplhmpkgahzcqnqlba3cxpra9341")) + "1fgxbhv0wyiivi6kh5zpzrd0yqmc48z7d3zmjspw9lj84mbn2s8d")) (modules '((guix build utils))) (snippet '(begin -- cgit v1.2.3 From c46c931ecfe7fd4a5cbd979263d28d3f1e02bcca Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Thu, 22 Oct 2015 14:54:43 -0400 Subject: gnu: unzip: Reorganize security fixes for improved clarity. * gnu/packages/patches/unzip-fix-overflows-and-infloop.patch: Delete file. Its contents are now split into the following new files: * gnu/packages/patches/unzip-CVE-2015-7696.patch, gnu/packages/patches/unzip-CVE-2015-7697.patch, gnu/packages/patches/unzip-overflow-on-invalid-input.patch: New files. * gnu-system.am (dist_patch_DATA): Adjust accordingly. * gnu/packages/zip.scm (unzip)[source]: Adjust patches accordingly. --- gnu-system.am | 4 +- gnu/packages/patches/unzip-CVE-2015-7696.patch | 35 +++++++ gnu/packages/patches/unzip-CVE-2015-7697.patch | 28 ++++++ .../patches/unzip-fix-overflows-and-infloop.patch | 108 --------------------- .../patches/unzip-overflow-on-invalid-input.patch | 40 ++++++++ gnu/packages/zip.scm | 4 +- 6 files changed, 109 insertions(+), 110 deletions(-) create mode 100644 gnu/packages/patches/unzip-CVE-2015-7696.patch create mode 100644 gnu/packages/patches/unzip-CVE-2015-7697.patch delete mode 100644 gnu/packages/patches/unzip-fix-overflows-and-infloop.patch create mode 100644 gnu/packages/patches/unzip-overflow-on-invalid-input.patch diff --git a/gnu-system.am b/gnu-system.am index e62fe18c97..c4810661a2 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -647,9 +647,11 @@ dist_patch_DATA = \ gnu/packages/patches/unzip-CVE-2014-8140.patch \ gnu/packages/patches/unzip-CVE-2014-8141.patch \ gnu/packages/patches/unzip-CVE-2014-9636.patch \ + gnu/packages/patches/unzip-CVE-2015-7696.patch \ + gnu/packages/patches/unzip-CVE-2015-7697.patch \ gnu/packages/patches/unzip-allow-greater-hostver-values.patch \ gnu/packages/patches/unzip-attribs-overflow.patch \ - gnu/packages/patches/unzip-fix-overflows-and-infloop.patch \ + gnu/packages/patches/unzip-overflow-on-invalid-input.patch \ gnu/packages/patches/unzip-format-secure.patch \ gnu/packages/patches/unzip-initialize-symlink-flag.patch \ gnu/packages/patches/unzip-overflow-long-fsize.patch \ diff --git a/gnu/packages/patches/unzip-CVE-2015-7696.patch b/gnu/packages/patches/unzip-CVE-2015-7696.patch new file mode 100644 index 0000000000..d6a4072673 --- /dev/null +++ b/gnu/packages/patches/unzip-CVE-2015-7696.patch @@ -0,0 +1,35 @@ +Copied from Debian. + +From: Petr Stodulka +Date: Mon, 14 Sep 2015 18:23:17 +0200 +Subject: Upstream fix for heap overflow +Bug-Debian: https://bugs.debian.org/802162 +Bug-RedHat: https://bugzilla.redhat.com/show_bug.cgi?id=1260944 +Origin: https://bugzilla.redhat.com/attachment.cgi?id=1073002 +Forwarded: yes + +--- + crypt.c | 12 +++++++++++- + 1 file changed, 11 insertions(+), 1 deletion(-) + +--- a/crypt.c ++++ b/crypt.c +@@ -465,7 +465,17 @@ + GLOBAL(pInfo->encrypted) = FALSE; + defer_leftover_input(__G); + for (n = 0; n < RAND_HEAD_LEN; n++) { +- b = NEXTBYTE; ++ /* 2012-11-23 SMS. (OUSPG report.) ++ * Quit early if compressed size < HEAD_LEN. The resulting ++ * error message ("unable to get password") could be improved, ++ * but it's better than trying to read nonexistent data, and ++ * then continuing with a negative G.csize. (See ++ * fileio.c:readbyte()). ++ */ ++ if ((b = NEXTBYTE) == (ush)EOF) ++ { ++ return PK_ERR; ++ } + h[n] = (uch)b; + Trace((stdout, " (%02x)", h[n])); + } diff --git a/gnu/packages/patches/unzip-CVE-2015-7697.patch b/gnu/packages/patches/unzip-CVE-2015-7697.patch new file mode 100644 index 0000000000..d688b42495 --- /dev/null +++ b/gnu/packages/patches/unzip-CVE-2015-7697.patch @@ -0,0 +1,28 @@ +Copied from Debian. + +From: Kamil Dudka +Date: Mon, 14 Sep 2015 18:24:56 +0200 +Subject: fix infinite loop when extracting empty bzip2 data +Bug-Debian: https://bugs.debian.org/802160 +Bug-RedHat: https://bugzilla.redhat.com/show_bug.cgi?id=1260944 +Origin: other, https://bugzilla.redhat.com/attachment.cgi?id=1073339 + +--- + extract.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +--- a/extract.c ++++ b/extract.c +@@ -2728,6 +2728,12 @@ + int repeated_buf_err; + bz_stream bstrm; + ++ if (G.incnt <= 0 && G.csize <= 0L) { ++ /* avoid an infinite loop */ ++ Trace((stderr, "UZbunzip2() got empty input\n")); ++ return 2; ++ } ++ + #if (defined(DLL) && !defined(NO_SLIDE_REDIR)) + if (G.redirect_slide) + wsize = G.redirect_size, redirSlide = G.redirect_buffer; diff --git a/gnu/packages/patches/unzip-fix-overflows-and-infloop.patch b/gnu/packages/patches/unzip-fix-overflows-and-infloop.patch deleted file mode 100644 index 33498db95e..0000000000 --- a/gnu/packages/patches/unzip-fix-overflows-and-infloop.patch +++ /dev/null @@ -1,108 +0,0 @@ -Copied from Fedora. - -http://pkgs.fedoraproject.org/cgit/unzip.git/tree/unzip-6.0-heap-overflow-infloop.patch?id=d18f821e - -From bdd4a0cecd745cb4825e4508b5bdf2579731086a Mon Sep 17 00:00:00 2001 -From: Petr Stodulka -Date: Mon, 14 Sep 2015 18:23:17 +0200 -Subject: [PATCH 1/3] upstream fix for heap overflow - -https://bugzilla.redhat.com/attachment.cgi?id=1073002 ---- - crypt.c | 12 +++++++++++- - 1 file changed, 11 insertions(+), 1 deletion(-) - -diff --git a/crypt.c b/crypt.c -index 784e411..a8975f2 100644 ---- a/crypt.c -+++ b/crypt.c -@@ -465,7 +465,17 @@ int decrypt(__G__ passwrd) - GLOBAL(pInfo->encrypted) = FALSE; - defer_leftover_input(__G); - for (n = 0; n < RAND_HEAD_LEN; n++) { -- b = NEXTBYTE; -+ /* 2012-11-23 SMS. (OUSPG report.) -+ * Quit early if compressed size < HEAD_LEN. The resulting -+ * error message ("unable to get password") could be improved, -+ * but it's better than trying to read nonexistent data, and -+ * then continuing with a negative G.csize. (See -+ * fileio.c:readbyte()). -+ */ -+ if ((b = NEXTBYTE) == (ush)EOF) -+ { -+ return PK_ERR; -+ } - h[n] = (uch)b; - Trace((stdout, " (%02x)", h[n])); - } --- -2.4.6 - - -From 4b48844661ff9569f2ecf582a387d46a5775b5d8 Mon Sep 17 00:00:00 2001 -From: Kamil Dudka -Date: Mon, 14 Sep 2015 18:24:56 +0200 -Subject: [PATCH 2/3] fix infinite loop when extracting empty bzip2 data - -Bug: https://sourceforge.net/p/infozip/patches/23/ ---- - extract.c | 6 ++++++ - 1 file changed, 6 insertions(+) - -diff --git a/extract.c b/extract.c -index 7134bfe..29db027 100644 ---- a/extract.c -+++ b/extract.c -@@ -2733,6 +2733,12 @@ __GDEF - int repeated_buf_err; - bz_stream bstrm; - -+ if (G.incnt <= 0 && G.csize <= 0L) { -+ /* avoid an infinite loop */ -+ Trace((stderr, "UZbunzip2() got empty input\n")); -+ return 2; -+ } -+ - #if (defined(DLL) && !defined(NO_SLIDE_REDIR)) - if (G.redirect_slide) - wsize = G.redirect_size, redirSlide = G.redirect_buffer; --- -2.4.6 - - -From bd150334fb4084f5555a6be26b015a0671cb5b74 Mon Sep 17 00:00:00 2001 -From: Kamil Dudka -Date: Tue, 22 Sep 2015 18:52:23 +0200 -Subject: [PATCH 3/3] extract: prevent unsigned overflow on invalid input - -Suggested-by: Stefan Cornelius ---- - extract.c | 11 ++++++++++- - 1 file changed, 10 insertions(+), 1 deletion(-) - -diff --git a/extract.c b/extract.c -index 29db027..b9ae667 100644 ---- a/extract.c -+++ b/extract.c -@@ -1257,8 +1257,17 @@ static int extract_or_test_entrylist(__G__ numchunk, - if (G.lrec.compression_method == STORED) { - zusz_t csiz_decrypted = G.lrec.csize; - -- if (G.pInfo->encrypted) -+ if (G.pInfo->encrypted) { -+ if (csiz_decrypted <= 12) { -+ /* handle the error now to prevent unsigned overflow */ -+ Info(slide, 0x401, ((char *)slide, -+ LoadFarStringSmall(ErrUnzipNoFile), -+ LoadFarString(InvalidComprData), -+ LoadFarStringSmall2(Inflate))); -+ return PK_ERR; -+ } - csiz_decrypted -= 12; -+ } - if (G.lrec.ucsize != csiz_decrypted) { - Info(slide, 0x401, ((char *)slide, - LoadFarStringSmall2(WrnStorUCSizCSizDiff), --- -2.5.2 - diff --git a/gnu/packages/patches/unzip-overflow-on-invalid-input.patch b/gnu/packages/patches/unzip-overflow-on-invalid-input.patch new file mode 100644 index 0000000000..013002a88c --- /dev/null +++ b/gnu/packages/patches/unzip-overflow-on-invalid-input.patch @@ -0,0 +1,40 @@ +Extracted from a patch in Fedora. + +http://pkgs.fedoraproject.org/cgit/unzip.git/tree/unzip-6.0-heap-overflow-infloop.patch?id=d18f821e + +From bd150334fb4084f5555a6be26b015a0671cb5b74 Mon Sep 17 00:00:00 2001 +From: Kamil Dudka +Date: Tue, 22 Sep 2015 18:52:23 +0200 +Subject: [PATCH 3/3] extract: prevent unsigned overflow on invalid input + +Suggested-by: Stefan Cornelius +--- + extract.c | 11 ++++++++++- + 1 file changed, 10 insertions(+), 1 deletion(-) + +diff --git a/extract.c b/extract.c +index 29db027..b9ae667 100644 +--- a/extract.c ++++ b/extract.c +@@ -1257,8 +1257,17 @@ static int extract_or_test_entrylist(__G__ numchunk, + if (G.lrec.compression_method == STORED) { + zusz_t csiz_decrypted = G.lrec.csize; + +- if (G.pInfo->encrypted) ++ if (G.pInfo->encrypted) { ++ if (csiz_decrypted <= 12) { ++ /* handle the error now to prevent unsigned overflow */ ++ Info(slide, 0x401, ((char *)slide, ++ LoadFarStringSmall(ErrUnzipNoFile), ++ LoadFarString(InvalidComprData), ++ LoadFarStringSmall2(Inflate))); ++ return PK_ERR; ++ } + csiz_decrypted -= 12; ++ } + if (G.lrec.ucsize != csiz_decrypted) { + Info(slide, 0x401, ((char *)slide, + LoadFarStringSmall2(WrnStorUCSizCSizDiff), +-- +2.5.2 + diff --git a/gnu/packages/zip.scm b/gnu/packages/zip.scm index 83c452778c..b7bed0e86d 100644 --- a/gnu/packages/zip.scm +++ b/gnu/packages/zip.scm @@ -85,11 +85,13 @@ Compression ratios of 2:1 to 3:1 are common for text files.") "unzip-CVE-2014-8140.patch" "unzip-CVE-2014-8141.patch" "unzip-CVE-2014-9636.patch" + "unzip-CVE-2015-7696.patch" + "unzip-CVE-2015-7697.patch" "unzip-allow-greater-hostver-values.patch" "unzip-initialize-symlink-flag.patch" "unzip-remove-build-date.patch" "unzip-attribs-overflow.patch" - "unzip-fix-overflows-and-infloop.patch" + "unzip-overflow-on-invalid-input.patch" "unzip-format-secure.patch" "unzip-overflow-long-fsize.patch"))))) (build-system gnu-build-system) -- cgit v1.2.3 From 2442e69e4182b592757dad473c8c7b1c48ca8284 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Thu, 22 Oct 2015 17:10:41 -0400 Subject: Revert "gnu: unzip: Reorganize security fixes for improved clarity." This reverts commit c46c931ecfe7fd4a5cbd979263d28d3f1e02bcca. --- gnu-system.am | 4 +- gnu/packages/patches/unzip-CVE-2015-7696.patch | 35 ------- gnu/packages/patches/unzip-CVE-2015-7697.patch | 28 ------ .../patches/unzip-fix-overflows-and-infloop.patch | 108 +++++++++++++++++++++ .../patches/unzip-overflow-on-invalid-input.patch | 40 -------- gnu/packages/zip.scm | 4 +- 6 files changed, 110 insertions(+), 109 deletions(-) delete mode 100644 gnu/packages/patches/unzip-CVE-2015-7696.patch delete mode 100644 gnu/packages/patches/unzip-CVE-2015-7697.patch create mode 100644 gnu/packages/patches/unzip-fix-overflows-and-infloop.patch delete mode 100644 gnu/packages/patches/unzip-overflow-on-invalid-input.patch diff --git a/gnu-system.am b/gnu-system.am index c4810661a2..e62fe18c97 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -647,11 +647,9 @@ dist_patch_DATA = \ gnu/packages/patches/unzip-CVE-2014-8140.patch \ gnu/packages/patches/unzip-CVE-2014-8141.patch \ gnu/packages/patches/unzip-CVE-2014-9636.patch \ - gnu/packages/patches/unzip-CVE-2015-7696.patch \ - gnu/packages/patches/unzip-CVE-2015-7697.patch \ gnu/packages/patches/unzip-allow-greater-hostver-values.patch \ gnu/packages/patches/unzip-attribs-overflow.patch \ - gnu/packages/patches/unzip-overflow-on-invalid-input.patch \ + gnu/packages/patches/unzip-fix-overflows-and-infloop.patch \ gnu/packages/patches/unzip-format-secure.patch \ gnu/packages/patches/unzip-initialize-symlink-flag.patch \ gnu/packages/patches/unzip-overflow-long-fsize.patch \ diff --git a/gnu/packages/patches/unzip-CVE-2015-7696.patch b/gnu/packages/patches/unzip-CVE-2015-7696.patch deleted file mode 100644 index d6a4072673..0000000000 --- a/gnu/packages/patches/unzip-CVE-2015-7696.patch +++ /dev/null @@ -1,35 +0,0 @@ -Copied from Debian. - -From: Petr Stodulka -Date: Mon, 14 Sep 2015 18:23:17 +0200 -Subject: Upstream fix for heap overflow -Bug-Debian: https://bugs.debian.org/802162 -Bug-RedHat: https://bugzilla.redhat.com/show_bug.cgi?id=1260944 -Origin: https://bugzilla.redhat.com/attachment.cgi?id=1073002 -Forwarded: yes - ---- - crypt.c | 12 +++++++++++- - 1 file changed, 11 insertions(+), 1 deletion(-) - ---- a/crypt.c -+++ b/crypt.c -@@ -465,7 +465,17 @@ - GLOBAL(pInfo->encrypted) = FALSE; - defer_leftover_input(__G); - for (n = 0; n < RAND_HEAD_LEN; n++) { -- b = NEXTBYTE; -+ /* 2012-11-23 SMS. (OUSPG report.) -+ * Quit early if compressed size < HEAD_LEN. The resulting -+ * error message ("unable to get password") could be improved, -+ * but it's better than trying to read nonexistent data, and -+ * then continuing with a negative G.csize. (See -+ * fileio.c:readbyte()). -+ */ -+ if ((b = NEXTBYTE) == (ush)EOF) -+ { -+ return PK_ERR; -+ } - h[n] = (uch)b; - Trace((stdout, " (%02x)", h[n])); - } diff --git a/gnu/packages/patches/unzip-CVE-2015-7697.patch b/gnu/packages/patches/unzip-CVE-2015-7697.patch deleted file mode 100644 index d688b42495..0000000000 --- a/gnu/packages/patches/unzip-CVE-2015-7697.patch +++ /dev/null @@ -1,28 +0,0 @@ -Copied from Debian. - -From: Kamil Dudka -Date: Mon, 14 Sep 2015 18:24:56 +0200 -Subject: fix infinite loop when extracting empty bzip2 data -Bug-Debian: https://bugs.debian.org/802160 -Bug-RedHat: https://bugzilla.redhat.com/show_bug.cgi?id=1260944 -Origin: other, https://bugzilla.redhat.com/attachment.cgi?id=1073339 - ---- - extract.c | 6 ++++++ - 1 file changed, 6 insertions(+) - ---- a/extract.c -+++ b/extract.c -@@ -2728,6 +2728,12 @@ - int repeated_buf_err; - bz_stream bstrm; - -+ if (G.incnt <= 0 && G.csize <= 0L) { -+ /* avoid an infinite loop */ -+ Trace((stderr, "UZbunzip2() got empty input\n")); -+ return 2; -+ } -+ - #if (defined(DLL) && !defined(NO_SLIDE_REDIR)) - if (G.redirect_slide) - wsize = G.redirect_size, redirSlide = G.redirect_buffer; diff --git a/gnu/packages/patches/unzip-fix-overflows-and-infloop.patch b/gnu/packages/patches/unzip-fix-overflows-and-infloop.patch new file mode 100644 index 0000000000..33498db95e --- /dev/null +++ b/gnu/packages/patches/unzip-fix-overflows-and-infloop.patch @@ -0,0 +1,108 @@ +Copied from Fedora. + +http://pkgs.fedoraproject.org/cgit/unzip.git/tree/unzip-6.0-heap-overflow-infloop.patch?id=d18f821e + +From bdd4a0cecd745cb4825e4508b5bdf2579731086a Mon Sep 17 00:00:00 2001 +From: Petr Stodulka +Date: Mon, 14 Sep 2015 18:23:17 +0200 +Subject: [PATCH 1/3] upstream fix for heap overflow + +https://bugzilla.redhat.com/attachment.cgi?id=1073002 +--- + crypt.c | 12 +++++++++++- + 1 file changed, 11 insertions(+), 1 deletion(-) + +diff --git a/crypt.c b/crypt.c +index 784e411..a8975f2 100644 +--- a/crypt.c ++++ b/crypt.c +@@ -465,7 +465,17 @@ int decrypt(__G__ passwrd) + GLOBAL(pInfo->encrypted) = FALSE; + defer_leftover_input(__G); + for (n = 0; n < RAND_HEAD_LEN; n++) { +- b = NEXTBYTE; ++ /* 2012-11-23 SMS. (OUSPG report.) ++ * Quit early if compressed size < HEAD_LEN. The resulting ++ * error message ("unable to get password") could be improved, ++ * but it's better than trying to read nonexistent data, and ++ * then continuing with a negative G.csize. (See ++ * fileio.c:readbyte()). ++ */ ++ if ((b = NEXTBYTE) == (ush)EOF) ++ { ++ return PK_ERR; ++ } + h[n] = (uch)b; + Trace((stdout, " (%02x)", h[n])); + } +-- +2.4.6 + + +From 4b48844661ff9569f2ecf582a387d46a5775b5d8 Mon Sep 17 00:00:00 2001 +From: Kamil Dudka +Date: Mon, 14 Sep 2015 18:24:56 +0200 +Subject: [PATCH 2/3] fix infinite loop when extracting empty bzip2 data + +Bug: https://sourceforge.net/p/infozip/patches/23/ +--- + extract.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/extract.c b/extract.c +index 7134bfe..29db027 100644 +--- a/extract.c ++++ b/extract.c +@@ -2733,6 +2733,12 @@ __GDEF + int repeated_buf_err; + bz_stream bstrm; + ++ if (G.incnt <= 0 && G.csize <= 0L) { ++ /* avoid an infinite loop */ ++ Trace((stderr, "UZbunzip2() got empty input\n")); ++ return 2; ++ } ++ + #if (defined(DLL) && !defined(NO_SLIDE_REDIR)) + if (G.redirect_slide) + wsize = G.redirect_size, redirSlide = G.redirect_buffer; +-- +2.4.6 + + +From bd150334fb4084f5555a6be26b015a0671cb5b74 Mon Sep 17 00:00:00 2001 +From: Kamil Dudka +Date: Tue, 22 Sep 2015 18:52:23 +0200 +Subject: [PATCH 3/3] extract: prevent unsigned overflow on invalid input + +Suggested-by: Stefan Cornelius +--- + extract.c | 11 ++++++++++- + 1 file changed, 10 insertions(+), 1 deletion(-) + +diff --git a/extract.c b/extract.c +index 29db027..b9ae667 100644 +--- a/extract.c ++++ b/extract.c +@@ -1257,8 +1257,17 @@ static int extract_or_test_entrylist(__G__ numchunk, + if (G.lrec.compression_method == STORED) { + zusz_t csiz_decrypted = G.lrec.csize; + +- if (G.pInfo->encrypted) ++ if (G.pInfo->encrypted) { ++ if (csiz_decrypted <= 12) { ++ /* handle the error now to prevent unsigned overflow */ ++ Info(slide, 0x401, ((char *)slide, ++ LoadFarStringSmall(ErrUnzipNoFile), ++ LoadFarString(InvalidComprData), ++ LoadFarStringSmall2(Inflate))); ++ return PK_ERR; ++ } + csiz_decrypted -= 12; ++ } + if (G.lrec.ucsize != csiz_decrypted) { + Info(slide, 0x401, ((char *)slide, + LoadFarStringSmall2(WrnStorUCSizCSizDiff), +-- +2.5.2 + diff --git a/gnu/packages/patches/unzip-overflow-on-invalid-input.patch b/gnu/packages/patches/unzip-overflow-on-invalid-input.patch deleted file mode 100644 index 013002a88c..0000000000 --- a/gnu/packages/patches/unzip-overflow-on-invalid-input.patch +++ /dev/null @@ -1,40 +0,0 @@ -Extracted from a patch in Fedora. - -http://pkgs.fedoraproject.org/cgit/unzip.git/tree/unzip-6.0-heap-overflow-infloop.patch?id=d18f821e - -From bd150334fb4084f5555a6be26b015a0671cb5b74 Mon Sep 17 00:00:00 2001 -From: Kamil Dudka -Date: Tue, 22 Sep 2015 18:52:23 +0200 -Subject: [PATCH 3/3] extract: prevent unsigned overflow on invalid input - -Suggested-by: Stefan Cornelius ---- - extract.c | 11 ++++++++++- - 1 file changed, 10 insertions(+), 1 deletion(-) - -diff --git a/extract.c b/extract.c -index 29db027..b9ae667 100644 ---- a/extract.c -+++ b/extract.c -@@ -1257,8 +1257,17 @@ static int extract_or_test_entrylist(__G__ numchunk, - if (G.lrec.compression_method == STORED) { - zusz_t csiz_decrypted = G.lrec.csize; - -- if (G.pInfo->encrypted) -+ if (G.pInfo->encrypted) { -+ if (csiz_decrypted <= 12) { -+ /* handle the error now to prevent unsigned overflow */ -+ Info(slide, 0x401, ((char *)slide, -+ LoadFarStringSmall(ErrUnzipNoFile), -+ LoadFarString(InvalidComprData), -+ LoadFarStringSmall2(Inflate))); -+ return PK_ERR; -+ } - csiz_decrypted -= 12; -+ } - if (G.lrec.ucsize != csiz_decrypted) { - Info(slide, 0x401, ((char *)slide, - LoadFarStringSmall2(WrnStorUCSizCSizDiff), --- -2.5.2 - diff --git a/gnu/packages/zip.scm b/gnu/packages/zip.scm index b7bed0e86d..83c452778c 100644 --- a/gnu/packages/zip.scm +++ b/gnu/packages/zip.scm @@ -85,13 +85,11 @@ Compression ratios of 2:1 to 3:1 are common for text files.") "unzip-CVE-2014-8140.patch" "unzip-CVE-2014-8141.patch" "unzip-CVE-2014-9636.patch" - "unzip-CVE-2015-7696.patch" - "unzip-CVE-2015-7697.patch" "unzip-allow-greater-hostver-values.patch" "unzip-initialize-symlink-flag.patch" "unzip-remove-build-date.patch" "unzip-attribs-overflow.patch" - "unzip-overflow-on-invalid-input.patch" + "unzip-fix-overflows-and-infloop.patch" "unzip-format-secure.patch" "unzip-overflow-long-fsize.patch"))))) (build-system gnu-build-system) -- cgit v1.2.3 From c595cd47d8d60688f8eb56f25baab2854880e43c Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Thu, 22 Oct 2015 17:41:39 -0500 Subject: gnu: evilwm: Add patch for lost-focus bug. * gnu/packages/patches/evilwm-lost-focus-bug.patch: New patch. * gnu-system.am (dist_patch_DATA): Add it. * gnu/packages/wm.scm (evilwm)[source]: Use it. --- gnu-system.am | 1 + gnu/packages/patches/evilwm-lost-focus-bug.patch | 18 ++++++++++++++++++ gnu/packages/wm.scm | 4 +++- 3 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/evilwm-lost-focus-bug.patch diff --git a/gnu-system.am b/gnu-system.am index e62fe18c97..3e976e9fb7 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -438,6 +438,7 @@ dist_patch_DATA = \ gnu/packages/patches/elfutils-tests-ptrace.patch \ gnu/packages/patches/emacs-exec-path.patch \ gnu/packages/patches/eudev-rules-directory.patch \ + gnu/packages/patches/evilwm-lost-focus-bug.patch \ gnu/packages/patches/expat-CVE-2015-1283.patch \ gnu/packages/patches/fastcap-mulGlobal.patch \ gnu/packages/patches/fastcap-mulSetup.patch \ diff --git a/gnu/packages/patches/evilwm-lost-focus-bug.patch b/gnu/packages/patches/evilwm-lost-focus-bug.patch new file mode 100644 index 0000000000..af24af8fe9 --- /dev/null +++ b/gnu/packages/patches/evilwm-lost-focus-bug.patch @@ -0,0 +1,18 @@ +evilwm may sometimes lose focus after closing a window. This means that +evilwm stops responding to keyboard shortcuts, and if no other window is open +which the mouse can be moved over to regain focus evilwm becomes unusable and +has to be restarted. + +Patch derived from discussion at +https://wiki.archlinux.org/index.php/Evilwm#Lost_focus_bug_fix + +--- evilwm-1.1.1/client.c ++++ evilwm-1.1.1/client.c +@@ -172,6 +172,7 @@ + * _NET_WM_STATE) */ + if (c->remove) { + LOG_DEBUG("setting WithdrawnState\n"); ++ XSetInputFocus(dpy, PointerRoot, RevertToPointerRoot, CurrentTime); + set_wm_state(c, WithdrawnState); + ewmh_withdraw_client(c); + } else { diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm index 7f614e18c8..58d7add5e0 100644 --- a/gnu/packages/wm.scm +++ b/gnu/packages/wm.scm @@ -22,6 +22,7 @@ (define-module (gnu packages wm) #:use-module (guix licenses) #:use-module (guix packages) + #:use-module (gnu packages) #:use-module (gnu packages linux) #:use-module (guix build-system gnu) #:use-module (guix build-system haskell) @@ -268,7 +269,8 @@ tiling window manager for X.") version ".tar.gz")) (sha256 (base32 - "0ak0yajzk3v4dg5wmaghv6acf7v02a4iw8qxmq5yw5ard8lrqn3r")))) + "0ak0yajzk3v4dg5wmaghv6acf7v02a4iw8qxmq5yw5ard8lrqn3r")) + (patches (map search-patch '("evilwm-lost-focus-bug.patch"))))) (build-system gnu-build-system) (inputs `(("libx11" ,libx11) -- cgit v1.2.3 From 21b2ec4d3a17e7b7077cef45df5f0e92cbf7002c Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 22 Oct 2015 20:17:12 +0300 Subject: gnu: pbzip2: Various fixes. * gnu/packages/compression.scm (pbzip)[uri]: Replace hardcoded version with variable. [arguments]: Remove configure phase. Add make flag. --- gnu/packages/compression.scm | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm index 0bb3919cee..a9e942efd5 100644 --- a/gnu/packages/compression.scm +++ b/gnu/packages/compression.scm @@ -26,6 +26,7 @@ (define-module (gnu packages compression) #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix utils) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix git-download) @@ -232,8 +233,9 @@ decompression.") (version "1.1.12") (source (origin (method url-fetch) - (uri (string-append "https://launchpad.net/pbzip2/1.1/" version - "/+download/" name "-" version ".tar.gz")) + (uri (string-append "https://launchpad.net/pbzip2/" + (version-major+minor version) "/" version + "/+download/" name "-" version ".tar.gz")) (sha256 (base32 "1vk6065dv3a47p86vmp8hv3n1ygd9hraz0gq89gvzlx7lmcb6fsp")))) @@ -243,20 +245,17 @@ decompression.") (arguments `(#:tests? #f ; no tests #:phases (modify-phases %standard-phases - (replace 'configure - (lambda* (#:key outputs #:allow-other-keys) - (substitute* "Makefile" - (("/usr") (assoc-ref outputs "out"))) - #t))))) + (delete 'configure)) + #:make-flags (list (string-append "PREFIX=" %output)))) (home-page "http://compression.ca/pbzip2/") (synopsis "Parallel bzip2 implementation") (description "Pbzip2 is a parallel implementation of the bzip2 block-sorting file compressor that uses pthreads and achieves near-linear speedup on SMP machines. -The output of this version is fully compatible with bzip2 v1.0.2 (ie: anything +The output of this version is fully compatible with bzip2 v1.0.2 (i.e. anything compressed with pbzip2 can be decompressed with bzip2).") (license (license:non-copyleft "file://COPYING" - "See COPYING in the distribution.")))) + "See COPYING in the distribution.")))) (define-public xz (package -- cgit v1.2.3 From fd74cc3c72fca3b6526e95ac5551c963382f60d9 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 20 Oct 2015 16:50:22 +0300 Subject: gnu: mplayer: Update to 1.2. * gnu/packages/video.scm (mplayer): Update to 1.2. [inputs]: Add previously bundled ffmpeg, libdvdcss, libdvdnav. [arguments]: Disable bundled ffmeg. --- gnu/packages/video.scm | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 013fef9742..e3e67becf5 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2014, 2015 David Thompson ;;; Copyright © 2014, 2015 Mark H Weaver ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer +;;; Copyright © 2015 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -584,7 +585,7 @@ treaming protocols.") (define-public mplayer (package (name "mplayer") - (version "1.1.1") + (version "1.2") (source (origin (method url-fetch) (uri (string-append @@ -592,7 +593,7 @@ treaming protocols.") version ".tar.xz")) (sha256 (base32 - "0xlcg7rszrwmw29wqr0plsw5d1rq0hb7vjsq7bmmfsly2z1wg3yf")))) + "1dp2lbxyhgjr8sn91kf6xw3w6d7dsgq08v4dgrq20afz1bqzdrzz")))) (build-system gnu-build-system) ;; FIXME: Add additional inputs once available. (native-inputs @@ -601,8 +602,11 @@ treaming protocols.") `(("alsa-lib" ,alsa-lib) ("cdparanoia" ,cdparanoia) ("fontconfig" ,fontconfig) + ("ffmpeg", ffmpeg) ("freetype" ,freetype) ("lame" ,lame) + ("libdvdcss", libdvdcss) + ("libdvdnav", libdvdnav) ("libmpg123" ,mpg123) ; audio codec for MP3 ;; ("giflib" ,giflib) ; uses QuantizeBuffer, requires version >= 5 ("libjpeg" ,libjpeg) @@ -639,7 +643,7 @@ treaming protocols.") "./configure" (string-append "--extra-cflags=-I" libx11 "/include") ; to detect libx11 - "--disable-tremor-internal" ; forces external libvorbis + "--disable-ffmpeg_a" ; disables bundled ffmpeg (string-append "--prefix=" out) ;; Enable runtime cpu detection where supported, ;; and choose a suitable target. -- cgit v1.2.3 From 0e03d76a5128579ea8e08a51b47a6fe16ae71cf3 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Wed, 14 Oct 2015 18:02:45 +0200 Subject: gnu: ghc: Update to 7.10.2. * gnu/packages/haskell.scm (ghc): Update to 7.10.2. Correct bootstrap compiler path. * gnu/packages/haskell.scm (ghc-unordered-containers): Fix long line. --- gnu/packages/haskell.scm | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 34cad87b4b..af80e0c9a1 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 Federico Beffa ;;; Copyright © 2015 Siniša Biđin +;;; Copyright © 2015 Paul van der Walt ;;; ;;; This file is part of GNU Guix. ;;; @@ -73,7 +74,7 @@ (define-public ghc (package (name "ghc") - (version "7.8.4") + (version "7.10.2") (source (origin (method url-fetch) @@ -81,7 +82,7 @@ version "/" name "-" version "-src.tar.xz")) (sha256 (base32 - "1i4254akbb4ym437rf469gc0m40bxm31blp6s1z1g15jmnacs6f3")))) + "1x8m4rp2v7ydnrz6z9g8x7z3x3d3pxhv2pixy7i7hkbqbdsp7kal")))) (build-system gnu-build-system) (supported-systems '("i686-linux" "x86_64-linux")) (outputs '("out" "doc")) @@ -98,7 +99,7 @@ version "/" name "-" version "-testsuite.tar.xz")) (sha256 (base32 - "0q95whf87y4mxjzwzy899g7z7l9pazq4si6iciyhxkcdhqq2ycyh")))))) + "0qp9da9ar87zbyn6wjgacd2ic1vgzbi3cklxnhsmjqyafv9qaj4b")))))) (native-inputs `(("perl" ,perl) ("python" ,python-2) ; for tests (fails with python-3) @@ -203,7 +204,7 @@ (string-append ghc-bootstrap-prefix "/lib/ghc-7.8.4/terminfo-0.4.0.0"))) (with-directory-excursion - (string-append ghc-bootstrap-path "/" ,name "-" ,version) + (string-append ghc-bootstrap-path "/ghc-7.8.4") (setenv "CONFIG_SHELL" (which "bash")) (setenv "LD_LIBRARY_PATH" gmp-lib) ;; The binaries have "/lib64/ld-linux-x86-64.so.2" hardcoded. @@ -231,7 +232,7 @@ 'configure 'install-bin (lambda* (#:key inputs outputs #:allow-other-keys) (with-directory-excursion - (string-append ghc-bootstrap-path "/" ,name "-" ,version) + (string-append ghc-bootstrap-path "/ghc-7.8.4") (zero? (system* "make" "install")))) %standard-phases))))))) (home-page "https://www.haskell.org/ghc") @@ -979,9 +980,8 @@ encourages inductive, recursive definitions of graph algorithms.") (origin (method url-fetch) (uri (string-append - "http://hackage.haskell.org/package/unordered-containers/unordered-containers-" - version - ".tar.gz")) + "http://hackage.haskell.org/package/unordered-containers" + "/unordered-containers-" version ".tar.gz")) (sha256 (base32 "06l1xv7vhpxly75saxdrbc6p2zlgz1az278arfkz4rgawfnphn3f")))) -- cgit v1.2.3 From a59ab2477a01d007dc3ef0e4d6e21edcccce1c4a Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 19:12:09 +0200 Subject: gnu: ghc-mtl: Update to 2.2.1. * gnu/packages/haskell.scm (ghc-mtl): Update to 2.2.1. --- gnu/packages/haskell.scm | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index af80e0c9a1..385c295737 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -462,7 +462,7 @@ installation of Haskell libraries and programs.") (define-public ghc-mtl (package (name "ghc-mtl") - (version "2.1.3.1") + (version "2.2.1") (outputs '("out" "doc")) (source (origin @@ -473,18 +473,17 @@ installation of Haskell libraries and programs.") ".tar.gz")) (sha256 (base32 - "1xpn2wjmqbh2cg1yssc6749xpgcqlrrg4iilwqgkcjgvaxlpdbvp")))) + "1icdbj2rshzn0m1zz5wa7v3xvkf6qw811p4s7jgqwvx1ydwrvrfa")))) (build-system haskell-build-system) (home-page "http://github.com/ekmett/mtl") (synopsis "Monad classes, using functional dependencies") - (description - "Monad classes using functional dependencies, with instances -for various monad transformers, inspired by the paper -'Functional Programming with Overloading and Higher-Order Polymorphism', -by Mark P Jones, in 'Advanced School of Functional Programming', 1995 -http://web.cecs.pdx.edu/~mpj/pubs/springschool.html.") - (license bsd-3))) + (description "Monad classes using functional dependencies, with instances +for various monad transformers, inspired by the paper 'Functional Programming +with Overloading and Higher-Order Polymorphism', by Mark P Jones, in 'Advanced +School of Functional Programming', 1995. See +@uref{http://web.cecs.pdx.edu/~mpj/pubs/springschool.html, the paper}.") + (license bsd-3))) (define-public ghc-paths (package -- cgit v1.2.3 From ac426aa53b335a01a17ba5e52dd3d8aa2ae5e8ba Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 19:12:57 +0200 Subject: gnu: ghc-utf8-string: Update to 1.0.1.1. * gnu/packages/haskell.scm (ghc-utf8-string): Update to 1.0.1.1. --- gnu/packages/haskell.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 385c295737..a6b16bde16 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -511,7 +511,7 @@ School of Functional Programming', 1995. See (define-public ghc-utf8-string (package (name "ghc-utf8-string") - (version "0.3.8") + (version "1.0.1.1") (source (origin (method url-fetch) @@ -520,12 +520,12 @@ School of Functional Programming', 1995. See version ".tar.gz")) (sha256 - (base32 "1h29dn0scsfkhmkg14ywq9178lw40ah1r36w249zfzqr02y7qxc0")))) + (base32 "0h7imvxkahiy8pzr8cpsimifdfvv18lizrb33k6mnq70rcx9w2zv")))) (build-system haskell-build-system) (home-page "http://github.com/glguy/utf8-string/") (synopsis "Support for reading and writing UTF8 Strings") (description - "A UTF8 layer for Strings. The utf8-string package provides operations + "A UTF8 layer for Strings. The utf8-string package provides operations for encoding UTF8 strings to Word8 lists and back, and for reading and writing UTF8 without truncation.") (license bsd-3))) -- cgit v1.2.3 From 6a0add9c6990f2e4c60f8786a31b69b47f1a7077 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 19:13:45 +0200 Subject: gnu: Add ghc-old-locale. * gnu/packages/haskell.scm (ghc-old-locale): New variable. * gnu/packages/haskell.scm (ghc-data-default-instances-old-locale): Patch to use new package ghc-old-locale. --- gnu/packages/haskell.scm | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index a6b16bde16..a12f245e5d 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -362,6 +362,27 @@ package.") package.") (license bsd-3))) +(define-public ghc-old-locale + (package + (name "ghc-old-locale") + (version "1.0.0.7") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/old-locale/old-locale-" + version + ".tar.gz")) + (sha256 + (base32 "0l3viphiszvz5wqzg7a45zp40grwlab941q5ay29iyw8p3v8pbyv")))) + (build-system haskell-build-system) + (home-page "http://hackage.haskell.org/package/old-locale") + (synopsis "Adapt to locale conventions") + (description + "This package provides the ability to adapt to locale conventions such as +date and time formats.") + (license bsd-3))) + (define-public ghc-data-default-instances-old-locale (package (name "ghc-data-default-instances-old-locale") @@ -377,7 +398,8 @@ package.") (base32 "00h81i5phib741yj517p8mbnc48myvfj8axzsw44k34m48lv1lv0")))) (build-system haskell-build-system) (propagated-inputs - `(("ghc-data-default-class" ,ghc-data-default-class))) + `(("ghc-data-default-class" ,ghc-data-default-class) + ("ghc-old-locale" ,ghc-old-locale))) (home-page "http://hackage.haskell.org/package/data-default-instances-old-locale") (synopsis "Default instances for types in old-locale") -- cgit v1.2.3 From ca80b8ba158e714092827a28a201e4c4f4e50983 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Wed, 14 Oct 2015 22:26:55 +0200 Subject: gnu: xmonad: Patch for updated libraries. * gnu/packages/wm.scm (xmonad): Replicate patch from Hackage to compile against GHC 7.10.2. --- gnu/packages/wm.scm | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm index 58d7add5e0..117088ee35 100644 --- a/gnu/packages/wm.scm +++ b/gnu/packages/wm.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2015 Siniša Biđin ;;; Copyright © 2015 Eric Bavier ;;; Copyright © 2015 xd1le +;;; Copyright © 2015 Paul van der Walt ;;; ;;; This file is part of GNU Guix. ;;; @@ -191,10 +192,19 @@ developers.") (source (origin (method url-fetch) (uri (string-append "http://hackage.haskell.org/package/xmonad/" - "xmonad-" version ".tar.gz")) + name "-" version ".tar.gz")) (sha256 (base32 - "1pfjssamiwpwjp1qqkm9m9p9s35pv381m0cwg6jxg0ppglibzq1r")))) + "1pfjssamiwpwjp1qqkm9m9p9s35pv381m0cwg6jxg0ppglibzq1r")) + (modules '((guix build utils))) + (snippet + ;; Here we update the constraints on the utf8-string package in + ;; the Cabal file. We allow a newer version which is compatible + ;; with GHC 7.10.2. The same change is applied on Hackage. See + ;; . + '(substitute* "xmonad.cabal" + (("utf8-string >= 0.3 && < 0.4") + "utf8-string >= 0.3 && < 1.1"))))) (build-system haskell-build-system) (inputs `(("ghc-mtl" ,ghc-mtl) -- cgit v1.2.3 From 7ae4c1022746907da090cd376507106a8133cc0d Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Wed, 14 Oct 2015 23:17:02 +0200 Subject: gnu: Add ghc-old-time. * gnu/packages/haskell.scm (ghc-old-time): New variable. --- gnu/packages/haskell.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index a12f245e5d..b34adddf0a 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -383,6 +383,36 @@ package.") date and time formats.") (license bsd-3))) +(define-public ghc-old-time + (package + (name "ghc-old-time") + (version "1.1.0.3") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/old-time/old-time-" + version + ".tar.gz")) + (sha256 + (base32 + "1h9b26s3kfh2k0ih4383w90ibji6n0iwamxp6rfp2lbq1y5ibjqw")))) + (build-system haskell-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-/bin/sh + (lambda _ + (setenv "CONFIG_SHELL" "sh")))))) + (propagated-inputs + `(("ghc-old-locale" ,ghc-old-locale))) + (home-page "http://hackage.haskell.org/package/old-time") + (synopsis "Time compatibility library for Haskell") + (description "Old-time is a package for backwards compatibility with the +old @code{time} library. For new projects, the newer +@uref{http://hackage.haskell.org/package/time, time library} is recommended.") + (license bsd-3))) + (define-public ghc-data-default-instances-old-locale (package (name "ghc-data-default-instances-old-locale") -- cgit v1.2.3 From 2687f7db73e45e248503854213548c963048c229 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Wed, 14 Oct 2015 22:28:10 +0200 Subject: gnu: ghc-xmonad-contrib: Update to version 0.11.4. * gnu/packages/wm.scm (ghc-xmonad-contrib): Update to version 0.11.4. Add input ghc-old-time, required with new GHC 7.10.2. --- gnu/packages/wm.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm index 117088ee35..db5fa1e3da 100644 --- a/gnu/packages/wm.scm +++ b/gnu/packages/wm.scm @@ -243,7 +243,7 @@ tiled on several screens.") (define-public ghc-xmonad-contrib (package (name "ghc-xmonad-contrib") - (version "0.11.3") + (version "0.11.4") (source (origin (method url-fetch) @@ -251,10 +251,11 @@ tiled on several screens.") "xmonad-contrib-" version ".tar.gz")) (sha256 (base32 - "14h9vr33yljymswj50wbimav263y9abdcgi07mvfis0zd08rxqxa")))) + "1g5cw9vvnfbiyi599fngk02zlmdhrf82x0bndhypkn6kybab6yd3")))) (build-system haskell-build-system) (propagated-inputs `(("ghc-mtl" ,ghc-mtl) + ("ghc-old-time" ,ghc-old-time) ("ghc-random" ,ghc-random) ("ghc-utf8-string" ,ghc-utf8-string) ("ghc-extensible-exceptions" ,ghc-extensible-exceptions) -- cgit v1.2.3 From 6fe7a7e0af29110923d795e553aa1df424416f52 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Wed, 14 Oct 2015 22:46:34 +0200 Subject: gnu: ghc-dlist: Update to 0.7.1.2. * gnu/packages/haskell.scm (ghc-dlist): Update to version 0.7.1.2. --- gnu/packages/haskell.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index b34adddf0a..c4d9ef1063 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -440,7 +440,7 @@ old @code{time} library. For new projects, the newer (define-public ghc-dlist (package (name "ghc-dlist") - (version "0.7.1.1") + (version "0.7.1.2") (source (origin (method url-fetch) @@ -449,7 +449,7 @@ old @code{time} library. For new projects, the newer version ".tar.gz")) (sha256 - (base32 "1zayvxvkan2s2ixajdr3f5rn1gzhprzv6cww4cbpwjhzw0l7zc08")))) + (base32 "10rp96rryij7d8gz5kv8ygc6chm1624ck5mbnqs2a3fkdzqj2b9k")))) (arguments `(#:tests? #f)) (build-system haskell-build-system) (home-page "https://github.com/spl/dlist") -- cgit v1.2.3 From 409ec7c01e82cd7f9f4d6d5bfbf26961eb7c188b Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 21:29:15 +0200 Subject: gnu: ghc-dlist: Enable tests. * gnu/packages/haskell.scm (ghc-dlist): Enable tests. --- gnu/packages/haskell.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index c4d9ef1063..3d26e8bf8d 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -450,8 +450,9 @@ old @code{time} library. For new projects, the newer ".tar.gz")) (sha256 (base32 "10rp96rryij7d8gz5kv8ygc6chm1624ck5mbnqs2a3fkdzqj2b9k")))) - (arguments `(#:tests? #f)) (build-system haskell-build-system) + (inputs + `(("ghc-quickcheck" ,ghc-quickcheck))) (home-page "https://github.com/spl/dlist") (synopsis "Difference lists") (description -- cgit v1.2.3 From 8431b0468ea7df92351de76235ce27f718f53bfd Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Wed, 14 Oct 2015 23:06:16 +0200 Subject: gnu: ghc-text: Update to 1.2.1.3. * gnu/packages/haskell.scm (ghc-text): Update to 1.2.1.3. --- gnu/packages/haskell.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 3d26e8bf8d..edac4330ef 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -719,7 +719,7 @@ access to the full zlib feature set.") (define-public ghc-text (package (name "ghc-text") - (version "1.2.0.4") + (version "1.2.1.3") (outputs '("out" "doc")) (source (origin @@ -730,7 +730,7 @@ access to the full zlib feature set.") ".tar.gz")) (sha256 (base32 - "004p1c74crs8wmjafwsmw3mmycspq1j8fpm1lvfpq6acha7bnpc6")))) + "0gzqx5cpkdhshbz9xss51mpyq23pnf8dwjz4h3irbv2ryaa4qdlq")))) (build-system haskell-build-system) (arguments `(#:tests? #f)) ; FIXME: currently missing libraries used for tests. -- cgit v1.2.3 From 87a25ccd04277cfae6e11b0b4c5cdeff3aa86f30 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Wed, 14 Oct 2015 23:07:08 +0200 Subject: gnu: ghc-hashable: Update to 1.2.3.3. * gnu/packages/haskell.scm (ghc-hashable): Update to 1.2.3.3. --- gnu/packages/haskell.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index edac4330ef..8f1ec086f5 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -749,7 +749,7 @@ in terms of large data quantities and high speed.") (define-public ghc-hashable (package (name "ghc-hashable") - (version "1.2.3.2") + (version "1.2.3.3") (outputs '("out" "doc")) (source (origin @@ -760,7 +760,7 @@ in terms of large data quantities and high speed.") ".tar.gz")) (sha256 (base32 - "0h9295pv2sgbaqlwpwbx2bap6nngm0jcdhkqham1wpjwyxqgqrlc")))) + "0kp4aj0x1iicz9qirpqxxqd8x5g1njbapxk1d90n406w3xykz4pw")))) (build-system haskell-build-system) (arguments `(#:tests? #f)) ; FIXME: currently missing libraries used for tests. -- cgit v1.2.3 From 4c116c6aed805774b427e865e75ba9cc4586f0d5 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Wed, 14 Oct 2015 23:07:43 +0200 Subject: gnu: ghc-primitive: Update to 0.6.1.0. * gnu/packages/haskell.scm (ghc-primitive): Update to 0.6.1.0. --- gnu/packages/haskell.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 8f1ec086f5..c44e6594b5 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -824,7 +824,7 @@ library, including the ability to split random number generators.") (define-public ghc-primitive (package (name "ghc-primitive") - (version "0.5.4.0") + (version "0.6.1.0") (outputs '("out" "doc")) (source (origin @@ -835,7 +835,7 @@ library, including the ability to split random number generators.") ".tar.gz")) (sha256 (base32 - "05gdgj383xdrdkhxh26imlvs8ji0z28ny38ms9snpvv5i8l2lg10")))) + "1j1q7l21rdm8kfs93vibr3xwkkhqis181w2k6klfhx5g5skiywwk")))) (build-system haskell-build-system) (home-page "https://github.com/haskell/primitive") -- cgit v1.2.3 From 83185924c286259de95f0bcad7f8c9877454dcb4 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Wed, 14 Oct 2015 23:08:41 +0200 Subject: gnu: ghc-quickcheck: Update to 2.8.1. * gnu/packages/haskell.scm (ghc-quickcheck): Update to 2.8.1. --- gnu/packages/haskell.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index c44e6594b5..a5f86579b1 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -875,7 +875,7 @@ Hashing\" by Claessen, Pałka for details and the rationale of the design.") (define-public ghc-quickcheck (package (name "ghc-quickcheck") - (version "2.8") + (version "2.8.1") (outputs '("out" "doc")) (source (origin @@ -886,7 +886,7 @@ Hashing\" by Claessen, Pałka for details and the rationale of the design.") ".tar.gz")) (sha256 (base32 - "04xs6mq22bcnkpi616qrbm7jlivh9csnhmvjgp1ifq52an1wr4rx")))) + "0fvnfl30fxmj5q920l13641ar896d53z0z6z66m7c1366lvalwvh")))) (build-system haskell-build-system) (arguments `(#:tests? #f ; FIXME: currently missing libraries used for tests. -- cgit v1.2.3 From a306190f885d5429a5c924d6a160d5c8b1cb8225 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Wed, 14 Oct 2015 23:09:09 +0200 Subject: gnu: ghc-syb: Update to 0.6. * gnu/packages/haskell.scm (ghc-syb): Update to 0.6. --- gnu/packages/haskell.scm | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index a5f86579b1..2c8e06f010 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -939,7 +939,7 @@ to cases.") (define-public ghc-syb (package (name "ghc-syb") - (version "0.4.4") + (version "0.6") (outputs '("out" "doc")) (source (origin @@ -950,7 +950,7 @@ to cases.") ".tar.gz")) (sha256 (base32 - "11sc9kmfvcn9bfxf227fgmny502z2h9xs3z0m9ak66lk0dw6f406")))) + "1p3cnqjm13677r4a966zffzhi9b3a321aln8zs8ckqj0d9z1z3d3")))) (build-system haskell-build-system) (inputs `(("ghc-hunit" ,ghc-hunit) @@ -958,13 +958,12 @@ to cases.") (home-page "http://www.cs.uu.nl/wiki/GenericProgramming/SYB") (synopsis "Scrap Your Boilerplate") - (description - "This package contains the generics system described in the + (description "This package contains the generics system described in the /Scrap Your Boilerplate/ papers (see -). -It defines the 'Data' class of types permitting folding and unfolding -of constructor applications, instances of this class for primitive -types, and a variety of traversals.") +@uref{http://www.cs.uu.nl/wiki/GenericProgramming/SYB, the website}). It +defines the 'Data' class of types permitting folding and unfolding of +constructor applications, instances of this class for primitive types, and a +variety of traversals.") (license bsd-3))) (define-public ghc-containers -- cgit v1.2.3 From 0b61d503024c38e97fa9f9d3e1cf0153d8120d2b Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Wed, 14 Oct 2015 23:11:49 +0200 Subject: gnu: ghc-vector: Update to 0.11.0.0. * gnu/packages/haskell.scm (ghc-vector): Update to 0.11.0.0. --- gnu/packages/haskell.scm | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 2c8e06f010..5fea33161f 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -1114,7 +1114,7 @@ is also parametric in the input stream type.") (define-public ghc-vector (package (name "ghc-vector") - (version "0.10.12.2") + (version "0.11.0.0") (outputs '("out" "doc")) (source (origin @@ -1125,7 +1125,7 @@ is also parametric in the input stream type.") ".tar.gz")) (sha256 (base32 - "01hc71k1z9m0g0dv4zsvq5d2dvbgyc5p01hryw5c53792yi2fm25")))) + "1r1jlksy7b0kb0fy00g64isk6nyd9wzzdq31gx5v1wn38knj0lqa")))) (build-system haskell-build-system) (inputs `(("ghc-quickcheck" ,ghc-quickcheck))) @@ -1133,12 +1133,13 @@ is also parametric in the input stream type.") (propagated-inputs `(("ghc-primitive" ,ghc-primitive))) (arguments - `(#:tests? #f)) ; FIXME: currently missing libraries used for tests. + `(#:tests? #f)) ; FIXME: currently missing libraries used for tests. (home-page "https://github.com/haskell/vector") (synopsis "Efficient Arrays") - (description "An efficient implementation of Int-indexed arrays (both -mutable and immutable), with a powerful loop optimisation framework.") - (license bsd-3))) + (description "This library provides an efficient implementation of +Int-indexed arrays (both mutable and immutable), with a powerful loop +optimisation framework.") + (license bsd-3))) (define-public ghc-network (package -- cgit v1.2.3 From 13244b2438d167e7818b6e4e472ac9c00b0eb911 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Wed, 14 Oct 2015 23:12:18 +0200 Subject: gnu: ghc-network: Update to 2.6.2.1. * gnu/packages/haskell.scm (ghc-network): Update to 2.6.2.1. * gnu/packages/haskell.scm (ghc-network-uri): Update to 2.6.0.3. --- gnu/packages/haskell.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 5fea33161f..c9a1020fb2 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -1144,7 +1144,7 @@ optimisation framework.") (define-public ghc-network (package (name "ghc-network") - (version "2.6.0.2") + (version "2.6.2.1") (outputs '("out" "doc")) (source (origin @@ -1155,7 +1155,7 @@ optimisation framework.") ".tar.gz")) (sha256 (base32 - "12b7saam5ga6l4cplgkad49xa4vkynz2ri9jxidx1cxiqjcl0vc4")))) + "1yhvpd4wigz165jvyvw9zslx7lgqdj63jh3zv5s74b5ykdfa3zd3")))) (build-system haskell-build-system) (inputs `(("ghc-hunit" ,ghc-hunit))) @@ -1174,7 +1174,7 @@ optimisation framework.") (define-public ghc-network-uri (package (name "ghc-network-uri") - (version "2.6.0.1") + (version "2.6.0.3") (outputs '("out" "doc")) (source (origin @@ -1185,7 +1185,7 @@ optimisation framework.") ".tar.gz")) (sha256 (base32 - "09ymamb128jgqghpda4nixncr73all8qc6q53976aricm6a27p37")))) + "1pwbqb2rk4rnvllvdch42p5368xcvpkanp7bxckdhxya8zzwvhhg")))) (build-system haskell-build-system) (inputs `(("ghc-hunit" ,ghc-hunit) -- cgit v1.2.3 From b38c1627eca82786c8a81ab74d2d5be3891ac5e5 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Wed, 14 Oct 2015 23:20:28 +0200 Subject: gnu: ghc-http: Update to 4000.2.20. * gnu/packages/haskell.scm (ghc-http): Update to 4000.2.20. Add input old-time, required in new GHC 7.10.2. --- gnu/packages/haskell.scm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index c9a1020fb2..9cd223a06d 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -1205,7 +1205,7 @@ package into this package.") (define-public ghc-http (package (name "ghc-http") - (version "4000.2.19") + (version "4000.2.20") (outputs '("out" "doc")) (source (origin @@ -1216,12 +1216,13 @@ package into this package.") ".tar.gz")) (sha256 (base32 - "1yzm8gimh8g0wwbixcbxg60v4l3vgi63w9v55ms0x9qnm6vrgysz")))) + "0nyqdxr5ls2dxkf4a1f3x15xzwdm46ppn99nkcbhswlr6s3cq1s4")))) (build-system haskell-build-system) (inputs `(("ghc-hunit" ,ghc-hunit))) (propagated-inputs - `(("ghc-parsec" ,ghc-parsec) + `(("ghc-old-time" ,ghc-old-time) + ("ghc-parsec" ,ghc-parsec) ("ghc-mtl" ,ghc-mtl) ("ghc-network" ,ghc-network) ("ghc-network-uri" ,ghc-network-uri))) -- cgit v1.2.3 From 35a9b5c70be6215e2886c21a39923dd518b46768 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Wed, 14 Oct 2015 23:20:59 +0200 Subject: gnu: cabal-install: Update to 1.22.6.0. * gnu/packages/haskell.scm (cabal-install): Update to 1.22.6.0. --- gnu/packages/haskell.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 9cd223a06d..9d61f6e4c9 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -484,7 +484,7 @@ versions of GHC (i.e., < 6.10).") (define-public cabal-install (package (name "cabal-install") - (version "1.18.1.0") + (version "1.22.6.0") (source (origin (method url-fetch) @@ -493,7 +493,7 @@ versions of GHC (i.e., < 6.10).") version ".tar.gz")) (sha256 - (base32 "1r1shhvnpgxf91rmbv3wa1rkd24plbgr6bpz3aj80ir0z3zbdayn")))) + (base32 "1d5h7h2wjwc2s3dvsvzjgmmfrfl2312ym2h6kyjgm9wnaqw9w8wx")))) (arguments `(#:tests? #f)) ; FIXME: testing libraries are missing. (build-system haskell-build-system) (propagated-inputs -- cgit v1.2.3 From cd27b23d498c6112cbd0a4d6b03a58cf00694db4 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Wed, 14 Oct 2015 23:35:19 +0200 Subject: gnu: Add ghc-ansi-terminal. * gnu/package/haskell.scm (ghc-ansi-terminal): New variable. --- gnu/packages/haskell.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 9d61f6e4c9..3bfbb8d444 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -1202,6 +1202,28 @@ optimisation framework.") package into this package.") (license bsd-3))) +(define-public ghc-ansi-terminal + (package + (name "ghc-ansi-terminal") + (version "0.6.2.3") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/ansi-terminal/ansi-terminal-" + version + ".tar.gz")) + (sha256 + (base32 + "0hpfw0k025y681m9ml1c712skrb1p4vh7z5x1f0ci9ww7ssjrh2d")))) + (build-system haskell-build-system) + (home-page "https://github.com/feuerbach/ansi-terminal") + (synopsis "ANSI terminal support for Haskell") + (description "This package provides ANSI terminal support for Haskell. It +allows cursor movement, screen clearing, color output showing or hiding the +cursor, and changing the title.") + (license bsd-3))) + (define-public ghc-http (package (name "ghc-http") -- cgit v1.2.3 From 9380634c1037fa602a6d8896e94573bbf1f72396 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Wed, 14 Oct 2015 23:36:12 +0200 Subject: gnu: Remove ghc-containers. Since GHC 7.10.2 provides containers, this package has become unneeded. * gnu/packages/haskell.scm (ghc-containers): Remove variable. --- gnu/packages/haskell.scm | 30 ------------------------------ 1 file changed, 30 deletions(-) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 3bfbb8d444..a5ae4d14dc 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -966,36 +966,6 @@ constructor applications, instances of this class for primitive types, and a variety of traversals.") (license bsd-3))) -(define-public ghc-containers - (package - (name "ghc-containers") - (version "0.5.6.3") - (outputs '("out" "doc")) - (source - (origin - (method url-fetch) - (uri (string-append - "http://hackage.haskell.org/package/containers/containers-" - version - ".tar.gz")) - (sha256 - (base32 - "1kcd55nl0vzi99i8sr8fmc5j25fv7m0a9hd3nihnq1pd64pfciqn")))) - (build-system haskell-build-system) - (inputs - `(("ghc-hunit" ,ghc-hunit) - ("ghc-quickcheck" ,ghc-quickcheck))) - (arguments - `(#:tests? #f)) ; FIXME: currently missing libraries used for tests. - (home-page "http://hackage.haskell.org/package/containers") - (synopsis "Assorted concrete container types") - (description - "This package contains efficient general-purpose implementations of -various basic immutable container types. The declared cost of each operation -is either worst-case or amortized, but remains valid even if structures are -shared.") - (license bsd-3))) - (define-public ghc-fgl (package (name "ghc-fgl") -- cgit v1.2.3 From e2fcaff2ef3804cc9e4b29e9dc99e896439c2f45 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Wed, 14 Oct 2015 23:41:47 +0200 Subject: gnu: Add ghc-async. * gnu/packages/haskell.scm (ghc-async): New variable. --- gnu/packages/haskell.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index a5ae4d14dc..9e9f18c058 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -1228,4 +1228,30 @@ lets you set up HTTP connections, transmitting requests and processing the responses coming back.") (license bsd-3))) +(define-public ghc-async + (package + (name "ghc-async") + (version "2.0.2") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/async/async-" + version + ".tar.gz")) + (sha256 + (base32 + "0azx4qk65a9a2gvqsfmz3w89m6shzr2iz0i5lly2zvly4n2d6m6v")))) + (build-system haskell-build-system) + (arguments `(#:tests? #f)) ; FIXME: testing libraries are missing. + (propagated-inputs + `(("ghc-stm" ,ghc-stm))) + (home-page "https://github.com/simonmar/async") + (synopsis "Library to run IO operations asynchronously") + (description "Async provides a library to run IO operations +asynchronously, and wait for their results. It is a higher-level interface +over threads in Haskell, in which @code{Async a} is a concurrent thread that +will eventually deliver a value of type @code{a}.") + (license bsd-3))) + ;;; haskell.scm ends here -- cgit v1.2.3 From a45a15df50e880b8e9eeaac75394838e632a46e1 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 21:00:40 +0200 Subject: gnu: Add ghc-setenv. * gnu/packages/haskell.scm (ghc-setenv): New variable. --- gnu/packages/haskell.scm | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 9e9f18c058..b5518b5e24 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -20,7 +20,7 @@ (define-module (gnu packages haskell) #:use-module (ice-9 regex) - #:use-module ((guix licenses) #:select (bsd-3 lgpl2.1)) + #:use-module ((guix licenses) #:select (bsd-3 lgpl2.1 expat)) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix utils) @@ -583,6 +583,27 @@ for encoding UTF8 strings to Word8 lists and back, and for reading and writing UTF8 without truncation.") (license bsd-3))) +(define-public ghc-setenv + (package + (name "ghc-setenv") + (version "0.1.1.3") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/setenv/setenv-" + version + ".tar.gz")) + (sha256 + (base32 + "0cnbgrvb9byyahb37zlqrj05rj25v190crgcw8wmlgf0mwwxyn73")))) + (build-system haskell-build-system) + (home-page "http://hackage.haskell.org/package/setenv") + (synopsis "Library for setting environment variables") + (description "This package provides a Haskell library for setting +environment variables.") + (license expat))) + (define-public ghc-x11 (package (name "ghc-x11") -- cgit v1.2.3 From 318f9d884e705fd24fbd957afdcc71b339c42e18 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 21:00:53 +0200 Subject: gnu: Add ghc-stringbuilder. * gnu/packages/haskell.scm (ghc-stringbuilder): New variable. --- gnu/packages/haskell.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index b5518b5e24..921a48e3e0 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -664,6 +664,29 @@ bindings are a direct translation of the C bindings.") parts.") (license lgpl2.1))) +(define-public ghc-stringbuilder + (package + (name "ghc-stringbuilder") + (version "0.5.0") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/stringbuilder/stringbuilder-" + version + ".tar.gz")) + (sha256 + (base32 + "1ap95xphqnrhv64c2a137wqslkdmb2jjd9ldb17gs1pw48k8hrl9")))) + (build-system haskell-build-system) + (arguments `(#:tests? #f)) ; FIXME: circular dependencies with tests + ; enabled + (home-page "http://hackage.haskell.org/package/stringbuilder") + (synopsis "Writer monad for multi-line string literals") + (description "This package provides a writer monad for multi-line string +literals.") + (license expat))) + (define-public ghc-zlib (package (name "ghc-zlib") -- cgit v1.2.3 From 59c9b4f678eeaba995a5baf39060ea379d6e4ba2 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 00:00:30 +0200 Subject: gnu: Add ghc-quickcheck-io. * gnu/packages/haskell.scm (ghc-quickcheck-io): Add variable. --- gnu/packages/haskell.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 921a48e3e0..be43ac72d2 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -916,6 +916,31 @@ the paper \"Splittable Pseudorandom Number Generators Using Cryptographic Hashing\" by Claessen, Pałka for details and the rationale of the design.") (license bsd-3))) +(define-public ghc-quickcheck-io + (package + (name "ghc-quickcheck-io") + (version "0.1.2") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/quickcheck-io/quickcheck-io-" + version + ".tar.gz")) + (sha256 + (base32 + "1kf1kfw9fsmly0rvzvdf6jvdw10qhkmikyj0wcwciw6wad95w9sh")))) + (build-system haskell-build-system) + (inputs + `(("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-hunit" ,ghc-hunit))) + (home-page + "https://github.com/hspec/quickcheck-io#readme") + (synopsis "Use HUnit assertions as QuickCheck properties") + (description "This package provides an orphan instance that allows you to +use HUnit assertions as QuickCheck properties.") + (license expat))) + (define-public ghc-quickcheck (package (name "ghc-quickcheck") -- cgit v1.2.3 From 379a5ad54f54a9b4208670fffc34ce2985eccae4 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 20:56:51 +0200 Subject: gnu: Add ghc-transformers-compat. * gnu/packages/haskell.scm (ghc-transformers-compat): New variable. --- gnu/packages/haskell.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index be43ac72d2..b73ac2e597 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -916,6 +916,28 @@ the paper \"Splittable Pseudorandom Number Generators Using Cryptographic Hashing\" by Claessen, Pałka for details and the rationale of the design.") (license bsd-3))) +(define-public ghc-transformers-compat + (package + (name "ghc-transformers-compat") + (version "0.4.0.4") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/transformers-compat" + "/transformers-compat-" version ".tar.gz")) + (sha256 + (base32 + "0lmg8ry6bgigb0v2lg0n74lxi8z5m85qq0qi4h1k9llyjb4in8ym")))) + (build-system haskell-build-system) + (home-page "http://github.com/ekmett/transformers-compat/") + (synopsis "Small compatibility shim between transformers 0.3 and 0.4") + (description "This package includes backported versions of types that were +added to transformers in transformers 0.3 and 0.4 for users who need strict +transformers 0.2 or 0.3 compatibility to run on old versions of the platform, +but also need those types.") + (license bsd-3))) + (define-public ghc-quickcheck-io (package (name "ghc-quickcheck-io") -- cgit v1.2.3 From 31cac1ee9ffeae2974461a8864cb1112072f4744 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 20:57:25 +0200 Subject: gnu: Add ghc-exceptions. * gnu/packages/haskell.scm (ghc-exceptions): New variable. --- gnu/packages/haskell.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index b73ac2e597..9d649da25d 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -938,6 +938,32 @@ transformers 0.2 or 0.3 compatibility to run on old versions of the platform, but also need those types.") (license bsd-3))) +(define-public ghc-exceptions + (package + (name "ghc-exceptions") + (version "0.8.0.2") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/exceptions/exceptions-" + version + ".tar.gz")) + (sha256 + (base32 + "1x1bk1jf42k1gigiqqmkkh38z2ffhx8rsqiszdq3f94m2h6kw2h7")))) + (build-system haskell-build-system) + (arguments `(#:tests? #f)) ; FIXME: Missing test-framework package. + (propagated-inputs + `(("ghc-stm" ,ghc-stm) + ("ghc-mtl" ,ghc-mtl) + ("ghc-transformers-compat" ,ghc-transformers-compat))) + (home-page "http://github.com/ekmett/exceptions/") + (synopsis "Extensible optionally-pure exceptions") + (description "This library provides extensible optionally-pure exceptions +for Haskell.") + (license bsd-3))) + (define-public ghc-quickcheck-io (package (name "ghc-quickcheck-io") -- cgit v1.2.3 From 5257c341506c4d277b98e580a82857daafe073c7 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 20:57:53 +0200 Subject: gnu: Add ghc-temporary. * gnu/packages/haskell.scm (ghc-temporary): New variable. --- gnu/packages/haskell.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 9d649da25d..8dd09ba642 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -964,6 +964,31 @@ but also need those types.") for Haskell.") (license bsd-3))) +(define-public ghc-temporary + (package + (name "ghc-temporary") + (version "1.2.0.3") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/temporary/temporary-" + version + ".tar.gz")) + (sha256 + (base32 + "0is67bmsjmbbw6wymhis8wyq9gax3sszm573p5719fx2c9z9r24a")))) + (build-system haskell-build-system) + (propagated-inputs `(("ghc-exceptions" ,ghc-exceptions))) + (home-page "http://www.github.com/batterseapower/temporary") + (synopsis "Temporary file and directory support") + (description "The functions for creating temporary files and directories +in the Haskelll base library are quite limited. This library just repackages +the Cabal implementations of its own temporary file and folder functions so +that you can use them without linking against Cabal or depending on it being +installed.") + (license bsd-3))) + (define-public ghc-quickcheck-io (package (name "ghc-quickcheck-io") -- cgit v1.2.3 From acd881a49ca1b90fd53754e485961c6b4fdf20d9 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 20:58:17 +0200 Subject: gnu: Add ghc-silently. * gnu/packages/haskell.scm (ghc-silently): New variable. --- gnu/packages/haskell.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 8dd09ba642..32a8663b90 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -989,6 +989,30 @@ that you can use them without linking against Cabal or depending on it being installed.") (license bsd-3))) +(define-public ghc-silently + (package + (name "ghc-silently") + (version "1.2.5") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/silently/silently-" + version + ".tar.gz")) + (sha256 + (base32 + "0f9qm3f7y0hpxn6mddhhg51mm1r134qkvd2kr8r6192ka1ijbxnf")))) + (build-system haskell-build-system) + (arguments `(#:tests? #f)) ;; circular dependency with nanospec + ;; (inputs + ;; `(("ghc-temporary" ,ghc-temporary))) + (home-page "https://github.com/hspec/silently") + (synopsis "Prevent writing to stdout") + (description "This package provides functions to prevent or capture +writing to stdout and other handles.") + (license bsd-3))) + (define-public ghc-quickcheck-io (package (name "ghc-quickcheck-io") -- cgit v1.2.3 From 327348c629a37e24b83d150dc081af1d74292999 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 21:04:20 +0200 Subject: gnu: Add ghc-hspec-expectations. * gnu/packages/haskell.scm (ghc-hspec-expectations): New variable. --- gnu/packages/haskell.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 32a8663b90..0bcf648bb7 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -1394,6 +1394,28 @@ lets you set up HTTP connections, transmitting requests and processing the responses coming back.") (license bsd-3))) +(define-public ghc-hspec-expectations + (package + (name "ghc-hspec-expectations") + (version "0.7.2") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/hspec-expectations/hspec-expectations-" + version + ".tar.gz")) + (sha256 + (base32 + "1w56jiqfyl237sr207gh3b0l8sr9layy0mdsgd5wknzb49mif6ip")))) + (build-system haskell-build-system) + (inputs `(("ghc-hunit" ,ghc-hunit))) + (home-page "https://github.com/sol/hspec-expectations") + (synopsis "Catchy combinators for HUnit") + (description "This library provides catchy combinators for HUnit, see +@uref{https://github.com/sol/hspec-expectations#readme, the README}.") + (license expat))) + (define-public ghc-async (package (name "ghc-async") -- cgit v1.2.3 From daf5cd28dc562a1abea9f267231c787bbfeb935e Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 21:05:38 +0200 Subject: gnu: Add ghc-hspec-core. * gnu/packages/haskell.scm (ghc-hspec-core): New variable. --- gnu/packages/haskell.scm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 0bcf648bb7..df5c82b2fd 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -1416,6 +1416,38 @@ responses coming back.") @uref{https://github.com/sol/hspec-expectations#readme, the README}.") (license expat))) +(define-public ghc-hspec-core + (package + (name "ghc-hspec-core") + (version "2.2.0") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/hspec-core/hspec-core-" + version + ".tar.gz")) + (sha256 + (base32 + "1wgd55k652jaf81nkvciyqi67ycj7zamr4nd9z1cqf8nr9fc3sa4")))) + (build-system haskell-build-system) + (arguments `(#:tests? #f)) ; FIXME: testing libraries are missing. + (propagated-inputs + `(("ghc-setenv" ,ghc-setenv) + ("ghc-ansi-terminal" ,ghc-ansi-terminal) + ("ghc-async" ,ghc-async) + ("ghc-quickcheck-io" ,ghc-quickcheck-io))) + (inputs + `(("ghc-hunit" ,ghc-hunit) + ("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-hspec-expectations" ,ghc-hspec-expectations) + ("ghc-silently" ,ghc-silently))) + (home-page "http://hspec.github.io/") + (synopsis "Testing framework for Haskell") + (description "This library exposes internal types and functions that can +be used to extend Hspec's functionality.") + (license expat))) + (define-public ghc-async (package (name "ghc-async") -- cgit v1.2.3 From 45882aafcb283d1e3ca6caf5e9df410db9f0ab62 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 21:06:14 +0200 Subject: gnu: Add ghc-hspec-meta. * gnu/packages/haskell.scm (ghc-hspec-meta): New variable. --- gnu/packages/haskell.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index df5c82b2fd..aff6931ea0 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -1448,6 +1448,36 @@ responses coming back.") be used to extend Hspec's functionality.") (license expat))) +(define-public ghc-hspec-meta + (package + (name "ghc-hspec-meta") + (version "2.2.0") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/hspec-meta/hspec-meta-" + version + ".tar.gz")) + (sha256 + (base32 + "1fmqmgrzp135cxhmxxbaswkk4bqbpgfml00cmcz0d39n11vzpa5z")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-hunit" ,ghc-hunit) + ("ghc-ansi-terminal" ,ghc-ansi-terminal) + ("ghc-async" ,ghc-async) + ("ghc-hspec-expectations" ,ghc-hspec-expectations) + ("ghc-setenv" ,ghc-setenv) + ("ghc-random" ,ghc-random) + ("ghc-quickcheck-io" ,ghc-quickcheck-io))) + (home-page "http://hspec.github.io/") + (synopsis "Version of Hspec to test Hspec itself") + (description "This library provides a stable version of Hspec which is +used to test the in-development version of Hspec.") + (license expat))) + (define-public ghc-async (package (name "ghc-async") -- cgit v1.2.3 From 6d71fcdf9ea6536593feadcb2b08a2e2b6b49a08 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 21:06:41 +0200 Subject: gnu: Add hspec-discover. * gnu/packages/haskell.scm (hspec-discover): New variable. --- gnu/packages/haskell.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index aff6931ea0..fa8e07822c 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -1416,6 +1416,30 @@ responses coming back.") @uref{https://github.com/sol/hspec-expectations#readme, the README}.") (license expat))) +(define-public hspec-discover + (package + (name "hspec-discover") + (version "2.2.0") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/hspec-discover/hspec-discover-" + version + ".tar.gz")) + (sha256 + (base32 + "0w3awzbljf4hqhxrjrxqa1lfcclg92bhmq641gz2q80vycspapzx")))) + (build-system haskell-build-system) + (arguments `(#:haddock? #f)) ; Haddock phase fails because there are no + ; documentation files. + (inputs `(("ghc-hspec-meta" ,ghc-hspec-meta))) + (home-page "http://hspec.github.io/") + (synopsis "Automatically discover and run Hspec tests") + (description "hspec-discover is a tool which automatically discovers and +runs Hspec tests.") + (license expat))) + (define-public ghc-hspec-core (package (name "ghc-hspec-core") -- cgit v1.2.3 From df12a41294df0af81e2bcbf9ac6ede35a1cd5147 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 21:07:02 +0200 Subject: gnu: Add ghc-hspec. * gnu/packages/haskell.scm (ghc-hspec): New variable. --- gnu/packages/haskell.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index fa8e07822c..3c8c1fce75 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -1394,6 +1394,36 @@ lets you set up HTTP connections, transmitting requests and processing the responses coming back.") (license bsd-3))) +(define-public ghc-hspec + (package + (name "ghc-hspec") + (version "2.2.0") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/hspec/hspec-" + version + ".tar.gz")) + (sha256 + (base32 + "0zqisxznlbszivsgy3irvf566zhcr6ipqqj3x9i7pj5hy913jwqf")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-hspec-core" ,ghc-hspec-core) + ("hspec-discover" ,hspec-discover) + ("ghc-hspec-expectations" ,ghc-hspec-expectations) + ("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-hunit" ,ghc-hunit))) + (inputs + `(("ghc-stringbuilder" ,ghc-stringbuilder) + ("ghc-hspec-meta" ,ghc-hspec-meta))) + (home-page "http://hspec.github.io/") + (synopsis "Testing Framework for Haskell") + (description "This library provides the Hspec testing framework for +Haskell, inspired by the Ruby library RSpec.") + (license expat))) + (define-public ghc-hspec-expectations (package (name "ghc-hspec-expectations") -- cgit v1.2.3 From 9d5f0399f9e292cc4f319c2d3b3677d2722177e1 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 21:08:15 +0200 Subject: gnu: Add ghc-regex-base. * gnu/packages/haskell.scm (ghc-regex-base): New variable. --- gnu/packages/haskell.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 3c8c1fce75..d80eaf5dcd 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -938,6 +938,30 @@ transformers 0.2 or 0.3 compatibility to run on old versions of the platform, but also need those types.") (license bsd-3))) +(define-public ghc-regex-base + (package + (name "ghc-regex-base") + (version "0.93.2") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/regex-base/regex-base-" + version + ".tar.gz")) + (sha256 + (base32 + "0y1j4h2pg12c853nzmczs263di7xkkmlnsq5dlp5wgbgl49mgp10")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-mtl" ,ghc-mtl))) + (home-page + "http://sourceforge.net/projects/lazy-regex") + (synopsis "Replaces/Enhances Text.Regex") + (description "@code{Text.Regex.Base} provides the interface API for +regex-posix, regex-pcre, regex-parsec, regex-tdfa, regex-dfa.") + (license bsd-3))) + (define-public ghc-exceptions (package (name "ghc-exceptions") -- cgit v1.2.3 From 76ae28f16beac4df3aea7557d0487ea00fd7f30d Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 21:08:39 +0200 Subject: gnu: Add ghc-appar. * gnu/packages/haskell.scm (ghc-appar): New variable. --- gnu/packages/haskell.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index d80eaf5dcd..0f075be00a 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -962,6 +962,28 @@ but also need those types.") regex-posix, regex-pcre, regex-parsec, regex-tdfa, regex-dfa.") (license bsd-3))) +(define-public ghc-appar + (package + (name "ghc-appar") + (version "0.1.4") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/appar/appar-" + version + ".tar.gz")) + (sha256 + (base32 + "09jb9ij78fdkz2qk66rw99q19qnm504dpv0yq0pjsl6xwjmndsjq")))) + (build-system haskell-build-system) + (home-page + "http://hackage.haskell.org/package/appar") + (synopsis "Simple applicative parser") + (description "This package provides a simple applicative parser in Parsec +style.") + (license bsd-3))) + (define-public ghc-exceptions (package (name "ghc-exceptions") -- cgit v1.2.3 From 78c5b39d0877eca8fa0c18e239f1bcf966b7a01a Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 21:09:00 +0200 Subject: gnu: Add ghc-safe. * gnu/packages/haskell.scm (ghc-safe): New variable. --- gnu/packages/haskell.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 0f075be00a..c6dea86d64 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -984,6 +984,28 @@ regex-posix, regex-pcre, regex-parsec, regex-tdfa, regex-dfa.") style.") (license bsd-3))) +(define-public ghc-safe + (package + (name "ghc-safe") + (version "0.3.9") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/safe/safe-" + version + ".tar.gz")) + (sha256 + (base32 + "1jdnp5zhvalf1xy8i872n29nljfjz6lnl9ghj80ffisrnnkrwcfh")))) + (build-system haskell-build-system) + (home-page "https://github.com/ndmitchell/safe#readme") + (synopsis "Library of safe (exception free) functions") + (description "This library provides wrappers around @code{Prelude} and +@code{Data.List} functions, such as @code{head} and @code{!!}, that can throw +exceptions.") + (license bsd-3))) + (define-public ghc-exceptions (package (name "ghc-exceptions") -- cgit v1.2.3 From 476f7bab8b1782b9c6a52f2146c4c03b49fb0718 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 21:09:27 +0200 Subject: gnu: Add ghc-generic-deriving. * gnu/packages/haskell.scm (ghc-generic-deriving): New variable. --- gnu/packages/haskell.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index c6dea86d64..e75e46ba7e 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -1006,6 +1006,27 @@ style.") exceptions.") (license bsd-3))) +(define-public ghc-generic-deriving + (package + (name "ghc-generic-deriving") + (version "1.8.0") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/generic-deriving/generic-deriving-" + version + ".tar.gz")) + (sha256 + (base32 + "1kc6lhdanls6kgpk8xv5xi14lz1sngcd8xn930hkf7ilq4kxkcr6")))) + (build-system haskell-build-system) + (home-page "https://hackage.haskell.org/package/generic-deriving") + (synopsis "Generalise the deriving mechanism to arbitrary classes") + (description "This package provides functionality for generalising the +deriving mechanism in Haskell to arbitrary classes.") + (license bsd-3))) + (define-public ghc-exceptions (package (name "ghc-exceptions") -- cgit v1.2.3 From b10f7be3e36473614cf3d1bbd852d30eb3f63218 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 21:10:01 +0200 Subject: gnu: Add ghc-pcre-light. * gnu/packages/haskell.scm (ghc-pcre-light): New variable. --- gnu/packages/haskell.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index e75e46ba7e..1775e8eb28 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -37,6 +37,7 @@ #:use-module (gnu packages multiprecision) #:use-module (gnu packages ncurses) #:use-module (gnu packages python) + #:use-module (gnu packages pcre) #:use-module (gnu packages xorg)) (define ghc-bootstrap-x86_64-7.8.4 @@ -1027,6 +1028,31 @@ exceptions.") deriving mechanism in Haskell to arbitrary classes.") (license bsd-3))) +(define-public ghc-pcre-light + (package + (name "ghc-pcre-light") + (version "0.4.0.3") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/pcre-light/pcre-light-" + version + ".tar.gz")) + (sha256 + (base32 + "0l1df2sk5qwf424bvb8mbdkr2xjg43fi92n5r22yd7vm1zz0jqvf")))) + (build-system haskell-build-system) + (inputs + `(("pcre" ,pcre))) + (home-page "https://github.com/Daniel-Diaz/pcre-light") + (synopsis "Haskell library for Perl 5 compatible regular expressions") + (description "This package provides a small, efficient, and portable regex +library for Perl 5 compatible regular expressions. The PCRE library is a set +of functions that implement regular expression pattern matching using the same +syntax and semantics as Perl 5.") + (license bsd-3))) + (define-public ghc-exceptions (package (name "ghc-exceptions") -- cgit v1.2.3 From 748463bec4db837a9f510cd6cad0a9237795d53a Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 21:10:24 +0200 Subject: gnu: Add ghc-logict. * gnu/packages/haskell.scm (ghc-logict): New variable. --- gnu/packages/haskell.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 1775e8eb28..0d28fd6b7c 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -1053,6 +1053,31 @@ of functions that implement regular expression pattern matching using the same syntax and semantics as Perl 5.") (license bsd-3))) +(define-public ghc-logict + (package + (name "ghc-logict") + (version "0.6.0.2") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/logict/logict-" + version + ".tar.gz")) + (sha256 + (base32 + "07hnirv6snnym2r7iijlfz00b60jpy2856zvqxh989q0in7bd0hi")))) + (build-system haskell-build-system) + (inputs `(("ghc-mtl" ,ghc-mtl))) + (home-page "http://code.haskell.org/~dolio/") + (synopsis "Backtracking logic-programming monad") + (description "This library provides a continuation-based, backtracking, +logic programming monad. An adaptation of the two-continuation implementation +found in the paper \"Backtracking, Interleaving, and Terminating Monad +Transformers\" available @uref{http://okmij.org/ftp/papers/LogicT.pdf, +online}.") + (license bsd-3))) + (define-public ghc-exceptions (package (name "ghc-exceptions") -- cgit v1.2.3 From d10fed28b820dcd0a287d3aead15a87602985100 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 21:11:02 +0200 Subject: gnu: Add ghc-xml. * gnu/packages/haskell.scm (ghc-xml): New variable. --- gnu/packages/haskell.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 0d28fd6b7c..74a8c2f67d 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -1078,6 +1078,28 @@ Transformers\" available @uref{http://okmij.org/ftp/papers/LogicT.pdf, online}.") (license bsd-3))) +(define-public ghc-xml + (package + (name "ghc-xml") + (version "1.3.14") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/xml/xml-" + version + ".tar.gz")) + (sha256 + (base32 + "0g814lj7vaxvib2g3r734221k80k7ap9czv9hinifn8syals3l9j")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-text" ,ghc-text))) + (home-page "http://code.galois.com") + (synopsis "Simple XML library for Haskell") + (description "This package provides a simple XML library for Haskell.") + (license bsd-3))) + (define-public ghc-exceptions (package (name "ghc-exceptions") -- cgit v1.2.3 From 2108eac211c44ecaf12bcd8662d757737585677e Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 21:11:15 +0200 Subject: gnu: Add ghc-quickcheck-unicode. * gnu/packages/haskell.scm (ghc-quickcheck-unicode): New variable. --- gnu/packages/haskell.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 74a8c2f67d..0a8cb01f6c 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -1175,6 +1175,29 @@ installed.") writing to stdout and other handles.") (license bsd-3))) +(define-public ghc-quickcheck-unicode + (package + (name "ghc-quickcheck-unicode") + (version "1.0.0.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/quickcheck-unicode/quickcheck-unicode-" + version + ".tar.gz")) + (sha256 + (base32 + "1a8nl6x7l9b22yx61wm0bh2n1xzb1hd5i5zgg1w4fpaivjnrrhi4")))) + (build-system haskell-build-system) + (inputs `(("ghc-quickcheck" ,ghc-quickcheck))) + (home-page + "https://github.com/bos/quickcheck-unicode") + (synopsis "Generator functions Unicode-related tests") + (description "This package provides generator and shrink functions for +testing Unicode-related software.") + (license bsd-3))) + (define-public ghc-quickcheck-io (package (name "ghc-quickcheck-io") -- cgit v1.2.3 From 565f040df469091ffedc31f2d12ac10bf5f341b6 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 01:01:17 +0200 Subject: gnu: ghc-split: Update dependencies. * gnu/packages/haskell.scm (ghc-split): Update package dependencies for compatibility with new GHC. Replicate Cabal-file patch from Hackage. --- gnu/packages/haskell.scm | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 0a8cb01f6c..dde297d6aa 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -1389,15 +1389,22 @@ and high speed.") ".tar.gz")) (sha256 (base32 - "0xa3j0gwr6k5vizxybnzk5fgb3pppgspi6mysnp2gwjp2dbrxkzr")))) + "0xa3j0gwr6k5vizxybnzk5fgb3pppgspi6mysnp2gwjp2dbrxkzr")) + (modules '((guix build utils))) + (snippet + ;; The Cabal file on Hackage is updated, but the tar.gz does not + ;; include it. See + ;; . + '(substitute* "split.cabal" + (("base <4.8") "base <4.9"))))) (build-system haskell-build-system) (inputs `(("ghc-quickcheck" ,ghc-quickcheck))) (home-page "http://hackage.haskell.org/package/split") - (synopsis - "Combinator library for splitting lists") - (description "A collection of various methods for splitting lists into -parts, akin to the 'split' function found in several mainstream languages.") + (synopsis "Combinator library for splitting lists") + (description "This package provides a collection of Haskell functions for +splitting lists into parts, akin to the @code{split} function found in several +mainstream languages.") (license bsd-3))) (define-public ghc-parsec -- cgit v1.2.3 From 4e1254971d121806db23901a898eec2e9dcda69b Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 21:12:46 +0200 Subject: gnu: Add ghc-annotated-wl-pprint. * gnu/packages/haskell.scm (ghc-annotated-wl-pprint): New variable. --- gnu/packages/haskell.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index dde297d6aa..59cb473601 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -1375,6 +1375,31 @@ optimized for performance critical use, both in terms of large data quantities and high speed.") (license bsd-3))) +(define-public ghc-annotated-wl-pprint + (package + (name "ghc-annotated-wl-pprint") + (version "0.7.0") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/annotated-wl-pprint" + "/annotated-wl-pprint-" version + ".tar.gz")) + (sha256 + (base32 + "061xfz6qany3wf95csl8dcik2pz22cn8iv1qchhm16isw5zjs9hc")))) + (build-system haskell-build-system) + (home-page + "https://github.com/david-christiansen/annotated-wl-pprint") + (synopsis + "The Wadler/Leijen Pretty Printer, with annotation support") + (description "This is a modified version of wl-pprint, which was based on +Wadler's paper \"A Prettier Printer\". This version allows the library user +to annotate the text with semantic information, which can later be rendered in +a variety of ways.") + (license bsd-3))) + (define-public ghc-split (package (name "ghc-split") -- cgit v1.2.3 From e93333483cb9228c805410abf5c1f1b9fe064f6b Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 21:13:08 +0200 Subject: gnu: Add ghc-ansi-wl-pprint. * gnu/packages/haskell.scm (ghc-ansi-wl-pprint): New variable. --- gnu/packages/haskell.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 59cb473601..7bf8ece6f0 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -1400,6 +1400,30 @@ to annotate the text with semantic information, which can later be rendered in a variety of ways.") (license bsd-3))) +(define-public ghc-ansi-wl-pprint + (package + (name "ghc-ansi-wl-pprint") + (version "0.6.7.3") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/ansi-wl-pprint/ansi-wl-pprint-" + version + ".tar.gz")) + (sha256 + (base32 + "025pyphsjf0dnbrmj5nscbi6gzyigwgp3ifxb3psn7kji6mfr29p")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-ansi-terminal" ,ghc-ansi-terminal))) + (home-page "http://github.com/ekmett/ansi-wl-pprint") + (synopsis "Wadler/Leijen Pretty Printer for colored ANSI terminal output") + (description "This is a pretty printing library based on Wadler's paper +\"A Prettier Printer\". It has been enhanced with support for ANSI terminal +colored output using the ansi-terminal package.") + (license bsd-3))) + (define-public ghc-split (package (name "ghc-split") -- cgit v1.2.3 From 3410470d16c1295161f3cc54ba6ac801e3cee85a Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 01:11:56 +0200 Subject: gnu: Add ghc-base64-bytestring. * gnu/packages/haskell.scm (ghc-base64-bytestring): New variable. --- gnu/packages/haskell.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 7bf8ece6f0..cfa39acf15 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -1375,6 +1375,28 @@ optimized for performance critical use, both in terms of large data quantities and high speed.") (license bsd-3))) +(define-public ghc-base64-bytestring + (package + (name "ghc-base64-bytestring") + (version "1.0.0.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/base64-bytestring/base64-bytestring-" + version + ".tar.gz")) + (sha256 + (base32 + "0l1v4ddjdsgi9nqzyzcxxj76rwar3lzx8gmwf2r54bqan3san9db")))) + (build-system haskell-build-system) + (arguments `(#:tests? #f)) ; FIXME: testing libraries are missing. + (home-page "https://github.com/bos/base64-bytestring") + (synopsis "Base64 encoding and decoding for ByteStrings") + (description "This library provides fast base64 encoding and decoding for +Haskell @code{ByteString}s.") + (license bsd-3))) + (define-public ghc-annotated-wl-pprint (package (name "ghc-annotated-wl-pprint") -- cgit v1.2.3 From 10de4306d623cb01475653190e8aa8eafee3367b Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 01:14:29 +0200 Subject: gnu: Add ghc-uniplate. * gnu/packages/haskell.scm (ghc-uniplate): New variable. --- gnu/packages/haskell.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index cfa39acf15..b11b0de624 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -1375,6 +1375,32 @@ optimized for performance critical use, both in terms of large data quantities and high speed.") (license bsd-3))) +(define-public ghc-uniplate + (package + (name "ghc-uniplate") + (version "1.6.12") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/uniplate/uniplate-" + version + ".tar.gz")) + (sha256 + (base32 + "1dx8f9aw27fz8kw0ad1nm6355w5rdl7bjvb427v2bsgnng30pipw")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-syb" ,ghc-syb) + ("ghc-hashable" ,ghc-hashable) + ("ghc-unordered-containers" ,ghc-unordered-containers))) + (home-page "http://community.haskell.org/~ndm/uniplate/") + (synopsis "Simple, concise and fast generic operations") + (description "Uniplate is a library for writing simple and concise generic +operations. Uniplate has similar goals to the original Scrap Your Boilerplate +work, but is substantially simpler and faster.") + (license bsd-3))) + (define-public ghc-base64-bytestring (package (name "ghc-base64-bytestring") -- cgit v1.2.3 From 49465144373fad97afb5e04529d0f66505c1f2bc Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 21:14:40 +0200 Subject: gnu: Add ghc-fingertree. * gnu/packages/haskell.scm (ghc-fingertree): New variable. --- gnu/packages/haskell.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index b11b0de624..fb2339b852 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -1847,4 +1847,29 @@ over threads in Haskell, in which @code{Async a} is a concurrent thread that will eventually deliver a value of type @code{a}.") (license bsd-3))) +(define-public ghc-fingertree + (package + (name "ghc-fingertree") + (version "0.1.1.0") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/fingertree/fingertree-" + version + ".tar.gz")) + (sha256 + (base32 + "1w6x3kp3by5yjmam6wlrf9vap5l5rrqaip0djbrdp0fpf2imn30n")))) + (build-system haskell-build-system) + (arguments `(#:tests? #f)) ; FIXME: testing libraries are missing. + (home-page "http://hackage.haskell.org/package/fingertree") + (synopsis "Generic finger-tree structure") + (description "This library provides finger trees, a general sequence +representation with arbitrary annotations, for use as a base for +implementations of various collection types. It includes examples, as +described in section 4 of Ralf Hinze and Ross Paterson, \"Finger trees: a +simple general-purpose data structure\".") + (license bsd-3))) + ;;; haskell.scm ends here -- cgit v1.2.3 From 918f690a83af54d1735acd64f68149940ce694b9 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 21:14:55 +0200 Subject: gnu: Add ghc-optparse-applicative. * gnu/packages/haskell.scm (ghc-optparse-applicative): New variable. --- gnu/packages/haskell.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index fb2339b852..f17ae3c60e 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -1872,4 +1872,27 @@ described in section 4 of Ralf Hinze and Ross Paterson, \"Finger trees: a simple general-purpose data structure\".") (license bsd-3))) +(define-public ghc-optparse-applicative + (package + (name "ghc-optparse-applicative") + (version "0.11.0.2") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/optparse-applicative" + "/optparse-applicative-" version ".tar.gz")) + (sha256 + (base32 + "0ni52ii9555jngljvzxn1ngicr6i2w647ww3rzhdrmng04y95iii")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-transformers-compat" ,ghc-transformers-compat) + ("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint))) + (home-page "https://github.com/pcapriotti/optparse-applicative") + (synopsis "Utilities and combinators for parsing command line options") + (description "This package provides utilities and combinators for parsing +command line options in Haskell.") + (license bsd-3))) + ;;; haskell.scm ends here -- cgit v1.2.3 From 09fb622cb36c2c8eb4163dfb4900c750461f0007 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 21:15:11 +0200 Subject: gnu: Add ghc-base-orphans. * gnu/packages/haskell.scm (ghc-base-orphans): New variable. --- gnu/packages/haskell.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index f17ae3c60e..968438cc55 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -1895,4 +1895,28 @@ simple general-purpose data structure\".") command line options in Haskell.") (license bsd-3))) +(define-public ghc-base-orphans + (package + (name "ghc-base-orphans") + (version "0.4.4") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/base-orphans/base-orphans-" + version + ".tar.gz")) + (sha256 + (base32 + "0hhgpwjvx7jhvlhsygmmf0q5hv2ymijzz4bjilicw99bmv13qcpl")))) + (build-system haskell-build-system) + (inputs + `(("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-hspec" ,ghc-hspec))) + (home-page "https://hackage.haskell.org/package/base-orphans") + (synopsis "Orphan instances for backwards compatibility") + (description "This package defines orphan instances that mimic instances +available in later versions of base to a wider (older) range of compilers.") + (license bsd-3))) + ;;; haskell.scm ends here -- cgit v1.2.3 From 6ecc4723c2b9f97cade7ff7a76d6d4a1fb4f2e72 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 01:24:54 +0200 Subject: gnu: Add ghc-vault. * gnu/packages/haskell.scm (ghc-vault): New variable. --- gnu/packages/haskell.scm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 968438cc55..2eec529218 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -1821,6 +1821,35 @@ be used to extend Hspec's functionality.") used to test the in-development version of Hspec.") (license expat))) +(define-public ghc-vault + (package + (name "ghc-vault") + (version "0.3.0.4") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/vault/vault-" + version + ".tar.gz")) + (sha256 + (base32 + "0ah6qrg71krc87f4vjy4b4shdd0mgyil8fikb3j6fl4kfwlg67jn")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-unordered-containers" ,ghc-unordered-containers) + ("ghc-hashable" ,ghc-hashable))) + (home-page + "https://github.com/HeinrichApfelmus/vault") + (synopsis "Persistent store for arbitrary values") + (description "This package provides vaults for Haskell. A vault is a +persistent store for values of arbitrary types. It's like having first-class +access to the storage space behind @code{IORefs}. The data structure is +analogous to a bank vault, where you can access different bank boxes with +different keys; hence the name. Also provided is a @code{locker} type, +representing a store for a single element.") + (license bsd-3))) + (define-public ghc-async (package (name "ghc-async") -- cgit v1.2.3 From 899916b51ed6cfc4185a2ab97cd7af20c931d476 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 21:16:45 +0200 Subject: gnu: Add ghc-mmorph. * gnu/packages/haskell.scm (ghc-mmorph): New variable. --- gnu/packages/haskell.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 2eec529218..02ab82faca 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -1850,6 +1850,29 @@ different keys; hence the name. Also provided is a @code{locker} type, representing a store for a single element.") (license bsd-3))) +(define-public ghc-mmorph + (package + (name "ghc-mmorph") + (version "1.0.4") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/mmorph/mmorph-" + version + ".tar.gz")) + (sha256 + (base32 + "0k5zlzmnixfwcjrqvhgi3i6xg532b0gsjvc39v5jigw69idndqr2")))) + (build-system haskell-build-system) + (home-page + "http://hackage.haskell.org/package/mmorph") + (synopsis "Monad morphisms") + (description + "This library provides monad morphism utilities, most commonly used for +manipulating monad transformer stacks.") + (license bsd-3))) + (define-public ghc-async (package (name "ghc-async") -- cgit v1.2.3 From c27f3aced3d3d9c109248f8664447a9fba067689 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 21:17:17 +0200 Subject: gnu: Add ghc-transformers-base. * gnu/packages/haskell.scm (ghc-transformers-base): New variable. --- gnu/packages/haskell.scm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 02ab82faca..935ee441bd 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -917,6 +917,35 @@ the paper \"Splittable Pseudorandom Number Generators Using Cryptographic Hashing\" by Claessen, Pałka for details and the rationale of the design.") (license bsd-3))) +(define-public ghc-transformers-base + (package + (name "ghc-transformers-base") + (version "0.4.4") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/transformers-base/transformers-base-" + version + ".tar.gz")) + (sha256 + (base32 + "11r3slgpgpra6zi2kjg3g60gvv17b1fh6qxipcpk8n86qx7lk8va")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-stm" ,ghc-stm))) + (inputs + `(("ghc-transformers-compat" ,ghc-transformers-compat))) + (home-page + "http://hackage.haskell.org/package/transformers-compat") + (synopsis + "Backported transformer library") + (description + "Backported versions of types that were added to transformers in +transformers 0.3 and 0.4 for users who need strict transformers 0.2 or 0.3 +compatibility to run on old versions of the platform.") + (license bsd-3))) + (define-public ghc-transformers-compat (package (name "ghc-transformers-compat") -- cgit v1.2.3 From 85160205074a3213cfd3168b786a2af5555f13a8 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 21:18:26 +0200 Subject: gnu: Add ghc-monad-control. * gnu/packages/haskell.scm (ghc-monad-control): New variable. --- gnu/packages/haskell.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 935ee441bd..717eef0a12 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -1902,6 +1902,32 @@ representing a store for a single element.") manipulating monad transformer stacks.") (license bsd-3))) +(define-public ghc-monad-control + (package + (name "ghc-monad-control") + (version "1.0.0.4") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/monad-control" + "/monad-control-" version ".tar.gz")) + (sha256 + (base32 + "07pn1p4m80wdd7gw62s4yny8rbvm60ka1q8qx5y1plznd8sbg179")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-stm" ,ghc-stm) + ("ghc-transformers-base" ,ghc-transformers-base) + ("ghc-transformers-compat" ,ghc-transformers-compat))) + (home-page "https://github.com/basvandijk/monad-control") + (synopsis "Monad transformers to lift control operations like exception +catching") + (description "This package defines the type class @code{MonadBaseControl}, +a subset of @code{MonadBase} into which generic control operations such as +@code{catch} can be lifted from @code{IO} or any other base monad.") + (license bsd-3))) + (define-public ghc-async (package (name "ghc-async") -- cgit v1.2.3 From 27e7c8b6a6c3a49ac8f734232c9e7f4407937a46 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 21:18:48 +0200 Subject: gnu: Add ghc-byteorder. * gnu/packages/haskell.scm (ghc-byteorder): New variable. --- gnu/packages/haskell.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 717eef0a12..7c07ff2dea 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -1928,6 +1928,30 @@ a subset of @code{MonadBase} into which generic control operations such as @code{catch} can be lifted from @code{IO} or any other base monad.") (license bsd-3))) +(define-public ghc-byteorder + (package + (name "ghc-byteorder") + (version "1.0.4") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/byteorder/byteorder-" + version + ".tar.gz")) + (sha256 + (base32 + "06995paxbxk8lldvarqpb3ygcjbg4v8dk4scib1rjzwlhssvn85x")))) + (build-system haskell-build-system) + (home-page + "http://community.haskell.org/~aslatter/code/byteorder") + (synopsis + "Exposes the native endianness of the system") + (description + "This package is for working with the native byte-ordering of the +system.") + (license bsd-3))) + (define-public ghc-async (package (name "ghc-async") -- cgit v1.2.3 From 9525e25fc1daa6c551ef6a979e8edd36c557931a Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 21:19:03 +0200 Subject: gnu: Add ghc-easy-file. * gnu/packages/haskell.scm (ghc-easy-file): New variable. --- gnu/packages/haskell.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 7c07ff2dea..d3fc7693dc 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -1952,6 +1952,27 @@ a subset of @code{MonadBase} into which generic control operations such as system.") (license bsd-3))) +(define-public ghc-easy-file + (package + (name "ghc-easy-file") + (version "0.2.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/easy-file/easy-file-" + version + ".tar.gz")) + (sha256 + (base32 + "0v75081bx4qzlqy29hh639nzlr7dncwza3qxbzm9njc4jarf31pz")))) + (build-system haskell-build-system) + (home-page + "http://github.com/kazu-yamamoto/easy-file") + (synopsis "File handling library for Haskell") + (description "This library provides file handling utilities for Haskell.") + (license bsd-3))) + (define-public ghc-async (package (name "ghc-async") -- cgit v1.2.3 From 71470eddfa585b45b1de0d3c7e2ba058ea88c5a6 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 13:56:59 +0200 Subject: gnu: Add ghc-base-compat. * gnu/packages/haskell.scm (ghc-base-compat): New variable. --- gnu/packages/haskell.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index d3fc7693dc..9dea805abe 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -1952,6 +1952,31 @@ a subset of @code{MonadBase} into which generic control operations such as system.") (license bsd-3))) +(define-public ghc-base-compat + (package + (name "ghc-base-compat") + (version "0.8.2") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/base-compat/base-compat-" + version + ".tar.gz")) + (sha256 + (base32 + "02m93hzgxg4bcnp7xcc2fdh2hrsc2h6fwl8hix5nx9k864kwf41q")))) + (build-system haskell-build-system) + (inputs + `(("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-hspec" ,ghc-hspec))) + (home-page "https://hackage.haskell.org/package/base-compat") + (synopsis "Haskell compiler compatibility library") + (description "This library provides functions available in later versions +of base to a wider range of compilers, without requiring the use of CPP +pragmas in your code.") + (license bsd-3))) + (define-public ghc-easy-file (package (name "ghc-easy-file") -- cgit v1.2.3 From 94e1dc7a57a4a1e4ab2003f04408e87088b25125 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 13:58:43 +0200 Subject: gnu: Add ghc-blaze-builder. * gnu/packages/haskell.scm (ghc-blaze-builder): New variable. --- gnu/packages/haskell.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 9dea805abe..a2650ce159 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -1977,6 +1977,34 @@ of base to a wider range of compilers, without requiring the use of CPP pragmas in your code.") (license bsd-3))) +(define-public ghc-blaze-builder + (package + (name "ghc-blaze-builder") + (version "0.4.0.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/blaze-builder/blaze-builder-" + version + ".tar.gz")) + (sha256 + (base32 + "1id3w33x9f7q5m3xpggmvzw03bkp94bpfyz81625bldqgf3yqdn1")))) + (build-system haskell-build-system) + (arguments `(#:tests? #f)) ; FIXME: Missing test libraries. + (propagated-inputs + `(("ghc-text" ,ghc-text) + ("ghc-utf8-string" ,ghc-utf8-string))) + (home-page "http://github.com/lpsmith/blaze-builder") + (synopsis "Efficient buffered output") + (description "This library provides an implementation of the older +@code{blaze-builder} interface in terms of the new builder that shipped with +@code{bytestring-0.10.4.0}. This implementation is mostly intended as a +bridge to the new builder, so that code that uses the old interface can +interoperate with code that uses the new implementation.") + (license bsd-3))) + (define-public ghc-easy-file (package (name "ghc-easy-file") -- cgit v1.2.3 From a311f5d00089287b1a6192f65397d93a932027c8 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 14:00:17 +0200 Subject: gnu: Add ghc-blaze-markup. * gnu/packages/haskell.scm (ghc-blaze-markup): New variable. --- gnu/packages/haskell.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index a2650ce159..4c52f02e72 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -2005,6 +2005,31 @@ bridge to the new builder, so that code that uses the old interface can interoperate with code that uses the new implementation.") (license bsd-3))) +(define-public ghc-blaze-markup + (package + (name "ghc-blaze-markup") + (version "0.7.0.3") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/blaze-markup/blaze-markup-" + version + ".tar.gz")) + (sha256 + (base32 + "080vlhd8dwjxrma4bb524lh8gxs5lm3xh122icy6lnnyipla0s9y")))) + (build-system haskell-build-system) + (arguments `(#:tests? #f)) ; FIXME: testing libraries are missing. + (propagated-inputs + `(("ghc-blaze-builder" ,ghc-blaze-builder) + ("ghc-text" ,ghc-text))) + (home-page "http://jaspervdj.be/blaze") + (synopsis "Fast markup combinator library for Haskell") + (description "This library provides core modules of a markup combinator +library for Haskell.") + (license bsd-3))) + (define-public ghc-easy-file (package (name "ghc-easy-file") -- cgit v1.2.3 From a195cd795f2d09f167ce68f3a75e9dee6845ae35 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 14:01:15 +0200 Subject: gnu: Add ghc-blaze-html. * gnu/packages/haskell.scm (ghc-blaze-html): New variable. --- gnu/packages/haskell.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 4c52f02e72..c43bbdcd86 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -2030,6 +2030,31 @@ interoperate with code that uses the new implementation.") library for Haskell.") (license bsd-3))) +(define-public ghc-blaze-html + (package + (name "ghc-blaze-html") + (version "0.8.1.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/blaze-html/blaze-html-" + version + ".tar.gz")) + (sha256 + (base32 + "1dnw50kh0s405cg9i2y4a8awanhj3bqzk21jwgfza65kcjby7lpq")))) + (build-system haskell-build-system) + (arguments `(#:tests? #f)) ; FIXME: testing libraries are missing. + (propagated-inputs + `(("ghc-blaze-builder" ,ghc-blaze-builder) + ("ghc-text" ,ghc-text) + ("ghc-blaze-markup" ,ghc-blaze-markup))) + (home-page "http://jaspervdj.be/blaze") + (synopsis "Fast HTML combinator library") + (description "This library provides HTML combinators for Haskell.") + (license bsd-3))) + (define-public ghc-easy-file (package (name "ghc-easy-file") -- cgit v1.2.3 From cb2119e4f5da8bb34ea865504250759138bf38ba Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 14:03:37 +0200 Subject: gnu: Add ghc-doctest. * gnu/packages/haskell.scm (ghc-doctest): New variable. --- gnu/packages/haskell.scm | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index c43bbdcd86..d7e07efcdf 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -2174,4 +2174,39 @@ command line options in Haskell.") available in later versions of base to a wider (older) range of compilers.") (license bsd-3))) +(define-public ghc-doctest + (package + (name "ghc-doctest") + (version "0.10.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/doctest/doctest-" + version + ".tar.gz")) + (sha256 + (base32 + "1jbyhzbi2hfrfg7vbkpj6vriaap8cn99nnmzwcfscwaijz09jyrm")))) + (build-system haskell-build-system) + (arguments `(#:tests? #f)) ; FIXME: missing test framework + (propagated-inputs + `(("ghc-syb" ,ghc-syb) + ("ghc-paths" ,ghc-paths))) + (inputs + `(("ghc-base-compat" ,ghc-base-compat) + ("ghc-hunit" ,ghc-hunit) + ("ghc-hspec" ,ghc-hspec) + ("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-stringbuilder" ,ghc-stringbuilder) + ("ghc-silently" ,ghc-silently) + ("ghc-setenv" ,ghc-setenv))) + (home-page + "https://github.com/sol/doctest#readme") + (synopsis "Test interactive Haskell examples") + (description "The doctest program checks examples in source code comments. +It is modeled after doctest for Python, see +@uref{http://docs.python.org/library/doctest.html, the Doctest website}.") + (license expat))) + ;;; haskell.scm ends here -- cgit v1.2.3 From bc0fb230f92a5ad2ef04b9bdcc08b08535314b2f Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 14:05:15 +0200 Subject: gnu: Add ghc-auto-update. * gnu/packages/haskell.scm (ghc-auto-update): New variable. --- gnu/packages/haskell.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index d7e07efcdf..f54af62f46 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -2174,6 +2174,27 @@ command line options in Haskell.") available in later versions of base to a wider (older) range of compilers.") (license bsd-3))) +(define-public ghc-auto-update + (package + (name "ghc-auto-update") + (version "0.1.2.2") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/auto-update/auto-update-" + version + ".tar.gz")) + (sha256 + (base32 + "1ns4c5mqhnm7hsiqxf1ivjs5fflyq92b16ldzrcl0p85631h0c3v")))) + (build-system haskell-build-system) + (home-page "https://github.com/yesodweb/wai") + (synopsis "Efficiently run periodic, on-demand actions") + (description "This library provides mechanisms to efficiently run +periodic, on-demand actions in Haskell.") + (license expat))) + (define-public ghc-doctest (package (name "ghc-doctest") -- cgit v1.2.3 From 7f0d5857e64f33f3843248ddac68a441a47a4e06 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 14:07:16 +0200 Subject: gnu: Add ghc-tagged. * gnu/packages/haskell.scm (ghc-tagged): New variable. --- gnu/packages/haskell.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index f54af62f46..1d5fa6c6a5 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -2195,6 +2195,27 @@ available in later versions of base to a wider (older) range of compilers.") periodic, on-demand actions in Haskell.") (license expat))) +(define-public ghc-tagged + (package + (name "ghc-tagged") + (version "0.8.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/tagged/tagged-" + version + ".tar.gz")) + (sha256 + (base32 + "1hc2qzhhz5p1xd8k03sklrdnhcflkwhgpl82k6fam8yckww9ipav")))) + (build-system haskell-build-system) + (home-page "https://hackage.haskell.org/package/tagged") + (synopsis "Haskell phantom types to avoid passing dummy arguments") + (description "This library provides phantom types for Haskell 98, to avoid +having to unsafely pass dummy arguments.") + (license bsd-3))) + (define-public ghc-doctest (package (name "ghc-doctest") -- cgit v1.2.3 From a24ec6f271675acb760d197a1a6eb8ba395cb5d0 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 14:11:03 +0200 Subject: gnu: Add ghc-unbounded-delays. * gnu/packages/haskell.scm (ghc-unbounded-delays): New variable. --- gnu/packages/haskell.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 1d5fa6c6a5..63b1603a47 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -2216,6 +2216,29 @@ periodic, on-demand actions in Haskell.") having to unsafely pass dummy arguments.") (license bsd-3))) +(define-public ghc-unbounded-delays + (package + (name "ghc-unbounded-delays") + (version "0.1.0.9") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/unbounded-delays/unbounded-delays-" + version + ".tar.gz")) + (sha256 + (base32 + "1f4h87503m3smhip432q027wj3zih18pmz2rnafh60589ifcl420")))) + (build-system haskell-build-system) + (home-page "https://github.com/basvandijk/unbounded-delays") + (synopsis "Unbounded thread delays and timeouts") + (description "The @code{threadDelay} and @code{timeout} functions from the +Haskell base library use the bounded @code{Int} type for specifying the delay +or timeout period. This package provides alternative functions which use the +unbounded @code{Integer} type.") + (license bsd-3))) + (define-public ghc-doctest (package (name "ghc-doctest") -- cgit v1.2.3 From 685502dc936dc7362026dca6a6267651db7c6049 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 14:12:38 +0200 Subject: gnu: Add ghc-iproute. * gnu/packages/haskell.scm (ghc-iproute): New variable. --- gnu/packages/haskell.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 63b1603a47..d15a9ad4cd 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -968,6 +968,36 @@ transformers 0.2 or 0.3 compatibility to run on old versions of the platform, but also need those types.") (license bsd-3))) +(define-public ghc-iproute + (package + (name "ghc-iproute") + (version "1.7.0") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/iproute/iproute-" + version + ".tar.gz")) + (sha256 + (base32 + "1ply0i110c2sppjbfyysgw48jfjnsbam5zwil8xws0hp20rh1pb5")))) + (build-system haskell-build-system) + (arguments `(#:tests? #f)) ; FIXME: Tests cannot find System.ByteOrder, + ; exported by ghc-byteorder. Doctest issue. + (propagated-inputs + `(("ghc-appar" ,ghc-appar) + ("ghc-byteorder" ,ghc-byteorder))) + (inputs + `(("ghc-network" ,ghc-network) + ("ghc-safe" ,ghc-safe))) + (home-page "http://www.mew.org/~kazu/proj/iproute/") + (synopsis "IP routing table") + (description "IP Routing Table is a tree of IP ranges to search one of +them on the longest match base. It is a kind of TRIE with one way branching +removed. Both IPv4 and IPv6 are supported.") + (license bsd-3))) + (define-public ghc-regex-base (package (name "ghc-regex-base") -- cgit v1.2.3 From 5ef40cb26a70a48680ce32875d7f0c4f2a95c746 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 14:13:33 +0200 Subject: gnu: Add ghc-unix-time. * gnu/packages/haskell.scm (ghc-unix-time): New variable. --- gnu/packages/haskell.scm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index d15a9ad4cd..ebaf1f75e0 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -968,6 +968,38 @@ transformers 0.2 or 0.3 compatibility to run on old versions of the platform, but also need those types.") (license bsd-3))) +(define-public ghc-unix-time + (package + (name "ghc-unix-time") + (version "0.3.6") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/unix-time/unix-time-" + version + ".tar.gz")) + (sha256 + (base32 + "0dyvyxwaffb94bgri1wc4b9wqaasy32pyjn0lww3dqblxv8fn5ax")))) + (build-system haskell-build-system) + (arguments + `(#:tests? #f ; FIXME: Test fails with "System.Time not found". This is + ; weird, that should be provided by GHC 7.10.2. + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-/bin/sh + (lambda _ + (setenv "CONFIG_SHELL" "sh")))))) + (propagated-inputs + `(("ghc-old-time" ,ghc-old-time) + ("ghc-old-locale" ,ghc-old-locale))) + (home-page "http://hackage.haskell.org/package/unix-time") + (synopsis "Unix time parser/formatter and utilities") + (description "This library provides fast parsing and formatting utilities +for Unix time in Haskell.") + (license bsd-3))) + (define-public ghc-iproute (package (name "ghc-iproute") -- cgit v1.2.3 From 801cc88daf1ac810c95db2e5992c939bbc115d78 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 14:14:34 +0200 Subject: gnu: Add ghc-unix-compat. * gnu/packages/haskell.scm (ghc-unix-compat): New variable. --- gnu/packages/haskell.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index ebaf1f75e0..40d869dfc1 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -1000,6 +1000,30 @@ but also need those types.") for Unix time in Haskell.") (license bsd-3))) +(define-public ghc-unix-compat + (package + (name "ghc-unix-compat") + (version "0.4.1.4") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/unix-compat/unix-compat-" + version + ".tar.gz")) + (sha256 + (base32 + "0jxk7j5pz2kgfpqr4hznndjg31pqj5xg2qfc5308fcn9xyg1myps")))) + (build-system haskell-build-system) + (home-page + "http://github.com/jystic/unix-compat") + (synopsis "Portable POSIX-compatibility layer") + (description + "This package provides portable implementations of parts of the unix +package. This package re-exports the unix package when available. When it +isn't available, portable implementations are used.") + (license bsd-3))) + (define-public ghc-iproute (package (name "ghc-iproute") -- cgit v1.2.3 From dc5befb126c0b861f2bfb512c0cf8e336f1c6a21 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 14:18:44 +0200 Subject: gnu: Add ghc-quickcheck-instances. * gnu/packages/haskell.scm (ghc-quickcheck-instances): New variable. --- gnu/packages/haskell.scm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 40d869dfc1..5ef3afd7e7 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -1290,6 +1290,35 @@ installed.") writing to stdout and other handles.") (license bsd-3))) +(define-public ghc-quickcheck-instances + (package + (name "ghc-quickcheck-instances") + (version "0.3.11") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/" + "quickcheck-instances/quickcheck-instances-" + version ".tar.gz")) + (sha256 + (base32 + "041s6963czs1pz0fc9cx17lgd6p83czqy2nxji7bhxqxwl2j15h2")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-old-time" ,ghc-old-time) + ("ghc-unordered-containers" ,ghc-unordered-containers))) + (inputs + `(("ghc-hashable" ,ghc-hashable) + ("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-text" ,ghc-text))) + (home-page + "https://github.com/aslatter/qc-instances") + (synopsis "Common quickcheck instances") + (description "This package provides QuickCheck instances for types +provided by the Haskell Platform.") + (license bsd-3))) + (define-public ghc-quickcheck-unicode (package (name "ghc-quickcheck-unicode") -- cgit v1.2.3 From fe8f53e39b05fd77876e4a9fbfac2d38136a5763 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 14:19:12 +0200 Subject: gnu: Add ghc-http-types. * gnu/packages/haskell.scm (ghc-http-types): New variable. --- gnu/packages/haskell.scm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 5ef3afd7e7..9af661ae3f 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -1024,6 +1024,35 @@ package. This package re-exports the unix package when available. When it isn't available, portable implementations are used.") (license bsd-3))) +(define-public ghc-http-types + (package + (name "ghc-http-types") + (version "0.9") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/http-types/http-types-" + version + ".tar.gz")) + (sha256 + (base32 + "0ny15jgm5skhs2yx6snr13lrnw19hwjgfygrpsmhib8wqa8cz8cc")))) + (build-system haskell-build-system) + (arguments `(#:tests? #f)) ; FIXME: Tests cannot find + ; Blaze.Bytestring.Builder, which should be + ; provided by ghc-blaze-builder. + (propagated-inputs + `(("ghc-case-insensitive" ,ghc-case-insensitive) + ("ghc-blaze-builder" ,ghc-blaze-builder))) + (inputs + `(("ghc-text" ,ghc-text))) + (home-page "https://github.com/aristidb/http-types") + (synopsis "Generic HTTP types for Haskell") + (description "This package provides generic HTTP types for Haskell (for +both client and server code).") + (license bsd-3))) + (define-public ghc-iproute (package (name "ghc-iproute") -- cgit v1.2.3 From 878535bd81b28a27549c589c8084ed3edfaea22c Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 14:27:33 +0200 Subject: gnu: Add ghc-nats. * gnu/packages/haskell.scm (ghc-nats): New variable. --- gnu/packages/haskell.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 9af661ae3f..fcbd231d7b 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -2383,6 +2383,29 @@ or timeout period. This package provides alternative functions which use the unbounded @code{Integer} type.") (license bsd-3))) +(define-public ghc-nats + (package + (name "ghc-nats") + (version "1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/nats/nats-" + version + ".tar.gz")) + (sha256 + (base32 + "0r6s8l4s0yq3x2crrkv0b8zac13magfasr9v8hnq6rn1icsfhic0")))) + (build-system haskell-build-system) + (arguments `(#:haddock? #f)) + (inputs + `(("ghc-hashable" ,ghc-hashable))) + (home-page "https://hackage.haskell.org/package/nats") + (synopsis "Natural numbers") + (description "This library provides the natural numbers for Haskell.") + (license bsd-3))) + (define-public ghc-doctest (package (name "ghc-doctest") -- cgit v1.2.3 From 946fa8c9b0fe6d7c8663b0dc23659902f8634318 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 14:29:28 +0200 Subject: gnu: Add ghc-semigroups. * gnu/packages/haskell.scm (ghc-semigroups): New variable. --- gnu/packages/haskell.scm | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index fcbd231d7b..e0fc9f4aff 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -2406,6 +2406,39 @@ unbounded @code{Integer} type.") (description "This library provides the natural numbers for Haskell.") (license bsd-3))) +(define-public ghc-semigroups + (package + (name "ghc-semigroups") + (version "0.17.0.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/semigroups/semigroups-" + version + ".tar.gz")) + (sha256 + (base32 + "0gvpfi7s6ys4qha3y9a1zl1a15gf9cgg33wjb94ghg82ivcxnc3r")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-nats" ,ghc-nats) + ("ghc-tagged" ,ghc-tagged) + ("ghc-unordered-containers" ,ghc-unordered-containers))) + (inputs + `(("ghc-text" ,ghc-text) + ("ghc-hashable" ,ghc-hashable))) + (home-page "http://github.com/ekmett/semigroups/") + (synopsis "Semigroup operations for Haskell") + (description "This package provides semigroups for Haskell. In +mathematics, a semigroup is an algebraic structure consisting of a set +together with an associative binary operation. A semigroup generalizes a +monoid in that there might not exist an identity element. It +also (originally) generalized a group (a monoid with all inverses) to a type +where every element did not have to have an inverse, thus the name +semigroup.") + (license bsd-3))) + (define-public ghc-doctest (package (name "ghc-doctest") -- cgit v1.2.3 From 03f6074b72ebfc0711b9a6de4d604ac73b02929e Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 14:31:10 +0200 Subject: gnu: Add ghc-void. * gnu/packages/haskell.scm (ghc-void): New variable. --- gnu/packages/haskell.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index e0fc9f4aff..9570e68454 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -2406,6 +2406,33 @@ unbounded @code{Integer} type.") (description "This library provides the natural numbers for Haskell.") (license bsd-3))) +(define-public ghc-void + (package + (name "ghc-void") + (version "0.7.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/void/void-" + version + ".tar.gz")) + (sha256 + (base32 + "1x15x2axz84ndw2bf60vjqljhrb0w95lddaljsxrl0hcd29zvw69")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-semigroups" ,ghc-semigroups))) + (inputs + `(("ghc-hashable" ,ghc-hashable))) + (home-page "http://github.com/ekmett/void") + (synopsis + "Logically uninhabited data type") + (description + "A Haskell 98 logically uninhabited data type, used to indicate that a +given term should not exist.") + (license bsd-3))) + (define-public ghc-semigroups (package (name "ghc-semigroups") -- cgit v1.2.3 From 4f99755142ccc270ae4103cea1ec024fceac0b45 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 14:32:25 +0200 Subject: gnu: Add ghc-bifunctors. * gnu/packages/haskell.scm (ghc-bifunctors): Add variable. --- gnu/packages/haskell.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 9570e68454..6703683619 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -2433,6 +2433,29 @@ unbounded @code{Integer} type.") given term should not exist.") (license bsd-3))) +(define-public ghc-bifunctors + (package + (name "ghc-bifunctors") + (version "5") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/bifunctors/bifunctors-" + version + ".tar.gz")) + (sha256 + (base32 + "13990xdgx0n23qgi18ghhmsywj5zkr0a5bim0g8a4nzi0cx95ps1")))) + (build-system haskell-build-system) + (inputs + `(("ghc-tagged" ,ghc-tagged) + ("ghc-semigroups" ,ghc-semigroups))) + (home-page "http://github.com/ekmett/bifunctors/") + (synopsis "Bifunctors for Haskell") + (description "This package provides bifunctors for Haskell.") + (license bsd-3))) + (define-public ghc-semigroups (package (name "ghc-semigroups") -- cgit v1.2.3 From f271524a1454e6c8ab12ca8388d8248cd2d26f86 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 14:36:03 +0200 Subject: gnu: Add ghc-statevar. * gnu/packages/haskell.scm (ghc-statevar): New variable. --- gnu/packages/haskell.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 6703683619..0b80b3b9a5 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -2433,6 +2433,29 @@ unbounded @code{Integer} type.") given term should not exist.") (license bsd-3))) +(define-public ghc-statevar + (package + (name "ghc-statevar") + (version "1.1.0.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/StateVar/StateVar-" + version + ".tar.gz")) + (sha256 + (base32 + "1ap51cvwq61xckx5hw44l82ihbxvsq3263xr5hqg42c5qp67kbhf")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-stm" ,ghc-stm))) + (home-page "http://hackage.haskell.org/package/StateVar") + (synopsis "State variables for Haskell") + (description "This package provides state variables, which are references +in the @code{IO} monad, like @code{IORef}s or parts of the OpenGL state.") + (license bsd-3))) + (define-public ghc-bifunctors (package (name "ghc-bifunctors") -- cgit v1.2.3 From 624efe7304dfe9247d1078680cfe0b1704295526 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 14:36:19 +0200 Subject: gnu: Add ghc-contravariant. * gnu/packages/haskell.scm (ghc-contravariant): New variable. --- gnu/packages/haskell.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 0b80b3b9a5..d606d48fbd 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -2479,6 +2479,33 @@ in the @code{IO} monad, like @code{IORef}s or parts of the OpenGL state.") (description "This package provides bifunctors for Haskell.") (license bsd-3))) +(define-public ghc-contravariant + (package + (name "ghc-contravariant") + (version "1.3.3") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/contravariant/contravariant-" + version + ".tar.gz")) + (sha256 + (base32 + "184hcmhsznqrkmqlc1kza9pb5p591anva574ry8wrh81vqmhwfb5")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-void" ,ghc-void) + ("ghc-transformers-compat" ,ghc-transformers-compat) + ("ghc-statevar" ,ghc-statevar))) + (inputs + `(("ghc-semigroups" ,ghc-semigroups))) + (home-page + "http://github.com/ekmett/contravariant/") + (synopsis "Contravariant functors") + (description "Contravariant functors for Haskell.") + (license bsd-3))) + (define-public ghc-semigroups (package (name "ghc-semigroups") -- cgit v1.2.3 From 9e5224e6f3d7604db3f75e70e69fdf187ec510f3 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 14:38:27 +0200 Subject: gnu: Add ghc-digest. * gnu/packages/haskell.scm (ghc-digest): New variable. --- gnu/packages/haskell.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index d606d48fbd..4a399ceb6d 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -2456,6 +2456,33 @@ given term should not exist.") in the @code{IO} monad, like @code{IORef}s or parts of the OpenGL state.") (license bsd-3))) +(define-public ghc-digest + (package + (name "ghc-digest") + (version "0.0.1.2") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/digest/digest-" + version + ".tar.gz")) + (sha256 + (base32 + "04gy2zp8yzvv7j9bdfvmfzcz3sqyqa6rwslqcn4vyair2vmif5v4")))) + (build-system haskell-build-system) + (inputs + `(("zlib" ,zlib))) + (home-page + "http://hackage.haskell.org/package/digest") + (synopsis + "Various cryptographic hashes for bytestrings") + (description + "This package provides efficient cryptographic hash implementations for +strict and lazy bytestrings. For now, CRC32 and Adler32 are supported; they +are implemented as FFI bindings to efficient code from zlib.") + (license bsd-3))) + (define-public ghc-bifunctors (package (name "ghc-bifunctors") -- cgit v1.2.3 From 6c1a7751a55617f43743529042e12e30bd1b4cd5 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 14:39:24 +0200 Subject: gnu: Add ghc-tagsoup. * gnu/packages/haskell.scm (ghc-tagsoup): New variable. --- gnu/packages/haskell.scm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 4a399ceb6d..2611727f37 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -2456,6 +2456,35 @@ given term should not exist.") in the @code{IO} monad, like @code{IORef}s or parts of the OpenGL state.") (license bsd-3))) +(define-public ghc-tagsoup + (package + (name "ghc-tagsoup") + (version "0.13.3") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/tagsoup/tagsoup-" + version + ".tar.gz")) + (sha256 + (base32 + "13b6zy6346r3cxhaivys84fnxarg8wbv7r2znazfjdkqil8n5a1j")))) + (build-system haskell-build-system) + (inputs `(("ghc-text" ,ghc-text))) + (home-page + "http://community.haskell.org/~ndm/tagsoup/") + (synopsis + "Parsing and extracting information from (possibly malformed) HTML/XML +documents") + (description + "TagSoup is a library for parsing HTML/XML. It supports the HTML 5 +specification, and can be used to parse either well-formed XML, or +unstructured and malformed HTML from the web. The library also provides +useful functions to extract information from an HTML document, making it ideal +for screen-scraping.") + (license bsd-3))) + (define-public ghc-digest (package (name "ghc-digest") -- cgit v1.2.3 From d76bf6181b083d85e6897ff8a27d72a4c457fbb4 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 14:48:43 +0200 Subject: gnu: Add ghc-bytestring-builder. * gnu/packages/haskell.scm (ghc-bytestring-builder): New variable. --- gnu/packages/haskell.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 2611727f37..3060d3bc70 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -2383,6 +2383,28 @@ or timeout period. This package provides alternative functions which use the unbounded @code{Integer} type.") (license bsd-3))) +(define-public ghc-bytestring-builder + (package + (name "ghc-bytestring-builder") + (version "0.10.6.0.0") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/bytestring-builder" + "/bytestring-builder-" version ".tar.gz")) + (sha256 + (base32 + "1mkg24zl0rapb3gqzkyj5ibp07wx3yzd72hmfczssl0is63rjhww")))) + (build-system haskell-build-system) + (arguments `(#:haddock? #f)) ; Package contains no documentation. + (home-page "http://hackage.haskell.org/package/bytestring-builder") + (synopsis "The new bytestring builder, packaged outside of GHC") + (description "This package provides the bytestring builder that is +debuting in bytestring-0.10.4.0, which should be shipping with GHC 7.8. +Compatibility package for older packages.") + (license bsd-3))) + (define-public ghc-nats (package (name "ghc-nats") -- cgit v1.2.3 From cc553d025de4a5deefb4d5129be9f958f10de76d Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 14:52:19 +0200 Subject: gnu: Add ghc-fast-logger. * gnu/packages/haskell.scm (ghc-fast-logger): New variable. --- gnu/packages/haskell.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 3060d3bc70..bf24cc8ec7 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -2617,6 +2617,32 @@ where every element did not have to have an inverse, thus the name semigroup.") (license bsd-3))) +(define-public ghc-fast-logger + (package + (name "ghc-fast-logger") + (version "2.4.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/fast-logger/fast-logger-" + version + ".tar.gz")) + (sha256 + (base32 + "0kjk1861qcls8m8y7i55msfpprws5wk6c5mxzi35g2qbl2sih4p5")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-bytestring-builder" ,ghc-bytestring-builder) + ("ghc-auto-update" ,ghc-auto-update))) + (inputs + `(("ghc-hspec" ,ghc-hspec) + ("ghc-text" ,ghc-text))) + (home-page "https://hackage.haskell.org/package/fast-logger") + (synopsis "Fast logging system") + (description "This library provides a fast logging system for Haskell.") + (license bsd-3))) + (define-public ghc-doctest (package (name "ghc-doctest") -- cgit v1.2.3 From 6ffc5be71d57d5823eb8244073f06f6209136dcd Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 14:54:44 +0200 Subject: gnu: Add ghc-charset. * gnu/packages/haskell.scm (ghc-charset): New variable. --- gnu/packages/haskell.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index bf24cc8ec7..0f0e557773 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -2383,6 +2383,31 @@ or timeout period. This package provides alternative functions which use the unbounded @code{Integer} type.") (license bsd-3))) +(define-public ghc-charset + (package + (name "ghc-charset") + (version "0.3.7.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/charset/charset-" + version + ".tar.gz")) + (sha256 + (base32 + "1gn0m96qpjww8hpp2g1as5yy0wcwy4iq73h3kz6g0yxxhcl5sh9x")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-semigroups" ,ghc-semigroups))) + (inputs + `(("ghc-unordered-containers" ,ghc-unordered-containers))) + (home-page "http://github.com/ekmett/charset") + (synopsis "Fast unicode character sets for Haskell") + (description "This package provides fast unicode character sets for +Haskell, based on complemented PATRICIA tries.") + (license bsd-3))) + (define-public ghc-bytestring-builder (package (name "ghc-bytestring-builder") -- cgit v1.2.3 From 34128d2ba78c305ea588c761255fbc06b7819f05 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 14:59:46 +0200 Subject: gnu: Add ghc-regex-tdfa-rc. * gnu/packages/haskell.scm (ghc-regex-tdfa-rc): New variable. --- gnu/packages/haskell.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 0f0e557773..16144db2a1 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -1107,6 +1107,33 @@ removed. Both IPv4 and IPv6 are supported.") regex-posix, regex-pcre, regex-parsec, regex-tdfa, regex-dfa.") (license bsd-3))) +(define-public ghc-regex-tdfa-rc + (package + (name "ghc-regex-tdfa-rc") + (version "1.1.8.3") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/regex-tdfa-rc/regex-tdfa-rc-" + version + ".tar.gz")) + (sha256 + (base32 + "1vi11i23gkkjg6193ak90g55akj69bhahy542frkwb68haky4pp3")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-regex-base" ,ghc-regex-base) + ("ghc-parsec" ,ghc-parsec))) + (inputs + `(("ghc-mtl" ,ghc-mtl))) + (home-page + "http://hackage.haskell.org/package/regex-tdfa") + (synopsis "Tagged DFA regex engine for Haskell") + (description "A new all-Haskell \"tagged\" DFA regex engine, inspired by +@code{libtre} (fork by Roman Cheplyaka).") + (license bsd-3))) + (define-public ghc-appar (package (name "ghc-appar") -- cgit v1.2.3 From 6f5e312e977118cc6eff4195381263beec60dab3 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 22 Oct 2015 15:06:02 +0200 Subject: gnu: Add ghc-lifted-base. * gnu/packages/haskell.scm (ghc-lifted-base): New variable. --- gnu/packages/haskell.scm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 16144db2a1..124c86fa2f 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -2730,4 +2730,35 @@ It is modeled after doctest for Python, see @uref{http://docs.python.org/library/doctest.html, the Doctest website}.") (license expat))) +(define-public ghc-lifted-base + (package + (name "ghc-lifted-base") + (version "0.2.3.6") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/lifted-base/lifted-base-" + version + ".tar.gz")) + (sha256 + (base32 + "1yz14a1rsgknwyl08n4kxrlc26hfwmb95a3c2drbnsgmhdyq7iap")))) + (build-system haskell-build-system) + (arguments `(#:tests? #f)) ; FIXME: Missing testing libraries. + (propagated-inputs + `(("ghc-transformers-base" ,ghc-transformers-base) + ("ghc-monad-control" ,ghc-monad-control))) + (inputs + `(("ghc-transformers-compat" ,ghc-transformers-compat) + ("ghc-hunit" ,ghc-hunit))) + (home-page "https://github.com/basvandijk/lifted-base") + (synopsis "Lifted IO operations from the base library") + (description "Lifted-base exports IO operations from the @code{base} +library lifted to any instance of @code{MonadBase} or @code{MonadBaseControl}. +Note that not all modules from @code{base} are converted yet. The package +includes a copy of the @code{monad-peel} test suite written by Anders +Kaseorg.") + (license bsd-3))) + ;;; haskell.scm ends here -- cgit v1.2.3 From 281bc4fd5d0f417fcda8108cf9a24094c6b5ca3d Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 22 Oct 2015 15:16:38 +0200 Subject: gnu: Add ghc-word8. * gnu/packages/haskell.scm (ghc-word8): New variable. --- gnu/packages/haskell.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 124c86fa2f..47d9db1b05 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -2761,4 +2761,26 @@ includes a copy of the @code{monad-peel} test suite written by Anders Kaseorg.") (license bsd-3))) +(define-public ghc-word8 + (package + (name "ghc-word8") + (version "0.1.2") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/word8/word8-" + version + ".tar.gz")) + (sha256 + (base32 + "1pbn8ra3qhwvw07p375cdmp7jzlg07hgdcr4cpscz3h7b9sy7fiw")))) + (build-system haskell-build-system) + (inputs + `(("ghc-hspec" ,ghc-hspec))) + (home-page "http://hackage.haskell.org/package/word8") + (synopsis "Word8 library for Haskell") + (description "Word8 library to be used with @code{Data.ByteString}.") + (license bsd-3))) + ;;; haskell.scm ends here -- cgit v1.2.3 From fa709a2fc9e5ebc98df9d61452c727283a05fcd8 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 15:14:59 +0200 Subject: gnu: Add ghc-stringsearch. * gnu/packages/haskell.scm (ghc-stringsearch): New variable. --- gnu/packages/haskell.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 47d9db1b05..8fb9844f09 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -2783,4 +2783,27 @@ Kaseorg.") (description "Word8 library to be used with @code{Data.ByteString}.") (license bsd-3))) +(define-public ghc-stringsearch + (package + (name "ghc-stringsearch") + (version "0.3.6.6") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/stringsearch/stringsearch-" + version + ".tar.gz")) + (sha256 + (base32 + "0jpy9xjcjdbpi3wk6mg7xwd7wfi2mma70p97v1ij5i8bj9qijpr9")))) + (build-system haskell-build-system) + (home-page "https://bitbucket.org/dafis/stringsearch") + (synopsis "Fast searching, splitting and replacing of ByteStrings") + (description "This package provides several functions to quickly search +for substrings in strict or lazy @code{ByteStrings}. It also provides +functions for breaking or splitting on substrings and replacing all +occurrences of a substring (the first in case of overlaps) with another.") + (license bsd-3))) + ;;; haskell.scm ends here -- cgit v1.2.3 From 3f2ce1dc3f070bb1cc24616cd56b3ab66b67af80 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 14:57:25 +0200 Subject: gnu: Add ghc-clock-bootstrap. The ghc-clock-bootstrap package has tests disabled, since they themselves indirectly require ghc-clock. After adding ghc-tasty and ghc-tasty-quickcheck, ghc-clock is defined as a public package with tests enabled. * gnu/packages/haskell.scm (ghc-clock-bootstrap): New variable. --- gnu/packages/haskell.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 8fb9844f09..b8d2e0ad7c 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -2410,6 +2410,31 @@ or timeout period. This package provides alternative functions which use the unbounded @code{Integer} type.") (license bsd-3))) +;; This package builds `clock` without tests, since the tests rely on tasty +;; and tasty-quickcheck, which in turn require clock to build. When tasty and +;; tasty-quickcheck are added, we will add ghc-clock with tests enabled. +(define ghc-clock-bootstrap + (package + (name "ghc-clock-bootstrap") + (version "0.5.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/" + "clock/" + "clock-" version ".tar.gz")) + (sha256 + (base32 "1ncph7vi2q6ywwc8ysxl1ibw6i5dwfvln88ssfazk8jgpj4iyykw")))) + (build-system haskell-build-system) + (arguments `(#:tests? #f)) ;; Testing suite depends on tasty and + ;; tasty-quickcheck, which need clock to build. + (home-page "https://hackage.haskell.org/package/clock") + (synopsis "High-resolution clock for Haskell") + (description "A package for convenient access to high-resolution clock and +timer functions of different operating systems via a unified API.") + (license bsd-3))) + (define-public ghc-charset (package (name "ghc-charset") -- cgit v1.2.3 From 7cfdbc514f5b558cdae16e87f66774bd033fbc6d Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 22 Oct 2015 15:18:13 +0200 Subject: gnu: Add ghc-tasty. * gnu/packages/haskell.scm (ghc-tasty): New variable. --- gnu/packages/haskell.scm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index b8d2e0ad7c..8c1e6f799d 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -2831,4 +2831,36 @@ functions for breaking or splitting on substrings and replacing all occurrences of a substring (the first in case of overlaps) with another.") (license bsd-3))) +(define-public ghc-tasty + (package + (name "ghc-tasty") + (version "0.11.0.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/tasty/tasty-" + version + ".tar.gz")) + (sha256 + (base32 + "1chapivmmwsb1ghwagvdm80bfj3hdk75m94z4p212ng2i4ghpjkx")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-stm" ,ghc-stm) + ("ghc-mtl" ,ghc-mtl) + ("ghc-tagged" ,ghc-tagged) + ("ghc-regex-tdfa-rc" ,ghc-regex-tdfa-rc) + ("ghc-optparse-applicative" ,ghc-optparse-applicative) + ("ghc-unbounded-delays" ,ghc-unbounded-delays) + ("ghc-async" ,ghc-async) + ("ghc-ansi-terminal" ,ghc-ansi-terminal) + ("ghc-clock-bootstrap" ,ghc-clock-bootstrap))) + (home-page "http://documentup.com/feuerbach/tasty") + (synopsis "Modern and extensible testing framework") + (description "Tasty is a modern testing framework for Haskell. It lets +you combine your unit tests, golden tests, QuickCheck/SmallCheck properties, +and any other types of tests into a single test suite.") + (license expat))) + ;;; haskell.scm ends here -- cgit v1.2.3 From 766504d19996eb531a542cf8b2ef7ade0e737e91 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 15:02:58 +0200 Subject: gnu: Add ghc-tasty-hunit. * gnu/packages/haskell.scm (ghc-tasty-hunit): New variable. --- gnu/packages/haskell.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 8c1e6f799d..bebeda52c6 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -2863,4 +2863,27 @@ you combine your unit tests, golden tests, QuickCheck/SmallCheck properties, and any other types of tests into a single test suite.") (license expat))) +(define-public ghc-tasty-hunit + (package + (name "ghc-tasty-hunit") + (version "0.9.2") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/tasty-hunit/tasty-hunit-" + version + ".tar.gz")) + (sha256 + (base32 + "08qnxaw34wfnzi9irs1jd4d0zczqm3k5ffkd4zwhkz0dflmgq7mf")))) + (build-system haskell-build-system) + (inputs + `(("ghc-tasty" ,ghc-tasty))) + (home-page "http://documentup.com/feuerbach/tasty") + (synopsis "HUnit support for the Tasty test framework") + (description "This package provides HUnit support for the Tasty Haskell +test framework.") + (license expat))) + ;;; haskell.scm ends here -- cgit v1.2.3 From 32ce3df7584c8a0536ba09797ae8c087c7998719 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 22 Oct 2015 15:19:25 +0200 Subject: gnu: Add ghc-tasty-quickcheck. * gnu/packages/haskell.scm (ghc-tasty-quickcheck): New variable. --- gnu/packages/haskell.scm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index bebeda52c6..be9c76d60b 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -2831,6 +2831,35 @@ functions for breaking or splitting on substrings and replacing all occurrences of a substring (the first in case of overlaps) with another.") (license bsd-3))) +(define-public ghc-tasty-quickcheck + (package + (name "ghc-tasty-quickcheck") + (version "0.8.4") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/tasty-quickcheck/" + "tasty-quickcheck-" version ".tar.gz")) + (sha256 + (base32 + "15rjxib5jmjq0hzj47x15kgp3awc73va4cy1pmpf7k3hvfv4qprn")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-quickcheck" ,ghc-quickcheck))) + (inputs + `(("ghc-tagged" ,ghc-tagged) + ("ghc-tasty" ,ghc-tasty) + ("ghc-random" ,ghc-random) + ("ghc-ansi-terminal" ,ghc-ansi-terminal) + ("ghc-tasty-hunit" ,ghc-tasty-hunit) + ("ghc-pcre-light" ,ghc-pcre-light))) + (home-page "http://documentup.com/feuerbach/tasty") + (synopsis "QuickCheck support for the Tasty test framework") + (description "This package provides QuickCheck support for the Tasty +Haskell test framework.") + (license expat))) + (define-public ghc-tasty (package (name "ghc-tasty") -- cgit v1.2.3 From f4e5c04ed15456a47c0e79fc80a6e5044de8a662 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 22 Oct 2015 15:32:50 +0200 Subject: gnu: Add ghc-clock. Add ghc-clock, which depends indirectly on ghc-clock-bootstrap for its test suite. * gnu/packages/haskell.scm (ghc-clock): New variable. --- gnu/packages/haskell.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index be9c76d60b..825cda1b6a 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -2435,6 +2435,29 @@ unbounded @code{Integer} type.") timer functions of different operating systems via a unified API.") (license bsd-3))) +(define-public ghc-clock + (package + (name "ghc-clock") + (version "0.5.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/" + "clock/" + "clock-" version ".tar.gz")) + (sha256 + (base32 "1ncph7vi2q6ywwc8ysxl1ibw6i5dwfvln88ssfazk8jgpj4iyykw")))) + (build-system haskell-build-system) + (inputs + `(("ghc-tasty" ,ghc-tasty) + ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck))) + (home-page "https://hackage.haskell.org/package/clock") + (synopsis "High-resolution clock for Haskell") + (description "A package for convenient access to high-resolution clock and +timer functions of different operating systems via a unified API.") + (license bsd-3))) + (define-public ghc-charset (package (name "ghc-charset") -- cgit v1.2.3 From fa67563caf1661f20c310b58e04b5871b6eac18b Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 15:18:31 +0200 Subject: gnu: Add ghc-temporary-rc. * gnu/packages/haskell.scm (ghc-temporary-rc): New variable. --- gnu/packages/haskell.scm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 825cda1b6a..edc0acd882 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -1322,6 +1322,35 @@ that you can use them without linking against Cabal or depending on it being installed.") (license bsd-3))) +(define-public ghc-temporary-rc + (package + (name "ghc-temporary-rc") + (version "1.2.0.3") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/temporary-rc/temporary-rc-" + version + ".tar.gz")) + (sha256 + (base32 + "1nqih0qks439k3pr5kmbbc8rjdw730slrxlflqb27fbxbzb8skqs")))) + (build-system haskell-build-system) + (propagated-inputs `(("ghc-exceptions" ,ghc-exceptions))) + (home-page + "http://www.github.com/feuerbach/temporary") + (synopsis + "Portable temporary file and directory support") + (description + "The functions for creating temporary files and directories in the base +library are quite limited. The unixutils package contains some good ones, but +they aren't portable to Windows. This library just repackages the Cabal +implementations of its own temporary file and folder functions so that you can +use them without linking against Cabal or depending on it being installed. +This is a better maintained fork of the \"temporary\" package.") + (license bsd-3))) + (define-public ghc-silently (package (name "ghc-silently") -- cgit v1.2.3 From 9855500af6b4516da998fb51ee3c20f3677fa466 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 15:18:42 +0200 Subject: gnu: Add ghc-tasty-golden. * gnu/packages/haskell.scm (ghc-tasty-golden): New variable. --- gnu/packages/haskell.scm | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index edc0acd882..6da0c1d1e3 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -2912,6 +2912,41 @@ occurrences of a substring (the first in case of overlaps) with another.") Haskell test framework.") (license expat))) +(define-public ghc-tasty-golden + (package + (name "ghc-tasty-golden") + (version "2.3.0.2") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/tasty-golden/tasty-golden-" + version + ".tar.gz")) + (sha256 + (base32 + "0n7nll1sx75n3lffwhgnjrxdn0jz1g0921z9mj193fxqw0wz8axh")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-temporary" ,ghc-temporary))) + (inputs + `(("ghc-tasty" ,ghc-tasty) + ("ghc-mtl" ,ghc-mtl) + ("ghc-optparse-applicative" ,ghc-optparse-applicative) + ("ghc-tagged" ,ghc-tagged) + ("ghc-async" ,ghc-async) + ("ghc-tasty-hunit" ,ghc-tasty-hunit) + ("ghc-temporary-rc" ,ghc-temporary-rc))) + (home-page + "https://github.com/feuerbach/tasty-golden") + (synopsis "Golden tests support for tasty") + (description + "This package provides support for 'golden testing'. A golden test is an +IO action that writes its result to a file. To pass the test, this output +file should be identical to the corresponding 'golden' file, which contains +the correct result for the test.") + (license expat))) + (define-public ghc-tasty (package (name "ghc-tasty") -- cgit v1.2.3 From b53fa04681cc9250837f104a34386d5521d7221b Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 15:19:41 +0200 Subject: gnu: Add ghc-smallcheck. * gnu/packages/haskell.scm (ghc-smallcheck): New variable. --- gnu/packages/haskell.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 6da0c1d1e3..566f11ec4a 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -1351,6 +1351,33 @@ use them without linking against Cabal or depending on it being installed. This is a better maintained fork of the \"temporary\" package.") (license bsd-3))) +(define-public ghc-smallcheck + (package + (name "ghc-smallcheck") + (version "1.1.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/smallcheck/smallcheck-" + version + ".tar.gz")) + (sha256 + (base32 + "1ygrabxh40bym3grnzqyfqn96lirnxspb8cmwkkr213239y605sd")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-logict" ,ghc-logict))) + (inputs + `(("ghc-mtl" ,ghc-mtl))) + (home-page + "https://github.com/feuerbach/smallcheck") + (synopsis "Property-based testing library") + (description "SmallCheck is a testing library that allows to verify +properties for all test cases up to some depth. The test cases are generated +automatically by SmallCheck.") + (license bsd-3))) + (define-public ghc-silently (package (name "ghc-silently") -- cgit v1.2.3 From 275ff10bb392be3c03c6c47bab3709b75b8c1f49 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 15:20:27 +0200 Subject: gnu: Add ghc-tasty-smallcheck. * gnu/packages/haskell.scm (ghc-tasty-smallcheck): New variable. --- gnu/packages/haskell.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 566f11ec4a..b0d379d2aa 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -1378,6 +1378,32 @@ properties for all test cases up to some depth. The test cases are generated automatically by SmallCheck.") (license bsd-3))) +(define-public ghc-tasty-smallcheck + (package + (name "ghc-tasty-smallcheck") + (version "0.8.0.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/tasty-smallcheck/tasty-smallcheck-" + version + ".tar.gz")) + (sha256 + (base32 + "0yckfbz8na8ccyw2911i3a4hd3fdncclk3ng5343hs5cylw6y4sm")))) + (build-system haskell-build-system) + (inputs + `(("ghc-tasty" ,ghc-tasty) + ("ghc-smallcheck" ,ghc-smallcheck) + ("ghc-async" ,ghc-async) + ("ghc-tagged" ,ghc-tagged))) + (home-page "http://documentup.com/feuerbach/tasty") + (synopsis "SmallCheck support for the Tasty test framework") + (description "This package provides SmallCheck support for the Tasty +Haskell test framework.") + (license bsd-3))) + (define-public ghc-silently (package (name "ghc-silently") -- cgit v1.2.3 From 4a2fbdfe62a9c3ca0115b965c7d7473afa7b639f Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 15:21:34 +0200 Subject: gnu: Add ghc-tasty-ant-xml. * gnu/packages/haskell.scm (ghc-tasty-ant-xml): New variable. --- gnu/packages/haskell.scm | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index b0d379d2aa..8e3164439e 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -1378,6 +1378,39 @@ properties for all test cases up to some depth. The test cases are generated automatically by SmallCheck.") (license bsd-3))) +(define-public ghc-tasty-ant-xml + (package + (name "ghc-tasty-ant-xml") + (version "1.0.2") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/tasty-ant-xml/tasty-ant-xml-" + version + ".tar.gz")) + (sha256 + (base32 + "0pgz2lclg2hp72ykljcbxd88pjanfdfk8m5vb2qzcyjr85kwrhxv")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-generic-deriving" ,ghc-generic-deriving) + ("ghc-xml" ,ghc-xml))) + (inputs + `(("ghc-mtl" ,ghc-mtl) + ("ghc-stm" ,ghc-stm) + ("ghc-tagged" ,ghc-tagged) + ("ghc-tasty" ,ghc-tasty))) + (home-page + "http://github.com/ocharles/tasty-ant-xml") + (synopsis + "Render tasty output to XML for Jenkins") + (description + "A tasty ingredient to output test results in XML, using the Ant +schema. This XML can be consumed by the Jenkins continuous integration +framework.") + (license bsd-3))) + (define-public ghc-tasty-smallcheck (package (name "ghc-tasty-smallcheck") -- cgit v1.2.3 From a43a38a129e7f9aee3079bc8a73d6234c04ba432 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 22 Oct 2015 15:20:03 +0200 Subject: gnu: Add ghc-scientific. * gnu/packages/haskell.scm (ghc-scientific): New variable. --- gnu/packages/haskell.scm | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 8e3164439e..759d223a42 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -3088,4 +3088,40 @@ and any other types of tests into a single test suite.") test framework.") (license expat))) +(define-public ghc-scientific + (package + (name "ghc-scientific") + (version "0.3.4.2") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/scientific/scientific-" + version + ".tar.gz")) + (sha256 + (base32 + "0mimdkva0cgzaychr6whv9if29z0r5wwhkss9bmd4rz8kq1kgngn")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-hashable" ,ghc-hashable) + ("ghc-vector" ,ghc-vector))) + (inputs + `(("ghc-text" ,ghc-text) + ("ghc-tasty" ,ghc-tasty) + ("ghc-tasty-ant-xml" ,ghc-tasty-ant-xml) + ("ghc-tasty-hunit" ,ghc-tasty-hunit) + ("ghc-tasty-smallcheck" ,ghc-tasty-smallcheck) + ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck) + ("ghc-smallcheck" ,ghc-smallcheck) + ("ghc-quickcheck" ,ghc-quickcheck))) + (home-page "https://github.com/basvandijk/scientific") + (synopsis "Numbers represented using scientific notation") + (description "This package provides @code{Data.Scientific}, which provides +the number type @code{Scientific}. Scientific numbers are arbitrary precision +and space efficient. They are represented using +@uref{http://en.wikipedia.org/wiki/Scientific_notation, scientific +notation}.") + (license bsd-3))) + ;;; haskell.scm ends here -- cgit v1.2.3 From bc74e0e171f2df977e18b5623aed935f1b371bb8 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 15:26:24 +0200 Subject: gnu: Add ghc-attoparsec. * gnu/packages/haskell.scm (ghc-attoparsec): New variable. --- gnu/packages/haskell.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 759d223a42..fa8b5cf752 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -1134,6 +1134,34 @@ regex-posix, regex-pcre, regex-parsec, regex-tdfa, regex-dfa.") @code{libtre} (fork by Roman Cheplyaka).") (license bsd-3))) +(define-public ghc-attoparsec + (package + (name "ghc-attoparsec") + (version "0.13.0.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/attoparsec/attoparsec-" + version + ".tar.gz")) + (sha256 + (base32 + "0cprkr7bl4lrr80pz8mryb4rbfwdgpsrl7g0fbcaybhl8p5hm26f")))) + (build-system haskell-build-system) + (arguments `(#:tests? #f)) ; FIXME: ghc-test-framework unavailable + (propagated-inputs + `(("ghc-scientific" ,ghc-scientific))) + (inputs + `(("ghc-text" ,ghc-text) + ("ghc-vector" ,ghc-vector))) + (home-page "https://github.com/bos/attoparsec") + (synopsis "Fast combinator parsing for bytestrings and text") + (description "This library provides a fast parser combinator library, +aimed particularly at dealing efficiently with network protocols and +complicated text/binary file formats.") + (license bsd-3))) + (define-public ghc-appar (package (name "ghc-appar") -- cgit v1.2.3 From 39505126b17dd3a19c215d95f828d81ee45ec454 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 15:26:43 +0200 Subject: gnu: Add ghc-aeson. * gnu/packages/haskell.scm (ghc-aeson): New variable. --- gnu/packages/haskell.scm | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index fa8b5cf752..33a603ccb1 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -3152,4 +3152,40 @@ and space efficient. They are represented using notation}.") (license bsd-3))) +(define-public ghc-aeson + (package + (name "ghc-aeson") + (version "0.10.0.0") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/aeson/aeson-" + version + ".tar.gz")) + (sha256 + (base32 + "19kp33rfivr4d3myyr8xn803wd7p8x5nc4wb3qvlgjwgyqjaxvrz")))) + (build-system haskell-build-system) + (arguments `(#:tests? #f)) ; FIXME: testing libraries are missing. + (propagated-inputs + `(("ghc-attoparsec" ,ghc-attoparsec) + ("ghc-dlist" ,ghc-dlist) + ("ghc-mtl" ,ghc-mtl) + ("ghc-scientific" ,ghc-scientific) + ("ghc-syb" ,ghc-syb) + ("ghc-vector" ,ghc-vector))) + (inputs + `(("ghc-hashable" ,ghc-hashable) + ("ghc-text" ,ghc-text) + ("ghc-unordered-containers" ,ghc-unordered-containers) + ("ghc-hunit" ,ghc-hunit) + ("ghc-quickcheck" ,ghc-quickcheck))) + (home-page "https://github.com/bos/aeson") + (synopsis "Fast JSON parsing and encoding") + (description "This package provides a JSON parsing and encoding library +for Haskell, optimized for ease of use and high performance. (A note on +naming: in Greek mythology, Aeson was the father of Jason.)") + (license bsd-3))) + ;;; haskell.scm ends here -- cgit v1.2.3 From 7b72df8b7adb131321153d7d5e0d33cd5e6c3404 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 15:27:35 +0200 Subject: gnu: Add ghc-css-text. * gnu/packages/haskell.scm (ghc-css-text): New variable. --- gnu/packages/haskell.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 33a603ccb1..fe463010c7 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -1162,6 +1162,32 @@ aimed particularly at dealing efficiently with network protocols and complicated text/binary file formats.") (license bsd-3))) +(define-public ghc-css-text + (package + (name "ghc-css-text") + (version "0.1.2.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/css-text/css-text-" + version + ".tar.gz")) + (sha256 + (base32 + "1xi1n2f0g8y43p95lynhcg50wxbq7hqfzbfzm7fy8mn7gvd920nw")))) + (build-system haskell-build-system) + (inputs + `(("ghc-text" ,ghc-text) + ("ghc-attoparsec" ,ghc-attoparsec) + ("ghc-hspec" ,ghc-hspec) + ("ghc-quickcheck" ,ghc-quickcheck))) + (home-page "http://www.yesodweb.com/") + (synopsis "CSS parser and renderer") + (description "This package provides a CSS parser and renderer for +Haskell.") + (license bsd-3))) + (define-public ghc-appar (package (name "ghc-appar") -- cgit v1.2.3 From ca41c155c5ea510fc75c2924327446959b89a359 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 15:29:25 +0200 Subject: gnu: Add ghc-zip-archive. * gnu/packages/haskell.scm (ghc-zip-archive): New variable. --- gnu/packages/haskell.scm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index fe463010c7..c29f1bf1d9 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -31,6 +31,7 @@ #:use-module (gnu packages compression) #:use-module (gnu packages elf) #:use-module (gnu packages bootstrap) + #:use-module (gnu packages zip) #:use-module (gnu packages ghostscript) #:use-module (gnu packages libffi) #:use-module (gnu packages libedit) @@ -1188,6 +1189,36 @@ complicated text/binary file formats.") Haskell.") (license bsd-3))) +(define-public ghc-zip-archive + (package + (name "ghc-zip-archive") + (version "0.2.3.7") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/zip-archive/zip-archive-" + version + ".tar.gz")) + (sha256 + (base32 + "169nkxr5zlbymiz1ydlhlqr66vqiycmg85xh559phpkr64w3nqj1")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-old-time" ,ghc-old-time) + ("ghc-digest" ,ghc-digest))) + (inputs + `(("ghc-hunit" ,ghc-hunit) + ("ghc-mtl" ,ghc-mtl) + ("zip" ,zip) + ("ghc-text" ,ghc-text) + ("ghc-zlib" ,ghc-zlib))) + (home-page "https://hackage.haskell.org/package/zip-archive") + (synopsis "Zip archive library for Haskell") + (description "The zip-archive library provides functions for creating, +modifying, and extracting files from zip archives in Haskell.") + (license bsd-3))) + (define-public ghc-appar (package (name "ghc-appar") -- cgit v1.2.3 From 10e614523f7af4e3b9ee45da01dcb11f2c827c18 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 15:31:24 +0200 Subject: gnu: Add ghc-cereal. * gnu/packages/haskell.scm (ghc-cereal): New variable. --- gnu/packages/haskell.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index c29f1bf1d9..d1edef698e 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -1219,6 +1219,28 @@ Haskell.") modifying, and extracting files from zip archives in Haskell.") (license bsd-3))) +(define-public ghc-cereal + (package + (name "ghc-cereal") + (version "0.4.1.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/cereal/cereal-" + version + ".tar.gz")) + (sha256 + (base32 + "15rhfn9hrjm01ksh9xpz9syxsp9vkvpp6b736iqq38wv2wb7416z")))) + (build-system haskell-build-system) + (home-page "http://hackage.haskell.org/package/cereal") + (synopsis "Binary serialization library") + (description "This package provides a binary serialization library, +similar to @code{binary}, that introduces an @code{isolate} primitive for +parser isolation, and labeled blocks for better error messages.") + (license bsd-3))) + (define-public ghc-appar (package (name "ghc-appar") -- cgit v1.2.3 From fa4f5024bcc42514de005d92b138ed7f2d25e5a8 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 15:34:48 +0200 Subject: gnu: Add ghc-distributive. * gnu/packages/haskell.scm (ghc-distributive): New variable. --- gnu/packages/haskell.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index d1edef698e..939d2e79c3 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -1219,6 +1219,32 @@ Haskell.") modifying, and extracting files from zip archives in Haskell.") (license bsd-3))) +(define-public ghc-distributive + (package + (name "ghc-distributive") + (version "0.4.4") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/distributive/distributive-" + version + ".tar.gz")) + (sha256 + (base32 + "0s2ln9jv7bh4ri2y31178pvjl8x6nik5d0klx7j2b77yjlsgblc2")))) + (build-system haskell-build-system) + (arguments `(#:tests? #f)) ; FIXME: fails with "cannot satisfy -package + ; tagged-0.8.1". Suspected Cabal issue. + (propagated-inputs + `(("ghc-tagged" ,ghc-tagged) + ("ghc-transformers-compat" ,ghc-transformers-compat))) + (home-page "http://github.com/ekmett/distributive/") + (synopsis "Distributive functors for Haskell") + (description "This package provides distributive functors for Haskell. +Dual to @code{Traversable}.") + (license bsd-3))) + (define-public ghc-cereal (package (name "ghc-cereal") -- cgit v1.2.3 From 40b56b52914bd53e714d401844f96d8b75881498 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 15:34:58 +0200 Subject: gnu: Add ghc-comonad. * gnu/packages/haskell.scm (ghc-comonad): New variable. --- gnu/packages/haskell.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 939d2e79c3..dc53fb989a 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -1267,6 +1267,36 @@ similar to @code{binary}, that introduces an @code{isolate} primitive for parser isolation, and labeled blocks for better error messages.") (license bsd-3))) +(define-public ghc-comonad + (package + (name "ghc-comonad") + (version "4.2.7.2") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/comonad/comonad-" + version + ".tar.gz")) + (sha256 + (base32 + "0arvbaxgkawzdp38hh53akkahjg2aa3kj2b4ns0ni8a5ylg2cqmp")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-distributive" ,ghc-distributive) + ("ghc-transformers-compat" ,ghc-transformers-compat) + ("ghc-contravariant" ,ghc-contravariant))) + (arguments `(#:tests? #f)) ; FIXME: Test fails with "cannot satisfy + ; -package contravariant-1.3.3" + (inputs + `(("ghc-semigroups" ,ghc-semigroups) + ("ghc-tagged" ,ghc-tagged) + ("ghc-contravariant" ,ghc-contravariant))) + (home-page "http://github.com/ekmett/comonad/") + (synopsis "Comonads for Haskell") + (description "This library provides @code{Comonad}s for Haskell.") + (license bsd-3))) + (define-public ghc-appar (package (name "ghc-appar") -- cgit v1.2.3 From ce78a0f50c30f709c5d35dd44657542f9f08496d Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 15:36:26 +0200 Subject: gnu: Add HScolour. * gnu/packages/haskell.scm (hscolour): New variable. --- gnu/packages/haskell.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index dc53fb989a..8c70c7d301 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -1297,6 +1297,30 @@ parser isolation, and labeled blocks for better error messages.") (description "This library provides @code{Comonad}s for Haskell.") (license bsd-3))) +(define-public hscolour + (package + (name "hscolour") + (version "1.23") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/hscolour/hscolour-" + version + ".tar.gz")) + (sha256 + (base32 + "1c4i2zpami8g3w9949nm3f92g7xwh5c94vkx658zz7ihrjp7w5lp")))) + (build-system haskell-build-system) + (home-page "https://hackage.haskell.org/package/hscolour") + (synopsis "Script to colourise Haskell code") + (description "HSColour is a small Haskell script to colourise Haskell +code. It currently has six output formats: ANSI terminal codes (optionally +XTerm-256colour codes), HTML 3.2 with font tags, HTML 4.01 with CSS, HTML 4.01 +with CSS and mouseover annotations, XHTML 1.0 with inline CSS styling, LaTeX, +and mIRC chat codes.") + (license bsd-3))) + (define-public ghc-appar (package (name "ghc-appar") -- cgit v1.2.3 From 47038762bac1b2f0144b49636d9eb0263aec8d12 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 15:37:28 +0200 Subject: gnu: Add ghc-polyparse. * gnu/packages/haskell.scm (ghc-polyparse): New variable. --- gnu/packages/haskell.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 8c70c7d301..dd525bca30 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -1321,6 +1321,36 @@ with CSS and mouseover annotations, XHTML 1.0 with inline CSS styling, LaTeX, and mIRC chat codes.") (license bsd-3))) +(define-public ghc-polyparse + (package + (name "ghc-polyparse") + (version "1.11") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/polyparse/polyparse-" + version + ".tar.gz")) + (sha256 + (base32 + "1z417f80b0jm4dgv25fk408p3d9mmcd1dlbya3ry0zdx4md09vrh")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-text" ,ghc-text))) + (home-page + "http://code.haskell.org/~malcolm/polyparse/") + (synopsis + "Alternative parser combinator libraries") + (description + "This package provides a variety of alternative parser combinator +libraries, including the original HuttonMeijer set. The Poly sets have +features like good error reporting, arbitrary token type, running state, lazy +parsing, and so on. Finally, Text.Parse is a proposed replacement for the +standard Read class, for better deserialisation of Haskell values from +Strings.") + (license lgpl2.1))) + (define-public ghc-appar (package (name "ghc-appar") -- cgit v1.2.3 From fad564ec035a3e0b99c3e28704070fb751480852 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 15:39:20 +0200 Subject: gnu: Add ghc-extra. * gnu/packages/haskell.scm (ghc-extra): New variable. --- gnu/packages/haskell.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index dd525bca30..eeff0d8c74 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -1351,6 +1351,30 @@ standard Read class, for better deserialisation of Haskell values from Strings.") (license lgpl2.1))) +(define-public ghc-extra + (package + (name "ghc-extra") + (version "1.4.2") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/extra/extra-" + version + ".tar.gz")) + (sha256 + (base32 + "1h9hxkrqrqscx420yz1lmivbrhi6jc3a5ap61vkxd2mhdgark9hf")))) + (build-system haskell-build-system) + (inputs `(("ghc-quickcheck" ,ghc-quickcheck))) + (home-page "https://github.com/ndmitchell/extra") + (synopsis "Extra Haskell functions") + (description "This library provides extra functions for the standard +Haskell libraries. Most functions are simple additions, filling out missing +functionality. A few functions are available in later versions of GHC, but +this package makes them available back to GHC 7.2.") + (license bsd-3))) + (define-public ghc-appar (package (name "ghc-appar") -- cgit v1.2.3 From f221841c69a168ec677b29f5c4cebda863c0fda8 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 15:40:26 +0200 Subject: gnu: Add ghc-profunctors. * gnu/packages/haskell.scm (ghc-profunctors): New variable. --- gnu/packages/haskell.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index eeff0d8c74..a499a6ad69 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -1375,6 +1375,31 @@ functionality. A few functions are available in later versions of GHC, but this package makes them available back to GHC 7.2.") (license bsd-3))) +(define-public ghc-profunctors + (package + (name "ghc-profunctors") + (version "5.1.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/profunctors/profunctors-" + version + ".tar.gz")) + (sha256 + (base32 + "0lw2ipacpnp9yqmi8zsp01pzpn5hwj8af3y0f3079mddrmw48gw7")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-distributive" ,ghc-distributive))) + (inputs + `(("ghc-comonad" ,ghc-comonad) + ("ghc-tagged" ,ghc-tagged))) + (home-page "http://github.com/ekmett/profunctors/") + (synopsis "Profunctors for Haskell") + (description "This library provides profunctors for Haskell.") + (license bsd-3))) + (define-public ghc-appar (package (name "ghc-appar") -- cgit v1.2.3 From aee98223264974637987a7fca2c701c0954ffd79 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 15:43:24 +0200 Subject: gnu: Add ghc-semigroupoids. * gnu/packages/haskell.scm (ghc-semigroupoids): New variable. --- gnu/packages/haskell.scm | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index a499a6ad69..12c5a93f60 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -3038,6 +3038,44 @@ are implemented as FFI bindings to efficient code from zlib.") (description "This package provides bifunctors for Haskell.") (license bsd-3))) +(define-public ghc-semigroupoids + (package + (name "ghc-semigroupoids") + (version "5.0.0.4") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/semigroupoids/semigroupoids-" + version + ".tar.gz")) + (sha256 + (base32 + "1jf7jnfhdvl6p18wdr21yi2fim1xb8alcn6szhrdswj0dkilgq6d")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-base-orphans" ,ghc-base-orphans) + ("ghc-transformers-compat" ,ghc-transformers-compat) + ("ghc-bifunctors" ,ghc-bifunctors) + ("ghc-comonad" ,ghc-comonad) + ("ghc-contravariant" ,ghc-contravariant) + ("ghc-distributive" ,ghc-distributive))) + (arguments `(#:tests? #f)) ; FIXME: doctest packagedb propagation problem. + (inputs + `(("ghc-semigroups" ,ghc-semigroups) + ("ghc-tagged" ,ghc-tagged))) + (home-page "http://github.com/ekmett/semigroupoids") + (synopsis "Semigroupoids operations for Haskell") + (description "This library provides a wide array of (semi)groupoids and +operations for working with them. A @code{Semigroupoid} is a @code{Category} +without the requirement of identity arrows for every object in the category. +A @code{Category} is any @code{Semigroupoid} for which the Yoneda lemma holds. +Finally, to work with these weaker structures it is beneficial to have +containers that can provide stronger guarantees about their contents, so +versions of @code{Traversable} and @code{Foldable} that can be folded with +just a @code{Semigroup} are added.") + (license bsd-3))) + (define-public ghc-contravariant (package (name "ghc-contravariant") -- cgit v1.2.3 From d2639cbc1781fd39bc80d1dddad61fb85c871174 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 15:43:48 +0200 Subject: gnu: Add ghc-reducers. * gnu/packages/haskell.scm (ghc-reducers): New variable. --- gnu/packages/haskell.scm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 12c5a93f60..3a3522a749 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -1400,6 +1400,35 @@ this package makes them available back to GHC 7.2.") (description "This library provides profunctors for Haskell.") (license bsd-3))) +(define-public ghc-reducers + (package + (name "ghc-reducers") + (version "3.12.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/reducers/reducers-" + version + ".tar.gz")) + (sha256 + (base32 + "0pkddg0s3cn759miq0nfrq7lnp3imk5sx784ihsilsbjh9kvffz4")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-semigroupoids" ,ghc-semigroupoids))) + (inputs + `(("ghc-fingertree" ,ghc-fingertree) + ("ghc-hashable" ,ghc-hashable) + ("ghc-text" ,ghc-text) + ("ghc-unordered-containers" ,ghc-unordered-containers) + ("ghc-semigroups" ,ghc-semigroups))) + (home-page "http://github.com/ekmett/reducers/") + (synopsis "Semigroups, specialized containers and a general map/reduce framework") + (description "This library provides various semigroups, specialized +containers and a general map/reduce framework for Haskell.") + (license bsd-3))) + (define-public ghc-appar (package (name "ghc-appar") -- cgit v1.2.3 From 865ac57307e2b2f13613059793824b2a31525547 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 15:45:12 +0200 Subject: gnu: Add ghc-reflection. * gnu/packages/haskell.scm (ghc-reflection): New variable. --- gnu/packages/haskell.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 3a3522a749..dae6e06ff2 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -364,6 +364,31 @@ package.") package.") (license bsd-3))) +(define-public ghc-reflection + (package + (name "ghc-reflection") + (version "2.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/reflection/reflection-" + version + ".tar.gz")) + (sha256 + (base32 + "10w3m6v3g6am203wbrikdbp57x9vw6b4jsh7bxdzsss4nmpm81zg")))) + (build-system haskell-build-system) + (inputs `(("ghc-tagged" ,ghc-tagged))) + (home-page "http://github.com/ekmett/reflection") + (synopsis "Reify arbitrary terms into types that can be reflected back +into terms") + (description "This package addresses the 'configuration problem' which is +propogating configurations that are available at run-time, allowing multiple +configurations to coexist without resorting to mutable global variables or +@code{System.IO.Unsafe.unsafePerformIO}.") + (license bsd-3))) + (define-public ghc-old-locale (package (name "ghc-old-locale") -- cgit v1.2.3 From 1e473fb8dc47c62a8daac39ac45638cae19b49ee Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 15:48:09 +0200 Subject: gnu: Add ghc-prelude-extras. * gnu/packages/haskell.scm (ghc-prelude-extras): New variable. --- gnu/packages/haskell.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index dae6e06ff2..6619ec9042 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -244,6 +244,28 @@ interactive environment for the functional language Haskell.") (license bsd-3))) +(define-public ghc-prelude-extras + (package + (name "ghc-prelude-extras") + (version "0.4.0.2") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/prelude-extras/prelude-extras-" + version + ".tar.gz")) + (sha256 + (base32 + "1q7mj9hysy747vimnlyrwsk1wb2axymxixa76fwcbcnmz3fi4llp")))) + (build-system haskell-build-system) + (home-page "http://github.com/ekmett/prelude-extras") + (synopsis "Higher order versions of Prelude classes") + (description "This library provides higher order versions of +@code{Prelude} classes to ease programming with polymorphic recursion and +reduce @code{UndecidableInstances}.") + (license bsd-3))) + (define-public ghc-data-default (package (name "ghc-data-default") -- cgit v1.2.3 From dc2e8ab7ea84bfc980bf8bbbf22f9265afab9297 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 15:48:22 +0200 Subject: gnu: Add ghc-free. * gnu/packages/haskell.scm (ghc-free): New variable. --- gnu/packages/haskell.scm | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 6619ec9042..599a50d3e3 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -3212,6 +3212,43 @@ where every element did not have to have an inverse, thus the name semigroup.") (license bsd-3))) +(define-public ghc-free + (package + (name "ghc-free") + (version "4.12.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/free/free-" + version + ".tar.gz")) + (sha256 + (base32 + "0sr8phvrb4ny8j1wzq55rdn8q4br23q4pw2j276npr844825jr9p")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-prelude-extras" ,ghc-prelude-extras) + ("ghc-profunctors" ,ghc-profunctors) + ("ghc-exceptions" ,ghc-exceptions))) + (inputs + `(("ghc-bifunctors" ,ghc-bifunctors) + ("ghc-comonad" ,ghc-comonad) + ("ghc-distributive" ,ghc-distributive) + ("ghc-mtl" ,ghc-mtl) + ("ghc-semigroupoids" ,ghc-semigroupoids) + ("ghc-semigroups" ,ghc-semigroups))) + (home-page "http://github.com/ekmett/free/") + (synopsis "Unrestricted monads for Haskell") + (description "This library provides free monads, which are useful for many +tree-like structures and domain specific languages. If @code{f} is a +@code{Functor} then the free @code{Monad} on @code{f} is the type of trees +whose nodes are labeled with the constructors of @code{f}. The word \"free\" +is used in the sense of \"unrestricted\" rather than \"zero-cost\": @code{Free +f} makes no constraining assumptions beyond those given by @code{f} and the +definition of @code{Monad}.") + (license bsd-3))) + (define-public ghc-fast-logger (package (name "ghc-fast-logger") -- cgit v1.2.3 From 52db0e13720f2281d3a7c9c6eb91990df73b4355 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 15:49:08 +0200 Subject: gnu: Add ghc-adjunctions. * gnu/packages/haskell.scm (ghc-adjunctions): New variable. --- gnu/packages/haskell.scm | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 599a50d3e3..f6536982ac 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -3249,6 +3249,39 @@ f} makes no constraining assumptions beyond those given by @code{f} and the definition of @code{Monad}.") (license bsd-3))) +(define-public ghc-adjunctions + (package + (name "ghc-adjunctions") + (version "4.2.2") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/adjunctions/adjunctions-" + version + ".tar.gz")) + (sha256 + (base32 + "00p030iypjzjib8pxz1x6mxfi59wvyrwjj11zv9bh766dgkdbwjq")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-profunctors" ,ghc-profunctors))) + (inputs + `(("ghc-comonad" ,ghc-comonad) + ("ghc-contravariant" ,ghc-contravariant) + ("ghc-distributive" ,ghc-distributive) + ("ghc-free" ,ghc-free) + ("ghc-mtl" ,ghc-mtl) + ("ghc-tagged" ,ghc-tagged) + ("ghc-semigroupoids" ,ghc-semigroupoids) + ("ghc-semigroups" ,ghc-semigroups) + ("ghc-void" ,ghc-void))) + (home-page "http://github.com/ekmett/adjunctions/") + (synopsis "Adjunctions and representable functors") + (description "This library provides adjunctions and representable functors +for Haskell.") + (license bsd-3))) + (define-public ghc-fast-logger (package (name "ghc-fast-logger") -- cgit v1.2.3 From 6729152dc5178d2af07658d6cf145d3657a09b14 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 15:49:54 +0200 Subject: gnu: Add ghc-simple-reflect. * gnu/packages/haskell.scm (ghc-simple-reflect): New variable. --- gnu/packages/haskell.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index f6536982ac..e23a3ee903 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -386,6 +386,33 @@ package.") package.") (license bsd-3))) +(define-public ghc-simple-reflect + (package + (name "ghc-simple-reflect") + (version "0.3.2") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/simple-reflect/simple-reflect-" + version + ".tar.gz")) + (sha256 + (base32 + "1dpcf6w3cf1sfl9bnlsx04x7aghw029glj5d05qzrsnms2rlw8iq")))) + (build-system haskell-build-system) + (home-page + "http://twanvl.nl/blog/haskell/simple-reflection-of-expressions") + (synopsis + "Simple reflection of expressions containing variables") + (description + "This package allows simple reflection of expressions containing +variables. Reflection here means that a Haskell expression is turned into a +string. The primary aim of this package is teaching and understanding; there +are no options for manipulating the reflected expressions beyond showing +them.") + (license bsd-3))) + (define-public ghc-reflection (package (name "ghc-reflection") -- cgit v1.2.3 From 78249cc07543032b5749757c205fe36d420fd561 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 15:50:54 +0200 Subject: gnu: Add cpphs. * gnu/packages/haskell.scm (cpphs): New variable. --- gnu/packages/haskell.scm | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index e23a3ee903..703ef28f4c 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -20,7 +20,7 @@ (define-module (gnu packages haskell) #:use-module (ice-9 regex) - #:use-module ((guix licenses) #:select (bsd-3 lgpl2.1 expat)) + #:use-module ((guix licenses) #:select (bsd-3 lgpl2.1 lgpl2.1+ gpl3+ expat)) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix utils) @@ -413,6 +413,34 @@ are no options for manipulating the reflected expressions beyond showing them.") (license bsd-3))) +(define-public cpphs + (package + (name "cpphs") + (version "1.19.3") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/" name "/" + name "-" version ".tar.gz")) + (sha256 + (base32 + "1njpmxgpah5pcqppcl1cxb5xicf6xlqrd162qm12khp9hainlm72")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-polyparse" ,ghc-polyparse) + ("ghc-old-locale" ,ghc-old-locale) + ("ghc-old-time" ,ghc-old-time))) + (home-page "http://projects.haskell.org/cpphs/") + (synopsis "Liberalised re-implementation of cpp, the C pre-processor") + (description "Cpphs is a re-implementation of the C pre-processor that is +both more compatible with Haskell, and itself written in Haskell so that it +can be distributed with compilers. This version of the C pre-processor is +pretty-much feature-complete and compatible with traditional (K&R) +pre-processors. Additional features include: a plain-text mode; an option to +unlit literate code files; and an option to turn off macro-expansion.") + (license (list lgpl2.1+ gpl3+)))) + (define-public ghc-reflection (package (name "ghc-reflection") -- cgit v1.2.3 From 0ba563643ebcae725a73ee1986e3c3002a389755 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 22 Oct 2015 13:14:03 +0200 Subject: gnu: Add ghc-cmdargs. * gnu/packages/haskell.scm (ghc-cmdargs): New variable. --- gnu/packages/haskell.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 703ef28f4c..300469f93b 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -413,6 +413,28 @@ are no options for manipulating the reflected expressions beyond showing them.") (license bsd-3))) +(define-public ghc-cmdargs + (package + (name "ghc-cmdargs") + (version "0.10.13") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/cmdargs/cmdargs-" + version + ".tar.gz")) + (sha256 + (base32 + "0vmz7f0ssrqlp6wzmc0mjqj4qczfgk58g0lr0yz7jamamlgpq4b6")))) + (build-system haskell-build-system) + (home-page + "http://community.haskell.org/~ndm/cmdargs/") + (synopsis "Command line argument processing") + (description + "This library provides an easy way to define command line parsers.") + (license bsd-3))) + (define-public cpphs (package (name "cpphs") -- cgit v1.2.3 From 81da1a45e80d9a71fb69d2e61ba5aab7dee4149d Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 22 Oct 2015 13:14:55 +0200 Subject: gnu: Add ghc-happy. * gnu/packages/haskell.scm (ghc-happy): New variable. --- gnu/packages/haskell.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 300469f93b..930df4a785 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -435,6 +435,32 @@ them.") "This library provides an easy way to define command line parsers.") (license bsd-3))) +(define-public ghc-happy + (package + (name "ghc-happy") + (version "1.19.5") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/happy/happy-" + version + ".tar.gz")) + (sha256 + (base32 + "1nj353q4z1g186fpjzf0dnsg71qhxqpamx8jy89rjjvv3p0kmw32")))) + (build-system haskell-build-system) + (arguments `(#:tests? #f)) ;; cannot satisfy -package mtl. Possible Cabal + ;; issue. + (propagated-inputs + `(("ghc-mtl" ,ghc-mtl))) + (home-page "https://hackage.haskell.org/package/happy") + (synopsis "Parser generator for Haskell") + (description "Happy is a parser generator for Haskell. Given a grammar +specification in BNF, Happy generates Haskell code to parse the grammar. +Happy works in a similar way to the yacc tool for C.") + (license bsd-3))) + (define-public cpphs (package (name "cpphs") -- cgit v1.2.3 From 6ff19687b1b12822e86f85836c26aab9246ec713 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 22 Oct 2015 13:16:22 +0200 Subject: gnu: Add ghc-haskell-src-exts. * gnu/packages/haskell.scm (ghc-haskell-src-exts): New variable. --- gnu/packages/haskell.scm | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 930df4a785..03c283b014 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -461,6 +461,39 @@ specification in BNF, Happy generates Haskell code to parse the grammar. Happy works in a similar way to the yacc tool for C.") (license bsd-3))) +(define-public ghc-haskell-src-exts + (package + (name "ghc-haskell-src-exts") + (version "1.16.0.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/haskell-src-exts/haskell-src-exts-" + version + ".tar.gz")) + (sha256 + (base32 + "1h8gjw5g92rvvzadqzpscg73x7ajvs1wlphrh27afim3scdd8frz")))) + (build-system haskell-build-system) + (inputs + `(("cpphs" ,cpphs) + ("ghc-mtl" ,ghc-mtl) + ("ghc-smallcheck" ,ghc-smallcheck) + ("ghc-tasty" ,ghc-tasty) + ("ghc-happy" ,ghc-happy) + ("ghc-tasty-smallcheck" ,ghc-tasty-smallcheck) + ("ghc-tasty-golden" ,ghc-tasty-golden) + ("ghc-syb" ,ghc-syb))) + (home-page "https://github.com/haskell-suite/haskell-src-exts") + (synopsis "Library for manipulating Haskell source") + (description "Haskell-Source with Extensions (HSE, haskell-src-exts) is an +extension of the standard @code{haskell-src} package, and handles most +registered syntactic extensions to Haskell. All extensions implemented in GHC +are supported. Apart from these standard extensions, it also handles regular +patterns as per the HaRP extension as well as HSX-style embedded XML syntax.") + (license bsd-3))) + (define-public cpphs (package (name "cpphs") -- cgit v1.2.3 From 6397aef061e48e87f036fcee81cbe59349b04247 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 22 Oct 2015 13:18:11 +0200 Subject: gnu: Add hlint. * gnu/packages/haskell.scm (hlint): New variable. --- gnu/packages/haskell.scm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 03c283b014..6d479d208b 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -494,6 +494,35 @@ are supported. Apart from these standard extensions, it also handles regular patterns as per the HaRP extension as well as HSX-style embedded XML syntax.") (license bsd-3))) +(define-public hlint + (package + (name "hlint") + (version "1.9.21") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/" name + "/" name "-" version ".tar.gz")) + (sha256 + (base32 + "14v3rdjjlml9nimdk7d5dvir2bw78ai49yylvms9lnzmw29s3546")))) + (build-system haskell-build-system) + (inputs + `(("cpphs" ,cpphs) + ("ghc-cmdargs" ,ghc-cmdargs) + ("ghc-haskell-src-exts" ,ghc-haskell-src-exts) + ("ghc-uniplate" ,ghc-uniplate) + ("ghc-ansi-terminal" ,ghc-ansi-terminal) + ("ghc-extra" ,ghc-extra) + ("hscolour" ,hscolour))) + (home-page "http://community.haskell.org/~ndm/hlint/") + (synopsis "Suggest improvements for Haskell source code") + (description "HLint reads Haskell programs and suggests changes that +hopefully make them easier to read. HLint also makes it easy to disable +unwanted suggestions, and to add your own custom suggestions.") + (license bsd-3))) + (define-public cpphs (package (name "cpphs") -- cgit v1.2.3 From 85b2a2f541013d841e05eb12c74285086bae172d Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 22 Oct 2015 13:18:54 +0200 Subject: gnu: Add ghc-resourcet. * gnu/packages/haskell.scm (ghc-resourcet): New variable. --- gnu/packages/haskell.scm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 6d479d208b..3e6db05be1 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -523,6 +523,37 @@ hopefully make them easier to read. HLint also makes it easy to disable unwanted suggestions, and to add your own custom suggestions.") (license bsd-3))) +(define-public ghc-resourcet + (package + (name "ghc-resourcet") + (version "1.1.6") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/resourcet/resourcet-" + version + ".tar.gz")) + (sha256 + (base32 + "0zhsaaa4n8ry76vjih519a8npm2hrzk10d5asrgllcwpzmifl41y")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-transformers-base" ,ghc-transformers-base) + ("ghc-monad-control" ,ghc-monad-control) + ("ghc-transformers-compat" ,ghc-transformers-compat) + ("ghc-mtl" ,ghc-mtl) + ("ghc-mmorph" ,ghc-mmorph) + ("ghc-exceptions" ,ghc-exceptions))) + (inputs + `(("ghc-lifted-base" ,ghc-lifted-base) + ("ghc-hspec" ,ghc-hspec))) + (home-page "http://github.com/snoyberg/conduit") + (synopsis "Deterministic allocation and freeing of scarce resources") + (description "ResourceT is a monad transformer which creates a region of +code where you can safely allocate resources.") + (license bsd-3))) + (define-public cpphs (package (name "cpphs") -- cgit v1.2.3 From f550db48ebea7d0ce494641ebaf7d33ccd3f40ec Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 22 Oct 2015 13:19:56 +0200 Subject: gnu: Add ghc-streaming-commons. * gnu/packages/haskell.scm (ghc-streaming-commons): New variable. --- gnu/packages/haskell.scm | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 3e6db05be1..09ab4aa349 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -554,6 +554,39 @@ unwanted suggestions, and to add your own custom suggestions.") code where you can safely allocate resources.") (license bsd-3))) +(define-public ghc-streaming-commons + (package + (name "ghc-streaming-commons") + (version "0.1.14.2") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/streaming-commons/streaming-commons-" + version + ".tar.gz")) + (sha256 + (base32 + "12nw9bwvy6zrabkgvbp371klca3ds6qjlfncg1b8pbwx1y7m8c8h")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-random" ,ghc-random))) + (inputs + `(("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-async" ,ghc-async) + ("ghc-blaze-builder" ,ghc-blaze-builder) + ("ghc-hspec" ,ghc-hspec) + ("ghc-stm" ,ghc-stm) + ("ghc-text" ,ghc-text) + ("ghc-network" ,ghc-network) + ("ghc-zlib" ,ghc-zlib))) + (home-page "https://hackage.haskell.org/package/streaming-commons") + (synopsis "Conduit and pipes needed by some streaming data libraries") + (description "Provides low-dependency functionality commonly needed by +various Haskell streaming data libraries, such as @code{conduit} and +@code{pipe}s.") + (license bsd-3))) + (define-public cpphs (package (name "cpphs") -- cgit v1.2.3 From d6a08d24bfd4eb94d761b23d2f57810100f7abb3 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 16:41:58 +0200 Subject: gnu: Add ghc-xss-sanitize. * gnu/packages/haskell.scm (ghc-xss-sanitize): New variable. --- gnu/packages/haskell.scm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 09ab4aa349..19fc409943 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -554,6 +554,38 @@ unwanted suggestions, and to add your own custom suggestions.") code where you can safely allocate resources.") (license bsd-3))) +(define-public ghc-xss-sanitize + (package + (name "ghc-xss-sanitize") + (version "0.3.5.6") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/xss-sanitize/xss-sanitize-" + version + ".tar.gz")) + (sha256 + (base32 + "1j2qrn2dbfx01m7zyk9ilgnp9zjwq9mk62b0rdal4zkg4vh212h0")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-tagsoup" ,ghc-tagsoup) + ("ghc-utf8-string" ,ghc-utf8-string) + ("ghc-css-text" ,ghc-css-text) + ("ghc-network-uri" ,ghc-network-uri))) + (inputs + `(("ghc-text" ,ghc-text) + ("ghc-attoparsec" ,ghc-attoparsec) + ("ghc-hspec" ,ghc-hspec) + ("ghc-hunit" ,ghc-hunit))) + (home-page "http://github.com/yesodweb/haskell-xss-sanitize") + (synopsis "Sanitize untrusted HTML to prevent XSS attacks") + (description "This library provides @code{sanitizeXSS}. Run untrusted +HTML through @code{Text.HTML.SanitizeXSS.sanitizeXSS} to prevent XSS +attacks.") + (license bsd-3))) + (define-public ghc-streaming-commons (package (name "ghc-streaming-commons") -- cgit v1.2.3 From e372520ec3a6b6a091d12a82291d505c1bb9b5bd Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 16:43:40 +0200 Subject: gnu: Add ghc-parsers. * gnu/packages/haskell.scm (ghc-parsers): New variable. --- gnu/packages/haskell.scm | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 19fc409943..1aa39ea62d 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -1443,6 +1443,41 @@ regex-posix, regex-pcre, regex-parsec, regex-tdfa, regex-dfa.") @code{libtre} (fork by Roman Cheplyaka).") (license bsd-3))) +(define-public ghc-parsers + (package + (name "ghc-parsers") + (version "0.12.3") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/parsers/parsers-" + version + ".tar.gz")) + (sha256 + (base32 + "18wzmp8y3py4qa8hdsxqm0jfzmwy744dw7xa48r5s8ynhpimi462")))) + (build-system haskell-build-system) + (arguments `(#:tests? #f)) ; FIXME: Test fails with "cannot satisfy + ; -package attoparsec-0.13.0.1" + (propagated-inputs + `(("ghc-base-orphans" ,ghc-base-orphans) + ("ghc-attoparsec" ,ghc-attoparsec) + ("ghc-parsec" ,ghc-parsec) + ("ghc-scientific" ,ghc-scientific) + ("ghc-charset" ,ghc-charset))) + (inputs + `(("ghc-text" ,ghc-text) + ("ghc-unordered-containers" ,ghc-unordered-containers))) + (home-page "http://github.com/ekmett/parsers/") + (synopsis "Parsing combinators") + (description "This library provides convenient combinators for working +with and building parsing combinator libraries. Given a few simple instances, +you get access to a large number of canned definitions. Instances exist for +the parsers provided by @code{parsec}, @code{attoparsec} and @code{base}'s +@code{Text.Read}.") + (license bsd-3))) + (define-public ghc-attoparsec (package (name "ghc-attoparsec") -- cgit v1.2.3 From 5722409b182f1a0bae44e1b05a65306ba4480a09 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 22 Oct 2015 15:20:46 +0200 Subject: gnu: Add ghc-cookie. * gnu/packages/haskell.scm (ghc-cookie): New variable. --- gnu/packages/haskell.scm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 1aa39ea62d..a89e6f426b 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -3834,6 +3834,37 @@ and any other types of tests into a single test suite.") test framework.") (license expat))) +(define-public ghc-cookie + (package + (name "ghc-cookie") + (version "0.4.1.6") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/cookie/cookie-" + version + ".tar.gz")) + (sha256 + (base32 + "0b6ym6fn29p5az4dwydy036lxj131kagrmgb93w4bbkqfkds8b9s")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-old-locale" ,ghc-old-locale))) + (inputs + `(("ghc-blaze-builder" ,ghc-blaze-builder) + ("ghc-text" ,ghc-text) + ("ghc-data-default-class" ,ghc-data-default-class) + ("ghc-hunit" ,ghc-hunit) + ("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-tasty" ,ghc-tasty) + ("ghc-tasty-hunit" ,ghc-tasty-hunit) + ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck))) + (home-page "http://github.com/snoyberg/cookie") + (synopsis "HTTP cookie parsing and rendering") + (description "HTTP cookie parsing and rendering library for Haskell.") + (license bsd-3))) + (define-public ghc-scientific (package (name "ghc-scientific") -- cgit v1.2.3 From 3784289667f767d7232b10d8236cd84325d7d336 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 16:46:43 +0200 Subject: gnu: Add ghc-wai. * gnu/packages/haskell.scm (ghc-wai): New variable. --- gnu/packages/haskell.scm | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index a89e6f426b..2e48d57015 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -3937,4 +3937,38 @@ for Haskell, optimized for ease of use and high performance. (A note on naming: in Greek mythology, Aeson was the father of Jason.)") (license bsd-3))) +(define-public ghc-wai + (package + (name "ghc-wai") + (version "3.0.4.0") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/wai/wai-" + version + ".tar.gz")) + (sha256 + (base32 + "1551n0g0n22vml33v0jz5xgjcy6j79algvsdqg11a1z5ljjrjlqf")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-bytestring-builder" ,ghc-bytestring-builder) + ("ghc-unix-compat" ,ghc-unix-compat) + ("ghc-vault" ,ghc-vault) + ("ghc-blaze-builder" ,ghc-blaze-builder) + ("ghc-network" ,ghc-network))) + (inputs + `(("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-hunit" ,ghc-hunit) + ("ghc-hspec" ,ghc-hspec) + ("ghc-text" ,ghc-text) + ("ghc-http-types" ,ghc-http-types))) + (home-page "https://hackage.haskell.org/package/wai") + (synopsis "Web application interface for Haskell") + (description "This package provides a Web Application Interface (WAI) +library for the Haskell language. It defines a common protocol for +communication between web applications and web servers.") + (license bsd-3))) + ;;; haskell.scm ends here -- cgit v1.2.3 From fc3aa91b55fa79debb07591f3888e2e75ea5ff56 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 16:51:17 +0200 Subject: gnu: Add ghc-wai-logger. * gnu/packages/haskell.scm (ghc-wai-logger): New variable. --- gnu/packages/haskell.scm | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 2e48d57015..f9f7449609 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -3971,4 +3971,38 @@ library for the Haskell language. It defines a common protocol for communication between web applications and web servers.") (license bsd-3))) +(define-public ghc-wai-logger + (package + (name "ghc-wai-logger") + (version "2.2.4.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/wai-logger/wai-logger-" + version + ".tar.gz")) + (sha256 + (base32 + "1s6svvy3ci4j1dj1jaw8hg628miwj8f5gpy9n8d8hpsaxav6nzgk")))) + (build-system haskell-build-system) + (arguments `(#:tests? #f)) ; FIXME: Tests cannot find libraries exported + ; by propagated-inputs. + (propagated-inputs + `(("ghc-auto-update" ,ghc-auto-update) + ("ghc-byteorder" ,ghc-byteorder) + ("ghc-easy-file" ,ghc-easy-file) + ("ghc-unix-time" ,ghc-unix-time))) + (inputs + `(("ghc-blaze-builder" ,ghc-blaze-builder) + ("ghc-case-insensitive" ,ghc-case-insensitive) + ("ghc-fast-logger" ,ghc-fast-logger) + ("ghc-http-types" ,ghc-http-types) + ("ghc-network" ,ghc-network) + ("ghc-wai" ,ghc-wai))) + (home-page "http://hackage.haskell.org/package/wai-logger") + (synopsis "Logging system for WAI") + (description "This package provides the logging system for WAI.") + (license bsd-3))) + ;;; haskell.scm ends here -- cgit v1.2.3 From 7588e55c737ff0091a170a158374a9c7819eccea Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 16:48:50 +0200 Subject: gnu: Add ghc-wai-extra. * gnu/packages/haskell.scm (ghc-wai-extra): New variable. --- gnu/packages/haskell.scm | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index f9f7449609..9e95db0734 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -4005,4 +4005,52 @@ communication between web applications and web servers.") (description "This package provides the logging system for WAI.") (license bsd-3))) +(define-public ghc-wai-extra + (package + (name "ghc-wai-extra") + (version "3.0.11.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/wai-extra/wai-extra-" + version + ".tar.gz")) + (sha256 + (base32 + "1kr2s5qyx1dvnwr372h7pca4sgxjv0pdx96xkgsfi180h3mb0vq8")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-ansi-terminal" ,ghc-ansi-terminal) + ("ghc-base64-bytestring" ,ghc-base64-bytestring) + ("ghc-cookie" ,ghc-cookie) + ("ghc-blaze-builder" ,ghc-blaze-builder) + ("ghc-network" ,ghc-network) + ("ghc-lifted-base" ,ghc-lifted-base) + ("ghc-streaming-commons" ,ghc-streaming-commons) + ("ghc-stringsearch" ,ghc-stringsearch) + ("ghc-resourcet" ,ghc-resourcet) + ("ghc-fast-logger" ,ghc-fast-logger) + ("ghc-wai-logger" ,ghc-wai-logger) + ("ghc-zlib" ,ghc-zlib) + ("ghc-word8" ,ghc-word8) + ("ghc-iproute" ,ghc-iproute) + ("ghc-void" ,ghc-void))) + (inputs + `(("ghc-wai" ,ghc-wai) + ("ghc-http-types" ,ghc-http-types) + ("ghc-text" ,ghc-text) + ("ghc-case-insensitive" ,ghc-case-insensitive) + ("ghc-data-default-class" ,ghc-data-default-class) + ("ghc-unix-compat" ,ghc-unix-compat) + ("ghc-vault" ,ghc-vault) + ("ghc-aeson" ,ghc-aeson) + ("ghc-hspec" ,ghc-hspec) + ("ghc-hunit" ,ghc-hunit))) + (home-page "http://github.com/yesodweb/wai") + (synopsis "Some basic WAI handlers and middleware") + (description "This library provides basic WAI handlers and middleware +functionality.") + (license expat))) + ;;; haskell.scm ends here -- cgit v1.2.3 From 576cdc5ab4c6f08048db2f3a7a4aeae663594a17 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 17:04:39 +0200 Subject: gnu: Add ghc-vector-binary-instances. * gnu/packages/haskell.scm (ghc-vector-binary-instances): New variable. --- gnu/packages/haskell.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 9e95db0734..97c61be9d4 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -2519,6 +2519,34 @@ Int-indexed arrays (both mutable and immutable), with a powerful loop optimisation framework.") (license bsd-3))) +(define-public ghc-vector-binary-instances + (package + (name "ghc-vector-binary-instances") + (version "0.2.1.0") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/" + "vector-binary-instances/vector-binary-instances-" + version ".tar.gz")) + (sha256 + (base32 + "028rsf2w193rhs1gic5yvvrwidw9sblczcn10aw64npfc6502l4l")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-cereal" ,ghc-cereal))) + (inputs + `(("ghc-vector" ,ghc-vector))) + (home-page "https://github.com/bos/vector-binary-instances") + (synopsis "Instances of Data.Binary and Data.Serialize for vector") + (description "This library provides instances of @code{Binary} for the +types defined in the @code{vector} package, making it easy to serialize +vectors to and from disk. We use the generic interface to vectors, so all +vector types are supported. Specific instances are provided for unboxed, +boxed and storable vectors.") + (license bsd-3))) + (define-public ghc-network (package (name "ghc-network") -- cgit v1.2.3 From 5125f63fea0dccf4e620a81e73636ad8e2a30067 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 17:06:03 +0200 Subject: gnu: Add ghc-kan-extensions. * gnu/packages/haskell.scm (ghc-kan-extensions): New variable. --- gnu/packages/haskell.scm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 97c61be9d4..a35ba5c44b 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -3336,6 +3336,37 @@ Compatibility package for older packages.") given term should not exist.") (license bsd-3))) +(define-public ghc-kan-extensions + (package + (name "ghc-kan-extensions") + (version "4.2.3") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/kan-extensions/kan-extensions-" + version + ".tar.gz")) + (sha256 + (base32 + "0iywbadpy8s3isfzlx9dlz3apaywhqq4gdbxkwygksq8pzdhwkrk")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-adjunctions" ,ghc-adjunctions))) + (inputs + `(("ghc-comonad" ,ghc-comonad) + ("ghc-contravariant" ,ghc-contravariant) + ("ghc-distributive" ,ghc-distributive) + ("ghc-free" ,ghc-free) + ("ghc-mtl" ,ghc-mtl) + ("ghc-semigroupoids" ,ghc-semigroupoids) + ("ghc-tagged" ,ghc-tagged))) + (home-page "http://github.com/ekmett/kan-extensions/") + (synopsis "Kan extensions library") + (description "This library provides Kan extensions, Kan lifts, various +forms of the Yoneda lemma, and (co)density (co)monads for Haskell.") + (license bsd-3))) + (define-public ghc-statevar (package (name "ghc-statevar") -- cgit v1.2.3 From e1a35c39b1618814e5213fd122a60170cabc59ec Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 17:08:09 +0200 Subject: gnu: Add ghc-lens. * gnu/packages/haskell.scm (ghc-lens): Add variable. --- gnu/packages/haskell.scm | 51 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index a35ba5c44b..808e5cc765 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -3390,6 +3390,57 @@ forms of the Yoneda lemma, and (co)density (co)monads for Haskell.") in the @code{IO} monad, like @code{IORef}s or parts of the OpenGL state.") (license bsd-3))) +(define-public ghc-lens + (package + (name "ghc-lens") + (version "4.13") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/lens/lens-" + version + ".tar.gz")) + (sha256 + (base32 + "0g4g0xksrb2m8wgsmraaq8qnk1sssb42kr65fc7clgyid6zyfmim")))) + (build-system haskell-build-system) + (arguments `(#:tests? #f)) ; FIXME: doctest packagedb propagation problem. + (propagated-inputs + `(("ghc-base-orphans" ,ghc-base-orphans) + ("ghc-bifunctors" ,ghc-bifunctors) + ("ghc-distributive" ,ghc-distributive) + ("ghc-exceptions" ,ghc-exceptions) + ("ghc-free" ,ghc-free) + ("ghc-kan-extensions" ,ghc-kan-extensions) + ("ghc-parallel" ,ghc-parallel) + ("ghc-reflection" ,ghc-reflection) + ("ghc-semigroupoids" ,ghc-semigroupoids) + ("ghc-vector" ,ghc-vector))) + (inputs + `(("ghc-comonad" ,ghc-comonad) + ("ghc-contravariant" ,ghc-contravariant) + ("ghc-hashable" ,ghc-hashable) + ("ghc-mtl" ,ghc-mtl) + ("ghc-profunctors" ,ghc-profunctors) + ("ghc-semigroups" ,ghc-semigroups) + ("ghc-tagged" ,ghc-tagged) + ("ghc-text" ,ghc-text) + ("ghc-transformers-compat" ,ghc-transformers-compat) + ("ghc-unordered-containers" ,ghc-unordered-containers) + ("ghc-void" ,ghc-void) + ("ghc-generic-deriving" ,ghc-generic-deriving) + ("ghc-nats" ,ghc-nats) + ("ghc-simple-reflect" ,ghc-simple-reflect) + ("hlint" ,hlint))) + (home-page "http://github.com/ekmett/lens/") + (synopsis "Lenses, Folds and Traversals") + (description "This library provides @code{Control.Lens}. The combinators +in @code{Control.Lens} provide a highly generic toolbox for composing families +of getters, folds, isomorphisms, traversals, setters and lenses and their +indexed variants.") + (license bsd-3))) + (define-public ghc-tagsoup (package (name "ghc-tagsoup") -- cgit v1.2.3 From d7e67cf1a1a057498a57859d6c64adf6b537a9a1 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 17:10:00 +0200 Subject: gnu: Add ghc-cheapskate. * gnu/packages/haskell.scm (ghc-cheapskate): Add variable. --- gnu/packages/haskell.scm | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 808e5cc765..f65d412b95 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -3497,6 +3497,43 @@ strict and lazy bytestrings. For now, CRC32 and Adler32 are supported; they are implemented as FFI bindings to efficient code from zlib.") (license bsd-3))) +(define-public ghc-cheapskate + (package + (name "ghc-cheapskate") + (version "0.1.0.4") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/cheapskate/cheapskate-" + version + ".tar.gz")) + (sha256 + (base32 + "0drx1hlqvdcrij4097q6bxhbfcqm73jsqv1wwhd3hsnjdmr46ch2")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-xss-sanitize" ,ghc-xss-sanitize) + ("ghc-data-default" ,ghc-data-default))) + (inputs + `(("ghc-mtl" ,ghc-mtl) + ("ghc-text" ,ghc-text) + ("ghc-blaze-html" ,ghc-blaze-html) + ("ghc-syb" ,ghc-syb) + ("ghc-uniplate" ,ghc-uniplate) + ("ghc-aeson" ,ghc-aeson) + ("ghc-wai-extra" ,ghc-wai-extra) + ("ghc-wai" ,ghc-wai) + ("ghc-http-types" ,ghc-http-types))) + (home-page "http://github.com/jgm/cheapskate") + (synopsis "Experimental markdown processor") + (description "Cheapskate is an experimental Markdown processor in pure +Haskell. It aims to process Markdown efficiently and in the most forgiving +possible way. It is designed to deal with any input, including garbage, with +linear performance. Output is sanitized by default for protection against XSS +attacks.") + (license bsd-3))) + (define-public ghc-bifunctors (package (name "ghc-bifunctors") -- cgit v1.2.3 From 93248cfdd016c36e6acb3575af9da038c4a25cc6 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 17:11:24 +0200 Subject: gnu: Add ghc-trifecta. * gnu/packages/haskell.scm (ghc-trifecta): New variable. --- gnu/packages/haskell.scm | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index f65d412b95..80812a033c 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -1478,6 +1478,48 @@ the parsers provided by @code{parsec}, @code{attoparsec} and @code{base}'s @code{Text.Read}.") (license bsd-3))) +(define-public ghc-trifecta + (package + (name "ghc-trifecta") + (version "1.5.2") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/trifecta/trifecta-" + version + ".tar.gz")) + (sha256 + (base32 + "0fjhnsbafl3yw34pyhcsvrqy6a2mnhyqys6gna3rrlygs8ck7hpb")))) + (build-system haskell-build-system) + (arguments `(#:tests? #f)) ; FIXME: Test fails with "cannot satisfy + ; -package ansi-terminal-0.6.2.3" + (propagated-inputs + `(("ghc-charset" ,ghc-charset) + ("ghc-comonad" ,ghc-comonad) + ("ghc-lens" ,ghc-lens) + ("ghc-profunctors" ,ghc-profunctors) + ("ghc-reducers" ,ghc-reducers) + ("ghc-semigroups" ,ghc-semigroups))) + (inputs + `(("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint) + ("ghc-ansi-terminal" ,ghc-ansi-terminal) + ("ghc-blaze-builder" ,ghc-blaze-builder) + ("ghc-blaze-html" ,ghc-blaze-html) + ("ghc-blaze-markup" ,ghc-blaze-markup) + ("ghc-fingertree" ,ghc-fingertree) + ("ghc-hashable" ,ghc-hashable) + ("ghc-mtl" ,ghc-mtl) + ("ghc-parsers" ,ghc-parsers) + ("ghc-unordered-containers" ,ghc-unordered-containers) + ("ghc-utf8-string" ,ghc-utf8-string))) + (home-page "http://github.com/ekmett/trifecta/") + (synopsis "Parser combinator library with convenient diagnostics") + (description "Trifecta is a modern parser combinator library for Haskell, +with slicing and Clang-style colored diagnostics.") + (license bsd-3))) + (define-public ghc-attoparsec (package (name "ghc-attoparsec") -- cgit v1.2.3 From 600621a182efca965cea18bf869b463f7b40cb29 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 15 Oct 2015 17:14:44 +0200 Subject: gnu: Add Idris. * gnu/packages/haskell.scm (idris): New variable. --- gnu/packages/haskell.scm | 62 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 80812a033c..d8f8bede85 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -32,6 +32,7 @@ #:use-module (gnu packages elf) #:use-module (gnu packages bootstrap) #:use-module (gnu packages zip) + #:use-module (gnu packages gcc) #:use-module (gnu packages ghostscript) #:use-module (gnu packages libffi) #:use-module (gnu packages libedit) @@ -4242,4 +4243,65 @@ communication between web applications and web servers.") functionality.") (license expat))) +(define-public idris + (package + (name "idris") + (version "0.9.19.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/idris-" + version "/idris-" version ".tar.gz")) + (sha256 + (base32 + "10641svdsjlxbxmbvylpia04cz5nn9486lpiay8ibqcrc1792qgc")) + (modules '((guix build utils))) + (snippet + '(substitute* "idris.cabal" + ;; Package description file has a too-tight version restriction, + ;; rendering it incompatible with GHC 7.10.2. This is fixed + ;; upstream. See + ;; . + (("vector < 0.11") "vector < 0.12"))))) + (build-system haskell-build-system) + (arguments + `(#:phases (modify-phases %standard-phases + (add-before 'configure 'patch-cc-command + (lambda _ + (setenv "CC" "gcc")))))) + (inputs + `(("gmp" ,gmp) + ("ncurses" ,ncurses) + ("ghc-annotated-wl-pprint" ,ghc-annotated-wl-pprint) + ("ghc-ansi-terminal" ,ghc-ansi-terminal) + ("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint) + ("ghc-base64-bytestring" ,ghc-base64-bytestring) + ("ghc-blaze-html" ,ghc-blaze-html) + ("ghc-blaze-markup" ,ghc-blaze-markup) + ("ghc-cheapskate" ,ghc-cheapskate) + ("ghc-fingertree" ,ghc-fingertree) + ("ghc-mtl" ,ghc-mtl) + ("ghc-network" ,ghc-network) + ("ghc-optparse-applicative" ,ghc-optparse-applicative) + ("ghc-parsers" ,ghc-parsers) + ("ghc-safe" ,ghc-safe) + ("ghc-split" ,ghc-split) + ("ghc-text" ,ghc-text) + ("ghc-trifecta" ,ghc-trifecta) + ("ghc-uniplate" ,ghc-uniplate) + ("ghc-unordered-containers" ,ghc-unordered-containers) + ("ghc-utf8-string" ,ghc-utf8-string) + ("ghc-vector-binary-instances" ,ghc-vector-binary-instances) + ("ghc-vector" ,ghc-vector) + ("ghc-zip-archive" ,ghc-zip-archive) + ("ghc-zlib" ,ghc-zlib))) + (home-page "http://www.idris-lang.org") + (synopsis "General purpose language with full dependent types") + (description "Idris is a general purpose language with full dependent +types. It is compiled, with eager evaluation. Dependent types allow types to +be predicated on values, meaning that some aspects of a program's behaviour +can be specified precisely in the type. The language is closely related to +Epigram and Agda.") + (license bsd-3))) + ;;; haskell.scm ends here -- cgit v1.2.3 From 56b3bc5694837c8558c007d4112ac16bf0fdd395 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Fri, 16 Oct 2015 10:59:00 +0200 Subject: gnu: Add ghc-haddock-library. * gnu/packages/haskell.scm (ghc-haddock-library): New variable. --- gnu/packages/haskell.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index d8f8bede85..f47f3ac398 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -387,6 +387,36 @@ package.") package.") (license bsd-3))) +(define-public ghc-haddock-library + (package + (name "ghc-haddock-library") + (version "1.2.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/haddock-library/haddock-library-" + version + ".tar.gz")) + (sha256 + (base32 + "0mhh2ppfhrvvi9485ipwbkv2fbgj35jvz3la02y3jlvg5ffs1c8g")))) + (build-system haskell-build-system) + (inputs + `(("ghc-base-compat" ,ghc-base-compat) + ("ghc-hspec" ,ghc-hspec) + ("ghc-quickcheck" ,ghc-quickcheck))) + (home-page "http://www.haskell.org/haddock/") + (synopsis + "Library exposing some functionality of Haddock") + (description + "Haddock is a documentation-generation tool for Haskell libraries. These +modules expose some functionality of it without pulling in the GHC dependency. +Please note that the API is likely to change so specify upper bounds in your +project if you can't release often. For interacting with Haddock itself, see +the ‘haddock’ package.") + (license bsd-3))) + (define-public ghc-simple-reflect (package (name "ghc-simple-reflect") -- cgit v1.2.3 From 735bd9c952efac2ae4f9f48fe259251e1909de77 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Fri, 16 Oct 2015 10:59:23 +0200 Subject: gnu: Add ghc-haddock-api. * gnu/packages/haskell.scm (ghc-haddock-api): New variable. --- gnu/packages/haskell.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index f47f3ac398..88a551ce36 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -417,6 +417,30 @@ project if you can't release often. For interacting with Haddock itself, see the ‘haddock’ package.") (license bsd-3))) +(define-public ghc-haddock-api + (package + (name "ghc-haddock-api") + (version "2.16.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/haddock-api/haddock-api-" + version + ".tar.gz")) + (sha256 + (base32 + "1spd5axg1pdjv4dkdb5gcwjsc8gg37qi4mr2k2db6ayywdkis1p2")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-paths" ,ghc-paths) + ("ghc-haddock-library" ,ghc-haddock-library))) + (home-page "http://www.haskell.org/haddock/") + (synopsis "API for documentation-generation tool Haddock") + (description "This package provides an API to Haddock, the +documentation-generation tool for Haskell libraries.") + (license bsd-3))) + (define-public ghc-simple-reflect (package (name "ghc-simple-reflect") -- cgit v1.2.3 From e0492a8dd49a6b4353ddc39fcbf0807ed2090cf4 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Fri, 16 Oct 2015 10:59:36 +0200 Subject: gnu: Add ghc-haddock. * gnu/packages/haskell.scm (ghc-haddock): New variable. --- gnu/packages/haskell.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 88a551ce36..58c68d0dc6 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -441,6 +441,32 @@ the ‘haddock’ package.") documentation-generation tool for Haskell libraries.") (license bsd-3))) +(define-public ghc-haddock + (package + (name "ghc-haddock") + (version "2.16.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/haddock/haddock-" + version + ".tar.gz")) + (sha256 + (base32 + "1mnnvc5jqp6n6rj7xw8wdm0z2xp9fndkz11c8p3vbljsrcqd3v26")))) + (build-system haskell-build-system) + (arguments `(#:tests? #f)) ; FIXME: Tests break with GHC 7.10.2, fixed + ; upstream. See + ; + (inputs `(("ghc-haddock-api" ,ghc-haddock-api))) + (home-page "http://www.haskell.org/haddock/") + (synopsis + "Documentation-generation tool for Haskell libraries") + (description + "Haddock is a documentation-generation tool for Haskell libraries.") + (license bsd-3))) + (define-public ghc-simple-reflect (package (name "ghc-simple-reflect") -- cgit v1.2.3 From e40b25432ee3eb04f14a107c17b8a47570edb725 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Fri, 16 Oct 2015 11:06:14 +0200 Subject: gnu: Add ghc-alex. * gnu/packages/haskell.scm (ghc-alex): New variable. --- gnu/packages/haskell.scm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 58c68d0dc6..4ea896aa71 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -494,6 +494,35 @@ are no options for manipulating the reflected expressions beyond showing them.") (license bsd-3))) +(define-public ghc-alex + (package + (name "ghc-alex") + (version "3.1.4") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/alex/alex-" + version + ".tar.gz")) + (sha256 + (base32 + "17x13nbbr79xgdlzywjqw19vcl6iygjnssjnxnajgijkv764wknn")))) + (build-system haskell-build-system) + (arguments `(#:tests? #f)) ; FIXME: Tests broken for GHC 7.10. Fixed + ; upstream, see + ; + (inputs `(("ghc-quickcheck" ,ghc-quickcheck))) + (home-page "http://www.haskell.org/alex/") + (synopsis + "Tool for generating lexical analysers in Haskell") + (description + "Alex is a tool for generating lexical analysers in Haskell. It takes a +description of tokens based on regular expressions and generates a Haskell +module containing code for scanning text efficiently. It is similar to the +tool lex or flex for C/C++.") + (license bsd-3))) + (define-public ghc-cmdargs (package (name "ghc-cmdargs") -- cgit v1.2.3 From 5e217e4df7441d8a21acc96b6265acce05666f51 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Fri, 16 Oct 2015 11:09:28 +0200 Subject: gnu: Add ghc-multipart. * gnu/packages/haskell.scm (ghc-multipart): New variable. --- gnu/packages/haskell.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 4ea896aa71..54271d864f 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -494,6 +494,30 @@ are no options for manipulating the reflected expressions beyond showing them.") (license bsd-3))) +(define-public ghc-multipart + (package + (name "ghc-multipart") + (version "0.1.2") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/multipart/multipart-" + version + ".tar.gz")) + (sha256 + (base32 + "0g04jhyw1ib1s7c9bcldyyn4n90qd9x7dmvic4vgq57bgcqgnhz5")))) + (build-system haskell-build-system) + (inputs `(("ghc-parsec" ,ghc-parsec))) + (home-page + "http://www.github.com/silkapp/multipart") + (synopsis + "HTTP multipart library") + (description + "HTTP multipart split out of the cgi package, for Haskell.") + (license bsd-3))) + (define-public ghc-alex (package (name "ghc-alex") -- cgit v1.2.3 From 1f477b59c1b8167d2bd347ef81f02e728bbbf869 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Fri, 16 Oct 2015 11:09:43 +0200 Subject: gnu: Add ghc-cgi. * gnu/packages/haskell.scm (ghc-cgi): New variable. --- gnu/packages/haskell.scm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 54271d864f..175d026e43 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -547,6 +547,37 @@ module containing code for scanning text efficiently. It is similar to the tool lex or flex for C/C++.") (license bsd-3))) +(define-public ghc-cgi + (package + (name "ghc-cgi") + (version "3001.2.2.2") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/cgi/cgi-" + version + ".tar.gz")) + (sha256 + (base32 + "0q1pxpa8gi42c0hsidcdkhk5xr5anfrvhqsn3iksr9c0rllhz193")))) + (build-system haskell-build-system) + (inputs + `(("ghc-parsec" ,ghc-parsec) + ("ghc-old-locale" ,ghc-old-locale) + ("ghc-old-time" ,ghc-old-time) + ("ghc-exceptions" ,ghc-exceptions) + ("ghc-multipart" ,ghc-multipart) + ("ghc-network-uri" ,ghc-network-uri) + ("ghc-network" ,ghc-network) + ("ghc-mtl" ,ghc-mtl))) + (home-page + "https://github.com/cheecheeo/haskell-cgi") + (synopsis "Library for writing CGI programs") + (description + "This is a Haskell library for writing CGI programs.") + (license bsd-3))) + (define-public ghc-cmdargs (package (name "ghc-cmdargs") -- cgit v1.2.3 From 0bc641baf86b651a059fc53358d220a08dc7123c Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Fri, 16 Oct 2015 11:10:46 +0200 Subject: gnu: Add ghc-html. * gnu/packages/haskell.scm (ghc-html): New variable. --- gnu/packages/haskell.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 175d026e43..1928793536 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -518,6 +518,29 @@ them.") "HTTP multipart split out of the cgi package, for Haskell.") (license bsd-3))) +(define-public ghc-html + (package + (name "ghc-html") + (version "1.0.1.2") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/html/html-" + version + ".tar.gz")) + (sha256 + (base32 + "0q9hmfii62kc82ijlg238fxrzxhsivn42x5wd6ffcr9xldg4jd8c")))) + (build-system haskell-build-system) + (home-page + "http://hackage.haskell.org/package/html") + (synopsis "HTML combinator library") + (description + "This package contains a combinator library for constructing HTML +documents.") + (license bsd-3))) + (define-public ghc-alex (package (name "ghc-alex") -- cgit v1.2.3 From e0d17b848226ef9401b1d588896942a96b1fdbd4 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Fri, 16 Oct 2015 11:13:03 +0200 Subject: gnu: Add ghc-haskell-src. * gnu/packages/haskell.scm (ghc-haskell-src): New variable. --- gnu/packages/haskell.scm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 1928793536..b8875ae0b1 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -541,6 +541,35 @@ them.") documents.") (license bsd-3))) +(define-public ghc-haskell-src + (package + (name "ghc-haskell-src") + (version "1.0.2.0") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/haskell-src/haskell-src-" + version + ".tar.gz")) + (sha256 + (base32 + "19lilhpwnjb7cks9fq1ipnc8f7dwxy0ri3dgjkdxs3i355byw99a")))) + (build-system haskell-build-system) + (inputs + `(("ghc-happy" ,ghc-happy) + ("ghc-syb" ,ghc-syb))) + (home-page + "http://hackage.haskell.org/package/haskell-src") + (synopsis + "Support for manipulating Haskell source code") + (description + "The 'haskell-src' package provides support for manipulating Haskell +source code. The package provides a lexer, parser and pretty-printer, and a +definition of a Haskell abstract syntax tree (AST). Common uses of this +package are to parse or generate Haskell 98 code.") + (license bsd-3))) + (define-public ghc-alex (package (name "ghc-alex") -- cgit v1.2.3 From 25eb1c2227daadf85b6c20e204c2109ca70becba Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Fri, 16 Oct 2015 11:14:01 +0200 Subject: gnu: Add ghc-xhtml. * gnu/packages/haskell.scm (ghc-xhtml): New variable. --- gnu/packages/haskell.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index b8875ae0b1..55f3de0e56 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -541,6 +541,28 @@ them.") documents.") (license bsd-3))) +(define-public ghc-xhtml + (package + (name "ghc-xhtml") + (version "3000.2.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/xhtml/xhtml-" + version + ".tar.gz")) + (sha256 + (base32 + "1n6wgzxbj8xf0wf1il827qidphnffb5vzhwzqlxhh70c2y10f0ik")))) + (build-system haskell-build-system) + (home-page "https://github.com/haskell/xhtml") + (synopsis "XHTML combinator library") + (description + "This package provides combinators for producing XHTML 1.0, including the +Strict, Transitional and Frameset variants.") + (license bsd-3))) + (define-public ghc-haskell-src (package (name "ghc-haskell-src") -- cgit v1.2.3 From e422279bbc5e4743ed7b99bbe060a52f86d9837a Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Fri, 16 Oct 2015 11:16:24 +0200 Subject: gnu: Add ghc-regex-posix. * gnu/packages/haskell.scm (ghc-regex-posix): New variable. --- gnu/packages/haskell.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 55f3de0e56..7fba208d43 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -1655,6 +1655,28 @@ removed. Both IPv4 and IPv6 are supported.") regex-posix, regex-pcre, regex-parsec, regex-tdfa, regex-dfa.") (license bsd-3))) +(define-public ghc-regex-posix + (package + (name "ghc-regex-posix") + (version "0.95.2") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/regex-posix/regex-posix-" + version + ".tar.gz")) + (sha256 + (base32 + "0gkhzhj8nvfn1ija31c7xnl6p0gadwii9ihyp219ck2arlhrj0an")))) + (build-system haskell-build-system) + (inputs `(("ghc-regex-base" ,ghc-regex-base))) + (home-page "http://sourceforge.net/projects/lazy-regex") + (synopsis "POSIX regular expressions for Haskell") + (description "This library provides the POSIX regex backend used by the +Haskell library @code{regex-base}.") + (license bsd-3))) + (define-public ghc-regex-tdfa-rc (package (name "ghc-regex-tdfa-rc") -- cgit v1.2.3 From 25d51164f7b012a089abd70ce9a97d69bdb83aea Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Fri, 16 Oct 2015 11:17:34 +0200 Subject: gnu: Add ghc-regex-compat. * gnu/packages/haskell.scm (ghc-regex-compat): New variable. --- gnu/packages/haskell.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 7fba208d43..b8674e5582 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -1677,6 +1677,30 @@ regex-posix, regex-pcre, regex-parsec, regex-tdfa, regex-dfa.") Haskell library @code{regex-base}.") (license bsd-3))) +(define-public ghc-regex-compat + (package + (name "ghc-regex-compat") + (version "0.95.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/regex-compat/regex-compat-" + version + ".tar.gz")) + (sha256 + (base32 + "0fwmima3f04p9y4h3c23493n1xj629ia2dxaisqm6rynljjv2z6m")))) + (build-system haskell-build-system) + (inputs + `(("ghc-regex-base" ,ghc-regex-base) + ("ghc-regex-posix" ,ghc-regex-posix))) + (home-page "http://sourceforge.net/projects/lazy-regex") + (synopsis "Replaces/Enhances Text.Regex") + (description "This library provides one module layer over +@code{regex-posix} to replace @code{Text.Regex}.") + (license bsd-3))) + (define-public ghc-regex-tdfa-rc (package (name "ghc-regex-tdfa-rc") -- cgit v1.2.3 From 22db3ce71a85d8cfc697f5fdca3ec353ee80db52 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Fri, 16 Oct 2015 11:36:34 +0200 Subject: gnu: Add ghc-half. * gnu/packages/haskell.scm (ghc-half): New variable. --- gnu/packages/haskell.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index b8674e5582..05031f240e 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -825,6 +825,27 @@ HTML through @code{Text.HTML.SanitizeXSS.sanitizeXSS} to prevent XSS attacks.") (license bsd-3))) +(define-public ghc-half + (package + (name "ghc-half") + (version "0.2.2.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/half/half-" + version + ".tar.gz")) + (sha256 + (base32 + "0zhwc6ps5w4ccnxl8sy623z4rjsafmnry69jpkw4hrbq11l402f1")))) + (build-system haskell-build-system) + (home-page "http://github.com/ekmett/half") + (synopsis "Half-precision floating-point computations") + (description "This library provides a half-precision floating-point +computation library for Haskell.") + (license bsd-3))) + (define-public ghc-streaming-commons (package (name "ghc-streaming-commons") -- cgit v1.2.3 From c480b85e662cabb8a111873e193ebf27bcac17a0 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Fri, 16 Oct 2015 11:36:58 +0200 Subject: gnu: Add ghc-openglraw. * gnu/packages/haskell.scm (ghc-openglraw): New variable. --- gnu/packages/haskell.scm | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 05031f240e..49ce141e2f 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -30,6 +30,7 @@ #:use-module (gnu packages perl) #:use-module (gnu packages compression) #:use-module (gnu packages elf) + #:use-module (gnu packages gl) #:use-module (gnu packages bootstrap) #:use-module (gnu packages zip) #:use-module (gnu packages gcc) @@ -846,6 +847,38 @@ attacks.") computation library for Haskell.") (license bsd-3))) +(define-public ghc-openglraw + (package + (name "ghc-openglraw") + (version "2.5.1.0") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/OpenGLRaw/OpenGLRaw-" + version + ".tar.gz")) + (sha256 + (base32 + "1kfq24mxg922ml3kkmym2qfpc56jbmrfbiix4rc2cxlwv05i191k")))) + (build-system haskell-build-system) + (inputs + `(("ghc-half" ,ghc-half) + ("glu" ,glu) + ("ghc-text" ,ghc-text))) + (home-page "http://www.haskell.org/haskellwiki/Opengl") + (synopsis "Raw Haskell bindings for the OpenGL graphics system") + (description "OpenGLRaw is a raw Haskell binding for the OpenGL 4.5 +graphics system and lots of OpenGL extensions. It is basically a 1:1 mapping +of OpenGL's C API, intended as a basis for a nicer interface. OpenGLRaw +offers access to all necessary functions, tokens and types plus a general +facility for loading extension entries. The module hierarchy closely mirrors +the naming structure of the OpenGL extensions, making it easy to find the +right module to import. All API entries are loaded dynamically, so no special +C header files are needed for building this package. If an API entry is not +found at runtime, a userError is thrown.") + (license bsd-3))) + (define-public ghc-streaming-commons (package (name "ghc-streaming-commons") -- cgit v1.2.3 From 894562e3141abb68d877ea4f75b8a80c764cda03 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Fri, 16 Oct 2015 18:05:08 +0200 Subject: gnu: Add ghc-gluraw. * gnu/packages/haskell.scm (ghc-gluraw): New variable. --- gnu/packages/haskell.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 49ce141e2f..e561f4d2ad 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -879,6 +879,30 @@ C header files are needed for building this package. If an API entry is not found at runtime, a userError is thrown.") (license bsd-3))) +(define-public ghc-gluraw + (package + (name "ghc-gluraw") + (version "1.5.0.2") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/GLURaw/GLURaw-" + version + ".tar.gz")) + (sha256 + (base32 + "0gscd9lhp9mb10q8s716nx26m8qng9xbb4h6b3f48zzgkc1sy96x")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-openglraw" ,ghc-openglraw))) + (home-page "http://www.haskell.org/haskellwiki/Opengl") + (synopsis "Raw Haskell bindings GLU") + (description "GLURaw is a raw Haskell binding for the GLU 1.3 OpenGL +utility library. It is basically a 1:1 mapping of GLU's C API, intended as a +basis for a nicer interface.") + (license bsd-3))) + (define-public ghc-streaming-commons (package (name "ghc-streaming-commons") -- cgit v1.2.3 From 74fa80ee684bfc985ead95c319aae47806b482d6 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Fri, 16 Oct 2015 11:45:00 +0200 Subject: gnu: Add ghc-objectname. * gnu/packages/haskell.scm (ghc-objectname): New variable. --- gnu/packages/haskell.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index e561f4d2ad..069d85c7d2 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -826,6 +826,29 @@ HTML through @code{Text.HTML.SanitizeXSS.sanitizeXSS} to prevent XSS attacks.") (license bsd-3))) +(define-public ghc-objectname + (package + (name "ghc-objectname") + (version "1.1.0.0") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/ObjectName/ObjectName-" + version + ".tar.gz")) + (sha256 + (base32 + "0kh5fb9ykag6rfsm3f0bx3w323s18w2cyry34w5xgli5ncqimadg")))) + (build-system haskell-build-system) + (home-page "https://hackage.haskell.org/package/ObjectName") + (synopsis "Helper library for Haskell OpenGL") + (description "This tiny package contains the class ObjectName, which +corresponds to the general notion of explicitly handled identifiers for API +objects, e.g. a texture object name in OpenGL or a buffer object name in +OpenAL.") + (license bsd-3))) + (define-public ghc-half (package (name "ghc-half") -- cgit v1.2.3 From fe28ba703f1d72b15428d9c214251d6fd9bf3b5c Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Fri, 16 Oct 2015 11:45:13 +0200 Subject: gnu: Add ghc-opengl. * gnu/packages/haskell.scm (ghc-opengl): New variable. --- gnu/packages/haskell.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 069d85c7d2..9c55153ad8 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -926,6 +926,34 @@ utility library. It is basically a 1:1 mapping of GLU's C API, intended as a basis for a nicer interface.") (license bsd-3))) +(define-public ghc-opengl + (package + (name "ghc-opengl") + (version "2.12.0.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/OpenGL/OpenGL-" + version + ".tar.gz")) + (sha256 + (base32 + "1mcfb167jl75qc2hgylh83vf2jqizvyvkvhhb72adi2crc3zqz4b")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-text" ,ghc-text) + ("ghc-objectname" ,ghc-objectname) + ("ghc-gluraw" ,ghc-gluraw) + ("ghc-statevar" ,ghc-statevar) + ("ghc-openglraw" ,ghc-openglraw))) + (home-page "http://www.haskell.org/haskellwiki/Opengl") + (synopsis "Haskell bindings for the OpenGL graphics system") + (description "This package provides Haskell bindings for the OpenGL +graphics system (GL, version 4.5) and its accompanying utility library (GLU, +version 1.3).") + (license bsd-3))) + (define-public ghc-streaming-commons (package (name "ghc-streaming-commons") -- cgit v1.2.3 From bce030840d597df195630a6883841c917da4ec75 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Fri, 16 Oct 2015 11:51:46 +0200 Subject: gnu: Add ghc-glut. * gnu/packages/haskell.scm (ghc-glut): New variable. --- gnu/packages/haskell.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 9c55153ad8..1d0dd1aea1 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -902,6 +902,34 @@ C header files are needed for building this package. If an API entry is not found at runtime, a userError is thrown.") (license bsd-3))) +(define-public ghc-glut + (package + (name "ghc-glut") + (version "2.7.0.3") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/GLUT/GLUT-" + version + ".tar.gz")) + (sha256 + (base32 + "1qfilpc10jm47anan44c20y8mh76f2dv09m5d22gk0f7am7hg4k2")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-statevar" ,ghc-statevar) + ("ghc-openglraw" ,ghc-openglraw))) + (inputs + `(("ghc-opengl" ,ghc-opengl) + ("freeglut" ,freeglut))) + (home-page "http://www.haskell.org/haskellwiki/Opengl") + (synopsis "Haskell bindings for the OpenGL Utility Toolkit") + (description "This library provides Haskell bindings for the OpenGL +Utility Toolkit, a window system-independent toolkit for writing OpenGL +programs.") + (license bsd-3))) + (define-public ghc-gluraw (package (name "ghc-gluraw") -- cgit v1.2.3 From b784e8c5029d3cb623971288c98624460f830c47 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Fri, 16 Oct 2015 14:53:49 +0200 Subject: gnu: Add ghc-sdl. * gnu/packages/haskell.scm (ghc-sdl): New variable. --- gnu/packages/haskell.scm | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 1d0dd1aea1..5da52e0be3 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -31,6 +31,7 @@ #:use-module (gnu packages compression) #:use-module (gnu packages elf) #:use-module (gnu packages gl) + #:use-module (gnu packages sdl) #:use-module (gnu packages bootstrap) #:use-module (gnu packages zip) #:use-module (gnu packages gcc) @@ -849,6 +850,40 @@ objects, e.g. a texture object name in OpenGL or a buffer object name in OpenAL.") (license bsd-3))) +(define-public ghc-sdl + (package + (name "ghc-sdl") + (version "0.6.5.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/SDL/SDL-" + version + ".tar.gz")) + (sha256 + (base32 + "1sa3zx3vrs1gbinxx33zwq0x2bsf3i964bff7419p7vzidn36k46")))) + (build-system haskell-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after + 'unpack 'fix-/bin/sh + (lambda _ + ;; Use `sh', not `/bin/sh'. + (setenv "CONFIG_SHELL" "sh")))))) + (inputs + `(("sdl" ,sdl))) + (home-page "https://hackage.haskell.org/package/SDL") + (synopsis "LibSDL for Haskell") + (description "Simple DirectMedia Layer (libSDL) is a cross-platform +multimedia library designed to provide low level access to audio, keyboard, +mouse, joystick, 3D hardware via OpenGL, and 2D video framebuffer. It is used +by MPEG playback software, emulators, and many popular games, including the +award winning Linux port of \"Civilization: Call To Power.\"") + (license bsd-3))) + (define-public ghc-half (package (name "ghc-half") -- cgit v1.2.3 From 224a0ddbd905e956a3647e956494d2b904c24457 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Fri, 16 Oct 2015 14:55:05 +0200 Subject: gnu: Add ghc-sdl-mixer. * gnu/packages/haskell.scm (ghc-sdl-mixer): New variable. --- gnu/packages/haskell.scm | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 5da52e0be3..7c21ef72d7 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -884,6 +884,45 @@ by MPEG playback software, emulators, and many popular games, including the award winning Linux port of \"Civilization: Call To Power.\"") (license bsd-3))) +(define-public ghc-sdl-mixer + (package + (name "ghc-sdl-mixer") + (version "0.6.1.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/SDL-mixer/SDL-mixer-" + version + ".tar.gz")) + (sha256 + (base32 + "0md3238hx79mxb9a7l43kg3b3d28x4mqvj0hjsbsh15ajnvy9x2z")))) + (build-system haskell-build-system) + (arguments + `(#:configure-flags + (let* ((sdl-mixer (assoc-ref %build-inputs "sdl-mixer")) + (sdl-mixer-include (string-append sdl-mixer "/include/SDL"))) + (list (string-append "--extra-include-dirs=" sdl-mixer-include))) + #:phases + (modify-phases %standard-phases + (add-after + 'unpack 'fix-/bin/sh + (lambda _ + ;; Use `sh', not `/bin/sh'. + (setenv "CONFIG_SHELL" "sh")))))) + (propagated-inputs + `(("ghc-sdl" ,ghc-sdl))) + (inputs + `(("sdl-mixer" ,sdl-mixer))) + (home-page "http://hackage.haskell.org/package/SDL-mixer") + (synopsis "Haskell bindings to libSDL_mixer") + (description "SDL_mixer is a sample multi-channel audio mixer library. It +supports any number of simultaneously playing channels of 16 bit stereo audio, +plus a single channel of music, mixed by the popular MikMod MOD, Timidity +MIDI, Ogg Vorbis, and SMPEG MP3 libraries.") + (license bsd-3))) + (define-public ghc-half (package (name "ghc-half") -- cgit v1.2.3 From c783cac07006a18c4c67f7c0b77f2f94ebcff287 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Fri, 16 Oct 2015 14:56:02 +0200 Subject: gnu: Add ghc-sdl-image. * gnu/packages/haskell.scm (ghc-sdl-image): New variable. --- gnu/packages/haskell.scm | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 7c21ef72d7..83ec3f9ca3 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -923,6 +923,44 @@ plus a single channel of music, mixed by the popular MikMod MOD, Timidity MIDI, Ogg Vorbis, and SMPEG MP3 libraries.") (license bsd-3))) +(define-public ghc-sdl-image + (package + (name "ghc-sdl-image") + (version "0.6.1.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/SDL-image/SDL-image-" + version + ".tar.gz")) + (sha256 + (base32 + "1m02q2426qp8m8pzz2jkk4srk2vb3j3ickiaga5jx9rkkhz732zq")))) + (build-system haskell-build-system) + (arguments + `(#:configure-flags + (let* ((sdl-image (assoc-ref %build-inputs "sdl-image")) + (sdl-image-include (string-append sdl-image "/include/SDL"))) + (list (string-append "--extra-include-dirs=" sdl-image-include))) + #:phases + (modify-phases %standard-phases + (add-after + 'unpack 'fix-/bin/sh + (lambda _ + ;; Use `sh', not `/bin/sh'. + (setenv "CONFIG_SHELL" "sh")))))) + (propagated-inputs + `(("ghc-sdl" ,ghc-sdl))) + (inputs + `(("sdl-image" ,sdl-image))) + (home-page "http://hackage.haskell.org/package/SDL-image") + (synopsis "Haskell bindings to libSDL_image") + (description "SDL_image is an image file loading library. It loads images +as SDL surfaces, and supports the following formats: BMP, GIF, JPEG, LBM, PCX, +PNG, PNM, TGA, TIFF, XCF, XPM, XV.") + (license bsd-3))) + (define-public ghc-half (package (name "ghc-half") -- cgit v1.2.3 From aa6f39127e7d4bd5783b4454f5b6b7cd243aa8b8 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Fri, 16 Oct 2015 15:00:06 +0200 Subject: gnu: Add Raincat. * gnu/packages/games.scm (raincat): New variable. --- gnu/packages/games.scm | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 9c44bbe3e0..546944ad25 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -52,6 +52,7 @@ #:use-module (gnu packages guile) #:use-module (gnu packages libcanberra) #:use-module (gnu packages libunwind) + #:use-module (gnu packages haskell) #:use-module (gnu packages mp3) #:use-module (gnu packages image) #:use-module (gnu packages ncurses) @@ -81,6 +82,7 @@ #:use-module (gnu packages fribidi) #:use-module (guix build-system trivial) #:use-module (guix build-system gnu) + #:use-module (guix build-system haskell) #:use-module (guix build-system cmake) #:use-module (guix build-system trivial)) @@ -1139,6 +1141,39 @@ on the screen and keyboard to display letters.") ;; Most files under gpl2+ or gpl3+, but eat.wav under gpl3 (license license:gpl3))) +(define-public raincat + (package + (name "raincat") + (version "1.1.1.3") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/Raincat/Raincat-" + version + ".tar.gz")) + (sha256 + (base32 + "1aalh68h6799mv4vyg30zpskl5jkn6x2j1jza7p4lrflyifxzar8")))) + (build-system haskell-build-system) + (inputs + `(("ghc-extensible-exceptions" ,ghc-extensible-exceptions) + ("ghc-mtl" ,ghc-mtl) + ("ghc-random" ,ghc-random) + ("ghc-glut" ,ghc-glut) + ("ghc-opengl" ,ghc-opengl) + ("ghc-sdl" ,ghc-sdl) + ("ghc-sdl-image" ,ghc-sdl-image) + ("ghc-sdl-mixer" ,ghc-sdl-mixer))) + (home-page "http://raincat.bysusanlin.com/") + (synopsis "Puzzle game with a cat in lead role") + (description "Project Raincat is a game developed by Carnegie Mellon +students through GCS during the Fall 2008 semester. Raincat features game +play inspired from classics Lemmings and The Incredible Machine. The project +proved to be an excellent learning experience for the programmers. Everything +is programmed in Haskell.") + (license license:bsd-3))) + (define-public manaplus (package (name "manaplus") -- cgit v1.2.3 From 759756a992625940e26bdb6cc1f96731b1c8b90f Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Wed, 21 Oct 2015 15:46:25 +0200 Subject: import: hackage: Update GHC libraries for 7.10.2. Update ghc-standard-libraries to match the output of `ghc-pkg list` when using GHC 7.10.2. * guix/import/hackage.scm (ghc-standard-libraries): Sort and update list of core GHC libraries. --- guix/import/hackage.scm | 40 +++++++++++++++++++--------------------- 1 file changed, 19 insertions(+), 21 deletions(-) diff --git a/guix/import/hackage.scm b/guix/import/hackage.scm index b5574a8d9f..3baa514aa1 100644 --- a/guix/import/hackage.scm +++ b/guix/import/hackage.scm @@ -32,37 +32,35 @@ #:export (hackage->guix-package)) (define ghc-standard-libraries - ;; List of libraries distributed with ghc (7.8.4). We include GHC itself as + ;; List of libraries distributed with ghc (7.10.2). We include GHC itself as ;; some packages list it. - '("ghc" - "haskell98" - "hoopl" + '("array" "base" - "transformers" - "deepseq" - "array" + "bin-package-db" "binary" "bytestring" + "cabal" ;; in the output of `ghc-pkg list` Cabal is uppercased, but + ;; hackage-name->package-name takes this into account. "containers" - "time" - "cabal" - "bin-package-db" + "deepseq" + "directory" + "filepath" + "ghc" "ghc-prim" + "haskeline" + "hoopl" + "hpc" "integer-gmp" - "integer-simple" - "win32" - "template-haskell" + "pretty" "process" - "haskeline" + "rts" + "template-haskell" "terminfo" - "directory" - "filepath" - "old-locale" + "time" + "transformers" "unix" - "old-time" - "pretty" - "xhtml" - "hpc")) + "win32" + "xhtml")) (define package-name-prefix "ghc-") -- cgit v1.2.3 From 8e01e30077a70376baefa7bc88ea01818d94aeee Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Wed, 21 Oct 2015 15:52:15 +0200 Subject: import: hackage: Fix grammar. Minor clarification regarding the test-dependencies command line option. * guix/scripts/import/hackage.scm (show-help): Minor grammatical fix. --- guix/scripts/import/hackage.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/guix/scripts/import/hackage.scm b/guix/scripts/import/hackage.scm index 8d31128c47..8c4e640bf3 100644 --- a/guix/scripts/import/hackage.scm +++ b/guix/scripts/import/hackage.scm @@ -55,7 +55,7 @@ version.\n")) (display (_ " -s, --stdin read from standard input")) (display (_ " - -t, --no-test-dependencies don't include test only dependencies")) + -t, --no-test-dependencies don't include test-only dependencies")) (display (_ " -V, --version display version information and exit")) (newline) -- cgit v1.2.3 From 6747de140d6ef714a7940bfa4cd0db544c9fe945 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Fri, 23 Oct 2015 21:31:49 +0800 Subject: gnu: bluez: Update to 5.35, fix test. * gnu/packages/patches/bluez-tests.patch: New file. * gnu-system.am (dist_patch_DATA): Add it. * gnu/packages/linux.scm (bluez): Update to 5.35. [source]: Add patch. --- gnu-system.am | 1 + gnu/packages/linux.scm | 6 ++++-- gnu/packages/patches/bluez-tests.patch | 25 +++++++++++++++++++++++++ 3 files changed, 30 insertions(+), 2 deletions(-) create mode 100644 gnu/packages/patches/bluez-tests.patch diff --git a/gnu-system.am b/gnu-system.am index 3daec42e28..9bb537be33 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -411,6 +411,7 @@ dist_patch_DATA = \ gnu/packages/patches/binutils-ld-new-dtags.patch \ gnu/packages/patches/binutils-loongson-workaround.patch \ gnu/packages/patches/bitlbee-configure-doc-fix.patch \ + gnu/packages/patches/bluez-tests.patch \ gnu/packages/patches/boost-mips-avoid-m32.patch \ gnu/packages/patches/calibre-drop-unrar.patch \ gnu/packages/patches/calibre-no-updates-dialog.patch \ diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 474e914c13..2c2ebab2e4 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -2315,7 +2315,7 @@ applications.") (define-public bluez (package (name "bluez") - (version "5.30") + (version "5.35") (source (origin (method url-fetch) (uri (string-append @@ -2323,7 +2323,9 @@ applications.") version ".tar.xz")) (sha256 (base32 - "0b1qbnq1xzcdw5rajg9yyg31bf21jnff0n6gnf1snz89bbdllfhy")))) + "1qphz25hganfnd5ipfscbj7s70anv5favmwqmi9ig2saciaf1zhs")) + (patches + (list (search-patch "bluez-tests.patch"))))) (build-system gnu-build-system) (arguments '(#:configure-flags diff --git a/gnu/packages/patches/bluez-tests.patch b/gnu/packages/patches/bluez-tests.patch new file mode 100644 index 0000000000..608ded9be2 --- /dev/null +++ b/gnu/packages/patches/bluez-tests.patch @@ -0,0 +1,25 @@ +From 484ad8c9263bb524051a999ce19a994960e69572 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= +Date: Fri, 23 Oct 2015 20:48:57 +0800 +Subject: [PATCH] unit/test-gobex-header: Fix duplicate test names + +--- + unit/test-gobex-header.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/unit/test-gobex-header.c b/unit/test-gobex-header.c +index 6f49312..8705892 100644 +--- a/unit/test-gobex-header.c ++++ b/unit/test-gobex-header.c +@@ -554,7 +554,7 @@ int main(int argc, char *argv[]) + test_header_encode_name_umlaut); + g_test_add_func("/gobex/test_header_encode_body", + test_header_encode_body); +- g_test_add_func("/gobex/test_header_encode_connid", ++ g_test_add_func("/gobex/test_header_encode_actionid", + test_header_encode_actionid); + g_test_add_func("/gobex/test_header_encode_apparam", + test_header_encode_apparam); +-- +2.5.0 + -- cgit v1.2.3 From ca9745e484474f27d5773059a063c0d8e70f7e1d Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Fri, 23 Oct 2015 15:32:31 -0400 Subject: gnu: linux-libre: Update to 4.2.4. * gnu/packages/linux.scm (linux-libre): Update to 4.2.4. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 4ee42349f8..f6f2555b1c 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -210,7 +210,7 @@ for SYSTEM, or #f if there is no configuration for SYSTEM." #f))) (define-public linux-libre - (let* ((version "4.2.3") + (let* ((version "4.2.4") (build-phase '(lambda* (#:key system inputs #:allow-other-keys #:rest args) ;; Apply the neat patch. @@ -283,7 +283,7 @@ for SYSTEM, or #f if there is no configuration for SYSTEM." (uri (linux-libre-urls version)) (sha256 (base32 - "1xpx32k6bzxqg5y8lyaana97jjcli00iyqklh5fdhirfvjb9dimd")))) + "11r9yhi4c2zwfb8i21zk014gcm1kvnabq410wjy6g6a015d5v37w")))) (build-system gnu-build-system) (native-inputs `(("perl" ,perl) ("bc" ,bc) -- cgit v1.2.3 From a2651b5477b0f4bad5954f8756bc53dbdf123f07 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Sat, 24 Oct 2015 09:22:15 +0800 Subject: gnu: gtk+: Remove rest from inputs. This broke building on mips64el. * gnu/packages/gtk.scm (gtk+)[inputs]: Remove rest. --- gnu/packages/gtk.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index c6a61b7f44..1bfd135dc7 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -543,7 +543,8 @@ application suites.") ;; on non-intel systems now. ;;("colord" ,colord) ("cups" ,cups) ;for printing support - ("rest" ,rest) + ;; XXX: rest depends on p11-kit, which fails on mips64el now. + ;;("rest" ,rest) ("json-glib" ,json-glib))) (native-inputs `(("perl" ,perl) -- cgit v1.2.3 From 6e4512c470c7196ae19f8166c7ec2d176f87d7af Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Sat, 24 Oct 2015 09:55:34 +0800 Subject: gnu: libgnomecanvasmm: Fix build by passing '-std=c++11'. * gnu/packages/gnome.scm (libgnomecanvasmm)[arguments]: Pass '-std=c++11' as CXXFLAGS. --- gnu/packages/gnome.scm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 34608786e4..488d46cc70 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -1206,6 +1206,8 @@ creating interactive structured graphics.") (base32 "0679hcnpam2gkag2i63sm0wdm35gwvzafnz1354mg6j5gzwpfrcr")))) (build-system gnu-build-system) + (arguments + '(#:configure-flags '("CXXFLAGS=-std=c++11"))) ; required by gtkmm (propagated-inputs `(("libgnomecanvas" ,libgnomecanvas))) (native-inputs `(("gtkmm-2" ,gtkmm-2) -- cgit v1.2.3 From 51de92a08e11b11ac9e5bbb2938be2ad0de02d80 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Thu, 22 Oct 2015 14:54:43 -0400 Subject: gnu: unzip: Reorganize security fixes for improved clarity. * gnu/packages/patches/unzip-fix-overflows-and-infloop.patch: Delete file. Its contents are now split into the following new files: * gnu/packages/patches/unzip-CVE-2015-7696.patch, gnu/packages/patches/unzip-CVE-2015-7697.patch, gnu/packages/patches/unzip-overflow-on-invalid-input.patch: New files. * gnu-system.am (dist_patch_DATA): Adjust accordingly. * gnu/packages/zip.scm (unzip)[source]: Adjust patches accordingly. --- gnu-system.am | 4 +- gnu/packages/patches/unzip-CVE-2015-7696.patch | 35 +++++++ gnu/packages/patches/unzip-CVE-2015-7697.patch | 28 ++++++ .../patches/unzip-fix-overflows-and-infloop.patch | 108 --------------------- .../patches/unzip-overflow-on-invalid-input.patch | 40 ++++++++ gnu/packages/zip.scm | 4 +- 6 files changed, 109 insertions(+), 110 deletions(-) create mode 100644 gnu/packages/patches/unzip-CVE-2015-7696.patch create mode 100644 gnu/packages/patches/unzip-CVE-2015-7697.patch delete mode 100644 gnu/packages/patches/unzip-fix-overflows-and-infloop.patch create mode 100644 gnu/packages/patches/unzip-overflow-on-invalid-input.patch diff --git a/gnu-system.am b/gnu-system.am index 655c00a679..13eede8bf6 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -651,9 +651,11 @@ dist_patch_DATA = \ gnu/packages/patches/unzip-CVE-2014-8140.patch \ gnu/packages/patches/unzip-CVE-2014-8141.patch \ gnu/packages/patches/unzip-CVE-2014-9636.patch \ + gnu/packages/patches/unzip-CVE-2015-7696.patch \ + gnu/packages/patches/unzip-CVE-2015-7697.patch \ gnu/packages/patches/unzip-allow-greater-hostver-values.patch \ gnu/packages/patches/unzip-attribs-overflow.patch \ - gnu/packages/patches/unzip-fix-overflows-and-infloop.patch \ + gnu/packages/patches/unzip-overflow-on-invalid-input.patch \ gnu/packages/patches/unzip-format-secure.patch \ gnu/packages/patches/unzip-initialize-symlink-flag.patch \ gnu/packages/patches/unzip-overflow-long-fsize.patch \ diff --git a/gnu/packages/patches/unzip-CVE-2015-7696.patch b/gnu/packages/patches/unzip-CVE-2015-7696.patch new file mode 100644 index 0000000000..d6a4072673 --- /dev/null +++ b/gnu/packages/patches/unzip-CVE-2015-7696.patch @@ -0,0 +1,35 @@ +Copied from Debian. + +From: Petr Stodulka +Date: Mon, 14 Sep 2015 18:23:17 +0200 +Subject: Upstream fix for heap overflow +Bug-Debian: https://bugs.debian.org/802162 +Bug-RedHat: https://bugzilla.redhat.com/show_bug.cgi?id=1260944 +Origin: https://bugzilla.redhat.com/attachment.cgi?id=1073002 +Forwarded: yes + +--- + crypt.c | 12 +++++++++++- + 1 file changed, 11 insertions(+), 1 deletion(-) + +--- a/crypt.c ++++ b/crypt.c +@@ -465,7 +465,17 @@ + GLOBAL(pInfo->encrypted) = FALSE; + defer_leftover_input(__G); + for (n = 0; n < RAND_HEAD_LEN; n++) { +- b = NEXTBYTE; ++ /* 2012-11-23 SMS. (OUSPG report.) ++ * Quit early if compressed size < HEAD_LEN. The resulting ++ * error message ("unable to get password") could be improved, ++ * but it's better than trying to read nonexistent data, and ++ * then continuing with a negative G.csize. (See ++ * fileio.c:readbyte()). ++ */ ++ if ((b = NEXTBYTE) == (ush)EOF) ++ { ++ return PK_ERR; ++ } + h[n] = (uch)b; + Trace((stdout, " (%02x)", h[n])); + } diff --git a/gnu/packages/patches/unzip-CVE-2015-7697.patch b/gnu/packages/patches/unzip-CVE-2015-7697.patch new file mode 100644 index 0000000000..d688b42495 --- /dev/null +++ b/gnu/packages/patches/unzip-CVE-2015-7697.patch @@ -0,0 +1,28 @@ +Copied from Debian. + +From: Kamil Dudka +Date: Mon, 14 Sep 2015 18:24:56 +0200 +Subject: fix infinite loop when extracting empty bzip2 data +Bug-Debian: https://bugs.debian.org/802160 +Bug-RedHat: https://bugzilla.redhat.com/show_bug.cgi?id=1260944 +Origin: other, https://bugzilla.redhat.com/attachment.cgi?id=1073339 + +--- + extract.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +--- a/extract.c ++++ b/extract.c +@@ -2728,6 +2728,12 @@ + int repeated_buf_err; + bz_stream bstrm; + ++ if (G.incnt <= 0 && G.csize <= 0L) { ++ /* avoid an infinite loop */ ++ Trace((stderr, "UZbunzip2() got empty input\n")); ++ return 2; ++ } ++ + #if (defined(DLL) && !defined(NO_SLIDE_REDIR)) + if (G.redirect_slide) + wsize = G.redirect_size, redirSlide = G.redirect_buffer; diff --git a/gnu/packages/patches/unzip-fix-overflows-and-infloop.patch b/gnu/packages/patches/unzip-fix-overflows-and-infloop.patch deleted file mode 100644 index 33498db95e..0000000000 --- a/gnu/packages/patches/unzip-fix-overflows-and-infloop.patch +++ /dev/null @@ -1,108 +0,0 @@ -Copied from Fedora. - -http://pkgs.fedoraproject.org/cgit/unzip.git/tree/unzip-6.0-heap-overflow-infloop.patch?id=d18f821e - -From bdd4a0cecd745cb4825e4508b5bdf2579731086a Mon Sep 17 00:00:00 2001 -From: Petr Stodulka -Date: Mon, 14 Sep 2015 18:23:17 +0200 -Subject: [PATCH 1/3] upstream fix for heap overflow - -https://bugzilla.redhat.com/attachment.cgi?id=1073002 ---- - crypt.c | 12 +++++++++++- - 1 file changed, 11 insertions(+), 1 deletion(-) - -diff --git a/crypt.c b/crypt.c -index 784e411..a8975f2 100644 ---- a/crypt.c -+++ b/crypt.c -@@ -465,7 +465,17 @@ int decrypt(__G__ passwrd) - GLOBAL(pInfo->encrypted) = FALSE; - defer_leftover_input(__G); - for (n = 0; n < RAND_HEAD_LEN; n++) { -- b = NEXTBYTE; -+ /* 2012-11-23 SMS. (OUSPG report.) -+ * Quit early if compressed size < HEAD_LEN. The resulting -+ * error message ("unable to get password") could be improved, -+ * but it's better than trying to read nonexistent data, and -+ * then continuing with a negative G.csize. (See -+ * fileio.c:readbyte()). -+ */ -+ if ((b = NEXTBYTE) == (ush)EOF) -+ { -+ return PK_ERR; -+ } - h[n] = (uch)b; - Trace((stdout, " (%02x)", h[n])); - } --- -2.4.6 - - -From 4b48844661ff9569f2ecf582a387d46a5775b5d8 Mon Sep 17 00:00:00 2001 -From: Kamil Dudka -Date: Mon, 14 Sep 2015 18:24:56 +0200 -Subject: [PATCH 2/3] fix infinite loop when extracting empty bzip2 data - -Bug: https://sourceforge.net/p/infozip/patches/23/ ---- - extract.c | 6 ++++++ - 1 file changed, 6 insertions(+) - -diff --git a/extract.c b/extract.c -index 7134bfe..29db027 100644 ---- a/extract.c -+++ b/extract.c -@@ -2733,6 +2733,12 @@ __GDEF - int repeated_buf_err; - bz_stream bstrm; - -+ if (G.incnt <= 0 && G.csize <= 0L) { -+ /* avoid an infinite loop */ -+ Trace((stderr, "UZbunzip2() got empty input\n")); -+ return 2; -+ } -+ - #if (defined(DLL) && !defined(NO_SLIDE_REDIR)) - if (G.redirect_slide) - wsize = G.redirect_size, redirSlide = G.redirect_buffer; --- -2.4.6 - - -From bd150334fb4084f5555a6be26b015a0671cb5b74 Mon Sep 17 00:00:00 2001 -From: Kamil Dudka -Date: Tue, 22 Sep 2015 18:52:23 +0200 -Subject: [PATCH 3/3] extract: prevent unsigned overflow on invalid input - -Suggested-by: Stefan Cornelius ---- - extract.c | 11 ++++++++++- - 1 file changed, 10 insertions(+), 1 deletion(-) - -diff --git a/extract.c b/extract.c -index 29db027..b9ae667 100644 ---- a/extract.c -+++ b/extract.c -@@ -1257,8 +1257,17 @@ static int extract_or_test_entrylist(__G__ numchunk, - if (G.lrec.compression_method == STORED) { - zusz_t csiz_decrypted = G.lrec.csize; - -- if (G.pInfo->encrypted) -+ if (G.pInfo->encrypted) { -+ if (csiz_decrypted <= 12) { -+ /* handle the error now to prevent unsigned overflow */ -+ Info(slide, 0x401, ((char *)slide, -+ LoadFarStringSmall(ErrUnzipNoFile), -+ LoadFarString(InvalidComprData), -+ LoadFarStringSmall2(Inflate))); -+ return PK_ERR; -+ } - csiz_decrypted -= 12; -+ } - if (G.lrec.ucsize != csiz_decrypted) { - Info(slide, 0x401, ((char *)slide, - LoadFarStringSmall2(WrnStorUCSizCSizDiff), --- -2.5.2 - diff --git a/gnu/packages/patches/unzip-overflow-on-invalid-input.patch b/gnu/packages/patches/unzip-overflow-on-invalid-input.patch new file mode 100644 index 0000000000..013002a88c --- /dev/null +++ b/gnu/packages/patches/unzip-overflow-on-invalid-input.patch @@ -0,0 +1,40 @@ +Extracted from a patch in Fedora. + +http://pkgs.fedoraproject.org/cgit/unzip.git/tree/unzip-6.0-heap-overflow-infloop.patch?id=d18f821e + +From bd150334fb4084f5555a6be26b015a0671cb5b74 Mon Sep 17 00:00:00 2001 +From: Kamil Dudka +Date: Tue, 22 Sep 2015 18:52:23 +0200 +Subject: [PATCH 3/3] extract: prevent unsigned overflow on invalid input + +Suggested-by: Stefan Cornelius +--- + extract.c | 11 ++++++++++- + 1 file changed, 10 insertions(+), 1 deletion(-) + +diff --git a/extract.c b/extract.c +index 29db027..b9ae667 100644 +--- a/extract.c ++++ b/extract.c +@@ -1257,8 +1257,17 @@ static int extract_or_test_entrylist(__G__ numchunk, + if (G.lrec.compression_method == STORED) { + zusz_t csiz_decrypted = G.lrec.csize; + +- if (G.pInfo->encrypted) ++ if (G.pInfo->encrypted) { ++ if (csiz_decrypted <= 12) { ++ /* handle the error now to prevent unsigned overflow */ ++ Info(slide, 0x401, ((char *)slide, ++ LoadFarStringSmall(ErrUnzipNoFile), ++ LoadFarString(InvalidComprData), ++ LoadFarStringSmall2(Inflate))); ++ return PK_ERR; ++ } + csiz_decrypted -= 12; ++ } + if (G.lrec.ucsize != csiz_decrypted) { + Info(slide, 0x401, ((char *)slide, + LoadFarStringSmall2(WrnStorUCSizCSizDiff), +-- +2.5.2 + diff --git a/gnu/packages/zip.scm b/gnu/packages/zip.scm index 83c452778c..b7bed0e86d 100644 --- a/gnu/packages/zip.scm +++ b/gnu/packages/zip.scm @@ -85,11 +85,13 @@ Compression ratios of 2:1 to 3:1 are common for text files.") "unzip-CVE-2014-8140.patch" "unzip-CVE-2014-8141.patch" "unzip-CVE-2014-9636.patch" + "unzip-CVE-2015-7696.patch" + "unzip-CVE-2015-7697.patch" "unzip-allow-greater-hostver-values.patch" "unzip-initialize-symlink-flag.patch" "unzip-remove-build-date.patch" "unzip-attribs-overflow.patch" - "unzip-fix-overflows-and-infloop.patch" + "unzip-overflow-on-invalid-input.patch" "unzip-format-secure.patch" "unzip-overflow-long-fsize.patch"))))) (build-system gnu-build-system) -- cgit v1.2.3 From 92e4fbe21544082308f3757ec01fd0cb7e4d12e5 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Sun, 25 Oct 2015 17:40:14 +0800 Subject: gnu: ardour: Build with '--cxx11'. * gnu/packages/audio.scm (ardour, ardour-3)[arguments]: Add '--cxx11' as #:configure-flags. --- gnu/packages/audio.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index a35ef278ee..7fa7f3dd24 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -178,7 +178,8 @@ namespace ARDOUR { const char* revision = \"3.5-403-gec2cb31\" ; }")))) (file-name (string-append name "-" version)))) (build-system waf-build-system) (arguments - `(#:phases + `(#:configure-flags '("--cxx11") ; required by gtkmm + #:phases (modify-phases %standard-phases (add-after 'unpack 'set-rpath-in-LDFLAGS -- cgit v1.2.3 From 581176c00b424ea6ddbeec38ba5dfaea43b53bcc Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 25 Oct 2015 19:07:29 +0200 Subject: gnu: youtube-dl: Upgrade to 2015.10.24. * gnu/packages/video.scm (youtube-dl): Upgrade to 2015.10.24. --- gnu/packages/video.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index e3e67becf5..d22975afd9 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -797,7 +797,7 @@ projects while introducing many more.") (define-public youtube-dl (package (name "youtube-dl") - (version "2015.10.16") + (version "2015.10.24") (source (origin (method url-fetch) (uri (string-append "https://youtube-dl.org/downloads/" @@ -805,7 +805,7 @@ projects while introducing many more.") version ".tar.gz")) (sha256 (base32 - "001a4md0yl3zx129mksmwc85grss67r3c9rynvranf9vlpv202vn")))) + "1q9srq08vb2yzl81hmjrgqwajckq52fhh9ag2ppbbxjibf91w5gs")))) (build-system python-build-system) (inputs `(("setuptools" ,python-setuptools))) (home-page "http://youtube-dl.org") -- cgit v1.2.3 From f535dcbe198e7f88f3b0cd8aa4d7585191b31080 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Fri, 19 Jun 2015 08:57:44 -0400 Subject: scripts: environment: Add --container option. * guix/scripts/system.scm (specification->file-system-mapping): Move from here... * guix/ui.scm (specification->file-system-mapping): ... to here. * guix/scripts/enviroment.scm (show-help): Show help for new options. (%options): Add --container --network, --expose, and --share options. (%network-configuration-files): New variable. (launch-environment, launch-environment/container, requisites*, inputs->requisites): New procedures. (guix-environment): Spawn new process in a container when requested. * doc/guix.texi (Invoking guix environment): Document it. * tests/guix-environment-container.sh: New file. * Makefile.am (SH_TESTS): Add it. --- Makefile.am | 1 + doc/guix.texi | 56 ++++++++ guix/scripts/environment.scm | 276 ++++++++++++++++++++++++++++++------ guix/scripts/system.scm | 13 -- guix/ui.scm | 19 +++ tests/guix-environment-container.sh | 75 ++++++++++ 6 files changed, 385 insertions(+), 55 deletions(-) create mode 100644 tests/guix-environment-container.sh diff --git a/Makefile.am b/Makefile.am index 1427203fb2..4f90b1d15b 100644 --- a/Makefile.am +++ b/Makefile.am @@ -253,6 +253,7 @@ SH_TESTS = \ tests/guix-archive.sh \ tests/guix-authenticate.sh \ tests/guix-environment.sh \ + tests/guix-environment-container.sh \ tests/guix-graph.sh \ tests/guix-lint.sh diff --git a/doc/guix.texi b/doc/guix.texi index 99c10d8dc7..7715b72818 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -4681,6 +4681,18 @@ NumPy: guix environment --ad-hoc python2-numpy python-2.7 -- python @end example +Sometimes it is desirable to isolate the environment as much as +possible, for maximal purity and reproducibility. In particular, when +using Guix on a host distro that is not GuixSD, it is desirable to +prevent access to @file{/usr/bin} and other system-wide resources from +the development environment. For example, the following command spawns +a Guile REPL in a ``container'' where only the store and the current +working directory are mounted: + +@example +guix environment --ad-hoc --container guile -- guile +@end example + The available options are summarized below. @table @code @@ -4741,6 +4753,49 @@ environment. @item --system=@var{system} @itemx -s @var{system} Attempt to build for @var{system}---e.g., @code{i686-linux}. + +@item --container +@itemx -C +@cindex container +Run @var{command} within an isolated container. The current working +directory outside the container is mapped to @file{/env} inside the +container. Additionally, the spawned process runs as the current user +outside the container, but has root privileges in the context of the +container. + +@item --network +@itemx -N +For containers, share the network namespace with the host system. +Containers created without this flag only have access to the loopback +device. + +@item --expose=@var{source}[=@var{target}] +For containers, expose the file system @var{source} from the host system +as the read-only file system @var{target} within the container. If +@var{target} is not specified, @var{source} is used as the target mount +point in the container. + +The example below spawns a Guile REPL in a container in which the user's +home directory is accessible read-only via the @file{/exchange} +directory: + +@example +guix environment --container --expose=$HOME=/exchange guile -- guile +@end example + +@item --share +For containers, share the file system @var{source} from the host system +as the writable file system @var{target} within the container. If +@var{target} is not specified, @var{source} is used as the target mount +point in the container. + +The example below spawns a Guile REPL in a container in which the user's +home directory is accessible for both reading and writing via the +@file{/exchange} directory: + +@example +guix environment --container --share=$HOME=/exchange guile -- guile +@end example @end table It also supports all of the common build options that @command{guix @@ -7064,6 +7119,7 @@ This command also installs GRUB on the device specified in @item vm @cindex virtual machine @cindex VM +@anchor{guix system vm} Build a virtual machine that contain the operating system declared in @var{file}, and return a script to run that virtual machine (VM). Arguments given to the script are passed as is to QEMU. diff --git a/guix/scripts/environment.scm b/guix/scripts/environment.scm index 2408420e18..1d21a768dc 100644 --- a/guix/scripts/environment.scm +++ b/guix/scripts/environment.scm @@ -25,13 +25,19 @@ #:use-module (guix profiles) #:use-module (guix search-paths) #:use-module (guix utils) + #:use-module (guix build utils) #:use-module (guix monads) #:use-module ((guix gexp) #:select (lower-inputs)) #:use-module (guix scripts) #:use-module (guix scripts build) + #:use-module (gnu build linux-container) + #:use-module (gnu system linux-container) + #:use-module (gnu system file-systems) #:use-module (gnu packages) + #:use-module (gnu packages bash) #:use-module (ice-9 format) #:use-module (ice-9 match) + #:use-module (ice-9 rdelim) #:use-module (srfi srfi-1) #:use-module (srfi srfi-11) #:use-module (srfi srfi-26) @@ -60,6 +66,12 @@ OUTPUT) tuples." (define %default-shell (or (getenv "SHELL") "/bin/sh")) +(define %network-configuration-files + '("/etc/resolv.conf" + "/etc/nsswitch.conf" + "/etc/services" + "/etc/hosts")) + (define (purify-environment) "Unset almost all environment variables. A small number of variables such as 'HOME' and 'USER' are left untouched." @@ -124,6 +136,18 @@ COMMAND or an interactive shell in that environment.\n")) --search-paths display needed environment variable definitions")) (display (_ " -s, --system=SYSTEM attempt to build for SYSTEM--e.g., \"i686-linux\"")) + (display (_ " + -C, --container run command within an isolated container")) + (display (_ " + -N, --network allow containers to access the network")) + (display (_ " + --share=SPEC for containers, share writable host file system + according to SPEC")) + (display (_ " + --expose=SPEC for containers, expose read-only host file system + according to SPEC")) + (display (_ " + --bootstrap use bootstrap binaries to build the environment")) (newline) (show-build-options-help) (newline) @@ -176,6 +200,25 @@ COMMAND or an interactive shell in that environment.\n")) (lambda (opt name arg result) (alist-cons 'system arg (alist-delete 'system result eq?)))) + (option '(#\C "container") #f #f + (lambda (opt name arg result) + (alist-cons 'container? #t result))) + (option '(#\N "network") #f #f + (lambda (opt name arg result) + (alist-cons 'network? #t result))) + (option '("share") #t #f + (lambda (opt name arg result) + (alist-cons 'file-system-mapping + (specification->file-system-mapping arg #t) + result))) + (option '("expose") #t #f + (lambda (opt name arg result) + (alist-cons 'file-system-mapping + (specification->file-system-mapping arg #f) + result))) + (option '("bootstrap") #f #f + (lambda (opt name arg result) + (alist-cons 'bootstrap? #t result))) %standard-build-options)) (define (pick-all alist key) @@ -231,6 +274,131 @@ OUTPUT) tuples, using the build options in OPTS." (built-derivations derivations) (return derivations)))))))) +(define requisites* (store-lift requisites)) + +(define (inputs->requisites inputs) + "Convert INPUTS, a list of input tuples or store path strings, into a set of +requisite store items i.e. the union closure of all the inputs." + (define (input->requisites input) + (requisites* + (match input + ((drv output) + (derivation->output-path drv output)) + ((drv) + (derivation->output-path drv)) + ((? direct-store-path? path) + path)))) + + (mlet %store-monad ((reqs (sequence %store-monad + (map input->requisites inputs)))) + (return (delete-duplicates (concatenate reqs))))) + +(define exit/status (compose exit status:exit-val)) +(define primitive-exit/status (compose primitive-exit status:exit-val)) + +(define (launch-environment command inputs paths pure?) + "Run COMMAND in a new environment containing INPUTS, using the native search +paths defined by the list PATHS. When PURE?, pre-existing environment +variables are cleared before setting the new ones." + (create-environment inputs paths pure?) + (apply system* command)) + +(define* (launch-environment/container #:key command bash user-mappings + inputs paths network?) + "Run COMMAND within a Linux container. The environment features INPUTS, a +list of derivations to be shared from the host system. Environment variables +are set according to PATHS, a list of native search paths. The global shell +is BASH, a file name for a GNU Bash binary in the store. When NETWORK?, +access to the host system network is permitted. USER-MAPPINGS, a list of file +system mappings, contains the user-specified host file systems to mount inside +the container." + (mlet %store-monad ((reqs (inputs->requisites + (cons (direct-store-path bash) inputs)))) + (return + (let* ((cwd (getcwd)) + ;; Bind-mount all requisite store items, user-specified mappings, + ;; /bin/sh, the current working directory, and possibly networking + ;; configuration files within the container. + (mappings + (append user-mappings + ;; Current working directory. + (list (file-system-mapping + (source cwd) + (target cwd) + (writable? #t))) + ;; When in Rome, do as Nix build.cc does: Automagically + ;; map common network configuration files. + (if network? + (filter-map (lambda (file) + (and (file-exists? file) + (file-system-mapping + (source file) + (target file) + (writable? #f)))) + %network-configuration-files) + '()) + ;; Mappings for the union closure of all inputs. + (map (lambda (dir) + (file-system-mapping + (source dir) + (target dir) + (writable? #f))) + reqs))) + (file-systems (append %container-file-systems + (map mapping->file-system mappings)))) + (exit/status + (call-with-container (map file-system->spec file-systems) + (lambda () + ;; Setup global shell. + (mkdir-p "/bin") + (symlink bash "/bin/sh") + + ;; Setup directory for temporary files. + (mkdir-p "/tmp") + (for-each (lambda (var) + (setenv var "/tmp")) + ;; The same variables as in Nix's 'build.cc'. + '("TMPDIR" "TEMPDIR" "TMP" "TEMP")) + + ;; From Nix build.cc: + ;; + ;; Set HOME to a non-existing path to prevent certain + ;; programs from using /etc/passwd (or NIS, or whatever) + ;; to locate the home directory (for example, wget looks + ;; for ~/.wgetrc). I.e., these tools use /etc/passwd if + ;; HOME is not set, but they will just assume that the + ;; settings file they are looking for does not exist if + ;; HOME is set but points to some non-existing path. + (setenv "HOME" "/homeless-shelter") + + ;; For convenience, start in the user's current working + ;; directory rather than the root directory. + (chdir cwd) + + (primitive-exit/status + ;; A container's environment is already purified, so no need to + ;; request it be purified again. + (launch-environment command inputs paths #f))) + #:namespaces (if network? + (delq 'net %namespaces) ; share host network + %namespaces))))))) + +(define (environment-bash container? bootstrap? system) + "Return a monadic value in the store monad for the version of GNU Bash +needed in the environment for SYSTEM, if any. If CONTAINER? is #f, return #f. +If CONTAINER? and BOOTSTRAP?, return the store path for the bootstrap Bash. +Otherwise, return the derivation for the Bash package." + (with-monad %store-monad + (cond + ((and container? (not bootstrap?)) + (package->derivation bash)) + ;; Use the bootstrap Bash instead. + ((and container? bootstrap?) + (interned-file + (search-bootstrap-binary "bash" system))) + (else + (return #f))))) + (define (parse-args args) "Parse the list of command line arguments ARGS." (define (handle-argument arg result) @@ -248,52 +416,76 @@ OUTPUT) tuples, using the build options in OPTS." ;; Entry point. (define (guix-environment . args) (with-error-handling - (let* ((opts (parse-args args)) - (pure? (assoc-ref opts 'pure)) - (ad-hoc? (assoc-ref opts 'ad-hoc?)) - (command (assoc-ref opts 'exec)) - (packages (pick-all (options/resolve-packages opts) 'package)) - (inputs (if ad-hoc? - (append-map (match-lambda - ((package output) - (package+propagated-inputs package - output))) - packages) - (append-map (compose bag-transitive-inputs - package->bag - first) - packages))) - (paths (delete-duplicates - (cons $PATH - (append-map (match-lambda - ((label (? package? p) _ ...) - (package-native-search-paths p)) - (_ - '())) - inputs)) - eq?))) + (let* ((opts (parse-args args)) + (pure? (assoc-ref opts 'pure)) + (container? (assoc-ref opts 'container?)) + (network? (assoc-ref opts 'network?)) + (ad-hoc? (assoc-ref opts 'ad-hoc?)) + (bootstrap? (assoc-ref opts 'bootstrap?)) + (system (assoc-ref opts 'system)) + (command (assoc-ref opts 'exec)) + (packages (pick-all (options/resolve-packages opts) 'package)) + (mappings (pick-all opts 'file-system-mapping)) + (inputs (if ad-hoc? + (append-map (match-lambda + ((package output) + (package+propagated-inputs package + output))) + packages) + (append-map (compose bag-transitive-inputs + package->bag + first) + packages))) + (paths (delete-duplicates + (cons $PATH + (append-map (match-lambda + ((label (? package? p) _ ...) + (package-native-search-paths p)) + (_ + '())) + inputs)) + eq?))) (with-store store (run-with-store store - (mlet %store-monad ((inputs (lower-inputs - (map (match-lambda + (mlet* %store-monad ((inputs (lower-inputs + (map (match-lambda ((label item) (list item)) ((label item output) (list item output))) - inputs) - #:system (assoc-ref opts 'system)))) + inputs) + #:system system)) + ;; Containers need a Bourne shell at /bin/sh. + (bash (environment-bash container? + bootstrap? + system))) (mbegin %store-monad - ;; First build INPUTS. This is necessary even for - ;; --search-paths. - (build-inputs inputs opts) - (cond ((assoc-ref opts 'dry-run?) - (return #t)) - ((assoc-ref opts 'search-paths) - (show-search-paths inputs paths pure?) - (return #t)) - (else - (create-environment inputs paths pure?) - (return - (exit - (status:exit-val - (apply system* command))))))))))))) + ;; First build the inputs. This is necessary even for + ;; --search-paths. Additionally, we might need to build bash + ;; for a container. + (build-inputs (if (derivation? bash) + `((,bash "out") ,@inputs) + inputs) + opts) + (cond + ((assoc-ref opts 'dry-run?) + (return #t)) + ((assoc-ref opts 'search-paths) + (show-search-paths inputs paths pure?) + (return #t)) + (container? + (let ((bash-binary + (if bootstrap? + bash + (string-append (derivation->output-path bash) + "/bin/sh")))) + (launch-environment/container #:command command + #:bash bash-binary + #:user-mappings mappings + #:inputs inputs + #:paths paths + #:network? network?))) + (else + (return + (exit/status + (launch-environment command inputs paths pure?)))))))))))) diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm index b5da57a9ce..8775267f80 100644 --- a/guix/scripts/system.scm +++ b/guix/scripts/system.scm @@ -488,19 +488,6 @@ Build the operating system declared in FILE according to ACTION.\n")) (newline) (show-bug-report-information)) -(define (specification->file-system-mapping spec writable?) - "Read the SPEC and return the corresponding ." - (let ((index (string-index spec #\=))) - (if index - (file-system-mapping - (source (substring spec 0 index)) - (target (substring spec (+ 1 index))) - (writable? writable?)) - (file-system-mapping - (source spec) - (target spec) - (writable? writable?))))) - (define %options ;; Specifications of the command-line options. (cons* (option '(#\h "help") #f #f diff --git a/guix/ui.scm b/guix/ui.scm index fb8121c213..9cc1908e6e 100644 --- a/guix/ui.scm +++ b/guix/ui.scm @@ -34,6 +34,7 @@ #:use-module (guix serialization) #:use-module ((guix build utils) #:select (mkdir-p)) #:use-module ((guix licenses) #:select (license? license-name)) + #:use-module (gnu system file-systems) #:use-module (srfi srfi-1) #:use-module (srfi srfi-11) #:use-module (srfi srfi-19) @@ -80,6 +81,7 @@ string->recutils package->recutils package-specification->name+version+output + specification->file-system-mapping string->generations string->duration run-guix-command @@ -966,6 +968,23 @@ optionally contain a version number and an output name, as in these examples: (package-name->name+version name))) (values name version sub-drv))) +(define (specification->file-system-mapping spec writable?) + "Read the SPEC and return the corresponding . SPEC is +a string of the form \"SOURCE\" or \"SOURCE=TARGET\". The former specifies +that SOURCE from the host should be mounted at SOURCE in the other system. +The latter format specifies that SOURCE from the host should be mounted at +TARGET in the other system." + (let ((index (string-index spec #\=))) + (if index + (file-system-mapping + (source (substring spec 0 index)) + (target (substring spec (+ 1 index))) + (writable? writable?)) + (file-system-mapping + (source spec) + (target spec) + (writable? writable?))))) + ;;; ;;; Command-line option processing. diff --git a/tests/guix-environment-container.sh b/tests/guix-environment-container.sh new file mode 100644 index 0000000000..9c3e93dd8c --- /dev/null +++ b/tests/guix-environment-container.sh @@ -0,0 +1,75 @@ +# GNU Guix --- Functional package management for GNU +# Copyright © 2015 David Thompson +# +# 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 . + +# +# Test 'guix environment'. +# + +set -e + +guix environment --version + +tmpdir="t-guix-environment-$$" +trap 'rm -r "$tmpdir"' EXIT + +mkdir "$tmpdir" + +# Make sure the exit value is preserved. +if guix environment --container --ad-hoc --bootstrap guile-bootstrap \ + -- guile -c '(exit 42)' +then + false +else + test $? = 42 +fi + +# Make sure that the right directories are mapped. +mount_test_code=" +(use-modules (ice-9 rdelim) + (ice-9 match) + (srfi srfi-1)) + +(define mappings + (filter-map (lambda (line) + (match (string-split line #\space) + ;; Empty line. + ((\"\") #f) + ;; Ignore these types of file systems. + ((_ _ (or \"tmpfs\" \"proc\" \"sysfs\" \"devtmpfs\" + \"devpts\" \"cgroup\" \"mqueue\") _ _ _) + #f) + ((_ mount _ _ _ _) + mount))) + (string-split (call-with-input-file \"/proc/mounts\" read-string) + #\newline))) + +(for-each (lambda (mount) + (display mount) + (newline)) + mappings)" + +guix environment --container --ad-hoc --bootstrap guile-bootstrap \ + -- guile -c "$mount_test_code" > $tmpdir/mounts + +test `wc -l < $tmpdir/mounts` -eq 3 + +grep -e "$PWD$" $tmpdir/mounts # current directory +grep $(guix build guile-bootstrap) $tmpdir/mounts +grep -e "$NIX_STORE_DIR/.*-bash" $tmpdir/mounts # bootstrap bash + +rm $tmpdir/mounts -- cgit v1.2.3 From f862f38ade0c6a648d5a8711d636281314b2db62 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Fri, 23 Oct 2015 19:33:43 +0200 Subject: build-system/haskell: CONFIG_SHELL env variable. For Cabal packages with "build-type: Configure", a configure shell script is run to set up build parameters. These scripts need the CONFIG_SHELL environment variable to be set to function properly. * guix/build/haskell-build-system.scm (configure): Set CONFIG_SHELL if necessary. --- guix/build/haskell-build-system.scm | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/guix/build/haskell-build-system.scm b/guix/build/haskell-build-system.scm index c0cb789581..4506e96af9 100644 --- a/guix/build/haskell-build-system.scm +++ b/guix/build/haskell-build-system.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 Federico Beffa +;;; Copyright © 2015 Paul van der Walt ;;; ;;; This file is part of GNU Guix. ;;; @@ -96,6 +97,14 @@ and parameters ~s~%" '("--enable-tests") '()) configure-flags))) + ;; For packages where the Cabal build-type is set to "Configure", + ;; ./configure will be executed. In these cases, the following + ;; environment variable is needed to be able to find the shell executable. + ;; For other package types, the configure script isn't present. For more + ;; information, see the Build Information section of + ;; . + (when (file-exists? "configure") + (setenv "CONFIG_SHELL" "sh")) (run-setuphs "configure" params))) (define* (build #:rest empty) -- cgit v1.2.3 From 554093b7e139ca2224b754fdeb8a3c6f2d53bde5 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Fri, 23 Oct 2015 19:55:34 +0200 Subject: gnu: ghc-async: Fix description formatting. * gnu/packages/haskell.scm (ghc-async): Formatting. --- gnu/packages/haskell.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 83ec3f9ca3..4303093d99 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -3645,7 +3645,7 @@ library for Haskell.") (home-page "https://github.com/simonmar/async") (synopsis "Library to run IO operations asynchronously") (description "Async provides a library to run IO operations -asynchronously, and wait for their results. It is a higher-level interface +asynchronously, and wait for their results. It is a higher-level interface over threads in Haskell, in which @code{Async a} is a concurrent thread that will eventually deliver a value of type @code{a}.") (license bsd-3))) -- cgit v1.2.3 From fd59d2ee65d6c86b115a19394d31c270cc8d95e2 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Fri, 23 Oct 2015 19:57:15 +0200 Subject: gnu: haskell: Remove CONFIG_SHELL patches. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A previous commit to the haskell-build-system made sure that if necessary, the CONFIG_SHELL environment variable is set. That obviates the individual patches applied to some packages. Remove them. * gnu/packages/haskell.scm (ghc-network, ghc-old-time, ghc-sdl-image, ghc-sdl-mixer, ghc-sdl, ghc-unix-time, ghc-x11)[arguments]: Remove ‘fix-/bin/sh’ phase. --- gnu/packages/haskell.scm | 53 +++++------------------------------------------- 1 file changed, 5 insertions(+), 48 deletions(-) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 4303093d99..652efc3fbd 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -865,14 +865,6 @@ OpenAL.") (base32 "1sa3zx3vrs1gbinxx33zwq0x2bsf3i964bff7419p7vzidn36k46")))) (build-system haskell-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after - 'unpack 'fix-/bin/sh - (lambda _ - ;; Use `sh', not `/bin/sh'. - (setenv "CONFIG_SHELL" "sh")))))) (inputs `(("sdl" ,sdl))) (home-page "https://hackage.haskell.org/package/SDL") @@ -903,14 +895,7 @@ award winning Linux port of \"Civilization: Call To Power.\"") `(#:configure-flags (let* ((sdl-mixer (assoc-ref %build-inputs "sdl-mixer")) (sdl-mixer-include (string-append sdl-mixer "/include/SDL"))) - (list (string-append "--extra-include-dirs=" sdl-mixer-include))) - #:phases - (modify-phases %standard-phases - (add-after - 'unpack 'fix-/bin/sh - (lambda _ - ;; Use `sh', not `/bin/sh'. - (setenv "CONFIG_SHELL" "sh")))))) + (list (string-append "--extra-include-dirs=" sdl-mixer-include))))) (propagated-inputs `(("ghc-sdl" ,ghc-sdl))) (inputs @@ -942,14 +927,7 @@ MIDI, Ogg Vorbis, and SMPEG MP3 libraries.") `(#:configure-flags (let* ((sdl-image (assoc-ref %build-inputs "sdl-image")) (sdl-image-include (string-append sdl-image "/include/SDL"))) - (list (string-append "--extra-include-dirs=" sdl-image-include))) - #:phases - (modify-phases %standard-phases - (add-after - 'unpack 'fix-/bin/sh - (lambda _ - ;; Use `sh', not `/bin/sh'. - (setenv "CONFIG_SHELL" "sh")))))) + (list (string-append "--extra-include-dirs=" sdl-image-include))))) (propagated-inputs `(("ghc-sdl" ,ghc-sdl))) (inputs @@ -1216,12 +1194,6 @@ date and time formats.") (base32 "1h9b26s3kfh2k0ih4383w90ibji6n0iwamxp6rfp2lbq1y5ibjqw")))) (build-system haskell-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'fix-/bin/sh - (lambda _ - (setenv "CONFIG_SHELL" "sh")))))) (propagated-inputs `(("ghc-old-locale" ,ghc-old-locale))) (home-page "http://hackage.haskell.org/package/old-time") @@ -1433,12 +1405,6 @@ environment variables.") "X11-" version ".tar.gz")) (sha256 (base32 "1kzjcynm3rr83ihqx2y2d852jc49da4p18gv6jzm7g87z22x85jj")))) - (arguments - `(#:phases (modify-phases %standard-phases - (add-before 'configure 'set-sh - (lambda _ - (setenv "CONFIG_SHELL" "sh") - #t))))) (build-system haskell-build-system) (inputs `(("libx11" ,libx11) @@ -1801,13 +1767,8 @@ but also need those types.") "0dyvyxwaffb94bgri1wc4b9wqaasy32pyjn0lww3dqblxv8fn5ax")))) (build-system haskell-build-system) (arguments - `(#:tests? #f ; FIXME: Test fails with "System.Time not found". This is - ; weird, that should be provided by GHC 7.10.2. - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'fix-/bin/sh - (lambda _ - (setenv "CONFIG_SHELL" "sh")))))) + `(#:tests? #f)) ; FIXME: Test fails with "System.Time not found". This + ; is weird, that should be provided by GHC 7.10.2. (propagated-inputs `(("ghc-old-time" ,ghc-old-time) ("ghc-old-locale" ,ghc-old-locale))) @@ -3162,11 +3123,7 @@ boxed and storable vectors.") (inputs `(("ghc-hunit" ,ghc-hunit))) (arguments - `(#:tests? #f ; FIXME: currently missing libraries used for tests. - #:phases - (modify-phases %standard-phases - (add-before 'configure 'set-sh - (lambda _ (setenv "CONFIG_SHELL" "sh")))))) + `(#:tests? #f)) ; FIXME: currently missing libraries used for tests. (home-page "https://github.com/haskell/network") (synopsis "Low-level networking interface") (description -- cgit v1.2.3 From 64a719203fc5bbb6ace1e18727de6c216ad484fc Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Mon, 26 Oct 2015 13:28:20 +0100 Subject: gnu: racket: Update to 6.2.1. * gnu/packages/scheme.scm (racket): Update to 6.2.1. --- gnu/packages/scheme.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm index 7465b1b58c..aea8b54433 100644 --- a/gnu/packages/scheme.scm +++ b/gnu/packages/scheme.scm @@ -334,7 +334,7 @@ implementation techniques and as an expository tool.") (define-public racket (package (name "racket") - (version "6.1.1") + (version "6.2.1") (source (origin (method url-fetch) (uri (list (string-append "http://mirror.racket-lang.org/installers/" @@ -344,7 +344,7 @@ implementation techniques and as an expository tool.") version "/racket/racket-" version "-src-unix.tgz"))) (sha256 (base32 - "0xfsfdqkngz0xw2lqmc7bsznwx25cw91l9fjhp7abrr05m96j0h9")))) + "0555j63k7fs10iv0icmivlxpzgp6s7gwcbfddmbwxlf2rk80qhq0")))) (build-system gnu-build-system) (arguments '(#:phases -- cgit v1.2.3 From e3e1ecf67c03836295b513d10403194a513afa2d Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 26 Oct 2015 00:13:03 +0100 Subject: gnu: Add RPM. * gnu/packages/package-management.scm (rpm): New variable. * gnu/packages/backup.scm (libarchive): Add comment. --- gnu/packages/backup.scm | 1 + gnu/packages/package-management.scm | 83 ++++++++++++++++++++++++++++++++++++- 2 files changed, 83 insertions(+), 1 deletion(-) diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm index 84d27c08a6..99a10e1c7f 100644 --- a/gnu/packages/backup.scm +++ b/gnu/packages/backup.scm @@ -147,6 +147,7 @@ backups (called chunks) to allow easy burning to CD/DVD.") (search-patch "libarchive-fix-lzo-test-case.patch") (search-patch "libarchive-CVE-2013-0211.patch"))))) (build-system gnu-build-system) + ;; TODO: Add -L/path/to/nettle in libarchive.pc. (inputs `(("zlib" ,zlib) ("nettle" ,nettle) diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 8fbe5b3064..4e69d6de59 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -23,9 +23,12 @@ #:use-module (guix git-download) #:use-module (guix utils) #:use-module (guix build-system gnu) - #:use-module ((guix licenses) #:select (gpl2+ gpl3+ lgpl2.1+)) + #:use-module (guix build-system python) + #:use-module ((guix licenses) #:select (gpl2+ gpl3+ lgpl2.1+ asl2.0)) #:use-module (gnu packages) #:use-module (gnu packages guile) + #:use-module (gnu packages file) + #:use-module (gnu packages backup) #:use-module (gnu packages compression) #:use-module (gnu packages gnupg) #:use-module (gnu packages databases) @@ -34,12 +37,17 @@ #:use-module (gnu packages autotools) #:use-module (gnu packages gettext) #:use-module (gnu packages texinfo) + #:use-module (gnu packages nettle) #:use-module (gnu packages perl) #:use-module (gnu packages curl) #:use-module (gnu packages web) #:use-module (gnu packages man) #:use-module (gnu packages emacs) #:use-module (gnu packages bdw-gc) + #:use-module (gnu packages python) + #:use-module (gnu packages popt) + #:use-module (gnu packages gnuzilla) + #:use-module (gnu packages cpio) #:use-module (gnu packages tls)) (define (boot-guile-uri arch) @@ -275,3 +283,76 @@ typically used for managing software packages installed from source, by letting you install them apart in distinct directories and then create symlinks to the files in a common directory such as /usr/local.") (license gpl2+))) + +(define-public rpm + (package + (name "rpm") + (version "4.12.0") + (source (origin + (method url-fetch) + (uri (string-append "http://rpm.org/releases/rpm-4.12.x/rpm-" + version ".tar.bz2")) + (sha256 + (base32 + "18hk47hc755nslvb7xkq4jb095z7va0nlcyxdpxayc4lmb8mq3bp")))) + (build-system gnu-build-system) + (arguments + '(#:configure-flags '("--with-external-db" ;use the system's bdb + "--enable-python" + "--without-lua") + #:phases (modify-phases %standard-phases + (add-before 'configure 'set-nspr-search-path + (lambda* (#:key inputs #:allow-other-keys) + ;; nspr.pc contains the right -I flag pointing to + ;; 'include/nspr', but unfortunately 'configure' doesn't + ;; use 'pkg-config'. Thus, augment CPATH. + ;; Likewise for NSS. + (let ((nspr (assoc-ref inputs "nspr")) + (nss (assoc-ref inputs "nss"))) + (setenv "CPATH" + (string-append (getenv "CPATH") ":" + nspr "/include/nspr:" + nss "/include/nss")) + (setenv "LIBRARY_PATH" + (string-append (getenv "LIBRARY_PATH") ":" + nss "/lib/nss")) + #t))) + (add-after 'install 'fix-rpm-symlinks + (lambda* (#:key outputs #:allow-other-keys) + ;; 'make install' gets these symlinks wrong. Fix them. + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin"))) + (with-directory-excursion bin + (for-each (lambda (file) + (delete-file file) + (symlink "rpm" file)) + '("rpmquery" "rpmverify")) + #t))))))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("python" ,python-2) + ("xz" ,xz) + ("bdb" ,bdb) + ("popt" ,popt) + ("nss" ,nss) + ("nspr" ,nspr) + ("libarchive" ,libarchive) + ("nettle" ,nettle) ;XXX: actually a dependency of libarchive + ("file" ,file) + ("bzip2" ,bzip2) + ("zlib" ,zlib) + ("cpio" ,cpio))) + (home-page "http://www.rpm.org/") + (synopsis "The RPM Package Manager") + (description + "The RPM Package Manager (RPM) is a command-line driven package +management system capable of installing, uninstalling, verifying, querying, +and updating computer software packages. Each software package consists of an +archive of files along with information about the package like its version, a +description. There is also a library permitting developers to manage such +transactions from C or Python.") + + ;; The whole is GPLv2+; librpm itself is dual-licensed LGPLv2+ | GPLv2+. + (license gpl2+))) + -- cgit v1.2.3 From 5e1c936712d824e7ccbb3cbb8ac7ffa375237469 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 26 Oct 2015 09:58:55 +0100 Subject: gnu: Add python-file. * gnu/packages/python.scm (python-file, python2-file): New variables. --- gnu/packages/python.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 9721343235..23150a3dfe 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -39,6 +39,7 @@ #:use-module (gnu packages backup) #:use-module (gnu packages compression) #:use-module (gnu packages databases) + #:use-module (gnu packages file) #:use-module (gnu packages fontutils) #:use-module (gnu packages gdbm) #:use-module (gnu packages gcc) @@ -5750,3 +5751,29 @@ Python's @code{ctypes} foreign function interface (FFI).") (define-public python2-libarchive-c (package-with-python2 python-libarchive-c)) + +(define-public python-file + (package + (inherit file) + (name "python-file") + (build-system python-build-system) + (arguments + '(#:tests? #f ;no tests + #:phases (modify-phases %standard-phases + (add-before 'build 'change-directory + (lambda _ + (chdir "python") + #t)) + (add-before 'build 'set-library-file-name + (lambda* (#:key inputs #:allow-other-keys) + (let ((file (assoc-ref inputs "file"))) + (substitute* "magic.py" + (("find_library\\('magic'\\)") + (string-append "'" file "/lib/libmagic.so'"))) + #t)))))) + (inputs `(("file" ,file))) + (self-native-input? #f) + (synopsis "Python bindings to the libmagic file type guesser"))) + +(define-public python2-file + (package-with-python2 python-file)) -- cgit v1.2.3 From 96856613249ccef0bfce16edd945a841d1b661f7 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 26 Oct 2015 18:44:18 +0100 Subject: doc: Add a REPL example. * doc/contributing.texi (Running Guix Before It Is Installed): Add REPL example. * doc/emacs.texi (Emacs General info): Add @cindex. --- doc/contributing.texi | 24 ++++++++++++++++++++++++ doc/emacs.texi | 2 ++ 2 files changed, 26 insertions(+) diff --git a/doc/contributing.texi b/doc/contributing.texi index 245ce9b1c4..d80c0d5fdf 100644 --- a/doc/contributing.texi +++ b/doc/contributing.texi @@ -86,6 +86,30 @@ Similarly, for a Guile session using the Guix modules: @example $ ./pre-inst-env guile -c '(use-modules (guix utils)) (pk (%current-system))' + +;;; ("x86_64-linux") +@end example + +@noindent +@cindex REPL +@cindex read-eval-print loop +@dots{} and for a REPL (@pxref{Using Guile Interactively,,, guile, Guile +Reference Manual}): + +@example +$ ./pre-inst-env guile +scheme@@(guile-user)> ,use(guix) +scheme@@(guile-user)> ,use(gnu) +scheme@@(guile-user)> (define snakes + (fold-packages + (lambda (package lst) + (if (string-prefix? "python" + (package-name package)) + (cons package lst) + lst)) + '())) +scheme@@(guile-user)> (length snakes) +$1 = 361 @end example The @command{pre-inst-env} script sets up all the environment variables diff --git a/doc/emacs.texi b/doc/emacs.texi index 0e901e1f90..b36e859b4a 100644 --- a/doc/emacs.texi +++ b/doc/emacs.texi @@ -227,6 +227,8 @@ prefix argument is used. This has the same meaning as @code{--manifest} option (@pxref{Invoking guix package}). @item C-c C-z +@cindex REPL +@cindex read-eval-print loop Go to the Guix REPL (@pxref{The REPL,,, geiser, Geiser User Manual}). @item h -- cgit v1.2.3 From e49de93aa53eecb769c8e1522dc6352380121af3 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 26 Oct 2015 19:03:56 +0100 Subject: ui: Add 'matching-generations'. * guix/scripts/package.scm (matching-generations): Move to... * guix/ui.scm (matching-generations): ... here. --- guix/scripts/package.scm | 66 ----------------------------------------------- guix/ui.scm | 67 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 67 insertions(+), 66 deletions(-) diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm index e0fe1ddb27..804ca954f2 100644 --- a/guix/scripts/package.scm +++ b/guix/scripts/package.scm @@ -177,72 +177,6 @@ GENERATIONS is a list of generation numbers." (for-each (cut delete-generation store profile <>) generations)) -(define* (matching-generations str #:optional (profile %current-profile) - #:key (duration-relation <=)) - "Return the list of available generations matching a pattern in STR. See -'string->generations' and 'string->duration' for the list of valid patterns. -When STR is a duration pattern, return all the generations whose ctime has -DURATION-RELATION with the current time." - (define (valid-generations lst) - (define (valid-generation? n) - (any (cut = n <>) (generation-numbers profile))) - - (fold-right (lambda (x acc) - (if (valid-generation? x) - (cons x acc) - acc)) - '() - lst)) - - (define (filter-generations generations) - (match generations - (() '()) - (('>= n) - (drop-while (cut > n <>) - (generation-numbers profile))) - (('<= n) - (valid-generations (iota n 1))) - ((lst ..1) - (valid-generations lst)) - (_ #f))) - - (define (filter-by-duration duration) - (define (time-at-midnight time) - ;; Return TIME at midnight by setting nanoseconds, seconds, minutes, and - ;; hours to zeros. - (let ((d (time-utc->date time))) - (date->time-utc - (make-date 0 0 0 0 - (date-day d) (date-month d) - (date-year d) (date-zone-offset d))))) - - (define generation-ctime-alist - (map (lambda (number) - (cons number - (time-second - (time-at-midnight - (generation-time profile number))))) - (generation-numbers profile))) - - (match duration - (#f #f) - (res - (let ((s (time-second - (subtract-duration (time-at-midnight (current-time)) - duration)))) - (delete #f (map (lambda (x) - (and (duration-relation s (cdr x)) - (first x))) - generation-ctime-alist)))))) - - (cond ((string->generations str) - => - filter-generations) - ((string->duration str) - => - filter-by-duration) - (else #f))) - (define (delete-matching-generations store profile pattern) "Delete from PROFILE all the generations matching PATTERN. PATTERN must be a string denoting a set of generations: the empty list means \"all generations diff --git a/guix/ui.scm b/guix/ui.scm index 9cc1908e6e..59ff2a7fba 100644 --- a/guix/ui.scm +++ b/guix/ui.scm @@ -84,6 +84,7 @@ specification->file-system-mapping string->generations string->duration + matching-generations run-guix-command run-guix program-name @@ -948,6 +949,72 @@ following patterns: \"1d\", \"1w\", \"1m\"." (hours->duration (* 24 30) match))) (else #f))) +(define* (matching-generations str profile + #:key (duration-relation <=)) + "Return the list of available generations matching a pattern in STR. See +'string->generations' and 'string->duration' for the list of valid patterns. +When STR is a duration pattern, return all the generations whose ctime has +DURATION-RELATION with the current time." + (define (valid-generations lst) + (define (valid-generation? n) + (any (cut = n <>) (generation-numbers profile))) + + (fold-right (lambda (x acc) + (if (valid-generation? x) + (cons x acc) + acc)) + '() + lst)) + + (define (filter-generations generations) + (match generations + (() '()) + (('>= n) + (drop-while (cut > n <>) + (generation-numbers profile))) + (('<= n) + (valid-generations (iota n 1))) + ((lst ..1) + (valid-generations lst)) + (_ #f))) + + (define (filter-by-duration duration) + (define (time-at-midnight time) + ;; Return TIME at midnight by setting nanoseconds, seconds, minutes, and + ;; hours to zeros. + (let ((d (time-utc->date time))) + (date->time-utc + (make-date 0 0 0 0 + (date-day d) (date-month d) + (date-year d) (date-zone-offset d))))) + + (define generation-ctime-alist + (map (lambda (number) + (cons number + (time-second + (time-at-midnight + (generation-time profile number))))) + (generation-numbers profile))) + + (match duration + (#f #f) + (res + (let ((s (time-second + (subtract-duration (time-at-midnight (current-time)) + duration)))) + (delete #f (map (lambda (x) + (and (duration-relation s (cdr x)) + (first x))) + generation-ctime-alist)))))) + + (cond ((string->generations str) + => + filter-generations) + ((string->duration str) + => + filter-by-duration) + (else #f))) + (define* (package-specification->name+version+output spec #:optional (output "out")) "Parse package specification SPEC and return three value: the specified -- cgit v1.2.3 From deaab8e314982d1ddb65e41d043ceb5de3c3b723 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 26 Oct 2015 19:50:56 +0100 Subject: guix system: Extract action processing. * guix/scripts/system.scm (process-action): New procedure. Extracted from... (guix-system): ... here. Use it. --- guix/scripts/system.scm | 95 ++++++++++++++++++++++++++----------------------- 1 file changed, 51 insertions(+), 44 deletions(-) diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm index 8775267f80..d973e60730 100644 --- a/guix/scripts/system.scm +++ b/guix/scripts/system.scm @@ -550,6 +550,55 @@ Build the operating system declared in FILE according to ACTION.\n")) ;;; Entry point. ;;; +(define (process-action action args opts) + "Process ACTION, a sub-command, whose arguments are listed in ARGS. OPTS is +the raw alist of options resulting from command-line parsing." + (let* ((file (match args + (() #f) + ((x . _) x))) + (system (assoc-ref opts 'system)) + (os (if file + (load* file %user-module + #:on-error (assoc-ref opts 'on-error)) + (leave (_ "no configuration file specified~%")))) + + (dry? (assoc-ref opts 'dry-run?)) + (grub? (assoc-ref opts 'install-grub?)) + (target (match args + ((first second) second) + (_ #f))) + (device (and grub? + (grub-configuration-device + (operating-system-bootloader os))))) + + (with-store store + (set-build-options-from-command-line store opts) + + (run-with-store store + (mbegin %store-monad + (set-guile-for-build (default-guile)) + (case action + ((extension-graph) + (export-extension-graph os (current-output-port))) + ((dmd-graph) + (export-dmd-graph os (current-output-port))) + (else + (perform-action action os + #:dry-run? dry? + #:derivations-only? (assoc-ref opts + 'derivations-only?) + #:use-substitutes? (assoc-ref opts 'substitutes?) + #:image-size (assoc-ref opts 'image-size) + #:full-boot? (assoc-ref opts 'full-boot?) + #:mappings (filter-map (match-lambda + (('file-system-mapping . m) + m) + (_ #f)) + opts) + #:grub? grub? + #:target target #:device device)))) + #:system system)))) + (define (guix-system . args) (define (parse-sub-command arg result) ;; Parse sub-command ARG and augment RESULT accordingly. @@ -600,49 +649,7 @@ Build the operating system declared in FILE according to ACTION.\n")) #:argument-handler parse-sub-command)) (args (option-arguments opts)) - (file (first args)) - (action (assoc-ref opts 'action)) - (system (assoc-ref opts 'system)) - (os (if file - (load* file %user-module - #:on-error (assoc-ref opts 'on-error)) - (leave (_ "no configuration file specified~%")))) - - (dry? (assoc-ref opts 'dry-run?)) - (grub? (assoc-ref opts 'install-grub?)) - (target (match args - ((first second) second) - (_ #f))) - (device (and grub? - (grub-configuration-device - (operating-system-bootloader os)))) - - (store (open-connection))) - (set-build-options-from-command-line store opts) - - (run-with-store store - (mbegin %store-monad - (set-guile-for-build (default-guile)) - (case action - ((extension-graph) - (export-extension-graph os (current-output-port))) - ((dmd-graph) - (export-dmd-graph os (current-output-port))) - (else - (perform-action action os - #:dry-run? dry? - #:derivations-only? (assoc-ref opts - 'derivations-only?) - #:use-substitutes? (assoc-ref opts 'substitutes?) - #:image-size (assoc-ref opts 'image-size) - #:full-boot? (assoc-ref opts 'full-boot?) - #:mappings (filter-map (match-lambda - (('file-system-mapping . m) - m) - (_ #f)) - opts) - #:grub? grub? - #:target target #:device device)))) - #:system system)))) + (command (assoc-ref opts 'action))) + (process-action command args opts)))) ;;; system.scm ends here -- cgit v1.2.3 From d50cb56d9b58f3e1605f59b35ce99942c3b70d24 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 26 Oct 2015 20:01:45 +0100 Subject: utils: Add 'readlink*'. * guix/scripts/package.scm (readlink*): Move to... * guix/utils.scm (readlink*): ... here. New procedure. --- guix/scripts/package.scm | 28 ---------------------------- guix/utils.scm | 28 ++++++++++++++++++++++++++++ 2 files changed, 28 insertions(+), 28 deletions(-) diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm index 804ca954f2..ee45cddedd 100644 --- a/guix/scripts/package.scm +++ b/guix/scripts/package.scm @@ -612,34 +612,6 @@ doesn't need it." (add-indirect-root store absolute)) -(define (readlink* file) - "Call 'readlink' until the result is not a symlink." - (define %max-symlink-depth 50) - - (let loop ((file file) - (depth 0)) - (define (absolute target) - (if (absolute-file-name? target) - target - (string-append (dirname file) "/" target))) - - (if (>= depth %max-symlink-depth) - file - (call-with-values - (lambda () - (catch 'system-error - (lambda () - (values #t (readlink file))) - (lambda args - (let ((errno (system-error-errno args))) - (if (or (= errno EINVAL)) - (values #f file) - (apply throw args)))))) - (lambda (success? target) - (if success? - (loop (absolute target) (+ depth 1)) - file)))))) - ;;; ;;; Entry point. diff --git a/guix/utils.scm b/guix/utils.scm index 190b787185..f1317ac756 100644 --- a/guix/utils.scm +++ b/guix/utils.scm @@ -82,6 +82,7 @@ fold-tree-leaves split cache-directory + readlink* filtered-port compressed-port @@ -710,6 +711,33 @@ elements after E." (and=> (getenv "HOME") (cut string-append <> "/.cache/guix")))) +(define (readlink* file) + "Call 'readlink' until the result is not a symlink." + (define %max-symlink-depth 50) + + (let loop ((file file) + (depth 0)) + (define (absolute target) + (if (absolute-file-name? target) + target + (string-append (dirname file) "/" target))) + + (if (>= depth %max-symlink-depth) + file + (call-with-values + (lambda () + (catch 'system-error + (lambda () + (values #t (readlink file))) + (lambda args + (let ((errno (system-error-errno args))) + (if (or (= errno EINVAL)) + (values #f file) + (apply throw args)))))) + (lambda (success? target) + (if success? + (loop (absolute target) (+ depth 1)) + file)))))) ;;; ;;; Source location. -- cgit v1.2.3 From ad18c7e64c844350f295a2f79605800a7718ed78 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 26 Oct 2015 21:16:20 +0100 Subject: ui: Add procedures to display a profile generation. * guix/scripts/package.scm (guix-package)[process-query](list-generations): Move part of the body to 'delete-generation' and 'display-profile-content'. * guix/ui.scm (display-generation, display-profile-content): New procedures. --- guix/scripts/package.scm | 21 ++------------------- guix/ui.scm | 28 ++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 19 deletions(-) diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm index ee45cddedd..49df3349e8 100644 --- a/guix/scripts/package.scm +++ b/guix/scripts/package.scm @@ -789,25 +789,8 @@ more information.~%")) (('list-generations pattern) (define (list-generation number) (unless (zero? number) - (let ((header (format #f (_ "Generation ~a\t~a") number - (date->string - (time-utc->date - (generation-time profile number)) - "~b ~d ~Y ~T"))) - (current (generation-number profile))) - (if (= number current) - (format #t (_ "~a\t(current)~%") header) - (format #t "~a~%" header))) - (for-each (match-lambda - (($ name version output location _) - (format #t " ~a\t~a\t~a\t~a~%" - name version output location))) - - ;; Show most recently installed packages last. - (reverse - (manifest-entries - (profile-manifest - (generation-file-name profile number))))) + (display-generation profile number) + (display-profile-content profile number) (newline))) (cond ((not (file-exists? profile)) ; XXX: race condition diff --git a/guix/ui.scm b/guix/ui.scm index 59ff2a7fba..c45c50fa16 100644 --- a/guix/ui.scm +++ b/guix/ui.scm @@ -85,6 +85,8 @@ string->generations string->duration matching-generations + display-generation + display-profile-content run-guix-command run-guix program-name @@ -1015,6 +1017,32 @@ DURATION-RELATION with the current time." filter-by-duration) (else #f))) +(define (display-generation profile number) + "Display a one-line summary of generation NUMBER of PROFILE." + (unless (zero? number) + (let ((header (format #f (_ "Generation ~a\t~a") number + (date->string + (time-utc->date + (generation-time profile number)) + "~b ~d ~Y ~T"))) + (current (generation-number profile))) + (if (= number current) + (format #t (_ "~a\t(current)~%") header) + (format #t "~a~%" header))))) + +(define (display-profile-content profile number) + "Display the packages in PROFILE, generation NUMBER, in a human-readable +way." + (for-each (match-lambda + (($ name version output location _) + (format #t " ~a\t~a\t~a\t~a~%" + name version output location))) + + ;; Show most recently installed packages last. + (reverse + (manifest-entries + (profile-manifest (generation-file-name profile number)))))) + (define* (package-specification->name+version+output spec #:optional (output "out")) "Parse package specification SPEC and return three value: the specified -- cgit v1.2.3 From 5b516ef3696270f21327d9f63a9ccb4f1b83f346 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 26 Oct 2015 21:19:42 +0100 Subject: guix system: Factorize boot parameter parsing. * guix/scripts/system.scm (): New record type. (read-boot-parameters): New procedure. (previous-grub-entries)[system->grub-entry]: Use it. --- guix/scripts/system.scm | 74 +++++++++++++++++++++++++++++++++---------------- 1 file changed, 50 insertions(+), 24 deletions(-) diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm index d973e60730..6db6a01ac9 100644 --- a/guix/scripts/system.scm +++ b/guix/scripts/system.scm @@ -25,6 +25,7 @@ #:use-module (guix packages) #:use-module (guix utils) #:use-module (guix monads) + #:use-module (guix records) #:use-module (guix profiles) #:use-module (guix scripts) #:use-module (guix scripts build) @@ -184,6 +185,39 @@ the ownership of '~a' may be incorrect!~%") (mwhen grub? (install-grub* grub.cfg device target))))) + +;;; +;;; Boot parameters +;;; + +(define-record-type* + boot-parameters make-boot-parameters boot-parameters? + (label boot-parameters-label) + (root-device boot-parameters-root-device) + (kernel boot-parameters-kernel) + (kernel-arguments boot-parameters-kernel-arguments)) + +(define (read-boot-parameters port) + "Read boot parameters from PORT and return the corresponding + object or #f if the format is unrecognized." + (match (read port) + (('boot-parameters ('version 0) + ('label label) ('root-device root) + ('kernel linux) + rest ...) + (boot-parameters + (label label) + (root-device root) + (kernel linux) + (kernel-arguments + (match (assq 'kernel-arguments rest) + ((_ args) args) + (#f '()))))) ;the old format + (x ;unsupported format + (warning (_ "unrecognized boot parameters for '~a'~%") + system) + #f))) + ;;; ;;; Reconfiguration. @@ -247,30 +281,22 @@ it atomically, and then run OS's activation script." "Return a list of 'menu-entry' for the generations of PROFILE." (define (system->grub-entry system number time) (unless-file-not-found - (call-with-input-file (string-append system "/parameters") - (lambda (port) - (match (read port) - (('boot-parameters ('version 0) - ('label label) ('root-device root) - ('kernel linux) - rest ...) - (menu-entry - (label (string-append label " (#" - (number->string number) ", " - (seconds->string time) ")")) - (linux linux) - (linux-arguments - (cons* (string-append "--root=" root) - #~(string-append "--system=" #$system) - #~(string-append "--load=" #$system "/boot") - (match (assq 'kernel-arguments rest) - ((_ args) args) - (#f '())))) ;old format - (initrd #~(string-append #$system "/initrd")))) - (_ ;unsupported format - (warning (_ "unrecognized boot parameters for '~a'~%") - system) - #f)))))) + (let ((file (string-append system "/parameters"))) + (match (call-with-input-file file read-boot-parameters) + (($ label root kernel kernel-arguments) + (menu-entry + (label (string-append label " (#" + (number->string number) ", " + (seconds->string time) ")")) + (linux kernel) + (linux-arguments + (cons* (string-append "--root=" root) + #~(string-append "--system=" #$system) + #~(string-append "--load=" #$system "/boot") + kernel-arguments)) + (initrd #~(string-append #$system "/initrd")))) + (#f ;invalid format + #f))))) (let* ((numbers (generation-numbers profile)) (systems (map (cut generation-file-name profile <>) -- cgit v1.2.3 From 65797bfffd1b4d9126f11ffb6b59a1a7a18d48f0 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 26 Oct 2015 21:24:26 +0100 Subject: guix system: Add the 'list-generations' command. * guix/scripts/system.scm (display-system-generation, list-generations): New procedures. (process-action): Clarify docstring. (process-command): New procedure. (guix-system)[parse-sub-command]: Add 'list-generations' Call 'process-command' instead of 'process-action'. * doc/guix.texi (Using the Configuration System): Mention generations, rollback, and 'list-generations'. (Invoking guix system): Document 'list-generations'. --- doc/guix.texi | 47 +++++++++++++++++++++++++++++--- guix/scripts/system.scm | 72 +++++++++++++++++++++++++++++++++++++++++++++---- 2 files changed, 110 insertions(+), 9 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 7715b72818..20bf28424e 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -5369,9 +5369,24 @@ information about the @code{nss-certs} package that is used here. Assuming the above snippet is stored in the @file{my-system-config.scm} file, the @command{guix system reconfigure my-system-config.scm} command instantiates that configuration, and makes it the default GRUB boot -entry (@pxref{Invoking guix system}). The normal way to change the -system's configuration is by updating this file and re-running the -@command{guix system} command. +entry (@pxref{Invoking guix system}). + +The normal way to change the system's configuration is by updating this +file and re-running @command{guix system reconfigure}. One should never +have to touch files in @command{/etc} or to run commands that modify the +system state such as @command{useradd} or @command{grub-install}. In +fact, you must avoid that since that would not only void your warranty +but also prevent you from rolling back to previous versions of your +system, should you ever need to. + +@cindex roll-back, of the operating system +Speaking of roll-back, each time you run @command{guix system +reconfigure}, a new @dfn{generation} of the system is created---without +modifying or deleting previous generations. Old system generations get +an entry in the GRUB boot menu, allowing you to boot them in case +something went wrong with the latest generation. Reassuring, no? The +@command{guix system list-generations} command lists the system +generations available on disk. At the Scheme level, the bulk of an @code{operating-system} declaration is instantiated with the following monadic procedure (@pxref{The Store @@ -7077,7 +7092,7 @@ supported: @item reconfigure Build the operating system described in @var{file}, activate it, and switch to it@footnote{This action is usable only on systems already -running GNU.}. +running GuixSD.}. This effects all the configuration specified in @var{file}: user accounts, system services, global package list, setuid programs, etc. @@ -7218,6 +7233,30 @@ KVM kernel module should be loaded, and the @file{/dev/kvm} device node must exist and be readable and writable by the user and by the daemon's build users. +Once you have built, configured, re-configured, and re-re-configured +your GuixSD installation, you may find it useful to list the operating +system generations available on disk---and that you can choose from the +GRUB boot menu: + +@table @code + +@item list-generations +List a summary of each generation of the operating system available on +disk, in a human-readable way. This is similar to the +@option{--list-generations} option of @command{guix package} +(@pxref{Invoking guix package}). + +Optionally, one can specify a pattern, with the same syntax that is used +in @command{guix package --list-generations}, to restrict the list of +generations displayed. For instance, the following command displays +generations up to 10-day old: + +@example +$ guix system list-generations 10d +@end example + +@end table + The @command{guix system} command has even more to offer! The following sub-commands allow you to visualize how your system services relate to each other: diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm index 6db6a01ac9..d847c75444 100644 --- a/guix/scripts/system.scm +++ b/guix/scripts/system.scm @@ -42,6 +42,8 @@ #:use-module (srfi srfi-1) #:use-module (srfi srfi-19) #:use-module (srfi srfi-26) + #:use-module (srfi srfi-34) + #:use-module (srfi srfi-35) #:use-module (srfi srfi-37) #:use-module (ice-9 match) #:export (guix-system @@ -351,6 +353,48 @@ list of services." (label dmd-service-node-label) (edges (lift1 (dmd-service-back-edges services) %store-monad)))) + +;;; +;;; Generations. +;;; + +(define* (display-system-generation number + #:optional (profile %system-profile)) + "Display a summary of system generation NUMBER in a human-readable format." + (unless (zero? number) + (let* ((generation (generation-file-name profile number)) + (param-file (string-append generation "/parameters")) + (params (call-with-input-file param-file read-boot-parameters))) + (display-generation profile number) + (format #t (_ " file name: ~a~%") generation) + (format #t (_ " canonical file name: ~a~%") (readlink* generation)) + (match params + (($ label root kernel) + ;; TRANSLATORS: Please preserve the two-space indentation. + (format #t (_ " label: ~a~%") label) + (format #t (_ " root device: ~a~%") root) + (format #t (_ " kernel: ~a~%") kernel)) + (_ + #f))))) + +(define* (list-generations pattern #:optional (profile %system-profile)) + "Display in a human-readable format all the system generations matching +PATTERN, a string. When PATTERN is #f, display all the system generations." + (cond ((not (file-exists? profile)) ; XXX: race condition + (raise (condition (&profile-not-found-error + (profile profile))))) + ((string-null? pattern) + (for-each display-system-generation (profile-generations profile))) + ((matching-generations pattern profile) + => + (lambda (numbers) + (if (null-list? numbers) + (exit 1) + (leave-on-EPIPE + (for-each display-system-generation numbers))))) + (else + (leave (_ "invalid syntax: ~a~%") pattern)))) + ;;; ;;; Action. @@ -468,13 +512,15 @@ building anything." ;;; (define (show-help) - (display (_ "Usage: guix system [OPTION] ACTION FILE + (display (_ "Usage: guix system [OPTION] ACTION [FILE] Build the operating system declared in FILE according to ACTION.\n")) (newline) (display (_ "The valid values for ACTION are:\n")) (newline) (display (_ "\ reconfigure switch to a new operating system configuration\n")) + (display (_ "\ + list-generations list the system generations\n")) (display (_ "\ build build the operating system without installing anything\n")) (display (_ "\ @@ -577,8 +623,10 @@ Build the operating system declared in FILE according to ACTION.\n")) ;;; (define (process-action action args opts) - "Process ACTION, a sub-command, whose arguments are listed in ARGS. OPTS is -the raw alist of options resulting from command-line parsing." + "Process ACTION, a sub-command, with the arguments are listed in ARGS. +ACTION must be one of the sub-commands that takes an operating system +declaration as an argument (a file name.) OPTS is the raw alist of options +resulting from command-line parsing." (let* ((file (match args (() #f) ((x . _) x))) @@ -625,6 +673,20 @@ the raw alist of options resulting from command-line parsing." #:target target #:device device)))) #:system system)))) +(define (process-command command args opts) + "Process COMMAND, one of the 'guix system' sub-commands. ARGS is its +argument list and OPTS is the option alist." + (case command + ((list-generations) + ;; List generations. No need to connect to the daemon, etc. + (let ((pattern (match args + (() "") + ((pattern) pattern) + (x (leave (_ "wrong number of arguments~%")))))) + (list-generations pattern))) + (else + (process-action command args opts)))) + (define (guix-system . args) (define (parse-sub-command arg result) ;; Parse sub-command ARG and augment RESULT accordingly. @@ -633,7 +695,7 @@ the raw alist of options resulting from command-line parsing." (let ((action (string->symbol arg))) (case action ((build vm vm-image disk-image reconfigure init - extension-graph dmd-graph) + extension-graph dmd-graph list-generations) (alist-cons 'action action result)) (else (leave (_ "~a: unknown action~%") action)))))) @@ -676,6 +738,6 @@ the raw alist of options resulting from command-line parsing." parse-sub-command)) (args (option-arguments opts)) (command (assoc-ref opts 'action))) - (process-action command args opts)))) + (process-command command args opts)))) ;;; system.scm ends here -- cgit v1.2.3 From 3bb168b0997d2ba2ef15e8eef2890582c8a6df9c Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 26 Oct 2015 22:17:25 +0100 Subject: utils: Add 'switch-symlinks', moved from (guix ui). * guix/ui.scm (switch-symlinks): Move to... * guix/utils.scm: ... here. New procedure. * guix/scripts/pull.scm: Use it. --- guix/scripts/pull.scm | 1 + guix/ui.scm | 8 -------- guix/utils.scm | 8 ++++++++ 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/guix/scripts/pull.scm b/guix/scripts/pull.scm index 56ee9acb18..a4824e4fd7 100644 --- a/guix/scripts/pull.scm +++ b/guix/scripts/pull.scm @@ -18,6 +18,7 @@ (define-module (guix scripts pull) #:use-module (guix ui) + #:use-module (guix utils) #:use-module (guix scripts) #:use-module (guix store) #:use-module (guix config) diff --git a/guix/ui.scm b/guix/ui.scm index c45c50fa16..b7ed5e7d4d 100644 --- a/guix/ui.scm +++ b/guix/ui.scm @@ -73,7 +73,6 @@ read/eval read/eval-package-expression location->string - switch-symlinks config-directory fill-paragraph texi->plain-text @@ -715,13 +714,6 @@ replacement if PORT is not Unicode-capable." (($ file line column) (format #f "~a:~a:~a" file line column)))) -(define (switch-symlinks link target) - "Atomically switch LINK, a symbolic link, to point to TARGET. Works -both when LINK already exists and when it does not." - (let ((pivot (string-append link ".new"))) - (symlink target pivot) - (rename-file pivot link))) - (define (config-directory) "Return the name of the configuration directory, after making sure that it exists. Honor the XDG specs, diff --git a/guix/utils.scm b/guix/utils.scm index f1317ac756..1542e86f7a 100644 --- a/guix/utils.scm +++ b/guix/utils.scm @@ -74,6 +74,7 @@ arguments-from-environment-variable file-extension file-sans-extension + switch-symlinks call-with-temporary-output-file call-with-temporary-directory with-atomic-file-output @@ -557,6 +558,13 @@ minor version numbers from version-string." (substring file 0 dot) file))) +(define (switch-symlinks link target) + "Atomically switch LINK, a symbolic link, to point to TARGET. Works +both when LINK already exists and when it does not." + (let ((pivot (string-append link ".new"))) + (symlink target pivot) + (rename-file pivot link))) + (define* (string-replace-substring str substr replacement #:optional (start 0) -- cgit v1.2.3 From 06d45f4566469364b4c1fe6d3c71ecf58f5d4838 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 26 Oct 2015 23:01:06 +0100 Subject: profiles: Add generation manipulation procedures. * guix/scripts/package.scm (delete-generations): Use 'delete-generation*' instead of 'delete-generation'. (guix-package)[process-actions]: Use 'roll-back*' instead of 'roll-back' and 'switch-to-generation*' instead of 'switch-to-generation'. (link-to-empty-profile, switch-to-generation, switch-to-previous-generation, roll-back, delete-generation): Move to... * guix/profiles.scm: ... here. Adjust to not print messages and to return values that can be used by user interfaces. * guix/ui.scm (display-generation-change, roll-back*, switch-to-generation*, delete-generation*): New procedures. --- guix/profiles.scm | 80 +++++++++++++++++++++++++++++++++++++++++++++- guix/scripts/package.scm | 83 +++--------------------------------------------- guix/ui.scm | 24 ++++++++++++++ 3 files changed, 107 insertions(+), 80 deletions(-) diff --git a/guix/profiles.scm b/guix/profiles.scm index fac322bbab..e8bd564efa 100644 --- a/guix/profiles.scm +++ b/guix/profiles.scm @@ -84,13 +84,17 @@ packages->manifest %default-profile-hooks profile-derivation + generation-number generation-numbers profile-generations relative-generation previous-generation-number generation-time - generation-file-name)) + generation-file-name + switch-to-generation + roll-back + delete-generation)) ;;; Commentary: ;;; @@ -844,4 +848,78 @@ case when generations have been deleted (there are \"holes\")." (make-time time-utc 0 (stat:ctime (stat (generation-file-name profile number))))) +(define (link-to-empty-profile store generation) + "Link GENERATION, a string, to the empty profile. An error is raised if +that fails." + (let* ((drv (run-with-store store + (profile-derivation (manifest '())))) + (prof (derivation->output-path drv "out"))) + (build-derivations store (list drv)) + (switch-symlinks generation prof))) + +(define (switch-to-generation profile number) + "Atomically switch PROFILE to the generation NUMBER. Return the number of +the generation that was current before switching." + (let ((current (generation-number profile)) + (generation (generation-file-name profile number))) + (cond ((not (file-exists? profile)) + (raise (condition (&profile-not-found-error + (profile profile))))) + ((not (file-exists? generation)) + (raise (condition (&missing-generation-error + (profile profile) + (generation number))))) + (else + (switch-symlinks profile generation) + current)))) + +(define (switch-to-previous-generation profile) + "Atomically switch PROFILE to the previous generation. Return the former +generation number and the current one." + (let ((previous (previous-generation-number profile))) + (values (switch-to-generation profile previous) + previous))) + +(define (roll-back store profile) + "Roll back to the previous generation of PROFILE. Return the number of the +generation that was current before switching and the new generation number." + (let* ((number (generation-number profile)) + (previous-number (previous-generation-number profile number)) + (previous-generation (generation-file-name profile previous-number))) + (cond ((not (file-exists? profile)) ;invalid profile + (raise (condition (&profile-not-found-error + (profile profile))))) + ((zero? number) ;empty profile + (values number number)) + ((or (zero? previous-number) ;going to emptiness + (not (file-exists? previous-generation))) + (link-to-empty-profile store previous-generation) + (switch-to-previous-generation profile)) + (else ;anything else + (switch-to-previous-generation profile))))) + +(define (delete-generation store profile number) + "Delete generation with NUMBER from PROFILE. Return the file name of the +generation that has been deleted, or #f if nothing was done (for instance +because the NUMBER is zero.)" + (define (delete-and-return) + (let ((generation (generation-file-name profile number))) + (delete-file generation) + generation)) + + (let* ((current-number (generation-number profile)) + (previous-number (previous-generation-number profile number)) + (previous-generation (generation-file-name profile previous-number))) + (cond ((zero? number) #f) ;do not delete generation 0 + ((and (= number current-number) + (not (file-exists? previous-generation))) + (link-to-empty-profile store previous-generation) + (switch-to-previous-generation profile) + (delete-and-return)) + ((= number current-number) + (roll-back store profile) + (delete-and-return)) + (else + (delete-and-return))))) + ;;; profiles.scm ends here diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm index 49df3349e8..d8689490b7 100644 --- a/guix/scripts/package.scm +++ b/guix/scripts/package.scm @@ -48,11 +48,7 @@ #:use-module (gnu packages base) #:use-module (gnu packages guile) #:use-module ((gnu packages bootstrap) #:select (%bootstrap-guile)) - #:export (switch-to-generation - switch-to-previous-generation - roll-back - delete-generation - delete-generations + #:export (delete-generations display-search-paths guix-package)) @@ -100,81 +96,10 @@ indirectly, or PROFILE." %user-profile-directory profile)) -(define (link-to-empty-profile store generation) - "Link GENERATION, a string, to the empty profile." - (let* ((drv (run-with-store store - (profile-derivation (manifest '())))) - (prof (derivation->output-path drv "out"))) - (when (not (build-derivations store (list drv))) - (leave (_ "failed to build the empty profile~%"))) - - (switch-symlinks generation prof))) - -(define (switch-to-generation profile number) - "Atomically switch PROFILE to the generation NUMBER." - (let ((current (generation-number profile)) - (generation (generation-file-name profile number))) - (cond ((not (file-exists? profile)) - (raise (condition (&profile-not-found-error - (profile profile))))) - ((not (file-exists? generation)) - (raise (condition (&missing-generation-error - (profile profile) - (generation number))))) - (else - (format #t (_ "switching from generation ~a to ~a~%") - current number) - (switch-symlinks profile generation))))) - -(define (switch-to-previous-generation profile) - "Atomically switch PROFILE to the previous generation." - (switch-to-generation profile - (previous-generation-number profile))) - -(define (roll-back store profile) - "Roll back to the previous generation of PROFILE." - (let* ((number (generation-number profile)) - (previous-number (previous-generation-number profile number)) - (previous-generation (generation-file-name profile previous-number))) - (cond ((not (file-exists? profile)) ; invalid profile - (raise (condition (&profile-not-found-error - (profile profile))))) - ((zero? number) ; empty profile - (format (current-error-port) - (_ "nothing to do: already at the empty profile~%"))) - ((or (zero? previous-number) ; going to emptiness - (not (file-exists? previous-generation))) - (link-to-empty-profile store previous-generation) - (switch-to-previous-generation profile)) - (else - (switch-to-previous-generation profile))))) ; anything else - -(define (delete-generation store profile number) - "Delete generation with NUMBER from PROFILE." - (define (display-and-delete) - (let ((generation (generation-file-name profile number))) - (format #t (_ "deleting ~a~%") generation) - (delete-file generation))) - - (let* ((current-number (generation-number profile)) - (previous-number (previous-generation-number profile number)) - (previous-generation (generation-file-name profile previous-number))) - (cond ((zero? number)) ; do not delete generation 0 - ((and (= number current-number) - (not (file-exists? previous-generation))) - (link-to-empty-profile store previous-generation) - (switch-to-previous-generation profile) - (display-and-delete)) - ((= number current-number) - (roll-back store profile) - (display-and-delete)) - (else - (display-and-delete))))) - (define (delete-generations store profile generations) "Delete GENERATIONS from PROFILE. GENERATIONS is a list of generation numbers." - (for-each (cut delete-generation store profile <>) + (for-each (cut delete-generation* store profile <>) generations)) (define (delete-matching-generations store profile pattern) @@ -725,7 +650,7 @@ more information.~%")) ;; First roll back if asked to. (cond ((and (assoc-ref opts 'roll-back?) (not dry-run?)) - (roll-back (%store) profile) + (roll-back* (%store) profile) (process-actions (alist-delete 'roll-back? opts))) ((and (assoc-ref opts 'switch-generation) (not dry-run?)) @@ -739,7 +664,7 @@ more information.~%")) (relative-generation profile number)) (else number))))) (if number - (switch-to-generation profile number) + (switch-to-generation* profile number) (leave (_ "cannot switch to generation '~a'~%") pattern))) (process-actions (alist-delete 'switch-generation opts))) diff --git a/guix/ui.scm b/guix/ui.scm index b7ed5e7d4d..72208e7de7 100644 --- a/guix/ui.scm +++ b/guix/ui.scm @@ -86,6 +86,9 @@ matching-generations display-generation display-profile-content + roll-back* + switch-to-generation* + delete-generation* run-guix-command run-guix program-name @@ -1035,6 +1038,27 @@ way." (manifest-entries (profile-manifest (generation-file-name profile number)))))) +(define (display-generation-change previous current) + (format #t (_ "switched from generation ~a to ~a~%") previous current)) + +(define (roll-back* store profile) + "Like 'roll-back', but display what is happening." + (call-with-values + (lambda () + (roll-back store profile)) + display-generation-change)) + +(define (switch-to-generation* profile number) + "Like 'switch-generation', but display what is happening." + (let ((previous (switch-to-generation profile number))) + (display-generation-change previous number))) + +(define (delete-generation* store profile generation) + "Like 'delete-generation', but display what is going on." + (format #t (_ "deleting ~a~%") + (generation-file-name profile generation)) + (delete-generation store profile generation)) + (define* (package-specification->name+version+output spec #:optional (output "out")) "Parse package specification SPEC and return three value: the specified -- cgit v1.2.3 From 7dae1f4301323e5789b93e04786977c87aa8c8da Mon Sep 17 00:00:00 2001 From: Cyrill Schenkel Date: Fri, 23 Oct 2015 16:38:16 +0200 Subject: gnu: Add xcompmgr. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/xorg.scm (xcompmgr): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/xorg.scm | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index b39bbd436f..a891fcc06b 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2014, 2015 Eric Bavier ;;; Copyright © 2015 Ludovic Courtès ;;; Copyright © 2015 Eric Dvorsak +;;; Copyright © 2015 Cyrill Schenkel ;;; ;;; This file is part of GNU Guix. ;;; @@ -5439,3 +5440,44 @@ perl programs to display windows and graphics on X11 servers.") ;; of the extension modules in the directory Protocol/Ext: see those files ;; for details)." (license (package-license perl)))) + +(define-public xcompmgr + (package + (name "xcompmgr") + (version "1.1.7") + (source + (origin + ;; there's no current tarball + (method git-fetch) + (uri (git-reference + (url "http://anongit.freedesktop.org/git/xorg/app/xcompmgr.git") + (commit (string-append name "-" version)))) + (sha256 + (base32 + "04swkrm3gk689wrjc418bd3n25w8r20kg1xfbn5j8d7mx1r5gf16")) + (file-name (string-append name "-" version)))) + (build-system gnu-build-system) + (arguments + `(#:phases (modify-phases %standard-phases + (add-after 'unpack 'autogen + (lambda _ + (setenv "NOCONFIGURE" "t") + (zero? (system* "sh" "autogen.sh"))))))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("autoconf" ,autoconf) + ("automake" ,automake))) + (inputs + `(("libX11" ,libx11) + ("libXext" ,libxext) + ("libXcomposite" ,libxcomposite) + ("libXfixes" ,libxfixes) + ("libXdamage" ,libxdamage) + ("libXrender" ,libxrender))) + (synopsis "X Compositing manager using RENDER") + (description "xcompmgr is a sample compositing manager for X servers +supporting the XFIXES, DAMAGE, RENDER, and COMPOSITE extensions. It enables +basic eye-candy effects.") + (home-page "http://cgit.freedesktop.org/xorg/app/xcompmgr/") + (license (license:x11-style + "http://cgit.freedesktop.org/xorg/app/xcompmgr/tree/COPYING")))) -- cgit v1.2.3 From 7e9b07bdcbe6b5339fdc70d880089282ebc82578 Mon Sep 17 00:00:00 2001 From: Aljosha Papsch Date: Mon, 26 Oct 2015 22:27:05 +0100 Subject: gnu: Add yapet. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/password-utils.scm (yapet): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/password-utils.scm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-utils.scm index 921ade1030..3cb319aeda 100644 --- a/gnu/packages/password-utils.scm +++ b/gnu/packages/password-utils.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 Steve Sprang ;;; Copyright © 2015 Efraim Flashner +;;; Copyright © 2015 Aljosha Papsch ;;; ;;; This file is part of GNU Guix. ;;; @@ -26,6 +27,9 @@ #:use-module (gnu packages compression) #:use-module (gnu packages gnupg) #:use-module (gnu packages guile) + #:use-module (gnu packages ncurses) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages tls) #:use-module (gnu packages qt) #:use-module (gnu packages xdisorg) #:use-module (gnu packages xorg)) @@ -104,3 +108,31 @@ For copying and pasting secrets into web browsers and other graphical applications, there is xclip integration." ) (home-page "http://dthompson.us/pages/software/shroud.html") (license license:gpl3+))) + +(define-public yapet + (package + (name "yapet") + (version "1.0") + (source (origin + (method url-fetch) + (uri (string-append "http://www.guengel.ch/myapps/yapet/downloads/yapet-" + version + ".tar.bz2")) + (sha256 + (base32 + "0ydbnqw6icdh07pnv2w6dhvq501bdfvrklv4xmyr8znca9d753if")))) + (build-system gnu-build-system) + (inputs + `(("ncurses" ,ncurses) + ("openssl" ,openssl))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (synopsis "Yet Another Password Encryption Tool") + (description "YAPET is a text based password manager using the Blowfish +encryption algorithm. Because of its small footprint and very few library +dependencies, it is suited for installing on desktop and server systems alike. +The text based user interface allows you to run YAPET easily in a Secure Shell +session. Two companion utilities enable users to convert CSV files to YAPET +and vice versa.") + (home-page "http://www.guengel.ch/myapps/yapet/") + (license license:gpl3+))) -- cgit v1.2.3 From b9cbe316454e86dcc465f21993d99f3b00678593 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 27 Oct 2015 10:05:36 +0100 Subject: gnu: libwacom: Add dependency on libgudev. * gnu/packages/xdisorg.scm (libwacom)[inputs]: Add LIBGUDEV. --- gnu/packages/xdisorg.scm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index 21e403e9ab..4b5308c665 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -39,6 +39,7 @@ #:use-module (gnu packages pkg-config) #:use-module (gnu packages gettext) #:use-module (gnu packages glib) + #:use-module (gnu packages gnome) ;for libgudev #:use-module (gnu packages perl) #:use-module (gnu packages python) #:use-module (gnu packages linux) @@ -606,6 +607,7 @@ Escape key when Left Control is pressed and released on its own.") (inputs `(("glib" ,glib) ("gtk+" ,gtk+) + ("libgudev" ,libgudev) ("eudev" ,eudev) ("libxml2" ,libxml2))) (home-page "http://linuxwacom.sourceforge.net/") -- cgit v1.2.3 From ff5c33fe718dfdfcd1d9a16423426e4f456479a3 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 27 Oct 2015 10:08:02 +0100 Subject: gnu: gtkmm: Add dependency on glib:bin. * gnu/packages/gtk.scm (gtkmm)[native-inputs]: Add glib:bin. (gtkmm-2)[native-inputs]: New field. --- gnu/packages/gtk.scm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index 1bfd135dc7..2d35ac48b7 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -829,7 +829,8 @@ toolkit.") (base32 "0sxq700invkjpksn790gbnl8px8751kvgwn39663jx7dv89s37w2")))) (build-system gnu-build-system) - (native-inputs `(("pkg-config" ,pkg-config))) + (native-inputs `(("pkg-config" ,pkg-config) + ("glib" ,glib "bin"))) ;for 'glib-compile-resources' (propagated-inputs `(("pangomm" ,pangomm) ("cairomm" ,cairomm) @@ -862,6 +863,7 @@ extensive documentation, including API reference and a tutorial.") "1vpmjqv0aqb1ds0xi6nigxnhlr0c74090xzi15b92amlzkrjyfj4")))) (arguments '(#:configure-flags '("CPPFLAGS=-std=c++11"))) ; required by libsigc++ + (native-inputs `(("pkg-config" ,pkg-config))) (propagated-inputs `(("pangomm" ,pangomm) ("cairomm" ,cairomm) -- cgit v1.2.3 From c21317d4250b75ee702979c67a942a618bf29628 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 27 Oct 2015 10:19:46 +0100 Subject: gnu: mu: Adjust to new GLib version. * gnu/packages/mail.scm (%mu-gtester-patch): New variable. (mu)[source]: Use it. --- gnu/packages/mail.scm | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 25407b835a..9a597e2a4e 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -306,6 +306,15 @@ can read the same mailbox from multiple computers. It supports IMAP as REMOTE repository and Maildir/IMAP as LOCAL repository.") (license gpl2+))) +(define %mu-gtester-patch + ;; Ensure tests have unique names, to placate GLib 2.6's gtester. + (origin + (method url-fetch) + (uri "https://github.com/djcb/mu/commit/b44039ed.patch") + (sha256 + (base32 + "165hryqqhx3wah8a4f5jaq465azx1pm9r4jid7880pys9gd88qlv")))) + (define-public mu (package (name "mu") @@ -317,7 +326,8 @@ repository and Maildir/IMAP as LOCAL repository.") (file-name (string-append "mu-" version ".tar.gz")) (sha256 (base32 - "0wj33pma8xgjvn2akk7khzbycwn4c9sshxvzdph9dnpy7gyqxj51")))) + "0wj33pma8xgjvn2akk7khzbycwn4c9sshxvzdph9dnpy7gyqxj51")) + (patches (list %mu-gtester-patch)))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) -- cgit v1.2.3 From 61d5fd03bf2840849b82c7d9ed5eebc313e043b9 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 27 Oct 2015 11:12:32 +0100 Subject: gnu: crossmap: Update to 0.2.1. * gnu/packages/bioinformatics.scm (crossmap): Update to 0.2.1. --- gnu/packages/bioinformatics.scm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 48edd56854..4b7e70f072 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -805,15 +805,16 @@ time.") (define-public crossmap (package (name "crossmap") - (version "0.1.6") + (version "0.2.1") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/crossmap/CrossMap-" version ".tar.gz")) (sha256 (base32 - "163hi5gjgij6cndxlvbkp5jjwr0k4wbm9im6d2210278q7k9kpnp")) - ;; patch has been sent upstream already + "07y179f63d7qnzdvkqcziwk9bs3k4zhp81q392fp1hwszjdvy22f")) + ;; This patch has been sent upstream already and is available + ;; for download from Sourceforge, but it has not been merged. (patches (list (search-patch "crossmap-allow-system-pysam.patch"))) (modules '((guix build utils))) -- cgit v1.2.3 From 104c1986ac0c786440ece5d3fe88e9d501ba65e3 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 23 Oct 2015 14:16:27 +0200 Subject: gnu: subread: Use SSE optimizations on x86_64 only. * gnu/packages/bioinformatics.scm (subread)[arguments]: Override CC and CCFLAGS conditionally dependent on target system. --- gnu/packages/bioinformatics.scm | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 4b7e70f072..9765f1a178 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -2704,7 +2704,24 @@ sequences.") (build-system gnu-build-system) (arguments `(#:tests? #f ;no "check" target - #:make-flags '("-f" "Makefile.Linux") + ;; The CC and CCFLAGS variables are set to contain a lot of x86_64 + ;; optimizations by default, so we override these flags such that x86_64 + ;; flags are only added when the build target is an x86_64 system. + #:make-flags + (list (let ((system ,(or (%current-target-system) + (%current-system))) + (flags '("-ggdb" "-fomit-frame-pointer" + "-ffast-math" "-funroll-loops" + "-fmessage-length=0" + "-O9" "-Wall" "-DMAKE_FOR_EXON" + "-DMAKE_STANDALONE" + "-DSUBREAD_VERSION=\\\"${SUBREAD_VERSION}\\\"")) + (flags64 '("-mmmx" "-msse" "-msse2" "-msse3"))) + (if (string-prefix? "x86_64" system) + (string-append "CCFLAGS=" (string-join (append flags flags64))) + (string-append "CCFLAGS=" (string-join flags)))) + "-f" "Makefile.Linux" + "CC=gcc ${CCFLAGS}") #:phases (alist-cons-after 'unpack 'enter-dir -- cgit v1.2.3 From d8c317df261507ab6fe9ce58f0148ff71db3a24d Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Tue, 27 Oct 2015 20:01:35 +0800 Subject: gnu: ganv, pavucontrol, jalv: Fix build by compile with C++11. * gnu/packages/audio.scm (jalv)[arguments], gnu/packages/gtk.scm (ganv)[arguments], gnu/packages/music.scm (non-sequencer)[arguments], gnu/packages/pulseaudio.scm (pavucontrol)[arguments]: Set 'CXXFLAGS' to '-std=c++11'. --- gnu/packages/audio.scm | 11 ++++++++++- gnu/packages/gtk.scm | 4 +++- gnu/packages/music.scm | 8 ++++++++ gnu/packages/pulseaudio.scm | 2 ++ 4 files changed, 23 insertions(+), 2 deletions(-) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 7fa7f3dd24..ca3be8e424 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -746,7 +746,16 @@ synchronous execution of all clients, and low latency operation.") (base32 "1f1hcq74n3ziw8bk97mn5a1vgw028dxikv3fchaxd430pbbhqgl9")))) (build-system waf-build-system) - (arguments `(#:tests? #f)) ; no check target + (arguments + `(#:tests? #f ; no check target + #:phases + (modify-phases %standard-phases + (add-before + 'configure 'set-flags + (lambda _ + ;; Compile with C++11, required by gtkmm. + (setenv "CXXFLAGS" "-std=c++11") + #t))))) (inputs `(("lv2" ,lv2) ("lilv" ,lilv) diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index 2d35ac48b7..3ae2d70af9 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -253,8 +253,10 @@ functions which were removed.") (build-system waf-build-system) (arguments `(#:phases (alist-cons-before - 'configure 'set-ldflags + 'configure 'set-flags (lambda* (#:key outputs #:allow-other-keys) + ;; Compile with C++11, required by gtkmm. + (setenv "CXXFLAGS" "-std=c++11") ;; Allow 'bin/ganv_bench' to find libganv-1.so. (setenv "LDFLAGS" (string-append "-Wl,-rpath=" diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index c693f0faf0..5dcb5449a2 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -346,6 +346,14 @@ Guile.") (%current-system)))) '("--disable-sse") '())) + #:phases + (modify-phases %standard-phases + (add-before + 'configure 'set-flags + (lambda _ + ;; Compile with C++11, required by libsigc++. + (setenv "CXXFLAGS" "-std=c++11") + #t))) #:python ,python-2)) (inputs `(("jack" ,jack-1) diff --git a/gnu/packages/pulseaudio.scm b/gnu/packages/pulseaudio.scm index d832228278..2c283f0986 100644 --- a/gnu/packages/pulseaudio.scm +++ b/gnu/packages/pulseaudio.scm @@ -199,6 +199,8 @@ sound server.") (base32 "14486c6lmmirkhscbfygz114f6yzf97h35n3h3pdr27w4mdfmlmk")))) (build-system gnu-build-system) + (arguments + '(#:configure-flags '("CXXFLAGS=-std=c++11"))) ; required by gtkmm (inputs `(("libcanberra" ,libcanberra) ("gtkmm" ,gtkmm) -- cgit v1.2.3 From bce5ae1d2651b06bf1ce4f8ada324e6e22dd3168 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Tue, 27 Oct 2015 21:47:37 +0800 Subject: gnu: leptonica: Update to 1.72. * gnu/packages/image.scm (leptonica): Update to 1.72. --- gnu/packages/image.scm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index 5a86beea3f..c666674318 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -184,14 +184,14 @@ the W3C's XML-based Scaleable Vector Graphic (SVG) format.") (define-public leptonica (package (name "leptonica") - (version "1.71") + (version "1.72") (source (origin (method url-fetch) (uri (string-append "http://www.leptonica.com/source/leptonica-" version ".tar.gz")) (sha256 - (base32 "0j5qgrff6im5n9waflbi7w643q1p6mahyf2z35gb4vj9h5p76pfc")) + (base32 "0mhzvqs0im04y1cpcc1yma70hgdac1frf33h73m9z3356bfymmbr")) (modules '((guix build utils))) ;; zlib and openjpg should be under Libs, not Libs.private. See: ;; https://code.google.com/p/tesseract-ocr/issues/detail?id=1436 @@ -228,7 +228,8 @@ the W3C's XML-based Scaleable Vector Graphic (SVG) format.") (lambda _ (substitute* "prog/reg_wrapper.sh" ((" /bin/sh ") - (string-append " " (which "sh") " ")))))))) + (string-append " " (which "sh") " ")) + (("which gnuplot") (which "gnuplot")))))))) (home-page "http://www.leptonica.com/") (synopsis "Library and tools for image processing and analysis") (description -- cgit v1.2.3 From 9a9e143b7501eef808159d74932f30948820dfba Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Mon, 26 Oct 2015 14:04:56 -0500 Subject: gnu: guile-next: Update to 20151025.e5bccb6 * gnu/packages/guile.scm (guile-next): Update to 20151025.e5bccb6. --- gnu/packages/guile.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index e778bf0f6e..da75addc94 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -189,15 +189,15 @@ without requiring the source code to be rewritten.") (define-public guile-next (package (inherit guile-2.0) (name "guile-next") - (version "20150815.00884bb") + (version "20151025.e5bccb6") (source (origin (method git-fetch) (uri (git-reference (url "git://git.sv.gnu.org/guile.git") - (commit "00884bb79fff41fdf5f22f24a74e366a94a14c9b"))) + (commit "e5bccb6e5df3485152bc6501e1f36275e09c6352"))) (sha256 (base32 - "0qk8m9aq3i7pzw6npim58xmsvjqfz5kl1pkyb6b43awn2vydydi5")))) + "0z7ywryfcargrpz8hdrz6sfs06c2h2y9baqin3mbjvvg96a5bx47")))) (arguments (substitute-keyword-arguments `(;; Tests aren't passing for now. -- cgit v1.2.3 From c364a287ad6ed581af4de457e7d968d815578f39 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 22 Oct 2015 13:02:37 +0200 Subject: gnu: gcj: Run libjava tests. * gnu/packages/gcc.scm (gcj)[native-inputs]: Add dejagnu. [arguments]: Enable tests and set test target to "check-target-libjava". --- gnu/packages/gcc.scm | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index 7e4f18b887..419e2c9cbf 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès ;;; Copyright © 2014, 2015 Mark H Weaver -;;; Copyright © 2014 Ricardo Wurmus +;;; Copyright © 2014, 2015 Ricardo Wurmus ;;; Copyright © 2015 Andreas Enge ;;; ;;; This file is part of GNU Guix. @@ -27,6 +27,7 @@ #:use-module (gnu packages compression) #:use-module (gnu packages multiprecision) #:use-module (gnu packages texinfo) + #:use-module (gnu packages dejagnu) #:use-module (gnu packages doxygen) #:use-module (gnu packages xml) #:use-module (gnu packages docbook) @@ -460,6 +461,9 @@ using compilers other than GCC." ("javac.in" ,javac.in) ("ecj-bootstrap" ,ecj-bootstrap) ,@(package-inputs gcc))) + (native-inputs + `(("dejagnu" ,dejagnu) + ,@(package-native-inputs gcc))) ;; Suppress the separate "lib" output, because otherwise the ;; "lib" and "out" outputs would refer to each other, creating ;; a cyclic dependency. @@ -471,7 +475,9 @@ using compilers other than GCC." (ice-9 regex) (srfi srfi-1) (srfi srfi-26)) - ,@(package-arguments gcc)) + #:test-target "check-target-libjava" + ,@(package-arguments gcc)) + ((#:tests? _) #t) ((#:configure-flags flags) `(let ((ecj (assoc-ref %build-inputs "ecj-bootstrap"))) `("--enable-java-home" -- cgit v1.2.3 From 402d73bc75f8410d27c87217fb85a9223c27a5aa Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Tue, 20 Oct 2015 16:42:01 +0300 Subject: emacs: Add shell completions for 'guix challenge'. * emacs/guix-pcomplete.el (guix-pcomplete-complete-command-arg): Add "challenge" to complete package names for it. --- emacs/guix-pcomplete.el | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/emacs/guix-pcomplete.el b/emacs/guix-pcomplete.el index 4743be59bd..98f8efd1d2 100644 --- a/emacs/guix-pcomplete.el +++ b/emacs/guix-pcomplete.el @@ -209,8 +209,8 @@ group - the argument.") "Complete argument for guix COMMAND." (cond ((member command - '("archive" "build" "graph" "edit" "environment" - "lint" "refresh" "size")) + '("archive" "build" "challenge" "edit" "environment" + "graph" "lint" "refresh" "size")) (while t (pcomplete-here (guix-pcomplete-all-packages)))) (t (pcomplete-here* (pcomplete-entries))))) -- cgit v1.2.3 From e1d331863469d09d104f78839a03c0a736697cbc Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Tue, 20 Oct 2015 16:43:49 +0300 Subject: emacs: Add "Packages" option for 'guix challenge' popup. * emacs/guix-command.el (guix-command-rest-argument): Add "challenge". --- emacs/guix-command.el | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/emacs/guix-command.el b/emacs/guix-command.el index 1a42594b68..36ce7bcb09 100644 --- a/emacs/guix-command.el +++ b/emacs/guix-command.el @@ -364,8 +364,9 @@ to be modified." :name "-- " :char ?= :option? t args))) (let ((command (car commands))) (cond - ((member command '("archive" "build" "graph" "edit" - "environment" "lint" "refresh")) + ((member command + '("archive" "build" "challenge" "edit" "environment" + "graph" "lint" "refresh")) (argument :doc "Packages" :fun 'guix-read-package-names-string)) ((string= command "download") (argument :doc "URL")) -- cgit v1.2.3 From cfd56de3d85dd260e1d8fb03f55d4d0735492b16 Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Tue, 27 Oct 2015 17:51:03 +0300 Subject: emacs: Use 'switch-to-generation*'. This is a followup to commit 06d45f4566469364b4c1fe6d3c71ecf58f5d4838. * emacs/guix-base.el (guix-switch-to-generation): Replace 'switch-to-generation' with 'switch-to-generation*'. --- emacs/guix-base.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/emacs/guix-base.el b/emacs/guix-base.el index e64e375e33..2e99c545f0 100644 --- a/emacs/guix-base.el +++ b/emacs/guix-base.el @@ -1035,7 +1035,7 @@ Each element from GENERATIONS is a generation number." profile generation))) (guix-eval-in-repl (guix-make-guile-expression - 'switch-to-generation profile generation) + 'switch-to-generation* profile generation) operation-buffer))) (defun guix-package-source-path (package-id) -- cgit v1.2.3 From 7e6b490d041935d0f77de3cee0493707435a34d6 Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Mon, 26 Oct 2015 21:24:53 +0300 Subject: upstream: Add 'description' field to 'upstream-updater'. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Suggested by Ludovic Courtès . * guix/upstream.scm (): Use 'define-record-type*'. [description]: New field. (lookup-updater): Adjust accordingly. * guix/gnu-maintenance.scm (%gnu-updater): Likewise. * guix/import/cran.scm (%cran-updater): Likewise. * guix/import/elpa.scm (%elpa-updater): Likewise. * po/guix/POTFILES.in: Add guix/scripts/import/cran.scm and guix/gnu-maintenance.scm. --- guix/gnu-maintenance.scm | 8 +++++--- guix/import/cran.scm | 8 +++++--- guix/import/elpa.scm | 8 +++++--- guix/upstream.scm | 15 +++++++++------ po/guix/POTFILES.in | 2 ++ 5 files changed, 26 insertions(+), 15 deletions(-) diff --git a/guix/gnu-maintenance.scm b/guix/gnu-maintenance.scm index 5af1b884ce..e1455ccb98 100644 --- a/guix/gnu-maintenance.scm +++ b/guix/gnu-maintenance.scm @@ -413,8 +413,10 @@ for instance, whose releases are now uploaded to elpa.gnu.org." (gnu-package? package))) (define %gnu-updater - (upstream-updater 'gnu - non-emacs-gnu-package? - latest-release*)) + (upstream-updater + (name 'gnu) + (description "Updater for GNU packages") + (pred non-emacs-gnu-package?) + (latest latest-release*))) ;;; gnu-maintenance.scm ends here diff --git a/guix/import/cran.scm b/guix/import/cran.scm index 6284c9eef3..4b53d5e2c2 100644 --- a/guix/import/cran.scm +++ b/guix/import/cran.scm @@ -236,8 +236,10 @@ representation of the package page." (string-prefix? "r-" (package-name package))) (define %cran-updater - (upstream-updater 'cran - cran-package? - latest-release)) + (upstream-updater + (name 'cran) + (description "Updater for CRAN packages") + (pred cran-package?) + (latest latest-release))) ;;; cran.scm ends here diff --git a/guix/import/elpa.scm b/guix/import/elpa.scm index 37fc2b80fe..8c10668293 100644 --- a/guix/import/elpa.scm +++ b/guix/import/elpa.scm @@ -272,8 +272,10 @@ as \"debbugs\"." (define %elpa-updater ;; The ELPA updater. We restrict it to packages hosted on elpa.gnu.org ;; because for other repositories, we typically grab the source elsewhere. - (upstream-updater 'elpa - package-from-gnu.org? - latest-release)) + (upstream-updater + (name 'elpa) + (description "Updater for ELPA packages") + (pred package-from-gnu.org?) + (latest latest-release))) ;;; elpa.scm ends here diff --git a/guix/upstream.scm b/guix/upstream.scm index 9300113ac6..219ae0568c 100644 --- a/guix/upstream.scm +++ b/guix/upstream.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2010, 2011, 2012, 2013, 2014, 2015 Ludovic Courtès +;;; Copyright © 2015 Alex Kost ;;; ;;; This file is part of GNU Guix. ;;; @@ -45,6 +46,7 @@ upstream-updater upstream-updater? upstream-updater-name + upstream-updater-description upstream-updater-predicate upstream-updater-latest @@ -109,18 +111,19 @@ correspond to the same version." ;;; Auto-update. ;;; -(define-record-type - (upstream-updater name pred latest) +(define-record-type* + upstream-updater make-upstream-updater upstream-updater? - (name upstream-updater-name) - (pred upstream-updater-predicate) - (latest upstream-updater-latest)) + (name upstream-updater-name) + (description upstream-updater-description) + (pred upstream-updater-predicate) + (latest upstream-updater-latest)) (define (lookup-updater package updaters) "Return an updater among UPDATERS that matches PACKAGE, or #f if none of them matches." (any (match-lambda - (($ _ pred latest) + (($ _ _ pred latest) (and (pred package) latest))) updaters)) diff --git a/po/guix/POTFILES.in b/po/guix/POTFILES.in index 0c4e4f8443..41cf9ee0f4 100644 --- a/po/guix/POTFILES.in +++ b/po/guix/POTFILES.in @@ -12,6 +12,7 @@ guix/scripts/package.scm guix/scripts/gc.scm guix/scripts/hash.scm guix/scripts/import.scm +guix/scripts/import/cran.scm guix/scripts/import/elpa.scm guix/scripts/pull.scm guix/scripts/substitute.scm @@ -23,6 +24,7 @@ guix/scripts/edit.scm guix/scripts/size.scm guix/scripts/graph.scm guix/scripts/challenge.scm +guix/gnu-maintenance.scm guix/upstream.scm guix/ui.scm guix/http-client.scm -- cgit v1.2.3 From 6ffa706b6d80265b2fd244484b42492a71a2ef31 Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Thu, 22 Oct 2015 10:51:17 +0300 Subject: refresh: Add '--list-updaters' option. * guix/scripts/refresh.scm (list-updaters-and-exit): New procedure. (%options, show-help): Add '--list-updaters' option. * doc/guix.texi (Invoking guix refresh): Document it. --- doc/guix.texi | 4 ++++ guix/scripts/refresh.scm | 16 ++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/doc/guix.texi b/doc/guix.texi index 20bf28424e..1bb7125fa2 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -4305,6 +4305,10 @@ be used when passing @command{guix refresh} one or more package names: @table @code +@item --list-updaters +@itemx -L +List available updaters and exit (see @option{--type} above.) + @item --list-dependent @itemx -l List top-level dependent packages that would need to be rebuilt as a diff --git a/guix/scripts/refresh.scm b/guix/scripts/refresh.scm index 6f7ca4a41b..a66b3f9ea8 100644 --- a/guix/scripts/refresh.scm +++ b/guix/scripts/refresh.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2013, 2014, 2015 Ludovic Courtès ;;; Copyright © 2013 Nikita Karetnikov ;;; Copyright © 2014 Eric Bavier +;;; Copyright © 2015 Alex Kost ;;; ;;; This file is part of GNU Guix. ;;; @@ -69,6 +70,9 @@ (option '(#\t "type") #t #f (lambda (opt name arg result) (alist-cons 'updater (string->symbol arg) result))) + (option '(#\L "list-updaters") #f #f + (lambda args + (list-updaters-and-exit))) (option '(#\l "list-dependent") #f #f (lambda (opt name arg result) (alist-cons 'list-dependent? #t result))) @@ -112,6 +116,8 @@ specified with `--select'.\n")) (display (_ " -t, --type=UPDATER restrict to updates from UPDATER--e.g., 'gnu'")) (display (_ " + -L, --list-updaters list available updaters and exit")) + (display (_ " -l, --list-dependent list top-level dependent packages that would need to be rebuilt as a result of upgrading PACKAGE...")) (newline) @@ -149,6 +155,16 @@ specified with `--select'.\n")) (eq? name (upstream-updater-name updater))) %updaters)) +(define (list-updaters-and-exit) + "Display available updaters and exit." + (format #t (_ "Available updaters:~%")) + (for-each (lambda (updater) + (format #t "- ~a: ~a~%" + (upstream-updater-name updater) + (_ (upstream-updater-description updater)))) + %updaters) + (exit 0)) + (define* (update-package store package updaters #:key (key-download 'interactive)) "Update the source file that defines PACKAGE with the new version. -- cgit v1.2.3 From a10d3a687dc299e1e6c8b08ad97cb6de6a45612d Mon Sep 17 00:00:00 2001 From: Andreas Enge Date: Tue, 27 Oct 2015 11:06:37 +0100 Subject: gnu: qt: Update to 5.5.1. * gnu/packages/qt.scm (qt): Update to 5.5.1. --- gnu/packages/qt.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index ab390d37de..9813f5b0fd 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -95,7 +95,7 @@ X11 (yet).") (define-public qt (package (name "qt") - (version "5.5.0") + (version "5.5.1") (source (origin (method url-fetch) (uri @@ -107,7 +107,7 @@ X11 (yet).") version ".tar.xz")) (sha256 (base32 - "1by2l8wxbqwvs7anb5ggmqhn2cfmhyw3a23bp1yyd240rdpa38ky")) + "0615cn4n3n78v48lnmapqz2jizm2pzrjwvsjlnsf4awrsiiqw0kg")) (modules '((guix build utils))) (snippet '(begin -- cgit v1.2.3 From 85d4aeacc49f2793b7d67914fd4086e2d7b2e6f8 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 27 Oct 2015 20:43:11 +0100 Subject: gnu: Add python-debian. * gnu/packages/python.scm (python-debian, python2-debian): New variables. --- gnu/packages/python.scm | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 23150a3dfe..8fc87599fd 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -5777,3 +5777,43 @@ Python's @code{ctypes} foreign function interface (FFI).") (define-public python2-file (package-with-python2 python-file)) + +(define-public python-debian + (package + (name "python-debian") + (version "0.1.23") + (source + (origin + (method url-fetch) + (uri (string-append + "https://pypi.python.org/packages/source/p/python-debian/python-debian-" + version ".tar.gz")) + (sha256 + (base32 + "193faznwnjc3n5991wyzim6h9gyq1zxifmfrnpm3avgkh7ahyynh")))) + (build-system python-build-system) + (inputs + `(("python-six" ,python-six))) + (native-inputs + `(("python-setuptools" ,python-setuptools))) + (home-page "http://packages.debian.org/sid/python-debian") + (synopsis "Debian package related modules") + (description + "This package provides Python modules that abstract many formats of +Debian-related files, such as: + +@itemize +@item Debtags information; +@item @file{debian/changelog} files; +@item packages files, pdiffs; +@item control files of single or multiple RFC822-style paragraphs---e.g. + @file{debian/control}, @file{.changes}, @file{.dsc}; +@item Raw @file{.deb} and @file{.ar} files, with (read-only) access to + contained files and meta-information. +@end itemize\n") + + ;; Modules are either GPLv2+ or GPLv3+. + (license gpl3+))) + +(define-public python2-debian + (package-with-python2 python-debian)) -- cgit v1.2.3 From 816a653884558feab29ccf470c972262708309f9 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 27 Oct 2015 20:53:48 +0100 Subject: gnu: Add python-chardet. * gnu/packages/python.scm (python-chardet, python2-chardet): New variables. --- gnu/packages/python.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 8fc87599fd..45fd417e86 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -5817,3 +5817,30 @@ Debian-related files, such as: (define-public python2-debian (package-with-python2 python-debian)) + +(define-public python-chardet + (package + (name "python-chardet") + (version "2.3.0") + (source + (origin + (method url-fetch) + (uri (string-append + "https://pypi.python.org/packages/source/c/chardet/chardet-" + version + ".tar.gz")) + (sha256 + (base32 + "1ak87ikcw34fivcgiz2xvi938dmclh078az65l9x3rmgljrkhgp5")))) + (build-system python-build-system) + (native-inputs + `(("python-setuptools" ,python-setuptools))) + (home-page "https://github.com/chardet/chardet") + (synopsis "Universal encoding detector for Python 2 and 3") + (description + "This package provides @code{chardet}, a Python module that can +automatically detect a wide range of file encodings.") + (license lgpl2.1+))) + +(define-public python2-chardet + (package-with-python2 python-chardet)) -- cgit v1.2.3 From 08dcff47445b4029f7f4b4a42750b29a2a184131 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 27 Oct 2015 21:01:55 +0100 Subject: gnu: Add Diffoscope. * gnu/packages/package-management.scm (diffoscope): New variable. --- gnu/packages/package-management.scm | 54 +++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 4e69d6de59..65464f7691 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -356,3 +356,57 @@ transactions from C or Python.") ;; The whole is GPLv2+; librpm itself is dual-licensed LGPLv2+ | GPLv2+. (license gpl2+))) +(define-public diffoscope + (package + (name "diffoscope") + (version "34") + (source (origin + (method git-fetch) + (uri (git-reference + (url + "https://anonscm.debian.org/cgit/reproducible/diffoscope.git") + (commit version))) + (sha256 + (base32 + "1g8b7bpkmns0355gkr3a244affwx4xzqwahwsl6ivw4z0qv7dih8")) + (file-name (string-append name "-" version "-checkout")))) + (build-system python-build-system) + (arguments + `(#:python ,python-2 + #:phases (modify-phases %standard-phases + (add-before 'build 'disable-egg-zipping + (lambda _ + ;; Leave the .egg file uncompressed. + (let ((port (open-file "setup.cfg" "a"))) + (display "\n[easy_install]\nzip_ok = 0\n" + port) + (close-port port) + #t))) + (add-before 'build 'dependency-on-rpm + (lambda _ + (substitute* "setup.py" + ;; Somehow this requirement is reported as not met, + ;; even though rpm.py is in the search path. So + ;; delete it. + (("'rpm-python',") "")) + #t))) + ;; FIXME: Some obscure test failures. + #:tests? #f)) + (inputs `(("rpm" ,rpm) ;for rpm-python + ("python-file" ,python2-file) + ("python-debian" ,python2-debian) + ("python-libarchive-c" ,python2-libarchive-c) + ("python-tlsh" ,python2-tlsh) + + ;; Below are modules used for tests. + ("python-pytest" ,python2-pytest) + ("python-chardet" ,python2-chardet))) + (native-inputs `(("python-setuptools" ,python2-setuptools))) + (home-page "http://diffoscope.org/") + (synopsis "Compare files, archives, and directories in depth") + (description + "Diffoscope tries to get to the bottom of what makes files or directories +different. It recursively unpacks archives of many kinds and transforms +various binary formats into more human readable forms to compare them. It can +compare two tarballs, ISO images, or PDFs just as easily.") + (license gpl3+))) -- cgit v1.2.3 From c448bf7443dcfbc44f525526a43ac52754a0cd87 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Wed, 19 Aug 2015 16:30:02 -0400 Subject: system: grub: On MIPS, the linux image name is vmlinuz, not bzImage. * gnu/system/grub.scm (grub-configuration-file): Add 'linux-image-name' internal procedure. Use it from 'entry->gexp'. --- gnu/system/grub.scm | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/gnu/system/grub.scm b/gnu/system/grub.scm index e49b6dbe54..7f85adf065 100644 --- a/gnu/system/grub.scm +++ b/gnu/system/grub.scm @@ -206,6 +206,11 @@ fi~%" "Return the GRUB configuration file corresponding to CONFIG, a object. OLD-ENTRIES is taken to be a list of menu entries corresponding to old generations of the system." + (define linux-image-name + (if (string-prefix? "mips" system) + "vmlinuz" + "bzImage")) + (define all-entries (append entries (grub-configuration-menu-entries config))) @@ -214,13 +219,14 @@ entries corresponding to old generations of the system." (($ label linux arguments initrd) #~(format port "menuentry ~s { # Set 'root' to the partition that contains the kernel. - search --file --set ~a/bzImage~% + search --file --set ~a/~a~% - linux ~a/bzImage ~a + linux ~a/~a ~a initrd ~a }~%" #$label - #$linux #$linux (string-join (list #$@arguments)) + #$linux #$linux-image-name + #$linux #$linux-image-name (string-join (list #$@arguments)) #$initrd)))) (mlet %store-monad ((sugar (eye-candy config #~port))) -- cgit v1.2.3 From 6b173ac0041539989f1c892b35ea8817fda18ad4 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Sun, 9 Aug 2015 18:45:49 -0400 Subject: system: grub: Adjust eye-candy to work on non-Intel systems. * gnu/system/grub.scm (eye-candy): Accept additional 'system' argument. Add local 'setup-gfxterm-body' variable. Replace the 'load_video' grub function with 'setup_gfxterm', which includes everything in the 'if loadfont' form on Intel systems, but is empty on non-Intel. (grub-configuration-file): Pass 'system' to 'eye-candy. --- gnu/system/grub.scm | 45 ++++++++++++++++++++++++++++----------------- 1 file changed, 28 insertions(+), 17 deletions(-) diff --git a/gnu/system/grub.scm b/gnu/system/grub.scm index 7f85adf065..e0717cc59b 100644 --- a/gnu/system/grub.scm +++ b/gnu/system/grub.scm @@ -30,6 +30,7 @@ #:autoload (gnu packages imagemagick) (imagemagick) #:autoload (gnu packages compression) (gzip) #:use-module (ice-9 match) + #:use-module (ice-9 regex) #:use-module (srfi srfi-1) #:export (grub-image grub-image? @@ -152,10 +153,26 @@ WIDTH/HEIGHT, or #f if none was found." (with-monad %store-monad (return #f))))) -(define (eye-candy config port) +(define (eye-candy config system port) "Return in %STORE-MONAD a gexp that writes to PORT (a port-valued gexp) the 'grub.cfg' part concerned with graphics mode, background images, colors, and all that." + (define setup-gfxterm-body + ;; Intel systems need to be switched into graphics mode, whereas most + ;; other modern architectures have no other mode and therefore don't need + ;; to be switched. + (if (string-match "^(x86_64|i[3-6]86)-" system) + " + set gfxmode=640x480 + insmod vbe + insmod vga + insmod video_bochs + insmod video_cirrus + insmod gfxterm + terminal_output gfxterm +" + "")) + (define (theme-colors type) (let* ((theme (grub-configuration-theme config)) (colors (type theme))) @@ -163,22 +180,15 @@ all that." (symbol->string (assoc-ref colors 'bg))))) (mlet* %store-monad ((image (grub-background-image config))) - (return (and image #~(format #$port " -function load_video { - insmod vbe - insmod vga - insmod video_bochs - insmod video_cirrus -} + (return (and image + #~(format #$port " +function setup_gfxterm {~a} # Set 'root' to the partition that contains /gnu/store. search --file --set ~a/share/grub/unicode.pf2 if loadfont ~a/share/grub/unicode.pf2; then - set gfxmode=640x480 - load_video - insmod gfxterm - terminal_output gfxterm + setup_gfxterm fi insmod png @@ -189,10 +199,11 @@ else set menu_color_normal=cyan/blue set menu_color_highlight=white/blue fi~%" - #$grub #$grub - #$image - #$(theme-colors grub-theme-color-normal) - #$(theme-colors grub-theme-color-highlight)))))) + #$setup-gfxterm-body + #$grub #$grub + #$image + #$(theme-colors grub-theme-color-normal) + #$(theme-colors grub-theme-color-highlight)))))) ;;; @@ -229,7 +240,7 @@ entries corresponding to old generations of the system." #$linux #$linux-image-name (string-join (list #$@arguments)) #$initrd)))) - (mlet %store-monad ((sugar (eye-candy config #~port))) + (mlet %store-monad ((sugar (eye-candy config system #~port))) (define builder #~(call-with-output-file #$output (lambda (port) -- cgit v1.2.3 From 9f4a2496117aa17c6badcead56aa6efce6a97cbd Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Thu, 27 Aug 2015 18:37:30 -0400 Subject: linux-initrd: Use pata_acpi, pata_atiixp, and isci modules only on Intel. * gnu/system/linux-initrd.scm (base-initrd)[linux-modules]: Include "pata_acpi", "pata_atiixp", and "isci" on Intel systems only. --- gnu/system/linux-initrd.scm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gnu/system/linux-initrd.scm b/gnu/system/linux-initrd.scm index 519373fe34..6130e020c8 100644 --- a/gnu/system/linux-initrd.scm +++ b/gnu/system/linux-initrd.scm @@ -178,11 +178,13 @@ loaded at boot time in the order in which they appear." (define linux-modules ;; Modules added to the initrd and loaded from the initrd. `("ahci" ;for SATA controllers - "pata_acpi" "pata_atiixp" ;for ATA controllers - "isci" ;for SAS controllers like Intel C602 "usb-storage" "uas" ;for the installation image etc. "usbkbd" "usbhid" ;USB keyboards, for debugging "dm-crypt" "xts" ;for encrypted root partitions + ,@(if (string-match "^(x86_64|i[3-6]86)-" (%current-system)) + '("pata_acpi" "pata_atiixp" ;for ATA controllers + "isci") ;for SAS controllers like Intel C602 + '()) ,@(if (or virtio? qemu-networking?) virtio-modules '()) -- cgit v1.2.3 From b1b9e5c8d243d37efc07568a9b96e061cf24c264 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Tue, 27 Oct 2015 20:19:01 -0400 Subject: gnu: linux-libre: Update to 4.2.5. * gnu/packages/linux.scm (linux-libre): Update to 4.2.5. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index f6f2555b1c..790a500ba8 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -210,7 +210,7 @@ for SYSTEM, or #f if there is no configuration for SYSTEM." #f))) (define-public linux-libre - (let* ((version "4.2.4") + (let* ((version "4.2.5") (build-phase '(lambda* (#:key system inputs #:allow-other-keys #:rest args) ;; Apply the neat patch. @@ -283,7 +283,7 @@ for SYSTEM, or #f if there is no configuration for SYSTEM." (uri (linux-libre-urls version)) (sha256 (base32 - "11r9yhi4c2zwfb8i21zk014gcm1kvnabq410wjy6g6a015d5v37w")))) + "13ar9sghm2g5w2km9x2d07q3lh81rz286d6slklv56qanm24chzx")))) (build-system gnu-build-system) (native-inputs `(("perl" ,perl) ("bc" ,bc) -- cgit v1.2.3 From 6c8d70b0b69bb842b7b5ddd8e6f354962b0a3b29 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Sun, 23 Aug 2015 13:47:13 -0400 Subject: gnu: linux-libre: Add 'supported-systems' field: Intel only for now. * gnu/packages/linux.scm (linux-libre)[supported-systems]: New field. --- gnu/packages/linux.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 790a500ba8..8b7fe35309 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -285,6 +285,7 @@ for SYSTEM, or #f if there is no configuration for SYSTEM." (base32 "13ar9sghm2g5w2km9x2d07q3lh81rz286d6slklv56qanm24chzx")))) (build-system gnu-build-system) + (supported-systems '("x86_64-linux" "i686-linux")) (native-inputs `(("perl" ,perl) ("bc" ,bc) ("module-init-tools" ,module-init-tools) -- cgit v1.2.3 From 726029b2bac3584d7d13e577d7321ed84c80aebd Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Thu, 6 Aug 2015 18:15:51 -0400 Subject: gnu: linux-libre: Add case for ARCH=mips. * gnu/packages/linux.scm (linux-libre)[build-phase]: When setting ARCH, add a case for MIPS. --- gnu/packages/linux.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 8b7fe35309..d66fac5ceb 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -220,6 +220,7 @@ for SYSTEM, or #f if there is no configuration for SYSTEM." (let ((arch (car (string-split system #\-)))) (setenv "ARCH" (cond ((string=? arch "i686") "i386") + ((string=? arch "mips64el") "mips") (else arch))) (format #t "`ARCH' set to `~a'~%" (getenv "ARCH"))) -- cgit v1.2.3 From 44a88ce49e6a6a4595a9ea6e02ea59be89614eae Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Sun, 23 Aug 2015 22:54:59 -0400 Subject: gnu: linux-libre: On MIPS, the linux image name is vmlinuz, not bzImage. * gnu/packages/linux.scm (linux-libre)[install-phase]: Add vmlinuz to the list of file names to be copied. --- gnu/packages/linux.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index d66fac5ceb..24fed02dca 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -267,7 +267,7 @@ for SYSTEM, or #f if there is no configuration for SYSTEM." (for-each (lambda (file) (copy-file file (string-append out "/" (basename file)))) - (find-files "." "^(bzImage|System\\.map)$")) + (find-files "." "^(bzImage|vmlinuz|System\\.map)$")) (copy-file ".config" (string-append out "/config")) (zero? (system* "make" (string-append "DEPMOD=" mit "/sbin/depmod") -- cgit v1.2.3 From 0431ed00e4556bb2f96a6d0974e833821419026b Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Sun, 13 Sep 2015 11:00:53 -0400 Subject: doc: Add texinfo to the requirements when building from git. * doc/contributing.texi (Building from Git): Add GNU Texinfo to the list of additional requirements. --- doc/contributing.texi | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/contributing.texi b/doc/contributing.texi index d80c0d5fdf..f855daf2da 100644 --- a/doc/contributing.texi +++ b/doc/contributing.texi @@ -27,6 +27,7 @@ the installation instructions (@pxref{Requirements}). @item @url{http://gnu.org/software/autoconf/, GNU Autoconf}; @item @url{http://gnu.org/software/automake/, GNU Automake}; @item @url{http://gnu.org/software/gettext/, GNU Gettext}; +@item @url{http://gnu.org/software/texinfo/, GNU Texinfo}; @item @url{http://www.graphviz.org/, Graphviz}; @item @url{http://www.gnu.org/software/help2man/, GNU Help2man (optional)}. @end itemize -- cgit v1.2.3 From 04e0eac1ed80c0ecba5a21658e951959b5e3a059 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Sat, 15 Aug 2015 01:22:06 -0400 Subject: gnu: grub: Use modify-phases and other minor cleanups. * gnu/packages/grub.scm (grub)[arguments]: Use modify-phases. Return #t from 'patch-stuff' phase. Add 'patch-stuff' phase after 'unpack' instead of before 'patch-source-shebangs'. [inputs]: Add comment noting that 'fuse' would be a desirable input. --- gnu/packages/grub.scm | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/gnu/packages/grub.scm b/gnu/packages/grub.scm index b1da394835..4a7dca8945 100644 --- a/gnu/packages/grub.scm +++ b/gnu/packages/grub.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013, 2014 Ludovic Courtès +;;; Copyright © 2015 Mark H Weaver ;;; ;;; This file is part of GNU Guix. ;;; @@ -84,25 +85,28 @@ (build-system gnu-build-system) (arguments '(#:configure-flags '("--disable-werror") - #:phases (alist-cons-before - 'patch-source-shebangs 'patch-stuff - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "grub-core/Makefile.in" - (("/bin/sh") (which "sh"))) + #:phases (modify-phases %standard-phases + (add-after + 'unpack 'patch-stuff + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "grub-core/Makefile.in" + (("/bin/sh") (which "sh"))) - ;; Make the font visible. - (copy-file (assoc-ref inputs "unifont") "unifont.bdf.gz") - (system* "gunzip" "unifont.bdf.gz") + ;; Make the font visible. + (copy-file (assoc-ref inputs "unifont") "unifont.bdf.gz") + (system* "gunzip" "unifont.bdf.gz") - ;; TODO: Re-enable this test when we have Parted. - (substitute* "tests/partmap_test.in" - (("set -e") "exit 77"))) - %standard-phases))) + ;; TODO: Re-enable this test when we have Parted. + (substitute* "tests/partmap_test.in" + (("set -e") "exit 77")) + + #t))))) (inputs `(;; ("lvm2" ,lvm2) ("gettext" ,gnu-gettext) ("freetype" ,freetype) ;; ("libusb" ,libusb) + ;; ("fuse" ,fuse) ("ncurses" ,ncurses))) (native-inputs `(("unifont" ,unifont) -- cgit v1.2.3 From 58301666dd3e372ee05aa23e4043781c8d24be97 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Wed, 19 Aug 2015 13:57:30 -0400 Subject: gnu: grub: Install documentation. * gnu/packages/grub.scm (grub)[native-inputs]: Add help2man and texinfo. --- gnu/packages/grub.scm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/gnu/packages/grub.scm b/gnu/packages/grub.scm index 4a7dca8945..7875a64186 100644 --- a/gnu/packages/grub.scm +++ b/gnu/packages/grub.scm @@ -29,6 +29,8 @@ #:use-module (gnu packages fontutils) #:use-module (gnu packages linux) #:use-module (gnu packages qemu) + #:use-module (gnu packages man) + #:use-module (gnu packages texinfo) #:use-module (gnu packages ncurses) #:use-module (gnu packages cdrom) #:use-module (srfi srfi-1)) @@ -112,6 +114,8 @@ `(("unifont" ,unifont) ("bison" ,bison) ("flex" ,flex) + ("texinfo" ,texinfo) + ("help2man" ,help2man) ;; Dependencies for the test suite. The "real" QEMU is needed here, ;; because several targets are used. -- cgit v1.2.3 From f151298fa00c9532d29cdc9eb4930fb2bfc23c06 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 28 Oct 2015 11:45:27 +0100 Subject: substitute: 'http-multiple-get' follows 'fold' style. * guix/scripts/substitute.scm (http-multiple-get): Add 'seed' parameter. Call PROC in 'fold' style. (fetch-narinfos)[handle-narinfo-response]: Adjust accordingly. Update 'http-multiple-get' call accordingly. --- guix/scripts/substitute.scm | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/guix/scripts/substitute.scm b/guix/scripts/substitute.scm index 8967fa062e..0377bb6abe 100755 --- a/guix/scripts/substitute.scm +++ b/guix/scripts/substitute.scm @@ -474,12 +474,13 @@ may be #f, in which case it indicates that PATH is unavailable at CACHE-URL." ".narinfo"))) (build-request (string->uri url) #:method 'GET))) -(define (http-multiple-get base-url requests proc) +(define (http-multiple-get base-url proc seed requests) "Send all of REQUESTS to the server at BASE-URL. Call PROC for each -response, passing it the request object, the response, and a port from which -to read the response body. Return the list of results." +response, passing it the request object, the response, a port from which to +read the response body, and the previous result, starting with SEED, à la +'fold'. Return the final result." (let connect ((requests requests) - (result '())) + (result seed)) ;; (format (current-error-port) "connecting (~a requests left)..." ;; (length requests)) (let ((p (open-socket-for-uri base-url))) @@ -497,7 +498,7 @@ to read the response body. Return the list of results." ((head tail ...) (let* ((resp (read-response p)) (body (response-body-port resp)) - (result (cons (proc head resp body) result))) + (result (proc head resp body result))) ;; The server can choose to stop responding at any time, in which ;; case we have to try again. Check whether that is the case. ;; Note that even upon "Connection: close", we can read from BODY. @@ -536,7 +537,7 @@ if file doesn't exist, and the narinfo otherwise." url (* 100. (/ done (length paths)))) (set! done (+ 1 done))))) - (define (handle-narinfo-response request response port) + (define (handle-narinfo-response request response port result) (let ((len (response-content-length response))) ;; Make sure to read no more than LEN bytes since subsequent bytes may ;; belong to the next response. @@ -545,7 +546,7 @@ if file doesn't exist, and the narinfo otherwise." (let ((narinfo (read-narinfo port url #:size len))) (cache-narinfo! url (narinfo-path narinfo) narinfo) (update-progress!) - narinfo)) + (cons narinfo result))) ((404) ; failure (let* ((path (uri-path (request-uri request))) (hash-part (string-drop-right path 8))) ; drop ".narinfo" @@ -555,13 +556,13 @@ if file doesn't exist, and the narinfo otherwise." (cache-narinfo! url (find (cut string-contains <> hash-part) paths) #f) - (update-progress!)) - #f) + (update-progress!) + result)) (else ; transient failure (if len (get-bytevector-n port len) (read-to-eof port)) - #f)))) + result)))) (define cache-info (download-cache-info url)) @@ -574,8 +575,9 @@ if file doesn't exist, and the narinfo otherwise." ((http) (let ((requests (map (cut narinfo-request url <>) paths))) (update-progress!) - (let ((result (http-multiple-get url requests - handle-narinfo-response))) + (let ((result (http-multiple-get url + handle-narinfo-response '() + requests))) (newline (current-error-port)) result))) ((file #f) -- cgit v1.2.3 From a89dde1ed89a53f33556ab12ec73bafe495a796c Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 28 Oct 2015 11:48:27 +0100 Subject: substitute: 'lookup-narinfos' returns exactly a list of narinfos. * guix/scripts/substitute.scm (lookup-narinfos): Filter out #f values from CACHED, such that the end result is exactly a list of narinfos, not interspersed with #f. * guix/scripts/challenge.scm (discrepancies): Assume REMOTE is a list of narinfos. --- guix/scripts/challenge.scm | 6 ++---- guix/scripts/substitute.scm | 4 +++- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/guix/scripts/challenge.scm b/guix/scripts/challenge.scm index 19a9b061b8..4a0c865b07 100644 --- a/guix/scripts/challenge.scm +++ b/guix/scripts/challenge.scm @@ -125,10 +125,8 @@ taken since we do not import the archives." servers)) ;; No 'assert-valid-narinfo' on purpose. (narinfos -> (fold (lambda (narinfo vhash) - (if narinfo - (vhash-cons (narinfo-path narinfo) narinfo - vhash) - vhash)) + (vhash-cons (narinfo-path narinfo) narinfo + vhash)) vlist-null remote))) (return (filter-map (lambda (item local) diff --git a/guix/scripts/substitute.scm b/guix/scripts/substitute.scm index 0377bb6abe..34fee5863f 100755 --- a/guix/scripts/substitute.scm +++ b/guix/scripts/substitute.scm @@ -598,7 +598,9 @@ information is available locally." (let-values (((valid? value) (cached-narinfo cache path))) (if valid? - (values (cons value cached) missing) + (if value + (values (cons value cached) missing) + (values cached missing)) (values cached (cons path missing))))) '() '() -- cgit v1.2.3 From 55b2fc18772a512a2227757423e55dc6c7523113 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 28 Oct 2015 10:11:43 +0100 Subject: substitute: Honor all the specified server URLs. * guix/scripts/substitute.scm (lookup-narinfos/diverse): New procedure. (lookup-narinfo): Use it. (process-query): Change #:cache-url to #:cache-urls. [valid?]: Remove 'narinfo?' check, which is no longer necessary. Use 'lookup-narinfos/diverse' instead of 'lookup-narinfos'. (process-substitution): Change #:cache-url to #:cache-urls. (%cache-url): Rename to... (%cache-urls): ... this. Turn into a list. (guix-substitute): Remove 'getaddrinfo' test with early exit. Adjust calls to 'process-query' and 'process-substitution'. * tests/substitute.scm: Change '%cache-url' to '%cache-urls'. --- guix/scripts/substitute.scm | 83 ++++++++++++++++++++++++--------------------- tests/substitute.scm | 4 +-- 2 files changed, 46 insertions(+), 41 deletions(-) diff --git a/guix/scripts/substitute.scm b/guix/scripts/substitute.scm index 34fee5863f..964df9422c 100755 --- a/guix/scripts/substitute.scm +++ b/guix/scripts/substitute.scm @@ -72,6 +72,7 @@ assert-valid-narinfo lookup-narinfos + lookup-narinfos/diverse read-narinfo write-narinfo guix-substitute)) @@ -610,11 +611,32 @@ information is available locally." (let ((missing (fetch-narinfos cache missing))) (append cached (or missing '())))))) -(define (lookup-narinfo cache path) - "Return the narinfo for PATH in CACHE, or #f when no substitute for PATH was -found." - (match (lookup-narinfos cache (list path)) - ((answer) answer))) +(define (lookup-narinfos/diverse caches paths) + "Look up narinfos for PATHS on all of CACHES, a list of URLS, in that order. +That is, when a cache lacks a narinfo, look it up in the next cache, and so +on. Return a list of narinfos for PATHS or a subset thereof." + (let loop ((caches caches) + (paths paths) + (result '())) + (match paths + (() ;we're done + result) + (_ + (match caches + ((cache rest ...) + (let* ((narinfos (lookup-narinfos cache paths)) + (hits (map narinfo-path narinfos)) + (missing (lset-difference string=? paths hits))) ;XXX: perf + (loop rest missing (append narinfos result)))) + (() ;that's it + result)))))) + +(define (lookup-narinfo caches path) + "Return the narinfo for PATH in CACHES, or #f when no substitute for PATH +was found." + (match (lookup-narinfos/diverse caches (list path)) + ((answer) answer) + (_ #f))) (define (remove-expired-cached-narinfos directory) "Remove expired narinfo entries from DIRECTORY. The sole purpose of this @@ -756,34 +778,34 @@ expected by the daemon." (or (narinfo-size narinfo) 0))) (define* (process-query command - #:key cache-url acl) + #:key cache-urls acl) "Reply to COMMAND, a query as written by the daemon to this process's standard input. Use ACL as the access-control list against which to check authorized substitutes." (define (valid? obj) - (and (narinfo? obj) (valid-narinfo? obj acl))) + (valid-narinfo? obj acl)) (match (string-tokenize command) (("have" paths ..1) - ;; Return the subset of PATHS available in CACHE-URL. - (let ((substitutable (lookup-narinfos cache-url paths))) + ;; Return the subset of PATHS available in CACHE-URLS. + (let ((substitutable (lookup-narinfos/diverse cache-urls paths))) (for-each (lambda (narinfo) (format #t "~a~%" (narinfo-path narinfo))) (filter valid? substitutable)) (newline))) (("info" paths ..1) - ;; Reply info about PATHS if it's in CACHE-URL. - (let ((substitutable (lookup-narinfos cache-url paths))) + ;; Reply info about PATHS if it's in CACHE-URLS. + (let ((substitutable (lookup-narinfos/diverse cache-urls paths))) (for-each display-narinfo-data (filter valid? substitutable)) (newline))) (wtf (error "unknown `--query' command" wtf)))) (define* (process-substitution store-item destination - #:key cache-url acl) - "Substitute STORE-ITEM (a store file name) from CACHE-URL, and write it to + #:key cache-urls acl) + "Substitute STORE-ITEM (a store file name) from CACHE-URLS, and write it to DESTINATION as a nar file. Verify the substitute against ACL." - (let* ((narinfo (lookup-narinfo cache-url store-item)) + (let* ((narinfo (lookup-narinfo cache-urls store-item)) (uri (narinfo-uri narinfo))) ;; Make sure it is signed and everything. (assert-valid-narinfo narinfo acl) @@ -880,21 +902,16 @@ found." b first))) -(define %cache-url +(define %cache-urls (match (and=> (or* (find-daemon-option "untrusted-substitute-urls") ;client (find-daemon-option "substitute-urls")) ;admin string-tokenize) - ((url) - url) - ((head tail ..1) - ;; Currently we don't handle multiple substitute URLs. - (warning (_ "these substitute URLs will not be used:~{ ~a~}~%") - tail) - head) + ((urls ...) + urls) (#f ;; This can only happen when this script is not invoked by the ;; daemon. - "http://hydra.gnu.org"))) + '("http://hydra.gnu.org")))) (define (guix-substitute . args) "Implement the build daemon's substituter protocol." @@ -905,20 +922,8 @@ found." ;; Starting from commit 22144afa in Nix, we are allowed to bail out directly ;; when we know we cannot substitute, but we must emit a newline on stdout ;; when everything is alright. - (let ((uri (string->uri %cache-url))) - (case (uri-scheme uri) - ((http) - ;; Exit gracefully if there's no network access. - (let ((host (uri-host uri))) - (catch 'getaddrinfo-error - (lambda () - (getaddrinfo host)) - (lambda (key error) - (warning (_ "failed to look up host '~a' (~a), \ -substituter disabled~%") - host (gai-strerror error)) - (exit 0))))) - (else #t))) + (when (null? %cache-urls) + (exit 0)) ;; Say hello (see above.) (newline) @@ -933,13 +938,13 @@ substituter disabled~%") (or (eof-object? command) (begin (process-query command - #:cache-url %cache-url + #:cache-urls %cache-urls #:acl acl) (loop (read-line))))))) (("--substitute" store-path destination) ;; Download STORE-PATH and add store it as a Nar in file DESTINATION. (process-substitution store-path destination - #:cache-url %cache-url + #:cache-urls %cache-urls #:acl (current-acl))) (("--version") (show-version-and-exit "guix substitute")) diff --git a/tests/substitute.scm b/tests/substitute.scm index 85698127fa..9d907e7abf 100644 --- a/tests/substitute.scm +++ b/tests/substitute.scm @@ -167,8 +167,8 @@ a file for NARINFO." (call-with-narinfo narinfo (lambda () body ...))) ;; Transmit these options to 'guix substitute'. -(set! (@@ (guix scripts substitute) %cache-url) - (getenv "GUIX_BINARY_SUBSTITUTE_URL")) +(set! (@@ (guix scripts substitute) %cache-urls) + (list (getenv "GUIX_BINARY_SUBSTITUTE_URL"))) (test-equal "query narinfo without signature" "" ; not substitutable -- cgit v1.2.3 From 5c7bdc9a7fb2ed4f963dbacc7c1bee8cc9223303 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 28 Oct 2015 11:59:42 +0100 Subject: gnu: python-debian: Avoid @itemize in description. * gnu/packages/python.scm (python-debian): Use @enumerate instead of @itemize. --- gnu/packages/python.scm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 45fd417e86..08f0146641 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -5799,10 +5799,12 @@ Python's @code{ctypes} foreign function interface (FFI).") (home-page "http://packages.debian.org/sid/python-debian") (synopsis "Debian package related modules") (description + ;; XXX: Use @enumerate instead of @itemize to work around + ;; . "This package provides Python modules that abstract many formats of Debian-related files, such as: -@itemize +@enumerate @item Debtags information; @item @file{debian/changelog} files; @item packages files, pdiffs; @@ -5810,7 +5812,7 @@ Debian-related files, such as: @file{debian/control}, @file{.changes}, @file{.dsc}; @item Raw @file{.deb} and @file{.ar} files, with (read-only) access to contained files and meta-information. -@end itemize\n") +@end enumerate\n") ;; Modules are either GPLv2+ or GPLv3+. (license gpl3+))) -- cgit v1.2.3 From 34a1783fc1498d7150210da22dd7804d288438b3 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Mon, 26 Oct 2015 18:09:28 -0400 Subject: scripts: build: Add --file option. * guix/scripts/build.scm (show-help): Add help text for --file option. (%options): Add --file option. (options/resolve-packages): Handle 'file' options. * tests/guix-build.sh: Add tests. * doc/guix.texi ("invoking guix build"): Add doc. --- doc/guix.texi | 13 +++++++++++++ guix/scripts/build.scm | 45 ++++++++++++++++++++++++++++----------------- tests/guix-build.sh | 27 +++++++++++++++++++++++++++ 3 files changed, 68 insertions(+), 17 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 1bb7125fa2..9878b93ddb 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -3615,6 +3615,19 @@ The @var{options} may be zero or more of the following: @table @code +@item --file=@var{file} +@itemx -f @var{file} + +Build the package or derivation that the code within @var{file} +evaluates to. + +As an example, @var{file} might contain a package definition like this +(@pxref{Defining Packages}): + +@example +@verbatiminclude package-hello.scm +@end example + @item --expression=@var{expr} @itemx -e @var{expr} Build the package or derivation @var{expr} evaluates to. diff --git a/guix/scripts/build.scm b/guix/scripts/build.scm index a357cf8aa4..ee7e5b958c 100644 --- a/guix/scripts/build.scm +++ b/guix/scripts/build.scm @@ -290,6 +290,9 @@ Build the given PACKAGE-OR-DERIVATION and return their output paths.\n")) (display (_ " -e, --expression=EXPR build the package or derivation EXPR evaluates to")) (display (_ " + -f, --file=FILE build the package or derivation that the code within + FILE evaluates to")) + (display (_ " -S, --source build the packages' source derivations")) (display (_ " --sources[=TYPE] build source derivations; TYPE may optionally be one @@ -359,6 +362,9 @@ must be one of 'package', 'all', or 'transitive'~%") (option '(#\e "expression") #t #f (lambda (opt name arg result) (alist-cons 'expression arg result))) + (option '(#\f "file") #t #f + (lambda (opt name arg result) + (alist-cons 'file arg result))) (option '(#\n "dry-run") #f #f (lambda (opt name arg result) (alist-cons 'dry-run? #t result))) @@ -422,29 +428,34 @@ packages." (define system (or (assoc-ref opts 'system) (%current-system))) + (define (object->argument obj) + (match obj + ((? package? p) + `(argument . ,p)) + ((? procedure? proc) + (let ((drv (run-with-store store + (mbegin %store-monad + (set-guile-for-build (default-guile)) + (proc)) + #:system system))) + `(argument . ,drv))) + ((? gexp? gexp) + (let ((drv (run-with-store store + (mbegin %store-monad + (set-guile-for-build (default-guile)) + (gexp->derivation "gexp" gexp + #:system system))))) + `(argument . ,drv))))) + (map (match-lambda (('argument . (? string? spec)) (if (store-path? spec) `(argument . ,spec) `(argument . ,(specification->package spec)))) + (('file . file) + (object->argument (load* file (make-user-module '())))) (('expression . str) - (match (read/eval str) - ((? package? p) - `(argument . ,p)) - ((? procedure? proc) - (let ((drv (run-with-store store - (mbegin %store-monad - (set-guile-for-build (default-guile)) - (proc)) - #:system system))) - `(argument . ,drv))) - ((? gexp? gexp) - (let ((drv (run-with-store store - (mbegin %store-monad - (set-guile-for-build (default-guile)) - (gexp->derivation "gexp" gexp - #:system system))))) - `(argument . ,drv))))) + (object->argument (read/eval str))) (opt opt)) opts)) diff --git a/tests/guix-build.sh b/tests/guix-build.sh index a72ce0911d..f7fb3c5b64 100644 --- a/tests/guix-build.sh +++ b/tests/guix-build.sh @@ -167,6 +167,33 @@ guix build -e "(begin guix build -e '#~(mkdir #$output)' -d guix build -e '#~(mkdir #$output)' -d | grep 'gexp\.drv' +# Building from a package file. +cat > "$module_dir/package.scm"< "$module_dir/proc.scm"<derivation "test" + (gexp (mkdir (ungexp output))))) +EOF +guix build --file="$module_dir/proc.scm" --dry-run + +# Building from a gexp file. +cat > "$module_dir/gexp.scm"< Date: Wed, 28 Oct 2015 20:48:45 +0800 Subject: gnu: leptonica: Disable failing tests. * gnu/packages/image.scm (leptonica)[arguments]: Add 'disable-failing-tests' phase. --- gnu/packages/image.scm | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index c666674318..b8936c222e 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -229,7 +229,14 @@ the W3C's XML-based Scaleable Vector Graphic (SVG) format.") (substitute* "prog/reg_wrapper.sh" ((" /bin/sh ") (string-append " " (which "sh") " ")) - (("which gnuplot") (which "gnuplot")))))))) + (("which gnuplot") (which "gnuplot"))))) + (add-before + 'check 'disable-failing-tests + ;; XXX: 2 of 9 tests from webpio_reg fails. + (lambda _ + (substitute* "prog/webpio_reg.c" + ((".*DoWebpTest2.* 90.*") "") + ((".*DoWebpTest2.* 100.*") ""))))))) (home-page "http://www.leptonica.com/") (synopsis "Library and tools for image processing and analysis") (description -- cgit v1.2.3 From fb4bf72be3fbc23bca35ba4b842b7e1517ef0e3a Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 28 Oct 2015 15:20:06 +0100 Subject: store: Use the daemon's substitute URLs by default. Partly fixes . * guix/store.scm (set-build-options): Change #:substitute-urls to default to #f. Send the 'substitute-urls' pair only if SUBSTITUTE-URLS is true. * guix/scripts/build.scm (set-build-options-from-command-line): Do not default to %DEFAULT-SUBSTITUTE-URLS for #:substitute-urls. * guix/scripts/size.scm (%default-options): Remove 'substitute-urls'. --- guix/scripts/build.scm | 5 +++-- guix/scripts/size.scm | 3 +-- guix/store.scm | 15 +++++++++------ 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/guix/scripts/build.scm b/guix/scripts/build.scm index ee7e5b958c..644ffe8d6e 100644 --- a/guix/scripts/build.scm +++ b/guix/scripts/build.scm @@ -185,8 +185,7 @@ options handled by 'set-build-options-from-command-line', and listed in #:max-build-jobs (or (assoc-ref opts 'max-jobs) 1) #:fallback? (assoc-ref opts 'fallback?) #:use-substitutes? (assoc-ref opts 'substitutes?) - #:substitute-urls (or (assoc-ref opts 'substitute-urls) - %default-substitute-urls) + #:substitute-urls (assoc-ref opts 'substitute-urls) #:use-build-hook? (assoc-ref opts 'build-hook?) #:max-silent-time (assoc-ref opts 'max-silent-time) #:timeout (assoc-ref opts 'timeout) @@ -512,6 +511,8 @@ arguments with packages that use the specified source." (urls (map (cut string-append <> "/log") (if (assoc-ref opts 'substitutes?) (or (assoc-ref opts 'substitute-urls) + ;; XXX: This does not necessarily match the + ;; daemon's substitute URLs. %default-substitute-urls) '()))) (roots (filter-map (match-lambda diff --git a/guix/scripts/size.scm b/guix/scripts/size.scm index 44ff92655b..e999cce1fd 100644 --- a/guix/scripts/size.scm +++ b/guix/scripts/size.scm @@ -252,8 +252,7 @@ Report the size of PACKAGE and its dependencies.\n")) (show-version-and-exit "guix size"))))) (define %default-options - `((system . ,(%current-system)) - (substitute-urls . ,%default-substitute-urls))) + `((system . ,(%current-system)))) ;;; diff --git a/guix/store.scm b/guix/store.scm index c4e3573711..8413d1f452 100644 --- a/guix/store.scm +++ b/guix/store.scm @@ -501,11 +501,11 @@ encoding conversion errors." (build-cores (current-processor-count)) (use-substitutes? #t) - ;; Client-provided substitute URLs. For - ;; unprivileged clients, these are considered - ;; "untrusted"; for "trusted" users, they override - ;; the daemon's settings. - (substitute-urls %default-substitute-urls)) + ;; Client-provided substitute URLs. If it is #f, + ;; the daemon's settings are used. Otherwise, it + ;; overrides the daemons settings; see 'guix + ;; substitute'. + (substitute-urls #f)) ;; Must be called after `open-connection'. (define socket @@ -533,7 +533,10 @@ encoding conversion errors." (let ((pairs `(,@(if timeout `(("build-timeout" . ,(number->string timeout))) '()) - ("substitute-urls" . ,(string-join substitute-urls))))) + ,@(if substitute-urls + `(("substitute-urls" + . ,(string-join substitute-urls))) + '())))) (send (string-pairs pairs)))) (let loop ((done? (process-stderr server))) (or done? (process-stderr server))))) -- cgit v1.2.3 From 35b50a753563c03a57d98761d7ebff12efdd5c3d Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 28 Oct 2015 15:30:31 +0100 Subject: container: Remove unnecessary CLONE_CHILD_* flags. * gnu/build/linux-container.scm (namespaces->bit-mask): Remove CLONE_CHILD_CLEARTID and CLONE_CHILD_SETTID, which are unneeded. Discussed at . --- gnu/build/linux-container.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/build/linux-container.scm b/gnu/build/linux-container.scm index e911494058..556422bc38 100644 --- a/gnu/build/linux-container.scm +++ b/gnu/build/linux-container.scm @@ -165,7 +165,7 @@ host user identifiers to map into the user namespace." "Return the number suitable for the 'flags' argument of 'clone' that corresponds to the symbols in NAMESPACES." ;; Use the same flags as fork(3) in addition to the namespace flags. - (apply logior SIGCHLD CLONE_CHILD_CLEARTID CLONE_CHILD_SETTID + (apply logior SIGCHLD (map (match-lambda ('mnt CLONE_NEWNS) ('uts CLONE_NEWUTS) -- cgit v1.2.3 From fd688c82bf4ee543dbb5f55bf3913668c4bf4483 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 28 Oct 2015 15:53:17 +0100 Subject: ui: Add 'make-regexp*'. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes . Reported by Jan Synáček . * guix/ui.scm (make-regexp*): New procedure. * guix/scripts/package.scm (options->installable, guix-package): Use it when processing user-provided regexps. --- guix/scripts/package.scm | 10 +++++----- guix/ui.scm | 11 +++++++++++ 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm index d8689490b7..adbc4a1828 100644 --- a/guix/scripts/package.scm +++ b/guix/scripts/package.scm @@ -435,14 +435,14 @@ return the new list of manifest entries." (define upgrade-regexps (filter-map (match-lambda (('upgrade . regexp) - (make-regexp (or regexp ""))) + (make-regexp* (or regexp ""))) (_ #f)) opts)) (define do-not-upgrade-regexps (filter-map (match-lambda (('do-not-upgrade . regexp) - (make-regexp regexp)) + (make-regexp* regexp)) (_ #f)) opts)) @@ -736,7 +736,7 @@ more information.~%")) #t) (('list-installed regexp) - (let* ((regexp (and regexp (make-regexp regexp))) + (let* ((regexp (and regexp (make-regexp* regexp))) (manifest (profile-manifest profile)) (installed (manifest-entries manifest))) (leave-on-EPIPE @@ -752,7 +752,7 @@ more information.~%")) #t)) (('list-available regexp) - (let* ((regexp (and regexp (make-regexp regexp))) + (let* ((regexp (and regexp (make-regexp* regexp))) (available (fold-packages (lambda (p r) (let ((n (package-name p))) @@ -778,7 +778,7 @@ more information.~%")) #t)) (('search regexp) - (let ((regexp (make-regexp regexp regexp/icase))) + (let ((regexp (make-regexp* regexp regexp/icase))) (leave-on-EPIPE (for-each (cute package->recutils <> (current-output-port)) (find-packages-by-description regexp))) diff --git a/guix/ui.scm b/guix/ui.scm index 72208e7de7..312c2a01a1 100644 --- a/guix/ui.scm +++ b/guix/ui.scm @@ -61,6 +61,7 @@ warn-about-load-error show-version-and-exit show-bug-report-information + make-regexp* string->number* size->number show-derivation-outputs @@ -350,6 +351,16 @@ General help using GNU software: ")) (list (strerror (car errno)) target) (list errno))))))) +(define (make-regexp* regexp . flags) + "Like 'make-regexp' but error out if REGEXP is invalid, reporting the error +nicely." + (catch 'regular-expression-syntax + (lambda () + (apply make-regexp regexp flags)) + (lambda (key proc message . rest) + (leave (_ "'~a' is not a valid regular expression: ~a~%") + regexp message)))) + (define (string->number* str) "Like `string->number', but error out with an error message on failure." (or (string->number str) -- cgit v1.2.3 From 855038b294853e4e81a6a2430c33f42495d98b6b Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 28 Oct 2015 15:55:10 +0100 Subject: tests: Print the mounts visible in the container. * tests/guix-environment-container.sh: Print the content of $tmpdir/mounts. --- tests/guix-environment-container.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/guix-environment-container.sh b/tests/guix-environment-container.sh index 9c3e93dd8c..141fd160a7 100644 --- a/tests/guix-environment-container.sh +++ b/tests/guix-environment-container.sh @@ -66,6 +66,7 @@ mount_test_code=" guix environment --container --ad-hoc --bootstrap guile-bootstrap \ -- guile -c "$mount_test_code" > $tmpdir/mounts +cat "$tmpdir/mounts" test `wc -l < $tmpdir/mounts` -eq 3 grep -e "$PWD$" $tmpdir/mounts # current directory -- cgit v1.2.3 From fb8d1be8e125722226fe3d2ae7dedb6ba7015290 Mon Sep 17 00:00:00 2001 From: Andreas Enge Date: Wed, 28 Oct 2015 15:56:22 +0100 Subject: gnu: pari-gp: Add X11 input. * gnu/packages/algebra.scm (pari-gp)[inputs]: Add libx11, which enables plotting functions. --- gnu/packages/algebra.scm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm index 2f52f5545c..daa5ddd072 100644 --- a/gnu/packages/algebra.scm +++ b/gnu/packages/algebra.scm @@ -26,6 +26,7 @@ #:use-module (gnu packages perl) #:use-module (gnu packages readline) #:use-module (gnu packages flex) + #:use-module (gnu packages xorg) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) @@ -125,6 +126,7 @@ solve the shortest vector problem.") "0k1qqagfl6zn7gvwmsqffj6g9yrzqvszwh2mblhmxpjlw1pigfh8")))) (build-system gnu-build-system) (inputs `(("gmp" ,gmp) + ("libx11" ,libx11) ("perl" ,perl) ("readline" ,readline))) (arguments -- cgit v1.2.3 From 9a067efdb2076293e505c29a51a9819ff025b056 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 28 Oct 2015 14:39:13 +0100 Subject: gnu: pbtranscript-tofu: Update to 2.2.3. * gnu/packages/bioinformatics.scm (pbtranscript-tofu): Update to 2.2.3. [source]: Remove bundled Cython sources in a snippet. Replace ".tar.gz" extension in file-name field with "-checkout". [arguments]: Replace "enter-directory-and-clean-up" phase with "enter-directory" phase, and add "patch-setuppy" phase. [inputs]: Add python2-h5py. Move python2-cython ... [native-inputs]: ... to this field. --- gnu/packages/bioinformatics.scm | 55 +++++++++++++++++++++-------------------- 1 file changed, 28 insertions(+), 27 deletions(-) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 9765f1a178..fdb42562e8 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -1839,19 +1839,25 @@ the phenotype as it models the data.") (license license:asl2.0))) (define-public pbtranscript-tofu - (let ((commit "c7bbd5472")) + (let ((commit "8f5467fe6")) (package (name "pbtranscript-tofu") - (version (string-append "0.4.1." commit)) + (version (string-append "2.2.3." commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/PacificBiosciences/cDNA_primer.git") (commit commit))) - (file-name (string-append name "-" version ".tar.gz")) + (file-name (string-append name "-" version "-checkout")) (sha256 (base32 - "148xkzi689c49g6fdhckp6mnmj2qhjdf1j4wifm6ja7ij95d7fxx")))) + "1lgnpi35ihay42qx0b6yl3kkgra723i413j33kvs0kvs61h82w0f")) + (modules '((guix build utils))) + (snippet + '(begin + ;; remove bundled Cython sources + (delete-file "pbtranscript-tofu/pbtranscript/Cython-0.20.1.tar.gz") + #t)))) (build-system python-build-system) (arguments `(#:python ,python-2 @@ -1861,34 +1867,29 @@ the phenotype as it models the data.") #:configure-flags '("--single-version-externally-managed" "--record=pbtranscript-tofu.txt") #:phases - (alist-cons-after - 'unpack 'enter-directory-and-clean-up - (lambda _ - (chdir "pbtranscript-tofu/pbtranscript/") - ;; Delete clutter - (delete-file-recursively "dist/") - (delete-file-recursively "build/") - (delete-file-recursively "setuptools_cython-0.2.1-py2.6.egg/") - (delete-file-recursively "pbtools.pbtranscript.egg-info") - (delete-file "Cython-0.20.1.tar.gz") - (delete-file "setuptools_cython-0.2.1-py2.7.egg") - (delete-file "setuptools_cython-0.2.1.tar.gz") - (delete-file "setup.cfg") - (for-each delete-file - (find-files "." "\\.so$")) - ;; files should be writable for install phase - (for-each (lambda (f) (chmod f #o755)) - (find-files "." "\\.py$"))) - %standard-phases))) + (modify-phases %standard-phases + (add-after 'unpack 'enter-directory + (lambda _ + (chdir "pbtranscript-tofu/pbtranscript/") + #t)) + ;; With setuptools version 18.0 and later this setup.py hack causes + ;; a build error, so we disable it. + (add-after 'enter-directory 'patch-setuppy + (lambda _ + (substitute* "setup.py" + (("if 'setuptools.extension' in sys.modules:") + "if False:")) + #t))))) (inputs - `(("python-cython" ,python2-cython) - ("python-numpy" ,python2-numpy) + `(("python-numpy" ,python2-numpy) ("python-bx-python" ,python2-bx-python) ("python-networkx" ,python2-networkx) ("python-scipy" ,python2-scipy) - ("python-pbcore" ,python2-pbcore))) + ("python-pbcore" ,python2-pbcore) + ("python-h5py" ,python2-h5py))) (native-inputs - `(("python-nose" ,python2-nose) + `(("python-cython" ,python2-cython) + ("python-nose" ,python2-nose) ("python-setuptools" ,python2-setuptools))) (home-page "https://github.com/PacificBiosciences/cDNA_primer") (synopsis "Analyze transcriptome data generated with the Iso-Seq protocol") -- cgit v1.2.3 From 7191adc5cf864d75debcc618937b7a6292491445 Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Tue, 27 Oct 2015 21:13:05 +0300 Subject: refresh: Support comma-separated updater types. * guix/scripts/refresh.scm (%options): Handle comma-separated types for '--type' option. (guix-refresh): Adjust accordingly. (show-help): Likewise. * doc/guix.texi (Invoking guix refresh): Document it. --- doc/guix.texi | 6 +++--- guix/scripts/refresh.scm | 18 +++++++++++------- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 9878b93ddb..4fbe057614 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -4276,8 +4276,8 @@ inconvenient. @item --type=@var{updater} @itemx -t @var{updater} -Select only packages handled by @var{updater}. Currently, @var{updater} -may be one of: +Select only packages handled by @var{updater} (may be a comma-separated +list of updaters). Currently, @var{updater} may be one of: @table @code @item gnu @@ -4292,7 +4292,7 @@ For instance, the following commands only checks for updates of Emacs packages hosted at @code{elpa.gnu.org} and updates of CRAN packages: @example -$ guix refresh -t elpa -t cran +$ guix refresh --type=elpa,cran gnu/packages/statistics.scm:819:13: r-testthat would be upgraded from 0.10.0 to 0.11.0 gnu/packages/emacs.scm:856:13: emacs-auctex would be upgraded from 11.88.6 to 11.88.9 @end example diff --git a/guix/scripts/refresh.scm b/guix/scripts/refresh.scm index a66b3f9ea8..04f6b76edc 100644 --- a/guix/scripts/refresh.scm +++ b/guix/scripts/refresh.scm @@ -69,10 +69,13 @@ arg))))) (option '(#\t "type") #t #f (lambda (opt name arg result) - (alist-cons 'updater (string->symbol arg) result))) + (let* ((not-comma (char-set-complement (char-set #\,))) + (names (map string->symbol + (string-tokenize arg not-comma)))) + (alist-cons 'updaters names result)))) (option '(#\L "list-updaters") #f #f (lambda args - (list-updaters-and-exit))) + (list-updaters-and-exit))) (option '(#\l "list-dependent") #f #f (lambda (opt name arg result) (alist-cons 'list-dependent? #t result))) @@ -114,7 +117,8 @@ specified with `--select'.\n")) -s, --select=SUBSET select all the packages in SUBSET, one of `core' or `non-core'")) (display (_ " - -t, --type=UPDATER restrict to updates from UPDATER--e.g., 'gnu'")) + -t, --type=UPDATER,... restrict to updates from the specified updaters + (e.g., 'gnu')")) (display (_ " -L, --list-updaters list available updaters and exit")) (display (_ " @@ -209,15 +213,15 @@ downloaded and authenticated; not updating~%") (define (options->updaters opts) ;; Return the list of updaters to use. (match (filter-map (match-lambda - (('updater . name) - (lookup-updater name)) + (('updaters . names) + (map lookup-updater names)) (_ #f)) opts) (() ;; Use the default updaters. %updaters) - (lst - lst))) + (lists + (concatenate lists)))) (define (keep-newest package lst) ;; If a newer version of PACKAGE is already in LST, return LST; otherwise -- cgit v1.2.3 From b0b9f6e0a62852a0b4d0a86d9e8427dd7d36a714 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 28 Oct 2015 18:15:49 +0100 Subject: services: 'guix-configuration' has a 'substitute-urls' field. * gnu/services/base.scm ()[substitute-urls]: New field. (guix-dmd-service): Honor it. * doc/guix.texi (Base Services): Document it. --- doc/guix.texi | 3 +++ gnu/services/base.scm | 6 +++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/doc/guix.texi b/doc/guix.texi index 4fbe057614..0a3827911b 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -6217,6 +6217,9 @@ Whether to authorize the substitute key for @code{hydra.gnu.org} @item @code{use-substitutes?} (default: @code{#t}) Whether to use substitutes. +@item @code{substitute-urls} (default: @var{%default-substitute-urls}) +The list of URLs where to look for substitutes by default. + @item @code{extra-options} (default: @code{'()}) List of extra command-line options for @command{guix-daemon}. diff --git a/gnu/services/base.scm b/gnu/services/base.scm index 336cc4dec9..618cef8a98 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -751,6 +751,8 @@ failed to register hydra.gnu.org public key: ~a~%" status)))))))) (default #t)) (use-substitutes? guix-configuration-use-substitutes? ;Boolean (default #t)) + (substitute-urls guix-configuration-substitute-urls ;list of strings + (default %default-substitute-urls)) (extra-options guix-configuration-extra-options ;list of strings (default '())) (lsof guix-configuration-lsof ; @@ -765,7 +767,8 @@ failed to register hydra.gnu.org public key: ~a~%" status)))))))) "Return a for the Guix daemon service with CONFIG." (match config (($ guix build-group build-accounts authorize-key? - use-substitutes? extra-options lsof lsh) + use-substitutes? substitute-urls extra-options + lsof lsh) (list (dmd-service (documentation "Run the Guix daemon.") (provision '(guix-daemon)) @@ -777,6 +780,7 @@ failed to register hydra.gnu.org public key: ~a~%" status)))))))) #$@(if use-substitutes? '() '("--no-substitutes")) + "--substitute-urls" #$(string-join substitute-urls) #$@extra-options) ;; Add 'lsof' (for the GC) and 'lsh' (for offloading) to the -- cgit v1.2.3 From cd6f6c22fb581e5ef2aa88f5e9c14a4c54a071c3 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 28 Oct 2015 21:36:07 +0100 Subject: services: Add 'modify-services'. * gnu/services.scm (%modify-service, modify-services): New macros. * gnu/services/base.scm (mingetty-service-type, guix-service-type): Export. * emacs/guix-devel.el (guix-devel-keywords): Add 'modify-services'. Ditto in 'guix-devel-scheme-indent' call. * doc/guix.texi (Using the Configuration System): Give an example of 'modify-services'. (Service Reference): Document it. --- .dir-locals.el | 1 + doc/guix.texi | 73 ++++++++++++++++++++++++++++++++++++++++++++++----- emacs/guix-devel.el | 2 ++ gnu/services.scm | 42 +++++++++++++++++++++++++++++ gnu/services/base.scm | 2 ++ 5 files changed, 114 insertions(+), 6 deletions(-) diff --git a/.dir-locals.el b/.dir-locals.el index 54d5bdaefc..0873c1d747 100644 --- a/.dir-locals.el +++ b/.dir-locals.el @@ -23,6 +23,7 @@ (eval . (put 'lambda* 'scheme-indent-function 1)) (eval . (put 'substitute* 'scheme-indent-function 1)) (eval . (put 'modify-phases 'scheme-indent-function 1)) + (eval . (put 'modify-services 'scheme-indent-function 1)) (eval . (put 'with-directory-excursion 'scheme-indent-function 1)) (eval . (put 'package 'scheme-indent-function 0)) (eval . (put 'origin 'scheme-indent-function 0)) diff --git a/doc/guix.texi b/doc/guix.texi index 0a3827911b..01e28041f2 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -5363,16 +5363,40 @@ The @code{services} field lists @dfn{system services} to be made available when the system starts (@pxref{Services}). The @code{operating-system} declaration above specifies that, in addition to the basic services, we want the @command{lshd} secure shell -daemon listening on port 2222, and allowing remote @code{root} logins -(@pxref{Invoking lshd,,, lsh, GNU lsh Manual}). Under the hood, +daemon listening on port 2222 (@pxref{Networking Services, +@code{lsh-service}}). Under the hood, @code{lsh-service} arranges so that @code{lshd} is started with the right command-line options, possibly with supporting configuration files -generated as needed (@pxref{Defining Services}). @xref{operating-system -Reference}, for details about the available @code{operating-system} -fields. +generated as needed (@pxref{Defining Services}). + +@cindex customization, of services +@findex modify-services +Occasionally, instead of using the base services as is, you will want to +customize them. For instance, to change the configuration of +@code{guix-daemon} and Mingetty (the console log-in), you may write the +following instead of @var{%base-services}: + +@lisp +(modify-services %base-services + (guix-service-type config => + (guix-configuration + (inherit config) + (use-substitutes? #f) + (extra-options '("--gc-keep-outputs")))) + (mingetty-service-type config => + (mingetty-configuration + (inherit config) + (motd (plain-file "motd" "Hi there!"))))) +@end lisp + +@noindent +The effect here is to change the options passed to @command{guix-daemon} +when it is started, as well as the ``message of the day'' that appears +when logging in at the console. @xref{Service Reference, +@code{modify-services}}, for more on that. The configuration for a typical ``desktop'' usage, with the X11 display -server, a desktop environment, network management, an SSH server, and +server, a desktop environment, network management, power management, and more, would look like this: @lisp @@ -5382,6 +5406,8 @@ more, would look like this: @xref{Desktop Services}, for the exact list of services provided by @var{%desktop-services}. @xref{X.509 Certificates}, for background information about the @code{nss-certs} package that is used here. +@xref{operating-system Reference}, for details about all the available +@code{operating-system} fields. Assuming the above snippet is stored in the @file{my-system-config.scm} file, the @command{guix system reconfigure my-system-config.scm} command @@ -7539,6 +7565,41 @@ Here is an example of how a service is created and manipulated: @result{} #t @end example +The @code{modify-services} form provides a handy way to change the +parameters of some of the services of a list such as +@var{%base-services} (@pxref{Base Services, @code{%base-services}}). Of +course, you could always use standard list combinators such as +@code{map} and @code{fold} to do that (@pxref{SRFI-1, List Library,, +guile, GNU Guile Reference Manual}); @code{modify-services} simply +provides a more concise form for this common pattern. + +@deffn {Scheme Syntax} modify-services @var{services} @ + (@var{type} @var{variable} => @var{body}) @dots{} + +Modify the services listed in @var{services} according to the given +clauses. Each clause has the form: + +@example +(@var{type} @var{variable} => @var{body}) +@end example + +where @var{type} is a service type, such as @var{guix-service-type}, and +@var{variable} is an identifier that is bound within @var{body} to the +value of the service of that @var{type}. @xref{Using the Configuration +System}, for an example. + +This is a shorthand for: + +@example +(map (lambda (service) @dots{}) @var{services}) +@end example +@end deffn + +Next comes the programming interface for service types. This is +something you want to know when writing new service definitions, but not +necessarily when simply looking for ways to customize your +@code{operating-system} declaration. + @deftp {Data Type} service-type @cindex service type This is the representation of a @dfn{service type} (@pxref{Service Types diff --git a/emacs/guix-devel.el b/emacs/guix-devel.el index 170ce1ad54..8eb030942c 100644 --- a/emacs/guix-devel.el +++ b/emacs/guix-devel.el @@ -198,6 +198,7 @@ to find 'modify-phases' keywords." "mbegin" "mlet" "mlet*" + "modify-services" "munless" "mwhen" "run-with-state" @@ -288,6 +289,7 @@ Each rule should have a form (SYMBOL VALUE). See `put' for details." (mlet 2) (mlet* 2) (modify-phases 1) + (modify-services 1) (munless 1) (mwhen 1) (operating-system 0) diff --git a/gnu/services.scm b/gnu/services.scm index d0fe0ade17..818252386f 100644 --- a/gnu/services.scm +++ b/gnu/services.scm @@ -48,6 +48,7 @@ service-kind service-parameters + modify-services service-back-edges fold-services @@ -133,6 +134,47 @@ (parameters service-parameters)) +(define-syntax %modify-service + (syntax-rules (=>) + ((_ service) + service) + ((_ svc (kind param => exp ...) clauses ...) + (if (eq? (service-kind svc) kind) + (let ((param (service-parameters svc))) + (service (service-kind svc) + (begin exp ...))) + (%modify-service svc clauses ...))))) + +(define-syntax modify-services + (syntax-rules () + "Modify the services listed in SERVICES according to CLAUSES. Each clause +must have the form: + + (TYPE VARIABLE => BODY) + +where TYPE is a service type, such as 'guix-service-type', and VARIABLE is an +identifier that is bound within BODY to the value of the service of that +TYPE. Consider this example: + + (modify-services %base-services + (guix-service-type config => + (guix-configuration + (inherit config) + (use-substitutes? #f) + (extra-options '(\"--gc-keep-derivations\")))) + (mingetty-service-type config => + (mingetty-configuration + (inherit config) + (motd (plain-file \"motd\" \"Hi there!\"))))) + +It changes the configuration of the GUIX-SERVICE-TYPE instance, and that of +all the MINGETTY-SERVICE-TYPE instances. + +This is a shorthand for (map (lambda (svc) ...) %base-services)." + ((_ services clauses ...) + (map (lambda (service) + (%modify-service service clauses ...)) + services)))) ;;; diff --git a/gnu/services/base.scm b/gnu/services/base.scm index 618cef8a98..b8e8ccd5f1 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -57,6 +57,7 @@ mingetty-configuration mingetty-configuration? mingetty-service + mingetty-service-type %nscd-default-caches %nscd-default-configuration @@ -74,6 +75,7 @@ guix-configuration guix-configuration? guix-service + guix-service-type %base-services)) -- cgit v1.2.3 From 1fda9b1f46fb5fabbc08153b2fdf19c31f873e6c Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Thu, 29 Oct 2015 00:07:20 +0300 Subject: gnu: magit: Update to 2.3.0. * gnu/packages/emacs.scm (magit): Update to 2.3.0. --- gnu/packages/emacs.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 6416b00ee0..ae6d0db612 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -316,7 +316,7 @@ configuration files, such as .gitattributes, .gitignore, and .git/config.") (define-public magit (package (name "magit") - (version "2.2.2") + (version "2.3.0") (source (origin (method url-fetch) (uri (string-append @@ -324,7 +324,7 @@ configuration files, such as .gitattributes, .gitignore, and .git/config.") version "/" name "-" version ".tar.gz")) (sha256 (base32 - "1imkj4prprnivhbpdn1mdpiryxkckzy5hbnqaahv7gixwac1irh8")))) + "0bi0vqp9802f00vnii3x80iqycji20bw4pjysy6al0d86mkggjx5")))) (build-system gnu-build-system) (native-inputs `(("texinfo" ,texinfo) ("emacs" ,emacs-no-x))) -- cgit v1.2.3 From b7f16845c837e8f640b20df6c9cdeb11690df2f8 Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Thu, 29 Oct 2015 00:08:03 +0300 Subject: gnu: magit-svn: Update to 2.1.1. * gnu/packages/emacs.scm (magit-svn): Update to 2.1.1. --- gnu/packages/emacs.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index ae6d0db612..f8be743ce5 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -372,7 +372,7 @@ operations.") (define-public magit-svn (package (name "magit-svn") - (version "2.1.0") + (version "2.1.1") (source (origin (method url-fetch) (uri (string-append @@ -381,7 +381,7 @@ operations.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "09sz93g7x7g9q75jsw8bdh7yr4jr1igfb4fpg5i302a7l2ahxfr8")))) + "04y88j7q9h8xjbx5dbick6n5nr1522sn9i1znp0qwk3vjb4b5mzz")))) (build-system trivial-build-system) (native-inputs `(("emacs" ,emacs-no-x) ("tar" ,tar) -- cgit v1.2.3 From a0d3eff99c956847e092450a7e6b874313c69c82 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 28 Oct 2015 23:55:27 +0200 Subject: gnu: bluez: Update to 5.35. * gnu/packages/linux.scm (bluez): Update to 5.35. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 24fed02dca..9b0af0d507 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -2357,7 +2357,7 @@ applications.") (define-public bluez (package (name "bluez") - (version "5.30") + (version "5.35") (source (origin (method url-fetch) (uri (string-append @@ -2365,7 +2365,7 @@ applications.") version ".tar.xz")) (sha256 (base32 - "0b1qbnq1xzcdw5rajg9yyg31bf21jnff0n6gnf1snz89bbdllfhy")))) + "1qphz25hganfnd5ipfscbj7s70anv5favmwqmi9ig2saciaf1zhs")))) (build-system gnu-build-system) (arguments '(#:configure-flags -- cgit v1.2.3 From dd169b73e0104738e2be5fee4ded6143beeca044 Mon Sep 17 00:00:00 2001 From: Paul van der Walt Date: Thu, 29 Oct 2015 11:08:05 +0100 Subject: gnu: ghc-glut: Propagate freeglut input. * gnu/packages/haskell.scm (ghc-glut): Move freeglut to propagated-inputs. --- gnu/packages/haskell.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 652efc3fbd..b9387f8d43 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -1009,10 +1009,10 @@ found at runtime, a userError is thrown.") (build-system haskell-build-system) (propagated-inputs `(("ghc-statevar" ,ghc-statevar) - ("ghc-openglraw" ,ghc-openglraw))) - (inputs - `(("ghc-opengl" ,ghc-opengl) + ("ghc-openglraw" ,ghc-openglraw) ("freeglut" ,freeglut))) + (inputs + `(("ghc-opengl" ,ghc-opengl))) (home-page "http://www.haskell.org/haskellwiki/Opengl") (synopsis "Haskell bindings for the OpenGL Utility Toolkit") (description "This library provides Haskell bindings for the OpenGL -- cgit v1.2.3 From 8a3a9e84cbe0b46b6ae933136210115206ab6846 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 29 Oct 2015 14:51:23 +0100 Subject: gnu: icedtea7: Update to 2.6.2. * gnu/packages/java.scm (icedtea7): Update to 2.6.2. --- gnu/packages/java.scm | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 5fa546a98c..6d3446055a 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -576,7 +576,7 @@ build process and its dependencies, whereas Make uses Makefile format.") (license license:gpl2+))) (define-public icedtea7 - (let* ((version "2.6.1") + (let* ((version "2.6.2") (drop (lambda (name hash) (origin (method url-fetch) @@ -594,7 +594,7 @@ build process and its dependencies, whereas Make uses Makefile format.") version ".tar.xz")) (sha256 (base32 - "0s107vi1530a5dyxacysc4m64zshgg2d3xpndsc0ws99wz0zmr6c")) + "0xi0w8gpxx3r68hyi7fb991hxb3rqfp7895nfsl4wj3sa1f5ds5y")) (modules '((guix build utils))) (snippet '(substitute* "Makefile.in" @@ -728,24 +728,24 @@ build process and its dependencies, whereas Make uses Makefile format.") (native-inputs `(("openjdk-drop" ,(drop "openjdk" - "0gs6vbj5c09516r460r68i7vm652sb25h973kq9hfx749qbs0s01")) + "0jabxc8iw7ciz6f2qshcpla66qniy686vnxnfx3h2yw7syvas4a9")) ("corba-drop" ,(drop "corba" - "1y7nf6hqry1az28i3b6ln5cs82cww1jj4r61jk54ab8s2xydj0yd")) + "1bw22djg8mfqqn8kp8mpbj9vi4pl8dk67qwwrny67d0fvirixylj")) ("jaxp-drop" ,(drop "jaxp" - "1szs2w0p496k1qi3yl1fymj0g10lgq31am35zlalcz7pi4l4q360")) + "1h3g2dwbj8ihicl73qbr4cvvc3i5bs5ckrpja1nx6g5b56xa7kcl")) ("jaxws-drop" ,(drop "jaxws" - "17xfy9q2zdpap7m2prbf937x55jm3pwrqpp1fdlridraqrfzjprd")) + "1m1h7455qn4pdhb5yamdl9965iz9260lzwl3njcs35vi14v7fihl")) ("jdk-drop" ,(drop "jdk" - "0qskhwr4nml49zhbppnq8ldj0x001bl37mrcpxslbnsdw5skw258")) + "1wcaxf2chnlpk34q04c23im6z32dy8fr6f9giz3ih65nyvah3n3s")) ("langtools-drop" ,(drop "langtools" - "0hyxrrb0zrx1pq1s90bmim94hwfligr0ajzs1874da4gclbbvfbd")) + "0da3cmm8nwz7dk2sqnywvidaa0kjnyzzi33p2lkdi4415f8yhgx5")) ("hotspot-drop" ,(drop "hotspot" - "1cv8df2s89mnjzg4rja4i89d4fr8n0c3v5y2cqbww1ma1463n100")) + "0fn3cjhqsgbkfzychkvvw6whxil2n9dr6q0196ywxzkinny1hjcq")) ,@(fold alist-delete (package-native-inputs icedtea6) '("openjdk6-src"))))))) -- cgit v1.2.3 From 53e85d0aa5accd427f25cedeedd32bfa451dcb5e Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 29 Oct 2015 22:01:11 +0800 Subject: gnu: leptonica: Disable parallel tests. * gnu/packages/image.scm (leptonica)[arguments]: Add #:parallel-tests?. --- gnu/packages/image.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index b8936c222e..bde327cf91 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -216,7 +216,8 @@ the W3C's XML-based Scaleable Vector Graphic (SVG) format.") `(("openjpeg" ,openjpeg) ("zlib" ,zlib))) (arguments - '(#:phases + '(#:parallel-tests? #f ; XXX: cause fpix1_reg to fail + #:phases (modify-phases %standard-phases ;; Prevent make from trying to regenerate config.h.in. (add-after -- cgit v1.2.3 From 69851c59c7445229f798e5ea0ca918989e6772d7 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 29 Oct 2015 15:41:31 +0100 Subject: gnu: openblas: Update to 0.2.15. * gnu/packages/maths.scm (openblas): Update to 0.2.15. --- gnu/packages/maths.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 5fa37d1535..4935f8019f 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -1461,7 +1461,7 @@ constant parts of it.") (define-public openblas (package (name "openblas") - (version "0.2.14") + (version "0.2.15") (source (origin (method url-fetch) @@ -1470,7 +1470,7 @@ constant parts of it.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0av3pd96j8rx5i65f652xv9wqfkaqn0w4ma1gvbyz73i6j2hi9db")))) + "1k5f6vjlk54qlplk5m7xkbaw6g2y7dl50lwwdv6xsbcsgsbxfcpy")))) (build-system gnu-build-system) (arguments `(#:tests? #f ;no "check" target -- cgit v1.2.3 From 122c3a1d67816c2b193a46487875d363ebe35361 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 29 Oct 2015 09:58:17 +0100 Subject: system: grub: Let GRUB choose the best graphics mode. On PCs, it means that it will typically choose resolutions higher than 640x480, which is nicer. * gnu/system/grub.scm (eye-candy)[setup-gfxterm-body]: Leave 'gfxmode' unset. --- gnu/system/grub.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/system/grub.scm b/gnu/system/grub.scm index e0717cc59b..4c21851cb6 100644 --- a/gnu/system/grub.scm +++ b/gnu/system/grub.scm @@ -163,7 +163,7 @@ all that." ;; to be switched. (if (string-match "^(x86_64|i[3-6]86)-" system) " - set gfxmode=640x480 + # Leave 'gfxmode' to 'auto'. insmod vbe insmod vga insmod video_bochs -- cgit v1.2.3 From 136787cb4e7baa8e389956ecbf74d87acda0c5a5 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 29 Oct 2015 11:18:51 +0100 Subject: doc: Mention Nix in the intro. * doc/guix.texi (Introduction): Mention Nix with a xref to "Acknowledgments". (Acknowledgments): Add link to nixos.org. --- doc/guix.texi | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 01e28041f2..b5c08f5d9c 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -233,7 +233,8 @@ software packages, etc. @cindex functional package management The term @dfn{functional} refers to a specific package management -discipline. In Guix, the package build and installation process is seen +discipline pioneered by Nix (@pxref{Acknowledgments}). +In Guix, the package build and installation process is seen as a function, in the mathematical sense. That function takes inputs, such as build scripts, a compiler, and libraries, and returns an installed package. As a pure function, its result depends @@ -8421,7 +8422,8 @@ reason. @node Acknowledgments @chapter Acknowledgments -Guix is based on the Nix package manager, which was designed and +Guix is based on the @uref{http://nixos.org/nix/, Nix package manager}, +which was designed and implemented by Eelco Dolstra, with contributions from other people (see the @file{nix/AUTHORS} file in Guix.) Nix pioneered functional package management, and promoted unprecedented features, such as transactional -- cgit v1.2.3 From b416aadf7455470b702a557f4f475b04198ce698 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 29 Oct 2015 16:48:32 +0100 Subject: gnu: Move gdbm to (gnu packages databases). * gnu/packages/gdbm.scm: Remove. * gnu/packages/databases.scm (gdbm): New variable, from gdbm.scm. * gnu/packages/avahi.scm, gnu/packages/cyrus-sasl.scm, gnu/packages/guile.scm, gnu/packages/mail.scm, gnu/packages/man.scm, gnu/packages/pulseaudio.scm, gnu/packages/python.scm, gnu/packages/ruby.scm, gnu/packages/sawfish.scm: Adjust accordingly. * gnu-system.am (GNU_SYSTEM_MODULES): Remove gdbm.scm. --- gnu-system.am | 1 - gnu/packages/avahi.scm | 2 +- gnu/packages/cyrus-sasl.scm | 4 ++-- gnu/packages/databases.scm | 22 ++++++++++++++++++++++ gnu/packages/gdbm.scm | 46 --------------------------------------------- gnu/packages/guile.scm | 2 +- gnu/packages/mail.scm | 2 -- gnu/packages/man.scm | 2 +- gnu/packages/pulseaudio.scm | 2 +- gnu/packages/python.scm | 1 - gnu/packages/ruby.scm | 3 +-- gnu/packages/sawfish.scm | 2 +- 12 files changed, 30 insertions(+), 59 deletions(-) delete mode 100644 gnu/packages/gdbm.scm diff --git a/gnu-system.am b/gnu-system.am index 3e976e9fb7..d8430b4732 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -121,7 +121,6 @@ GNU_SYSTEM_MODULES = \ gnu/packages/gcc.scm \ gnu/packages/gd.scm \ gnu/packages/gdb.scm \ - gnu/packages/gdbm.scm \ gnu/packages/geeqie.scm \ gnu/packages/gettext.scm \ gnu/packages/ghostscript.scm \ diff --git a/gnu/packages/avahi.scm b/gnu/packages/avahi.scm index b6eef1a6ad..2d480192af 100644 --- a/gnu/packages/avahi.scm +++ b/gnu/packages/avahi.scm @@ -23,7 +23,7 @@ #:use-module (guix download) #:use-module (guix build-system gnu) #:use-module (gnu packages) - #:use-module (gnu packages gdbm) + #:use-module (gnu packages databases) #:use-module (gnu packages libdaemon) #:use-module (gnu packages pkg-config) #:use-module (gnu packages glib) diff --git a/gnu/packages/cyrus-sasl.scm b/gnu/packages/cyrus-sasl.scm index cd0f1bb401..8f3e1a1b70 100644 --- a/gnu/packages/cyrus-sasl.scm +++ b/gnu/packages/cyrus-sasl.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014 Ludovic Courtès +;;; Copyright © 2013, 2014, 2015 Ludovic Courtès ;;; Copyright © 2013 Andreas Enge ;;; ;;; This file is part of GNU Guix. @@ -19,7 +19,7 @@ (define-module (gnu packages cyrus-sasl) #:use-module (gnu packages) - #:use-module (gnu packages gdbm) + #:use-module (gnu packages databases) #:use-module (gnu packages mit-krb5) #:use-module (gnu packages tls) #:use-module ((guix licenses) #:prefix license:) diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index a17424196a..51e2a3e058 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -53,6 +53,28 @@ #:use-module (srfi srfi-26) #:use-module (ice-9 match)) +(define-public gdbm + (package + (name "gdbm") + (version "1.11") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/gdbm/gdbm-" + version ".tar.gz")) + (sha256 + (base32 + "1hz3jgh3pd4qzp6jy0l8pd8x01g9abw7csnrlnj1a2sxy122z4cd")))) + (arguments `(#:configure-flags '("--enable-libgdbm-compat"))) + (build-system gnu-build-system) + (home-page "http://www.gnu.org/software/gdbm/") + (synopsis + "Hash library of database functions compatible with traditional dbm") + (description + "GDBM is a library for manipulating hashed databases. It is used to +store key/value pairs in a file in a manner similar to the Unix dbm library +and provides interfaces to the traditional file format.") + (license gpl3+))) + (define-public bdb (package (name "bdb") diff --git a/gnu/packages/gdbm.scm b/gnu/packages/gdbm.scm deleted file mode 100644 index 62d02001c8..0000000000 --- a/gnu/packages/gdbm.scm +++ /dev/null @@ -1,46 +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 (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.11") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://gnu/gdbm/gdbm-" - version ".tar.gz")) - (sha256 - (base32 - "1hz3jgh3pd4qzp6jy0l8pd8x01g9abw7csnrlnj1a2sxy122z4cd")))) - (arguments `(#:configure-flags '("--enable-libgdbm-compat"))) - (build-system gnu-build-system) - (home-page "http://www.gnu.org/software/gdbm/") - (synopsis - "Hash library of database functions compatible with traditional dbm") - (description - "GDBM is a library for manipulating hashed databases. It is used to -store key/value pairs in a file in a manner similar to the Unix dbm library -and provides interfaces to the traditional file format.") - (license gpl3+))) diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index da75addc94..ac9e9c7b42 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -38,7 +38,7 @@ #:use-module (gnu packages base) #:use-module (gnu packages texinfo) #:use-module (gnu packages gettext) - #:use-module (gnu packages gdbm) + #:use-module (gnu packages databases) #:use-module (gnu packages python) #:use-module (guix packages) #:use-module (guix download) diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 25407b835a..699b8802b7 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -36,7 +36,6 @@ #:use-module (gnu packages dejagnu) #:use-module (gnu packages emacs) #:use-module (gnu packages enchant) - #:use-module (gnu packages gdbm) #:use-module (gnu packages ghostscript) #:use-module (gnu packages glib) #:use-module (gnu packages gnome) @@ -48,7 +47,6 @@ #:use-module (gnu packages libidn) #:use-module (gnu packages linux) #:use-module (gnu packages m4) - #:use-module (gnu packages databases) #:use-module (gnu packages ncurses) #:use-module (gnu packages pcre) #:use-module (gnu packages perl) diff --git a/gnu/packages/man.scm b/gnu/packages/man.scm index 46b7d8b9b0..3298268d28 100644 --- a/gnu/packages/man.scm +++ b/gnu/packages/man.scm @@ -24,9 +24,9 @@ #:use-module (guix download) #:use-module (guix packages) #:use-module (guix build-system gnu) + #:use-module (gnu packages databases) #:use-module (gnu packages flex) #:use-module (gnu packages gawk) - #:use-module (gnu packages gdbm) #:use-module (gnu packages groff) #:use-module (gnu packages less) #:use-module (gnu packages lynx) diff --git a/gnu/packages/pulseaudio.scm b/gnu/packages/pulseaudio.scm index d832228278..27b269afc2 100644 --- a/gnu/packages/pulseaudio.scm +++ b/gnu/packages/pulseaudio.scm @@ -27,7 +27,7 @@ #:use-module (gnu packages autotools) #:use-module (gnu packages avahi) #:use-module (gnu packages check) - #:use-module (gnu packages gdbm) + #:use-module (gnu packages databases) #:use-module (gnu packages glib) #:use-module (gnu packages gtk) #:use-module (gnu packages libcanberra) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 08f0146641..24a342b8d5 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -41,7 +41,6 @@ #:use-module (gnu packages databases) #:use-module (gnu packages file) #:use-module (gnu packages fontutils) - #:use-module (gnu packages gdbm) #:use-module (gnu packages gcc) #:use-module (gnu packages ghostscript) #:use-module (gnu packages glib) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 701b7ee6ef..8bf85233ea 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014, 2015 Pjotr Prins -;;; Copyright © 2014 Ludovic Courtès +;;; Copyright © 2014, 2015 Ludovic Courtès ;;; Copyright © 2014, 2015 Mark H Weaver ;;; Copyright © 2014, 2015 David Thompson ;;; Copyright © 2015 Ricardo Wurmus @@ -30,7 +30,6 @@ #:use-module (gnu packages autotools) #:use-module (gnu packages java) #:use-module (gnu packages libffi) - #:use-module (gnu packages gdbm) #:use-module (gnu packages tls) #:use-module (gnu packages version-control) #:use-module (guix packages) diff --git a/gnu/packages/sawfish.scm b/gnu/packages/sawfish.scm index e2cb62c62c..9b09b6171e 100644 --- a/gnu/packages/sawfish.scm +++ b/gnu/packages/sawfish.scm @@ -22,7 +22,7 @@ #:use-module (guix download) #:use-module (guix build-system gnu) #:use-module (gnu packages) - #:use-module (gnu packages gdbm) + #:use-module (gnu packages databases) #:use-module (gnu packages gettext) #:use-module (gnu packages gtk) #:use-module (gnu packages libffi) -- cgit v1.2.3 From 362f496da9fc929d9548b8a56990779718b13c95 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 29 Oct 2015 17:07:08 +0100 Subject: gnu: Add libchop. * gnu/packages/backup.scm (libchop): New variable. --- gnu/packages/backup.scm | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm index 99a10e1c7f..40cfc4ee14 100644 --- a/gnu/packages/backup.scm +++ b/gnu/packages/backup.scm @@ -30,9 +30,12 @@ #:use-module (gnu packages acl) #:use-module (gnu packages base) #:use-module (gnu packages compression) + #:use-module (gnu packages databases) #:use-module (gnu packages dejagnu) #:use-module (gnu packages glib) #:use-module (gnu packages gnupg) + #:use-module (gnu packages gperf) + #:use-module (gnu packages guile) #:use-module (gnu packages linux) #:use-module (gnu packages mcrypt) #:use-module (gnu packages nettle) @@ -353,3 +356,44 @@ deduplication technique used makes Attic suitable for daily backups since only changes are stored.") (home-page "https://attic-backup.org/") (license license:bsd-3))) + +(define-public libchop + (package + (name "libchop") + (version "0.5.2") + (source (origin + (method url-fetch) + (uri (string-append "mirror://savannah/libchop/libchop-" + version ".tar.gz")) + (sha256 + (base32 + "0fpdyxww41ba52d98blvnf543xvirq1v9xz1i3x1gm9lzlzpmc2g")) + (patches + (list (search-patch "diffutils-gets-undeclared.patch"))))) + (build-system gnu-build-system) + (native-inputs + `(("guile" ,guile-2.0) + ("gperf" ,gperf) + ("pkg-config" ,pkg-config))) + (inputs + `(("guile" ,guile-2.0) + ("util-linux" ,util-linux) + ("gnutls" ,gnutls) + ("tdb" ,tdb) + ("bdb" ,bdb) + ("gdbm" ,gdbm) + ("libgcrypt" ,libgcrypt) + ("lzo" ,lzo) + ("bzip2" ,bzip2) + ("zlib" ,zlib))) + (home-page "http://nongnu.org/libchop/") + (synopsis "Tools & library for data backup and distributed storage") + (description + "Libchop is a set of utilities and library for data backup and +distributed storage. Its main application is @command{chop-backup}, an +encrypted backup program that supports data integrity checks, versioning, +distribution among several sites, selective sharing of stored data, adaptive +compression, and more. The library itself implements storage techniques such +as content-addressable storage, content hash keys, Merkle trees, similarity +detection, and lossless compression.") + (license license:gpl3+))) -- cgit v1.2.3 From e502bf8953afcd1e0cf29cd729e7c62c5c27792f Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 29 Oct 2015 18:22:19 +0100 Subject: system: File systems depend on their corresponding device mappings. Fixes a regression introduced in commit 0adfe95. * gnu/system.scm (other-file-system-services)[requirements]: Remove. [add-dependencies]: New procedure. Use it. * gnu/system/file-systems.scm ()[dependencies]: Update comment. * gnu/services/base.scm (mapped-device->dmd-service-name, dependency->dmd-service-name): New procedures. (file-system-service-type): Use it. --- gnu/services/base.scm | 14 +++++++++++++- gnu/system.scm | 23 ++++++++++------------- gnu/system/file-systems.scm | 5 ++--- 3 files changed, 25 insertions(+), 17 deletions(-) diff --git a/gnu/services/base.scm b/gnu/services/base.scm index b8e8ccd5f1..604416b985 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -144,6 +144,18 @@ FILE-SYSTEM." (symbol-append 'file-system- (string->symbol (file-system-mount-point file-system)))) +(define (mapped-device->dmd-service-name md) + "Return the symbol that denotes the dmd service of MD, a ." + (symbol-append 'device-mapping- + (string->symbol (mapped-device-target md)))) + +(define dependency->dmd-service-name + (match-lambda + ((? mapped-device? md) + (mapped-device->dmd-service-name md)) + ((? file-system? fs) + (file-system->dmd-service-name fs)))) + (define file-system-service-type ;; TODO(?): Make this an extensible service that takes objects ;; and returns a list of . @@ -160,7 +172,7 @@ FILE-SYSTEM." (dmd-service (provision (list (file-system->dmd-service-name file-system))) (requirement `(root-file-system - ,@(map file-system->dmd-service-name dependencies))) + ,@(map dependency->dmd-service-name dependencies))) (documentation "Check, mount, and unmount the given file system.") (start #~(lambda args ;; FIXME: Use or factorize with 'mount-file-system'. diff --git a/gnu/system.scm b/gnu/system.scm index aa768824d9..37d6d075c5 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -195,19 +195,16 @@ as 'needed-for-boot'." (file-system-device fs))) (operating-system-mapped-devices os))) - (define (requirements fs) - ;; XXX: Fiddling with dmd service names is not nice. - (append (map (lambda (fs) - (symbol-append 'file-system- - (string->symbol - (file-system-mount-point fs)))) - (file-system-dependencies fs)) - (map (lambda (md) - (symbol-append 'device-mapping- - (string->symbol (mapped-device-target md)))) - (device-mappings fs)))) - - (map file-system-service file-systems)) + (define (add-dependencies fs) + ;; Add the dependencies due to device mappings to FS. + (file-system + (inherit fs) + (dependencies + (delete-duplicates (append (device-mappings fs) + (file-system-dependencies fs)) + eq?)))) + + (map (compose file-system-service add-dependencies) file-systems)) (define (mapped-device-user device file-systems) "Return a file system among FILE-SYSTEMS that uses DEVICE, or #f." diff --git a/gnu/system/file-systems.scm b/gnu/system/file-systems.scm index 8155b273e3..0a4b385fe3 100644 --- a/gnu/system/file-systems.scm +++ b/gnu/system/file-systems.scm @@ -99,9 +99,8 @@ (default #t)) (create-mount-point? file-system-create-mount-point? ; Boolean (default #f)) - (dependencies file-system-dependencies ; list of strings (mount - ; points depended on) - (default '()))) + (dependencies file-system-dependencies ; list of + (default '()))) ; or (define-inlinable (file-system-needed-for-boot? fs) "Return true if FS has the 'needed-for-boot?' flag set, or if it's the root -- cgit v1.2.3 From 6726282b20918f98ba7197ea1301376f29a248af Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 29 Oct 2015 19:00:14 +0100 Subject: services: Add screen-locker service. * gnu/system/linux.scm (base-pam-services): Remove "xlock" and "xscreensaver". * gnu/services/xorg.scm (): New record type. (screen-locker-pam-services, screen-locker-setuid-programs, screen-locker-service): New procedures. (screen-locker-service-type): New variable. * gnu/services/desktop.scm (%desktop-services): Use them. * doc/guix.texi (X Window): Document 'screen-locker-service'. (Desktop Services): Mention it. --- doc/guix.texi | 16 +++++++++++++- gnu/services/desktop.scm | 6 ++++++ gnu/services/xorg.scm | 55 +++++++++++++++++++++++++++++++++++++++++++++++- gnu/system/linux.scm | 3 +-- 4 files changed, 76 insertions(+), 4 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index b5c08f5d9c..844f9fa75d 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -6496,6 +6496,19 @@ Last, @var{extra-config} is a list of strings or objects appended to the verbatim to the configuration file. @end deffn +@deffn {Scheme Procedure} screen-locker-service @var{package} [@var{name}] +Add @var{package}, a package for a screen-locker or screen-saver whose +command is @var{program}, to the set of setuid programs and add a PAM entry +for it. For example: + +@lisp +(screen-locker-service xlockmore "xlock") +@end lisp + +makes the good ol' XlockMore usable. +@end deffn + + @node Desktop Services @subsubsection Desktop Services @@ -6513,7 +6526,8 @@ This is a list of services that builds upon @var{%base-services} and adds or adjust services for a typical ``desktop'' setup. In particular, it adds a graphical login manager (@pxref{X Window, -@code{slim-service}}), a network management tool (@pxref{Networking +@code{slim-service}}), screen lockers, +a network management tool (@pxref{Networking Services, @code{wicd-service}}), energy and color management services, the @code{elogind} login and seat manager, the Polkit privilege service, the GeoClue location service, an NTP client (@pxref{Networking diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm index 69edc6d9bb..f283008c4c 100644 --- a/gnu/services/desktop.scm +++ b/gnu/services/desktop.scm @@ -34,6 +34,8 @@ #:use-module (gnu packages gnome) #:use-module (gnu packages avahi) #:use-module (gnu packages polkit) + #:use-module (gnu packages xdisorg) + #:use-module (gnu packages suckless) #:use-module (guix records) #:use-module (guix packages) #:use-module (guix store) @@ -643,6 +645,10 @@ when they log out." ;; List of services typically useful for a "desktop" use case. (cons* (slim-service) + ;; Screen lockers are a pretty useful thing and these are small. + (screen-locker-service slock) + (screen-locker-service xlockmore "xlock") + ;; The D-Bus clique. (avahi-service) (wicd-service) diff --git a/gnu/services/xorg.scm b/gnu/services/xorg.scm index 3a57891a96..639a541777 100644 --- a/gnu/services/xorg.scm +++ b/gnu/services/xorg.scm @@ -32,16 +32,21 @@ #:use-module (gnu packages bash) #:use-module (guix gexp) #:use-module (guix store) + #:use-module (guix packages) #:use-module (guix derivations) #:use-module (guix records) #:use-module (srfi srfi-1) + #:use-module (srfi srfi-9) #:use-module (srfi srfi-26) #:use-module (ice-9 match) #:export (xorg-configuration-file xorg-start-command %default-slim-theme %default-slim-theme-name - slim-service)) + slim-service + + screen-locker-service-type + screen-locker-service)) ;;; Commentary: ;;; @@ -350,4 +355,52 @@ theme." (auto-login-session auto-login-session) (startx startx)))) + +;;; +;;; Screen lockers & co. +;;; + +(define-record-type + (screen-locker name program empty?) + screen-locker? + (name screen-locker-name) ;string + (program screen-locker-program) ;gexp + (empty? screen-locker-allows-empty-passwords?)) ;Boolean + +(define screen-locker-pam-services + (match-lambda + (($ name _ empty?) + (list (unix-pam-service name + #:allow-empty-passwords? empty?))))) + +(define screen-locker-setuid-programs + (compose list screen-locker-program)) + +(define screen-locker-service-type + (service-type (name 'screen-locker) + (extensions + (list (service-extension pam-root-service-type + screen-locker-pam-services) + (service-extension setuid-program-service-type + screen-locker-setuid-programs))))) + +(define* (screen-locker-service package + #:optional + (program (package-name package)) + #:key allow-empty-passwords?) + "Add @var{package}, a package for a screen-locker or screen-saver whose +command is @var{program}, to the set of setuid programs and add a PAM entry +for it. For example: + +@lisp +(screen-locker-service xlockmore \"xlock\") +@end lisp + +makes the good ol' XlockMore usable." + (service screen-locker-service-type + (screen-locker program + #~(string-append #$package + #$(string-append "/bin/" program)) + allow-empty-passwords?))) + ;;; xorg.scm ends here diff --git a/gnu/system/linux.scm b/gnu/system/linux.scm index cd14bc97be..487d379e65 100644 --- a/gnu/system/linux.scm +++ b/gnu/system/linux.scm @@ -182,8 +182,7 @@ authenticate to run COMMAND." ;; These programs are setuid-root. (map (cut unix-pam-service <> #:allow-empty-passwords? allow-empty-passwords?) - '("su" "passwd" "sudo" - "xlock" "xscreensaver")) + '("su" "passwd" "sudo")) ;; These programs are not setuid-root, and we want root to be able ;; to run them without having to authenticate (notably because -- cgit v1.2.3 From cc90fbbf39e310a166e356f7019036eb30d4808a Mon Sep 17 00:00:00 2001 From: David Thompson Date: Sun, 25 Oct 2015 22:33:33 -0400 Subject: scripts: environment: Allow mixing regular and ad-hoc packages. This patch changes the --ad-hoc flag to be positional. That is, the packages that appear before --ad-hoc are interpreted as packages whose inputs should be in the environment; the packages that appear after are interpreted as packages to be directly added to the environment. * guix/scripts/environment.scm (tag-package-arg, compact): New procedures. (%options): Tweak the handlers for --load and --expression options. (options/resolve-packages): Preserve package mode tag. (parse-args): Tweak argument handler to use package tagging procedure. (guix-environment): Apply ad-hoc behavior on a per package basis. * tests/guix-environment.sh: Add test. * doc/guix.texi ("invoking guix environment"): Document new behavior of --ad-hoc. --- doc/guix.texi | 20 +++++++++++ guix/scripts/environment.scm | 85 ++++++++++++++++++++++++++------------------ tests/guix-environment.sh | 14 ++++++++ 3 files changed, 85 insertions(+), 34 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 844f9fa75d..6b6e937c6d 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -4699,6 +4699,20 @@ NumPy: guix environment --ad-hoc python2-numpy python-2.7 -- python @end example +Furthermore, one might want the dependencies of a package and also some +additional packages that are not build-time or runtime dependencies, but +are useful when developing nonetheless. Because of this, the +@code{--ad-hoc} flag is positional. Packages appearing before +@code{--ad-hoc} are interpreted as packages whose dependencies will be +added to the environment. Packages appearing after are interpreted as +packages that will be added to the environment directly. For example, +the following command creates a Guix development environment that +additionally includes Git and strace: + +@example +guix environment guix --ad-hoc git strace +@end example + Sometimes it is desirable to isolate the environment as much as possible, for maximal purity and reproducibility. In particular, when using Guix on a host distro that is not GuixSD, it is desirable to @@ -4759,6 +4773,12 @@ Note that this example implicitly asks for the default output of specific output---e.g., @code{glib:bin} asks for the @code{bin} output of @code{glib} (@pxref{Packages with Multiple Outputs}). +This option may be composed with the default behavior of @command{guix +environment}. Packages appearing before @code{--ad-hoc} are interpreted +as packages whose dependencies will be added to the environment, the +default behavior. Packages appearing after are interpreted as packages +that will be added to the environment directly. + @item --pure Unset existing environment variables when building the new environment. This has the effect of creating an environment in which search paths diff --git a/guix/scripts/environment.scm b/guix/scripts/environment.scm index 1d21a768dc..188838574f 100644 --- a/guix/scripts/environment.scm +++ b/guix/scripts/environment.scm @@ -166,6 +166,16 @@ COMMAND or an interactive shell in that environment.\n")) (max-silent-time . 3600) (verbosity . 0))) +(define (tag-package-arg opts arg) + "Return a two-element list with the form (TAG ARG) that tags ARG with either +'ad-hoc' in OPTS has the 'ad-hoc?' key set to #t, or 'inputs' otherwise." + ;; Normally, the transitive inputs to a package are added to an environment, + ;; but the ad-hoc? flag changes the meaning of a package argument such that + ;; the package itself is added to the environment instead. + (if (assoc-ref opts 'ad-hoc?) + `(ad-hoc-package ,arg) + `(package ,arg))) + (define %options ;; Specification of the command-line options. (cons* (option '(#\h "help") #f #f @@ -186,10 +196,14 @@ COMMAND or an interactive shell in that environment.\n")) (alist-cons 'search-paths #t result))) (option '(#\l "load") #t #f (lambda (opt name arg result) - (alist-cons 'load arg result))) + (alist-cons 'load + (tag-package-arg result arg) + result))) (option '(#\e "expression") #t #f (lambda (opt name arg result) - (alist-cons 'expression arg result))) + (alist-cons 'expression + (tag-package-arg result arg) + result))) (option '("ad-hoc") #f #f (lambda (opt name arg result) (alist-cons 'ad-hoc? #t result))) @@ -232,29 +246,34 @@ COMMAND or an interactive shell in that environment.\n")) (_ memo))) '() alist)) +(define (compact lst) + "Remove all #f elements from LST." + (filter identity lst)) + (define (options/resolve-packages opts) "Return OPTS with package specification strings replaced by actual packages." - (append-map (match-lambda - (('package . (? string? spec)) - (let-values (((package output) - (specification->package+output spec))) - `((package ,package ,output)))) - (('expression . str) - ;; Add all the outputs of the package STR evaluates to. - (match (read/eval str) - ((? package? package) + (compact + (append-map (match-lambda + (('package mode (? string? spec)) + (let-values (((package output) + (specification->package+output spec))) + (list (list mode package output)))) + (('expression mode str) + ;; Add all the outputs of the package STR evaluates to. + (match (read/eval str) + ((? package? package) + (map (lambda (output) + (list mode package output)) + (package-outputs package))))) + (('load mode file) + ;; Add all the outputs of the package defined in FILE. + (let ((package (load* file (make-user-module '())))) (map (lambda (output) - `(package ,package ,output)) - (package-outputs package))))) - (('load . file) - ;; Add all the outputs of the package defined in FILE. - (let ((package (load* file (make-user-module '())))) - (map (lambda (output) - `(package ,package ,output)) - (package-outputs package)))) - (opt (list opt))) - opts)) + (list mode package output)) + (package-outputs package)))) + (_ '(#f))) + opts))) (define (build-inputs inputs opts) "Build the derivations in INPUTS, a list of (DERIVATION) or (DERIVATION @@ -402,7 +421,7 @@ Otherwise, return the derivation for the Bash package." (define (parse-args args) "Parse the list of command line arguments ARGS." (define (handle-argument arg result) - (alist-cons 'package arg result)) + (alist-cons 'package (tag-package-arg result arg) result)) ;; The '--' token is used to separate the command to run from the rest of ;; the operands. @@ -420,22 +439,20 @@ Otherwise, return the derivation for the Bash package." (pure? (assoc-ref opts 'pure)) (container? (assoc-ref opts 'container?)) (network? (assoc-ref opts 'network?)) - (ad-hoc? (assoc-ref opts 'ad-hoc?)) (bootstrap? (assoc-ref opts 'bootstrap?)) (system (assoc-ref opts 'system)) (command (assoc-ref opts 'exec)) - (packages (pick-all (options/resolve-packages opts) 'package)) + (packages (options/resolve-packages opts)) (mappings (pick-all opts 'file-system-mapping)) - (inputs (if ad-hoc? - (append-map (match-lambda - ((package output) - (package+propagated-inputs package - output))) - packages) - (append-map (compose bag-transitive-inputs - package->bag - first) - packages))) + (inputs (delete-duplicates + (append-map (match-lambda + (('ad-hoc-package package output) + (package+propagated-inputs package + output)) + (('package package output) + (bag-transitive-inputs + (package->bag package)))) + packages))) (paths (delete-duplicates (cons $PATH (append-map (match-lambda diff --git a/tests/guix-environment.sh b/tests/guix-environment.sh index f91c78a801..49b3b1ccc3 100644 --- a/tests/guix-environment.sh +++ b/tests/guix-environment.sh @@ -97,4 +97,18 @@ then # Make sure the "debug" output is not listed. if grep -E "$make_boot0_debug" "$tmpdir/a"; then false; else true; fi + + # Compute the build environment for the initial GNU Make, but add in the + # bootstrap Guile as an ad-hoc addition. + guix environment -e '(@@ (gnu packages commencement) gnu-make-boot0)' \ + --ad-hoc guile-bootstrap --no-substitutes --search-paths \ + --pure > "$tmpdir/a" + + # Make sure the bootstrap binaries are all listed where they belong. + cat $tmpdir/a + grep -E '^export PATH=.*-bootstrap-binaries-0/bin' "$tmpdir/a" + grep -E '^export PATH=.*-guile-bootstrap-2.0/bin' "$tmpdir/a" + grep -E '^export CPATH=.*-gcc-bootstrap-0/include' "$tmpdir/a" + grep -E '^export CPATH=.*-glibc-bootstrap-0/include' "$tmpdir/a" + grep -E '^export LIBRARY_PATH=.*-glibc-bootstrap-0/lib' "$tmpdir/a" fi -- cgit v1.2.3 From 12f92e38d7b7add735b0cfe9a09a27c99d6f9977 Mon Sep 17 00:00:00 2001 From: Andy Patterson Date: Wed, 28 Oct 2015 22:42:42 -0400 Subject: gnu: ffmpeg: Move flags into their own argument. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/video.scm (ffmpeg)[arguments]: Move the configurable configure flag literals into the configure-flags argument. Call configure with these flags from the configure phase. Signed-off-by: Ludovic Courtès --- gnu/packages/video.scm | 168 ++++++++++++++++++++++++++----------------------- 1 file changed, 91 insertions(+), 77 deletions(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index d22975afd9..554a2eaab2 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2014, 2015 Mark H Weaver ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer ;;; Copyright © 2015 Efraim Flashner +;;; Copyright © 2015 Andy Patterson ;;; ;;; This file is part of GNU Guix. ;;; @@ -412,6 +413,89 @@ standards (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/VMW3).") ("yasm" ,yasm))) (arguments `(#:test-target "fate" + #:configure-flags + ;; possible additional inputs: + ;; --enable-avisynth enable reading of AviSynth script + ;; files [no] + ;; --enable-frei0r enable frei0r video filtering + ;; --enable-libaacplus enable AAC+ encoding via libaacplus [no] + ;; --enable-libcelt enable CELT decoding via libcelt [no] + ;; --enable-libdc1394 enable IIDC-1394 grabbing using libdc1394 + ;; and libraw1394 [no] + ;; --enable-libfaac enable AAC encoding via libfaac [no] + ;; --enable-libfdk-aac enable AAC de/encoding via libfdk-aac [no] + ;; --enable-libflite enable flite (voice synthesis) support via + ;; libflite [no] + ;; --enable-libgme enable Game Music Emu via libgme [no] + ;; --enable-libgsm enable GSM de/encoding via libgsm [no] + ;; --enable-libiec61883 enable iec61883 via libiec61883 [no] + ;; --enable-libilbc enable iLBC de/encoding via libilbc [no] + ;; --enable-libmodplug enable ModPlug via libmodplug [no] + ;; --enable-libnut enable NUT (de)muxing via libnut, + ;; native (de)muxer exists [no] + ;; --enable-libopencore-amrnb enable AMR-NB de/encoding via + ;; libopencore-amrnb [no] + ;; --enable-libopencore-amrwb enable AMR-WB decoding via + ;; libopencore-amrwb [no] + ;; --enable-libopencv enable video filtering via libopencv [no] + ;; --enable-libopenjpeg enable JPEG 2000 de/encoding via + ;; OpenJPEG [no] + ;; --enable-librtmp enable RTMP[E] support via librtmp [no] + ;; --enable-libschroedinger enable Dirac de/encoding via + ;; libschroedinger [no] + ;; --enable-libshine enable fixed-point MP3 encoding via + ;; libshine [no] + ;; --enable-libssh enable SFTP protocol via libssh [no] + ;; (libssh2 does not work) + ;; --enable-libstagefright-h264 enable H.264 decoding via + ;; libstagefright [no] + ;; --enable-libutvideo enable Ut Video encoding and decoding via + ;; libutvideo [no] + ;; --enable-libv4l2 enable libv4l2/v4l-utils [no] + ;; --enable-libvidstab enable video stabilization using + ;; vid.stab [no] + ;; --enable-libvo-aacenc enable AAC encoding via libvo-aacenc [no] + ;; --enable-libvo-amrwbenc enable AMR-WB encoding via + ;; libvo-amrwbenc [no] + ;; --enable-libwavpack enable wavpack encoding via libwavpack [no] + ;; --enable-libxavs enable AVS encoding via xavs [no] + ;; --enable-libzmq enable message passing via libzmq [no] + ;; --enable-libzvbi enable teletext support via libzvbi [no] + ;; --enable-opencl enable OpenCL code + ;; --enable-x11grab enable X11 grabbing [no] + '("--enable-avresample" + "--enable-gpl" ; enable optional gpl licensed parts + "--enable-shared" + "--enable-fontconfig" + ;; "--enable-gnutls" ; causes test failures + "--enable-ladspa" + "--enable-libass" + "--enable-libbluray" + "--enable-libcaca" + "--enable-libcdio" + "--enable-libfreetype" + "--enable-libmp3lame" + "--enable-libopus" + "--enable-libpulse" + "--enable-libquvi" + "--enable-libsoxr" + "--enable-libspeex" + "--enable-libtheora" + "--enable-libtwolame" + "--enable-libvorbis" + "--enable-libvpx" + "--enable-libxvid" + "--enable-libx264" + "--enable-openal" + + "--enable-runtime-cpudetect" + + ;; Runtime cpu detection is not implemented on + ;; MIPS, so we disable some features. + "--disable-mips32r2" + "--disable-mipsdspr1" + "--disable-mipsdspr2" + "--disable-mipsfpu") #:phases (modify-phases %standard-phases (replace @@ -424,83 +508,13 @@ standards (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/VMW3).") (("#! /bin/sh") (string-append "#!" (which "bash")))) (setenv "SHELL" (which "bash")) (setenv "CONFIG_SHELL" (which "bash")) - ;; possible additional inputs: - ;; --enable-avisynth enable reading of AviSynth script files [no] - ;; --enable-frei0r enable frei0r video filtering - ;; --enable-libaacplus enable AAC+ encoding via libaacplus [no] - ;; --enable-libcelt enable CELT decoding via libcelt [no] - ;; --enable-libdc1394 enable IIDC-1394 grabbing using libdc1394 - ;; and libraw1394 [no] - ;; --enable-libfaac enable AAC encoding via libfaac [no] - ;; --enable-libfdk-aac enable AAC de/encoding via libfdk-aac [no] - ;; --enable-libflite enable flite (voice synthesis) support via libflite [no] - ;; --enable-libgme enable Game Music Emu via libgme [no] - ;; --enable-libgsm enable GSM de/encoding via libgsm [no] - ;; --enable-libiec61883 enable iec61883 via libiec61883 [no] - ;; --enable-libilbc enable iLBC de/encoding via libilbc [no] - ;; --enable-libmodplug enable ModPlug via libmodplug [no] - ;; --enable-libnut enable NUT (de)muxing via libnut, - ;; native (de)muxer exists [no] - ;; --enable-libopencore-amrnb enable AMR-NB de/encoding via libopencore-amrnb [no] - ;; --enable-libopencore-amrwb enable AMR-WB decoding via libopencore-amrwb [no] - ;; --enable-libopencv enable video filtering via libopencv [no] - ;; --enable-libopenjpeg enable JPEG 2000 de/encoding via OpenJPEG [no] - ;; --enable-librtmp enable RTMP[E] support via librtmp [no] - ;; --enable-libschroedinger enable Dirac de/encoding via libschroedinger [no] - ;; --enable-libshine enable fixed-point MP3 encoding via libshine [no] - ;; --enable-libssh enable SFTP protocol via libssh [no] - ;; (libssh2 does not work) - ;; --enable-libstagefright-h264 enable H.264 decoding via libstagefright [no] - ;; --enable-libutvideo enable Ut Video encoding and decoding via libutvideo [no] - ;; --enable-libv4l2 enable libv4l2/v4l-utils [no] - ;; --enable-libvidstab enable video stabilization using vid.stab [no] - ;; --enable-libvo-aacenc enable AAC encoding via libvo-aacenc [no] - ;; --enable-libvo-amrwbenc enable AMR-WB encoding via libvo-amrwbenc [no] - ;; --enable-libwavpack enable wavpack encoding via libwavpack [no] - ;; --enable-libxavs enable AVS encoding via xavs [no] - ;; --enable-libzmq enable message passing via libzmq [no] - ;; --enable-libzvbi enable teletext support via libzvbi [no] - ;; --enable-opencl enable OpenCL code - ;; --enable-x11grab enable X11 grabbing [no] - (zero? (system* - "./configure" - (string-append "--prefix=" out) - ;; Add $libdir to the RUNPATH of all the binaries. - (string-append "--extra-ldflags=-Wl,-rpath=" - %output "/lib") - "--enable-avresample" - "--enable-gpl" ; enable optional gpl licensed parts - "--enable-shared" - "--enable-fontconfig" - ;; "--enable-gnutls" ; causes test failures - "--enable-ladspa" - "--enable-libass" - "--enable-libbluray" - "--enable-libcaca" - "--enable-libcdio" - "--enable-libfreetype" - "--enable-libmp3lame" - "--enable-libopus" - "--enable-libpulse" - "--enable-libquvi" - "--enable-libsoxr" - "--enable-libspeex" - "--enable-libtheora" - "--enable-libtwolame" - "--enable-libvorbis" - "--enable-libvpx" - "--enable-libxvid" - "--enable-libx264" - "--enable-openal" - - "--enable-runtime-cpudetect" - - ;; Runtime cpu detection is not implemented on - ;; MIPS, so we disable some features. - "--disable-mips32r2" - "--disable-mipsdspr1" - "--disable-mipsdspr2" - "--disable-mipsfpu"))))) + (zero? (apply system* + "./configure" + (string-append "--prefix=" out) + ;; Add $libdir to the RUNPATH of all the binaries. + (string-append "--extra-ldflags=-Wl,-rpath=" + out "/lib") + configure-flags))))) (add-before 'check 'set-ld-library-path (lambda _ -- cgit v1.2.3 From a241a7ac65358628aecd4e8d4905cc3b66aa894c Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 29 Oct 2015 22:20:57 +0100 Subject: services: Add 'linux-bare-metal-service-type'. * gnu/services.scm (modprobe-wrapper): Remove. (activation-script): Do not use it. Remove calls to 'activate-modprobe' and 'activate-ptrace-attach' in gexp. (%modprobe-wrapper, %linux-kernel-activation, linux-bare-metal-service-type, %linux-bare-metal-service): New variables. * gnu/system.scm (essential-services): Add %LINUX-BARE-METAL-SERVICE to the list, unless CONTAINER? is true. --- gnu/services.scm | 59 +++++++++++++++++++++++++++++++++++--------------------- gnu/system.scm | 3 ++- 2 files changed, 39 insertions(+), 23 deletions(-) diff --git a/gnu/services.scm b/gnu/services.scm index 818252386f..c8a2a2604f 100644 --- a/gnu/services.scm +++ b/gnu/services.scm @@ -63,6 +63,7 @@ boot-service-type activation-service-type activation-service->script + %linux-bare-metal-service etc-service-type etc-directory setuid-program-service-type @@ -244,20 +245,6 @@ file." (union-build #$output '#$things)) #:modules '((guix build union)))))) -(define (modprobe-wrapper) - "Return a wrapper for the 'modprobe' command that knows where modules live. - -This wrapper is typically invoked by the Linux kernel ('call_modprobe', in -kernel/kmod.c), a situation where the 'LINUX_MODULE_DIRECTORY' environment -variable is not set---hence the need for this wrapper." - (let ((modprobe "/run/current-system/profile/bin/modprobe")) - (gexp->script "modprobe" - #~(begin - (setenv "LINUX_MODULE_DIRECTORY" - "/run/booted-system/kernel/lib/modules") - (apply execl #$modprobe - (cons #$modprobe (cdr (command-line)))))))) - (define* (activation-service->script service) "Return as a monadic value the activation script for SERVICE, a service of ACTIVATION-SCRIPT-TYPE." @@ -282,8 +269,7 @@ ACTIVATION-SCRIPT-TYPE." (mlet* %store-monad ((actions (service-activations)) (modules (imported-modules %modules)) - (compiled (compiled-modules %modules)) - (modprobe (modprobe-wrapper))) + (compiled (compiled-modules %modules))) (gexp->file "activate" #~(begin (eval-when (expand load eval) @@ -298,12 +284,6 @@ ACTIVATION-SCRIPT-TYPE." (activate-/bin/sh (string-append #$(canonical-package bash) "/bin/sh")) - ;; Tell the kernel to use our 'modprobe' command. - (activate-modprobe #$modprobe) - - ;; Let users debug their own processes! - (activate-ptrace-attach) - ;; Run the services' activation snippets. ;; TODO: Use 'load-compiled'. (for-each primitive-load '#$actions) @@ -329,6 +309,41 @@ ACTIVATION-SCRIPT-TYPE." ;; receives. (service activation-service-type #t)) +(define %modprobe-wrapper + ;; Wrapper for the 'modprobe' command that knows where modules live. + ;; + ;; This wrapper is typically invoked by the Linux kernel ('call_modprobe', + ;; in kernel/kmod.c), a situation where the 'LINUX_MODULE_DIRECTORY' + ;; environment variable is not set---hence the need for this wrapper. + (let ((modprobe "/run/current-system/profile/bin/modprobe")) + (program-file "modprobe" + #~(begin + (setenv "LINUX_MODULE_DIRECTORY" + "/run/booted-system/kernel/lib/modules") + (apply execl #$modprobe + (cons #$modprobe (cdr (command-line)))))))) + +(define %linux-kernel-activation + ;; Activation of the Linux kernel running on the bare metal (as opposed to + ;; running in a container.) + #~(begin + ;; Tell the kernel to use our 'modprobe' command. + (activate-modprobe #$%modprobe-wrapper) + + ;; Let users debug their own processes! + (activate-ptrace-attach))) + +(define linux-bare-metal-service-type + (service-type (name 'linux-bare-metal) + (extensions + (list (service-extension activation-service-type + (const %linux-kernel-activation)))))) + +(define %linux-bare-metal-service + ;; The service that does things that are needed on the "bare metal", but not + ;; necessary or impossible in a container. + (service linux-bare-metal-service-type #f)) + (define (etc-directory service) "Return the directory for SERVICE, a service of type ETC-SERVICE-TYPE." (files->etc-directory (service-parameters service))) diff --git a/gnu/system.scm b/gnu/system.scm index 37d6d075c5..3d570c0d1f 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -287,7 +287,8 @@ a container or that of a \"bare metal\" system." ;; container. (if container? '() - (list (service firmware-service-type + (list %linux-bare-metal-service + (service firmware-service-type (operating-system-firmware os)))))))) (define* (operating-system-services os #:key container?) -- cgit v1.2.3 From 2e437e29b6835997d9d4fef3bd7239bd4df0f758 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 29 Oct 2015 23:10:37 +0100 Subject: doc: Fix outdated description of the bare-bones example. Reported by fps on #guix. * doc/guix.texi (Using the Configuration System): Replace mention of Emacs with tcpdump. --- doc/guix.texi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/guix.texi b/doc/guix.texi index 6b6e937c6d..236c5973cd 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -5376,7 +5376,7 @@ addition to the per-user profiles (@pxref{Invoking guix package}). The for basic user and administrator tasks---including the GNU Core Utilities, the GNU Networking Utilities, the GNU Zile lightweight text editor, @command{find}, @command{grep}, etc. The example above adds -Emacs to those, taken from the @code{(gnu packages emacs)} module +tcpdump to those, taken from the @code{(gnu packages admin)} module (@pxref{Package Modules}). @vindex %base-services -- cgit v1.2.3 From 0bdab089622deed12383d4067ca241d639d40d7d Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Thu, 29 Oct 2015 17:26:30 -0500 Subject: gnu: fish: Add python input. * gnu/packages/fish.scm (inputs): Add python. --- gnu/packages/fish.scm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gnu/packages/fish.scm b/gnu/packages/fish.scm index 94e418a8b1..6392efe308 100644 --- a/gnu/packages/fish.scm +++ b/gnu/packages/fish.scm @@ -20,6 +20,7 @@ #:use-module (guix licenses) #:use-module (gnu packages doxygen) #:use-module (gnu packages ncurses) + #:use-module (gnu packages python) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix utils) @@ -45,7 +46,8 @@ (native-inputs `(("doxygen" ,doxygen))) (inputs - `(("ncurses" ,ncurses))) + `(("ncurses" ,ncurses) + ("python" ,python-wrapper))) ;for fish_config and manpage completions (arguments '(#:tests? #f ; no check target #:configure-flags '("--sysconfdir=/etc"))) -- cgit v1.2.3 From 6072523231655f09c05dd209a980c4f4b0527be9 Mon Sep 17 00:00:00 2001 From: Andreas Enge Date: Thu, 29 Oct 2015 23:34:09 +0100 Subject: gnu: Remove ardour-3. * gnu/packages/audio.scm (ardour-3): Remove variable. (ardour): Copy fields from the removed ardour-3 instead of inheriting from it. --- gnu/packages/audio.scm | 39 ++++----------------------------------- 1 file changed, 4 insertions(+), 35 deletions(-) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index ca3be8e424..404a5d9d62 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -152,13 +152,11 @@ streams from live audio.") libdir "/vamp" "\"]")))) #t)) -(define-public ardour-3 +(define-public ardour (package (name "ardour") - (version "3.5.403") + (version "4.2") (source (origin - ;; The project only provides tarballs upon individual request - ;; (or after payment) so we take the code from git. (method git-fetch) (uri (git-reference (url "git://git.ardour.org/ardour/ardour.git") @@ -171,10 +169,10 @@ streams from live audio.") "libs/ardour/revision.cc" (lambda (port) (format port "#include \"ardour/revision.h\" -namespace ARDOUR { const char* revision = \"3.5-403-gec2cb31\" ; }")))) +namespace ARDOUR { const char* revision = \"4.2\" ; }")))) (sha256 (base32 - "01b0wxh0wlxjfz5j8gcwwqhxc6q2kn4njz2fcmzv9fr3xaya5dbp")) + "1j8zw0bvh16qwyy8qrqynpak9nghl9j3qhjjcdl7wh9raafjqc00")) (file-name (string-append name "-" version)))) (build-system waf-build-system) (arguments @@ -231,35 +229,6 @@ record, edit, mix and master audio and MIDI projects. It is targeted at audio engineers, musicians, soundtrack editors and composers.") (license license:gpl2+))) -(define-public ardour - (package (inherit ardour-3) - (name "ardour") - (version "4.2") - (source (origin - (method git-fetch) - (uri (git-reference - (url "git://git.ardour.org/ardour/ardour.git") - (commit version))) - (snippet - ;; Ardour expects this file to exist at build time. It can be - ;; created from a git checkout with: - ;; ./waf create_stored_revision - '(call-with-output-file - "libs/ardour/revision.cc" - (lambda (port) - (format port "#include \"ardour/revision.h\" -namespace ARDOUR { const char* revision = \"4.2\" ; }")))) - (sha256 - (base32 - "1j8zw0bvh16qwyy8qrqynpak9nghl9j3qhjjcdl7wh9raafjqc00")) - (file-name (string-append name "-" version)))) - (arguments - (substitute-keyword-arguments (package-arguments ardour-3) - ((#:phases phases) - `(modify-phases ,phases - (replace 'set-rpath-in-LDFLAGS - ,(ardour-rpath-phase (version-prefix version 1))))))))) - (define-public azr3 (package (name "azr3") -- cgit v1.2.3 From cd4cb1b597f3d42ade7e71dac718a41070ce6acc Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Fri, 30 Oct 2015 13:12:44 +0200 Subject: gnu: freeipmi: Update to 1.4.11. * gnu/packages/freeipmi.scm (freeipmi): Update to 1.4.11. --- gnu/packages/freeipmi.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/freeipmi.scm b/gnu/packages/freeipmi.scm index badecc60ba..6e2610409d 100644 --- a/gnu/packages/freeipmi.scm +++ b/gnu/packages/freeipmi.scm @@ -27,14 +27,14 @@ (define-public freeipmi (package (name "freeipmi") - (version "1.4.10") + (version "1.4.11") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/freeipmi/freeipmi-" version ".tar.gz")) (sha256 (base32 - "1l98l8g8lha85q1d288wr7dyx00x36smh9g5wza15n4wm35c9wqs")))) + "0bkghpbj1zkxcgmx2crg0mf97y6dhnxdqvdk5mkw1pyqdxncwq3l")))) (build-system gnu-build-system) (inputs `(("readline" ,readline) ("libgcrypt" ,libgcrypt))) -- cgit v1.2.3 From 7f48be419d6489f80b20bc15b77eefce722675e2 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Fri, 30 Oct 2015 20:31:27 +0800 Subject: gnu: telepathy-glib: Fix tests. * gnu/packages/glib.scm (telepathy-glib)[source]: Add a patch to unique test names. --- gnu/packages/glib.scm | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm index e4bf6ad0fc..f7e67ba9ec 100644 --- a/gnu/packages/glib.scm +++ b/gnu/packages/glib.scm @@ -574,7 +574,18 @@ useful for C++.") "telepathy-glib-" version ".tar.gz")) (sha256 (base32 - "1symyzbjmxvksn2ifdkk50lafjm2llf2sbmky062gq2pz3cg23cy")))) + "1symyzbjmxvksn2ifdkk50lafjm2llf2sbmky062gq2pz3cg23cy")) + (patches + (list + ;; Don't use the same test name for multiple tests. + ;; + (origin + (method url-fetch) + (uri "https://bugs.freedesktop.org/attachment.cgi?id=118608") + (file-name (string-append "telepathy-glib-duplicate-tests.patch")) + (sha256 + (base32 + "0z261fwrszxb28ccg3hsg9rizig4s84zvwmx6y31a4pyv7bvs5w3"))))))) (build-system gnu-build-system) (native-inputs `(("glib" ,glib "bin") ; uses glib-mkenums -- cgit v1.2.3 From 7ea3099b0516f98cad378a347659b9011a01a1d3 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 29 Oct 2015 17:12:17 +0100 Subject: gnu: Add pcre2. * gnu/packages/pcre.scm (pcre2): New variable. --- gnu/packages/pcre.scm | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/gnu/packages/pcre.scm b/gnu/packages/pcre.scm index d07e434190..d7d974fc5c 100644 --- a/gnu/packages/pcre.scm +++ b/gnu/packages/pcre.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013 Andreas Enge ;;; Copyright © 2014, 2015 Mark H Weaver +;;; Copyright © 2015 Ricardo Wurmus ;;; ;;; This file is part of GNU Guix. ;;; @@ -57,3 +58,37 @@ own native API, as well as a set of wrapper functions that correspond to the POSIX regular expression API.") (license license:bsd-3) (home-page "http://www.pcre.org/"))) + +(define-public pcre2 + (package + (name "pcre2") + (version "10.20") + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/pcre/pcre2/" + version "/pcre2-" version ".tar.bz2")) + + (sha256 + (base32 + "0yj8mm9ll9zj3v47rvmmqmr1ybxk72rr2lym3rymdsf905qjhbik")))) + (build-system gnu-build-system) + (inputs `(("bzip2" ,bzip2) + ("readline" ,readline) + ("zlib" ,zlib))) + (arguments + `(#:configure-flags '("--enable-unicode" + "--enable-pcregrep-libz" + "--enable-pcregrep-libbz2" + "--enable-pcretest-libreadline" + "--enable-unicode-properties" + "--enable-pcre2-16" + "--enable-pcre2-32" + "--enable-jit"))) + (synopsis "Perl Compatible Regular Expressions") + (description + "The PCRE library is a set of functions that implement regular expression +pattern matching using the same syntax and semantics as Perl 5. PCRE has its +own native API, as well as a set of wrapper functions that correspond to the +POSIX regular expression API.") + (license license:bsd-3) + (home-page "http://www.pcre.org/"))) -- cgit v1.2.3 From b90e7e5d49e951a24f58d3cd29d37127982ef240 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Fri, 30 Oct 2015 08:40:58 -0400 Subject: gnu: xfce4-session: Fix xflock4. * gnu/packages/patches/xfce4-session-fix-xflock4.patch: New file. * gnu-system.am (dist_patch_DATA): Add it. * gnu/packages/xfce.scm (xfce4-session)[source]: Add patch. --- gnu-system.am | 1 + .../patches/xfce4-session-fix-xflock4.patch | 31 ++++++++++++++++++++++ gnu/packages/xfce.scm | 5 +++- 3 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/xfce4-session-fix-xflock4.patch diff --git a/gnu-system.am b/gnu-system.am index d8430b4732..575c6f53f6 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -687,6 +687,7 @@ dist_patch_DATA = \ gnu/packages/patches/xf86-video-trident-remove-mibstore.patch \ gnu/packages/patches/xf86-video-vmware-glibc-2.20.patch \ gnu/packages/patches/xfce4-panel-plugins.patch \ + gnu/packages/patches/xfce4-session-fix-xflock4.patch \ gnu/packages/patches/xfce4-settings-defaults.patch \ gnu/packages/patches/xmodmap-asprintf.patch \ gnu/packages/patches/zathura-plugindir-environment-variable.patch diff --git a/gnu/packages/patches/xfce4-session-fix-xflock4.patch b/gnu/packages/patches/xfce4-session-fix-xflock4.patch new file mode 100644 index 0000000000..74769e4257 --- /dev/null +++ b/gnu/packages/patches/xfce4-session-fix-xflock4.patch @@ -0,0 +1,31 @@ +From cbb9c769316b4d32956a2c78aa01a38b473f0cfc Mon Sep 17 00:00:00 2001 +From: David Thompson +Date: Fri, 30 Oct 2015 08:30:43 -0400 +Subject: [PATCH] xflock4: Do not override PATH with hardcoded value. + +The PATH "/bin:/usr/bin" may not be a valid search path on the user's +machine. The screen locking program may be in /usr/local/bin or +elsewhere. Distros that do not conform to the FHS, such as GuixSD and +NixOS, will not have their executables in either location. Thus, we +simply leave PATH alone. +--- + scripts/xflock4 | 3 --- + 1 file changed, 3 deletions(-) + +diff --git a/scripts/xflock4 b/scripts/xflock4 +index ec4d05d..e7981ac 100644 +--- a/scripts/xflock4 ++++ b/scripts/xflock4 +@@ -21,9 +21,6 @@ + # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + # + +-PATH=/bin:/usr/bin +-export PATH +- + # Lock by xscreensaver or gnome-screensaver, if a respective daemon is running + for lock_cmd in \ + "xscreensaver-command -lock" \ +-- +2.5.0 + diff --git a/gnu/packages/xfce.scm b/gnu/packages/xfce.scm index e42c58050d..914012625f 100644 --- a/gnu/packages/xfce.scm +++ b/gnu/packages/xfce.scm @@ -421,7 +421,10 @@ your system in categories, so you can quickly find and launch them.") "/src/" name "-" version ".tar.bz2")) (sha256 (base32 - "01kvbd09c06j20n155hracsgrq06rlmfgdywffjsvlwpn19m9j38")))) + "01kvbd09c06j20n155hracsgrq06rlmfgdywffjsvlwpn19m9j38")) + (patches + ;; See: https://bugzilla.xfce.org/show_bug.cgi?id=12282 + (list (search-patch "xfce4-session-fix-xflock4.patch"))))) (build-system gnu-build-system) (arguments '(#:configure-flags -- cgit v1.2.3 From 9fa8f436696598e783407b16f0e459791fdd9970 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Fri, 30 Oct 2015 20:46:28 +0800 Subject: gnu: mesa-utils: Fix build. * gnu/packages/gl.scm (mesa-utils)[arguments]: Pass "--disable-egl" as #:configure-flags. --- gnu/packages/gl.scm | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm index ec6a7f1684..c7bece868d 100644 --- a/gnu/packages/gl.scm +++ b/gnu/packages/gl.scm @@ -327,7 +327,12 @@ emulation to complete hardware acceleration for modern GPUs.") (native-inputs `(("pkg-config" ,pkg-config))) (arguments - '(#:phases + '(;; XXX: fails to build against latest mesa: + ;; eglut.c: error: 'EGL_SCREEN_BIT_MESA' undeclared + ;; + ;; + #:configure-flags '("--disable-egl") + #:phases (modify-phases %standard-phases (replace 'install -- cgit v1.2.3 From 8a637e79ed6410f093a040f788708b2cf8678bbf Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 20 Jul 2015 15:05:55 +0200 Subject: gnu: openblas: Set TARGET to SICORTEX on MIPS. * gnu/packages/maths.scm (openblas)[arguments]: Add "TARGET=SICORTEX" to make-flags when building for MIPS. --- gnu/packages/maths.scm | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 4935f8019f..b5abc48b36 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -1491,10 +1491,16 @@ constant parts of it.") ;; Unfortunately, this is not supported on non-x86 architectures, ;; where it leads to failed builds. ,@(let ((system (or (%current-target-system) (%current-system)))) - (if (or (string-prefix? "x86_64" system) + (cond + ((or (string-prefix? "x86_64" system) (string-prefix? "i686" system)) - '("DYNAMIC_ARCH=1") - '()))) + '("DYNAMIC_ARCH=1")) + ;; On MIPS we force the "SICORTEX" TARGET, as for the other + ;; two available MIPS targets special extended instructions + ;; for Loongson cores are used. + ((string-prefix? "mips" system) + '("TARGET=SICORTEX")) + (else '())))) ;; no configure script #:phases (alist-delete 'configure %standard-phases))) (inputs -- cgit v1.2.3 From bd0b4379b248dc7e08e152d3f597a2bbee81b4b3 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 29 Oct 2015 15:43:21 +0100 Subject: gnu: openblas: Make substitutable on MIPS. * gnu/packages/maths.scm (openblas)[arguments]: Make package substitutable when the system is MIPS. --- gnu/packages/maths.scm | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index b5abc48b36..b4b930de47 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -1474,13 +1474,14 @@ constant parts of it.") (build-system gnu-build-system) (arguments `(#:tests? #f ;no "check" target - ;; DYNAMIC_ARCH is only supported on x86. When it is disabled, - ;; OpenBLAS will tune itself to the build host, so we need to disable - ;; substitutions. + ;; DYNAMIC_ARCH is only supported on x86. When it is disabled and no + ;; TARGET is specified, OpenBLAS will tune itself to the build host, so + ;; we need to disable substitutions. #:substitutable? ,(let ((system (or (%current-target-system) (%current-system)))) (or (string-prefix? "x86_64" system) - (string-prefix? "i686" system))) + (string-prefix? "i686" system) + (string-prefix? "mips" system))) #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")) "SHELL=bash" -- cgit v1.2.3 From 8e5999e0b0a4f3e639663a803eb99486c3d8304a Mon Sep 17 00:00:00 2001 From: David Thompson Date: Thu, 29 Oct 2015 00:15:36 -0400 Subject: system: container: Adjust to changes in gexps. * gnu/system/linux-container.scm (system-container): 'etc' is no longer a monadic value, and the result of 'file-union' must be lowered. --- gnu/system/linux-container.scm | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/gnu/system/linux-container.scm b/gnu/system/linux-container.scm index fdf7460872..abe816f483 100644 --- a/gnu/system/linux-container.scm +++ b/gnu/system/linux-container.scm @@ -25,6 +25,7 @@ #:use-module (guix derivations) #:use-module (guix monads) #:use-module (gnu build linux-container) + #:use-module (gnu services) #:use-module (gnu system) #:use-module (gnu system file-systems) #:export (mapping->file-system @@ -50,14 +51,15 @@ "Return a derivation that builds OS as a Linux container." (mlet* %store-monad ((profile (operating-system-profile os)) - (etc (operating-system-etc-directory os)) + (etc -> (operating-system-etc-directory os)) (boot (operating-system-boot-script os #:container? #t)) (locale (operating-system-locale-directory os))) - (file-union "system-container" - `(("boot" ,#~#$boot) - ("profile" ,#~#$profile) - ("locale" ,#~#$locale) - ("etc" ,#~#$etc))))) + (lower-object + (file-union "system-container" + `(("boot" ,#~#$boot) + ("profile" ,#~#$profile) + ("locale" ,#~#$locale) + ("etc" ,#~#$etc)))))) (define (containerized-operating-system os mappings) "Return an operating system based on OS for use in a Linux container -- cgit v1.2.3 From 1c8a81b1af81bdb2fd87efb38004900ad5a77d36 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Mon, 8 Jun 2015 09:04:38 -0400 Subject: scripts: system: Add 'container' action. * guix/scripts/system.scm (show-help): Display 'container' action. (system-derivation-for-action, guix-system): Add 'container' case. (perform-action): Skip GRUB config generation when building a container. * doc/guix.texi (Invoking guix system): Document it. --- doc/guix.texi | 21 +++++++++++++++++++++ gnu/system/linux-container.scm | 7 ++++++- guix/scripts/system.scm | 19 +++++++++++++------ 3 files changed, 40 insertions(+), 7 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 236c5973cd..a23d8244ff 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -7264,6 +7264,27 @@ using the following command: # dd if=$(guix system disk-image my-os.scm) of=/dev/sdc @end example +@item container +Return a script to run the operating system declared in @var{file} +within a container. Containers are a set of lightweight isolation +mechanisms provided by the kernel Linux-libre. Containers are +substantially less resource-demanding than full virtual machines since +the kernel, shared objects, and other resources can be shared with the +host system; this also means they provide thinner isolation. + +Currently, the script must be run as root in order to support more than +a single user and group. The container shares its store with the host +system. + +As with the @code{vm} action (@pxref{guix system vm}), additional file +systems to be shared between the host and container can be specified +using the @option{--share} and @option{--expose} options: + +@example +guix system container my-config.scm \ + --expose=$HOME --share=$HOME/tmp=/exchange +@end example + @end table @var{options} can contain any of the common build options provided by diff --git a/gnu/system/linux-container.scm b/gnu/system/linux-container.scm index abe816f483..c2eb773931 100644 --- a/gnu/system/linux-container.scm +++ b/gnu/system/linux-container.scm @@ -108,7 +108,12 @@ that will be shared with the host system." (setenv "TMPDIR" "/tmp") (setenv "GUIX_NEW_SYSTEM" #$os-drv) (for-each mkdir-p '("/run" "/bin" "/etc" "/home" "/var")) - (primitive-load (string-append #$os-drv "/boot")))))) + (primitive-load (string-append #$os-drv "/boot"))) + ;; A range of 65536 uid/gids is used to cover 16 bits worth of + ;; users and groups, which is sufficient for most cases. + ;; + ;; See: http://www.freedesktop.org/software/systemd/man/systemd-nspawn.html#--private-users= + #:host-uids 65536))) (gexp->script "run-container" script #:modules '((ice-9 match) diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm index d847c75444..499038ffa1 100644 --- a/guix/scripts/system.scm +++ b/guix/scripts/system.scm @@ -34,6 +34,7 @@ #:use-module (gnu build install) #:use-module (gnu system) #:use-module (gnu system file-systems) + #:use-module (gnu system linux-container) #:use-module (gnu system vm) #:use-module (gnu system grub) #:use-module (gnu services) @@ -406,6 +407,8 @@ PATTERN, a string. When PATTERN is #f, display all the system generations." (case action ((build init reconfigure) (operating-system-derivation os)) + ((container) + (container-script os #:mappings mappings)) ((vm-image) (system-qemu-image os #:disk-image-size image-size)) ((vm) @@ -438,10 +441,12 @@ building anything." #:full-boot? full-boot? #:mappings mappings)) (grub (package->derivation grub)) - (grub.cfg (operating-system-grub.cfg os - (if (eq? 'init action) - '() - (previous-grub-entries)))) + (grub.cfg (if (eq? 'container action) + (return #f) + (operating-system-grub.cfg os + (if (eq? 'init action) + '() + (previous-grub-entries))))) (drvs -> (if (and grub? (memq action '(init reconfigure))) (list sys grub grub.cfg) (list sys))) @@ -523,6 +528,8 @@ Build the operating system declared in FILE according to ACTION.\n")) list-generations list the system generations\n")) (display (_ "\ build build the operating system without installing anything\n")) + (display (_ "\ + container build a container that shares the host's store\n")) (display (_ "\ vm build a virtual machine image that shares the host's store\n")) (display (_ "\ @@ -694,7 +701,7 @@ argument list and OPTS is the option alist." (alist-cons 'argument arg result) (let ((action (string->symbol arg))) (case action - ((build vm vm-image disk-image reconfigure init + ((build container vm vm-image disk-image reconfigure init extension-graph dmd-graph list-generations) (alist-cons 'action action result)) (else (leave (_ "~a: unknown action~%") action)))))) @@ -723,7 +730,7 @@ argument list and OPTS is the option alist." (exit 1)) (case action - ((build vm vm-image disk-image reconfigure) + ((build container vm vm-image disk-image reconfigure) (unless (= count 1) (fail))) ((init) -- cgit v1.2.3 From c8dab7f4752133110b5aa2a9de375d812f1b9247 Mon Sep 17 00:00:00 2001 From: Andy Patterson Date: Thu, 29 Oct 2015 18:59:18 -0400 Subject: gnu: ffmpeg: Enable gnutls support. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/package/video.scm (ffmpeg)[inputs]: Add gnutls. [arguments]: Enable it. Signed-off-by: Ludovic Courtès --- gnu/packages/video.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 554a2eaab2..eb9a503ae6 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -384,6 +384,7 @@ standards (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/VMW3).") (inputs `(("fontconfig" ,fontconfig) ("freetype" ,freetype) + ("gnutls" ,gnutls) ("opus" ,opus) ("ladspa" ,ladspa) ("lame" ,lame) @@ -467,7 +468,7 @@ standards (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/VMW3).") "--enable-gpl" ; enable optional gpl licensed parts "--enable-shared" "--enable-fontconfig" - ;; "--enable-gnutls" ; causes test failures + "--enable-gnutls" "--enable-ladspa" "--enable-libass" "--enable-libbluray" -- cgit v1.2.3 From 137d957ed346547274b09ccf2383a61b5b65cce1 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 24 Sep 2015 16:21:45 +0200 Subject: gnu: glibc: Add version 2.21. * gnu/packages/base.scm (glibc-2.21): New variable. --- gnu/packages/base.scm | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index f951e28b3b..61eeba3cee 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -633,6 +633,21 @@ with the Linux kernel.") (license lgpl2.0+) (home-page "http://www.gnu.org/software/libc/"))) +(define-public glibc-2.21 + ;; The old libc, which we use mostly to build locale data in the old format + ;; (which the new libc can cope with.) + (package + (inherit glibc) + (version "2.21") + (source (origin + (inherit (package-source glibc)) + (uri (string-append "mirror://gnu/glibc/glibc-" + version ".tar.xz")) + (sha256 + (base32 + "1f135546j34s9bfkydmx2nhh9vwxlx60jldi80zmsnln6wj3dsxf")) + (patches (list (search-patch "glibc-ldd-x86_64.patch"))))))) + (define-public glibc-locales (package (inherit glibc) -- cgit v1.2.3 From 34760ae7031b19529aff2355cc458f61a8daa41f Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 30 Oct 2015 23:05:52 +0100 Subject: system: Add 'locale-libcs' field. * gnu/system/locale.scm (localedef-command)[maybe-version-directory]: New procedure. Use it. (locale-directory): Rename to... (single-locale-directory): ... this. Check the version of LIBC to determine whether to create a "X.Y" sub-directory or to make it a symlink to ".". Add the version number in the derivation name. (locale-directory): New procedure. (%default-locale-libcs): New variable. * gnu/system.scm ()[locale-libcs]: New field. (operating-system-locale-directory): Pass it to 'locale-directory'. * doc/guix.texi (operating-system Reference): Document 'locale-libcs'. (Locales)[Locale Data Compatibility Considerations]: New section. --- doc/guix.texi | 56 ++++++++++++++++++++++++++++++++++++++++++++++ gnu/system.scm | 6 ++++- gnu/system/locale.scm | 62 ++++++++++++++++++++++++++++++++++++++++++++++----- 3 files changed, 118 insertions(+), 6 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index a23d8244ff..a164608b73 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -5562,6 +5562,11 @@ Library Reference Manual}). @xref{Locales}, for more information. The list of locale definitions to be compiled and that may be used at run time. @xref{Locales}. +@item @code{locale-libcs} (default: @code{(list @var{glibc})}) +The list of GNU@tie{}libc packages whose locale data and tools are used +to build the locale definitions. @xref{Locales}, for compatibility +considerations that justify this option. + @item @code{name-service-switch} (default: @var{%default-nss}) Configuration of libc's name service switch (NSS)---a @code{} object. @xref{Name Service Switch}, for @@ -6020,6 +6025,57 @@ instance it has @code{uk_UA.utf8} but @emph{not}, say, @code{uk_UA.UTF-8}. @end defvr +@subsubsection Locale Data Compatibility Considerations + +@cindex incompatibility, of locale data +@code{operating-system} declarations provide a @code{locale-libcs} field +to specify the GNU@tie{}libc packages that are used to compile locale +declarations (@pxref{operating-system Reference}). ``Why would I +care?'', you may ask. Well, it turns out that the binary format of +locale data is occasionally incompatible from one libc version to +another. + +@c See +@c and . +For instance, a program linked against libc version 2.21 is unable to +read locale data produced with libc 2.22; worse, that program +@emph{aborts} instead of simply ignoring the incompatible locale +data@footnote{Versions 2.23 and later of GNU@tie{}libc will simply skip +the incompatible locale data, which is already an improvement.}. +Similarly, a program linked against libc 2.22 can read most, but not +all, the locale data from libc 2.21 (specifically, @code{LC_COLLATE} +data is incompatible); thus calls to @code{setlocale} may fail, but +programs will not abort. + +The ``problem'' in GuixSD is that users have a lot of freedom: They can +choose whether and when to upgrade software in their profiles, and might +be using a libc version different from the one the system administrator +used to build the system-wide locale data. + +Fortunately, unprivileged users can also install their own locale data +and define @var{GUIX_LOCPATH} accordingly (@pxref{locales-and-locpath, +@code{GUIX_LOCPATH} and locale packages}). + +Still, it is best if the system-wide locale data at +@file{/run/current-system/locale} is built for all the libc versions +actually in use on the system, so that all the programs can access +it---this is especially crucial on a multi-user system. To do that, the +administrator can specify several libc packages in the +@code{locale-libcs} field of @code{operating-system}: + +@example +(use-package-modules base) + +(operating-system + ;; @dots{} + (locale-libcs (list glibc-2.21 (canonical-package glibc)))) +@end example + +This example would lead to a system containing locale definitions for +both libc 2.21 and the current version of libc in +@file{/run/current-system/locale}. + + @node Services @subsection Services diff --git a/gnu/system.scm b/gnu/system.scm index 3d570c0d1f..8fed857b39 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -76,6 +76,7 @@ operating-system-timezone operating-system-locale operating-system-locale-definitions + operating-system-locale-libcs operating-system-mapped-devices operating-system-file-systems operating-system-activation-script @@ -144,6 +145,8 @@ (default "en_US.utf8")) (locale-definitions operating-system-locale-definitions ; list of (default %default-locale-definitions)) + (locale-libcs operating-system-locale-libcs ; list of + (default %default-locale-libcs)) (name-service-switch operating-system-name-service-switch ; (default %default-nss)) @@ -643,7 +646,8 @@ listed in OS. The C library expects to find it under (raise (condition (&message (message "system locale lacks a definition"))))) - (locale-directory (operating-system-locale-definitions os))) + (locale-directory (operating-system-locale-definitions os) + #:libcs (operating-system-locale-libcs os))) (define (kernel->grub-label kernel) "Return a label for the GRUB menu entry that boots KERNEL." diff --git a/gnu/system/locale.scm b/gnu/system/locale.scm index 010fb45272..e798827a01 100644 --- a/gnu/system/locale.scm +++ b/gnu/system/locale.scm @@ -18,11 +18,15 @@ (define-module (gnu system locale) #:use-module (guix gexp) + #:use-module (guix store) + #:use-module (guix monads) #:use-module (guix records) #:use-module (guix packages) + #:use-module (guix utils) #:use-module (gnu packages base) #:use-module (gnu packages compression) #:use-module (srfi srfi-26) + #:use-module (ice-9 match) #:export (locale-definition locale-definition? locale-definition-name @@ -31,6 +35,7 @@ locale-directory + %default-locale-libcs %default-locale-definitions)) ;;; Commentary: @@ -50,6 +55,15 @@ (define* (localedef-command locale #:key (libc (canonical-package glibc))) "Return a gexp that runs 'localedef' from LIBC to build LOCALE." + (define (maybe-version-directory) + ;; XXX: For libc prior to 2.22, GuixSD did not store locale data in a + ;; version-specific sub-directory. Check whether this is the case. + ;; TODO: Remove this hack once libc 2.21 is buried. + (let ((version (package-version libc))) + (if (version>=? version "2.22") + (list version "/") + '()))) + #~(begin (format #t "building locale '~a'...~%" #$(locale-definition-name locale)) @@ -58,20 +72,29 @@ "-i" #$(locale-definition-source locale) "-f" #$(locale-definition-charset locale) (string-append #$output "/" - #$(package-version libc) "/" + #$@(maybe-version-directory) #$(locale-definition-name locale)))))) -(define* (locale-directory locales - #:key (libc (canonical-package glibc))) +(define* (single-locale-directory locales + #:key (libc (canonical-package glibc))) "Return a directory containing all of LOCALES for LIBC compiled. Because locale data formats are incompatible when switching from one libc to another, locale data is put in a sub-directory named after the 'version' field of LIBC." + (define version + (package-version libc)) + (define build #~(begin (mkdir #$output) - (mkdir (string-append #$output "/" #$(package-version libc))) + + ;; XXX: For libcs < 2.22, locale data is stored in the top-level + ;; directory. + ;; TODO: Remove this hack once libc 2.21 is buried. + #$(if (version>=? version "2.22") + #~(mkdir (string-append #$output "/" #$version)) + #~(symlink "." (string-append #$output "/" #$version))) ;; 'localedef' executes 'gzip' to access compressed locale sources. (setenv "PATH" (string-append #$gzip "/bin")) @@ -80,9 +103,38 @@ of LIBC." (and #$@(map (cut localedef-command <> #:libc libc) locales))))) - (gexp->derivation "locale" build + (gexp->derivation (string-append "locale-" version) build #:local-build? #t)) +(define* (locale-directory locales + #:key (libcs %default-locale-libcs)) + "Return a locale directory containing all of LOCALES for each libc package +listed in LIBCS. + +It is useful to list more than one libc when willing to support +already-installed packages built against a different libc since the locale +data format changes between libc versions." + (match libcs + ((libc) + (single-locale-directory locales #:libc libc)) + ((libcs ..1) + (mlet %store-monad ((dirs (mapm %store-monad + (lambda (libc) + (single-locale-directory locales + #:libc libc)) + libcs))) + (gexp->derivation "locale-multiple-versions" + #~(begin + (use-modules (guix build union)) + (union-build #$output (list #$@dirs))) + #:modules '((guix build union)) + #:local-build? #t + #:substitutable? #f))))) + +(define %default-locale-libcs + ;; The libcs for which we build locales by default. + (list (canonical-package glibc))) + (define %default-locale-definitions ;; Arbitrary set of locales that are built by default. They are here mostly ;; to facilitate first-time use to some people, while others may have to add -- cgit v1.2.3 From 4fca58a6c6f0a5c7d3ac2363557fabeb6524865d Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 30 Oct 2015 23:10:01 +0100 Subject: build: Move 'guild compile' flags to a variable. * Makefile.am (GUILD_COMPILE_FLAGS): New variable. (.scm.go): Use it. --- Makefile.am | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Makefile.am b/Makefile.am index 4f90b1d15b..b2ee3245b3 100644 --- a/Makefile.am +++ b/Makefile.am @@ -337,6 +337,10 @@ AM_V_GUILEC = $(AM_V_GUILEC_$(V)) AM_V_GUILEC_ = $(AM_V_GUILEC_$(AM_DEFAULT_VERBOSITY)) AM_V_GUILEC_0 = @echo " GUILEC" $@; +# Flags passed to 'guild compile'. +GUILD_COMPILE_FLAGS = \ + -Wformat -Wunbound-variable -Warity-mismatch + # Unset 'GUILE_LOAD_COMPILED_PATH' altogether while compiling. Otherwise, if # $GUILE_LOAD_COMPILED_PATH contains $(moduledir), we may find .go files in # there that are newer than the local .scm files (for instance because the @@ -352,8 +356,7 @@ AM_V_GUILEC_0 = @echo " GUILEC" $@; LC_ALL=C \ $(top_builddir)/pre-inst-env \ $(GUILD) compile -L "$(top_builddir)" -L "$(top_srcdir)" \ - -Wformat -Wunbound-variable -Warity-mismatch \ - --target="$(host)" \ + $(GUILD_COMPILE_FLAGS) --target="$(host)" \ -o "$@" "$<" SUFFIXES = .go -- cgit v1.2.3 From c9c282cea04ec5a3ee7bd17e6ad8846600220feb Mon Sep 17 00:00:00 2001 From: David Thompson Date: Fri, 30 Oct 2015 21:02:51 -0400 Subject: scripts: environment: Allow lists of packages in expressions. * guix/scripts/environment.scm (options/resolve-packages): Match against lists of packages when evaluating expressions. * tests/guix-environment.sh: Add test. * doc/guix.texi ("invoking guix environment"): Add docs. --- doc/guix.texi | 15 ++++++++++++--- guix/scripts/environment.scm | 24 +++++++++++++++--------- tests/guix-environment.sh | 11 +++++++++++ 3 files changed, 38 insertions(+), 12 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index a164608b73..84f194b14b 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -4730,7 +4730,8 @@ The available options are summarized below. @table @code @item --expression=@var{expr} @itemx -e @var{expr} -Create an environment for the package that @var{expr} evaluates to. +Create an environment for the package or list of packages that +@var{expr} evaluates to. For example, running: @@ -4741,10 +4742,18 @@ guix environment -e '(@@ (gnu packages maths) petsc-openmpi)' starts a shell with the environment for this specific variant of the PETSc package. +Running: + +@example +guix environment --ad-hoc -e '(@ (gnu) %base-packages)' +@end example + +starts a shell with all the GuixSD base packages available. + @item --load=@var{file} @itemx -l @var{file} -Create an environment for the package that the code within @var{file} -evaluates to. +Create an environment for the package or list of packages that the code +within @var{file} evaluates to. As an example, @var{file} might contain a definition like this (@pxref{Defining Packages}): diff --git a/guix/scripts/environment.scm b/guix/scripts/environment.scm index 188838574f..f9ab9a483f 100644 --- a/guix/scripts/environment.scm +++ b/guix/scripts/environment.scm @@ -253,6 +253,18 @@ COMMAND or an interactive shell in that environment.\n")) (define (options/resolve-packages opts) "Return OPTS with package specification strings replaced by actual packages." + (define (package->outputs package mode) + (map (lambda (output) + (list mode package output)) + (package-outputs package))) + + (define (packages->outputs packages mode) + (match packages + ((? package? package) + (package->outputs package mode)) + (((? package? packages) ...) + (append-map (cut package->outputs <> mode) packages)))) + (compact (append-map (match-lambda (('package mode (? string? spec)) @@ -261,17 +273,11 @@ packages." (list (list mode package output)))) (('expression mode str) ;; Add all the outputs of the package STR evaluates to. - (match (read/eval str) - ((? package? package) - (map (lambda (output) - (list mode package output)) - (package-outputs package))))) + (packages->outputs (read/eval str) mode)) (('load mode file) ;; Add all the outputs of the package defined in FILE. - (let ((package (load* file (make-user-module '())))) - (map (lambda (output) - (list mode package output)) - (package-outputs package)))) + (let ((module (make-user-module '()))) + (packages->outputs (load* file module) mode))) (_ '(#f))) opts))) diff --git a/tests/guix-environment.sh b/tests/guix-environment.sh index 49b3b1ccc3..f7b0259e1b 100644 --- a/tests/guix-environment.sh +++ b/tests/guix-environment.sh @@ -111,4 +111,15 @@ then grep -E '^export CPATH=.*-gcc-bootstrap-0/include' "$tmpdir/a" grep -E '^export CPATH=.*-glibc-bootstrap-0/include' "$tmpdir/a" grep -E '^export LIBRARY_PATH=.*-glibc-bootstrap-0/lib' "$tmpdir/a" + + # Make sure a package list can be used with -e. + expr_list_test_code=" +(list (@@ (gnu packages commencement) gnu-make-boot0) + (@ (gnu packages bootstrap) %bootstrap-guile))" + + guix environment --ad-hoc --no-substitutes --search-paths --pure \ + -e "$expr_list_test_code" > "$tmpdir/a" + + grep -E '^export PATH=.*-make-boot0-4.1/bin' "$tmpdir/a" + grep -E '^export PATH=.*-guile-bootstrap-2.0/bin' "$tmpdir/a" fi -- cgit v1.2.3 From ef89cb4263e14887385ef8240b040be052c741c1 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sat, 31 Oct 2015 12:26:43 +0100 Subject: gnu: lablgtk: Build sequentially. * gnu/packages/ocaml.scm (lablgtk)[arguments]: Add #:parallel-build? #f. --- gnu/packages/ocaml.scm | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index fc45805958..ee4e7830b6 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -460,6 +460,11 @@ provers.") ("librsvg" ,librsvg))) (arguments `(#:tests? #f ; no check target + + ;; Occasionally we would get "Error: Unbound module GtkThread" when + ;; compiling 'gtkThInit.ml', with 'make -j'. So build sequentially. + #:parallel-build? #f + #:phases (modify-phases %standard-phases (replace 'install -- cgit v1.2.3 From 3c3e69728c10bcdffa0c597b2b80a482361aea14 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sat, 31 Oct 2015 13:17:23 +0100 Subject: gnu: guitarix: Compile in C++11 mode. * gnu/packages/patches/guitarix-c++11.patch: New file. * gnu-system.am (dist_patch_DATA): Add it. * gnu/packages/audio.scm (guitarix)[source]: Use it. [arguments]: Add --cxxflags to #:configure-flags. --- gnu-system.am | 1 + gnu/packages/audio.scm | 6 +- gnu/packages/patches/guitarix-c++11.patch | 297 ++++++++++++++++++++++++++++++ 3 files changed, 302 insertions(+), 2 deletions(-) create mode 100644 gnu/packages/patches/guitarix-c++11.patch diff --git a/gnu-system.am b/gnu-system.am index 0ee4eebeef..3b7e62ce7d 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -495,6 +495,7 @@ dist_patch_DATA = \ gnu/packages/patches/guile-present-coding.patch \ gnu/packages/patches/guile-relocatable.patch \ gnu/packages/patches/guile-rsvg-pkgconfig.patch \ + gnu/packages/patches/guitarix-c++11.patch \ gnu/packages/patches/gtkglext-disable-disable-deprecated.patch \ gnu/packages/patches/hop-bigloo-4.0b.patch \ gnu/packages/patches/hop-linker-flags.patch \ diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 404a5d9d62..92ece7a47e 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -536,7 +536,8 @@ patches that can be used with softsynths such as Timidity and WildMidi.") version ".tar.bz2")) (sha256 (base32 - "1w6dg2n0alfjsx1iy6s53783invygwxk11p1i65cc3nq3zlidcgx")))) + "1w6dg2n0alfjsx1iy6s53783invygwxk11p1i65cc3nq3zlidcgx")) + (patches (list (search-patch "guitarix-c++11.patch"))))) (build-system waf-build-system) (arguments `(#:tests? #f ; no "check" target @@ -544,7 +545,8 @@ patches that can be used with softsynths such as Timidity and WildMidi.") #:configure-flags (list ;; Add the output lib directory to the RUNPATH. - (string-append "--ldflags=-Wl,-rpath=" %output "/lib")))) + (string-append "--ldflags=-Wl,-rpath=" %output "/lib") + "--cxxflags=-std=c++11"))) (inputs `(("libsndfile" ,libsndfile) ("boost" ,boost) diff --git a/gnu/packages/patches/guitarix-c++11.patch b/gnu/packages/patches/guitarix-c++11.patch new file mode 100644 index 0000000000..599855a223 --- /dev/null +++ b/gnu/packages/patches/guitarix-c++11.patch @@ -0,0 +1,297 @@ +Work around a C++11 incompatibility when compiling the gperf-generated +'jsonrpc_methods.cc' with -std=c++11: + + default/src/gx_head/engine/jsonrpc_methods.cc: In function ‘const CmdConnection::methodnames* in_word_set(const char*, unsigned int)’: + default/src/gx_head/engine/jsonrpc_methods.cc:211:26: error: reference to ‘hash’ is ambiguous + register int key = hash (str, len); + ^ +The solution is to run 'gperf -L C++' so that it generates code with +appropriate C++ name-spacing to avoid the ambiguity. + +--- guitarix-0.33.0/tools/make_jsonrpc_methods 2015-10-31 12:45:52.756587435 +0100 ++++ guitarix-0.33.0/tools/make_jsonrpc_methods 2015-10-31 12:47:02.801103366 +0100 +@@ -14,7 +14,7 @@ def add_enums(template_name, hashtable_n + hashtable = open(hashtable_name, "w") + hashtable.write(headline) + hashtable.flush() +- gperf = Popen(gperf_program, stdin=PIPE, stdout=hashtable) ++ gperf = Popen([gperf_program, "-L", "C++"], stdin=PIPE, stdout=hashtable) + enumlist = [] + section = 0 + in_comment = False + +--- guitarix-0.33.0/src/gx_head/engine/jsonrpc.cpp 2015-10-31 12:50:33.934647842 +0100 ++++ guitarix-0.33.0/src/gx_head/engine/jsonrpc.cpp 2015-10-31 12:50:51.238773730 +0100 +@@ -1171,7 +1171,7 @@ bool CmdConnection::request(gx_system::J + } + } + jp.next(gx_system::JsonParser::end_object); +- const methodnames *p = in_word_set(method.c_str(), method.size()); ++ const methodnames *p = Perfect_Hash::in_word_set(method.c_str(), method.size()); + if (!p) { + throw RpcError(-32601, Glib::ustring::compose("Method not found -- '%1'", method)); + } + + +The following part is adapted from an upstream patch for the new libsigc++. + +commit 001aa683814a7bf4537882c7c3acf1dafd851cd5 +Author: Hermann Meyer +Date: Sat Oct 31 09:33:16 2015 +0100 + + * fix libsigc++ removes sigc::group + +diff --git a/src/gx_head/gui/avahi_discover.cpp b/src/gx_head/gui/avahi_discover.cpp +index c49746e..88993c2 100644 +--- a/src/gx_head/gui/avahi_discover.cpp ++++ b/src/gx_head/gui/avahi_discover.cpp +@@ -193,7 +193,9 @@ SelectInstance::SelectInstance(gx_system::CmdlineOptions& options, Gtk::Window * + win->signal_response().connect(sigc::mem_fun(this, &SelectInstance::on_response)); + bld->get_widget("treeview", view); + view->signal_row_activated().connect( +- sigc::group(sigc::mem_fun(win, &Gtk::Dialog::response), 1)); ++ sigc::mem_fun(this,&SelectInstance::on_row)); ++ //view->signal_row_activated().connect( ++ //sigc::group(sigc::mem_fun(win, &Gtk::Dialog::response), 1)); + view->set_model(Gtk::ListStore::create(cols)); + view->get_selection()->set_mode(Gtk::SELECTION_BROWSE); + view->get_selection()->signal_changed().connect( +@@ -242,6 +244,10 @@ void SelectInstance::on_avahi_changed() { + } + } + ++void SelectInstance::on_row(const Gtk::TreePath& path, Gtk::TreeViewColumn* column) { ++ on_response(1); ++} ++ + void SelectInstance::on_response(int response_id) { + if (response_id == 1) { + Gtk::TreeIter i = view->get_selection()->get_selected(); +diff --git a/src/gx_head/gui/gx_main.cpp b/src/gx_head/gui/gx_main.cpp +index d1ad329..a207aa6 100644 +--- a/src/gx_head/gui/gx_main.cpp ++++ b/src/gx_head/gui/gx_main.cpp +@@ -281,8 +281,10 @@ void ErrorPopup::show_msg() { + align->set_padding(50,20,0,10); + Gtk::VBox *vbox = dynamic_cast(dialog->get_child()); + vbox->set_redraw_on_allocate(true); +- vbox->signal_expose_event().connect( +- sigc::group(&gx_cairo::error_box_expose,GTK_WIDGET(vbox->gobj()),sigc::_1,(void*)0),false); ++ g_signal_connect(GTK_WIDGET(vbox->gobj()), "expose-event", ++ G_CALLBACK(gx_cairo::error_box_expose), NULL); ++ // vbox->signal_expose_event().connect( ++ //sigc::group(&gx_cairo::error_box_expose,GTK_WIDGET(vbox->gobj()),sigc::_1,(void*)0),false); + dialog->set_title(_("GUITARIX ERROR")); + dialog->signal_response().connect( + sigc::mem_fun(*this, &ErrorPopup::on_response)); +@@ -306,9 +308,11 @@ GxSplashBox::GxSplashBox() + : Gtk::Window(Gtk::WINDOW_POPUP) { + set_redraw_on_allocate(true); + set_app_paintable(); +- signal_expose_event().connect( +- sigc::group(&gx_cairo::splash_expose, GTK_WIDGET(gobj()), +- sigc::_1, (void*)0), false); ++ g_signal_connect(GTK_WIDGET(gobj()), "expose-event", ++ G_CALLBACK(gx_cairo::splash_expose), NULL); ++ //signal_expose_event().connect( ++ // sigc::group(&gx_cairo::splash_expose, GTK_WIDGET(gobj()), ++ // sigc::_1, (void*)0), false); + set_decorated(false); + set_type_hint(Gdk::WINDOW_TYPE_HINT_SPLASHSCREEN); + set_position(Gtk::WIN_POS_CENTER ); +diff --git a/src/gx_head/gui/gx_main_window.cpp b/src/gx_head/gui/gx_main_window.cpp +index 23c9ae6..eb0e201 100644 +--- a/src/gx_head/gui/gx_main_window.cpp ++++ b/src/gx_head/gui/gx_main_window.cpp +@@ -1303,6 +1303,23 @@ void MainWindow::on_log_activate() { + fLoggingWindow.hide(); + } + } ++// show loggingbox ++bool MainWindow::on_log_activated(GdkEventButton* ev) { ++ if (ev->type == GDK_BUTTON_PRESS && ev->button == 1) { ++ if (!actions.loggingbox->get_active()) { ++ actions.loggingbox->set_active(true); ++ gint rxorg, ryorg; ++ window->get_position(rxorg, ryorg); ++ fLoggingWindow.move(rxorg+5, ryorg+272); ++ fLoggingWindow.show_all(); ++ on_msg_level_changed(); ++ } else { ++ fLoggingWindow.hide(); ++ actions.loggingbox->set_active(false); ++ } ++ } ++ return true; ++} + + void MainWindow::on_engine_toggled() { + gx_engine::GxEngineState s; +@@ -2119,6 +2136,14 @@ bool MainWindow::on_toggle_mute(GdkEventButton* ev) { + return true; + } + ++bool MainWindow::on_jackserverconnection(GdkEventButton* ev) { ++ if (ev->type == GDK_BUTTON_PRESS && ev->button == 1) { ++ bool v = actions.jackserverconnection->get_active(); ++ actions.jackserverconnection->set_active(!v); ++ } ++ return true; ++} ++ + void MainWindow::on_msg_level_changed() { + switch (fLoggingWindow.get_unseen_msg_level()) { + case GxLogger::kWarning: logstate_image->set(pixbuf_log_yellow); break; +@@ -2683,12 +2708,14 @@ MainWindow::MainWindow(gx_engine::GxMachineBase& machine_, gx_system::CmdlineOpt + */ + if (jack) { + jackd_image->set(pixbuf_jack_disconnected); +- jackd_image->get_parent()->signal_button_press_event().connect( +- sigc::bind_return( +- sigc::group( +- sigc::ptr_fun(toggle_action), +- actions.jackserverconnection), +- true)); ++ jackd_image->get_parent()->signal_button_press_event().connect( ++ sigc::mem_fun(*this, &MainWindow::on_jackserverconnection)); ++ //jackd_image->get_parent()->signal_button_press_event().connect( ++ // sigc::bind_return( ++ // sigc::group( ++ // sigc::ptr_fun(toggle_action), ++ // actions.jackserverconnection), ++ // true)); + } else { + jackd_image->hide(); + } +@@ -2823,11 +2850,14 @@ MainWindow::MainWindow(gx_engine::GxMachineBase& machine_, gx_system::CmdlineOpt + false)); + on_msg_level_changed(); + logstate_image->get_parent()->signal_button_press_event().connect( +- sigc::bind_return( +- sigc::group( +- sigc::ptr_fun(toggle_action), +- actions.loggingbox), +- true)); ++ sigc::mem_fun(*this, &MainWindow::on_log_activated)); ++ ++ //logstate_image->get_parent()->signal_button_press_event().connect( ++ //sigc::bind_return( ++ // sigc::group( ++ // sigc::ptr_fun(toggle_action), ++ // actions.loggingbox), ++ // true)); + + /* + ** load plugin definitions into plugin_dict, add to effects_toolpalette +diff --git a/src/gx_head/gui/gx_portmap.cpp b/src/gx_head/gui/gx_portmap.cpp +index d8a6ae6..e711ee7 100644 +--- a/src/gx_head/gui/gx_portmap.cpp ++++ b/src/gx_head/gui/gx_portmap.cpp +@@ -578,12 +578,16 @@ PortMapWindow::PortMapWindow(Glib::RefPtr bld, gx_jack::GxJac + b->set_name("rack_button"); + Gtk::VBox *vbox1; + bld->find_widget("dialog-vbox1", vbox1); +- vbox1->signal_expose_event().connect( +- sigc::group(&gx_cairo::rectangle_skin_color_expose,GTK_WIDGET(vbox1->gobj()),sigc::_1,(void*)0),false); ++ g_signal_connect(GTK_WIDGET(vbox1->gobj()), "expose-event", ++ G_CALLBACK(gx_cairo::rectangle_skin_color_expose), NULL); ++ // vbox1->signal_expose_event().connect( ++ //sigc::group(&gx_cairo::rectangle_skin_color_expose,GTK_WIDGET(vbox1->gobj()),sigc::_1,(void*)0),false); + Gtk::VBox *vbox2; + bld->find_widget("dialog-vbox2", vbox2); +- vbox2->signal_expose_event().connect( +- sigc::group(&gx_cairo::rectangle_skin_color_expose,GTK_WIDGET(vbox2->gobj()),sigc::_1,(void*)0),false); ++ g_signal_connect(GTK_WIDGET(vbox2->gobj()), "expose-event", ++ G_CALLBACK(gx_cairo::rectangle_skin_color_expose), NULL); ++ // vbox2->signal_expose_event().connect( ++// sigc::group(&gx_cairo::rectangle_skin_color_expose,GTK_WIDGET(vbox2->gobj()),sigc::_1,(void*)0),false); + vbox1->set_redraw_on_allocate(true); + vbox2->set_redraw_on_allocate(true); + for (int i = 0; i < number_of_ports; ++i) { +diff --git a/src/headers/avahi_discover.h b/src/headers/avahi_discover.h +index 5af5949..b6f523a 100644 +--- a/src/headers/avahi_discover.h ++++ b/src/headers/avahi_discover.h +@@ -91,6 +91,7 @@ private: + } cols; + private: + void on_response(int response_id); ++ void on_row(const Gtk::TreePath& path, Gtk::TreeViewColumn* column); + void on_avahi_changed(); + void on_selection_changed(); + public: +diff --git a/src/headers/gx_main_window.h b/src/headers/gx_main_window.h +index 3b54285..e7c02ce 100644 +--- a/src/headers/gx_main_window.h ++++ b/src/headers/gx_main_window.h +@@ -720,6 +720,7 @@ private: + void on_load_ladspa(); + void delete_select_jack_control(); + void on_log_activate(); ++ bool on_log_activated(GdkEventButton* ev); + void do_program_change(int pgm); + void on_engine_toggled(); + void on_engine_state_change(gx_engine::GxEngineState state); +@@ -728,6 +729,7 @@ private: + void setup_tuner_temperament(Gxw::RackTuner& tuner); + void setup_tuner(Gxw::RackTuner& tuner); + bool on_toggle_mute(GdkEventButton* ev); ++ bool on_jackserverconnection(GdkEventButton* ev); + void on_msg_level_changed(); + void on_ampdetail_switch(bool compress, bool setparam); + void on_show_oscilloscope(bool v); + +The following is adapted from this upstream patch, which does a whole +bunch of unrelated things. + +commit 44ab541a5a846c0b3832f4225d1ae92183d55550 +Author: Hermann Meyer +Date: Fri Oct 30 08:47:42 2015 +0100 + + * add 53 tet tuner option + * add online preset download widget (requiers libwebkit-1.0 + * fix bug #27 + * fix build fail with c++11 system libs (make c++11 default) + +--- a/src/LV2/gx_amp.lv2/gxamp_gui.cpp ++++ b/src/LV2/gx_amp.lv2/gxamp_gui.cpp +@@ -124,7 +124,7 @@ void GXPluginGUI::set_skin() + gtk_rc_parse_string (toparse.c_str()); + } + +-inline std::string to_string(long long _Val) ++inline std::string t_string(long long _Val) + { // convert int to string + char _Buf[128]; + sprintf(_Buf, "%lld", _Val); +@@ -136,7 +136,7 @@ void GXPluginGUI::set_plug_name() + // Here the plugin should have different name for different amp..... + addKnob = ""; + plugskin = "amp21.png"; +- plug_name = "GUITARIXLV2" + to_string(reinterpret_cast(this)); ++ plug_name = "GUITARIXLV2" + t_string(reinterpret_cast(this)); + //fprintf(stderr,"%s",plug_name.c_str()); + } + +diff --git a/src/LV2/gx_amp_stereo.lv2/gxamp_stereo_gui.cpp b/src/LV2/gx_amp_stereo.lv2/gxamp_stereo_gui.cpp +index d5947ee..edc1caa 100644 +--- a/src/LV2/gx_amp_stereo.lv2/gxamp_stereo_gui.cpp ++++ b/src/LV2/gx_amp_stereo.lv2/gxamp_stereo_gui.cpp +@@ -124,7 +124,7 @@ void GXPluginGUI::set_skin() + gtk_rc_parse_string (toparse.c_str()); + } + +-inline std::string to_string(long long _Val) ++inline std::string t_string(long long _Val) + { // convert int to string + char _Buf[128]; + sprintf(_Buf, "%lld", _Val); +@@ -135,7 +135,7 @@ void GXPluginGUI::set_plug_name() + { + addKnob = ""; + plugskin = "amp21.png"; +- plug_name = "GUITARIXLV2" + to_string(reinterpret_cast(this)); ++ plug_name = "GUITARIXLV2" + t_string(reinterpret_cast(this)); + } + + GtkWidget* GXPluginGUI::make_gui() -- cgit v1.2.3 From 375c610844c7776470edb88eafb18c48c6c90187 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sat, 31 Oct 2015 11:17:08 +0100 Subject: services: 'tor-service' takes a 'config-file' parameter. * gnu/services/networking.scm (tor-dmd-service): Take a 'config' parameter and honor it. (tor-service): Take a 'config-file' parameter. Pass it in the service's value. * doc/guix.texi (Networking Services): Adjust accordingly. --- doc/guix.texi | 10 +++++---- gnu/services/networking.scm | 49 ++++++++++++++++++++++++++++++--------------- 2 files changed, 39 insertions(+), 20 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 84f194b14b..483d6e2608 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -6393,11 +6393,13 @@ keep the system clock synchronized with that of @var{servers}. List of host names used as the default NTP servers. @end defvr -@deffn {Scheme Procedure} tor-service [#:tor tor] -Return a service to run the @uref{https://torproject.org,Tor} daemon. +@deffn {Scheme Procedure} tor-service [@var{config-file}] [#:tor @var{tor}] +Return a service to run the @uref{https://torproject.org, Tor} anonymous +networking daemon. -The daemon runs with the default settings (in particular the default exit -policy) as the @code{tor} unprivileged user. +The daemon runs as the @code{tor} unprivileged user. It is passed +@var{config-file}, a file-like object, with an additional @code{User tor} +line. Run @command{man tor} for information about the configuration file. @end deffn @deffn {Scheme Procedure} bitlbee-service [#:bitlbee bitlbee] @ diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm index 003d5a5010..d33ff4fc4a 100644 --- a/gnu/services/networking.scm +++ b/gnu/services/networking.scm @@ -316,20 +316,33 @@ keep the system clock synchronized with that of @var{servers}." (home-directory "/var/empty") (shell #~(string-append #$shadow "/sbin/nologin"))))) -(define (tor-dmd-service tor) +(define (tor-dmd-service config) "Return a running TOR." - (let ((torrc (plain-file "torrc" "User tor\n"))) - (list (dmd-service - (provision '(tor)) + (match config + ((tor config-file) + (let ((torrc (computed-file "torrc" + #~(begin + (use-modules (guix build utils)) + (call-with-output-file #$output + (lambda (port) + (display "\ +User tor # automatically added\n" port) + (call-with-input-file #$config-file + (lambda (input) + (dump-port input port))) + #t))) + #:modules '((guix build utils))))) + (list (dmd-service + (provision '(tor)) - ;; Tor needs at least one network interface to be up, hence the - ;; dependency on 'loopback'. - (requirement '(user-processes loopback)) + ;; Tor needs at least one network interface to be up, hence the + ;; dependency on 'loopback'. + (requirement '(user-processes loopback)) - (start #~(make-forkexec-constructor - (list (string-append #$tor "/bin/tor") "-f" #$torrc))) - (stop #~(make-kill-destructor)) - (documentation "Run the Tor anonymous network overlay."))))) + (start #~(make-forkexec-constructor + (list (string-append #$tor "/bin/tor") "-f" #$torrc))) + (stop #~(make-kill-destructor)) + (documentation "Run the Tor anonymous network overlay."))))))) (define tor-service-type (service-type (name 'tor) @@ -339,12 +352,16 @@ keep the system clock synchronized with that of @var{servers}." (service-extension account-service-type (const %tor-accounts)))))) -(define* (tor-service #:key (tor tor)) - "Return a service to run the @uref{https://torproject.org,Tor} daemon. +(define* (tor-service #:optional + (config-file (plain-file "empty" "")) + #:key (tor tor)) + "Return a service to run the @uref{https://torproject.org, Tor} anonymous +networking daemon. -The daemon runs with the default settings (in particular the default exit -policy) as the @code{tor} unprivileged user." - (service tor-service-type tor)) +The daemon runs as the @code{tor} unprivileged user. It is passed +@var{config-file}, a file-like object, with an additional @code{User tor} +line. Run @command{man tor} for information about the configuration file." + (service tor-service-type (list tor config-file))) ;;; -- cgit v1.2.3 From b0e44d4f7d13b1c67899aab14385155cc648cfd8 Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Wed, 28 Oct 2015 20:48:45 +0300 Subject: emacs: Add shell completions for 'guix refresh --type'. * emacs/guix-pcomplete.el (guix-pcomplete-refresh-updaters): New function. (guix-pcomplete-complete-option-arg): Complete '-t/--type' option for 'guix refresh' command. --- emacs/guix-pcomplete.el | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/emacs/guix-pcomplete.el b/emacs/guix-pcomplete.el index 98f8efd1d2..85b267a78d 100644 --- a/emacs/guix-pcomplete.el +++ b/emacs/guix-pcomplete.el @@ -128,6 +128,13 @@ subcommands, actions, etc. for this guix COMMAND." guix-help-parse-regexp-group "graph" "--list-types")) +(guix-memoized-defun guix-pcomplete-refresh-updaters () + "Return a list of all available refresh updater types." + (guix-pcomplete-run-guix-and-search + guix-help-parse-list-regexp + guix-help-parse-regexp-group + "refresh" "--list-updaters")) + ;;; Completing @@ -287,9 +294,13 @@ INPUT is the current partially completed string." (option? "-u" "--user")) (complete* (pcmpl-unix-user-names))) - ((and (command? "refresh") - (option? "-s" "--select")) - (complete* guix-help-refresh-subsets)) + ((command? "refresh") + (cond + ((option? "-s" "--select") + (complete* guix-help-refresh-subsets)) + ((option? "-t" "--type") + (guix-pcomplete-complete-comma-args + (guix-pcomplete-refresh-updaters))))) ((and (command? "size") (option? "-m" "--map-file")) -- cgit v1.2.3 From fbd213a83ffc80c432e0c62868e56c020729a49f Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Sat, 31 Oct 2015 22:59:45 +0300 Subject: guix system: Fix typo in --help message. * guix/scripts/system.scm (show-help): Align 'container' the same way as other actions. --- guix/scripts/system.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm index 499038ffa1..7be734785a 100644 --- a/guix/scripts/system.scm +++ b/guix/scripts/system.scm @@ -529,7 +529,7 @@ Build the operating system declared in FILE according to ACTION.\n")) (display (_ "\ build build the operating system without installing anything\n")) (display (_ "\ - container build a container that shares the host's store\n")) + container build a container that shares the host's store\n")) (display (_ "\ vm build a virtual machine image that shares the host's store\n")) (display (_ "\ -- cgit v1.2.3 From 20ce2fee3364aa508c7ed03a0d519c783782a8b8 Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Thu, 29 Oct 2015 21:27:56 +0300 Subject: emacs: Add key bindings for 'guix-build-log-minor-mode'. * emacs/guix-build-log.el (guix-build-log-mode-map): Move keys to ... (guix-build-log-common-map): ...here. New variable. (guix-build-log-minor-mode-map): New variable. (guix-build-log-minor-mode): Use it. * doc/emacs.texi (Emacs Build Log): Document it. --- doc/emacs.texi | 13 +++++++------ emacs/guix-build-log.el | 24 +++++++++++++++++++++--- 2 files changed, 28 insertions(+), 9 deletions(-) diff --git a/doc/emacs.texi b/doc/emacs.texi index b36e859b4a..03dc9519f8 100644 --- a/doc/emacs.texi +++ b/doc/emacs.texi @@ -646,12 +646,13 @@ Toggle (show/hide) the bodies of all build phases. @end table There is also @kbd{M-x guix-build-log-minor-mode} which also provides -the same highlighting (but not key bindings). And as it is a minor -mode, it can be enabled in any buffer. For example, if you are building -some package in a shell buffer (@pxref{Interactive Shell,,, emacs, The -GNU Emacs Manual}), you may enable @command{guix-build-log-minor-mode} -to make it more colorful. Guix build output is rather specific, so this -new highlighting shouldn't conflict with the existing one. +the same highlighting. And as it is a minor mode, it can be enabled in +any buffer. For example, if you are building some package in a shell +buffer (@pxref{Interactive Shell,,, emacs, The GNU Emacs Manual}), you +may enable @command{guix-build-log-minor-mode} to make it more colorful. +Guix build output is rather specific, so this new highlighting shouldn't +conflict with the existing one. This mode also provides the same key +bindings as the major mode, but prefixed with @kbd{C-c}. @node Emacs Completions diff --git a/emacs/guix-build-log.el b/emacs/guix-build-log.el index c0855b284c..e28dce4471 100644 --- a/emacs/guix-build-log.el +++ b/emacs/guix-build-log.el @@ -178,9 +178,8 @@ STATE is a symbol denoting how a build phase was ended. It should be (3 'guix-build-log-phase-seconds prepend))) "A list of `font-lock-keywords' for `guix-build-log-mode'.") -(defvar guix-build-log-mode-map +(defvar guix-build-log-common-map (let ((map (make-sparse-keymap))) - (set-keymap-parent map special-mode-map) (define-key map (kbd "M-n") 'guix-build-log-next-phase) (define-key map (kbd "M-p") 'guix-build-log-previous-phase) (define-key map (kbd "TAB") 'guix-build-log-phase-toggle) @@ -188,8 +187,24 @@ STATE is a symbol denoting how a build phase was ended. It should be (define-key map (kbd "") 'guix-build-log-phase-toggle-all) (define-key map [(shift tab)] 'guix-build-log-phase-toggle-all) map) + "Parent keymap for 'build-log' buffers. +For `guix-build-log-mode' this map is used as is. +For `guix-build-log-minor-mode' this map is prefixed with 'C-c'.") + +(defvar guix-build-log-mode-map + (let ((map (make-sparse-keymap))) + (set-keymap-parent + map (make-composed-keymap (list guix-build-log-common-map) + special-mode-map)) + map) "Keymap for `guix-build-log-mode' buffers.") +(defvar guix-build-log-minor-mode-map + (let ((map (make-sparse-keymap))) + (define-key map (kbd "C-c") guix-build-log-common-map) + map) + "Keymap for `guix-build-log-minor-mode' buffers.") + (defun guix-build-log-phase-start (&optional with-header?) "Return the start point of the current build phase. If WITH-HEADER? is non-nil, do not skip 'starting phase ...' header. @@ -319,9 +334,12 @@ When Guix Build Log minor mode is enabled, it highlights build log in the current buffer. This mode can be enabled programmatically using hooks: - (add-hook 'shell-mode-hook 'guix-build-log-minor-mode)" + (add-hook 'shell-mode-hook 'guix-build-log-minor-mode) + +\\{guix-build-log-minor-mode-map}" :init-value nil :lighter " Guix-Build-Log" + :keymap guix-build-log-minor-mode-map :group 'guix-build-log (if guix-build-log-minor-mode (font-lock-add-keywords nil guix-build-log-font-lock-keywords) -- cgit v1.2.3 From c42e6c6c2f7163396cec977f60bcc3d02d87bd3c Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Thu, 29 Oct 2015 21:05:17 +0300 Subject: emacs: Disable minor modes in 'guix-build-log-mode'. * emacs/guix-build-log.el (guix-build-log-mode-hook): Remove 'compilation-shell-minor-mode' as it is slow on big buffers, and 'view-mode' as it rebinds too many keys. (guix-build-log-mode-map): Add "c" and "v" key bindings for the removed minor modes. --- emacs/guix-build-log.el | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/emacs/guix-build-log.el b/emacs/guix-build-log.el index e28dce4471..c209100ffd 100644 --- a/emacs/guix-build-log.el +++ b/emacs/guix-build-log.el @@ -102,10 +102,7 @@ "Face for the number of seconds for a phase." :group 'guix-build-log-faces) -(defcustom guix-build-log-mode-hook - ;; Not using `compilation-minor-mode' because it rebinds some standard - ;; keys, including M-n/M-p. - '(compilation-shell-minor-mode view-mode) +(defcustom guix-build-log-mode-hook '() "Hook run after `guix-build-log-mode' is entered." :type 'hook :group 'guix-build-log) @@ -196,6 +193,8 @@ For `guix-build-log-minor-mode' this map is prefixed with 'C-c'.") (set-keymap-parent map (make-composed-keymap (list guix-build-log-common-map) special-mode-map)) + (define-key map (kbd "c") 'compilation-shell-minor-mode) + (define-key map (kbd "v") 'view-mode) map) "Keymap for `guix-build-log-mode' buffers.") -- cgit v1.2.3 From 08859404c0a52af8ef9a083399814d081774893a Mon Sep 17 00:00:00 2001 From: Andreas Enge Date: Sun, 1 Nov 2015 13:23:08 +0100 Subject: gnu: Remove aarddict. * gnu/packages/aarddict.scm: Remove file. * gnu-system.am (GNU_SYSTEM_MODULES): Unregister file. --- gnu-system.am | 1 - gnu/packages/aarddict.scm | 70 ----------------------------------------------- 2 files changed, 71 deletions(-) delete mode 100644 gnu/packages/aarddict.scm diff --git a/gnu-system.am b/gnu-system.am index 3b7e62ce7d..f140ab6be8 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -25,7 +25,6 @@ GNU_SYSTEM_MODULES = \ gnu.scm \ gnu/artwork.scm \ gnu/packages.scm \ - gnu/packages/aarddict.scm \ gnu/packages/abduco.scm \ gnu/packages/abiword.scm \ gnu/packages/acct.scm \ diff --git a/gnu/packages/aarddict.scm b/gnu/packages/aarddict.scm deleted file mode 100644 index 76c7aa4f33..0000000000 --- a/gnu/packages/aarddict.scm +++ /dev/null @@ -1,70 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2015 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 aarddict) - #:use-module ((guix licenses) #:select (gpl3)) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix build-system python) - #:use-module (gnu packages python) - #:use-module (gnu packages qt)) - -(define-public aarddict - (package - (name "aarddict") - (version "0.9.3") - (source - (origin - (method url-fetch) - (uri (string-append "https://github.com/aarddict/desktop/archive/" - version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "12h7m0z7nd7rg8avpi9syd265k0rhh4vbdh464nq0jzdg8m9p28c")))) - (build-system python-build-system) - (inputs - `(("python2-pyicu" ,python2-pyicu) - ("python2-pyqt-4" ,python2-pyqt-4) - ("python2-setuptools" ,python2-setuptools) - ("python2-simplejson" ,python2-simplejson) - ("python2-sip" ,python2-sip))) - (arguments - `(#:python ,python-2 ; incompatible with Python 3 - #:phases - (alist-cons-before - 'build 'configure - ;; Force data into the output instead of the python package. - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (substitute* "setup.py" - (("sys.prefix") (string-append "'" out "'"))))) - %standard-phases))) - (home-page "http://aarddict.org/index.html") - (synopsis - "Dictionary program and offline Wikipedia reader") - (description - "Aard Dictionary is a free, fast, easy to use word lookup program that -looks up words fast even with huge dictionaries like English Wikipedia; -looks up words in multiple dictionaries in multiple languages without -switching; -works great as offline Wikipedia reader; -is keyboard navigation friendly; -has efficient, highly compressed dictionary data storage format with -ability to verify data integrity built-in.") - (license gpl3))) -- cgit v1.2.3 From cbe95af7123fe4d384d36f4a55bfba7286a8de1b Mon Sep 17 00:00:00 2001 From: Manolis Ragkousis Date: Wed, 19 Aug 2015 14:11:15 +0300 Subject: Remove unneeded HAVE_UNSHARE. * src/libstore/build.cc (CHROOT_ENABLED): Remove HAVE_UNSHARE. --- nix/libstore/build.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nix/libstore/build.cc b/nix/libstore/build.cc index a9eedcef16..efe1ab2b17 100644 --- a/nix/libstore/build.cc +++ b/nix/libstore/build.cc @@ -51,7 +51,7 @@ #include #endif -#define CHROOT_ENABLED HAVE_CHROOT && HAVE_UNSHARE && HAVE_SYS_MOUNT_H && defined(MS_BIND) && defined(MS_PRIVATE) && defined(CLONE_NEWNS) && defined(SYS_pivot_root) +#define CHROOT_ENABLED HAVE_CHROOT && HAVE_SYS_MOUNT_H && defined(MS_BIND) && defined(MS_PRIVATE) && defined(CLONE_NEWNS) && defined(SYS_pivot_root) #if CHROOT_ENABLED #include -- cgit v1.2.3 From 043f4698f0f1913ca29e73fcde1e66176fbaee33 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sat, 31 Oct 2015 22:29:08 +0100 Subject: doc: Suggest diffing things with --no-dereference. * doc/guix.texi (Invoking guix challenge): Add --no-dereference in 'diff' example. --- doc/guix.texi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/guix.texi b/doc/guix.texi index 483d6e2608..b59b3b22e5 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -4984,7 +4984,7 @@ these lines (@pxref{Invoking guix archive}): @example $ wget -q -O - http://hydra.gnu.org/nar/@dots{}-git-2.5.0 \ | guix archive -x /tmp/git -$ diff -ur /gnu/store/@dots{}-git.2.5.0 /tmp/git +$ diff -ur --no-dereference /gnu/store/@dots{}-git.2.5.0 /tmp/git @end example This command shows the difference between the files resulting from the -- cgit v1.2.3 From 320ca99917c7bc028fa2f9df0fabe8f71ba988f7 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sat, 31 Oct 2015 22:37:23 +0100 Subject: tests: Make sure the daemon dumps directory entries deterministically. * tests/store.scm ("write-file & export-path yield the same result"): New test. --- tests/store.scm | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) diff --git a/tests/store.scm b/tests/store.scm index 96b64781dd..60d1085f99 100644 --- a/tests/store.scm +++ b/tests/store.scm @@ -20,6 +20,7 @@ #:use-module (guix tests) #:use-module (guix store) #:use-module (guix utils) + #:use-module (guix monads) #:use-module (guix hash) #:use-module (guix base32) #:use-module (guix packages) @@ -592,6 +593,72 @@ (equal? (list file0) (references %store file1)) (equal? (list file1) (references %store file2)))))) +(test-assert "write-file & export-path yield the same result" + ;; Here we compare 'write-file' and the daemon's own implementation. + ;; 'write-file' is the reference because we know it sorts file + ;; deterministically. Conversely, the daemon uses 'readdir' and the entries + ;; currently happen to be sorted as a side-effect of some unrelated + ;; operation (search for 'unhacked' in archive.cc.) Make sure we detect any + ;; changes there. + (run-with-store %store + (mlet* %store-monad ((drv1 (package->derivation %bootstrap-guile)) + (out1 -> (derivation->output-path drv1)) + (data -> (unfold (cut >= <> 26) + (lambda (i) + (random-bytevector 128)) + 1+ 0)) + (build + -> #~(begin + (use-modules (rnrs io ports) (srfi srfi-1)) + (let () + (define letters + (map (lambda (i) + (string + (integer->char + (+ i (char->integer #\a))))) + (iota 26))) + (define (touch file data) + (call-with-output-file file + (lambda (port) + (put-bytevector port data)))) + + (mkdir #$output) + (chdir #$output) + + ;; The files must be different so they have + ;; different inode numbers, and the inode + ;; order must differ from the lexicographic + ;; order. + (for-each touch + (append (drop letters 10) + (take letters 10)) + (list #$@data)) + #t))) + (drv2 (gexp->derivation "bunch" build)) + (out2 -> (derivation->output-path drv2)) + (item-info -> (store-lift query-path-info))) + (mbegin %store-monad + (built-derivations (list drv1 drv2)) + (foldm %store-monad + (lambda (item result) + (define ref-hash + (let-values (((port get) (open-sha256-port))) + (write-file item port) + (close-port port) + (get))) + + ;; 'query-path-info' returns a hash produced by using the + ;; daemon's C++ 'dump' function, which is the implementation + ;; under test. + (>>= (item-info item) + (lambda (info) + (return + (and result + (bytevector=? (path-info-hash info) ref-hash)))))) + #t + (list out1 out2)))) + #:guile-for-build (%guile-for-build))) + (test-assert "import corrupt path" (let* ((text (random-text)) (file (add-text-to-store %store "text" text)) -- cgit v1.2.3 From c51525895aa6f9ae7a6d2cd67c023f7c875f6a4b Mon Sep 17 00:00:00 2001 From: Manolis Ragkousis Date: Sun, 1 Nov 2015 14:03:16 +0200 Subject: gnu: gnumach-headers: Update to 1.6 * gnu/packages/hurd.scm (gnumach-headers): Update to version 1.6. --- gnu/packages/hurd.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/hurd.scm b/gnu/packages/hurd.scm index 3867b4d7ec..9248236cef 100644 --- a/gnu/packages/hurd.scm +++ b/gnu/packages/hurd.scm @@ -32,7 +32,7 @@ (define-public gnumach-headers (package (name "gnumach-headers") - (version "1.5") + (version "1.6") (source (origin (method url-fetch) @@ -40,7 +40,7 @@ version ".tar.gz")) (sha256 (base32 - "0wsf57q4h6xl2jn28d423qx7zplmhpnf9ssm4f1c0sf8513xm81j")))) + "1m7xwsrv6x6gk9xi5phs104rdn9q3lr63p348vyv0dzd6r3zyncb")))) (build-system gnu-build-system) (arguments `(#:phases (alist-replace -- cgit v1.2.3 From 212c664889d4a8bc0cfa3d5ac6bc4b4a2f8be327 Mon Sep 17 00:00:00 2001 From: Manolis Ragkousis Date: Sun, 1 Nov 2015 14:40:01 +0200 Subject: gnu: mig: Update to 1.6 * gnu/packages/hurd.scm (mig): Update to version 1.6. --- gnu/packages/hurd.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/hurd.scm b/gnu/packages/hurd.scm index 9248236cef..2cc4670c75 100644 --- a/gnu/packages/hurd.scm +++ b/gnu/packages/hurd.scm @@ -66,7 +66,7 @@ (define-public mig (package (name "mig") - (version "1.5") + (version "1.6") (source (origin (method url-fetch) @@ -74,7 +74,7 @@ version ".tar.gz")) (sha256 (base32 - "13r1pg8icyc0pl082z7k36i440pr1f3nr7ahig3rrc0r7qndqmk9")))) + "1i9qd6j5g8wsv9k9n6vpdqflyw0284wyayb2s2h7pp4yyi2jsksk")))) (build-system gnu-build-system) ;; Flex is needed both at build and run time. (inputs `(("gnumach-headers" ,gnumach-headers) -- cgit v1.2.3 From 67010dd886402d60c6cb2776b7c1b4655ac87986 Mon Sep 17 00:00:00 2001 From: Manolis Ragkousis Date: Sun, 1 Nov 2015 15:46:27 +0200 Subject: gnu: hurd-headers: Update to 0.7 * gnu/packages/hurd.scm (hurd-headers): Update to version 0.7. --- gnu/packages/hurd.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/hurd.scm b/gnu/packages/hurd.scm index 2cc4670c75..e95f50ab6e 100644 --- a/gnu/packages/hurd.scm +++ b/gnu/packages/hurd.scm @@ -97,14 +97,14 @@ communication.") (define-public hurd-headers (package (name "hurd-headers") - (version "0.6") + (version "0.7") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/hurd/hurd-" version ".tar.gz")) (sha256 (base32 - "059lbspbpcjpcq5jf98f47jw9sm0ngs3x6phxax53m3rwca1fk7y")))) + "1q2pyc16vb5plqi8hlwnnc9jk8zlifm91cavz6x7vhbwy0nh2yvh")))) (build-system gnu-build-system) (native-inputs `(;; Autoconf shouldn't be necessary but there seems to be a bug in the -- cgit v1.2.3 From 222e3319bd9e942070be57933a50996e3c73cb39 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 1 Nov 2015 17:19:33 +0100 Subject: services: 'polkit-service-type' can now be extended. * gnu/packages/polkit.scm (polkit)[source]: Adjust snippet so that rules and actions are looked for under /etc/polkit-1. * gnu/services/desktop.scm (): New record type. (polkit-directory, polkit-etc-files, polkit-setuid-programs): New procedures. (polkit-service-type)[compose, extend]: New fields. (polkit-service): Refine docstring. (colord-service-type): Extend POLKIT-SERVICE-TYPE. (elogind-configuration-file): Extend POLKIT-SERVICE-TYPE. * doc/guix.texi (Desktop Services): Update 'polkit-service' documentation. --- doc/guix.texi | 13 ++-- gnu/packages/polkit.scm | 18 +++-- gnu/services/desktop.scm | 166 +++++++++++++++++++++++++++++++---------------- 3 files changed, 125 insertions(+), 72 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index b59b3b22e5..1215c6c277 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -6716,12 +6716,13 @@ their default values are: @deffn {Scheme Procedure} polkit-service @ [#:polkit @var{polkit}] -Return a service that runs the Polkit privilege manager. -@uref{http://www.freedesktop.org/wiki/Software/polkit/, Polkit} allows -system administrators to grant access to privileged operations in a -structured way. For example, polkit rules can allow a logged-in user -whose session is active to shut down the machine, if there are no other -users active. +Return a service that runs the +@uref{http://www.freedesktop.org/wiki/Software/polkit/, Polkit privilege +management service}, which allows system administrators to grant access to +privileged operations in a structured way. By querying the Polkit service, a +privileged system component can know when it should grant additional +capabilities to ordinary users. For example, an ordinary user can be granted +the capability to suspend the system if the user is logged in locally. @end deffn @deffn {Scheme Procedure} upower-service [#:upower @var{upower}] @ diff --git a/gnu/packages/polkit.scm b/gnu/packages/polkit.scm index 13db7b6e65..4cafb45d92 100644 --- a/gnu/packages/polkit.scm +++ b/gnu/packages/polkit.scm @@ -65,18 +65,16 @@ (substitute* "src/polkitbackend/polkitbackendjsauthority.c" (("systemd") "elogind")) - (substitute* "src/polkitagent/polkitagentsession.c" - (("PACKAGE_PREFIX \"/lib/polkit-1/polkit-agent-helper-1\"") - "\"/run/setuid-programs/polkit-agent-helper-1\"")) + ;; GuixSD's polkit service stores actions under + ;; /etc/polkit-1/actions. (substitute* "src/polkitbackend/polkitbackendinteractiveauthority.c" (("PACKAGE_DATA_DIR \"/polkit-1/actions\"") - "\"/run/current-system/profile/share/polkit-1/actions\"")) - (substitute* "src/polkitbackend/polkitbackendjsauthority.c" - (("PACKAGE_SYSCONF_DIR \"/polkit-1/rules.d\"") - "\"/run/current-system/profile/etc/polkit-1/rules.d\"")) - (substitute* "src/polkitbackend/polkitbackendjsauthority.c" - (("PACKAGE_DATA_DIR \"/polkit-1/rules.d\"") - "\"/run/current-system/profile/share/polkit-1/rules.d\"")))))) + "PACKAGE_SYSCONF_DIR \"/polkit-1/actions\"")) + + ;; Set the setuid helper's real location. + (substitute* "src/polkitagent/polkitagentsession.c" + (("PACKAGE_PREFIX \"/lib/polkit-1/polkit-agent-helper-1\"") + "\"/run/setuid-programs/polkit-agent-helper-1\"")))))) (build-system gnu-build-system) (inputs `(("expat" ,expat) diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm index 166895663f..af4fe53dd0 100644 --- a/gnu/services/desktop.scm +++ b/gnu/services/desktop.scm @@ -224,52 +224,6 @@ levels, with the given configuration settings. It implements the (critical-power-action critical-power-action)))) (service upower-service-type config))) - -;;; -;;; Colord D-Bus service. -;;; - -(define %colord-activation - #~(begin - (use-modules (guix build utils)) - (mkdir-p "/var/lib/colord") - (let ((user (getpwnam "colord"))) - (chown "/var/lib/colord" - (passwd:uid user) (passwd:gid user))))) - -(define %colord-accounts - (list (user-group (name "colord") (system? #t)) - (user-account - (name "colord") - (group "colord") - (system? #t) - (comment "colord daemon user") - (home-directory "/var/empty") - (shell #~(string-append #$shadow "/sbin/nologin"))))) - -(define colord-service-type - (service-type (name 'colord) - (extensions - (list (service-extension account-service-type - (const %colord-accounts)) - (service-extension activation-service-type - (const %colord-activation)) - - ;; Colord is a D-Bus service that dbus-daemon can - ;; activate. - (service-extension dbus-root-service-type list) - - ;; Colord provides "color device" rules for udev. - (service-extension udev-service-type list))))) - -(define* (colord-service #:key (colord colord)) - "Return a service that runs @command{colord}, a system service with a D-Bus -interface to manage the color profiles of input and output devices such as -screens and scanners. It is notably used by the GNOME Color Manager graphical -tool. See @uref{http://www.freedesktop.org/software/colord/, the colord web -site} for more information." - (service colord-service-type colord)) - ;;; ;;; GeoClue D-Bus service. @@ -383,6 +337,14 @@ site} for more information." ;;; Polkit privilege management service. ;;; +(define-record-type* + polkit-configuration make-polkit-configuration + polkit-configuration? + (polkit polkit-configuration-polkit ; + (default polkit)) + (actions polkit-configuration-actions ;list of + (default '()))) + (define %polkit-accounts (list (user-group (name "polkitd") (system? #t)) (user-account @@ -396,9 +358,31 @@ site} for more information." (define %polkit-pam-services (list (unix-pam-service "polkitd"))) +(define (polkit-directory packages) + "Return a directory containing an @file{actions} and possibly a +@file{rules.d} sub-directory, for use as @file{/etc/polkit-1}." + (computed-file "etc-polkit-1" + #~(begin + (use-modules (guix build union) (srfi srfi-26)) + + (union-build #$output + (map (cut string-append <> + "/share/polkit-1") + (list #$@packages)))) + #:modules '((guix build union)))) + +(define polkit-etc-files + (match-lambda + (($ polkit packages) + `(("polkit-1" ,(polkit-directory packages)))))) + +(define polkit-setuid-programs + (match-lambda + (($ polkit) + (list #~(string-append #$polkit + "/lib/polkit-1/polkit-agent-helper-1"))))) + (define polkit-service-type - ;; TODO: Make it extensible so it can collect policy files from other - ;; services. (service-type (name 'polkit) (extensions (list (service-extension account-service-type @@ -406,15 +390,83 @@ site} for more information." (service-extension pam-root-service-type (const %polkit-pam-services)) (service-extension dbus-root-service-type - list))))) + (compose + list + polkit-configuration-polkit)) + (service-extension etc-service-type + polkit-etc-files) + (service-extension setuid-program-service-type + polkit-setuid-programs))) + + ;; Extensions are lists of packages that provide polkit rules + ;; or actions under share/polkit-1/{actions,rules.d}. + (compose concatenate) + (extend (lambda (config actions) + (polkit-configuration + (inherit config) + (actions + (append (polkit-configuration-actions config) + actions))))))) (define* (polkit-service #:key (polkit polkit)) - "Return a service that runs the @command{polkit} privilege management -service. By querying the @command{polkit} service, a privileged system -component can know when it should grant additional capabilities to ordinary -users. For example, an ordinary user can be granted the capability to suspend -the system if the user is logged in locally." - (service polkit-service-type polkit)) + "Return a service that runs the +@uref{http://www.freedesktop.org/wiki/Software/polkit/, Polkit privilege +management service}, which allows system administrators to grant access to +privileged operations in a structured way. By querying the Polkit service, a +privileged system component can know when it should grant additional +capabilities to ordinary users. For example, an ordinary user can be granted +the capability to suspend the system if the user is logged in locally." + (service polkit-service-type + (polkit-configuration (polkit polkit)))) + + +;;; +;;; Colord D-Bus service. +;;; + +(define %colord-activation + #~(begin + (use-modules (guix build utils)) + (mkdir-p "/var/lib/colord") + (let ((user (getpwnam "colord"))) + (chown "/var/lib/colord" + (passwd:uid user) (passwd:gid user))))) + +(define %colord-accounts + (list (user-group (name "colord") (system? #t)) + (user-account + (name "colord") + (group "colord") + (system? #t) + (comment "colord daemon user") + (home-directory "/var/empty") + (shell #~(string-append #$shadow "/sbin/nologin"))))) + +(define colord-service-type + (service-type (name 'colord) + (extensions + (list (service-extension account-service-type + (const %colord-accounts)) + (service-extension activation-service-type + (const %colord-activation)) + + ;; Colord is a D-Bus service that dbus-daemon can + ;; activate. + (service-extension dbus-root-service-type list) + + ;; Colord provides "color device" rules for udev. + (service-extension udev-service-type list) + + ;; It provides polkit "actions". + (service-extension polkit-service-type list))))) + +(define* (colord-service #:key (colord colord)) + "Return a service that runs @command{colord}, a system service with a D-Bus +interface to manage the color profiles of input and output devices such as +screens and scanners. It is notably used by the GNOME Color Manager graphical +tool. See @uref{http://www.freedesktop.org/software/colord/, the colord web +site} for more information." + (service colord-service-type colord)) ;;; @@ -581,7 +633,9 @@ the system if the user is logged in locally." (compose list elogind-package)) (service-extension udev-service-type (compose list elogind-package)) - ;; TODO: Extend polkit(?) and PAM. + (service-extension polkit-service-type + (compose list elogind-package)) + ;; TODO: Extend PAM with pam_elogind.so. )))) (define* (elogind-service #:key (config (elogind-configuration))) -- cgit v1.2.3 From 5905114a10572e1858b653bc3fbf21e581344c75 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 1 Nov 2015 17:43:50 +0100 Subject: gnu: udisks: Find the 'mount' command. * gnu/packages/freedesktop.scm (udisks)[inputs]: Add UTIL-LINUX. [arguments]: Add 'set-mount-file-name' phase. --- gnu/packages/freedesktop.scm | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index ee94db440a..b428041423 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -343,7 +343,8 @@ Analysis and Reporting Technology) functionality.") `(("acl" ,acl) ("libatasmart" ,libatasmart) ("libgudev" ,libgudev) - ("polkit" ,polkit))) + ("polkit" ,polkit) + ("util-linux" ,util-linux))) (arguments `(#:tests? #f ; requiring system message dbus #:configure-flags @@ -360,7 +361,18 @@ Analysis and Reporting Technology) functionality.") (("girdir = .*") "girdir = $(datadir)/gir-1.0\n") (("typelibsdir = .*") - "typelibsdir = $(libdir)/girepository-1.0\n"))))))) + "typelibsdir = $(libdir)/girepository-1.0\n")))) + (add-after 'install 'set-mount-file-name + (lambda* (#:key outputs inputs #:allow-other-keys) + ;; Tell 'udisksd' where to find the 'mount' command. + (let ((out (assoc-ref outputs "out")) + (utils (assoc-ref inputs "util-linux"))) + (wrap-program (string-append out "/libexec/udisks2/udisksd") + `("PATH" ":" prefix + (,(string-append utils "/bin") ;for 'mount' + "/run/current-system/profile/bin" + "/run/current-system/profile/sbin"))) + #t)))))) (home-page "http://www.freedesktop.org/wiki/Software/udisks/") (synopsis "Disk manager service") (description -- cgit v1.2.3 From 35263cd8627b296c3badc21de355b4fe613d7cd4 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 1 Nov 2015 17:44:56 +0100 Subject: gnu: udisks: Mount things under /media. * gnu/packages/freedesktop.scm (udisks)[arguments]: Add --enable-fhs-media. --- gnu/packages/freedesktop.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index b428041423..28e9001384 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -350,6 +350,7 @@ Analysis and Reporting Technology) functionality.") #:configure-flags (list "--disable-man" "--localstatedir=/var" + "--enable-fhs-media" ;mount devices in /media, not /run/media (string-append "--with-udevdir=" %output "/lib/udev")) #:phases (modify-phases %standard-phases -- cgit v1.2.3 From daa3b04cd8020e365d3c551bc498363a284f5acf Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 1 Nov 2015 17:49:51 +0100 Subject: gnu: udisks: Separate HTML documentation. * gnu/packages/freedesktop.scm (udisks)[outputs]: New field. [arguments]: Pass the --with-html-dir configure flag. --- gnu/packages/freedesktop.scm | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index 28e9001384..28883d1e99 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -345,12 +345,17 @@ Analysis and Reporting Technology) functionality.") ("libgudev" ,libgudev) ("polkit" ,polkit) ("util-linux" ,util-linux))) + (outputs '("out" + "doc")) ;5 MiB of gtk-doc HTML (arguments `(#:tests? #f ; requiring system message dbus #:configure-flags (list "--disable-man" "--localstatedir=/var" "--enable-fhs-media" ;mount devices in /media, not /run/media + (string-append "--with-html-dir=" + (assoc-ref %outputs "doc") + "/share/doc/udisks/html") (string-append "--with-udevdir=" %output "/lib/udev")) #:phases (modify-phases %standard-phases -- cgit v1.2.3 From 2b9e0a948be33ad53825b26fa22b89f13500a7c7 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 1 Nov 2015 17:55:26 +0100 Subject: services: Add 'udisks-service'. * gnu/services/desktop.scm (): New record type. (udisks-service-type): New variable. (udisks-service): New procedure. (%desktop-services): Use it. * doc/guix.texi (Desktop Services): Document it. --- doc/guix.texi | 7 +++++++ gnu/services/desktop.scm | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) diff --git a/doc/guix.texi b/doc/guix.texi index 1215c6c277..e8b79ecf98 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -6744,6 +6744,13 @@ levels, with the given configuration settings. It implements the GNOME. @end deffn +@deffn {Scheme Procedure} udisks-service [#:udisks @var{udisks}] +Return a service for @uref{http://udisks.freedesktop.org/docs/latest/, +UDisks}, a @dfn{disk management} daemon that provides user interfaces with +notifications and ways to mount/unmount disks. Programs that talk to UDisks +include the @command{udisksctl} command, part of UDisks, and GNOME Disks. +@end deffn + @deffn {Scheme Procedure} colord-service [#:colord @var{colord}] Return a service that runs @command{colord}, a system service with a D-Bus interface to manage the color profiles of input and output devices such as diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm index af4fe53dd0..f0ae1085cc 100644 --- a/gnu/services/desktop.scm +++ b/gnu/services/desktop.scm @@ -43,6 +43,7 @@ #:use-module (srfi srfi-1) #:use-module (ice-9 match) #:export (upower-service + udisks-service colord-service geoclue-application %standard-geoclue-applications @@ -468,6 +469,37 @@ tool. See @uref{http://www.freedesktop.org/software/colord/, the colord web site} for more information." (service colord-service-type colord)) + +;;; +;;; UDisks. +;;; + +(define-record-type* + udisks-configuration make-udisks-configuration + udisks-configuration? + (udisks udisks-configuration-udisks + (default udisks))) + +(define udisks-service-type + (let ((udisks-package (lambda (config) + (list (udisks-configuration-udisks config))))) + (service-type (name 'udisks) + (extensions + (list (service-extension polkit-service-type + udisks-package) + (service-extension dbus-root-service-type + udisks-package) + (service-extension udev-service-type + udisks-package)))))) + +(define* (udisks-service #:key (udisks udisks)) + "Return a service for @uref{http://udisks.freedesktop.org/docs/latest/, +UDisks}, a @dfn{disk management} daemon that provides user interfaces with +notifications and ways to mount/unmount disks. Programs that talk to UDisks +include the @command{udisksctl} command, part of UDisks, and GNOME Disks." + (service udisks-service-type + (udisks-configuration (udisks udisks)))) + ;;; ;;; Elogind login and seat management service. @@ -662,6 +694,7 @@ when they log out." ;; The D-Bus clique. (avahi-service) (wicd-service) + (udisks-service) (upower-service) (colord-service) (geoclue-service) -- cgit v1.2.3 From 4da85bc3bbca654177e7e1c379242937f251d957 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 1 Nov 2015 19:44:31 +0200 Subject: gnu: youtube-dl: Update to 2015.11.01. * gnu/packages/video.scm (youtube-dl): Update to 2015.11.01. --- gnu/packages/video.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index f4b242df87..8fac3aa271 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -812,7 +812,7 @@ projects while introducing many more.") (define-public youtube-dl (package (name "youtube-dl") - (version "2015.10.24") + (version "2015.11.01") (source (origin (method url-fetch) (uri (string-append "https://youtube-dl.org/downloads/" @@ -820,7 +820,7 @@ projects while introducing many more.") version ".tar.gz")) (sha256 (base32 - "1q9srq08vb2yzl81hmjrgqwajckq52fhh9ag2ppbbxjibf91w5gs")))) + "0fhz6ml9mlz4g4xfm6kmkcks4p5j6srnszdrh9rmcc4gf36q3aaq")))) (build-system python-build-system) (inputs `(("setuptools" ,python-setuptools))) (home-page "http://youtube-dl.org") -- cgit v1.2.3 From b798dfde47e41aa006018ad8922f7a0d887e6d50 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 1 Nov 2015 19:56:33 +0200 Subject: gnu: youtube-dl: Minor fixes. * gnu/packages/video.scm (youtube-dl)[url]: Change to http. [description]: Fix capitalization. --- gnu/packages/video.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 8fac3aa271..deb2cf1dc4 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -815,7 +815,7 @@ projects while introducing many more.") (version "2015.11.01") (source (origin (method url-fetch) - (uri (string-append "https://youtube-dl.org/downloads/" + (uri (string-append "http://youtube-dl.org/downloads/" version "/youtube-dl-" version ".tar.gz")) (sha256 @@ -826,7 +826,7 @@ projects while introducing many more.") (home-page "http://youtube-dl.org") (synopsis "Download videos from YouTube.com and other sites") (description - "youtube-dl is a small command-line program to download videos from + "Youtube-dl is a small command-line program to download videos from YouTube.com and a few more sites.") (license license:public-domain))) -- cgit v1.2.3 From 7824d4450d6b47ae7c5634e8952edad644854b2b Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 1 Nov 2015 21:27:36 +0100 Subject: Revert "services: polkit: Use the right executable name for PAM." This reverts commit 7f39e181dfb34db8f245f3ffafe34eec9cee910d. Polkit actually uses the name "polkit-1" in calls to 'pam_start'. --- gnu/services/desktop.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm index f0ae1085cc..31d196da78 100644 --- a/gnu/services/desktop.scm +++ b/gnu/services/desktop.scm @@ -357,7 +357,7 @@ site} for more information." (shell "/run/current-system/profile/sbin/nologin")))) (define %polkit-pam-services - (list (unix-pam-service "polkitd"))) + (list (unix-pam-service "polkit-1"))) (define (polkit-directory packages) "Return a directory containing an @file{actions} and possibly a -- cgit v1.2.3 From 52d76b64e000c83edd75b78775343cb122a66fa5 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 1 Nov 2015 21:49:51 +0100 Subject: gnu: xz: Add alternate URL. Fixes . * gnu/packages/compression.scm (xz)[source]: Add alternate URL. --- gnu/packages/compression.scm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm index a9e942efd5..fd3a9ce98e 100644 --- a/gnu/packages/compression.scm +++ b/gnu/packages/compression.scm @@ -263,8 +263,10 @@ compressed with pbzip2 can be decompressed with bzip2).") (version "5.0.4") (source (origin (method url-fetch) - (uri (string-append "http://tukaani.org/xz/xz-" version - ".tar.gz")) + (uri (list (string-append "http://tukaani.org/xz/xz-" version + ".tar.gz") + (string-append "http://multiprecision.org/guix/xz-" + version ".tar.gz"))) (sha256 (base32 "1dl35ca8fdss9z2d6y234gxh24ixq904xksizrjmjr5dimwhax6n")))) -- cgit v1.2.3 From 4e720137b28db63ba37fe9d2e1fb74b8ede0ff6a Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 1 Nov 2015 21:51:16 +0100 Subject: nls: Update 'da' translation. --- po/guix/da.po | 1395 ++++++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 1030 insertions(+), 365 deletions(-) diff --git a/po/guix/da.po b/po/guix/da.po index 2274ebff57..e9be5e985c 100644 --- a/po/guix/da.po +++ b/po/guix/da.po @@ -7,10 +7,10 @@ # msgid "" msgstr "" -"Project-Id-Version: guix 0.8.2\n" +"Project-Id-Version: guix 0.9.0\n" "Report-Msgid-Bugs-To: ludo@gnu.org\n" -"POT-Creation-Date: 2015-05-10 14:02+0200\n" -"PO-Revision-Date: 2015-05-14 19:30+01:00\n" +"POT-Creation-Date: 2015-10-28 16:31+0100\n" +"PO-Revision-Date: 2015-10-31 19:30+01:00\n" "Last-Translator: Joe Hansen \n" "Language-Team: Danish \n" "Language: da\n" @@ -19,66 +19,124 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: gnu/packages.scm:78 +#: gnu/packages.scm:80 #, scheme-format msgid "~a: patch not found" msgstr "~a: rettelse blev ikke fundet" -#: gnu/packages.scm:89 +#: gnu/packages.scm:91 #, scheme-format msgid "could not find bootstrap binary '~a' for system '~a'" msgstr "kunne ikke finde bootstraps binære »~a« for system »~a«" -#: gnu/packages.scm:141 +#: gnu/packages.scm:143 #, scheme-format msgid "cannot access `~a': ~a~%" msgstr "kan ikke tilgå »~a«: ~a~%" -#: gnu/packages.scm:382 +#: gnu/packages.scm:388 #, scheme-format msgid "looking for the latest release of GNU ~a..." msgstr "kigger efter den seneste udgivelse af GNU ~a..." -#: gnu/packages.scm:389 +#: gnu/packages.scm:395 #, scheme-format msgid "~a: note: using ~a but ~a is available upstream~%" msgstr "~a: bemærk: bruger ~a men ~a er tilgængelig opstrøm~%" -#: gnu/packages.scm:411 guix/scripts/package.scm:350 +#: gnu/packages.scm:417 gnu/packages.scm:452 #, scheme-format msgid "ambiguous package specification `~a'~%" msgstr "tvetydig pakkespecifikation »~a«~%" -#: gnu/packages.scm:412 guix/scripts/package.scm:352 +#: gnu/packages.scm:418 gnu/packages.scm:454 #, scheme-format msgid "choosing ~a from ~a~%" msgstr "vælger ~a fra ~a~%" -#: gnu/packages.scm:418 +#: gnu/packages.scm:424 #, scheme-format msgid "~A: package not found for version ~a~%" msgstr "~A: pakke ikke fundet for version ~a~%" -#: gnu/packages.scm:420 +#: gnu/packages.scm:426 #, scheme-format msgid "~A: unknown package~%" msgstr "~A: ukendt pakke~%" -#: gnu/system.scm:811 +#: gnu/packages.scm:442 +#, scheme-format +msgid "package `~a' lacks output `~a'~%" +msgstr "pakke »~a« mangler uddata »~a«~%" + +#: gnu/packages.scm:459 +#, scheme-format +msgid "~a: package not found~%" +msgstr "~a: pakken blev ikke fundet~%" + +#: gnu/services.scm:376 +#, scheme-format +msgid "no target of type '~a' for service ~s" +msgstr "intet mål af typen »~a« for tjeneste ~s" + +#: gnu/services.scm:387 gnu/services.scm:447 +#, scheme-format +msgid "more than one target service of type '~a'" +msgstr "mere end en måltjeneste af typen »~a«" + +#: gnu/services.scm:437 +#, scheme-format +msgid "service of type '~a' not found" +msgstr "tjenste af typen »~a« blev ikke fundet" + +#: gnu/system.scm:547 +#, scheme-format +msgid "using a string for file '~a' is deprecated; use 'plain-file' instead~%" +msgstr "brug af en streng for filen »~a« er forældet; brug »plain-file« i stedet~%" + +#: gnu/system.scm:563 +#, scheme-format +msgid "using a monadic value for '~a' is deprecated; use 'plain-file' instead~%" +msgstr "brug af en unik værdi for »~a« er forældet; brug »plain-file« i stedet~%" + +#: gnu/system.scm:646 msgid "system locale lacks a definition" msgstr "systemsprog mangler en definition" -#: gnu/services/dmd.scm:51 +#: gnu/services/dmd.scm:131 #, scheme-format msgid "service '~a' provided more than once" msgstr "tjeneste »~a« tilbudt mere end en gang" -#: guix/scripts/build.scm:65 +#: gnu/system/shadow.scm:213 +#, scheme-format +msgid "supplementary group '~a' of user '~a' is undeclared" +msgstr "supplerende gruppe »~a« for bruger »~a« er ikke deklæret" + +#: gnu/system/shadow.scm:223 +#, scheme-format +msgid "primary group '~a' of user '~a' is undeclared" +msgstr "primær gruppe »~a« for brugeren »~a« er ikke deklæret" + +#: guix/scripts.scm:52 +#, scheme-format +msgid "invalid argument: ~a~%" +msgstr "ugyldigt argument: ~a~%" + +#: guix/scripts.scm:78 guix/scripts/download.scm:97 guix/scripts/gc.scm:157 +#: guix/scripts/import/cran.scm:72 guix/scripts/import/elpa.scm:77 +#: guix/scripts/pull.scm:219 guix/scripts/lint.scm:792 +#: guix/scripts/publish.scm:355 +#, scheme-format +msgid "~A: unrecognized option~%" +msgstr "~A: ikke genkendt tilvalg~%" + +#: guix/scripts/build.scm:107 #, scheme-format msgid "failed to create GC root `~a': ~a~%" msgstr "kunne ikke oprette GC-root »~a«: ~a~%" -#: guix/scripts/build.scm:102 +#: guix/scripts/build.scm:151 msgid "" "\n" " -L, --load-path=DIR prepend DIR to the package module search path" @@ -86,7 +144,7 @@ msgstr "" "\n" " -L, --load-path=MAPPE foranstil MAPPE til pakkemodulets søgesti" -#: guix/scripts/build.scm:104 +#: guix/scripts/build.scm:153 msgid "" "\n" " -K, --keep-failed keep build tree of failed builds" @@ -94,7 +152,7 @@ msgstr "" "\n" " -K, --keep-failed bevar byggetræ for mislykkede bygninger" -#: guix/scripts/build.scm:106 +#: guix/scripts/build.scm:155 msgid "" "\n" " -n, --dry-run do not build the derivations" @@ -102,7 +160,7 @@ msgstr "" "\n" " -n, --dry-run byg ikke derivationerne" -#: guix/scripts/build.scm:108 +#: guix/scripts/build.scm:157 msgid "" "\n" " --fallback fall back to building when the substituter fails" @@ -110,7 +168,7 @@ msgstr "" "\n" " --fallback fald tilbage til bygning når erstatningen fejler" -#: guix/scripts/build.scm:110 +#: guix/scripts/build.scm:159 msgid "" "\n" " --no-substitutes build instead of resorting to pre-built substitutes" @@ -118,7 +176,17 @@ msgstr "" "\n" " --no-substitutes byg i stedet for en ny sortering af præbyggede substitutter" -#: guix/scripts/build.scm:112 +#: guix/scripts/build.scm:161 guix/scripts/size.scm:215 +msgid "" +"\n" +" --substitute-urls=URLS\n" +" fetch substitute from URLS if they are authorized" +msgstr "" +"\n" +" --substitute-urls=ADRESSER\n" +" hent substitut fra ADRESSER hvis de er godkendt" + +#: guix/scripts/build.scm:164 msgid "" "\n" " --no-build-hook do not attempt to offload builds via the build hook" @@ -126,7 +194,7 @@ msgstr "" "\n" " --no-build-hook forsøg ikke at aflaste bygninger via byggekrogen" -#: guix/scripts/build.scm:114 +#: guix/scripts/build.scm:166 msgid "" "\n" " --max-silent-time=SECONDS\n" @@ -136,7 +204,7 @@ msgstr "" " --max-silent-time=SEKUNDER\n" " marker bygningen som mislykket efter SEKUNDER af stilhed" -#: guix/scripts/build.scm:117 +#: guix/scripts/build.scm:169 msgid "" "\n" " --timeout=SECONDS mark the build as failed after SECONDS of activity" @@ -144,7 +212,7 @@ msgstr "" "\n" " --timeout=SEKUNDER marker bygningen som mislykket efter SEKUNDER af aktivitet" -#: guix/scripts/build.scm:119 +#: guix/scripts/build.scm:171 msgid "" "\n" " --verbosity=LEVEL use the given verbosity LEVEL" @@ -152,7 +220,7 @@ msgstr "" "\n" " --verbosity=NIVEAU brug det angivne uddybnings-NIVEAU" -#: guix/scripts/build.scm:121 +#: guix/scripts/build.scm:173 msgid "" "\n" " -c, --cores=N allow the use of up to N CPU cores for the build" @@ -160,7 +228,7 @@ msgstr "" "\n" " -c, --cores=N tillad brugen af op til N CPU-kerner til bygningen" -#: guix/scripts/build.scm:123 +#: guix/scripts/build.scm:175 msgid "" "\n" " -M, --max-jobs=N allow at most N build jobs" @@ -168,12 +236,12 @@ msgstr "" "\n" " -M, --max-jobs=N tillad højest N-byggejob" -#: guix/scripts/build.scm:198 guix/scripts/build.scm:205 +#: guix/scripts/build.scm:261 guix/scripts/build.scm:268 #, scheme-format msgid "not a number: '~a' option argument: ~a~%" msgstr "ikke et nummer: »~a« tilvalgsparameter: ~a~%" -#: guix/scripts/build.scm:224 +#: guix/scripts/build.scm:287 msgid "" "Usage: guix build [OPTION]... PACKAGE-OR-DERIVATION...\n" "Build the given PACKAGE-OR-DERIVATION and return their output paths.\n" @@ -181,7 +249,7 @@ msgstr "" "Brug: guix build [TILVALG]... PAKKE-ELLER-AFLEDNING...\n" "Byg den angivne PAKKE-ELLER-AFLEDNING og returner deres uddatastier.\n" -#: guix/scripts/build.scm:226 +#: guix/scripts/build.scm:289 msgid "" "\n" " -e, --expression=EXPR build the package or derivation EXPR evaluates to" @@ -190,7 +258,17 @@ msgstr "" " -e, --expression=UDTRYK\n" " byg pakken eller derivationen UDTRYK evaluerer til" -#: guix/scripts/build.scm:228 +#: guix/scripts/build.scm:291 +msgid "" +"\n" +" -f, --file=FILE build the package or derivation that the code within\n" +" FILE evaluates to" +msgstr "" +"\n" +" -f, --file=FIL byg pakken eller derivationen som koden i FIL evaluerer\n" +" til" + +#: guix/scripts/build.scm:294 msgid "" "\n" " -S, --source build the packages' source derivations" @@ -198,7 +276,7 @@ msgstr "" "\n" " -S, --source byg pakkernes kildederivationer" -#: guix/scripts/build.scm:230 +#: guix/scripts/build.scm:296 msgid "" "\n" " --sources[=TYPE] build source derivations; TYPE may optionally be one\n" @@ -208,7 +286,7 @@ msgstr "" " --sources[=TYPE] bygningskildeafledninger; TYPE kan valgfrit være\n" " »package«, »all« (standard) eller »transitive«" -#: guix/scripts/build.scm:233 +#: guix/scripts/build.scm:299 msgid "" "\n" " -s, --system=SYSTEM attempt to build for SYSTEM--e.g., \"i686-linux\"" @@ -216,7 +294,7 @@ msgstr "" "\n" " -s, --system=SYSTEM forsøger at bygge for SYSTEM--f.eks., »i686-linux«" -#: guix/scripts/build.scm:235 +#: guix/scripts/build.scm:301 msgid "" "\n" " --target=TRIPLET cross-build for TRIPLET--e.g., \"armel-linux-gnu\"" @@ -224,7 +302,7 @@ msgstr "" "\n" " --target=TRIPLET krydsbyg for TRIPLET--f.eks., »armel-linux-gnu«" -#: guix/scripts/build.scm:237 +#: guix/scripts/build.scm:303 msgid "" "\n" " --with-source=SOURCE\n" @@ -234,7 +312,7 @@ msgstr "" " --with-source=KILDE\n" " brug KILDE når den tilsvarende pakke bygges" -#: guix/scripts/build.scm:240 +#: guix/scripts/build.scm:306 msgid "" "\n" " --no-grafts do not graft packages" @@ -242,7 +320,7 @@ msgstr "" "\n" " --no-grafts pod ikke pakker" -#: guix/scripts/build.scm:242 +#: guix/scripts/build.scm:308 msgid "" "\n" " -d, --derivations return the derivation paths of the given packages" @@ -250,7 +328,7 @@ msgstr "" "\n" " -d, --derivations returner de afledte stier for de givne pakker" -#: guix/scripts/build.scm:244 +#: guix/scripts/build.scm:310 msgid "" "\n" " -r, --root=FILE make FILE a symlink to the result, and register it\n" @@ -260,7 +338,7 @@ msgstr "" " -r, --root=FIL gør FIL til en symbolsk henvisning for resultatet, og\n" " registrer den som en affaldsindsamlerroot" -#: guix/scripts/build.scm:247 +#: guix/scripts/build.scm:313 msgid "" "\n" " --log-file return the log file names for the given derivations" @@ -268,12 +346,14 @@ msgstr "" "\n" " --log-file returner logfilnavnen for de givne afledninger" -#: guix/scripts/build.scm:252 guix/scripts/download.scm:53 -#: guix/scripts/package.scm:464 guix/scripts/gc.scm:58 -#: guix/scripts/hash.scm:55 guix/scripts/import.scm:90 -#: guix/scripts/pull.scm:81 guix/scripts/substitute.scm:682 -#: guix/scripts/system.scm:400 guix/scripts/lint.scm:534 -#: guix/scripts/publish.scm:56 +#: guix/scripts/build.scm:318 guix/scripts/download.scm:54 +#: guix/scripts/package.scm:292 guix/scripts/gc.scm:70 +#: guix/scripts/hash.scm:56 guix/scripts/import.scm:91 +#: guix/scripts/import/cran.scm:44 guix/scripts/pull.scm:83 +#: guix/scripts/substitute.scm:752 guix/scripts/system.scm:556 +#: guix/scripts/lint.scm:741 guix/scripts/publish.scm:63 +#: guix/scripts/edit.scm:43 guix/scripts/size.scm:223 +#: guix/scripts/graph.scm:398 guix/scripts/challenge.scm:181 msgid "" "\n" " -h, --help display this help and exit" @@ -281,12 +361,14 @@ msgstr "" "\n" " -h, --help vis denne hjælpetekst og afslut" -#: guix/scripts/build.scm:254 guix/scripts/download.scm:55 -#: guix/scripts/package.scm:466 guix/scripts/gc.scm:60 -#: guix/scripts/hash.scm:57 guix/scripts/import.scm:92 -#: guix/scripts/pull.scm:83 guix/scripts/substitute.scm:684 -#: guix/scripts/system.scm:402 guix/scripts/lint.scm:538 -#: guix/scripts/publish.scm:58 +#: guix/scripts/build.scm:320 guix/scripts/download.scm:56 +#: guix/scripts/package.scm:294 guix/scripts/gc.scm:72 +#: guix/scripts/hash.scm:58 guix/scripts/import.scm:93 +#: guix/scripts/import/cran.scm:46 guix/scripts/pull.scm:85 +#: guix/scripts/substitute.scm:754 guix/scripts/system.scm:558 +#: guix/scripts/lint.scm:745 guix/scripts/publish.scm:65 +#: guix/scripts/edit.scm:45 guix/scripts/size.scm:225 +#: guix/scripts/graph.scm:400 guix/scripts/challenge.scm:183 msgid "" "\n" " -V, --version display version information and exit" @@ -294,7 +376,7 @@ msgstr "" "\n" " -V, --version vis versioninformation og afslut" -#: guix/scripts/build.scm:281 +#: guix/scripts/build.scm:347 #, scheme-format msgid "" "invalid argument: '~a' option argument: ~a, ~\n" @@ -303,17 +385,17 @@ msgstr "" "ugyldigt argument: »~a« tilvalgsargumentet: ~a, ~\n" "skal være »package«, »all« eller »transitive«~%" -#: guix/scripts/build.scm:404 +#: guix/scripts/build.scm:478 #, scheme-format msgid "sources do not match any package:~{ ~a~}~%" msgstr "kilder matcher ikke nogen pakke:~{ ~a~}~%" -#: guix/scripts/build.scm:453 +#: guix/scripts/build.scm:536 #, scheme-format msgid "no build log for '~a'~%" msgstr "ingen byggelog for »~a«~%" -#: guix/scripts/download.scm:44 +#: guix/scripts/download.scm:45 msgid "" "Usage: guix download [OPTION] URL\n" "Download the file at URL, add it to the store, and print its store path\n" @@ -329,7 +411,7 @@ msgstr "" "Understøttede formater: »nix-base32« (standard), »base32«, og »base16«\n" "(»hex« og »hexadecimal« kan også bruges).\n" -#: guix/scripts/download.scm:50 guix/scripts/hash.scm:50 +#: guix/scripts/download.scm:51 guix/scripts/hash.scm:51 msgid "" "\n" " -f, --format=FMT write the hash in the given format" @@ -337,95 +419,61 @@ msgstr "" "\n" " -f, --format=FMT skriv hashen i det givne format" -#: guix/scripts/download.scm:73 guix/scripts/hash.scm:75 +#: guix/scripts/download.scm:74 guix/scripts/hash.scm:76 #, scheme-format msgid "unsupported hash format: ~a~%" msgstr "ikke understøttet hash-format: ~a~%" -#: guix/scripts/download.scm:96 guix/scripts/gc.scm:122 -#: guix/scripts/pull.scm:217 guix/scripts/lint.scm:585 -#: guix/scripts/publish.scm:233 guix/ui.scm:829 -#, scheme-format -msgid "~A: unrecognized option~%" -msgstr "~A: ikke genkendt tilvalg~%" - -#: guix/scripts/download.scm:106 +#: guix/scripts/download.scm:107 #, scheme-format msgid "~a: failed to parse URI~%" msgstr "~a: kunne ikke fortolke URI~%" -#: guix/scripts/download.scm:117 +#: guix/scripts/download.scm:118 #, scheme-format msgid "~a: download failed~%" msgstr "~a: overførsel mislykkede~%" -#: guix/scripts/package.scm:108 -#, scheme-format -msgid "failed to build the empty profile~%" -msgstr "kunne ikke bygge den tomme profil~%" - -#: guix/scripts/package.scm:124 -#, scheme-format -msgid "switching from generation ~a to ~a~%" -msgstr "skifter fra generation ~a til ~a~%" - -#: guix/scripts/package.scm:143 -#, scheme-format -msgid "nothing to do: already at the empty profile~%" -msgstr "intet at udføre: allerede en tom profil~%" - -#: guix/scripts/package.scm:155 -#, scheme-format -msgid "deleting ~a~%" -msgstr "sletter ~a~%" - -#: guix/scripts/package.scm:268 +#: guix/scripts/package.scm:128 #, scheme-format msgid "not removing generation ~a, which is current~%" msgstr "fjerner ikke generation ~a, som er nuværende~%" -#: guix/scripts/package.scm:275 +#: guix/scripts/package.scm:135 #, scheme-format msgid "no matching generation~%" msgstr "ingen matchende generation~%" -#: guix/scripts/package.scm:278 guix/scripts/package.scm:917 +#: guix/scripts/package.scm:138 guix/scripts/package.scm:734 +#: guix/scripts/system.scm:396 #, scheme-format msgid "invalid syntax: ~a~%" msgstr "ugyldig syntaks: ~a~%" -#: guix/scripts/package.scm:340 -#, scheme-format -msgid "package `~a' lacks output `~a'~%" -msgstr "pakke »~a« mangler uddata »~a«~%" - -#: guix/scripts/package.scm:357 -#, scheme-format -msgid "~a: package not found~%" -msgstr "~a: pakken blev ikke fundet~%" - -#: guix/scripts/package.scm:401 +#: guix/scripts/package.scm:219 #, scheme-format msgid "The following environment variable definitions may be needed:~%" msgstr "De følgende miljøvariabeldefinitioner kan være krævet:~%" -#: guix/scripts/package.scm:417 +#: guix/scripts/package.scm:235 msgid "" -"Usage: guix package [OPTION]... PACKAGES...\n" -"Install, remove, or upgrade PACKAGES in a single transaction.\n" +"Usage: guix package [OPTION]...\n" +"Install, remove, or upgrade packages in a single transaction.\n" msgstr "" -"Brug: guix-pakke [TILVALG]... PAKKER...\n" -"Installer, fjern eller opgrader PAKKER i en enkel transaktion.\n" +"Brug: guix-pakke [TILVALG] ... \n" +"Installer, fjern eller opgrader pakker i en enkel transaktion.\n" -#: guix/scripts/package.scm:419 +#: guix/scripts/package.scm:237 msgid "" "\n" -" -i, --install=PACKAGE install PACKAGE" +" -i, --install PACKAGE ...\n" +" install PACKAGEs" msgstr "" "\n" -" -i, --install=PAKKE installer PAKKE" +" -i, --install PAKKE ...\n" +" installer PAKKER" -#: guix/scripts/package.scm:421 +#: guix/scripts/package.scm:240 msgid "" "\n" " -e, --install-from-expression=EXP\n" @@ -435,15 +483,29 @@ msgstr "" " -e, --install-from-expression=UDTRYK\n" " installer pakken UDTRYK evaluerer til" -#: guix/scripts/package.scm:424 +#: guix/scripts/package.scm:243 msgid "" "\n" -" -r, --remove=PACKAGE remove PACKAGE" +" -f, --install-from-file=FILE\n" +" install the package that the code within FILE\n" +" evaluates to" msgstr "" "\n" -" -r, --remove=PAKKE fjern PAKKE" +" -f, --install-from-file=FIL\n" +" installer pakken som koden i FIL evaluerer\n" +" til" -#: guix/scripts/package.scm:426 +#: guix/scripts/package.scm:247 +msgid "" +"\n" +" -r, --remove PACKAGE ...\n" +" remove PACKAGEs" +msgstr "" +"\n" +" -r, --remove PAKKE ...\n" +" fjern PAKKER" + +#: guix/scripts/package.scm:250 msgid "" "\n" " -u, --upgrade[=REGEXP] upgrade all the installed packages matching REGEXP" @@ -453,7 +515,17 @@ msgstr "" " opgrader alle de installerede pakker der matcher\n" " REGUDTRYK" -#: guix/scripts/package.scm:428 +#: guix/scripts/package.scm:252 +msgid "" +"\n" +" -m, --manifest=FILE create a new profile generation with the manifest\n" +" from FILE" +msgstr "" +"\n" +" -m, --manifest=FIL opret en ny profiloprettelse med manifestet fra\n" +" FIL" + +#: guix/scripts/package.scm:255 msgid "" "\n" " --do-not-upgrade[=REGEXP] do not upgrade any packages matching REGEXP" @@ -461,7 +533,7 @@ msgstr "" "\n" " --do-not--upgrade[=REGUDTRYK] opgrader ikke pakker der matcher REGUDTRYK" -#: guix/scripts/package.scm:430 +#: guix/scripts/package.scm:257 msgid "" "\n" " --roll-back roll back to the previous generation" @@ -469,15 +541,17 @@ msgstr "" "\n" " --roll-back rul tilbage til den forrige generation" -#: guix/scripts/package.scm:432 +#: guix/scripts/package.scm:259 msgid "" "\n" -" --search-paths display needed environment variable definitions" +" --search-paths[=KIND]\n" +" display needed environment variable definitions" msgstr "" "\n" -" --search-paths vis krævede miljøvariabeldefinitioner" +" --search-paths[=KIND]\n" +" vis krævede miljøvariabeldefinitioner" -#: guix/scripts/package.scm:434 +#: guix/scripts/package.scm:262 msgid "" "\n" " -l, --list-generations[=PATTERN]\n" @@ -487,7 +561,7 @@ msgstr "" " -l, --list-generations[=MØNSTER]\n" " vis generationer der matcher MØNSTER" -#: guix/scripts/package.scm:437 +#: guix/scripts/package.scm:265 msgid "" "\n" " -d, --delete-generations[=PATTERN]\n" @@ -497,7 +571,7 @@ msgstr "" " -d, --delete-generations[=MØNSTER]\n" " slet generationer der matcher MØNSTER" -#: guix/scripts/package.scm:440 +#: guix/scripts/package.scm:268 msgid "" "\n" " -S, --switch-generation=PATTERN\n" @@ -507,7 +581,7 @@ msgstr "" " -S, --switch-generation=MØNSTER\n" " skift til et generationsmatchende MØNSTER" -#: guix/scripts/package.scm:443 +#: guix/scripts/package.scm:271 msgid "" "\n" " -p, --profile=PROFILE use PROFILE instead of the user's default profile" @@ -515,7 +589,7 @@ msgstr "" "\n" " -p, --profile=PROFIL brug PROFIL i stedet for brugerens standardprofil" -#: guix/scripts/package.scm:446 +#: guix/scripts/package.scm:274 msgid "" "\n" " --bootstrap use the bootstrap Guile to build the profile" @@ -523,7 +597,7 @@ msgstr "" "\n" " --bootstrap brug bootstrap Guile til at bygge profilen" -#: guix/scripts/package.scm:448 guix/scripts/pull.scm:74 +#: guix/scripts/package.scm:276 guix/scripts/pull.scm:76 msgid "" "\n" " --verbose produce verbose output" @@ -531,7 +605,7 @@ msgstr "" "\n" " --verbose lav uddybende uddata" -#: guix/scripts/package.scm:451 +#: guix/scripts/package.scm:279 msgid "" "\n" " -s, --search=REGEXP search in synopsis and description using REGEXP" @@ -539,7 +613,7 @@ msgstr "" "\n" " -s, --search=REGUDTRYK søg i synopsis og beskrivelse via REGUDTRYK" -#: guix/scripts/package.scm:453 +#: guix/scripts/package.scm:281 msgid "" "\n" " -I, --list-installed[=REGEXP]\n" @@ -549,7 +623,7 @@ msgstr "" " -I, --list-installed[=REGUDTRYK]\n" " vis installerede pakker der matcher REGUDTRYK" -#: guix/scripts/package.scm:456 +#: guix/scripts/package.scm:284 msgid "" "\n" " -A, --list-available[=REGEXP]\n" @@ -559,72 +633,77 @@ msgstr "" " -A, --list-available[=REGUDTRYK]\n" " vis tilgængelige pakker der matcher REGUDTRYK" -#: guix/scripts/package.scm:459 +#: guix/scripts/package.scm:287 msgid "" "\n" -" --show=PACKAGE show details about PACKAGE" +" --show=PACKAGE show details about PACKAGE" msgstr "" "\n" -" --show=PACKAGE vis detaljer om PAKKE" +" --show=PACKAGE vis detaljer om PAKKE" -#: guix/scripts/package.scm:730 +#: guix/scripts/package.scm:380 +#, scheme-format +msgid "~a: unsupported kind of search path~%" +msgstr "~a: ikke understøttet type af søgesti%" + +#: guix/scripts/package.scm:550 guix/scripts/publish.scm:357 #, scheme-format msgid "~A: extraneous argument~%" msgstr "~A: uvedkommende argument~%" -#: guix/scripts/package.scm:738 +#: guix/scripts/package.scm:558 #, scheme-format msgid "Try \"info '(guix) Invoking guix package'\" for more information.~%" -msgstr "Prøv »info '(guix) Invoking guix package« for yderligere information.~%" +msgstr "Prøv »info '(guix) Invoking guix package'« for yderligere information.~%" -#: guix/scripts/package.scm:760 +#: guix/scripts/package.scm:580 #, scheme-format msgid "error: while creating directory `~a': ~a~%" msgstr "fejl: under oprettelse af mappe »~a«: ~a~%" -#: guix/scripts/package.scm:764 +#: guix/scripts/package.scm:584 #, scheme-format msgid "Please create the `~a' directory, with you as the owner.~%" msgstr "Opret venligst mappen »~a«, med dig som ejer.~%" -#: guix/scripts/package.scm:771 +#: guix/scripts/package.scm:591 #, scheme-format msgid "error: directory `~a' is not owned by you~%" msgstr "fejl: mappen »~a« er ikke ejet af dig~%" -#: guix/scripts/package.scm:774 +#: guix/scripts/package.scm:594 #, scheme-format msgid "Please change the owner of `~a' to user ~s.~%" msgstr "Ændr venligst ejeren af »~a« til brugeren ~s.~%" -#: guix/scripts/package.scm:804 -#, scheme-format -msgid "cannot switch to generation '~a'~%" -msgstr "kan ikke skifte til generation »~a«~%" - -#: guix/scripts/package.scm:852 +#: guix/scripts/package.scm:628 #, scheme-format msgid "nothing to be done~%" msgstr "intet at udføre~%" -#: guix/scripts/package.scm:868 +#: guix/scripts/package.scm:644 #, scheme-format msgid "~a package in profile~%" msgid_plural "~a packages in profile~%" msgstr[0] "~a pakke i profil~%" msgstr[1] "~a pakker i profil~%" -#: guix/scripts/package.scm:883 +#: guix/scripts/package.scm:668 #, scheme-format -msgid "Generation ~a\t~a" -msgstr "Generation ~a\t~a" +msgid "cannot switch to generation '~a'~%" +msgstr "kan ikke skifte til generation »~a«~%" -#: guix/scripts/package.scm:890 +#: guix/scripts/package.scm:690 #, scheme-format -msgid "~a\t(current)~%" -msgstr "~a\t(nuværende)~%" +msgid "would install new manifest from '~a' with ~d entries~%" +msgstr "vil installere nyt manifest fra »~a« med ~d poster~%" + +#: guix/scripts/package.scm:692 +#, scheme-format +msgid "installing new manifest from '~a' with ~d entries~%" +msgstr "installerer nyt manifest fra »~a« med ~d poster~%" -#: guix/scripts/gc.scm:39 +#: guix/scripts/gc.scm:40 msgid "" "Usage: guix gc [OPTION]... PATHS...\n" "Invoke the garbage collector.\n" @@ -632,7 +711,7 @@ msgstr "" "Brug: guix gc [TILVALG]... STIER...\n" "Start affaldsindsamleren.\n" -#: guix/scripts/gc.scm:41 +#: guix/scripts/gc.scm:42 msgid "" "\n" " -C, --collect-garbage[=MIN]\n" @@ -642,7 +721,7 @@ msgstr "" " -C, --collect-garbage[=MIN]\n" " saml mindst MIN byte affald" -#: guix/scripts/gc.scm:44 +#: guix/scripts/gc.scm:45 msgid "" "\n" " -d, --delete attempt to delete PATHS" @@ -650,7 +729,15 @@ msgstr "" "\n" " -d, --delete forsøg at slette STIER" -#: guix/scripts/gc.scm:46 +#: guix/scripts/gc.scm:47 +msgid "" +"\n" +" --optimize optimize the store by deduplicating identical files" +msgstr "" +"\n" +" --optimize optimer lageret ved at fjerne identiske filer" + +#: guix/scripts/gc.scm:49 msgid "" "\n" " --list-dead list dead paths" @@ -658,7 +745,7 @@ msgstr "" "\n" " --list-dead vis døde stier" -#: guix/scripts/gc.scm:48 +#: guix/scripts/gc.scm:51 msgid "" "\n" " --list-live list live paths" @@ -666,7 +753,7 @@ msgstr "" "\n" " --list-live vis live stier" -#: guix/scripts/gc.scm:51 +#: guix/scripts/gc.scm:54 msgid "" "\n" " --references list the references of PATHS" @@ -674,7 +761,7 @@ msgstr "" "\n" " --references vis referencerne for STIER" -#: guix/scripts/gc.scm:53 +#: guix/scripts/gc.scm:56 msgid "" "\n" " -R, --requisites list the requisites of PATHS" @@ -682,7 +769,7 @@ msgstr "" "\n" " -R, --requisites vis rekvisitter for STIER" -#: guix/scripts/gc.scm:55 +#: guix/scripts/gc.scm:58 msgid "" "\n" " --referrers list the referrers of PATHS" @@ -690,12 +777,40 @@ msgstr "" "\n" " --referrers vis henvisninger for STIER" -#: guix/scripts/gc.scm:84 +#: guix/scripts/gc.scm:61 +msgid "" +"\n" +" --verify[=OPTS] verify the integrity of the store; OPTS is a\n" +" comma-separated combination of 'repair' and\n" +" 'contents'" +msgstr "" +"\n" +" --verify[=OPTS] verificer integriteten for lageret; OPTS er en\n" +" kommaadskilt kombination af »repair« og \n" +" »contents«" + +#: guix/scripts/gc.scm:65 +msgid "" +"\n" +" --list-failures list cached build failures" +msgstr "" +"\n" +" --list-failures vis mellemlagrede byggefejl" + +#: guix/scripts/gc.scm:67 +msgid "" +"\n" +" --clear-failures remove PATHS from the set of cached failures" +msgstr "" +"\n" +" --clear-failures fjern STIER fra sættet med mellemlagrede fejl" + +#: guix/scripts/gc.scm:96 #, scheme-format msgid "invalid amount of storage: ~a~%" msgstr "ugyldig lagermængde: ~a~%" -#: guix/scripts/hash.scm:45 +#: guix/scripts/hash.scm:46 msgid "" "Usage: guix hash [OPTION] FILE\n" "Return the cryptographic hash of FILE.\n" @@ -709,7 +824,7 @@ msgstr "" "Understøttede formater: »nix-base32« (standard), »base32« og »base16« (»hex«\n" "og »hexadecimal« kan også bruges).\n" -#: guix/scripts/hash.scm:52 +#: guix/scripts/hash.scm:53 msgid "" "\n" " -r, --recursive compute the hash on FILE recursively" @@ -717,17 +832,17 @@ msgstr "" "\n" " -r, --recursive beregn hashen på FIL rekursivt" -#: guix/scripts/hash.scm:103 +#: guix/scripts/hash.scm:104 #, scheme-format msgid "unrecognized option: ~a~%" msgstr "tilvalg blev ikke genkendt: ~a~%" -#: guix/scripts/hash.scm:134 guix/ui.scm:318 +#: guix/scripts/hash.scm:135 guix/ui.scm:458 #, scheme-format msgid "~a~%" msgstr "~a~%" -#: guix/scripts/hash.scm:137 +#: guix/scripts/hash.scm:138 guix/scripts/system.scm:685 #, scheme-format msgid "wrong number of arguments~%" msgstr "forkert antal argumenter~%" @@ -744,17 +859,77 @@ msgstr "" msgid "IMPORTER must be one of the importers listed below:\n" msgstr "IMPORTER skal være en af importørerne vist nedenfor:\n" -#: guix/scripts/import.scm:101 +#: guix/scripts/import.scm:102 #, scheme-format msgid "guix import: missing importer name~%" msgstr "guix import: mangler importørnavn~%" -#: guix/scripts/import.scm:112 +#: guix/scripts/import.scm:113 #, scheme-format msgid "guix import: invalid importer~%" msgstr "guix import: ugyldig importør~%" -#: guix/scripts/pull.scm:72 +#: guix/scripts/import/cran.scm:42 +msgid "" +"Usage: guix import cran PACKAGE-NAME\n" +"Import and convert the CRAN package for PACKAGE-NAME.\n" +msgstr "" +"Usage: guix import cran PAKKENAVN\n" +"Importer og konverter pakken CRAN for PAKKENAVN.\n" + +#: guix/scripts/import/cran.scm:87 +#, scheme-format +msgid "failed to download description for package '~a'~%" +msgstr "kunne ikke hente beskrivelse for pakke »~a«:~%" + +#: guix/scripts/import/cran.scm:91 guix/scripts/import/elpa.scm:95 +#, scheme-format +msgid "too few arguments~%" +msgstr "for få argumenter~%" + +#: guix/scripts/import/cran.scm:93 guix/scripts/import/elpa.scm:97 +#, scheme-format +msgid "too many arguments~%" +msgstr "for mange argumenter~%" + +#: guix/scripts/import/elpa.scm:41 +msgid "" +"Usage: guix import elpa PACKAGE-NAME\n" +"Import the latest package named PACKAGE-NAME from an ELPA repository.\n" +msgstr "" +"Brug: guix import elpa PAKKENAVN\n" +"Importer den seneste pakke navngivet PAKKENAVN fra et ELPA-arkiv.\n" + +#: guix/scripts/import/elpa.scm:43 +msgid "" +"\n" +" -a, --archive=ARCHIVE specify the archive repository" +msgstr "" +"\n" +" -a, --archive=ARKIV specificer arkivet" + +#: guix/scripts/import/elpa.scm:45 +msgid "" +"\n" +" -h, --help display this help and exit" +msgstr "" +"\n" +" -h, --help vis denne hjælpetekst og afslut" + +#: guix/scripts/import/elpa.scm:47 +msgid "" +"\n" +" -V, --version display version information and exit" +msgstr "" +"\n" +" -V, --version vis versioninformation og afslut" + +#: guix/scripts/import/elpa.scm:92 +#, scheme-format +msgid "failed to download package '~a'~%" +msgstr "kunne ikke hente pakken »~a«:~%" + +#: guix/scripts/pull.scm:74 msgid "" "Usage: guix pull [OPTION]...\n" "Download and deploy the latest version of Guix.\n" @@ -762,7 +937,7 @@ msgstr "" "Brug: guix pull [TILVALG]...\n" "Hent og udrul den seneste version af Guix.\n" -#: guix/scripts/pull.scm:76 +#: guix/scripts/pull.scm:78 msgid "" "\n" " --url=URL download the Guix tarball from URL" @@ -770,7 +945,7 @@ msgstr "" "\n" " --url=URL hent Guix-tarball'en fra ADRESSE" -#: guix/scripts/pull.scm:78 +#: guix/scripts/pull.scm:80 msgid "" "\n" " --bootstrap use the bootstrap Guile to build the new Guix" @@ -778,128 +953,123 @@ msgstr "" "\n" " --bootstrap brug bootstrap Guile til at bygge den nye Guix" -#: guix/scripts/pull.scm:132 +#: guix/scripts/pull.scm:134 msgid "tarball did not produce a single source directory" msgstr "tarball fremstillede ikke en enkel kildemappe" -#: guix/scripts/pull.scm:150 +#: guix/scripts/pull.scm:152 #, scheme-format msgid "unpacking '~a'...~%" msgstr "udpakker »~a«...~%" -#: guix/scripts/pull.scm:159 +#: guix/scripts/pull.scm:161 msgid "failed to unpack source code" msgstr "kunne ikke udpakke kildekode" -#: guix/scripts/pull.scm:202 +#: guix/scripts/pull.scm:204 msgid "Guix already up to date\n" msgstr "Guix er allerede opdateret\n" -#: guix/scripts/pull.scm:207 +#: guix/scripts/pull.scm:209 #, scheme-format msgid "updated ~a successfully deployed under `~a'~%" msgstr "opdaterede ~a der med succes blev udrullet undet »~a«~%" -#: guix/scripts/pull.scm:210 +#: guix/scripts/pull.scm:212 #, scheme-format msgid "failed to update Guix, check the build log~%" msgstr "kunne ikke opdatere Guix, kontroller byggeloggen~%" -#: guix/scripts/pull.scm:219 +#: guix/scripts/pull.scm:221 #, scheme-format msgid "~A: unexpected argument~%" msgstr "~A: uventet argument~%" -#: guix/scripts/pull.scm:228 +#: guix/scripts/pull.scm:230 msgid "failed to download up-to-date source, exiting\n" msgstr "kunne ikke hente opdateret kilde, afslutter\n" -#: guix/scripts/substitute.scm:81 +#: guix/scripts/substitute.scm:103 #, scheme-format msgid "authentication and authorization of substitutes disabled!~%" msgstr "godkendelse og autorisation af substitutter er deaktiveret!~%" -#: guix/scripts/substitute.scm:157 +#: guix/scripts/substitute.scm:179 #, scheme-format msgid "download from '~a' failed: ~a, ~s~%" msgstr "hent fra »~a« mislykkedes: ~a, ~s~%" -#: guix/scripts/substitute.scm:169 +#: guix/scripts/substitute.scm:191 #, scheme-format msgid "while fetching ~a: server is somewhat slow~%" msgstr "under overførsel af ~a: server er noget langsom~%" -#: guix/scripts/substitute.scm:171 +#: guix/scripts/substitute.scm:193 #, scheme-format msgid "try `--no-substitutes' if the problem persists~%" msgstr "prøv »--no-substitutes« hvis problemet fortsætter~%" -#: guix/scripts/substitute.scm:214 -#, scheme-format -msgid "updating list of substitutes from '~a'...\r" -msgstr "opdaterer liste af substitutter fra »~a«...\r" - -#: guix/scripts/substitute.scm:246 +#: guix/scripts/substitute.scm:266 #, scheme-format msgid "signature version must be a number: ~s~%" msgstr "signaturversion skal være et nummer: ~s~%" -#: guix/scripts/substitute.scm:250 +#: guix/scripts/substitute.scm:270 #, scheme-format msgid "unsupported signature version: ~a~%" msgstr "signaturversion er ikke understøttet: ~a~%" -#: guix/scripts/substitute.scm:258 +#: guix/scripts/substitute.scm:278 #, scheme-format msgid "signature is not a valid s-expression: ~s~%" msgstr "signatur er ikke et gyldigt s-udtryk: ~s~%" -#: guix/scripts/substitute.scm:262 +#: guix/scripts/substitute.scm:282 #, scheme-format msgid "invalid format of the signature field: ~a~%" msgstr "ugyldigt format for signaturfeltet: ~a~%" -#: guix/scripts/substitute.scm:297 +#: guix/scripts/substitute.scm:317 #, scheme-format msgid "invalid signature for '~a'~%" msgstr "ugyldig signatur for »~a«~%" -#: guix/scripts/substitute.scm:299 +#: guix/scripts/substitute.scm:319 #, scheme-format msgid "hash mismatch for '~a'~%" msgstr "hash mismatch for »~a«~%" -#: guix/scripts/substitute.scm:301 +#: guix/scripts/substitute.scm:321 #, scheme-format msgid "'~a' is signed with an unauthorized key~%" msgstr "»~a« er underskrevet med en uautoriseret nøgle~%" -#: guix/scripts/substitute.scm:303 +#: guix/scripts/substitute.scm:323 #, scheme-format msgid "signature on '~a' is corrupt~%" msgstr "signatur på »~a« er ødelagt~%" -#: guix/scripts/substitute.scm:341 +#: guix/scripts/substitute.scm:361 #, scheme-format msgid "substitute at '~a' lacks a signature~%" msgstr "substitut på »~a« mangler en signatur~%" -#: guix/scripts/substitute.scm:504 +#: guix/scripts/substitute.scm:537 #, scheme-format msgid "updating list of substitutes from '~a'... ~5,1f%" msgstr "opdaterer liste af substitutter fra »~a«... ~5,1f%" -#: guix/scripts/substitute.scm:552 +#: guix/scripts/substitute.scm:591 #, scheme-format msgid "~s: unsupported server URI scheme~%" msgstr "~s: ikke understøttet server-URI-skema~%" -#: guix/scripts/substitute.scm:663 +#: guix/scripts/substitute.scm:733 #, scheme-format msgid "host name lookup error: ~a~%" msgstr "opslagsfejl for værtsnavn: ~a~%" -#: guix/scripts/substitute.scm:672 +#: guix/scripts/substitute.scm:742 msgid "" "Usage: guix substitute [OPTION]...\n" "Internal tool to substitute a pre-built binary to a local build.\n" @@ -907,7 +1077,7 @@ msgstr "" "Brug: guix substitute [TILVALG] ...\n" "Internt værktøj til at erstatte en præbygget binær fil med en lokal bygning.\n" -#: guix/scripts/substitute.scm:674 +#: guix/scripts/substitute.scm:744 msgid "" "\n" " --query report on the availability of substitutes for the\n" @@ -917,7 +1087,7 @@ msgstr "" " --query rapport om tilgængeligheden for substitutter for\n" " lagerfilnavnene sendt til standardind" -#: guix/scripts/substitute.scm:677 +#: guix/scripts/substitute.scm:747 msgid "" "\n" " --substitute STORE-FILE DESTINATION\n" @@ -929,21 +1099,11 @@ msgstr "" " hent LAGER-FIL og lagr den som en Nar i filen\n" " DESTINATION" -#: guix/scripts/substitute.scm:712 +#: guix/scripts/substitute.scm:872 msgid "ACL for archive imports seems to be uninitialized, substitutes may be unavailable\n" msgstr "ACL for arkivimporter ser ikke ud til at være initialiseret, substitutter kan være utilgængelige\n" -#: guix/scripts/substitute.scm:750 -#, scheme-format -msgid "these substitute URLs will not be used:~{ ~a~}~%" -msgstr "disse substitutadresser vil ikke blive brugt:~{ ~a~}~%" - -#: guix/scripts/substitute.scm:776 -#, scheme-format -msgid "failed to look up host '~a' (~a), substituter disabled~%" -msgstr "kunne ikke slå vært op »~a« (~a), substitutter deaktiveret~%" - -#: guix/scripts/substitute.scm:883 +#: guix/scripts/substitute.scm:954 #, scheme-format msgid "~a: unrecognized options~%" msgstr "~a: ikke genkendte tilvalg~%" @@ -982,12 +1142,12 @@ msgstr "" msgid "wrong arguments" msgstr "forkerte argumenter" -#: guix/scripts/system.scm:106 +#: guix/scripts/system.scm:105 #, scheme-format msgid "failed to register '~a' under '~a'~%" msgstr "kunne ikke registrere »~a« under »~a«~%" -#: guix/scripts/system.scm:138 +#: guix/scripts/system.scm:137 #, scheme-format msgid "failed to install GRUB on device '~a'~%" msgstr "kunne ikke installere GRUB på enhed »~a«~%" @@ -997,58 +1157,127 @@ msgstr "kunne ikke installere GRUB på enhed »~a«~%" msgid "initializing the current root file system~%" msgstr "initialiserer det nuværende root-filsystem~%" -#: guix/scripts/system.scm:209 +#: guix/scripts/system.scm:169 #, scheme-format -msgid "activating system...~%" -msgstr "aktiverer system ...~%" +msgid "not running as 'root', so the ownership of '~a' may be incorrect!~%" +msgstr "kører ikke som »root«, så ejerskabet af »~a« kan være forkert!~%" -#: guix/scripts/system.scm:259 +#: guix/scripts/system.scm:219 #, scheme-format msgid "unrecognized boot parameters for '~a'~%" msgstr "ikke genkendte opstartsparametre for »~a«~%" -#: guix/scripts/system.scm:355 +#: guix/scripts/system.scm:254 +#, scheme-format +msgid "activating system...~%" +msgstr "aktiverer system ...~%" + +#: guix/scripts/system.scm:338 +msgid "the DAG of services" +msgstr "DAG'en for tjenester" + +#: guix/scripts/system.scm:351 +msgid "the dependency graph of dmd services" +msgstr "afhængighedsgrafen for dmd-tjenester" + +#: guix/scripts/system.scm:369 +#, scheme-format +msgid " file name: ~a~%" +msgstr " filnavn: ~a~%" + +#: guix/scripts/system.scm:370 +#, scheme-format +msgid " canonical file name: ~a~%" +msgstr " kanonisk filnavn: ~a~%" + +#. TRANSLATORS: Please preserve the two-space indentation. +#: guix/scripts/system.scm:374 +#, scheme-format +msgid " label: ~a~%" +msgstr " etikelt: ~a~%" + +#: guix/scripts/system.scm:375 +#, scheme-format +msgid " root device: ~a~%" +msgstr " root-enhed: ~a~%" + +#: guix/scripts/system.scm:376 +#, scheme-format +msgid " kernel: ~a~%" +msgstr " kerne: ~a~%" + +#: guix/scripts/system.scm:476 #, scheme-format msgid "initializing operating system under '~a'...~%" msgstr "initialiserer operativsystem under »~a«...~%" -#: guix/scripts/system.scm:371 +#: guix/scripts/system.scm:515 msgid "" -"Usage: guix system [OPTION] ACTION FILE\n" +"Usage: guix system [OPTION] ACTION [FILE]\n" "Build the operating system declared in FILE according to ACTION.\n" msgstr "" -"Brug: guix system [TILVALG] HANDLING FIL\n" +"Brug: guix system [TILVALG] HANDLING [FIL]\n" "Byg operativsystemet deklæret i FIL jævnfør HANDLING.\n" -#: guix/scripts/system.scm:374 +#: guix/scripts/system.scm:518 msgid "The valid values for ACTION are:\n" msgstr "De gyldige værdier for HANDLING er:\n" -#: guix/scripts/system.scm:375 -msgid " - 'reconfigure', switch to a new operating system configuration\n" -msgstr " - »reconfigure«, skift til en ny operativsystemkonfiguration\n" +#: guix/scripts/system.scm:520 +msgid " reconfigure switch to a new operating system configuration\n" +msgstr " reconfigure skift til en ny operativsystemkonfiguration\n" + +#: guix/scripts/system.scm:522 +msgid " list-generations list the system generations\n" +msgstr " list-generations viser systemoprettelserne\n" + +#: guix/scripts/system.scm:524 +msgid " build build the operating system without installing anything\n" +msgstr " build byg operativsystemet uden at installere noget\n" -#: guix/scripts/system.scm:377 -msgid " - 'build', build the operating system without installing anything\n" -msgstr " - »build«, byg operativsystemet uden at installere noget\n" +#: guix/scripts/system.scm:526 +msgid " vm build a virtual machine image that shares the host's store\n" +msgstr " vm byg et virtuelt maskinaftryk som deler værtens lager\n" -#: guix/scripts/system.scm:379 -msgid " - 'vm', build a virtual machine image that shares the host's store\n" -msgstr " - »vm«, byg et virtuelt maskinaftryk som deler værtens lager\n" +#: guix/scripts/system.scm:528 +msgid " vm-image build a freestanding virtual machine image\n" +msgstr " vm-image byg et fritstående virtuelt maskinaftryk\n" -#: guix/scripts/system.scm:381 -msgid " - 'vm-image', build a freestanding virtual machine image\n" -msgstr " - »vm-image«, byg et fritstående virtuelt maskinaftryk\n" +#: guix/scripts/system.scm:530 +msgid " disk-image build a disk image, suitable for a USB stick\n" +msgstr " disk-image byg et diskaftryk, egnet for et USB-drev\n" -#: guix/scripts/system.scm:383 -msgid " - 'disk-image', build a disk image, suitable for a USB stick\n" -msgstr " - »disk-image«, byg et diskaftryk, egnet for et USB-drev\n" +#: guix/scripts/system.scm:532 +msgid " init initialize a root file system to run GNU\n" +msgstr " init initialiser et rootfilsystem til at køre GNU.\n" + +#: guix/scripts/system.scm:534 +msgid " extension-graph emit the service extension graph in Dot format\n" +msgstr " extension-graph udsend tjenesteudvidelsesgrafen i Dot-format\n" + +#: guix/scripts/system.scm:536 +msgid " dmd-graph emit the graph of dmd services in Dot format\n" +msgstr " dmd-graph udsend grafen for dmd-tjenester i Dot-format\n" + +#: guix/scripts/system.scm:540 +msgid "" +"\n" +" -d, --derivation return the derivation of the given system" +msgstr "" +"\n" +" -d, --derivation returner de afledte stier for det givne system" -#: guix/scripts/system.scm:385 -msgid " - 'init', initialize a root file system to run GNU.\n" -msgstr " - »init«, initialiser et rootfilsystem til at køre GNU.\n" +#: guix/scripts/system.scm:542 +msgid "" +"\n" +" --on-error=STRATEGY\n" +" apply STRATEGY when an error occurs while reading FILE" +msgstr "" +"\n" +" --on-error=STRATEGI\n" +" brug STRATEGI når den opstår en fejl under læsning af FIL" -#: guix/scripts/system.scm:389 +#: guix/scripts/system.scm:545 msgid "" "\n" " --image-size=SIZE for 'vm-image', produce an image of SIZE" @@ -1056,7 +1285,7 @@ msgstr "" "\n" " --image-size=STR for »vm-image«, lav et aftryk af STR" -#: guix/scripts/system.scm:391 +#: guix/scripts/system.scm:547 msgid "" "\n" " --no-grub for 'init', do not install GRUB" @@ -1064,7 +1293,7 @@ msgstr "" "\n" " --no-grub for »init«, installer ikke GRUB" -#: guix/scripts/system.scm:393 +#: guix/scripts/system.scm:549 msgid "" "\n" " --share=SPEC for 'vm', share host file system according to SPEC" @@ -1072,7 +1301,7 @@ msgstr "" "\n" " --share=SPEC for »vm«, del værtsfilsystem jævnfør SPEC" -#: guix/scripts/system.scm:395 +#: guix/scripts/system.scm:551 msgid "" "\n" " --expose=SPEC for 'vm', expose host file system according to SPEC" @@ -1080,7 +1309,7 @@ msgstr "" "\n" " --expose=SPEC for »vm«, fremvis værtsfilsystem jævnfør SPEC" -#: guix/scripts/system.scm:397 +#: guix/scripts/system.scm:553 msgid "" "\n" " --full-boot for 'vm', make a full boot sequence" @@ -1088,36 +1317,50 @@ msgstr "" "\n" " --full-boot for »vm«, lav en fuld opstartssekvens" -#: guix/scripts/system.scm:484 +#: guix/scripts/system.scm:637 +#, scheme-format +msgid "no configuration file specified~%" +msgstr "ingen konfigurationsfil angivet~%" + +#: guix/scripts/system.scm:700 #, scheme-format msgid "~a: unknown action~%" msgstr "~a: ukendt handling~%" -#: guix/scripts/system.scm:499 +#: guix/scripts/system.scm:715 #, scheme-format msgid "wrong number of arguments for action '~a'~%" msgstr "forkert antal argumenter for handling »~a«~%" -#: guix/scripts/system.scm:522 +#: guix/scripts/system.scm:720 #, scheme-format -msgid "no configuration file specified~%" -msgstr "ingen konfigurationsfil angivet~%" +msgid "guix system: missing command name~%" +msgstr "guix system: mangler kommandonavn~%" + +#: guix/scripts/system.scm:722 +#, scheme-format +msgid "Try 'guix system --help' for more information.~%" +msgstr "Prøv »guix system --help« for yderligere information.~%" -#: guix/scripts/lint.scm:90 +#: guix/scripts/lint.scm:124 #, scheme-format msgid "Available checkers:~%" msgstr "Tilgængelige kontrolprogrammer:~%" -#: guix/scripts/lint.scm:110 +#: guix/scripts/lint.scm:144 msgid "description should not be empty" msgstr "beskrivelse skal være udfyldt" -#: guix/scripts/lint.scm:117 +#: guix/scripts/lint.scm:154 +msgid "Texinfo markup in description is invalid" +msgstr "Texinfo-opmærkning i beskrivelse er ugyldig" + +#: guix/scripts/lint.scm:162 msgid "description should start with an upper-case letter or digit" msgstr "beskrivelse skal starte med et stort bogstav eller et tal" # arg, hvad foregår der her -#: guix/scripts/lint.scm:133 +#: guix/scripts/lint.scm:178 #, scheme-format msgid "" "sentences in description should be followed ~\n" @@ -1126,133 +1369,181 @@ msgstr "" "sætninger i beskrivelsen skal efterfølges ~\n" "af to mellemrum; mulig infraction~p ved ~{~a~^, ~}" -#: guix/scripts/lint.scm:154 +#: guix/scripts/lint.scm:202 msgid "pkg-config should probably be a native input" msgstr "pkg-config skal sandsynligvis være standarddata" -#: guix/scripts/lint.scm:169 +#: guix/scripts/lint.scm:217 msgid "synopsis should not be empty" msgstr "synopsis skal være udfyldt" -#: guix/scripts/lint.scm:177 +#: guix/scripts/lint.scm:225 msgid "no period allowed at the end of the synopsis" msgstr "ingen periode er tilladt i slutningen af synopsen" -#: guix/scripts/lint.scm:189 +#: guix/scripts/lint.scm:237 msgid "no article allowed at the beginning of the synopsis" msgstr "ingen artikel er tilladt i begyndelsen af synopsen" -#: guix/scripts/lint.scm:196 +#: guix/scripts/lint.scm:244 msgid "synopsis should be less than 80 characters long" msgstr "synopsis skal være mindre end 80 tegn lang" -#: guix/scripts/lint.scm:202 +#: guix/scripts/lint.scm:250 msgid "synopsis should start with an upper-case letter or digit" msgstr "synopsis skal starte med et stort bogstav eller et tal" -#: guix/scripts/lint.scm:209 +#: guix/scripts/lint.scm:257 msgid "synopsis should not start with the package name" msgstr "synopsis skal ikke starte med pakkenavnet" -#: guix/scripts/lint.scm:299 guix/scripts/lint.scm:310 +#: guix/scripts/lint.scm:348 guix/scripts/lint.scm:360 #, scheme-format msgid "URI ~a not reachable: ~a (~s)" msgstr "URI ~a kan ikke nås: ~a (~s)" -#: guix/scripts/lint.scm:316 +#: guix/scripts/lint.scm:367 #, scheme-format msgid "URI ~a domain not found: ~a" msgstr "URI ~a domæne blev ikke fundet: ~a" -#: guix/scripts/lint.scm:324 +#: guix/scripts/lint.scm:375 #, scheme-format msgid "URI ~a unreachable: ~a" msgstr "URI ~a kan ikke nås: ~a" -#: guix/scripts/lint.scm:350 +#: guix/scripts/lint.scm:401 msgid "invalid value for home page" msgstr "ugyldig værdi for hjemmeside" -#: guix/scripts/lint.scm:353 +#: guix/scripts/lint.scm:404 #, scheme-format msgid "invalid home page URL: ~s" msgstr "ugyldig hjemmesideadresse: ~s" -#: guix/scripts/lint.scm:378 +#: guix/scripts/lint.scm:429 msgid "file names of patches should start with the package name" msgstr "filnavn for rettelser skal starte med pakkenavnet" -#: guix/scripts/lint.scm:416 +#: guix/scripts/lint.scm:467 #, scheme-format msgid "~a: ~a: proposed synopsis: ~s~%" msgstr "~a: ~a: foreslået synopsis: ~s~%" -#: guix/scripts/lint.scm:428 +#: guix/scripts/lint.scm:479 #, scheme-format msgid "~a: ~a: proposed description:~% \"~a\"~%" msgstr "~a: ~a: foreslået beskrivelse:~% »~a«~%" -#: guix/scripts/lint.scm:453 guix/scripts/lint.scm:457 +#: guix/scripts/lint.scm:516 +msgid "all the source URIs are unreachable:" +msgstr "alle kilde-URI'erne kan ikke nås:" + +#: guix/scripts/lint.scm:539 +msgid "the source file name should contain the package name" +msgstr "kildefilnavnet skal indeholde pakkenavnet" + +#: guix/scripts/lint.scm:548 guix/scripts/lint.scm:552 #, scheme-format msgid "failed to create derivation: ~a" msgstr "kunne ikke oprette afledning: ~a" -#: guix/scripts/lint.scm:463 +#: guix/scripts/lint.scm:558 #, scheme-format msgid "failed to create derivation: ~s~%" msgstr "kunne ikke oprette afledning: ~s~%" -#: guix/scripts/lint.scm:476 +#: guix/scripts/lint.scm:568 +msgid "invalid license field" +msgstr "ugyldigt licensfelt" + +#: guix/scripts/lint.scm:582 +#, scheme-format +msgid "tabulation on line ~a, column ~a" +msgstr "tabulering på linje ~a, kolonne ~a" + +#: guix/scripts/lint.scm:591 +#, scheme-format +msgid "trailing white space on line ~a" +msgstr "efterstillet mellemrum på linje ~a" + +#: guix/scripts/lint.scm:601 +#, scheme-format +msgid "line ~a is way too long (~a characters)" +msgstr "linjen ~a er alt for lang (~a tegn)" + +#: guix/scripts/lint.scm:612 +#, scheme-format +msgid "line ~a: parentheses feel lonely, move to the previous or next line" +msgstr "linjen ~a: parenteser er ensomme, flyt til den forrige eller næste linje" + +#: guix/scripts/lint.scm:667 msgid "Validate package descriptions" msgstr "Valider pakkebeskrivelser" -#: guix/scripts/lint.scm:480 +#: guix/scripts/lint.scm:671 msgid "Validate synopsis & description of GNU packages" msgstr "Valider synopsis og beskrivelse for GNU-pakker" -#: guix/scripts/lint.scm:484 +#: guix/scripts/lint.scm:675 msgid "Identify inputs that should be native inputs" msgstr "Identificer inddata som skal være standarddata" -#: guix/scripts/lint.scm:488 +#: guix/scripts/lint.scm:679 msgid "Validate file names and availability of patches" msgstr "Valider filnavne og tilgængelighed for rettelser" -#: guix/scripts/lint.scm:492 +#: guix/scripts/lint.scm:683 msgid "Validate home-page URLs" msgstr "Valider hjemmesiders adresser" -#: guix/scripts/lint.scm:496 +#. TRANSLATORS: is the name of a data type and must not be +#. translated. +#: guix/scripts/lint.scm:689 +msgid "Make sure the 'license' field is a or a list thereof" +msgstr "Sikr at feltet »license« er en eller en liste deraf" + +#: guix/scripts/lint.scm:694 msgid "Validate source URLs" msgstr "Valider kildeadresser" -#: guix/scripts/lint.scm:500 +#: guix/scripts/lint.scm:698 +msgid "Validate file names of sources" +msgstr "Valider filnavne for kilder" + +#: guix/scripts/lint.scm:702 msgid "Report failure to compile a package to a derivation" msgstr "Rapporter mislykket kompilering af en pakke til en afledning" -#: guix/scripts/lint.scm:504 +#: guix/scripts/lint.scm:706 msgid "Validate package synopses" msgstr "Valider pakkesynopser" -#: guix/scripts/lint.scm:529 +#: guix/scripts/lint.scm:710 +msgid "Look for formatting issues in the source" +msgstr "Kig efter formateringsproblemstillinger i kilden" + +#: guix/scripts/lint.scm:735 msgid "" "Usage: guix lint [OPTION]... [PACKAGE]...\n" -"Run a set of checkers on the specified package; if none is specified, run the checkers on all packages.\n" +"Run a set of checkers on the specified package; if none is specified,\n" +"run the checkers on all packages.\n" msgstr "" "Brug: guix lint [TILVALG]... [PAKKE]...\n" -"Kør et sæt af kontroller på den specificerede pakke; hvis ingen er specificeret, så kør kontrollerne på alle pakker.\n" +"Kør et sæt af kontroller på den specificerede pakke; hvis ingen er specificeret,\n" +"så kør kontrollerne på alle pakker.\n" -#: guix/scripts/lint.scm:531 +#: guix/scripts/lint.scm:738 msgid "" "\n" " -c, --checkers=CHECKER1,CHECKER2...\n" -" only run the specificed checkers" +" only run the specified checkers" msgstr "" "\n" " -c, --checkers=KONTROL1,KONTROL2...\n" " kør kun de specificerede kontroller" -#: guix/scripts/lint.scm:536 +#: guix/scripts/lint.scm:743 msgid "" "\n" " -l, --list-checkers display the list of available lint checkers" @@ -1260,12 +1551,12 @@ msgstr "" "\n" " -l, --list-checkers vis listen med tilgængelige lint-kontroller" -#: guix/scripts/lint.scm:556 +#: guix/scripts/lint.scm:763 #, scheme-format msgid "~a: invalid checker~%" msgstr "~a: ugyldig kontrol~%" -#: guix/scripts/publish.scm:49 +#: guix/scripts/publish.scm:52 #, scheme-format msgid "" "Usage: guix publish [OPTION]...\n" @@ -1274,7 +1565,7 @@ msgstr "" "Brug: guix publish [TILVALG] ...\n" "Udgiv ~a over HTTP.\n" -#: guix/scripts/publish.scm:51 +#: guix/scripts/publish.scm:54 msgid "" "\n" " -p, --port=PORT listen on PORT" @@ -1282,7 +1573,23 @@ msgstr "" "\n" " -p, --port=PORT lyt på PORT" -#: guix/scripts/publish.scm:53 +#: guix/scripts/publish.scm:56 +msgid "" +"\n" +" --listen=HOST listen on the network interface for HOST" +msgstr "" +"\n" +" --listen=VÆRT lyt på netværksgrænsefladen efter VÆRT" + +#: guix/scripts/publish.scm:58 +msgid "" +"\n" +" -u, --user=USER change privileges to USER as soon as possible" +msgstr "" +"\n" +" -u, --user=BRUGER ændr privilegier for BRUGER så snart som muligt" + +#: guix/scripts/publish.scm:60 msgid "" "\n" " -r, --repl[=PORT] spawn REPL server on PORT" @@ -1290,62 +1597,294 @@ msgstr "" "\n" " -r, --repl[=PORT] udsend REPL-server on PORT" -#: guix/scripts/publish.scm:235 +#: guix/scripts/publish.scm:76 #, scheme-format -msgid "~A: extraneuous argument~%" -msgstr "~A: uvedkommende argument~%" +msgid "lookup of host '~a' failed: ~a~%" +msgstr "opslag efter værten »~a« mislykkedes: ~a~%" + +#: guix/scripts/publish.scm:100 +#, scheme-format +msgid "lookup of host '~a' returned nothing" +msgstr "opslag efter værten »~a« returnerede intet" + +#: guix/scripts/publish.scm:343 +#, scheme-format +msgid "user '~a' not found: ~a~%" +msgstr "brugeren »~a« blev ikke fundet: ~a~%" -#: guix/scripts/publish.scm:239 +#: guix/scripts/publish.scm:378 #, scheme-format -msgid "publishing ~a on port ~d~%" -msgstr "udgiver ~a på port ~d~%" +msgid "server running as root; consider using the '--user' option!~%" +msgstr "server kører som root; overvej at bruge tilvalget »--user«!~%" -#: guix/gnu-maintenance.scm:447 +#: guix/scripts/publish.scm:380 +#, scheme-format +msgid "publishing ~a on ~a, port ~d~%" +msgstr "udgiver ~a på ~a, port ~d~%" + +#: guix/scripts/edit.scm:40 +msgid "" +"Usage: guix edit PACKAGE...\n" +"Start $EDITOR to edit the definitions of PACKAGE...\n" +msgstr "" +"Brug: guix edit PAKKE...\n" +"Start $EDITOR for at redigere definitionerne for PAKKE...\n" + +#: guix/scripts/edit.scm:58 +#, scheme-format +msgid "file '~a' not found in search path ~s~%" +msgstr "filen »~a« blev ikke fundet i søgestien ~s~%" + +#: guix/scripts/edit.scm:70 +#, scheme-format +msgid "source location of package '~a' is unknown~%" +msgstr "kildeplacering for pakken »~a« er ukendt~%" + +#: guix/scripts/size.scm:75 +#, scheme-format +msgid "no available substitute information for '~a'~%" +msgstr "ingen tilgængelig substitutinformation for »~a«~%" + +#: guix/scripts/size.scm:83 +msgid "store item" +msgstr "lagerpost" + +#: guix/scripts/size.scm:83 +msgid "total" +msgstr "i alt" + +#: guix/scripts/size.scm:83 +msgid "self" +msgstr "selv" + +#. TRANSLATORS: This is the title of a graph, meaning that the graph +#. represents a profile of the store (the "store" being the place where +#. packages are stored.) +#: guix/scripts/size.scm:204 +msgid "store profile" +msgstr "lagerprofil" + +#: guix/scripts/size.scm:213 +msgid "" +"Usage: guix size [OPTION]... PACKAGE\n" +"Report the size of PACKAGE and its dependencies.\n" +msgstr "" +"Brug: guix size [TILVALG]... PAKKE\n" +"Rapporter størrelsen for PAKKE og dens afhængigheder.\n" + +#: guix/scripts/size.scm:218 +msgid "" +"\n" +" -s, --system=SYSTEM consider packages for SYSTEM--e.g., \"i686-linux\"" +msgstr "" +"\n" +" -s, --system=SYSTEM overvej pakker for SYSTEM--f.eks., »i686-linux«" + +#: guix/scripts/size.scm:220 +msgid "" +"\n" +" -m, --map-file=FILE write to FILE a graphical map of disk usage" +msgstr "" +"\n" +" -m, --map-file=FIL skriv til FIL et grafisk kort over diskforbrug" + +#: guix/scripts/size.scm:274 +msgid "missing store item argument\n" +msgstr "manglende lagerpostargument\n" + +#: guix/scripts/size.scm:292 +msgid "too many arguments\n" +msgstr "for mange argumenter\n" + +#: guix/scripts/graph.scm:105 +msgid "the DAG of packages, excluding implicit inputs" +msgstr "DAG'en for pakker, ekskluderende implicitte inddata" + +#: guix/scripts/graph.scm:155 +msgid "the DAG of packages, including implicit inputs" +msgstr "DAG'en for pakker, inkluderende implicitte inddata" + +#: guix/scripts/graph.scm:179 +msgid "same as 'bag', but without the bootstrap nodes" +msgstr "samme som »bag«m uden bootstrap-knuder" + +#: guix/scripts/graph.scm:222 +msgid "the DAG of derivations" +msgstr "DAG'en for afledninger" + +#: guix/scripts/graph.scm:246 +#, scheme-format +msgid "references for '~a' are not known~%" +msgstr "referencer for »~a« er ikke kendt~%" + +#: guix/scripts/graph.scm:253 +msgid "the DAG of run-time dependencies (store references)" +msgstr "DAG'en for kørselstidsafhængigheder (lagerreferencer)" + +#: guix/scripts/graph.scm:282 +#, scheme-format +msgid "~a: unknown node type~%" +msgstr "~a: ukendt knudetype~%" + +#: guix/scripts/graph.scm:286 +msgid "The available node types are:\n" +msgstr "De gyldige knudetyper er:\n" + +#. TRANSLATORS: Here 'dot' is the name of a program; it must not be +#. translated. +#: guix/scripts/graph.scm:389 +msgid "" +"Usage: guix graph PACKAGE...\n" +"Emit a Graphviz (dot) representation of the dependencies of PACKAGE...\n" +msgstr "" +"Brug: guix graph PAKKE...\n" +"Udsend en Graphviz-repræsentation (dot) af afhængighederne for PAKKE...\n" + +#: guix/scripts/graph.scm:391 +msgid "" +"\n" +" -t, --type=TYPE represent nodes of the given TYPE" +msgstr "" +"\n" +" -t, --type=TYPE repræsenter knuder for den givne TYPE" + +#: guix/scripts/graph.scm:393 +msgid "" +"\n" +" --list-types list the available graph types" +msgstr "" +"\n" +" --list-types vis de tilgængelige graftyper" + +#: guix/scripts/graph.scm:395 +msgid "" +"\n" +" -e, --expression=EXPR consider the package EXPR evaluates to" +msgstr "" +"\n" +" -e, --expression=UDTRYK overvej pakken UDTRYK evaluerer til" + +#: guix/scripts/challenge.scm:104 +#, scheme-format +msgid "~a: no substitute at '~a'~%" +msgstr "~a: ingen substitut på »~a«~%" + +#: guix/scripts/challenge.scm:120 +#, scheme-format +msgid "no substitutes for '~a'~%" +msgstr "ingen substitutter for »~a«~%" + +#: guix/scripts/challenge.scm:137 guix/scripts/challenge.scm:157 +#, scheme-format +msgid "no local build for '~a'~%" +msgstr "ingen lokal bygning for »~a«~%" + +#: guix/scripts/challenge.scm:154 +#, scheme-format +msgid "~a contents differ:~%" +msgstr "~a indhold er forskelligt:~%" + +#: guix/scripts/challenge.scm:156 +#, scheme-format +msgid " local hash: ~a~%" +msgstr " lokal hash: ~a~%" + +#: guix/scripts/challenge.scm:161 +#, scheme-format +msgid " ~50a: ~a~%" +msgstr " ~50a: ~a~%" + +#: guix/scripts/challenge.scm:165 +#, scheme-format +msgid " ~50a: unavailable~%" +msgstr " ~50a: utilgængelig~%" + +#: guix/scripts/challenge.scm:175 +msgid "" +"Usage: guix challenge [PACKAGE...]\n" +"Challenge the substitutes for PACKAGE... provided by one or more servers.\n" +msgstr "" +"Brug: guix challenge [PAKKE...]\n" +"Ændr substitutterne for PAKKE... tilbudt af en eller flere servere.\n" + +#: guix/scripts/challenge.scm:177 +msgid "" +"\n" +" --substitute-urls=URLS\n" +" compare build results with those at URLS" +msgstr "" +"\n" +" --substitute-urls=ADRESSER\n" +" sammenlign byggeresultater med dem på ADRESSER" + +#: guix/gnu-maintenance.scm:418 +msgid "Updater for GNU packages" +msgstr "Opdater for GNU-pakker" + +#: guix/upstream.scm:156 #, scheme-format msgid "signature verification failed for `~a'~%" msgstr "signaturverifikation mislykkedes for »~a«~%" -#: guix/gnu-maintenance.scm:449 +#: guix/upstream.scm:158 #, scheme-format msgid "(could be because the public key is not in your keyring)~%" msgstr "(kunne være fordi den offentlige nøgle ikke er i din nøglering)~%" -#: guix/gnu-maintenance.scm:524 +#: guix/upstream.scm:190 +msgid "gz" +msgstr "gz" + +#: guix/upstream.scm:253 #, scheme-format msgid "~a: could not locate source file" msgstr "~a: kunne ikke lokalisere kildefil" -#: guix/gnu-maintenance.scm:529 +#: guix/upstream.scm:258 #, scheme-format msgid "~a: ~a: no `version' field in source; skipping~%" msgstr "~a: ~a: intet »versionsfelt« i kilde; udelader~%" -#: guix/ui.scm:142 guix/ui.scm:159 +#: guix/ui.scm:234 +msgid "entering debugger; type ',bt' for a backtrace\n" +msgstr "går i fejlsøger; tast »,bt« for en tilbagesporing\n" + +#: guix/ui.scm:250 guix/ui.scm:267 #, scheme-format msgid "failed to load '~a': ~a~%" msgstr "kunne ikke indlæse »~a«: ~a~%" -#: guix/ui.scm:145 +#: guix/ui.scm:253 #, scheme-format msgid "~a: error: ~a~%" msgstr "~a: fejl: ~a~%" -#: guix/ui.scm:149 guix/ui.scm:165 +#: guix/ui.scm:256 guix/ui.scm:510 +#, scheme-format +msgid "exception thrown: ~s~%" +msgstr "undtagelse smidt: ~s~%" + +#: guix/ui.scm:258 guix/ui.scm:276 #, scheme-format msgid "failed to load '~a':~%" msgstr "kunne ikke indlæse »~a«:~%" -#: guix/ui.scm:162 +#: guix/ui.scm:270 #, scheme-format msgid "~a: warning: ~a~%" msgstr "~a: advarsel: ~a~%" -#: guix/ui.scm:174 +#: guix/ui.scm:273 +#, scheme-format +msgid "failed to load '~a': exception thrown: ~s~%" +msgstr "kunne ikke indlæse »~a«: undtagelse smidt: ~s~%" + +#: guix/ui.scm:285 #, scheme-format msgid "failed to install locale: ~a~%" msgstr "kunne ikke installere sprog: ~a~%" -#: guix/ui.scm:193 +#: guix/ui.scm:304 msgid "" "Copyright (C) 2015 the Guix authors\n" "License GPLv3+: GNU GPL version 3 or later \n" @@ -1357,7 +1896,7 @@ msgstr "" "Dette er et frit program; du kan frit ændre og videredistribuere programmet.\n" "Der er INGEN GARANTI, inden for lovens rammer.\n" -#: guix/ui.scm:201 +#: guix/ui.scm:312 #, scheme-format msgid "" "\n" @@ -1366,7 +1905,7 @@ msgstr "" "\n" "Rapporter fejl til: ~a." -#: guix/ui.scm:203 +#: guix/ui.scm:314 #, scheme-format msgid "" "\n" @@ -1375,7 +1914,7 @@ msgstr "" "\n" "~a hjemmeside: <~a>" -#: guix/ui.scm:205 +#: guix/ui.scm:316 msgid "" "\n" "General help using GNU software: " @@ -1383,194 +1922,219 @@ msgstr "" "\n" "Generel hjælp til brugen af GNU-programmer: " -#: guix/ui.scm:227 +#: guix/ui.scm:361 +#, scheme-format +msgid "'~a' is not a valid regular expression: ~a~%" +msgstr "»~a« er ikke et gyldigt regulært udtryk: ~a~%" + +#: guix/ui.scm:367 #, scheme-format msgid "~a: invalid number~%" msgstr "~a: ugyldigt nummer~%" -#: guix/ui.scm:244 +#: guix/ui.scm:384 #, scheme-format msgid "invalid number: ~a~%" msgstr "ugyldigt nummer: ~a~%" -#: guix/ui.scm:267 +#: guix/ui.scm:407 #, scheme-format msgid "unknown unit: ~a~%" msgstr "ukendt enhed: ~a~%" -#: guix/ui.scm:278 +#: guix/ui.scm:418 #, scheme-format msgid "~a:~a:~a: package `~a' has an invalid input: ~s~%" msgstr "~a:~a:~a: pakken »~a« har ugyldige inddata: ~s~%" -#: guix/ui.scm:285 +#: guix/ui.scm:425 #, scheme-format msgid "~a: ~a: build system `~a' does not support cross builds~%" msgstr "~a: ~a: byggesystem »~a« understøtter ikke krydsbygninger~%" -#: guix/ui.scm:290 +#: guix/ui.scm:430 #, scheme-format msgid "profile '~a' does not exist~%" msgstr "profilen »~a« findes ikke~%" -#: guix/ui.scm:293 +#: guix/ui.scm:433 #, scheme-format msgid "generation ~a of profile '~a' does not exist~%" msgstr "oprettelse ~a af profilen »~a« findes ikke~%" -#: guix/ui.scm:300 +#: guix/ui.scm:440 #, scheme-format msgid "corrupt input while restoring '~a' from ~s~%" msgstr "ødelagte inddata under gendannelse af »~a« fra ~s~%" -#: guix/ui.scm:302 +#: guix/ui.scm:442 #, scheme-format msgid "corrupt input while restoring archive from ~s~%" msgstr "ødelagte inddata under gendannelse af arkiv fra ~s~%" -#: guix/ui.scm:305 +#: guix/ui.scm:445 #, scheme-format msgid "failed to connect to `~a': ~a~%" msgstr "kunne ikke forbinde til »~a«: ~a~%" -#: guix/ui.scm:310 +#: guix/ui.scm:450 #, scheme-format msgid "build failed: ~a~%" msgstr "bygning mislykkedes: ~a~%" -#: guix/ui.scm:313 +#: guix/ui.scm:453 #, scheme-format msgid "reference to invalid output '~a' of derivation '~a'~%" msgstr "reference til ugyldige uddata »~a« for afledning »~a«~%" -#: guix/ui.scm:324 +#: guix/ui.scm:464 #, scheme-format msgid "~a: ~a~%" msgstr "~a: ~a~%" -#: guix/ui.scm:343 +#: guix/ui.scm:499 #, scheme-format msgid "failed to read expression ~s: ~s~%" msgstr "kunne ikke læse udtryk ~s: ~s~%" -#: guix/ui.scm:349 +#: guix/ui.scm:505 +#, scheme-format +msgid "failed to evaluate expression '~a':~%" +msgstr "kunne ikke evaluere udtryk »~a«:~%" + +#: guix/ui.scm:508 #, scheme-format -msgid "failed to evaluate expression `~a': ~s~%" -msgstr "kunne ikke evaluere udtryk »~a«: ~s~%" +msgid "syntax error: ~a~%" +msgstr "syntaksfejl: ~a~%" -#: guix/ui.scm:358 +#: guix/ui.scm:522 #, scheme-format msgid "expression ~s does not evaluate to a package~%" msgstr "udtryk ~s evaluerer ikke til en pakke~%" -#: guix/ui.scm:410 +#: guix/ui.scm:582 #, scheme-format msgid "~:[The following derivation would be built:~%~{ ~a~%~}~;~]" msgid_plural "~:[The following derivations would be built:~%~{ ~a~%~}~;~]" msgstr[0] "~:[Den følgende afledning ville blive bygget:~%~{ ~a~%~}~;~]" msgstr[1] "~:[De følgende afledninger ville blive bygget:~%~{ ~a~%~}~;~]" -#: guix/ui.scm:415 +#: guix/ui.scm:587 #, scheme-format msgid "~:[The following file would be downloaded:~%~{ ~a~%~}~;~]" msgid_plural "~:[The following files would be downloaded:~%~{ ~a~%~}~;~]" msgstr[0] "~:[Den følgende fil ville blive hentet:~%~{ ~a~%~}~;~]" msgstr[1] "~:[De følgende filer ville blive hentet:~%~{ ~a~%~}~;~]" -#: guix/ui.scm:421 +#: guix/ui.scm:593 #, scheme-format msgid "~:[The following derivation will be built:~%~{ ~a~%~}~;~]" msgid_plural "~:[The following derivations will be built:~%~{ ~a~%~}~;~]" msgstr[0] "~:[Den følgende afledning vil blive bygget:~%~{ ~a~%~}~;~]" msgstr[1] "~:[De følgende afledninger vil blive bygget:~%~{ ~a~%~}~;~]" -#: guix/ui.scm:426 +#: guix/ui.scm:598 #, scheme-format msgid "~:[The following file will be downloaded:~%~{ ~a~%~}~;~]" msgid_plural "~:[The following files will be downloaded:~%~{ ~a~%~}~;~]" msgstr[0] "~:[Den følgende fil vil blive hentet:~%~{ ~a~%~}~;~]" msgstr[1] "~:[De følgende filer vil blive hentet:~%~{ ~a~%~}~;~]" -#: guix/ui.scm:478 +#: guix/ui.scm:653 #, scheme-format msgid "The following package would be removed:~%~{~a~%~}~%" msgid_plural "The following packages would be removed:~%~{~a~%~}~%" msgstr[0] "Den følgende pakke ville blive fjernet:~%~{~a~%~}~%" msgstr[1] "De følgende pakker ville blive fjernet:~%~{~a~%~}~%" -#: guix/ui.scm:483 +#: guix/ui.scm:658 #, scheme-format msgid "The following package will be removed:~%~{~a~%~}~%" msgid_plural "The following packages will be removed:~%~{~a~%~}~%" msgstr[0] "Den følgende pakke vil blive fjernet:~%~{~a~%~}~%" msgstr[1] "De følgende pakker vil blive fjernet:~%~{~a~%~}~%" -#: guix/ui.scm:496 +#: guix/ui.scm:671 #, scheme-format msgid "The following package would be downgraded:~%~{~a~%~}~%" msgid_plural "The following packages would be downgraded:~%~{~a~%~}~%" msgstr[0] "Den følgende pakke ville blive nedgraderet:~%~{~a~%~}~%" msgstr[1] "De følgende pakker ville blive nedgraderet:~%~{~a~%~}~%" -#: guix/ui.scm:501 +#: guix/ui.scm:676 #, scheme-format msgid "The following package will be downgraded:~%~{~a~%~}~%" msgid_plural "The following packages will be downgraded:~%~{~a~%~}~%" msgstr[0] "Den følgende pakke vil blive nedgraderet:~%~{~a~%~}~%" msgstr[1] "De følgende pakker vil blive nedgraderet:~%~{~a~%~}~%" -#: guix/ui.scm:514 +#: guix/ui.scm:689 #, scheme-format msgid "The following package would be upgraded:~%~{~a~%~}~%" msgid_plural "The following packages would be upgraded:~%~{~a~%~}~%" msgstr[0] "Den følgende pakke ville blive opgraderet:~%~{~a~%~}~%" msgstr[1] "De følgende pakker ville blive opgraderet:~%~{~a~%~}~%" -#: guix/ui.scm:519 +#: guix/ui.scm:694 #, scheme-format msgid "The following package will be upgraded:~%~{~a~%~}~%" msgid_plural "The following packages will be upgraded:~%~{~a~%~}~%" msgstr[0] "Den følgende pakke vil blive opgraderet:~%~{~a~%~}~%" msgstr[1] "De følgende pakker vil blive opgraderet:~%~{~a~%~}~%" -#: guix/ui.scm:530 +#: guix/ui.scm:705 #, scheme-format msgid "The following package would be installed:~%~{~a~%~}~%" msgid_plural "The following packages would be installed:~%~{~a~%~}~%" msgstr[0] "Den følgende pakke ville blive installeret:~%~{~a~%~}~%" msgstr[1] "De følgende pakker ville blive installeret:~%~{~a~%~}~%" -#: guix/ui.scm:535 +#: guix/ui.scm:710 #, scheme-format msgid "The following package will be installed:~%~{~a~%~}~%" msgid_plural "The following packages will be installed:~%~{~a~%~}~%" msgstr[0] "Den følgende pakke vil blive installeret:~%~{~a~%~}~%" msgstr[1] "De følgende pakker vil blive installeret:~%~{~a~%~}~%" -#: guix/ui.scm:552 +#: guix/ui.scm:727 msgid "" msgstr "" -#: guix/ui.scm:578 +#: guix/ui.scm:746 #, scheme-format msgid "failed to create configuration directory `~a': ~a~%" msgstr "kunne ikke oprette konfiguratinsmappe »~a«: ~a~%" -#: guix/ui.scm:680 guix/ui.scm:694 +#: guix/ui.scm:865 guix/ui.scm:879 msgid "unknown" msgstr "ukendt" -#: guix/ui.scm:803 +#: guix/ui.scm:1029 #, scheme-format -msgid "invalid argument: ~a~%" -msgstr "ugyldigt argument: ~a~%" +msgid "Generation ~a\t~a" +msgstr "Generation ~a\t~a" + +#: guix/ui.scm:1036 +#, scheme-format +msgid "~a\t(current)~%" +msgstr "~a\t(nuværende)~%" + +#: guix/ui.scm:1053 +#, scheme-format +msgid "switched from generation ~a to ~a~%" +msgstr "skiftede fra generation ~a til ~a~%" + +#: guix/ui.scm:1069 +#, scheme-format +msgid "deleting ~a~%" +msgstr "sletter ~a~%" -#: guix/ui.scm:842 +#: guix/ui.scm:1117 #, scheme-format msgid "Try `guix --help' for more information.~%" msgstr "Prøv »guix --help« for yderligere information.~%" -#: guix/ui.scm:869 +#: guix/ui.scm:1144 msgid "" "Usage: guix COMMAND ARGS...\n" "Run COMMAND with ARGS.\n" @@ -1578,31 +2142,31 @@ msgstr "" "Brug: guix KOMMANDO ARG...\n" "Kør KOMMANDO med ARG.\n" -#: guix/ui.scm:872 +#: guix/ui.scm:1147 msgid "COMMAND must be one of the sub-commands listed below:\n" msgstr "KOMMANDO skal være en af underkommandoerne vist nedenfor:\n" -#: guix/ui.scm:892 +#: guix/ui.scm:1167 #, scheme-format msgid "guix: ~a: command not found~%" msgstr "guix: ~a: kommando blev ikke fundet~%" -#: guix/ui.scm:910 +#: guix/ui.scm:1184 #, scheme-format msgid "guix: missing command name~%" msgstr "guix: mangler kommandonavn~%" -#: guix/ui.scm:918 +#: guix/ui.scm:1192 #, scheme-format msgid "guix: unrecognized option '~a'~%" msgstr "guix: ikke genkendt tilvalg »~a«~%" -#: guix/http-client.scm:211 +#: guix/http-client.scm:228 #, scheme-format msgid "following redirection to `~a'...~%" msgstr "følger omdirigering til »~a«...~%" -#: guix/http-client.scm:220 +#: guix/http-client.scm:237 msgid "download failed" msgstr "overførsel mislykkedes" @@ -1648,20 +2212,121 @@ msgstr "importeret fil mangler en signatur" msgid "invalid inter-file archive mark" msgstr "ugyldig arkivmærke for mellemfil" -#~ msgid "Downloading, please wait...~%" -#~ msgstr "Henter, vent venligst ...~%" +#: nix/nix-daemon/guix-daemon.cc:61 +msgid "guix-daemon -- perform derivation builds and store accesses" +msgstr "guix-daemon - udfør afledningsbygninger og lageradgange" + +#: nix/nix-daemon/guix-daemon.cc:63 +msgid "This program is a daemon meant to run in the background. It serves requests sent over a Unix-domain socket. It accesses the store, and builds derivations on behalf of its clients." +msgstr "Dette program er en ædmon lavet til at køre i baggrunden. Den betjener forespørgsler sendt over en Unix-domænesokkel. Den tilgår lageret, og bgyger afledninger på vegne af dens klienter." + +#: nix/nix-daemon/guix-daemon.cc:86 +msgid "SYSTEM" +msgstr "SYSTEM" + +#: nix/nix-daemon/guix-daemon.cc:87 +msgid "assume SYSTEM as the current system type" +msgstr "antag SYSTEM som den nuværende systemtype" + +#: nix/nix-daemon/guix-daemon.cc:88 nix/nix-daemon/guix-daemon.cc:91 +msgid "N" +msgstr "N" + +#: nix/nix-daemon/guix-daemon.cc:89 +msgid "use N CPU cores to build each derivation; 0 means as many as available" +msgstr "brug N CPU-kerner til at bygge hver afledning; 0 betyder så mange som er tilgængelige" + +#: nix/nix-daemon/guix-daemon.cc:92 +msgid "allow at most N build jobs" +msgstr "tillad højest N-byggejob" + +#: nix/nix-daemon/guix-daemon.cc:94 +msgid "disable chroot builds" +msgstr "deaktiver chroot-bygninger" + +#: nix/nix-daemon/guix-daemon.cc:95 +msgid "DIR" +msgstr "MAPPE" + +#: nix/nix-daemon/guix-daemon.cc:96 +msgid "add DIR to the build chroot" +msgstr "tilføj MAPPE til byggechrooten" + +#: nix/nix-daemon/guix-daemon.cc:97 +msgid "GROUP" +msgstr "GRUPPE" + +#: nix/nix-daemon/guix-daemon.cc:98 +msgid "perform builds as a user of GROUP" +msgstr "udfør bygninger som en bruger i GRUPPE" + +#: nix/nix-daemon/guix-daemon.cc:100 +msgid "do not use substitutes" +msgstr "brug ikke substitutter" + +#: nix/nix-daemon/guix-daemon.cc:101 +msgid "URLS" +msgstr "ADRESSER" + +#: nix/nix-daemon/guix-daemon.cc:102 +msgid "use URLS as the default list of substitute providers" +msgstr "brug ADRESSER som standardlisten for substitutleverandører" + +#: nix/nix-daemon/guix-daemon.cc:104 +msgid "do not use the 'build hook'" +msgstr "brug ikke »build hook«" + +#: nix/nix-daemon/guix-daemon.cc:106 +msgid "cache build failures" +msgstr "mellemlagerbyggefejl" + +#: nix/nix-daemon/guix-daemon.cc:108 +msgid "do not keep build logs" +msgstr "bevar ikke byggelogge" + +#: nix/nix-daemon/guix-daemon.cc:110 +msgid "disable compression of the build logs" +msgstr "deaktiver komprimering af byggelogge" + +#: nix/nix-daemon/guix-daemon.cc:115 +msgid "disable automatic file \"deduplication\" in the store" +msgstr "deaktiver automatisk »fildeduplikation« i lageret" + +#: nix/nix-daemon/guix-daemon.cc:125 +msgid "impersonate Linux 2.6" +msgstr "udgiv Linux 2.6" + +#: nix/nix-daemon/guix-daemon.cc:129 +msgid "tell whether the GC must keep outputs of live derivations" +msgstr "fortæl om GC'en skal bevare uddata for live afledninger" -#~ msgid "(Please consider upgrading Guile to get proper progress report.)~%" -#~ msgstr "(Overvej venligst at opgradere Guile for at få korrekt statusrapport.)~%" +#: nix/nix-daemon/guix-daemon.cc:132 +msgid "tell whether the GC must keep derivations corresponding to live outputs" +msgstr "fortæl om GC'en skal bevare afledninger svarende til live uddata" -#~ msgid "failed to open operating system file '~a': ~a~%" -#~ msgstr "kunne ikke åbne operativsystemfil »~a«: ~a~%" +#: nix/nix-daemon/guix-daemon.cc:135 +msgid "SOCKET" +msgstr "SOKKEL" -#~ msgid "failed to load operating system file '~a':~%" -#~ msgstr "kunne ikke indlæse operativsystemfil »~a«:~%" +#: nix/nix-daemon/guix-daemon.cc:136 +msgid "listen for connections on SOCKET" +msgstr "lyt efter forbindelser på SOKKEL" -#~ msgid "using Guile ~a, which does not support ~s encoding~%" -#~ msgstr "bruger Guile ~a, som ikke understøtter ~s-kodning~%" +#: nix/nix-daemon/guix-daemon.cc:138 +msgid "produce debugging output" +msgstr "lav fejlsøgningsinformation" -#~ msgid "download failed; use a newer Guile~%" -#~ msgstr "overførsel mislykkedes; brug en nyere Guile~%" +#: nix/nix-daemon/guix-daemon.cc:205 nix/nix-daemon/guix-daemon.cc:381 +#, c-format +msgid "error: %s\n" +msgstr "fejl: %s\n" + +#: nix/nix-daemon/guix-daemon.cc:266 +#, c-format +msgid "error: libgcrypt version mismatch\n" +msgstr "fejl: forskellige versioner af libgcrypt\n" + +#: nix/nix-daemon/guix-daemon.cc:357 +#, c-format +msgid "warning: daemon is running as root, so using `--build-users-group' is highly recommended\n" +msgstr "advarsel: dæmon kører som root, så brug af »--build-users-group« anbefales\n" -- cgit v1.2.3 From b8d2eda4a37a7e4c9fb529bd48899d87cefaf345 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 1 Nov 2015 21:51:39 +0100 Subject: nls: Add Danish translation for packages. --- po/packages/LINGUAS | 1 + po/packages/da.po | 10112 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 10113 insertions(+) create mode 100644 po/packages/da.po diff --git a/po/packages/LINGUAS b/po/packages/LINGUAS index 19a3bbf515..169b16046c 100644 --- a/po/packages/LINGUAS +++ b/po/packages/LINGUAS @@ -1,5 +1,6 @@ # Set of available languages. +da de en@boldquot en@quot diff --git a/po/packages/da.po b/po/packages/da.po new file mode 100644 index 0000000000..66c2e7cc7e --- /dev/null +++ b/po/packages/da.po @@ -0,0 +1,10112 @@ +# Danish translation guix-packages. +# Copyright (C) 2015 Free Software Foundation, Inc. +# This file is distributed under the same license as the guix package. +# Joe Hansen , 2015. +# +#: gnu/packages/databases.scm:598 +msgid "" +msgstr "" +"Project-Id-Version: guix-packages 0.9.0\n" +"Report-Msgid-Bugs-To: ludo@gnu.org\n" +"POT-Creation-Date: 2015-10-28 16:31+0100\n" +"PO-Revision-Date: 2015-10-31 19:30+01:00\n" +"Last-Translator: Joe Hansen \n" +"Language-Team: Danish \n" +"Language: da\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: gnu/packages/abiword.scm:101 +msgid "Word processing program" +msgstr "Tekstbehandlingsprogram" + +#. TRANSLATORS: Dear translator, We would like to inform you that package +#. descriptions may occasionally include Texinfo markup. Texinfo markup +#. looks like "@code{rm -rf}", "@emph{important}", etc. When translating, +#. please leave markup as is. +#: gnu/packages/abiword.scm:110 +msgid "" +"AbiWord is a word processing program. It is rapidly\n" +"becoming a state of the art word processor, with lots of features useful for\n" +"your daily work, personal needs, or for just some good old typing fun." +msgstr "" +"AbiWord er et tekstbehandlingsprogram. Det bliver med stor hastighed\n" +"en vigtig komponent indenfor tekstbehandling, med en masse funktioner, \n" +"som kan bruges i dit daglige arbejde, personlige behov, eller bare\n" +"god gammeldags skrivning." + +#: gnu/packages/aspell.scm:43 gnu/packages/libreoffice.scm:611 +msgid "Spell checker" +msgstr "Stavekontrol" + +#: gnu/packages/aspell.scm:45 +msgid "" +"Aspell is a spell-checker which can be used either as a library or as\n" +"a standalone program. Notable features of Aspell include its full support of\n" +"documents written in the UTF-8 encoding and its ability to use multiple\n" +"dictionaries, including personal ones." +msgstr "" +"Aspell er en stavekontrol, som kan bruges enten som et bibliotek eller\n" +"som et uafhængigt program. Vigtige funktioner i Aspell inkluderer dets\n" +"fulde understøttelse af dokumenter skrivet i UTF-8-kodning og dets evne\n" +"til at bruge flere ordbøger, inklusive personlige." + +#: gnu/packages/aspell.scm:85 +msgid "This package provides a dictionary for the GNU Aspell spell checker." +msgstr "Denne pakke tilbyder en ordbog for stavekontrollen GNU Aspell." + +#: gnu/packages/audio.scm:92 +msgid "Realtime modular synthesizer and effect processor" +msgstr "" + +#: gnu/packages/audio.scm:94 +msgid "" +"AlsaModularSynth is a digital implementation of a classical analog\n" +"modular synthesizer system. It uses virtual control voltages to control the\n" +"parameters of the modules. The control voltages which control the frequency\n" +"e.g. of the VCO (Voltage Controlled Oscillator) and VCF (Voltage Controlled\n" +"Filter) modules follow the convention of 1V / Octave." +msgstr "" + +#: gnu/packages/audio.scm:131 +msgid "A library for audio labelling" +msgstr "" + +#: gnu/packages/audio.scm:133 +msgid "" +"aubio is a tool designed for the extraction of annotations from audio\n" +"signals. Its features include segmenting a sound file before each of its\n" +"attacks, performing pitch detection, tapping the beat and producing MIDI\n" +"streams from live audio." +msgstr "" + +#: gnu/packages/audio.scm:226 +msgid "Digital audio workstation" +msgstr "" + +#: gnu/packages/audio.scm:228 +msgid "" +"Ardour is a multi-channel digital audio workstation, allowing users to\n" +"record, edit, mix and master audio and MIDI projects. It is targeted at audio\n" +"engineers, musicians, soundtrack editors and composers." +msgstr "" + +#: gnu/packages/audio.scm:289 +msgid "Tonewheel organ synthesizer" +msgstr "" + +#: gnu/packages/audio.scm:291 +msgid "" +"AZR-3 is a port of the free VST plugin AZR-3. It is a tonewheel organ\n" +"with drawbars, distortion and rotating speakers. The organ has three\n" +"sections, two polyphonic sections with nine drawbars each and one monophonic\n" +"bass section with five drawbars. A standalone JACK application and LV2\n" +"plugins are provided." +msgstr "" + +#: gnu/packages/audio.scm:329 +msgid "Audio plug-in pack for LV2 and JACK environments" +msgstr "" + +#: gnu/packages/audio.scm:331 +msgid "" +"Calf Studio Gear is an audio plug-in pack for LV2 and JACK environments.\n" +"The suite contains lots of effects (delay, modulation, signal processing,\n" +"filters, equalizers, dynamics, distortion and mastering effects),\n" +"instruments (SF2 player, organ simulator and a monophonic synthesizer) and\n" +"tools (analyzer, mono/stereo tools, crossovers)." +msgstr "" + +#: gnu/packages/audio.scm:367 +msgid "Sound and music computing system" +msgstr "" + +#: gnu/packages/audio.scm:369 +msgid "" +"Csound is a user-programmable and user-extensible sound processing\n" +"language and software synthesizer." +msgstr "" + +#: gnu/packages/audio.scm:412 gnu/packages/audio.scm:1900 +msgid "C++ wrapper around the ALSA API" +msgstr "" + +#: gnu/packages/audio.scm:414 +msgid "" +"clalsadrv is a C++ wrapper around the ALSA API simplifying access to\n" +"ALSA PCM devices." +msgstr "" + +#: gnu/packages/audio.scm:449 +msgid "SoundFont synthesizer" +msgstr "" + +#: gnu/packages/audio.scm:451 +msgid "" +"FluidSynth is a real-time software synthesizer based on the SoundFont 2\n" +"specifications. FluidSynth reads and handles MIDI events from the MIDI input\n" +"device. It is the software analogue of a MIDI synthesizer. FluidSynth can\n" +"also play midifiles using a Soundfont." +msgstr "" + +#: gnu/packages/audio.scm:483 +msgid "MPEG-4 and MPEG-2 AAC decoder" +msgstr "" + +#: gnu/packages/audio.scm:485 +msgid "" +"FAAD2 is an MPEG-4 and MPEG-2 AAC decoder supporting LC, Main, LTP, SBR,\n" +"PS, and DAB+." +msgstr "" + +#: gnu/packages/audio.scm:514 +msgid "Signal processing language" +msgstr "" + +#: gnu/packages/audio.scm:516 +msgid "Faust is a programming language for realtime audio signal processing." +msgstr "" + +#: gnu/packages/audio.scm:551 +msgid "GUS compatible patches for MIDI players" +msgstr "" + +#: gnu/packages/audio.scm:553 +msgid "" +"FreePats is a project to create a free and open set of GUS compatible\n" +"patches that can be used with softsynths such as Timidity and WildMidi." +msgstr "" + +#: gnu/packages/audio.scm:604 +msgid "Virtual guitar amplifier" +msgstr "" + +#: gnu/packages/audio.scm:605 +msgid "" +"Guitarix is a virtual guitar amplifier running JACK.\n" +"Guitarix takes the signal from your guitar as a mono-signal from your sound\n" +"card. The input is processed by a main amp and a rack-section. Both can be\n" +"routed separately and deliver a processed stereo-signal via JACK. You may\n" +"fill the rack with effects from more than 25 built-in modules including stuff\n" +"from a simple noise gate to modulation effects like flanger, phaser or\n" +"auto-wah." +msgstr "" + +#: gnu/packages/audio.scm:647 +msgid "LV2 convolution reverb" +msgstr "" + +#: gnu/packages/audio.scm:649 +msgid "" +"IR is a low-latency, real-time, high performance signal convolver\n" +"especially for creating reverb effects. It supports impulse responses with 1,\n" +"2 or 4 channels, in any soundfile format supported by libsndfile." +msgstr "" + +#: gnu/packages/audio.scm:679 +msgid "JACK audio connection kit" +msgstr "" + +#: gnu/packages/audio.scm:681 +msgid "" +"JACK is a low-latency audio server. It can connect a number of\n" +"different applications to an audio device, as well as allowing them to share\n" +"audio between themselves. JACK is different from other audio server efforts\n" +"in that it has been designed from the ground up to be suitable for\n" +"professional audio work. This means that it focuses on two key areas:\n" +"synchronous execution of all clients, and low latency operation." +msgstr "" + +#: gnu/packages/audio.scm:760 +msgid "Simple LV2 host for JACK" +msgstr "" + +#: gnu/packages/audio.scm:762 +msgid "" +"Jalv is a simple but fully featured LV2 host for JACK. It runs LV2\n" +"plugins and exposes their ports as JACK ports, essentially making any LV2\n" +"plugin function as a JACK application." +msgstr "" + +#: gnu/packages/audio.scm:798 +msgid "Linux Audio Developer's Simple Plugin API (LADSPA)" +msgstr "" + +#: gnu/packages/audio.scm:800 +msgid "" +"LADSPA is a standard that allows software audio processors and effects\n" +"to be plugged into a wide range of audio synthesis and recording packages." +msgstr "" + +#: gnu/packages/audio.scm:836 +msgid "Audio application session manager" +msgstr "" + +#: gnu/packages/audio.scm:838 +msgid "" +"LASH is a session management system for audio applications. It allows\n" +"you to save and restore audio sessions consisting of multiple interconneced\n" +"applications, restoring program state (i.e. loaded patches) and the\n" +"connections between them." +msgstr "" + +#: gnu/packages/audio.scm:859 +msgid "Bauer stereophonic-to-binaural DSP" +msgstr "" + +#: gnu/packages/audio.scm:861 +msgid "" +"The Bauer stereophonic-to-binaural DSP (bs2b) library and plugins is\n" +"designed to improve headphone listening of stereo audio records. Recommended\n" +"for headphone prolonged listening to disable superstereo fatigue without\n" +"essential distortions." +msgstr "" + +#: gnu/packages/audio.scm:886 +msgid "Implementation of the Open Sound Control protocol" +msgstr "" + +#: gnu/packages/audio.scm:888 +msgid "" +"liblo is a lightweight library that provides an easy to use\n" +"implementation of the Open Sound Control (OSC) protocol." +msgstr "" + +#: gnu/packages/audio.scm:925 +msgid "Library to simplify use of LV2 plugins in applications" +msgstr "" + +#: gnu/packages/audio.scm:927 +msgid "" +"Lilv is a C library to make the use of LV2 plugins as simple as possible\n" +"for applications. Lilv is the successor to SLV2, rewritten to be\n" +"significantly faster and have minimal dependencies." +msgstr "" + +#: gnu/packages/audio.scm:954 +msgid "LV2 audio plugin specification" +msgstr "" + +#: gnu/packages/audio.scm:956 +msgid "" +"LV2 is an open specification for audio plugins and host applications.\n" +"At its core, LV2 is a simple stable interface, accompanied by extensions which\n" +"add functionality to support the needs of increasingly powerful audio\n" +"software." +msgstr "" + +#: gnu/packages/audio.scm:991 +msgid "LV2 port of the mda Piano plugin" +msgstr "" + +#: gnu/packages/audio.scm:992 +msgid "An LV2 port of the mda Piano VSTi." +msgstr "" + +#: gnu/packages/audio.scm:1005 +msgid "LV2 port of the mda EPiano plugin" +msgstr "" + +#: gnu/packages/audio.scm:1006 +msgid "An LV2 port of the mda EPiano VSTi." +msgstr "" + +#: gnu/packages/audio.scm:1035 +msgid "C++ libraries for LV2 plugins" +msgstr "" + +#: gnu/packages/audio.scm:1037 +msgid "" +"The LV2 Toolkit (LVTK) contains libraries that wrap the LV2 C API and\n" +"extensions into easy to use C++ classes. It is the successor of\n" +"lv2-c++-tools." +msgstr "" + +#: gnu/packages/audio.scm:1078 +msgid "3D audio API" +msgstr "" + +#: gnu/packages/audio.scm:1080 +msgid "" +"OpenAL provides capabilities for playing audio in a virtual 3D\n" +"environment. Distance attenuation, doppler shift, and directional sound\n" +"emitters are among the features handled by the API. More advanced effects,\n" +"including air absorption, occlusion, and environmental reverb, are available\n" +"through the EFX extension. It also facilitates streaming audio, multi-channel\n" +"buffers, and audio capture." +msgstr "" + +#: gnu/packages/audio.scm:1114 +msgid "Modular patch bay for audio and MIDI systems" +msgstr "" + +#: gnu/packages/audio.scm:1116 +msgid "" +"Patchage is a modular patch bay for audio and MIDI systems based on JACK\n" +"and ALSA." +msgstr "" + +#: gnu/packages/audio.scm:1141 +msgid "Real-time audio utility library" +msgstr "" + +#: gnu/packages/audio.scm:1143 +msgid "" +"Raul (Real-time Audio Utility Library) is a C++ utility library primarily\n" +"aimed at audio/musical applications." +msgstr "" + +#: gnu/packages/audio.scm:1169 +msgid "Audio time-stretching and pitch-shifting library" +msgstr "" + +#: gnu/packages/audio.scm:1171 +msgid "" +"Rubber Band is a library and utility program that permits changing the\n" +"tempo and pitch of an audio recording independently of one another." +msgstr "" + +#: gnu/packages/audio.scm:1219 +msgid "Cross-platform MIDI library for C++" +msgstr "" + +#: gnu/packages/audio.scm:1221 +msgid "" +"RtMidi is a set of C++ classes (RtMidiIn, RtMidiOut, and API specific\n" +"classes) that provide a common cross-platform API for realtime MIDI\n" +"input/output." +msgstr "" + +#: gnu/packages/audio.scm:1247 +msgid "Library for serialising LV2 atoms to/from RDF" +msgstr "" + +#: gnu/packages/audio.scm:1249 +msgid "" +"Sratom is a library for serialising LV2 atoms to/from RDF, particularly\n" +"the Turtle syntax." +msgstr "" + +#: gnu/packages/audio.scm:1274 +msgid "Library for loading and wrapping LV2 plugin UIs" +msgstr "" + +#: gnu/packages/audio.scm:1276 +msgid "" +"Suil is a lightweight C library for loading and wrapping LV2 plugin UIs.\n" +"\n" +"Suil makes it possible to load a UI of a toolkit in a host using another\n" +"toolkit. The API is designed such that hosts do not need to explicitly\n" +"support specific toolkits – if Suil supports a particular toolkit, then UIs in\n" +"that toolkit will work in all hosts that use Suil automatically.\n" +"\n" +"Suil currently supports every combination of Gtk 2, Qt 4, and X11." +msgstr "" + +#: gnu/packages/audio.scm:1333 +msgid "Software synthesizer for playing MIDI files" +msgstr "" + +#: gnu/packages/audio.scm:1335 +msgid "" +"TiMidity++ is a software synthesizer. It can play MIDI files by\n" +"converting them into PCM waveform data; give it a MIDI data along with digital\n" +"instrument data files, then it synthesizes them in real-time, and plays. It\n" +"can not only play sounds, but also can save the generated waveforms into hard\n" +"disks as various audio file formats." +msgstr "" + +#: gnu/packages/audio.scm:1374 +msgid "Modular and extensible audio processing system" +msgstr "" + +#: gnu/packages/audio.scm:1376 +msgid "" +"Vamp is an audio processing plugin system for plugins that extract\n" +"descriptive information from audio data — typically referred to as audio\n" +"analysis plugins or audio feature extraction plugins." +msgstr "" + +#: gnu/packages/audio.scm:1415 +msgid "Library for time stretching and pitch scaling of audio" +msgstr "" + +#: gnu/packages/audio.scm:1417 +msgid "" +"SBSMS (Subband Sinusoidal Modeling Synthesis) is software for time\n" +"stretching and pitch scaling of audio. This package contains the library." +msgstr "" + +#: gnu/packages/audio.scm:1440 +msgid "Hybrid lossless audio codec" +msgstr "" + +#: gnu/packages/audio.scm:1442 +msgid "" +"WavPack is an audio compression format with lossless, lossy and hybrid\n" +"compression modes. This package contains command-line programs and library to\n" +"encode and decode wavpack files." +msgstr "" + +#: gnu/packages/audio.scm:1461 +msgid "Mod file playing library" +msgstr "" + +#: gnu/packages/audio.scm:1463 +msgid "" +"Libmodplug renders mod music files as raw audio data, for playing or\n" +"conversion. mod, .s3m, .it, .xm, and a number of lesser-known formats are\n" +"supported. Optional features include high-quality resampling, bass expansion,\n" +"surround and reverb." +msgstr "" + +#: gnu/packages/audio.scm:1482 +msgid "Module player library" +msgstr "" + +#: gnu/packages/audio.scm:1484 +msgid "" +"Libxmp is a library that renders module files to PCM data. It supports\n" +"over 90 mainstream and obscure module formats including Protracker (MOD),\n" +"Scream Tracker 3 (S3M), Fast Tracker II (XM), and Impulse Tracker (IT)." +msgstr "" + +#: gnu/packages/audio.scm:1507 +msgid "Extended module player" +msgstr "" + +#: gnu/packages/audio.scm:1509 +msgid "" +"Xmp is a portable module player that plays over 90 mainstream and\n" +"obscure module formats, including Protracker MOD, Fasttracker II XM, Scream\n" +"Tracker 3 S3M and Impulse Tracker IT files." +msgstr "" + +#: gnu/packages/audio.scm:1541 +msgid "Audio processing library for changing tempo, pitch and playback rate" +msgstr "" + +#: gnu/packages/audio.scm:1543 +msgid "" +"SoundTouch is an audio processing library for changing the tempo, pitch\n" +"and playback rates of audio streams or audio files. It is intended for\n" +"application developers writing sound processing tools that require tempo/pitch\n" +"control functionality, or just for playing around with the sound effects." +msgstr "" + +#: gnu/packages/audio.scm:1580 +msgid "Sound processing utility" +msgstr "" + +#: gnu/packages/audio.scm:1582 +msgid "" +"SoX (Sound eXchange) is a command line utility that can convert\n" +"various formats of computer audio files to other formats. It can also\n" +"apply various effects to these sound files, and, as an added bonus, SoX\n" +"can play and record audio files." +msgstr "" + +#: gnu/packages/audio.scm:1605 +msgid "One-dimensional sample-rate conversion library" +msgstr "" + +#: gnu/packages/audio.scm:1607 +msgid "" +"The SoX Resampler library (libsoxr) performs one-dimensional sample-rate\n" +"conversion. It may be used, for example, to resample PCM-encoded audio." +msgstr "" + +#: gnu/packages/audio.scm:1629 +msgid "MPEG Audio Layer 2 (MP2) encoder" +msgstr "" + +#: gnu/packages/audio.scm:1631 +msgid "" +"TwoLAME is an optimised MPEG Audio Layer 2 (MP2) encoder based on\n" +"tooLAME by Mike Cheng, which in turn is based upon the ISO dist10 code and\n" +"portions of LAME." +msgstr "" + +#: gnu/packages/audio.scm:1671 +msgid "Audio I/O library" +msgstr "" + +#: gnu/packages/audio.scm:1673 +msgid "" +"PortAudio is a portable C/C++ audio I/O library providing a simple API\n" +"to record and/or play sound using a callback function or a blocking read/write\n" +"interface." +msgstr "" + +#: gnu/packages/audio.scm:1696 +msgid "Graphical user interface for FluidSynth" +msgstr "" + +#: gnu/packages/audio.scm:1698 +msgid "" +"Qsynth is a GUI front-end application for the FluidSynth SoundFont\n" +"synthesizer written in C++." +msgstr "" + +#: gnu/packages/audio.scm:1736 +msgid "Networked audio system" +msgstr "" + +#: gnu/packages/audio.scm:1738 +msgid "" +"RSound allows you to send audio from an application and transfer it\n" +"directly to a different computer on your LAN network. It is an audio daemon\n" +"with a much different focus than most other audio daemons." +msgstr "" + +#: gnu/packages/audio.scm:1769 +msgid "JACK audio frequency analyzer and display" +msgstr "" + +#: gnu/packages/audio.scm:1771 +msgid "" +"XJackFreak is an audio analysis and equalizing tool for the Jack Audio\n" +"Connection Kit. It can display the FFT of any input, modify it and output the\n" +"result." +msgstr "" + +#: gnu/packages/audio.scm:1812 +msgid "Fast, partitioned convolution engine library" +msgstr "" + +#: gnu/packages/audio.scm:1814 +msgid "" +"Zita convolver is a C++ library providing a real-time convolution\n" +"engine." +msgstr "" + +#: gnu/packages/audio.scm:1854 +msgid "C++ library for resampling audio signals" +msgstr "" + +#: gnu/packages/audio.scm:1856 +msgid "" +"Libzita-resampler is a C++ library for resampling audio signals. It is\n" +"designed to be used within a real-time processing context, to be fast, and to\n" +"provide high-quality sample rate conversion." +msgstr "" + +#: gnu/packages/audio.scm:1902 +msgid "" +"Zita-alsa-pcmi is a C++ wrapper around the ALSA API. It provides easy\n" +"access to ALSA PCM devices, taking care of the many functions required to\n" +"open, initialise and use a hw: device in mmap mode, and providing floating\n" +"point audio data." +msgstr "" + +#: gnu/packages/backup.scm:89 +msgid "Encrypted backup using rsync algorithm" +msgstr "Krypteret sikkerhedskopiering via brug af rsync-algoritmen" + +#: gnu/packages/backup.scm:91 +msgid "" +"Duplicity backs up directories by producing encrypted tar-format volumes\n" +"and uploading them to a remote or local file server. Because duplicity uses\n" +"librsync, the incremental archives are space efficient and only record the\n" +"parts of files that have changed since the last backup. Because duplicity\n" +"uses GnuPG to encrypt and/or sign these archives, they will be safe from\n" +"spying and/or modification by the server." +msgstr "" +"Duplicity laver sikkerhedskopier af mapper ved at fremstille krypterede\n" +"arkiver i tar-format og overføre dem til en ekstern eller en lokal filserver.\n" +"Da Duplicity bruger librsync, er de trinvist opbyggede arkiver pladseffektive\n" +"og indeholder kun dele af filerne som har ændret sig siden sidste \n" +"sikkerhedskopiering. Da Duplicity bruger GnuPG til at kryptere og/eller\n" +"underskrive disse arkiver, så vil de være sikret mod spionage og/eller\n" +"ændring af serveren." + +#: gnu/packages/backup.scm:125 +msgid "Simple incremental backup tool" +msgstr "Simpelt værktøj til trinvis sikkerhedskopiering" + +#: gnu/packages/backup.scm:127 +msgid "" +"Hdup2 is a backup utility, its aim is to make backup really simple. The\n" +"backup scheduling is done by means of a cron job. It supports an\n" +"include/exclude mechanism, remote backups, encrypted backups and split\n" +"backups (called chunks) to allow easy burning to CD/DVD." +msgstr "" +"Hdup2 er et redskab til sikkerhedskopiering, dets formål er at gøre\n" +"sikkerhedskopiering meget simpel. Planlægningen udføres af et cronjob.\n" +"Der understøttes en inkluder/ekskluder mekanisme, eksterne\n" +"sikkerhedskopier, krypterede sikkerhedskopier og opdelte sikkerhedskopier\n" +"(kaldt klumper) så der nemt kan brændes til cd/dvd." + +#: gnu/packages/backup.scm:181 +msgid "Multi-format archive and compression library" +msgstr "Arkiv- og komprimeringsbibliotek for flere formater" + +#: gnu/packages/backup.scm:183 +msgid "" +"Libarchive provides a flexible interface for reading and writing\n" +"archives in various formats such as tar and cpio. Libarchive also supports\n" +"reading and writing archives compressed using various compression filters such\n" +"as gzip and bzip2. The library is inherently stream-oriented; readers\n" +"serially iterate through the archive, writers serially add things to the\n" +"archive. In particular, note that there is currently no built-in support for\n" +"random access nor for in-place modification." +msgstr "" +"Libarchive tilbyder en fleksibel grænseflade for læsning og skrivning\n" +"af arkiver i forskellige formater såsom tar og cpio. Libarchive understøtter\n" +"også læsning og skrivning af arkiver komprimeret via diverse komprimeringsfiltre såsom\n" +"gzip og bzip2, Biblioteket er indbygget strømorienteret; læsere løber\n" +"serielt igennem arkiver, skrivere tilføjer serielt ting til arkivet.\n" +"Bemærk venligst at der i øjeblikket ikke er indbygget understøttelse\n" +"for vilkårlig vilkårlig adgang eller for direkte modifikation i arkivet." + +#: gnu/packages/backup.scm:246 +msgid "Provide a list of files to backup" +msgstr "Tilbyder en liste af filer til sikkerhedskopiering" + +#: gnu/packages/backup.scm:248 +msgid "" +"Rdup is a utility inspired by rsync and the plan9 way of doing backups.\n" +"Rdup itself does not backup anything, it only print a list of absolute\n" +"file names to standard output. Auxiliary scripts are needed that act on this\n" +"list and implement the backup strategy." +msgstr "" +"Rdup er et redskab inspireret af måden som rsync og plan9 udfører\n" +"sikkerhedskopier. Rdup laver ikke selv nogle sikkerhedskopier, programmet\n" +"udskriver kun en liste over absolutte filnavne til standardud. Andre\n" +"skripter er krævet til for det videre arbejde med denne liste og\n" +"implementering af sikkerhedskopistrategien." + +#: gnu/packages/backup.scm:278 +msgid "Tar-compatible archiver" +msgstr "Tar-kompatibelt arkivprogram" + +#: gnu/packages/backup.scm:280 +msgid "" +"Btar is a tar-compatible archiver which allows arbitrary compression and\n" +"ciphering, redundancy, differential backup, indexed extraction, multicore\n" +"compression, input and output serialisation, and tolerance to partial archive\n" +"errors." +msgstr "" +"Btar er et tar-kompatibelt arkivprogram, som tillader arbitrær komprimering\n" +"og krypteringsalgoritmer, redundans, differentil sikkerhedskopiering, \n" +"indekseret udtrækning, komprimering med flere kerner, inddata- og uddata-\n" +"serialisering, og tolerance for delvise arkivfejl." + +#: gnu/packages/backup.scm:308 +msgid "Local/remote mirroring+incremental backup" +msgstr "Lokal/ekstern spejlning+trinvis sikkerhedskopiering" + +#: gnu/packages/backup.scm:310 +msgid "" +"Rdiff-backup backs up one directory to another, possibly over a network.\n" +"The target directory ends up a copy of the source directory, but extra reverse\n" +"diffs are stored in a special subdirectory of that target directory, so you\n" +"can still recover files lost some time ago. The idea is to combine the best\n" +"features of a mirror and an incremental backup. Rdiff-backup also preserves\n" +"subdirectories, hard links, dev files, permissions, uid/gid ownership,\n" +"modification times, extended attributes, acls, and resource forks. Also,\n" +"rdiff-backup can operate in a bandwidth efficient manner over a pipe, like\n" +"rsync. Thus you can use rdiff-backup and ssh to securely back a hard drive up\n" +"to a remote location, and only the differences will be transmitted. Finally,\n" +"rdiff-backup is easy to use and settings have sensible defaults." +msgstr "" +"Rdiff-backup laver sikkerhedskopiering af en mappe til en anden, eventuelt\n" +"over et netværk. Målmappen slutter som en kopi af kildemappen, men ekstra\n" +"tilbageføringsforskelsfiler lagres i en speciel undermappe af den\n" +"målmappe, så du kan stadig gendanne filer mistet for noget tid siden.\n" +"Ideen er at kombinere de bedste funktioner i et spejl og en trinvis\n" +"sikkerhedskopiering. Rdiff-backup bevarer også undermapper, hårde\n" +"henvisninger, udviklingsfiler, tilladelser, uid/gid ejerskab, \n" +"ændringstidspunkt, udvidede attributter, acl'er og ressourceforgreninger.\n" +"Rdiff-backup kan også fungere på en effektiv måde i forhold til båndbredde\n" +"over en datakanal, såsom rsync. Du kan derfor bruge rdiff-backup og ssh til\n" +"sikkert at lave sikkerhedskopiering af en harddisk op til en ekstern\n" +"placering og kun forskellene vil blive overført. Endelig er rdiff-backup\n" +"nem at bruge og startopsætningen er lavet med fornuftige standarder." + +#: gnu/packages/backup.scm:349 +msgid "Deduplicating backup program" +msgstr "" + +#: gnu/packages/backup.scm:350 +msgid "" +"Attic is a deduplicating backup program. The main goal of\n" +"Attic is to provide an efficient and secure way to backup data. The data\n" +"deduplication technique used makes Attic suitable for daily backups since only\n" +"changes are stored." +msgstr "" + +#: gnu/packages/base.scm:65 +msgid "Hello, GNU world: An example GNU package" +msgstr "Hej, GNU-verden: Et eksempel på en GNU-pakke" + +#: gnu/packages/base.scm:67 +msgid "" +"GNU Hello prints the message \"Hello, world!\" and then exits. It\n" +"serves as an example of standard GNU coding practices. As such, it supports\n" +"command-line arguments, multiple languages, and so on." +msgstr "" +"GNU Hello udskriver beskeden »Hej verden!« og stopper så. Det\n" +"fungerer som et eksempel på gængse GNU-kodningspraksisser. Som\n" +"sådan understøtter programmer parametre på kommandolinjen, flere\n" +"sprog og så videre." + +#: gnu/packages/base.scm:86 +msgid "Print lines matching a pattern" +msgstr "Udskriv linjer der matcher et mønster" + +#: gnu/packages/base.scm:88 +msgid "" +"grep is a tool for finding text inside files. Text is found by\n" +"matching a pattern provided by the user in one or many files. The pattern\n" +"may be provided as a basic or extended regular expression, or as fixed\n" +"strings. By default, the matching text is simply printed to the screen,\n" +"however the output can be greatly customized to include, for example, line\n" +"numbers. GNU grep offers many extensions over the standard utility,\n" +"including, for example, recursive directory searching." +msgstr "" +"Grep er et værktøj til at finde tekst inden i filer. Tekst findes\n" +"af et matchende mønster tilbudt af brugeren i en eller flere filer.\n" +"Mønsteret kan stadig tilbydes som et grundlæggende elelr udvidet\n" +"regulært udtryk, eller som faste strenge. Som standard bliver den\n" +"matchende tekst skrevet til skærmen, resultatet kan dog tilpasses\n" +"på mange områder, for eksempel for inkludering af linjeantal. GNU\n" +"grep tilbyder mange udvidelser i forhold til standardredskabet,\n" +"inklusiv rekursiv mappesøgning." + +#: gnu/packages/base.scm:111 +msgid "Stream editor" +msgstr "Strømredigeringsprogram" + +#: gnu/packages/base.scm:126 +msgid "" +"Sed is a non-interactive, text stream editor. It receives a text\n" +"input from a file or from standard input and it then applies a series of text\n" +"editing commands to the stream and prints its output to standard output. It\n" +"is often used for substituting text patterns in a stream. The GNU\n" +"implementation offers several extensions over the standard utility." +msgstr "" +"Sed er et ikkeinteraktivt redigeringsprogram for tekststrømme. Det\n" +"modtager en tekst fra en fil eller fra standardind og anvender så en serie af tekstredigeringskommandoer til strømmen og udskriver\n" +"resultatet til standardud. Det bruges ofte til søg og erstat af\n" +"tekstmønster i en strøm. GNU-implementeringen tilbyder flere\n" +"udvidelser i forhold til standardredskabet." + +#: gnu/packages/base.scm:149 +msgid "Managing tar archives" +msgstr "Håndtering af tar-arkiver" + +#: gnu/packages/base.scm:151 +msgid "" +"Tar provides the ability to create tar archives, as well as the\n" +"ability to extract, update or list files in an existing archive. It is\n" +"useful for combining many files into one larger file, while maintaining\n" +"directory structure and file information such as permissions and\n" +"creation/modification dates. GNU tar offers many extensions over the\n" +"standard utility." +msgstr "" +"Tar tilbyder evnen til at oprette tar-arkiver, samt muligheden\n" +"for at udtrække, opdatere eller vise filer i et eksisterende arkiv.\n" +"Det er nyttigt for kombinering af mange filer til en større fil, mens\n" +"mappestruktur og filinformation såsom rettigheder og oprettelse/ændrings-\n" +"datoer bevares. GNU tar tilbyder mange udvidelser over standardredskabet." + +#: gnu/packages/base.scm:174 +msgid "Apply differences to originals, with optional backups" +msgstr "Anvend forskelle på originaler, med valgfri sikkerhedskopiering" + +#: gnu/packages/base.scm:176 +msgid "" +"Patch is a program that applies changes to files based on differences\n" +"laid out as by the program \"diff\". The changes may be applied to one or more\n" +"files depending on the contents of the diff file. It accepts several\n" +"different diff formats. It may also be used to revert previously applied\n" +"differences." +msgstr "" +"Patch er et program, som udfører ændringer på filer baseret på forskelle\n" +"skabt af programmet »diff«. Ændringerne kan anvendes på en eller flere\n" +"filer afhængig af indholder for diff-filen. Programmet accepterer flere\n" +"forskellige diff-formater. Det kan også bruges til at tilbageføre\n" +"tidligere anvendte forskelle." + +#: gnu/packages/base.scm:196 +msgid "Comparing and merging files" +msgstr "Sammenligning og sammenføjning af filer" + +#: gnu/packages/base.scm:198 +msgid "" +"GNU Diffutils is a package containing tools for finding the\n" +"differences between files. The \"diff\" command is used to show how two files\n" +"differ, while \"cmp\" shows the offsets and line numbers where they differ.\n" +"\"diff3\" allows you to compare three files. Finally, \"sdiff\" offers an\n" +"interactive means to merge two files." +msgstr "" +"GNU Diffutils er en pakke, der indeholder værktøjer til at finde\n" +"forskellene mellem filer. Kommandoen »diff« bruges til at vise hvordan to\n" +"filer er forskellige, mens »cmp« viser forskydningen og linjeantallet, hvor\n" +"de er forskellige. »diff3« giver dig mulighed for at sammenligne tre filer.\n" +"Endelig tilbyder »sdiff« en interaktiv måde at sammenføje to filer." + +#: gnu/packages/base.scm:231 +msgid "Operating on files matching given criteria" +msgstr "Operation på filer der matcher angivne kriterier" + +#: gnu/packages/base.scm:233 +msgid "" +"Findutils supplies the basic file directory searching utilities of the\n" +"GNU system. It consists of two primary searching utilities: \"find\"\n" +"recursively searches for files in a directory according to given criteria and\n" +"\"locate\" lists files in a database that match a query. Two auxiliary tools\n" +"are included: \"updatedb\" updates the file name database and \"xargs\" may be\n" +"used to apply commands with arbitrarily long arguments." +msgstr "" +"Findutils indeholder de grundlæggende søgeredskaber til filmapper for\n" +"GNU-systemet. Det består af to primære søgeredskaber: »find« søger\n" +"rekursivt efter filre i en mappe jævnfør angivne kriterier og\n" +"»locate« viser filer i en database som matcher en forespørgsel. To\n" +"ekstra værktøjer er inkluderet: »updatedb« opdaterer filnavnsdatabasen\n" +"og »xargs« kan bruges til at anvende kommandoer med arbitrært lange argumenter." + +#: gnu/packages/base.scm:297 +msgid "Core GNU utilities (file, text, shell)" +msgstr "Core GNU-redskaber (file, text, shell)" + +#: gnu/packages/base.scm:299 +msgid "" +"GNU Coreutils includes all of the basic command-line tools that are\n" +"expected in a POSIX system. These provide the basic file, shell and text\n" +"manipulation functions of the GNU system. Most of these tools offer extended\n" +"functionality beyond that which is outlined in the POSIX standard." +msgstr "" +"GNU Coreutils inkluderer alle de grundlæggende kommandolinjeværktøjer,\n" +"som kan forventes i et POSIX-system. Disse tilbyder de grundlæggende\n" +"manipuleringsfunktioner for fil, skal og tekst i GNU-systemet. De fleste\n" +"af disse værktøjer tilbyder udvidet funktionalitet udover det skitseret\n" +"i POSIX-standarden." + +#: gnu/packages/base.scm:341 +msgid "Remake files automatically" +msgstr "Gendan filer automatisk" + +#: gnu/packages/base.scm:343 +msgid "" +"Make is a program that is used to control the production of\n" +"executables or other files from their source files. The process is\n" +"controlled from a Makefile, in which the developer specifies how each file is\n" +"generated from its source. It has powerful dependency resolution and the\n" +"ability to determine when files have to be regenerated after their sources\n" +"change. GNU make offers many powerful extensions over the standard utility." +msgstr "" +"Make er et program, som bruges til at kontrollere produktionen af\n" +"kørbare filer eller andre filer fra deres kildefiler. Processen er\n" +"kontrolleret fra en Makefile, hvori udvikleren specificerer hvordan\n" +"hver fil oprettes fra dets kilde. Programmet har funktionsrige\n" +"afhængighedsopløsning og evnen til at afgøre hvornår filer skal\n" +"gendannes efter at deres kilder har ændret sig. GNU make tilbyder\n" +"mange funktionsrige udvidelser der ligger udover standardredskabet." + +#: gnu/packages/base.scm:388 +msgid "Binary utilities: bfd gas gprof ld" +msgstr "Binære redskaber: bfd gas gprof ld" + +#: gnu/packages/base.scm:390 +msgid "" +"GNU Binutils is a collection of tools for working with binary files.\n" +"Perhaps the most notable are \"ld\", a linker, and \"as\", an assembler.\n" +"Other tools include programs to display binary profiling information, list\n" +"the strings in a binary file, and utilities for working with archives. The\n" +"\"bfd\" library for working with executable and object formats is also\n" +"included." +msgstr "" + +#: gnu/packages/base.scm:455 +msgid "The linker wrapper" +msgstr "" + +#: gnu/packages/base.scm:457 +msgid "" +"The linker wrapper (or 'ld-wrapper') wraps the linker to add any\n" +"missing '-rpath' flags, and to detect any misuse of libraries outside of the\n" +"store." +msgstr "" + +#: gnu/packages/base.scm:625 +msgid "The GNU C Library" +msgstr "" + +#: gnu/packages/base.scm:627 +msgid "" +"Any Unix-like operating system needs a C library: the library which\n" +"defines the \"system calls\" and other basic facilities such as open, malloc,\n" +"printf, exit...\n" +"\n" +"The GNU C library is used as the C library in the GNU system and most systems\n" +"with the Linux kernel." +msgstr "" + +#: gnu/packages/base.scm:643 +msgid "All the locales supported by the GNU C Library" +msgstr "" + +#: gnu/packages/base.scm:645 +msgid "" +"This package provides all the locales supported by the GNU C Library,\n" +"more than 400 in total. To use them set the 'LOCPATH' environment variable to\n" +"the 'share/locale' sub-directory of this package." +msgstr "" + +#: gnu/packages/base.scm:713 +msgid "Small sample of UTF-8 locales" +msgstr "" + +#: gnu/packages/base.scm:715 +msgid "" +"This package provides a small sample of UTF-8 locales mostly useful in\n" +"test environments." +msgstr "" + +#: gnu/packages/base.scm:733 +msgid "Find full path of shell commands" +msgstr "" + +#: gnu/packages/base.scm:735 +msgid "" +"The which program finds the location of executables in PATH, with a\n" +"variety of options. It is an alternative to the shell \"type\" built-in\n" +"command." +msgstr "" + +#: gnu/packages/base.scm:805 +msgid "The GNU C Library (GNU Hurd variant)" +msgstr "" + +#: gnu/packages/base.scm:907 +msgid "Database of current and historical time zones" +msgstr "" + +#: gnu/packages/base.scm:908 +msgid "" +"The Time Zone Database (often called tz or zoneinfo)\n" +"contains code and data that represent the history of local time for many\n" +"representative locations around the globe. It is updated periodically to\n" +"reflect changes made by political bodies to time zone boundaries, UTC offsets,\n" +"and daylight-saving rules." +msgstr "" + +#: gnu/packages/bittorrent.scm:82 +msgid "Fast and easy BitTorrent client" +msgstr "" + +#: gnu/packages/bittorrent.scm:84 +msgid "" +"Transmission is a BitTorrent client that comes with graphical,\n" +"textual, and Web user interfaces. Transmission also has a daemon for\n" +"unattended operations. It supports local peer discovery, full encryption,\n" +"DHT, µTP, PEX and Magnet Links." +msgstr "" + +#: gnu/packages/bittorrent.scm:116 +msgid "BitTorrent library of rtorrent" +msgstr "" + +#: gnu/packages/bittorrent.scm:118 +msgid "" +"LibTorrent is a BitTorrent library used by and developed in parallel\n" +"with the BitTorrent client rtorrent. It is written in C++ with emphasis on\n" +"speed and efficiency." +msgstr "" + +#: gnu/packages/bittorrent.scm:145 +msgid "BitTorrent client with ncurses interface" +msgstr "" + +#: gnu/packages/bittorrent.scm:147 +msgid "" +"rTorrent is a BitTorrent client with an ncurses interface. It supports\n" +"full encryption, DHT, PEX, and Magnet Links. It can also be controlled via\n" +"XML-RPC over SCGI." +msgstr "" + +#: gnu/packages/certs.scm:65 +msgid "Python script to extract .pem data from certificate collection" +msgstr "" + +#: gnu/packages/certs.scm:67 +msgid "" +"certdata2pem.py is a Python script to transform X.509 certificate\n" +"\"source code\" as contained, for example, in the Mozilla sources, into\n" +".pem formatted certificates." +msgstr "" + +#: gnu/packages/certs.scm:124 +msgid "CA certificates from Mozilla" +msgstr "" + +#: gnu/packages/certs.scm:126 +msgid "" +"This package provides certificates for Certification Authorities (CA)\n" +"taken from the NSS package and thus ultimately from the Mozilla project." +msgstr "" + +#: gnu/packages/compression.scm:72 +msgid "Compression library" +msgstr "" + +#: gnu/packages/compression.scm:74 +msgid "" +"zlib is designed to be a free, general-purpose, legally unencumbered --\n" +"that is, not covered by any patents -- lossless data-compression library for\n" +"use on virtually any computer hardware and operating system. The zlib data\n" +"format is itself portable across platforms. Unlike the LZW compression method\n" +"used in Unix compress(1) and in the GIF image format, the compression method\n" +"currently used in zlib essentially never expands the data. (LZW can double or\n" +"triple the file size in extreme cases.) zlib's memory footprint is also\n" +"independent of the input data and can be reduced, if necessary, at some cost\n" +"in compression." +msgstr "" + +#: gnu/packages/compression.scm:99 +msgid "Replacement for Sun's 'jar' utility" +msgstr "" + +#: gnu/packages/compression.scm:101 +msgid "" +"FastJar is an attempt to create a much faster replacement for Sun's 'jar'\n" +"utility. Instead of being written in Java, FastJar is written in C." +msgstr "" + +#: gnu/packages/compression.scm:119 +msgid "C library for manipulating POSIX tar files" +msgstr "" + +#: gnu/packages/compression.scm:121 +msgid "" +"libtar is a C library for manipulating POSIX tar files. It handles\n" +"adding and extracting files to/from a tar archive." +msgstr "" + +#: gnu/packages/compression.scm:138 +msgid "General file (de)compression (using lzw)" +msgstr "" + +#: gnu/packages/compression.scm:143 +msgid "" +"GNU Gzip provides data compression and decompression utilities; the\n" +"typical extension is \".gz\". Unlike the \"zip\" format, it compresses a single\n" +"file; as a result, it is often used in conjunction with \"tar\", resulting in\n" +"\".tar.gz\" or \".tgz\", etc." +msgstr "" + +#: gnu/packages/compression.scm:219 +msgid "High-quality data compression program" +msgstr "" + +#: gnu/packages/compression.scm:221 +msgid "" +"bzip2 is a freely available, patent free (see below), high-quality data\n" +"compressor. It typically compresses files to within 10% to 15% of the best\n" +"available techniques (the PPM family of statistical compressors), whilst\n" +"being around twice as fast at compression and six times faster at\n" +"decompression." +msgstr "" + +#: gnu/packages/compression.scm:251 +msgid "Parallel bzip2 implementation" +msgstr "" + +#: gnu/packages/compression.scm:253 +msgid "" +"Pbzip2 is a parallel implementation of the bzip2 block-sorting file\n" +"compressor that uses pthreads and achieves near-linear speedup on SMP machines.\n" +"The output of this version is fully compatible with bzip2 v1.0.2 (i.e. anything\n" +"compressed with pbzip2 can be decompressed with bzip2)." +msgstr "" + +#: gnu/packages/compression.scm:272 +msgid "General-purpose data compression" +msgstr "" + +#: gnu/packages/compression.scm:274 +msgid "" +"XZ Utils is free general-purpose data compression software with high\n" +"compression ratio. XZ Utils were written for POSIX-like systems, but also\n" +"work on some not-so-POSIX systems. XZ Utils are the successor to LZMA Utils.\n" +"\n" +"The core of the XZ Utils compression code is based on LZMA SDK, but it has\n" +"been modified quite a lot to be suitable for XZ Utils. The primary\n" +"compression algorithm is currently LZMA2, which is used inside the .xz\n" +"container format. With typical files, XZ Utils create 30 % smaller output\n" +"than gzip and 15 % smaller output than bzip2." +msgstr "" + +#: gnu/packages/compression.scm:302 +msgid "Data compression library suitable for real-time data de-/compression" +msgstr "" + +#: gnu/packages/compression.scm:304 +msgid "" +"LZO is a data compression library which is suitable for data\n" +"de-/compression in real-time. This means it favours speed over\n" +"compression ratio.\n" +"\n" +"LZO is written in ANSI C. Both the source code and the compressed data\n" +"format are designed to be portable across platforms." +msgstr "" + +#: gnu/packages/compression.scm:327 +msgid "Compress or expand files" +msgstr "" + +#: gnu/packages/compression.scm:329 +msgid "" +"Lzop is a file compressor which is very similar to gzip. Lzop uses the\n" +"LZO data compression library for compression services, and its main advantages\n" +"over gzip are much higher compression and decompression speed (at the cost of\n" +"some compression ratio)." +msgstr "" + +#: gnu/packages/compression.scm:348 +msgid "Lossless data compressor based on the LZMA algorithm" +msgstr "" + +#: gnu/packages/compression.scm:350 +msgid "" +"Lzip is a lossless data compressor with a user interface similar to the\n" +"one of gzip or bzip2. Lzip decompresses almost as fast as gzip and compresses\n" +"more than bzip2, which makes it well suited for software distribution and data\n" +"archiving. Lzip is a clean implementation of the LZMA algorithm." +msgstr "" + +#: gnu/packages/compression.scm:382 +msgid "Archives in shell scripts, uuencode/uudecode" +msgstr "" + +#: gnu/packages/compression.scm:384 +msgid "" +"GNU sharutils is a package for creating and manipulating shell\n" +"archives that can be readily emailed. A shell archive is a file that can be\n" +"processed by a Bourne-type shell to unpack the original collection of files.\n" +"This package is mostly for compatibility and historical interest." +msgstr "" + +#: gnu/packages/compression.scm:415 +msgid "Library for SoundFont decompression" +msgstr "" + +#: gnu/packages/compression.scm:417 +msgid "" +"SfArkLib is a C++ library for decompressing SoundFont files compressed\n" +"with the sfArk algorithm." +msgstr "" + +#: gnu/packages/compression.scm:449 +msgid "Basic sfArk decompressor" +msgstr "" + +#: gnu/packages/compression.scm:450 +msgid "" +"SfArk extractor converts SoundFonts in the compressed legacy\n" +"sfArk file format to the uncompressed sf2 format." +msgstr "" + +#: gnu/packages/compression.scm:467 +msgid "Compression tools for some formats used by Microsoft" +msgstr "" + +#: gnu/packages/compression.scm:469 +msgid "" +"The purpose of libmspack is to provide both compression and\n" +"decompression of some loosely related file formats used by Microsoft." +msgstr "" + +#: gnu/packages/compression.scm:488 +msgid "Low-level interface to bzip2 compression library" +msgstr "" + +#: gnu/packages/compression.scm:489 +msgid "" +"This module provides a Perl interface to the bzip2\n" +"compression library." +msgstr "" + +#: gnu/packages/compression.scm:523 +msgid "Low-level interface to zlib compression library" +msgstr "" + +#: gnu/packages/compression.scm:524 +msgid "" +"This module provides a Perl interface to the zlib\n" +"compression library." +msgstr "" + +#: gnu/packages/compression.scm:545 +msgid "IO Interface to compressed files/buffers" +msgstr "" + +#: gnu/packages/compression.scm:546 +msgid "" +"IO-Compress provides a Perl interface to allow reading and\n" +"writing of compressed data created with the zlib and bzip2 libraries." +msgstr "" + +#: gnu/packages/compression.scm:572 +msgid "Compression algorithm focused on speed" +msgstr "" + +#: gnu/packages/compression.scm:573 +msgid "" +"LZ4 is a lossless compression algorithm, providing\n" +"compression speed at 400 MB/s per core (0.16 Bytes/cycle). It also features an\n" +"extremely fast decoder, with speed in multiple GB/s per core (0.71 Bytes/cycle).\n" +"A high compression derivative, called LZ4_HC, is also provided. It trades CPU\n" +"time for compression ratio." +msgstr "" + +#: gnu/packages/compression.scm:613 +msgid "Tools to create and extract squashfs filesystems" +msgstr "" + +#: gnu/packages/compression.scm:615 +msgid "" +"Squashfs is a highly compressed read-only filesystem for Linux. It uses\n" +"zlib to compress files, inodes, and directories. All blocks are packed to\n" +"minimize the data overhead, and block sizes of between 4K and 1M are supported.\n" +"It is intended to be used for archival use, for live CDs, and for embedded\n" +"systems where low overhead is needed. This package allows you to create and\n" +"extract such filesystems." +msgstr "" + +#: gnu/packages/compression.scm:652 +msgid "Parallel implementation of gzip" +msgstr "" + +#: gnu/packages/compression.scm:654 +msgid "" +"This package provides a parallel implementation of gzip that exploits\n" +"multiple processors and multiple cores when compressing data." +msgstr "" + +#: gnu/packages/databases.scm:97 +msgid "Berkeley database" +msgstr "" + +#: gnu/packages/databases.scm:99 +msgid "" +"Berkeley DB is an embeddable database allowing developers the choice of\n" +"SQL, Key/Value, XML/XQuery or Java Object storage for their data model." +msgstr "" + +#: gnu/packages/databases.scm:173 +msgid "Fast, easy to use, and popular database" +msgstr "" + +#: gnu/packages/databases.scm:175 +msgid "" +"MySQL is a fast, reliable, and easy to use relational database\n" +"management system that supports the standardized Structured Query\n" +"Language." +msgstr "" + +#: gnu/packages/databases.scm:242 +msgid "SQL database server" +msgstr "" + +#: gnu/packages/databases.scm:244 +msgid "" +"MariaDB is a multi-user and multi-threaded SQL database server, designed\n" +"as a drop-in replacement of MySQL." +msgstr "" + +#: gnu/packages/databases.scm:264 +msgid "Powerful object-relational database system" +msgstr "" + +#: gnu/packages/databases.scm:266 +msgid "" +"PostgreSQL is a powerful object-relational database system. It is fully\n" +"ACID compliant, has full support for foreign keys, joins, views, triggers, and\n" +"stored procedures (in multiple languages). It includes most SQL:2008 data\n" +"types, including INTEGER, NUMERIC, BOOLEAN, CHAR, VARCHAR, DATE, INTERVAL, and\n" +"TIMESTAMP. It also supports storage of binary large objects, including\n" +"pictures, sounds, or video." +msgstr "" + +#: gnu/packages/databases.scm:302 +msgid "Manipulate plain text files as databases" +msgstr "" + +#: gnu/packages/databases.scm:304 +msgid "" +"GNU Recutils is a set of tools and libraries for creating and\n" +"manipulating text-based, human-editable databases. Despite being text-based,\n" +"databases created with Recutils carry all of the expected features such as\n" +"unique fields, primary keys, time stamps and more. Many different field\n" +"types are supported, as is encryption." +msgstr "" + +#: gnu/packages/databases.scm:356 +msgid "The SQLite database management system" +msgstr "" + +#: gnu/packages/databases.scm:358 +msgid "" +"SQLite is a software library that implements a self-contained, serverless,\n" +"zero-configuration, transactional SQL database engine. SQLite is the most\n" +"widely deployed SQL database engine in the world. The source code for SQLite\n" +"is in the public domain." +msgstr "" + +#: gnu/packages/databases.scm:393 +msgid "Trivial database" +msgstr "" + +#: gnu/packages/databases.scm:395 +msgid "" +"TDB is a Trivial Database. In concept, it is very much like GDBM,\n" +"and BSD's DB except that it allows multiple simultaneous writers and uses\n" +"locking internally to keep writers from trampling on each other. TDB is also\n" +"extremely small." +msgstr "" + +#: gnu/packages/databases.scm:414 +msgid "Database independent interface for Perl" +msgstr "" + +#: gnu/packages/databases.scm:415 +msgid "This package provides an database interface for Perl." +msgstr "" + +#: gnu/packages/databases.scm:462 +msgid "Extensible and flexible object <-> relational mapper" +msgstr "" + +#: gnu/packages/databases.scm:463 +msgid "" +"An SQL to OO mapper with an object API inspired by\n" +"Class::DBI (with a compatibility layer as a springboard for porting) and a\n" +"resultset API that allows abstract encapsulation of database operations. It\n" +"aims to make representing queries in your code as perl-ish as possible while\n" +"still providing access to as many of the capabilities of the database as\n" +"possible, including retrieving related records from multiple tables in a\n" +"single query, \"JOIN\", \"LEFT JOIN\", \"COUNT\", \"DISTINCT\", \"GROUP BY\",\n" +"\"ORDER BY\" and \"HAVING\" support." +msgstr "" + +#: gnu/packages/databases.scm:493 +msgid "Cursor with built-in caching support" +msgstr "" + +#: gnu/packages/databases.scm:494 +msgid "" +"DBIx::Class::Cursor::Cached provides a cursor class with\n" +"built-in caching support." +msgstr "" + +#: gnu/packages/databases.scm:514 +msgid "Introspect many-to-many relationships" +msgstr "" + +#: gnu/packages/databases.scm:515 +msgid "" +"Because the many-to-many relationships are not real\n" +"relationships, they can not be introspected with DBIx::Class. Many-to-many\n" +"relationships are actually just a collection of convenience methods installed\n" +"to bridge two relationships. This DBIx::Class component can be used to store\n" +"all relevant information about these non-relationships so they can later be\n" +"introspected and examined." +msgstr "" + +#: gnu/packages/databases.scm:572 +msgid "Create a DBIx::Class::Schema based on a database" +msgstr "" + +#: gnu/packages/databases.scm:573 +msgid "" +"DBIx::Class::Schema::Loader automates the definition of a\n" +"DBIx::Class::Schema by scanning database table definitions and setting up the\n" +"columns, primary keys, unique constraints and relationships." +msgstr "" + +#: gnu/packages/databases.scm:597 +msgid "DBI PostgreSQL interface" +msgstr "" + +#: gnu/packages/databases.scm:616 +msgid "SQlite interface for Perl" +msgstr "" + +#: gnu/packages/databases.scm:617 +msgid "" +"DBD::SQLite is a Perl DBI driver for SQLite, that includes\n" +"the entire thing in the distribution. So in order to get a fast transaction\n" +"capable RDBMS working for your Perl project you simply have to install this\n" +"module, and nothing else." +msgstr "" + +#: gnu/packages/databases.scm:647 +msgid "Generate SQL from Perl data structures" +msgstr "" + +#: gnu/packages/databases.scm:648 +msgid "" +"This module was inspired by the excellent DBIx::Abstract.\n" +"While based on the concepts used by DBIx::Abstract, the concepts used have\n" +"been modified to make the SQL easier to generate from Perl data structures.\n" +"The underlying idea is for this module to do what you mean, based on the data\n" +"structures you provide it, so that you don't have to modify your code every\n" +"time your data changes." +msgstr "" + +#: gnu/packages/databases.scm:677 +msgid "Split SQL code into atomic statements" +msgstr "" + +#: gnu/packages/databases.scm:678 +msgid "" +"This module tries to split any SQL code, even including\n" +"non-standard extensions, into the atomic statements it is composed of." +msgstr "" + +#: gnu/packages/databases.scm:696 +msgid "SQL tokenizer" +msgstr "" + +#: gnu/packages/databases.scm:697 +msgid "" +"SQL::Tokenizer is a tokenizer for SQL queries. It does not\n" +"claim to be a parser or query verifier. It just creates sane tokens from a\n" +"valid SQL query." +msgstr "" + +#: gnu/packages/databases.scm:714 +msgid "Data source abstraction library" +msgstr "" + +#: gnu/packages/databases.scm:715 +msgid "" +"Unixodbc is a library providing an API with which to access\n" +"data sources. Data sources include SQL Servers and any software with an ODBC\n" +"Driver." +msgstr "" + +#: gnu/packages/databases.scm:739 +msgid "In-memory key/value and document store" +msgstr "" + +#: gnu/packages/databases.scm:741 +msgid "" +"UnQLite is an in-process software library which implements a\n" +"self-contained, serverless, zero-configuration, transactional NoSQL\n" +"database engine. UnQLite is a document store database similar to\n" +"MongoDB, Redis, CouchDB, etc. as well as a standard Key/Value store\n" +"similar to BerkeleyDB, LevelDB, etc." +msgstr "" + +#: gnu/packages/databases.scm:768 +msgid "Key-value cache and store" +msgstr "" + +#: gnu/packages/databases.scm:769 +msgid "" +"Redis is an advanced key-value cache and store. Redis\n" +"supports many data structures including strings, hashes, lists, sets, sorted\n" +"sets, bitmaps and hyperloglogs." +msgstr "" + +#: gnu/packages/debug.scm:74 +msgid "Heuristical file minimizer" +msgstr "" + +#: gnu/packages/debug.scm:76 +msgid "" +"Delta assists you in minimizing \"interesting\" files subject to a test\n" +"of their interestingness. A common such situation is when attempting to\n" +"isolate a small failure-inducing substring of a large input that causes your\n" +"program to exhibit a bug." +msgstr "" + +#: gnu/packages/debug.scm:135 +msgid "Reducer for interesting code" +msgstr "" + +#: gnu/packages/debug.scm:137 +msgid "" +"C-Reduce is a tool that takes a large C or C++ program that has a\n" +"property of interest (such as triggering a compiler bug) and automatically\n" +"produces a much smaller C/C++ program that has the same property. It is\n" +"intended for use by people who discover and report bugs in compilers and other\n" +"tools that process C/C++ code." +msgstr "" + +#: gnu/packages/debug.scm:229 +msgid "Security-oriented fuzzer" +msgstr "" + +#: gnu/packages/debug.scm:231 +msgid "" +"American fuzzy lop is a security-oriented fuzzer that employs a novel\n" +"type of compile-time instrumentation and genetic algorithms to automatically\n" +"discover clean, interesting test cases that trigger new internal states in the\n" +"targeted binary. This substantially improves the functional coverage for the\n" +"fuzzed code. The compact synthesized corpora produced by the tool are also\n" +"useful for seeding other, more labor- or resource-intensive testing regimes\n" +"down the road." +msgstr "" + +#: gnu/packages/dejagnu.scm:78 +msgid "GNU software testing framework" +msgstr "" + +#: gnu/packages/dejagnu.scm:80 +msgid "" +"DejaGnu is a framework for testing software. In effect, it serves as\n" +"a front-end for all tests written for a program. Thus, each program can have\n" +"multiple test suites, which are then all managed by a single harness." +msgstr "" + +#: gnu/packages/feh.scm:53 +msgid "Fast and light imlib2-based image viewer" +msgstr "" + +#: gnu/packages/feh.scm:55 +msgid "" +"feh is an X11 image viewer aimed mostly at console users.\n" +"Unlike most other viewers, it does not have a fancy GUI, but simply\n" +"displays images. It can also be used to set the desktop wallpaper.\n" +"It is controlled via commandline arguments and configurable key/mouse\n" +"actions." +msgstr "" + +#: gnu/packages/games.scm:113 +msgid "Backgammon game" +msgstr "" + +#: gnu/packages/games.scm:114 +msgid "" +"The GNU backgammon application can be used for playing, analyzing and\n" +"teaching the game. It has an advanced evaluation engine based on artificial\n" +"neural networks suitable for both beginners and advanced players. In\n" +"addition to a command-line interface, it also features an attractive, 3D\n" +"representation of the playing board." +msgstr "" + +#: gnu/packages/games.scm:143 +msgid "3d Rubik's cube game" +msgstr "" + +#: gnu/packages/games.scm:145 +msgid "" +"GNUbik is a puzzle game in which you must manipulate a cube to make\n" +"each of its faces have a uniform color. The game is customizable, allowing\n" +"you to set the size of the cube (the default is 3x3) or to change the colors.\n" +"You may even apply photos to the faces instead of colors. The game is\n" +"scriptable with Guile." +msgstr "" + +#: gnu/packages/games.scm:195 +msgid "GNU/Linux port of the indie game \"l'Abbaye des Morts\"" +msgstr "" + +#: gnu/packages/games.scm:196 +msgid "" +"L'Abbaye des Morts is a 2D platform game set in 13th century\n" +"France. The Cathars, who preach about good Christian beliefs, were being\n" +"expelled by the Catholic Church out of the Languedoc region in France. One of\n" +"them, called Jean Raymond, found an old church in which to hide, not knowing\n" +"that beneath its ruins lay buried an ancient evil." +msgstr "" + +#: gnu/packages/games.scm:239 +msgid "Lemmings clone" +msgstr "" + +#: gnu/packages/games.scm:241 +msgid "" +"Pingus is a free Lemmings-like puzzle game in which the player takes\n" +"command of a bunch of small animals and has to guide them through levels.\n" +"Since the animals walk on their own, the player can only influence them by\n" +"giving them commands, like build a bridge, dig a hole, or redirect all animals\n" +"in the other direction. Multiple such commands are necessary to reach the\n" +"level's exit. The game is presented in a 2D side view." +msgstr "" + +#: gnu/packages/games.scm:263 +msgid "Convert English text to humorous dialects" +msgstr "" + +#: gnu/packages/games.scm:264 +msgid "" +"The GNU Talk Filters are programs that convert English text\n" +"into stereotyped or otherwise humorous dialects. The filters are provided as\n" +"a C library, so they can easily be integrated into other programs." +msgstr "" + +#: gnu/packages/games.scm:296 +msgid "Simulate the display from \"The Matrix\"" +msgstr "" + +#: gnu/packages/games.scm:297 +msgid "" +"CMatrix simulates the display from \"The Matrix\" and is\n" +"based on the screensaver from the movie's website. It works with terminal\n" +"settings up to 132x300 and can scroll lines all at the same rate or\n" +"asynchronously and at a user-defined speed." +msgstr "" + +#: gnu/packages/games.scm:317 +msgid "Full chess implementation" +msgstr "" + +#: gnu/packages/games.scm:318 +msgid "" +"GNU Chess is a chess engine. It allows you to compete\n" +"against the computer in a game of chess, either through the default terminal\n" +"interface or via an external visual interface such as GNU XBoard." +msgstr "" + +#: gnu/packages/games.scm:346 +msgid "Twisted adventures of young pig farmer Dink Smallwood" +msgstr "" + +#: gnu/packages/games.scm:348 +msgid "" +"GNU FreeDink is a free and portable re-implementation of the engine\n" +"for the role-playing game Dink Smallwood. It supports not only the original\n" +"game data files but it also supports user-produced game mods or \"D-Mods\".\n" +"To that extent, it also includes a front-end for managing all of your D-Mods." +msgstr "" + +#: gnu/packages/games.scm:370 +msgid "Game data for GNU Freedink" +msgstr "" + +#: gnu/packages/games.scm:372 +msgid "This package contains the game data of GNU Freedink." +msgstr "" + +#: gnu/packages/games.scm:424 +msgid "Graphical user interface for chess programs" +msgstr "" + +#: gnu/packages/games.scm:425 +msgid "" +"GNU XBoard is a graphical board for all varieties of chess,\n" +"including international chess, xiangqi (Chinese chess), shogi (Japanese chess)\n" +"and Makruk. Several lesser-known variants are also supported. It presents a\n" +"fully interactive graphical interface and it can load and save games in the\n" +"Portable Game Notation." +msgstr "" + +#: gnu/packages/games.scm:478 +msgid "Ball and paddle game" +msgstr "" + +#: gnu/packages/games.scm:479 +msgid "" +"XBoing is a blockout type game where you have a paddle which\n" +"you control to bounce a ball around the game zone destroying blocks with a\n" +"proton ball. Each block carries a different point value. The more blocks you\n" +"destroy, the better your score. The person with the highest score wins." +msgstr "" + +#: gnu/packages/games.scm:511 +msgid "Typing tutor" +msgstr "" + +#: gnu/packages/games.scm:513 +msgid "" +"GNU Typist is a universal typing tutor. It can be used to learn and\n" +"practice touch-typing. Several tutorials are included; in addition to\n" +"tutorials for the standard QWERTY layout, there are also tutorials for the\n" +"alternative layouts Dvorak and Colemak, as well as for the numpad. Tutorials\n" +"are primarily in English, however some in other languages are provided." +msgstr "" + +#: gnu/packages/games.scm:566 +msgid "3D game engine written in C++" +msgstr "" + +#: gnu/packages/games.scm:568 +msgid "" +"The Irrlicht Engine is a high performance realtime 3D engine written in\n" +"C++. Features include an OpenGL renderer, extensible materials, scene graph\n" +"management, character animation, particle and other special effects, support\n" +"for common mesh file formats, and collision detection." +msgstr "" + +#: gnu/packages/games.scm:620 +msgid "2D space shooter" +msgstr "" + +#: gnu/packages/games.scm:622 +msgid "" +"M.A.R.S. is a 2D space shooter with pretty visual effects and\n" +"attractive physics. Players can battle each other or computer controlled\n" +"enemies in different game modes such as space ball, death match, team death\n" +"match, cannon keep, and grave-itation pit." +msgstr "" + +#: gnu/packages/games.scm:663 +msgid "Main game data for the Minetest game engine" +msgstr "" + +#: gnu/packages/games.scm:665 +msgid "Game data for the Minetest infinite-world block sandox game." +msgstr "" + +#: gnu/packages/games.scm:717 +msgid "Infinite-world block sandbox game" +msgstr "" + +#: gnu/packages/games.scm:719 +msgid "" +"Minetest is a sandbox construction game. Players can create and destroy\n" +"various types of blocks in a three-dimensional open world. This allows\n" +"forming structures in every possible creation, on multiplayer servers or as a\n" +"single player. Mods and texture packs allow players to personalize the game\n" +"in different ways." +msgstr "" + +#: gnu/packages/games.scm:758 +msgid "Curses Implementation of the Glk API" +msgstr "" + +#: gnu/packages/games.scm:760 +msgid "" +"Glk defines a portable API for applications with text UIs. It was\n" +"primarily designed for interactive fiction, but it should be suitable for many\n" +"interactive text utilities, particularly those based on a command line.\n" +"This is an implementation of the Glk library which runs in a terminal window,\n" +"using the curses.h library for screen control." +msgstr "" + +#: gnu/packages/games.scm:797 +msgid "Interpreter for Glulx VM" +msgstr "" + +#: gnu/packages/games.scm:799 +msgid "" +"Glulx is a 32-bit portable virtual machine intended for writing and\n" +"playing interactive fiction. It was designed by Andrew Plotkin to relieve\n" +"some of the restrictions in the venerable Z-machine format. This is the\n" +"reference interpreter, using Glk API." +msgstr "" + +#: gnu/packages/games.scm:835 +msgid "Z-machine interpreter" +msgstr "" + +#: gnu/packages/games.scm:837 +msgid "" +"Fizmo is a console-based Z-machine interpreter. It is used to play\n" +"interactive fiction, also known as text adventures, which were implemented\n" +"either by Infocom or created using the Inform compiler." +msgstr "" + +#: gnu/packages/games.scm:887 +msgid "Reference frontend for the libretro API" +msgstr "" + +#: gnu/packages/games.scm:889 +msgid "" +"Libretro is a simple but powerful development interface that allows for\n" +"the easy creation of emulators, games and multimedia applications that can plug\n" +"straight into any libretro-compatible frontend. RetroArch is the official\n" +"reference frontend for the libretro API, currently used by most as a modular\n" +"multi-system game/emulator system." +msgstr "" + +#: gnu/packages/games.scm:909 +msgid "Play the game of Go" +msgstr "" + +#: gnu/packages/games.scm:911 +msgid "" +"GNU Go is a program that plays the game of Go, in which players\n" +"place stones on a grid to form territory or capture other stones. While\n" +"it can be played directly from the terminal, rendered in ASCII characters,\n" +"it is also possible to play GNU Go with 3rd party graphical interfaces or\n" +"even in Emacs. It supports the standard game storage format (SGF, Smart\n" +"Game Format) and inter-process communication format (GMP, Go Modem\n" +"Protocol)." +msgstr "" + +#: gnu/packages/games.scm:961 +msgid "High speed arctic racing game based on Tux Racer" +msgstr "" + +#: gnu/packages/games.scm:963 +msgid "" +"Extreme Tux Racer, or etracer as it is called for short, is\n" +"a simple OpenGL racing game featuring Tux, the Linux mascot. The goal of the\n" +"game is to slide down a snow- and ice-covered mountain as quickly as possible,\n" +"avoiding the trees and rocks that will slow you down.\n" +"\n" +"Collect herrings and other goodies while sliding down the hill, but avoid fish\n" +"bones.\n" +"\n" +"This game is based on the GPL version of the famous game TuxRacer." +msgstr "" + +#: gnu/packages/games.scm:1001 +msgid "Game of jumping to the next floor, trying not to fall" +msgstr "" + +#: gnu/packages/games.scm:1003 +msgid "" +"GNUjump is a simple, yet addictive game in which you must jump from\n" +"platform to platform to avoid falling, while the platforms drop at faster rates\n" +"the higher you go. The game features multiplayer, unlimited FPS, smooth floor\n" +"falling, themeable graphics and sounds, and replays." +msgstr "" + +#: gnu/packages/games.scm:1044 +msgid "Turn-based strategy game" +msgstr "" + +#: gnu/packages/games.scm:1046 +msgid "" +"The Battle for Wesnoth is a fantasy, turn based tactical strategy game,\n" +"with several single player campaigns, and multiplayer games (both networked and\n" +"local).\n" +"\n" +"Battle for control on a range of maps, using variety of units which have\n" +"advantages and disadvantages against different types of attacks. Units gain\n" +"experience and advance levels, and are carried over from one scenario to the\n" +"next campaign." +msgstr "" + +#: gnu/packages/games.scm:1090 +msgid "x86 emulator with CGA/EGA/VGA/etc. graphics and sound" +msgstr "" + +#: gnu/packages/games.scm:1091 +msgid "" +"DOSBox is a DOS-emulator that uses the SDL library. DOSBox\n" +"also emulates CPU:286/386 realmode/protected mode, Directory\n" +"FileSystem/XMS/EMS, Tandy/Hercules/CGA/EGA/VGA/VESA graphics, a\n" +"SoundBlaster/Gravis Ultra Sound card for excellent sound compatibility with\n" +"older games." +msgstr "" + +#: gnu/packages/games.scm:1136 +msgid "Mouse and keyboard discovery for children" +msgstr "" + +#: gnu/packages/games.scm:1138 +msgid "" +"Gamine is a game designed for young children who are learning to use the\n" +"mouse and keyboard. The child uses the mouse to draw colored dots and lines\n" +"on the screen and keyboard to display letters." +msgstr "" + +#: gnu/packages/games.scm:1169 +msgid "Puzzle game with a cat in lead role" +msgstr "" + +#: gnu/packages/games.scm:1170 +msgid "" +"Project Raincat is a game developed by Carnegie Mellon\n" +"students through GCS during the Fall 2008 semester. Raincat features game\n" +"play inspired from classics Lemmings and The Incredible Machine. The project\n" +"proved to be an excellent learning experience for the programmers. Everything\n" +"is programmed in Haskell." +msgstr "" + +#: gnu/packages/games.scm:1205 +msgid "Client for 'The Mana World' and similar games" +msgstr "" + +#: gnu/packages/games.scm:1207 +msgid "" +"ManaPlus is a 2D MMORPG client for game servers. It is the only\n" +"fully supported client for @uref{http://www.themanaworld.org, The mana\n" +"world}, @uref{http://evolonline.org, Evol Online} and\n" +"@uref{http://landoffire.org, Land of fire}." +msgstr "" + +#: gnu/packages/gcc.scm:303 +msgid "GNU Compiler Collection" +msgstr "" + +#: gnu/packages/gcc.scm:305 +msgid "" +"GCC is the GNU Compiler Collection. It provides compiler front-ends\n" +"for several languages, including C, C++, Objective-C, Fortran, Java, Ada, and\n" +"Go. It also includes runtime support libraries for these languages." +msgstr "" + +#: gnu/packages/gcc.scm:370 +msgid "GNU C++ standard library" +msgstr "" + +#: gnu/packages/gcc.scm:405 +msgid "Collection of subroutines used by various GNU programs" +msgstr "" + +#: gnu/packages/gcc.scm:561 +msgid "GNU libstdc++ documentation" +msgstr "" + +#: gnu/packages/gcc.scm:629 +msgid "Manipulating sets and relations of integer points bounded by linear constraints" +msgstr "" + +#: gnu/packages/gcc.scm:632 +msgid "" +"isl is a library for manipulating sets and relations of integer points\n" +"bounded by linear constraints. Supported operations on sets include\n" +"intersection, union, set difference, emptiness check, convex hull, (integer)\n" +"affine hull, integer projection, computing the lexicographic minimum using\n" +"parametric integer programming, coalescing and parametric vertex\n" +"enumeration. It also includes an ILP solver based on generalized basis\n" +"reduction, transitive closures on maps (which may encode infinite graphs),\n" +"dependence analysis and bounds on piecewise step-polynomials." +msgstr "" + +#: gnu/packages/gcc.scm:664 +msgid "Library to generate code for scanning Z-polyhedra" +msgstr "" + +#: gnu/packages/gcc.scm:666 +msgid "" +"CLooG is a free software library to generate code for scanning\n" +"Z-polyhedra. That is, it finds a code (e.g., in C, FORTRAN...) that\n" +"reaches each integral point of one or more parameterized polyhedra.\n" +"CLooG has been originally written to solve the code generation problem\n" +"for optimizing compilers based on the polytope model. Nevertheless it\n" +"is used now in various area e.g., to build control automata for\n" +"high-level synthesis or to find the best polynomial approximation of a\n" +"function. CLooG may help in any situation where scanning polyhedra\n" +"matters. While the user has full control on generated code quality,\n" +"CLooG is designed to avoid control overhead and to produce a very\n" +"effective code." +msgstr "" + +#: gnu/packages/gcc.scm:721 +msgid "Reference manual for the C programming language" +msgstr "" + +#: gnu/packages/gcc.scm:723 +msgid "" +"This is a reference manual for the C programming language, as\n" +"implemented by the GNU C Compiler (gcc). As a reference, it is not intended\n" +"to be a tutorial of the language. Rather, it outlines all of the constructs\n" +"of the language. Library functions are not included." +msgstr "" + +#: gnu/packages/geeqie.scm:48 +msgid "Library and command-line utility to manage image metadata" +msgstr "" + +#: gnu/packages/geeqie.scm:50 +msgid "" +"Exiv2 is a C++ library and a command line utility to manage image\n" +"metadata. It provides fast and easy read and write access to the Exif, IPTC\n" +"and XMP metadata of images in various formats." +msgstr "" + +#: gnu/packages/geeqie.scm:81 +msgid "Lightweight GTK+ based image viewer" +msgstr "" + +#: gnu/packages/geeqie.scm:83 +msgid "" +"Geeqie is a lightweight GTK+ based image viewer for Unix like operating\n" +"systems. It features: EXIF, IPTC and XMP metadata browsing and editing\n" +"interoperability; easy integration with other software; geeqie works on files\n" +"and directories, there is no need to import images; fast preview for many raw\n" +"image formats; tools for image comparison, sorting and managing photo\n" +"collection. Geeqie was initially based on GQview." +msgstr "" + +#: gnu/packages/gettext.scm:91 +msgid "Tools and documentation for translation" +msgstr "" + +#: gnu/packages/gettext.scm:93 +msgid "" +"GNU Gettext is a package providing a framework for translating the\n" +"textual output of programs into multiple languages. It provides translators\n" +"with the means to create message catalogs, as well as an Emacs mode to work\n" +"with them, and a runtime library to load translated messages from the\n" +"catalogs. Nearly all GNU packages use Gettext." +msgstr "" + +#: gnu/packages/gettext.scm:149 +msgid "Scripts to ease maintenance of translations" +msgstr "" + +#: gnu/packages/gettext.scm:151 +msgid "" +"The po4a (PO for anything) project goal is to ease translations (and\n" +"more interestingly, the maintenance of translations) using gettext tools on\n" +"areas where they were not expected like documentation." +msgstr "" + +#: gnu/packages/gimp.scm:54 +msgid "Image pixel format conversion library" +msgstr "" + +#: gnu/packages/gimp.scm:56 +msgid "" +"Babl is a dynamic, any to any, pixel format translation library.\n" +"It allows converting between different methods of storing pixels known as\n" +"pixel formats that have with different bitdepths and other data\n" +"representations, color models and component permutations.\n" +"\n" +"A vocabulary to formulate new pixel formats from existing primitives is\n" +"provided as well as the framework to add new color models and data types." +msgstr "" + +#: gnu/packages/gimp.scm:111 +msgid "Graph based image processing framework" +msgstr "" + +#: gnu/packages/gimp.scm:112 +msgid "" +"GEGL (Generic Graphics Library) provides infrastructure to\n" +"do demand based cached non destructive image editing on larger than RAM\n" +"buffers." +msgstr "" + +#: gnu/packages/gimp.scm:148 +msgid "GNU Image Manipulation Program" +msgstr "" + +#: gnu/packages/gimp.scm:150 +msgid "" +"GIMP is an application for image manipulation tasks such as photo\n" +"retouching, composition and authoring. It supports all common image formats\n" +"as well as specialized ones. It features a highly customizable interface\n" +"that is extensible via a plugin system." +msgstr "" + +#: gnu/packages/gnome.scm:138 +msgid "CD/DVD burning tool for Gnome" +msgstr "" + +#: gnu/packages/gnome.scm:139 +msgid "" +"Brasero is an application to burn CD/DVD for the Gnome\n" +"Desktop. It is designed to be as simple as possible and has some unique\n" +"features to enable users to create their discs easily and quickly." +msgstr "" + +#: gnu/packages/gnome.scm:159 +msgid "Bootstrap GNOME modules built from Git" +msgstr "" + +#: gnu/packages/gnome.scm:160 +msgid "" +"gnome-common contains various files needed to bootstrap\n" +"GNOME modules built from Git. It contains a common \"autogen.sh\" script that\n" +"can be used to configure a source directory checked out from Git and some\n" +"commonly used macros." +msgstr "" + +#: gnu/packages/gnome.scm:198 +msgid "Libgnome-desktop, gnome-about, and desktop-wide documents" +msgstr "" + +#: gnu/packages/gnome.scm:200 +msgid "" +"The libgnome-desktop library provides API shared by several applications\n" +"on the desktop, but that cannot live in the platform for various reasons.\n" +"There is no API or ABI guarantee, although we are doing our best to provide\n" +"stability. Documentation for the API is available with gtk-doc.\n" +"\n" +"The gnome-about program helps find which version of GNOME is installed." +msgstr "" + +#: gnu/packages/gnome.scm:233 +msgid "Documentation utilities for the Gnome project" +msgstr "" + +#: gnu/packages/gnome.scm:235 +msgid "" +"Gnome-doc-utils is a collection of documentation utilities for the\n" +"Gnome project. It includes xml2po tool which makes it easier to translate\n" +"and keep up to date translations of documentation." +msgstr "" + +#: gnu/packages/gnome.scm:277 +msgid "Libraries for displaying certificates and accessing key stores" +msgstr "" + +#: gnu/packages/gnome.scm:279 +msgid "" +"The GCR package contains libraries used for displaying certificates and\n" +"accessing key stores. It also provides the viewer for crypto files on the\n" +"GNOME Desktop." +msgstr "" + +#: gnu/packages/gnome.scm:308 +msgid "Accessing passwords from the GNOME keyring" +msgstr "" + +#: gnu/packages/gnome.scm:310 +msgid "Client library to access passwords from the GNOME keyring." +msgstr "" + +#: gnu/packages/gnome.scm:371 +msgid "Daemon to store passwords and encryption keys" +msgstr "" + +#: gnu/packages/gnome.scm:373 +msgid "" +"gnome-keyring is a program that keeps passwords and other secrets for\n" +"users. It is run as a daemon in the session, similar to ssh-agent, and other\n" +"applications locate it via an environment variable or D-Bus.\n" +"\n" +"The program can manage several keyrings, each with its own master password,\n" +"and there is also a session keyring which is never stored to disk, but\n" +"forgotten when the session ends." +msgstr "" + +#: gnu/packages/gnome.scm:438 +msgid "GNOME's document viewer" +msgstr "" + +#: gnu/packages/gnome.scm:440 +msgid "" +"Evince is a document viewer for multiple document formats. It\n" +"currently supports PDF, PostScript, DjVu, TIFF and DVI. The goal\n" +"of Evince is to replace the multiple document viewers that exist\n" +"on the GNOME Desktop with a single simple application." +msgstr "" + +#: gnu/packages/gnome.scm:469 +msgid "GNOME settings for various desktop components" +msgstr "" + +#: gnu/packages/gnome.scm:471 +msgid "" +"Gsettings-desktop-schemas contains a collection of GSettings schemas\n" +"for settings shared by various components of the GNOME desktop." +msgstr "" + +#: gnu/packages/gnome.scm:505 +msgid "Utility to implement the Freedesktop Icon Naming Specification" +msgstr "" + +#: gnu/packages/gnome.scm:507 +msgid "" +"To help with the transition to the Freedesktop Icon Naming\n" +"Specification, the icon naming utility maps the icon names used by the\n" +"GNOME and KDE desktops to the icon names proposed in the specification." +msgstr "" + +#: gnu/packages/gnome.scm:529 +msgid "Utilities for working with desktop entries" +msgstr "" + +#: gnu/packages/gnome.scm:531 +msgid "" +"This package contains a few command line utilities for working with\n" +"desktop entries:\n" +"\n" +"desktop-file-validate: validates a desktop file and prints warnings/errors\n" +" about desktop entry specification violations.\n" +"\n" +"desktop-file-install: installs a desktop file to the applications directory,\n" +" optionally munging it a bit in transit.\n" +"\n" +"update-desktop-database: updates the database containing a cache of MIME types\n" +" handled by desktop files." +msgstr "" + +#: gnu/packages/gnome.scm:565 +msgid "GNOME icon theme" +msgstr "" + +#: gnu/packages/gnome.scm:567 +msgid "Icons for the GNOME desktop." +msgstr "" + +#: gnu/packages/gnome.scm:606 +msgid "Database of common MIME types" +msgstr "" + +#: gnu/packages/gnome.scm:608 +msgid "" +"The shared-mime-info package contains the core database of common types\n" +"and the update-mime-database command used to extend it. It requires glib2 to\n" +"be installed for building the update command. Additionally, it uses intltool\n" +"for translations, though this is only a dependency for the maintainers. This\n" +"database is translated at Transifex." +msgstr "" + +#: gnu/packages/gnome.scm:632 +msgid "Freedesktop icon theme" +msgstr "" + +#: gnu/packages/gnome.scm:634 +msgid "Freedesktop icon theme." +msgstr "" + +#: gnu/packages/gnome.scm:661 +msgid "GNOME desktop notification library" +msgstr "" + +#: gnu/packages/gnome.scm:663 +msgid "" +"Libnotify is a library that sends desktop notifications to a\n" +"notification daemon, as defined in the Desktop Notifications spec. These\n" +"notifications can be used to inform the user about an event or display\n" +"some form of information without getting in the user's way." +msgstr "" + +#: gnu/packages/gnome.scm:695 +msgid "GObject plugin system" +msgstr "" + +#: gnu/packages/gnome.scm:697 +msgid "" +"Libpeas is a gobject-based plugins engine, and is targetted at giving\n" +"every application the chance to assume its own extensibility. It also has a\n" +"set of features including, but not limited to: multiple extension points; on\n" +"demand (lazy) programming language support for C, Python and JS; simplicity of\n" +"the API." +msgstr "" + +#: gnu/packages/gnome.scm:726 +msgid "OpenGL extension to GTK+" +msgstr "" + +#: gnu/packages/gnome.scm:727 +msgid "" +"GtkGLExt is an OpenGL extension to GTK+. It provides\n" +"additional GDK objects which support OpenGL rendering in GTK+ and GtkWidget\n" +"API add-ons to make GTK+ widgets OpenGL-capable." +msgstr "" + +#: gnu/packages/gnome.scm:752 +msgid "GTK+ rapid application development tool" +msgstr "" + +#: gnu/packages/gnome.scm:753 +msgid "" +"Glade is a rapid application development (RAD) tool to\n" +"enable quick & easy development of user interfaces for the GTK+ toolkit and\n" +"the GNOME desktop environment." +msgstr "" + +#: gnu/packages/gnome.scm:778 +msgid "CSS2 parsing and manipulation library" +msgstr "" + +#: gnu/packages/gnome.scm:780 +msgid "" +"Libcroco is a standalone CSS2 parsing and manipulation library.\n" +"The parser provides a low level event driven SAC-like API and a CSS object\n" +"model like API. Libcroco provides a CSS2 selection engine and an experimental\n" +"XML/CSS rendering engine." +msgstr "" + +#: gnu/packages/gnome.scm:813 +msgid "GNOME's Structured File Library" +msgstr "" + +#: gnu/packages/gnome.scm:815 +msgid "" +"Libgsf aims to provide an efficient extensible I/O abstraction for\n" +"dealing with different structured file formats." +msgstr "" + +#: gnu/packages/gnome.scm:880 +msgid "Render SVG files using Cairo" +msgstr "" + +#: gnu/packages/gnome.scm:882 +msgid "" +"Librsvg is a C library to render SVG files using the Cairo 2D graphics\n" +"library." +msgstr "" + +#: gnu/packages/gnome.scm:906 +msgid "Create trees of CORBA Interface Definition Language files" +msgstr "" + +#: gnu/packages/gnome.scm:907 +msgid "" +"Libidl is a library for creating trees of CORBA Interface\n" +"Definition Language (idl) files, which is a specification for defining\n" +"portable interfaces. libidl was initially written for orbit (the orb from the\n" +"GNOME project, and the primary means of libidl distribution). However, the\n" +"functionality was designed to be as reusable and portable as possible." +msgstr "" + +#: gnu/packages/gnome.scm:944 +msgid "CORBA 2.4-compliant Object Request Broker" +msgstr "" + +#: gnu/packages/gnome.scm:945 +msgid "" +"ORBit2 is a CORBA 2.4-compliant Object Request Broker (orb)\n" +"featuring mature C, C++ and Python bindings." +msgstr "" + +#: gnu/packages/gnome.scm:991 +msgid "Framework for creating reusable components for use in GNOME applications" +msgstr "" + +#: gnu/packages/gnome.scm:992 +msgid "" +"Bonobo is a framework for creating reusable components for\n" +"use in GNOME applications, built on top of CORBA." +msgstr "" + +#: gnu/packages/gnome.scm:1023 +msgid "Store application preferences" +msgstr "" + +#: gnu/packages/gnome.scm:1024 +msgid "" +"Gconf is a system for storing application preferences. It\n" +"is intended for user preferences; not arbitrary data storage." +msgstr "" + +#: gnu/packages/gnome.scm:1046 +msgid "Base MIME and Application database for GNOME" +msgstr "" + +#: gnu/packages/gnome.scm:1047 +msgid "" +"GNOME Mime Data is a module which contains the base MIME\n" +"and Application database for GNOME. The data stored by this module is\n" +"designed to be accessed through the MIME functions in GnomeVFS." +msgstr "" + +#: gnu/packages/gnome.scm:1091 +msgid "Access files and folders in GNOME applications" +msgstr "" + +#: gnu/packages/gnome.scm:1093 +msgid "" +"GnomeVFS is the core library used to access files and folders in GNOME\n" +"applications. It provides a file system abstraction which allows applications\n" +"to access local and remote files with a single consistent API." +msgstr "" + +#: gnu/packages/gnome.scm:1137 +msgid "Useful routines for building applications" +msgstr "" + +#: gnu/packages/gnome.scm:1138 +msgid "" +"The libgnome library provides a number of useful routines\n" +"for building modern applications, including session management, activation of\n" +"files and URIs, and displaying help." +msgstr "" + +#: gnu/packages/gnome.scm:1161 +msgid "2D drawing library" +msgstr "" + +#: gnu/packages/gnome.scm:1162 +msgid "" +"Libart is a 2D drawing library intended as a\n" +"high-quality vector-based 2D library with antialiasing and alpha composition." +msgstr "" + +#: gnu/packages/gnome.scm:1189 +msgid "Flexible widget for creating interactive structured graphics" +msgstr "" + +#: gnu/packages/gnome.scm:1190 +msgid "" +"The GnomeCanvas widget provides a flexible widget for\n" +"creating interactive structured graphics." +msgstr "" + +#: gnu/packages/gnome.scm:1212 +msgid "C++ bindings to the GNOME Canvas library" +msgstr "" + +#: gnu/packages/gnome.scm:1213 +msgid "C++ bindings to the GNOME Canvas library." +msgstr "" + +#: gnu/packages/gnome.scm:1244 +msgid "Additional widgets for applications" +msgstr "" + +#: gnu/packages/gnome.scm:1245 +msgid "" +"The libgnomeui library provides additional widgets for\n" +"applications. Many of the widgets from libgnomeui have already been\n" +"ported to GTK+." +msgstr "" + +#: gnu/packages/gnome.scm:1271 +msgid "Load glade interfaces and access the glade built widgets" +msgstr "" + +#: gnu/packages/gnome.scm:1272 +msgid "" +"Libglade is a library that provides interfaces for loading\n" +"graphical interfaces described in glade files and for accessing the\n" +"widgets built in the loading process." +msgstr "" + +#: gnu/packages/gnome.scm:1309 gnu/packages/gnome.scm:1341 +msgid "Printing framework for GNOME" +msgstr "" + +#: gnu/packages/gnome.scm:1311 +msgid "" +"GNOME-print was a printing framework for GNOME. It has been deprecated\n" +"since ca. 2006, when GTK+ itself incorporated printing support." +msgstr "" + +#: gnu/packages/gnome.scm:1386 +msgid "Some user interface controls using Bonobo" +msgstr "" + +#: gnu/packages/gnome.scm:1387 +msgid "" +"The Bonobo UI library provides a number of user interface\n" +"controls using the Bonobo component framework." +msgstr "" + +#: gnu/packages/gnome.scm:1411 +msgid "Window Navigator Construction Kit" +msgstr "" + +#: gnu/packages/gnome.scm:1413 +msgid "" +"Libwnck is the Window Navigator Construction Kit, a library for use in\n" +"writing pagers, tasklists, and more generally applications that are dealing\n" +"with window management. It tries hard to respect the Extended Window Manager\n" +"Hints specification (EWMH)." +msgstr "" + +#: gnu/packages/gnome.scm:1460 +msgid "Document-centric objects and utilities" +msgstr "" + +#: gnu/packages/gnome.scm:1461 +msgid "A GLib/GTK+ set of document-centric objects and utilities." +msgstr "" + +#: gnu/packages/gnome.scm:1536 +msgid "Spreadsheet application" +msgstr "" + +#: gnu/packages/gnome.scm:1538 +msgid "" +"GNUmeric is a GNU spreadsheet application, running under GNOME. It is\n" +"interoperable with other spreadsheet applications. It has a vast array of\n" +"features beyond typical spreadsheet functionality, such as support for linear\n" +"and non-linear solvers, statistical analysis, and telecommunication\n" +"engineering." +msgstr "" + +#: gnu/packages/gnome.scm:1586 +msgid "Default GNOME 3 themes" +msgstr "" + +#: gnu/packages/gnome.scm:1588 +msgid "The default GNOME 3 themes (Adwaita and some accessibility themes)." +msgstr "" + +#: gnu/packages/gnome.scm:1619 +msgid "Manage encryption keys and passwords in the GNOME keyring" +msgstr "" + +#: gnu/packages/gnome.scm:1621 +msgid "" +"Seahorse is a GNOME application for managing encryption keys and\n" +"passwords in the GNOME keyring." +msgstr "" + +#: gnu/packages/gnome.scm:1655 gnu/packages/gnome.scm:1791 +msgid "Compiler for the GObject type system" +msgstr "" + +#: gnu/packages/gnome.scm:1657 +msgid "" +"Vala is a programming language that aims to bring modern programming\n" +"language features to GNOME developers without imposing any additional runtime\n" +"requirements and without using a different ABI compared to applications and\n" +"libraries written in C." +msgstr "" + +#: gnu/packages/gnome.scm:1687 +msgid "Virtual Terminal Emulator" +msgstr "" + +#: gnu/packages/gnome.scm:1689 +msgid "" +"VTE is a library (libvte) implementing a terminal emulator widget for\n" +"GTK+, and a minimal sample application (vte) using that. Vte is mainly used in\n" +"gnome-terminal, but can also be used to embed a console/terminal in games,\n" +"editors, IDEs, etc." +msgstr "" + +#: gnu/packages/gnome.scm:1765 +msgid "Low-level GNOME configuration system" +msgstr "" + +#: gnu/packages/gnome.scm:1766 +msgid "" +"Dconf is a low-level configuration system. Its main purpose\n" +"is to provide a backend to GSettings on platforms that don't already have\n" +"configuration storage systems." +msgstr "" + +#: gnu/packages/gnome.scm:1793 +msgid "" +"JSON-GLib is a C library based on GLib providing serialization and\n" +"deserialization support for the JavaScript Object Notation (JSON) format\n" +"described by RFC 4627. It provides parser and generator GObject classes and\n" +"various wrappers for the complex data types employed by JSON, such as arrays\n" +"and objects." +msgstr "" + +#: gnu/packages/gnome.scm:1832 +msgid "High-level API for X Keyboard Extension" +msgstr "" + +#: gnu/packages/gnome.scm:1834 +msgid "" +"LibXklavier is a library providing high-level API for X Keyboard\n" +"Extension known as XKB. This library is intended to support XFree86 and other\n" +"commercial X servers. It is useful for creating XKB-related software (layout\n" +"indicators etc)." +msgstr "" + +#: gnu/packages/gnome.scm:1862 +msgid "Python bindings to librsvg" +msgstr "" + +#: gnu/packages/gnome.scm:1864 +msgid "" +"This packages provides Python bindings to librsvg, the SVG rendering\n" +"library." +msgstr "" + +#: gnu/packages/gnome.scm:1913 +msgid "Network-related GIO modules" +msgstr "" + +#: gnu/packages/gnome.scm:1915 +msgid "" +"This package contains various network related extensions for the GIO\n" +"library." +msgstr "" + +#: gnu/packages/gnome.scm:1946 +msgid "RESTful web api query library" +msgstr "" + +#: gnu/packages/gnome.scm:1948 +msgid "" +"This library was designed to make it easier to access web services that\n" +"claim to be \"RESTful\". It includes convenience wrappers for libsoup and\n" +"libxml to ease remote use of the RESTful API." +msgstr "" + +#: gnu/packages/gnome.scm:2012 +msgid "GLib-based HTTP Library" +msgstr "" + +#: gnu/packages/gnome.scm:2014 +msgid "" +"LibSoup is an HTTP client/server library for GNOME. It uses GObjects\n" +"and the GLib main loop, to integrate well with GNOME applications." +msgstr "" + +#: gnu/packages/gnome.scm:2059 +msgid "GObject bindings for \"Secret Service\" API" +msgstr "" + +#: gnu/packages/gnome.scm:2061 +msgid "" +"Libsecret is a GObject based library for storing and retrieving passwords\n" +"and other secrets. It communicates with the \"Secret Service\" using DBus." +msgstr "" + +#: gnu/packages/gnome.scm:2105 +msgid "Minesweeper game" +msgstr "" + +#: gnu/packages/gnome.scm:2107 +msgid "" +"Mines (previously gnomine) is a puzzle game where you locate mines\n" +"floating in an ocean using only your brain and a little bit of luck." +msgstr "" + +#: gnu/packages/gnome.scm:2151 +msgid "Terminal emulator" +msgstr "" + +#: gnu/packages/gnome.scm:2153 +msgid "" +"GNOME Terminal is a terminal emulator application for accessing a\n" +"UNIX shell environment which can be used to run programs available on\n" +"your system.\n" +"\n" +"It supports several profiles, multiple tabs and implements several\n" +"keyboard shortcuts." +msgstr "" + +#: gnu/packages/gnome.scm:2218 +msgid "Color management service" +msgstr "" + +#: gnu/packages/gnome.scm:2219 +msgid "" +"Colord is a system service that makes it easy to manage,\n" +"install and generate color profiles to accurately color manage input and\n" +"output devices." +msgstr "" + +#: gnu/packages/gnome.scm:2261 +msgid "Geolocation service" +msgstr "" + +#: gnu/packages/gnome.scm:2262 +msgid "" +"Geoclue is a D-Bus service that provides location\n" +"information. The primary goal of the Geoclue project is to make creating\n" +"location-aware applications as simple as possible, while the secondary goal is\n" +"to ensure that no application can access location information without explicit\n" +"permission from user." +msgstr "" + +#: gnu/packages/gnome.scm:2298 +msgid "Geocoding and reverse-geocoding library" +msgstr "" + +#: gnu/packages/gnome.scm:2300 +msgid "" +"geocode-glib is a convenience library for geocoding (finding longitude,\n" +"and latitude from an address) and reverse geocoding (finding an address from\n" +"coordinates) using the Nominatim service. geocode-glib caches requests for\n" +"faster results and to avoid unnecessary server load." +msgstr "" + +#: gnu/packages/gnome.scm:2347 +msgid "System daemon for managing power devices" +msgstr "" + +#: gnu/packages/gnome.scm:2349 +msgid "" +"UPower is an abstraction for enumerating power devices,\n" +"listening to device events and querying history and statistics. Any\n" +"application or service on the system can access the org.freedesktop.UPower\n" +"service via the system message bus." +msgstr "" + +#: gnu/packages/gnome.scm:2395 +msgid "Location, time zone, and weather library for GNOME" +msgstr "" + +#: gnu/packages/gnome.scm:2397 +msgid "" +"libgweather is a library to access weather information from online\n" +"services for numerous locations." +msgstr "" + +#: gnu/packages/gnome.scm:2449 +msgid "GNOME settings daemon" +msgstr "" + +#: gnu/packages/gnome.scm:2451 +msgid "" +"This package contains the daemon responsible for setting the various\n" +"parameters of a GNOME session and the applications that run under it. It\n" +"handles settings such keyboard layout, shortcuts, and accessibility, clipboard\n" +"settings, themes, mouse settings, and startup of other daemons." +msgstr "" + +#: gnu/packages/gnome.scm:2487 +msgid "Library to parse and save media playlists for GNOME" +msgstr "" + +#: gnu/packages/gnome.scm:2488 +msgid "" +"Totem-pl-parser is a GObjects-based library to parse and save\n" +"playlists in a variety of formats." +msgstr "" + +#: gnu/packages/gnome.scm:2522 +msgid "Solitaire card games" +msgstr "" + +#: gnu/packages/gnome.scm:2524 +msgid "" +"Aisleriot (also known as Solitaire or sol) is a collection of card games\n" +"which are easy to play with the aid of a mouse." +msgstr "" + +#: gnu/packages/gnome.scm:2548 +msgid "API documentation browser for GNOME" +msgstr "" + +#: gnu/packages/gnome.scm:2550 +msgid "" +"Devhelp is an API documentation browser for GTK+ and GNOME. It works\n" +"natively with GTK-Doc (the API reference system developed for GTK+ and used\n" +"throughout GNOME for API documentation)." +msgstr "" + +#: gnu/packages/gnome.scm:2611 +msgid "Object oriented GL/GLES Abstraction/Utility Layer" +msgstr "" + +#: gnu/packages/gnome.scm:2613 +msgid "" +"Cogl is a small library for using 3D graphics hardware to draw pretty\n" +"pictures. The API departs from the flat state machine style of OpenGL and is\n" +"designed to make it easy to write orthogonal components that can render\n" +"without stepping on each others toes." +msgstr "" + +#: gnu/packages/gnome.scm:2668 +msgid "Open GL based interactive canvas library" +msgstr "" + +#: gnu/packages/gnome.scm:2670 gnu/packages/gnome.scm:2698 +msgid "" +"Clutter is an Open GL based interactive canvas library, designed for\n" +"creating fast, mainly 2D single window applications such as media box UIs,\n" +"presentations, kiosk style applications and so on." +msgstr "" + +#: gnu/packages/gnome.scm:2696 +msgid "Open GL based interactive canvas library GTK+ widget" +msgstr "" + +#: gnu/packages/gnome.scm:2726 +msgid "Integration library for using GStreamer with Clutter" +msgstr "" + +#: gnu/packages/gnome.scm:2728 +msgid "" +"Clutter-Gst is an integration library for using GStreamer with Clutter.\n" +"It provides a GStreamer sink to upload frames to GL and an actor that\n" +"implements the ClutterGstPlayer interface using playbin. Clutter is an Open\n" +"GL based interactive canvas library." +msgstr "" + +#: gnu/packages/gnome.scm:2758 +msgid "C library providing a ClutterActor to display maps" +msgstr "" + +#: gnu/packages/gnome.scm:2760 +msgid "" +"libchamplain is a C library providing a ClutterActor to display maps.\n" +"It also provides a Gtk+ widget to display maps in Gtk+ applications. Python\n" +"and Perl bindings are also available. It supports numerous free map sources\n" +"such as OpenStreetMap, OpenCycleMap, OpenAerialMap, and Maps for free." +msgstr "" + +#: gnu/packages/gnome.scm:2791 +msgid "Object mapper from GObjects to SQLite" +msgstr "" + +#: gnu/packages/gnome.scm:2793 +msgid "" +"Gom provides an object mapper from GObjects to SQLite. It helps you\n" +"write applications that need to store structured data as well as make complex\n" +"queries upon that data." +msgstr "" + +#: gnu/packages/gnome.scm:2821 +msgid "Sliding block puzzles" +msgstr "" + +#: gnu/packages/gnome.scm:2823 +msgid "" +"GNOME Klotski is a set of block sliding puzzles. The objective is to move\n" +"the patterned block to the area bordered by green markers. To do so, you will\n" +"need to slide other blocks out of the way. Complete each puzzle in as few moves\n" +"as possible!" +msgstr "" + +#: gnu/packages/gnome.scm:2874 +msgid "Framework for discovering and browsing media" +msgstr "" + +#: gnu/packages/gnome.scm:2876 gnu/packages/gnome.scm:2928 +msgid "" +"Grilo is a framework focused on making media discovery and browsing easy\n" +"for application developers." +msgstr "" + +#: gnu/packages/gnome.scm:2926 +msgid "Plugins for the Grilo media discovery library" +msgstr "" + +#: gnu/packages/gnome.scm:3003 +msgid "Simple media player for GNOME based on GStreamer" +msgstr "" + +#: gnu/packages/gnome.scm:3004 +msgid "" +"Totem is a simple yet featureful media player for GNOME\n" +"which can read a large number of file formats." +msgstr "" + +#: gnu/packages/gnome.scm:3093 +msgid "Music player for GNOME" +msgstr "" + +#: gnu/packages/gnome.scm:3094 +msgid "" +"Rhythmbox is a music playing application for GNOME. It\n" +"supports playlists, song ratings, and any codecs installed through gstreamer." +msgstr "" + +#: gnu/packages/gnome.scm:3144 +msgid "GNOME image viewer" +msgstr "" + +#: gnu/packages/gnome.scm:3145 +msgid "" +"Eye of GNOME is the GNOME image viewer. It\n" +"supports image conversion, rotation, and slideshows." +msgstr "" + +#: gnu/packages/gnome.scm:3170 +msgid "GObject bindings for libudev" +msgstr "" + +#: gnu/packages/gnome.scm:3172 +msgid "" +"This library provides GObject bindings for libudev. It was originally\n" +"part of udev-extras, then udev, then systemd. It's now a project on its own." +msgstr "" + +#: gnu/packages/gnome.scm:3217 +msgid "Userspace virtual filesystem for GIO" +msgstr "" + +#: gnu/packages/gnome.scm:3219 +msgid "" +"GVFS is a userspace virtual filesystem designed to work with the I/O\n" +"abstraction of GIO. It contains a GIO module that seamlessly adds GVFS support\n" +"to all applications using the GIO API. It also supports exposing the GVFS\n" +"mounts to non-GIO applications using FUSE.\n" +"\n" +"GVFS comes with a set of backends, including trash support, SFTP, SMB, HTTP,\n" +"DAV, and others." +msgstr "" + +#: gnu/packages/gnome.scm:3265 +msgid "A GLib binding for libusb1" +msgstr "" + +#: gnu/packages/gnome.scm:3267 +msgid "" +"GUsb is a GObject wrapper for libusb1 that makes it easy to do\n" +"asynchronous control, bulk and interrupt transfers with proper cancellation\n" +"and integration into a mainloop. This makes it easy to integrate low level\n" +"USB transfers with your high-level application or system daemon." +msgstr "" + +#: gnu/packages/gnome.scm:3304 +msgid "Document and image scanner" +msgstr "" + +#: gnu/packages/gnome.scm:3305 +msgid "" +"Simple Scan is an easy-to-use application, designed to let\n" +"users connect their scanner and quickly have the image/document in an\n" +"appropriate format. Simple Scan is basically a frontend for SANE - which is\n" +"the same backend as XSANE uses. This means that all existing scanners will\n" +"work and the interface is well tested." +msgstr "" + +#: gnu/packages/gnome.scm:3354 +msgid "GNOME web browser" +msgstr "" + +#: gnu/packages/gnome.scm:3356 +msgid "" +"Epiphany is a GNOME web browser targeted at non-technical users. Its\n" +"principles are simplicity and standards compliance." +msgstr "" + +#: gnu/packages/gnome.scm:3412 +msgid "D-Bus debugger" +msgstr "" + +#: gnu/packages/gnome.scm:3414 +msgid "" +"D-Feet is a D-Bus debugger, which can be used to inspect D-Bus interfaces\n" +"of running programs and invoke methods on those interfaces." +msgstr "" + +#: gnu/packages/gnome.scm:3436 +msgid "XSL stylesheets for Yelp" +msgstr "" + +#: gnu/packages/gnome.scm:3438 +msgid "" +"Yelp-xsl contains XSL stylesheets that are used by the yelp help browser\n" +"to format Docbook and Mallard documents." +msgstr "" + +#: gnu/packages/gnome.scm:3470 +msgid "GNOME help browser" +msgstr "" + +#: gnu/packages/gnome.scm:3472 +msgid "" +"Yelp is the help viewer in Gnome. It natively views Mallard, DocBook,\n" +"man, info, and HTML documents. It can locate documents according to the\n" +"freedesktop.org help system specification." +msgstr "" + +#: gnu/packages/gnome.scm:3500 +msgid "Yelp documentation tools" +msgstr "" + +#: gnu/packages/gnome.scm:3502 +msgid "" +"Yelp-tools is a collection of scripts and build utilities to help create,\n" +"manage, and publish documentation for Yelp and the web. Most of the heavy\n" +"lifting is done by packages like yelp-xsl and itstool. This package just\n" +"wraps things up in a developer-friendly way." +msgstr "" + +#: gnu/packages/gnome.scm:3539 +msgid "GObject collection library" +msgstr "" + +#: gnu/packages/gnome.scm:3541 +msgid "" +"Libgee is a utility library providing GObject-based interfaces and\n" +"classes for commonly used data structures." +msgstr "" + +#: gnu/packages/gnome.scm:3568 +msgid "GObject wrapper around the Exiv2 photo metadata library" +msgstr "" + +#: gnu/packages/gnome.scm:3570 +msgid "" +"Gexiv2 is a GObject wrapper around the Exiv2 photo metadata library. It\n" +"allows for GNOME applications to easily inspect and update EXIF, IPTC, and XMP\n" +"metadata in photo and video files of various formats." +msgstr "" + +#: gnu/packages/gnome.scm:3622 +msgid "Photo manager for GNOME 3" +msgstr "" + +#: gnu/packages/gnome.scm:3624 +msgid "" +"Shotwell is a digital photo manager designed for the GNOME desktop\n" +"environment. It allows you to import photos from disk or camera, organize\n" +"them by keywords and events, view them in full-window or fullscreen mode, and\n" +"share them with others via social networking and more." +msgstr "" + +#: gnu/packages/gnome.scm:3656 +msgid "Graphical archive manager for GNOME" +msgstr "" + +#: gnu/packages/gnome.scm:3657 +msgid "" +"File Roller is an archive manager for the GNOME desktop\n" +"environment that allows users to view, unpack, and create compressed archives\n" +"such as gzip tarballs." +msgstr "" + +#: gnu/packages/gnuzilla.scm:90 +msgid "Mozilla javascript engine" +msgstr "" + +#: gnu/packages/gnuzilla.scm:91 +msgid "" +"SpiderMonkey is Mozilla's JavaScript engine written\n" +"in C/C++." +msgstr "" + +#: gnu/packages/gnuzilla.scm:123 +msgid "Netscape API for system level and libc-like functions" +msgstr "" + +#: gnu/packages/gnuzilla.scm:124 +msgid "" +"Netscape Portable Runtime (NSPR) provides a\n" +"platform-neutral API for system level and libc-like functions. It is used\n" +"in the Mozilla clients." +msgstr "" + +#: gnu/packages/gnuzilla.scm:219 +msgid "Network Security Services" +msgstr "" + +#: gnu/packages/gnuzilla.scm:221 +msgid "" +"Network Security Services (NSS) is a set of libraries designed to support\n" +"cross-platform development of security-enabled client and server applications.\n" +"Applications built with NSS can support SSL v2 and v3, TLS, PKCS #5, PKCS #7,\n" +"PKCS #11, PKCS #12, S/MIME, X.509 v3 certificates, and other security\n" +"standards." +msgstr "" + +#: gnu/packages/gnuzilla.scm:453 +msgid "Entirely free browser derived from Mozilla Firefox" +msgstr "" + +#: gnu/packages/gnuzilla.scm:455 +msgid "" +"IceCat is the GNU version of the Firefox browser. It is entirely free\n" +"software, which does not recommend non-free plugins and addons. It also\n" +"features built-in privacy-protecting features." +msgstr "" + +#: gnu/packages/gtk.scm:84 +msgid "GNOME accessibility toolkit" +msgstr "" + +#: gnu/packages/gtk.scm:86 +msgid "" +"ATK provides the set of accessibility interfaces that are implemented\n" +"by other toolkits and applications. Using the ATK interfaces, accessibility\n" +"tools have full access to view and control running applications." +msgstr "" + +#: gnu/packages/gtk.scm:125 +msgid "2D graphics library" +msgstr "" + +#: gnu/packages/gtk.scm:127 +msgid "" +"Cairo is a 2D graphics library with support for multiple output devices.\n" +"Currently supported output targets include the X Window System (via both\n" +"Xlib and XCB), Quartz, Win32, image buffers, PostScript, PDF, and SVG file\n" +"output. Experimental backends include OpenGL, BeOS, OS/2, and DirectFB.\n" +"\n" +"Cairo is designed to produce consistent output on all output media while\n" +"taking advantage of display hardware acceleration when available\n" +"eg. through the X Render Extension).\n" +"\n" +"The cairo API provides operations similar to the drawing operators of\n" +"PostScript and PDF. Operations in cairo including stroking and filling cubic\n" +"Bézier splines, transforming and compositing translucent images, and\n" +"antialiased text rendering. All drawing operations can be transformed by any\n" +"affine transformation (scale, rotation, shear, etc.)." +msgstr "" + +#: gnu/packages/gtk.scm:175 +msgid "OpenType text shaping engine" +msgstr "" + +#: gnu/packages/gtk.scm:177 +msgid "HarfBuzz is an OpenType text shaping engine." +msgstr "" + +#: gnu/packages/gtk.scm:208 +msgid "GNOME text and font handling library" +msgstr "" + +#: gnu/packages/gtk.scm:210 +msgid "" +"Pango is the core text and font handling library used in GNOME\n" +"applications. It has extensive support for the different writing systems\n" +"used throughout the world." +msgstr "" + +#: gnu/packages/gtk.scm:236 +msgid "Obsolete pango functions" +msgstr "" + +#: gnu/packages/gtk.scm:237 +msgid "" +"Pangox was a X backend to pango. It is now obsolete and no\n" +"longer provided by recent pango releases. pangox-compat provides the\n" +"functions which were removed." +msgstr "" + +#: gnu/packages/gtk.scm:271 +msgid "GTK+ widget for interactive graph-like environments" +msgstr "" + +#: gnu/packages/gtk.scm:273 +msgid "" +"Ganv is an interactive GTK+ widget for interactive “boxes and lines” or\n" +"graph-like environments, e.g. modular synths or finite state machine\n" +"diagrams." +msgstr "" + +#: gnu/packages/gtk.scm:323 +msgid "Widget that extends the standard GTK+ 2.x 'GtkTextView' widget" +msgstr "" + +#: gnu/packages/gtk.scm:325 +msgid "" +"GtkSourceView is a portable C library that extends the standard GTK+\n" +"framework for multiline text editing with support for configurable syntax\n" +"highlighting, unlimited undo/redo, search and replace, a completion framework,\n" +"printing and other features typical of a source code editor." +msgstr "" + +#: gnu/packages/gtk.scm:374 +msgid "GNOME image loading and manipulation library" +msgstr "" + +#: gnu/packages/gtk.scm:376 +msgid "" +"GdkPixbuf is a library for image loading and manipulation developed\n" +"in the GNOME project." +msgstr "" + +#: gnu/packages/gtk.scm:417 +msgid "Assistive Technology Service Provider Interface, core components" +msgstr "" + +#: gnu/packages/gtk.scm:419 +msgid "" +"The Assistive Technology Service Provider Interface, core components,\n" +"is part of the GNOME accessibility project." +msgstr "" + +#: gnu/packages/gtk.scm:451 +msgid "Assistive Technology Service Provider Interface, ATK bindings" +msgstr "" + +#: gnu/packages/gtk.scm:453 +msgid "" +"The Assistive Technology Service Provider Interface\n" +"is part of the GNOME accessibility project." +msgstr "" + +#: gnu/packages/gtk.scm:505 +msgid "Cross-platform toolkit for creating graphical user interfaces" +msgstr "" + +#: gnu/packages/gtk.scm:507 +msgid "" +"GTK+, or the GIMP Toolkit, is a multi-platform toolkit for creating\n" +"graphical user interfaces. Offering a complete set of widgets, GTK+ is\n" +"suitable for projects ranging from small one-off tools to complete\n" +"application suites." +msgstr "" + +#: gnu/packages/gtk.scm:630 +msgid "Cairo bindings for GNU Guile" +msgstr "" + +#: gnu/packages/gtk.scm:632 +msgid "" +"Guile-Cairo wraps the Cairo graphics library for Guile Scheme.\n" +"Guile-Cairo is complete, wrapping almost all of the Cairo API. It is API\n" +"stable, providing a firm base on which to do graphics work. Finally, and\n" +"importantly, it is pleasant to use. You get a powerful and well-maintained\n" +"graphics library with all of the benefits of Scheme: memory management,\n" +"exceptions, macros, and a dynamic programming environment." +msgstr "" + +#: gnu/packages/gtk.scm:672 +msgid "Render SVG images using Cairo from Guile" +msgstr "" + +#: gnu/packages/gtk.scm:674 +msgid "" +"Guile-RSVG wraps the RSVG library for Guile, allowing you to render SVG\n" +"images onto Cairo surfaces." +msgstr "" + +#: gnu/packages/gtk.scm:718 +msgid "Create SVG or PDF presentations in Guile" +msgstr "" + +#: gnu/packages/gtk.scm:720 +msgid "" +"Guile-Present defines a declarative vocabulary for presentations,\n" +"together with tools to render presentation documents as SVG or PDF.\n" +"Guile-Present can be used to make presentations programmatically, but also\n" +"includes a tools to generate PDF presentations out of Org mode and Texinfo\n" +"documents." +msgstr "" + +#: gnu/packages/gtk.scm:753 +msgid "C++ bindings to the Cairo 2D graphics library" +msgstr "" + +#: gnu/packages/gtk.scm:755 +msgid "" +"Cairomm provides a C++ programming interface to the Cairo 2D graphics\n" +"library." +msgstr "" + +#: gnu/packages/gtk.scm:779 +msgid "C++ interface to the Pango text rendering library" +msgstr "" + +#: gnu/packages/gtk.scm:781 +msgid "" +"Pangomm provides a C++ programming interface to the Pango text rendering\n" +"library." +msgstr "" + +#: gnu/packages/gtk.scm:802 +msgid "C++ interface to the ATK accessibility library" +msgstr "" + +#: gnu/packages/gtk.scm:804 +msgid "" +"ATKmm provides a C++ programming interface to the ATK accessibility\n" +"toolkit." +msgstr "" + +#: gnu/packages/gtk.scm:830 +msgid "C++ interface to the GTK+ graphical user interface library" +msgstr "" + +#: gnu/packages/gtk.scm:832 +msgid "" +"gtkmm is the official C++ interface for the popular GUI library GTK+.\n" +"Highlights include typesafe callbacks, and a comprehensive set of widgets that\n" +"are easily extensible via inheritance. You can create user interfaces either\n" +"in code or with the Glade User Interface designer, using libglademm. There's\n" +"extensive documentation, including API reference and a tutorial." +msgstr "" + +#: gnu/packages/gtk.scm:888 +msgid "Python bindings for cairo" +msgstr "" + +#: gnu/packages/gtk.scm:890 +msgid "Pycairo is a set of Python bindings for the Cairo graphics library." +msgstr "" + +#: gnu/packages/gtk.scm:964 +msgid "Python bindings for GTK+" +msgstr "" + +#: gnu/packages/gtk.scm:966 +msgid "" +"PyGTK allows you to write full featured GTK programs in Python. It is\n" +"targetted at GTK 2.x, and can be used in conjunction with gnome-python to\n" +"write GNOME applications." +msgstr "" + +#: gnu/packages/gtk.scm:997 +msgid "Library for minimalistic gtk+3 user interfaces" +msgstr "" + +#: gnu/packages/gtk.scm:998 +msgid "" +"Girara is a library that implements a user interface that\n" +"focuses on simplicity and minimalism. Currently based on GTK+, a\n" +"cross-platform widget toolkit, it provides an interface that focuses on three\n" +"main components: a so-called view widget that represents the actual\n" +"application, an input bar that is used to execute commands of the\n" +"application and the status bar which provides the user with current\n" +"information." +msgstr "" + +#: gnu/packages/gtk.scm:1041 +msgid "Documentation generator from C source code" +msgstr "" + +#: gnu/packages/gtk.scm:1043 +msgid "" +"GTK-Doc generates API documentation from comments added to C code. It is\n" +"typically used to document the public API of GTK+ and GNOME libraries, but it\n" +"can also be used to document application code." +msgstr "" + +#: gnu/packages/guile.scm:107 gnu/packages/guile.scm:174 +msgid "Scheme implementation intended especially for extensions" +msgstr "" + +#: gnu/packages/guile.scm:109 gnu/packages/guile.scm:176 +msgid "" +"Guile is the GNU Ubiquitous Intelligent Language for Extensions, the\n" +"official extension language of the GNU system. It is an implementation of\n" +"the Scheme language which can be easily embedded in other applications to\n" +"provide a convenient means of extending the functionality of the application\n" +"without requiring the source code to be rewritten." +msgstr "" + +#: gnu/packages/guile.scm:217 +msgid "Snapshot of what will become version 2.2 of GNU Guile" +msgstr "" + +#: gnu/packages/guile.scm:264 +msgid "Framework for building readers for GNU Guile" +msgstr "" + +#: gnu/packages/guile.scm:266 +msgid "" +"Guile-Reader is a simple framework for building readers for GNU Guile.\n" +"\n" +"The idea is to make it easy to build procedures that extend Guile’s read\n" +"procedure. Readers supporting various syntax variants can easily be written,\n" +"possibly by re-using existing “token readers” of a standard Scheme\n" +"readers. For example, it is used to implement Skribilo’s R5RS-derived\n" +"document syntax.\n" +"\n" +"Guile-Reader’s approach is similar to Common Lisp’s “read table”, but\n" +"hopefully more powerful and flexible (for instance, one may instantiate as\n" +"many readers as needed)." +msgstr "" + +#: gnu/packages/guile.scm:311 +msgid "Guile bindings to ncurses" +msgstr "" + +#: gnu/packages/guile.scm:313 +msgid "" +"guile-ncurses provides Guile language bindings for the ncurses\n" +"library." +msgstr "" + +#: gnu/packages/guile.scm:333 +msgid "Run jobs at scheduled times" +msgstr "" + +#: gnu/packages/guile.scm:335 +msgid "" +"GNU Mcron is a complete replacement for Vixie cron. It is used to run\n" +"tasks on a schedule, such as every hour or every Monday. Mcron is written in\n" +"Guile, so its configuration can be written in Scheme; the original cron\n" +"format is also supported." +msgstr "" + +#: gnu/packages/guile.scm:363 +msgid "Collection of useful Guile Scheme modules" +msgstr "" + +#: gnu/packages/guile.scm:365 +msgid "" +"Guile-Lib is intended as an accumulation place for pure-scheme Guile\n" +"modules, allowing for people to cooperate integrating their generic Guile\n" +"modules into a coherent library. Think \"a down-scaled, limited-scope CPAN\n" +"for Guile\"." +msgstr "" + +#: gnu/packages/guile.scm:396 +msgid "JSON module for Guile" +msgstr "" + +#: gnu/packages/guile.scm:398 +msgid "" +"Guile-json supports parsing and building JSON documents according to the\n" +"http:://json.org specification. These are the main features:\n" +"- Strictly complies to http://json.org specification.\n" +"- Build JSON documents programmatically via macros.\n" +"- Unicode support for strings.\n" +"- Allows JSON pretty printing." +msgstr "" + +#: gnu/packages/guile.scm:468 +msgid "MiniKanren declarative logic system, packaged for Guile" +msgstr "" + +#: gnu/packages/guile.scm:470 +msgid "" +"MiniKanren is a relational programming extension to the Scheme\n" +"programming Language, written as a smaller version of Kanren suitable for\n" +"pedagogical purposes. It is featured in the book, The Reasoned Schemer,\n" +"written by Dan Friedman, William Byrd, and Oleg Kiselyov.\n" +"\n" +"This is Ian Price's r6rs packaged version of miniKanren, which deviates\n" +"slightly from miniKanren mainline.\n" +"\n" +"See http://minikanren.org/ for more on miniKanren generally." +msgstr "" + +#: gnu/packages/guile.scm:540 +msgid "Guile bindings to the GDBM library via Guile's FFI" +msgstr "" + +#: gnu/packages/guile.scm:542 +msgid "" +"Guile bindings to the GDBM key-value storage system, using\n" +"Guile's foreign function interface." +msgstr "" + +#: gnu/packages/guile.scm:560 +msgid "Functional static site generator" +msgstr "" + +#: gnu/packages/guile.scm:561 +msgid "" +"Haunt is a static site generator written in Guile\n" +"Scheme. Haunt features a functional build system and an extensible\n" +"interface for reading articles in any format." +msgstr "" + +#: gnu/packages/guile.scm:591 +msgid "Redis client library for Guile" +msgstr "" + +#: gnu/packages/guile.scm:592 +msgid "" +"Guile-redis provides a Scheme interface to the Redis\n" +"key-value cache and store." +msgstr "" + +#: gnu/packages/guile.scm:666 +msgid "wisp is a whitespace to lisp syntax for Guile" +msgstr "" + +#: gnu/packages/guile.scm:667 +msgid "" +"wisp is a syntax for Guile which provides a Python-like\n" +"whitespace-significant language. It may be easier on the eyes for some\n" +"users and in some situations." +msgstr "" + +#: gnu/packages/imagemagick.scm:99 +msgid "Create, edit, compose, or convert bitmap images" +msgstr "" + +#: gnu/packages/imagemagick.scm:101 +msgid "" +"ImageMagick® is a software suite to create, edit, compose, or convert\n" +"bitmap images. It can read and write images in a variety of formats (over 100)\n" +"including DPX, EXR, GIF, JPEG, JPEG-2000, PDF, PhotoCD, PNG, Postscript, SVG,\n" +"and TIFF. Use ImageMagick to resize, flip, mirror, rotate, distort, shear and\n" +"transform images, adjust image colors, apply various special effects, or draw\n" +"text, lines, polygons, ellipses and Bézier curves." +msgstr "" + +#: gnu/packages/imagemagick.scm:145 +msgid "Perl interface to ImageMagick" +msgstr "" + +#: gnu/packages/imagemagick.scm:146 +msgid "" +"This Perl extension allows the reading, manipulation and\n" +"writing of a large number of image file formats using the ImageMagick library.\n" +"Use it to create, edit, compose, or convert bitmap images from within a Perl\n" +"script." +msgstr "" + +#: gnu/packages/image.scm:69 +msgid "Library for handling PNG files" +msgstr "" + +#: gnu/packages/image.scm:71 +msgid "" +"Libpng is the official PNG (Portable Network Graphics) reference\n" +"library. It supports almost all PNG features and is extensible." +msgstr "" + +#: gnu/packages/image.scm:87 +msgid "Library for handling JPEG files" +msgstr "" + +#: gnu/packages/image.scm:89 +msgid "" +"Libjpeg implements JPEG image encoding, decoding, and transcoding.\n" +"JPEG is a standardized compression method for full-color and gray-scale\n" +"images.\n" +"The included programs provide conversion between the JPEG format and\n" +"image files in PBMPLUS PPM/PGM, GIF, BMP, and Targa file formats." +msgstr "" + +#: gnu/packages/image.scm:128 +msgid "Library for handling TIFF files" +msgstr "" + +#: gnu/packages/image.scm:130 +msgid "" +"Libtiff provides support for the Tag Image File Format (TIFF), a format\n" +"used for storing image data.\n" +"Included are a library, libtiff, for reading and writing TIFF and a small\n" +"collection of tools for doing simple manipulations of TIFF images." +msgstr "" + +#: gnu/packages/image.scm:173 +msgid "Library for reading images in the Microsoft WMF format" +msgstr "" + +#: gnu/packages/image.scm:175 +msgid "" +"libwmf is a library for reading vector images in Microsoft's native\n" +"Windows Metafile Format (WMF) and for either (a) displaying them in, e.g., an X\n" +"window; or (b) converting them to more standard/free file formats such as, e.g.,\n" +"the W3C's XML-based Scaleable Vector Graphic (SVG) format." +msgstr "" + +#: gnu/packages/image.scm:233 +msgid "Library and tools for image processing and analysis" +msgstr "" + +#: gnu/packages/image.scm:235 +msgid "" +"Leptonica is a C library and set of command-line tools for efficient\n" +"image processing and image analysis operations. It supports rasterop, affine\n" +"transformations, binary and grayscale morphology, rank order, and convolution,\n" +"seedfill and connected components, image transformations combining changes in\n" +"scale and pixel depth, and pixelwise masking, blending, enhancement, and\n" +"arithmetic ops." +msgstr "" + +#: gnu/packages/image.scm:258 +msgid "Decoder of the JBIG2 image compression format" +msgstr "" + +#: gnu/packages/image.scm:260 +msgid "" +"JBIG2 is designed for lossy or lossless encoding of 'bilevel' (1-bit\n" +"monochrome) images at moderately high resolution, and in particular scanned\n" +"paper documents. In this domain it is very efficient, offering compression\n" +"ratios on the order of 100:1.\n" +"\n" +"This is a decoder only implementation, and currently is in the alpha\n" +"stage, meaning it doesn't completely work yet. However, it is\n" +"maintaining parity with available encoders, so it is useful for real\n" +"work." +msgstr "" + +#: gnu/packages/image.scm:295 +msgid "JPEG 2000 codec" +msgstr "" + +#: gnu/packages/image.scm:297 +msgid "" +"The OpenJPEG library is a JPEG 2000 codec written in C. It has\n" +"been developed in order to promote the use of JPEG 2000, the new\n" +"still-image compression standard from the Joint Photographic Experts\n" +"Group (JPEG).\n" +"\n" +"In addition to the basic codec, various other features are under\n" +"development, among them the JP2 and MJ2 (Motion JPEG 2000) file formats,\n" +"an indexing tool useful for the JPIP protocol, JPWL-tools for\n" +"error-resilience, a Java-viewer for j2k-images, ..." +msgstr "" + +#: gnu/packages/image.scm:376 +msgid "Tools and library for working with GIF images" +msgstr "" + +#: gnu/packages/image.scm:378 +msgid "" +"GIFLIB is a library for reading and writing GIF images. It is API and\n" +"ABI compatible with libungif which was in wide use while the LZW compression\n" +"algorithm was patented. Tools are also included to convert, manipulate,\n" +"compose, and analyze GIF images." +msgstr "" + +#: gnu/packages/image.scm:399 +msgid "GIF decompression library" +msgstr "GIF-dekomprimeringsbibliotek" + +#: gnu/packages/image.scm:401 +msgid "libungif is the old GIF decompression library by the GIFLIB project." +msgstr "libungif er det gamle GIF-dekomprimeringsbibliotek af GIFLIB-projektet." + +#: gnu/packages/image.scm:430 +msgid "Loading, saving, rendering and manipulating image files" +msgstr "Indlæs, gem, optegn og manipuler billedfiler" + +#: gnu/packages/image.scm:432 +msgid "" +"Imlib2 is a library that does image file loading and saving as well as\n" +"rendering, manipulation, arbitrary polygon support, etc.\n" +"\n" +"It does ALL of these operations FAST. Imlib2 also tries to be highly\n" +"intelligent about doing them, so writing naive programs can be done easily,\n" +"without sacrificing speed.\n" +"\n" +"This is a complete rewrite over the Imlib 1.x series. The architecture is\n" +"more modular, simple, and flexible." +msgstr "" + +#: gnu/packages/image.scm:460 +msgid "Wrapper library for imlib2" +msgstr "" + +#: gnu/packages/image.scm:462 +msgid "" +"Giblib is a simple library which wraps imlib2's context API, avoiding\n" +"all the context_get/set calls, adds fontstyles to the truetype renderer and\n" +"supplies a generic doubly-linked list and some string functions." +msgstr "" + +#: gnu/packages/image.scm:502 +msgid "Library for handling popular graphics image formats" +msgstr "" + +#: gnu/packages/image.scm:504 +msgid "" +"FreeImage is a library for developers who would like to support popular\n" +"graphics image formats like PNG, BMP, JPEG, TIFF and others." +msgstr "" + +#: gnu/packages/image.scm:554 +msgid "Computer vision library" +msgstr "" + +#: gnu/packages/image.scm:556 +msgid "" +"VIGRA stands for Vision with Generic Algorithms. It is an image\n" +"processing and analysis library that puts its main emphasis on customizable\n" +"algorithms and data structures. It is particularly strong for\n" +"multi-dimensional image processing." +msgstr "" + +#: gnu/packages/image.scm:587 +msgid "Lossless and lossy image compression" +msgstr "" + +#: gnu/packages/image.scm:589 +msgid "" +"WebP is a new image format that provides lossless and lossy compression\n" +"for images. WebP lossless images are 26% smaller in size compared to\n" +"PNGs. WebP lossy images are 25-34% smaller in size compared to JPEG images at\n" +"equivalent SSIM index. WebP supports lossless transparency (also known as\n" +"alpha channel) with just 22% additional bytes. Transparency is also supported\n" +"with lossy compression and typically provides 3x smaller file sizes compared\n" +"to PNG when lossy compression is acceptable for the red/green/blue color\n" +"channels." +msgstr "" + +#: gnu/packages/image.scm:617 +msgid "Library for handling MNG files" +msgstr "" + +#: gnu/packages/image.scm:619 +msgid "Libmng is the MNG (Multiple-image Network Graphics) reference library." +msgstr "" + +#: gnu/packages/inkscape.scm:84 +msgid "Vector graphics editor" +msgstr "" + +#: gnu/packages/inkscape.scm:85 +msgid "" +"Inkscape is a vector graphics editor. What sets Inkscape\n" +"apart is its use of Scalable Vector Graphics (SVG), an XML-based W3C standard,\n" +"as the native format." +msgstr "" + +#: gnu/packages/jemalloc.scm:47 +msgid "General-purpose scalable concurrent malloc implementation" +msgstr "" + +#: gnu/packages/jemalloc.scm:49 +msgid "" +"This library providing a malloc(3) implementation that emphasizes\n" +"fragmentation avoidance and scalable concurrency support." +msgstr "" + +#: gnu/packages/key-mon.scm:65 +msgid "Show keyboard and mouse status" +msgstr "" + +#: gnu/packages/key-mon.scm:67 +msgid "" +"The key-mon utility displays the current keyboard and mouse status.\n" +"This is useful for teaching and screencasts." +msgstr "" + +#: gnu/packages/less.scm:41 +msgid "Paginator for terminals" +msgstr "" + +#: gnu/packages/less.scm:43 +msgid "" +"GNU less is a pager, a program that allows you to view large amounts\n" +"of text in page-sized chunks. Unlike traditional pagers, it allows both\n" +"backwards and forwards movement through the document. It also does not have\n" +"to read the entire input file before starting, so it starts faster than most\n" +"text editors." +msgstr "" + +#: gnu/packages/lesstif.scm:47 +msgid "Clone of the Motif toolkit for the X window system" +msgstr "" + +#: gnu/packages/lesstif.scm:48 +msgid "Clone of the Motif toolkit for the X window system." +msgstr "" + +#: gnu/packages/libreoffice.scm:85 +msgid "General purpose formula parser and interpreter" +msgstr "" + +#: gnu/packages/libreoffice.scm:86 +msgid "" +"Ixion is a library for calculating the results of formula\n" +"expressions stored in multiple named targets, or \"cells\". The cells can\n" +"be referenced from each other, and the library takes care of resolving\n" +"their dependencies automatically upon calculation." +msgstr "" + +#: gnu/packages/libreoffice.scm:111 +msgid "File import filter library for spreadsheet documents" +msgstr "" + +#: gnu/packages/libreoffice.scm:112 +msgid "" +"Orcus is a library that provides a collection of standalone\n" +"file processing filters. It is currently focused on providing filters for\n" +"spreadsheet documents. The library includes import filters for\n" +"Microsoft Excel 2007 XML, Microsoft Excel 2003 XML, Open Document Spreadsheet,\n" +"Plain Text, Gnumeric XML, Generic XML. It also includes low-level parsers for\n" +"CSV, CSS and XML." +msgstr "" + +#: gnu/packages/libreoffice.scm:143 +msgid "Document importer for office suites" +msgstr "" + +#: gnu/packages/libreoffice.scm:144 +msgid "" +"Librevenge is a base library for writing document import\n" +"filters. It has interfaces for text documents, vector graphics,\n" +"spreadsheets and presentations." +msgstr "" + +#: gnu/packages/libreoffice.scm:169 +msgid "Library for importing WordPerfect documents" +msgstr "" + +#: gnu/packages/libreoffice.scm:170 +msgid "" +"Libwpd is a C++ library designed to help process\n" +"WordPerfect documents. It is most commonly used to import such documents\n" +"into other word processors." +msgstr "" + +#: gnu/packages/libreoffice.scm:202 +msgid "Library for import of reflowable e-book formats" +msgstr "" + +#: gnu/packages/libreoffice.scm:203 +msgid "" +"Libe-book is a library and a set of tools for reading and\n" +"converting various reflowable e-book formats. Currently supported are:\n" +"Broad Band eBook, eReader .pdb, FictionBook v. 2 (including zipped files),\n" +"PalmDoc Ebook, Plucker .pdb, QiOO (mobile format, for java-enabled\n" +"cellphones), TCR (simple compressed text format), TealDoc, zTXT,\n" +"ZVR (simple compressed text format)." +msgstr "" + +#: gnu/packages/libreoffice.scm:232 +msgid "Library and tools for the WordPerfect Graphics format" +msgstr "" + +#: gnu/packages/libreoffice.scm:233 +msgid "" +"The libwpg project provides a library and tools for\n" +"working with graphics in the WPG (WordPerfect Graphics) format." +msgstr "" + +#: gnu/packages/libreoffice.scm:273 +msgid "CMIS client library" +msgstr "" + +#: gnu/packages/libreoffice.scm:274 +msgid "" +"LibCMIS is a C++ client library for the CMIS interface. It\n" +"allows C++ applications to connect to any ECM behaving as a CMIS server such\n" +"as Alfresco or Nuxeo." +msgstr "" + +#: gnu/packages/libreoffice.scm:305 +msgid "Library for parsing the AbiWord format" +msgstr "" + +#: gnu/packages/libreoffice.scm:306 +msgid "" +"Libabw is a library that parses the file format of\n" +"AbiWord documents." +msgstr "" + +#: gnu/packages/libreoffice.scm:336 +msgid "Library for parsing the CorelDRAW format" +msgstr "" + +#: gnu/packages/libreoffice.scm:337 +msgid "" +"Libcdr is a library that parses the file format of\n" +"CorelDRAW documents of all versions." +msgstr "" + +#: gnu/packages/libreoffice.scm:366 +msgid "Library for parsing the Apple Keynote format" +msgstr "" + +#: gnu/packages/libreoffice.scm:367 +msgid "" +"Libetonyek is a library that parses the file format of\n" +"Apple Keynote documents. It currently supports Keynote versions 2 to 5." +msgstr "" + +#: gnu/packages/libreoffice.scm:384 +msgid "Text Categorization library" +msgstr "" + +#: gnu/packages/libreoffice.scm:385 +msgid "" +"Libexttextcat is an N-Gram-Based Text Categorization\n" +"library primarily intended for language guessing." +msgstr "" + +#: gnu/packages/libreoffice.scm:411 +msgid "Library for parsing the FreeHand format" +msgstr "" + +#: gnu/packages/libreoffice.scm:412 +msgid "" +"Libfreehand is a library that parses the file format of\n" +"Aldus/Macromedia/Adobe FreeHand documents." +msgstr "" + +#: gnu/packages/libreoffice.scm:438 +msgid "Library for parsing the Microsoft Publisher format" +msgstr "" + +#: gnu/packages/libreoffice.scm:439 +msgid "" +"Libmspub is a library that parses the file format of\n" +"Microsoft Publisher documents of all versions." +msgstr "" + +#: gnu/packages/libreoffice.scm:467 +msgid "Library for parsing the PageMaker format" +msgstr "" + +#: gnu/packages/libreoffice.scm:468 +msgid "" +"Libpagemaker is a library that parses the file format of\n" +"Aldus/Adobe PageMaker documents. Currently it only understands documents\n" +"created by PageMaker version 6.x and 7." +msgstr "" + +#: gnu/packages/libreoffice.scm:503 +msgid "Library for parsing the Microsoft Visio format" +msgstr "" + +#: gnu/packages/libreoffice.scm:504 +msgid "" +"Libvisio is a library that parses the file format of\n" +"Microsoft Visio documents of all versions." +msgstr "" + +#: gnu/packages/libreoffice.scm:532 +msgid "ODF (Open Document Format) library" +msgstr "" + +#: gnu/packages/libreoffice.scm:533 +msgid "" +"Libodfgen is a library for generating documents in the\n" +"Open Document Format (ODF). It provides generator implementations for all\n" +"document interfaces supported by librevenge:\n" +"text documents, vector drawings, presentations and spreadsheets." +msgstr "" + +#: gnu/packages/libreoffice.scm:563 +msgid "Import library for some old Macintosh text documents" +msgstr "" + +#: gnu/packages/libreoffice.scm:564 +msgid "" +"Libmwaw contains some import filters for old Macintosh\n" +"text documents (MacWrite, ClarisWorks, ... ) and for some graphics and\n" +"spreadsheet documents." +msgstr "" + +#: gnu/packages/libreoffice.scm:593 +msgid "Import library for Microsoft Works text documents" +msgstr "" + +#: gnu/packages/libreoffice.scm:594 +msgid "" +"Libwps is a library for importing files in the Microsoft\n" +"Works word processor file format." +msgstr "" + +#: gnu/packages/libreoffice.scm:612 +msgid "" +"Hunspell is a spell checker and morphological analyzer\n" +"library and program designed for languages with rich morphology and complex\n" +"word compounding or character encoding." +msgstr "" + +#: gnu/packages/libreoffice.scm:633 +msgid "Hyphenation library" +msgstr "" + +#: gnu/packages/libreoffice.scm:634 +msgid "" +"Hyphen is a hyphenation library using TeX hyphenation\n" +"patterns, which are pre-processed by a perl script." +msgstr "" + +#: gnu/packages/libreoffice.scm:657 +msgid "Thesaurus" +msgstr "" + +#: gnu/packages/libreoffice.scm:658 +msgid "" +"MyThes is a simple thesaurus that uses a structured text\n" +"data file and an index file with binary search to look up words and phrases\n" +"and to return information on pronunciations, meanings and synonyms." +msgstr "" + +#: gnu/packages/libreoffice.scm:822 +msgid "Office suite" +msgstr "" + +#: gnu/packages/libreoffice.scm:823 +msgid "" +"LibreOffice is a comprehensive office suite. It contains\n" +"a number of components: Writer, a word processor; Calc, a spreadsheet\n" +"application; Impress, a presentation engine; Draw, a drawing and\n" +"flowcharting application; Base, a database and database frontend;\n" +"Math for editing mathematics." +msgstr "" + +#: gnu/packages/linux.scm:149 +msgid "GNU Linux-Libre kernel headers" +msgstr "" + +#: gnu/packages/linux.scm:150 +msgid "Headers of the Linux-Libre kernel." +msgstr "" + +#: gnu/packages/linux.scm:181 +msgid "Tools for loading and managing Linux kernel modules" +msgstr "" + +#: gnu/packages/linux.scm:183 +msgid "" +"Tools for loading and managing Linux kernel modules, such as `modprobe',\n" +"`insmod', `lsmod', and more." +msgstr "" + +#: gnu/packages/linux.scm:311 +msgid "100% free redistribution of a cleaned Linux kernel" +msgstr "" + +#: gnu/packages/linux.scm:313 +msgid "" +"GNU Linux-Libre is a free (as in freedom) variant of the Linux kernel.\n" +"It has been modified to remove all non-free binary blobs." +msgstr "" + +#: gnu/packages/linux.scm:356 +msgid "Pluggable authentication modules for Linux" +msgstr "" + +#: gnu/packages/linux.scm:358 +msgid "" +"A *Free* project to implement OSF's RFC 86.0.\n" +"Pluggable authentication modules are small shared object files that can\n" +"be used through the PAM API to perform tasks, like authenticating a user\n" +"at login. Local and dynamic reconfiguration are its key features." +msgstr "" + +#: gnu/packages/linux.scm:385 +msgid "Small utilities that use the proc filesystem" +msgstr "" + +#: gnu/packages/linux.scm:387 +msgid "" +"This PSmisc package is a set of some small useful utilities that\n" +"use the proc filesystem. We're not about changing the world, but\n" +"providing the system administrator with some help in common tasks." +msgstr "" + +#: gnu/packages/linux.scm:449 +msgid "Collection of utilities for the Linux kernel" +msgstr "" + +#: gnu/packages/linux.scm:451 +msgid "Util-linux is a random collection of utilities for the Linux kernel." +msgstr "" + +#: gnu/packages/linux.scm:518 +msgid "Utilities that give information about processes" +msgstr "" + +#: gnu/packages/linux.scm:520 +msgid "" +"Procps is the package that has a bunch of small useful utilities\n" +"that give information about processes using the Linux /proc file system.\n" +"The package includes the programs ps, top, vmstat, w, kill, free,\n" +"slabtop, and skill." +msgstr "" + +#: gnu/packages/linux.scm:545 +msgid "Tools for working with USB devices, such as lsusb" +msgstr "" + +#: gnu/packages/linux.scm:547 +msgid "Tools for working with USB devices, such as lsusb." +msgstr "" + +#: gnu/packages/linux.scm:621 +msgid "Creating and checking ext2/ext3/ext4 file systems" +msgstr "" + +#: gnu/packages/linux.scm:623 +msgid "This package provides tools for manipulating ext2/ext3/ext4 file systems." +msgstr "" + +#: gnu/packages/linux.scm:665 +msgid "Statically-linked fsck.* commands from e2fsprogs" +msgstr "" + +#: gnu/packages/linux.scm:667 +msgid "" +"This package provides statically-linked command of fsck.ext[234] taken\n" +"from the e2fsprogs package. It is meant to be used in initrds." +msgstr "" + +#: gnu/packages/linux.scm:686 +msgid "Recover deleted files from ext2/3/4 partitions" +msgstr "" + +#: gnu/packages/linux.scm:688 +msgid "" +"Extundelete is a set of tools that can recover deleted files from an\n" +"ext3 or ext4 partition." +msgstr "" + +#: gnu/packages/linux.scm:720 +msgid "Zero non-allocated regions in ext2/ext3/ext4 file systems" +msgstr "" + +#: gnu/packages/linux.scm:722 +msgid "" +"The zerofree command scans the free blocks in an ext2 file system and\n" +"fills any non-zero blocks with zeroes. This is a useful way to make disk\n" +"images more compressible." +msgstr "" + +#: gnu/packages/linux.scm:741 +msgid "System call tracer for Linux" +msgstr "" + +#: gnu/packages/linux.scm:743 +msgid "" +"strace is a system call tracer, i.e. a debugging tool which prints out a\n" +"trace of all the system calls made by a another process/program." +msgstr "" + +#: gnu/packages/linux.scm:764 +msgid "Library call tracer for Linux" +msgstr "" + +#: gnu/packages/linux.scm:766 +msgid "" +"ltrace intercepts and records dynamic library calls which are called by\n" +"an executed process and the signals received by that process. It can also\n" +"intercept and print the system calls executed by the program." +msgstr "" + +#: gnu/packages/linux.scm:786 +msgid "The Advanced Linux Sound Architecture libraries" +msgstr "" + +#: gnu/packages/linux.scm:788 gnu/packages/linux.scm:830 +msgid "" +"The Advanced Linux Sound Architecture (ALSA) provides audio and\n" +"MIDI functionality to the Linux-based operating system." +msgstr "" + +#: gnu/packages/linux.scm:828 +msgid "Utilities for the Advanced Linux Sound Architecture (ALSA)" +msgstr "" + +#: gnu/packages/linux.scm:855 +msgid "Program to configure the Linux IP packet filtering rules" +msgstr "" + +#: gnu/packages/linux.scm:857 +msgid "" +"iptables is the userspace command line program used to configure the\n" +"Linux 2.4.x and later IPv4 packet filtering ruleset. It is targeted towards\n" +"system administrators. Since Network Address Translation is also configured\n" +"from the packet filter ruleset, iptables is used for this, too. The iptables\n" +"package also includes ip6tables. ip6tables is used for configuring the IPv6\n" +"packet filter." +msgstr "" + +#: gnu/packages/linux.scm:905 +msgid "Utilities for controlling TCP/IP networking and traffic in Linux" +msgstr "" + +#: gnu/packages/linux.scm:907 +msgid "" +"Iproute2 is a collection of utilities for controlling TCP/IP\n" +"networking and traffic with the Linux kernel.\n" +"\n" +"Most network configuration manuals still refer to ifconfig and route as the\n" +"primary network configuration tools, but ifconfig is known to behave\n" +"inadequately in modern network environments. They should be deprecated, but\n" +"most distros still include them. Most network configuration systems make use\n" +"of ifconfig and thus provide a limited feature set. The /etc/net project aims\n" +"to support most modern network technologies, as it doesn't use ifconfig and\n" +"allows a system administrator to make use of all iproute2 features, including\n" +"traffic control.\n" +"\n" +"iproute2 is usually shipped in a package called iproute or iproute2 and\n" +"consists of several tools, of which the most important are ip and tc. ip\n" +"controls IPv4 and IPv6 configuration and tc stands for traffic control. Both\n" +"tools print detailed usage messages and are accompanied by a set of\n" +"manpages." +msgstr "" + +#: gnu/packages/linux.scm:1015 +msgid "Tools for controlling the network subsystem in Linux" +msgstr "" + +#: gnu/packages/linux.scm:1017 +msgid "" +"This package includes the important tools for controlling the network\n" +"subsystem of the Linux kernel. This includes arp, hostname, ifconfig,\n" +"netstat, rarp and route. Additionally, this package contains utilities\n" +"relating to particular network hardware types (plipconfig, slattach) and\n" +"advanced aspects of IP configuration (iptunnel, ipmaddr)." +msgstr "" + +#: gnu/packages/linux.scm:1054 +msgid "Library for working with POSIX capabilities" +msgstr "" + +#: gnu/packages/linux.scm:1056 +msgid "" +"Libcap2 provides a programming interface to POSIX capabilities on\n" +"Linux-based operating systems." +msgstr "" + +#: gnu/packages/linux.scm:1099 +msgid "Manipulate Ethernet bridges" +msgstr "" + +#: gnu/packages/linux.scm:1101 +msgid "" +"Utilities for Linux's Ethernet bridging facilities. A bridge is a way\n" +"to connect two Ethernet segments together in a protocol independent way.\n" +"Packets are forwarded based on Ethernet address, rather than IP address (like\n" +"a router). Since forwarding is done at Layer 2, all protocols can go\n" +"transparently through a bridge." +msgstr "" + +#: gnu/packages/linux.scm:1123 +msgid "NetLink protocol library suite" +msgstr "" + +#: gnu/packages/linux.scm:1125 +msgid "" +"The libnl suite is a collection of libraries providing APIs to netlink\n" +"protocol based Linux kernel interfaces. Netlink is an IPC mechanism primarily\n" +"between the kernel and user space processes. It was designed to be a more\n" +"flexible successor to ioctl to provide mainly networking related kernel\n" +"configuration and monitoring interfaces." +msgstr "" + +#: gnu/packages/linux.scm:1155 +msgid "Tool for configuring wireless devices" +msgstr "" + +#: gnu/packages/linux.scm:1157 +msgid "" +"iw is a new nl80211 based CLI configuration utility for wireless\n" +"devices. It replaces 'iwconfig', which is deprecated." +msgstr "" + +#: gnu/packages/linux.scm:1183 +msgid "Analyze power consumption on Intel-based laptops" +msgstr "" + +#: gnu/packages/linux.scm:1185 +msgid "" +"PowerTOP is a Linux tool to diagnose issues with power consumption and\n" +"power management. In addition to being a diagnostic tool, PowerTOP also has\n" +"an interactive mode where the user can experiment various power management\n" +"settings for cases where the operating system has not enabled these\n" +"settings." +msgstr "" + +#: gnu/packages/linux.scm:1207 +msgid "Audio mixer for X and the console" +msgstr "" + +#: gnu/packages/linux.scm:1209 +msgid "" +"Aumix adjusts an audio mixer from X, the console, a terminal,\n" +"the command line or a script." +msgstr "" + +#: gnu/packages/linux.scm:1233 +msgid "Displays the IO activity of running processes" +msgstr "" + +#: gnu/packages/linux.scm:1235 +msgid "" +"Iotop is a Python program with a top like user interface to show the\n" +"processes currently causing I/O." +msgstr "" + +#: gnu/packages/linux.scm:1287 +msgid "Support file systems implemented in user space" +msgstr "" + +#: gnu/packages/linux.scm:1289 +msgid "" +"As a consequence of its monolithic design, file system code for Linux\n" +"normally goes into the kernel itself---which is not only a robustness issue,\n" +"but also an impediment to system extensibility. FUSE, for \"file systems in\n" +"user space\", is a kernel module and user-space library that tries to address\n" +"part of this problem by allowing users to run file system implementations as\n" +"user-space processes." +msgstr "" + +#: gnu/packages/linux.scm:1314 +msgid "User-space union file system" +msgstr "" + +#: gnu/packages/linux.scm:1316 +msgid "" +"UnionFS-FUSE is a flexible union file system implementation in user\n" +"space, using the FUSE library. Mounting a union file system allows you to\n" +"\"aggregate\" the contents of several directories into a single mount point.\n" +"UnionFS-FUSE additionally supports copy-on-write." +msgstr "" + +#: gnu/packages/linux.scm:1341 +msgid "User-space union file system (statically linked)" +msgstr "" + +#: gnu/packages/linux.scm:1383 +msgid "Mount remote file systems over SSH" +msgstr "" + +#: gnu/packages/linux.scm:1385 +msgid "" +"This is a file system client based on the SSH File Transfer Protocol.\n" +"Since most SSH servers already support this protocol it is very easy to set\n" +"up: on the server side there's nothing to do; on the client side mounting the\n" +"file system is as easy as logging into the server with an SSH client." +msgstr "" + +#: gnu/packages/linux.scm:1433 +msgid "Tools for non-uniform memory access (NUMA) machines" +msgstr "" + +#: gnu/packages/linux.scm:1435 +msgid "" +"NUMA stands for Non-Uniform Memory Access, in other words a system whose\n" +"memory is not all in one place. The numactl program allows you to run your\n" +"application program on specific CPU's and memory nodes. It does this by\n" +"supplying a NUMA memory policy to the operating system before running your\n" +"program.\n" +"\n" +"The package contains other commands, such as numademo, numastat and memhog.\n" +"The numademo command provides a quick overview of NUMA performance on your\n" +"system." +msgstr "" + +#: gnu/packages/linux.scm:1498 +msgid "Linux keyboard utilities and keyboard maps" +msgstr "" + +#: gnu/packages/linux.scm:1500 +msgid "" +"This package contains keytable files and keyboard utilities compatible\n" +"for systems using the Linux kernel. This includes commands such as\n" +"'loadkeys', 'setfont', 'kbdinfo', and 'chvt'." +msgstr "" + +#: gnu/packages/linux.scm:1519 +msgid "Monitor file accesses" +msgstr "" + +#: gnu/packages/linux.scm:1521 +msgid "" +"The inotify-tools packages provides a C library and command-line tools\n" +"to use Linux' inotify mechanism, which allows file accesses to be monitored." +msgstr "" + +#: gnu/packages/linux.scm:1559 +msgid "Kernel module tools" +msgstr "" + +#: gnu/packages/linux.scm:1560 +msgid "" +"Kmod is a set of tools to handle common tasks with Linux\n" +"kernel modules like insert, remove, list, check properties, resolve\n" +"dependencies and aliases.\n" +"\n" +"These tools are designed on top of libkmod, a library that is shipped with\n" +"kmod. The aim is to be compatible with tools, configurations and indices\n" +"from the module-init-tools project." +msgstr "" + +#: gnu/packages/linux.scm:1631 +msgid "Userspace device management" +msgstr "" + +#: gnu/packages/linux.scm:1632 +msgid "" +"Udev is a daemon which dynamically creates and removes\n" +"device nodes from /dev/, handles hotplug events and loads drivers at boot\n" +"time." +msgstr "" + +#: gnu/packages/linux.scm:1692 +msgid "Logical volume management for Linux" +msgstr "" + +#: gnu/packages/linux.scm:1694 +msgid "" +"LVM2 is the logical volume management tool set for Linux-based systems.\n" +"This package includes the user-space libraries and tools, including the device\n" +"mapper. Kernel components are part of Linux-libre." +msgstr "" + +#: gnu/packages/linux.scm:1730 +msgid "Tools for manipulating Linux Wireless Extensions" +msgstr "" + +#: gnu/packages/linux.scm:1731 +msgid "" +"Wireless Tools are used to manipulate the now-deprecated\n" +"Linux Wireless Extensions; consider using 'iw' instead. The Wireless\n" +"Extension was an interface allowing you to set Wireless LAN specific\n" +"parameters and get the specific stats. It is deprecated in favor the nl80211\n" +"interface." +msgstr "" + +#: gnu/packages/linux.scm:1803 +msgid "Central regulatory domain agent (CRDA) for WiFi" +msgstr "" + +#: gnu/packages/linux.scm:1805 +msgid "" +"The Central Regulatory Domain Agent (CRDA) acts as the udev helper for\n" +"communication between the kernel Linux and user space for regulatory\n" +"compliance." +msgstr "" + +#: gnu/packages/linux.scm:1841 +msgid "Wireless regulatory database" +msgstr "" + +#: gnu/packages/linux.scm:1843 +msgid "" +"This package contains the wireless regulatory database Central\n" +"Regulatory Database Agent (CRDA) daemon. The database contains information on\n" +"country-specific regulations for the wireless spectrum." +msgstr "" + +#: gnu/packages/linux.scm:1914 +msgid "Utilities to read temperature/voltage/fan sensors" +msgstr "" + +#: gnu/packages/linux.scm:1916 +msgid "" +"Lm-sensors is a hardware health monitoring package for Linux. It allows\n" +"you to access information from temperature, voltage, and fan speed sensors.\n" +"It works with most newer systems." +msgstr "" + +#: gnu/packages/linux.scm:1943 +msgid "I2C tools for Linux" +msgstr "" + +#: gnu/packages/linux.scm:1945 +msgid "" +"The i2c-tools package contains a heterogeneous set of I2C tools for\n" +"Linux: a bus probing tool, a chip dumper, register-level SMBus access helpers,\n" +"EEPROM decoding scripts, EEPROM programming tools, and a python module for\n" +"SMBus access." +msgstr "" + +#: gnu/packages/linux.scm:1981 +msgid "Hardware health information viewer" +msgstr "" + +#: gnu/packages/linux.scm:1983 +msgid "" +"Xsensors reads data from the libsensors library regarding hardware\n" +"health such as temperature, voltage and fan speed and displays the information\n" +"in a digital read-out." +msgstr "" + +#: gnu/packages/linux.scm:2031 +msgid "Linux profiling with performance counters" +msgstr "" + +#: gnu/packages/linux.scm:2033 +msgid "" +"perf is a tool suite for profiling using hardware performance counters,\n" +"with support in the Linux kernel. perf can instrument CPU performance\n" +"counters, tracepoints, kprobes, and uprobes (dynamic tracing). It is capable\n" +"of lightweight profiling. This package contains the user-land tools and in\n" +"particular the 'perf' command." +msgstr "" + +#: gnu/packages/linux.scm:2056 +msgid "Simple tool for creating Linux namespace containers" +msgstr "" + +#: gnu/packages/linux.scm:2057 +msgid "" +"pflask is a simple tool for creating Linux namespace\n" +"containers. It can be used for running a command or even booting an OS inside\n" +"an isolated container, created with the help of Linux namespaces. It is\n" +"similar in functionality to chroot, although pflask provides better isolation\n" +"thanks to the use of namespaces." +msgstr "" + +#: gnu/packages/linux.scm:2084 +msgid "Tune hard disk parameters for high performance" +msgstr "" + +#: gnu/packages/linux.scm:2086 +msgid "" +"Get/set device parameters for Linux SATA/IDE drives. It's primary use\n" +"is for enabling irq-unmasking and IDE multiple-mode." +msgstr "" + +#: gnu/packages/linux.scm:2109 +msgid "Tool for enabling and disabling wireless devices" +msgstr "" + +#: gnu/packages/linux.scm:2111 +msgid "" +"rfkill is a simple tool for accessing the rfkill device interface,\n" +"which is used to enable and disable wireless networking devices, typically\n" +"WLAN, Bluetooth and mobile broadband." +msgstr "" + +#: gnu/packages/linux.scm:2130 +msgid "Daemon for delivering ACPI events to user-space programs" +msgstr "" + +#: gnu/packages/linux.scm:2132 +msgid "" +"acpid is designed to notify user-space programs of Advanced\n" +"Configuration and Power Interface (ACPI) events. acpid should be started\n" +"during the system boot, and will run as a background process. When an ACPI\n" +"event is received from the kernel, acpid will examine the list of rules\n" +"specified in /etc/acpi/events and execute the rules that match the event." +msgstr "" + +#: gnu/packages/linux.scm:2154 +msgid "System utilities based on Linux sysfs" +msgstr "" + +#: gnu/packages/linux.scm:2156 +msgid "" +"These are a set of utilities built upon sysfs, a virtual filesystem in\n" +"Linux kernel versions 2.5+ that exposes a system's device tree. The package\n" +"also contains the libsysfs library." +msgstr "" + +#: gnu/packages/linux.scm:2185 +msgid "System utilities based on Linux sysfs (version 1.x)" +msgstr "" + +#: gnu/packages/linux.scm:2208 +msgid "Utilities to get and set CPU frequency on Linux" +msgstr "" + +#: gnu/packages/linux.scm:2210 +msgid "" +"The cpufrequtils suite contains utilities to retrieve CPU frequency\n" +"information, and set the CPU frequency if supported, using the cpufreq\n" +"capabilities of the Linux kernel." +msgstr "" + +#: gnu/packages/linux.scm:2229 +msgid "Interface library for the Linux IEEE1394 drivers" +msgstr "" + +#: gnu/packages/linux.scm:2231 +msgid "" +"Libraw1394 is the only supported interface to the kernel side raw1394 of\n" +"the Linux IEEE-1394 subsystem, which provides direct access to the connected\n" +"1394 buses to user space. Through libraw1394/raw1394, applications can directly\n" +"send to and receive from other nodes without requiring a kernel driver for the\n" +"protocol in question." +msgstr "" + +#: gnu/packages/linux.scm:2255 +msgid "AV/C protocol library for IEEE 1394" +msgstr "" + +#: gnu/packages/linux.scm:2257 +msgid "" +"Libavc1394 is a programming interface to the AV/C specification from\n" +"the 1394 Trade Association. AV/C stands for Audio/Video Control." +msgstr "" + +#: gnu/packages/linux.scm:2279 +msgid "Isochronous streaming media library for IEEE 1394" +msgstr "" + +#: gnu/packages/linux.scm:2281 +msgid "" +"The libiec61883 library provides a higher level API for streaming DV,\n" +"MPEG-2 and audio over Linux IEEE 1394." +msgstr "" + +#: gnu/packages/linux.scm:2321 +msgid "Tool for managing Linux Software RAID arrays" +msgstr "" + +#: gnu/packages/linux.scm:2323 +msgid "" +"mdadm is a tool for managing Linux Software RAID arrays. It can create,\n" +"assemble, report on, and monitor arrays. It can also move spares between raid\n" +"arrays when needed." +msgstr "" + +#: gnu/packages/linux.scm:2350 +msgid "Linux-native asynchronous I/O access library" +msgstr "" + +#: gnu/packages/linux.scm:2352 +msgid "" +"This library enables userspace to use Linux kernel asynchronous I/O\n" +"system calls, important for the performance of databases and other advanced\n" +"applications." +msgstr "" + +#: gnu/packages/linux.scm:2388 +msgid "Linux Bluetooth protocol stack" +msgstr "" + +#: gnu/packages/linux.scm:2390 +msgid "" +"BlueZ provides support for the core Bluetooth layers and protocols. It\n" +"is flexible, efficient and uses a modular implementation." +msgstr "" + +#: gnu/packages/linux.scm:2446 +msgid "Mount exFAT file systems" +msgstr "" + +#: gnu/packages/linux.scm:2448 +msgid "" +"This package provides a FUSE-based file system that provides read and\n" +"write access to exFAT devices." +msgstr "" + +#: gnu/packages/lout.scm:109 +msgid "Document layout system" +msgstr "" + +#: gnu/packages/lout.scm:111 +msgid "" +"The Lout document formatting system reads a high-level description of\n" +"a document similar in style to LaTeX and produces a PostScript or plain text\n" +"output file.\n" +"\n" +"Lout offers an unprecedented range of advanced features, including optimal\n" +"paragraph and page breaking, automatic hyphenation, PostScript EPS file\n" +"inclusion and generation, equation formatting, tables, diagrams, rotation and\n" +"scaling, sorted indexes, bibliographic databases, running headers and\n" +"odd-even pages, automatic cross referencing, multilingual documents including\n" +"hyphenation (most European languages are supported), formatting of computer\n" +"programs, and much more, all ready to use. Furthermore, Lout is easily\n" +"extended with definitions which are very much easier to write than troff of\n" +"TeX macros because Lout is a high-level, purely functional language, the\n" +"outcome of an eight-year research project that went back to the\n" +"beginning." +msgstr "" + +#: gnu/packages/messaging.scm:76 +msgid "Off-the-Record (OTR) Messaging Library and Toolkit" +msgstr "" + +#: gnu/packages/messaging.scm:78 +msgid "" +"OTR allows you to have private conversations over instant messaging by\n" +"providing: (1) Encryption: No one else can read your instant messages. (2)\n" +"Authentication: You are assured the correspondent is who you think it is. (3)\n" +"Deniability: The messages you send do not have digital signatures that are\n" +"checkable by a third party. Anyone can forge messages after a conversation to\n" +"make them look like they came from you. However, during a conversation, your\n" +"correspondent is assured the messages he sees are authentic and\n" +"unmodified. (4) Perfect forward secrecy: If you lose control of your private\n" +"keys, no previous conversation is compromised." +msgstr "" + +#: gnu/packages/messaging.scm:134 +msgid "IRC to instant messaging gateway" +msgstr "" + +#: gnu/packages/messaging.scm:135 +msgid "" +"BitlBee brings IM (instant messaging) to IRC clients, for\n" +"people who have an IRC client running all the time and don't want to run an\n" +"additional IM client. BitlBee currently supports XMPP/Jabber (including\n" +"Google Talk), MSN Messenger, Yahoo! Messenger, AIM and ICQ, and the Twitter\n" +"microblogging network (plus all other Twitter API compatible services like\n" +"identi.ca and status.net)." +msgstr "" + +#: gnu/packages/messaging.scm:168 +msgid "Graphical IRC Client" +msgstr "" + +#: gnu/packages/messaging.scm:170 +msgid "" +"HexChat lets you connect to multiple IRC networks at once. The main window\n" +"shows the list of currently connected networks and their channels, the current\n" +"conversation and the list of users. It uses colors to differentiate between\n" +"users and to highlight messages. It checks spelling using available\n" +"dictionaries. HexChat can be extended with multiple addons." +msgstr "" + +#: gnu/packages/messaging.scm:236 +msgid "Lightweight Internet Relay Chat server for small networks" +msgstr "" + +#: gnu/packages/messaging.scm:238 +msgid "" +"ngIRCd is a lightweight Internet Relay Chat server for small or private\n" +"networks. It is easy to configure, can cope with dynamic IP addresses, and\n" +"supports IPv6, SSL-protected connections as well as PAM for authentication." +msgstr "" + +#: gnu/packages/messaging.scm:309 +msgid "Graphical multi-protocol instant messaging client" +msgstr "" + +#: gnu/packages/messaging.scm:311 +msgid "" +"Pidgin is a modular instant messaging client that supports many popular\n" +"chat protocols." +msgstr "" + +#: gnu/packages/messaging.scm:349 +msgid "Off-the-Record Messaging plugin for Pidgin" +msgstr "" + +#: gnu/packages/messaging.scm:351 +msgid "" +"Pidgin-OTR is a plugin that adds support for OTR to the Pidgin instant\n" +"messaging client. OTR (Off-the-Record) Messaging allows you to have private\n" +"conversations over instant messaging by providing: (1) Encryption: No one else\n" +"can read your instant messages. (2) Authentication: You are assured the\n" +"correspondent is who you think it is. (3) Deniability: The messages you send\n" +"do not have digital signatures that are checkable by a third party. Anyone\n" +"can forge messages after a conversation to make them look like they came from\n" +"you. However, during a conversation, your correspondent is assured the\n" +"messages he sees are authentic and unmodified. (4) Perfect forward secrecy:\n" +"If you lose control of your private keys, no previous conversation is\n" +"compromised." +msgstr "" + +#: gnu/packages/messaging.scm:391 +msgid "IRC network bouncer" +msgstr "" + +#: gnu/packages/messaging.scm:392 +msgid "" +"ZNC is an IRC network bouncer or BNC. It can detach the\n" +"client from the actual IRC server, and also from selected channels. Multiple\n" +"clients from different locations can connect to a single ZNC account\n" +"simultaneously and therefore appear under the same nickname on IRC." +msgstr "" + +#: gnu/packages/messaging.scm:414 +msgid "Non-blocking Jabber/XMPP module" +msgstr "" + +#: gnu/packages/messaging.scm:416 +msgid "" +"The goal of this python library is to provide a way for Python\n" +"applications to use Jabber/XMPP networks in a non-blocking way. This library\n" +"was initially a fork of xmpppy, but is using non-blocking sockets." +msgstr "" + +#: gnu/packages/messaging.scm:466 +msgid "Jabber (XMPP) client" +msgstr "" + +#: gnu/packages/messaging.scm:467 +msgid "" +"Gajim is a feature-rich and easy to use Jabber/XMPP client.\n" +"Among its features are: a tabbed chat window and single window modes; support\n" +"for group chat (with Multi-User Chat protocol), invitation, chat to group chat\n" +"transformation; audio and video conferences; file transfer; TLS, GPG and\n" +"end-to-end encryption support; XML console." +msgstr "" + +#: gnu/packages/mpd.scm:63 +msgid "Music Player Daemon client library" +msgstr "" + +#: gnu/packages/mpd.scm:64 +msgid "" +"A stable, documented, asynchronous API library for\n" +"interfacing MPD in the C, C++ & Objective C languages." +msgstr "" + +#: gnu/packages/mpd.scm:124 +msgid "Music Player Daemon" +msgstr "" + +#: gnu/packages/mpd.scm:125 +msgid "" +"Music Player Daemon (MPD) is a flexible, powerful,\n" +"server-side application for playing music. Through plugins and libraries it\n" +"can play a variety of sound files while being controlled by its network\n" +"protocol." +msgstr "" + +#: gnu/packages/mpd.scm:148 +msgid "Music Player Daemon client" +msgstr "" + +#: gnu/packages/mpd.scm:149 +msgid "" +"MPC is a minimalist command line interface to MPD, the music\n" +"player daemon." +msgstr "" + +#: gnu/packages/mpd.scm:172 +msgid "Curses Music Player Daemon client" +msgstr "" + +#: gnu/packages/mpd.scm:173 +msgid "" +"ncmpc is a fully featured MPD client, which runs in a\n" +"terminal using ncurses." +msgstr "" + +#: gnu/packages/mpd.scm:211 +msgid "Featureful ncurses based MPD client inspired by ncmpc" +msgstr "" + +#: gnu/packages/mpd.scm:212 +msgid "" +"Ncmpcpp is an mpd client with a UI very similar to ncmpc,\n" +"but it provides new useful features such as support for regular expressions\n" +"for library searches, extended song format, items filtering, the ability to\n" +"sort playlists, and a local filesystem browser." +msgstr "" + +#: gnu/packages/mpd.scm:235 +msgid "MPD client for track scrobbling" +msgstr "" + +#: gnu/packages/mpd.scm:236 +msgid "" +"mpdscribble is a Music Player Daemon client which submits\n" +"information about tracks being played to a scrobbler, such as Libre.FM." +msgstr "" + +#: gnu/packages/netpbm.scm:146 +msgid "Toolkit for manipulation of images" +msgstr "" + +#: gnu/packages/netpbm.scm:148 +msgid "" +"Netpbm is a toolkit for the manipulation of graphic images, including\n" +"the conversion of images between a variety of different formats.\n" +"There are over 300 separate tools in the package including converters for\n" +"about 100 graphics formats." +msgstr "" + +#: gnu/packages/nettle.scm:50 +msgid "C library for low-level cryptographic functionality" +msgstr "" + +#: gnu/packages/nettle.scm:52 +msgid "" +"GNU Nettle is a low-level cryptographic library. It is designed to\n" +"fit in easily in almost any context. It can be easily included in\n" +"cryptographic toolkits for object-oriented languages or in applications\n" +"themselves." +msgstr "" + +#: gnu/packages/networking.scm:52 +msgid "Teredo IPv6 tunneling software" +msgstr "" + +#: gnu/packages/networking.scm:54 +msgid "" +"Miredo is an implementation (client, relay, server) of the Teredo\n" +"specification, which provides IPv6 Internet connectivity to IPv6 enabled hosts\n" +"residing in IPv4-only networks, even when they are behind a NAT device." +msgstr "" + +#: gnu/packages/networking.scm:76 +msgid "Open bidirectional communication channels from the command line" +msgstr "" + +#: gnu/packages/networking.scm:78 +msgid "" +"socat is a relay for bidirectional data transfer between two independent\n" +"data channels---files, pipes, devices, sockets, etc. It can create\n" +"\"listening\" sockets, named pipes, and pseudo terminals.\n" +"\n" +"socat can be used, for instance, as TCP port forwarder, as a shell interface\n" +"to UNIX sockets, IPv6 relay, for redirecting TCP oriented programs to a serial\n" +"line, to logically connect serial lines on different computers, or to\n" +"establish a relatively secure environment (su and chroot) for running client\n" +"or server shell scripts with network connections." +msgstr "" + +#: gnu/packages/networking.scm:102 +msgid "Library for message-based applications" +msgstr "" + +#: gnu/packages/networking.scm:104 +msgid "" +"The 0MQ lightweight messaging kernel is a library which extends the\n" +"standard socket interfaces with features traditionally provided by specialized\n" +"messaging middle-ware products. 0MQ sockets provide an abstraction of\n" +"asynchronous message queues, multiple messaging patterns, message\n" +"filtering (subscriptions), seamless access to multiple transport protocols and\n" +"more." +msgstr "" + +#: gnu/packages/networking.scm:125 +msgid "Library for Neighbor Discovery Protocol" +msgstr "" + +#: gnu/packages/networking.scm:127 +msgid "" +"libndp contains a library which provides a wrapper for IPv6 Neighbor\n" +"Discovery Protocol. It also provides a tool named ndptool for sending and\n" +"receiving NDP messages." +msgstr "" + +#: gnu/packages/networking.scm:145 +msgid "Display or change Ethernet device settings" +msgstr "" + +#: gnu/packages/networking.scm:147 +msgid "" +"ethtool can be used to query and change settings such as speed,\n" +"auto-negotiation and checksum offload on many network devices, especially\n" +"Ethernet devices." +msgstr "" + +#: gnu/packages/networking.scm:183 +msgid "Text based network interface status monitor" +msgstr "" + +#: gnu/packages/networking.scm:185 +msgid "" +"IFStatus is a simple, easy-to-use program for displaying commonly\n" +"needed/wanted real-time traffic statistics of multiple network\n" +"interfaces, with a simple and efficient view on the command line. It is\n" +"intended as a substitute for the PPPStatus and EthStatus projects." +msgstr "" + +#: gnu/packages/pdf.scm:102 +msgid "PDF rendering library" +msgstr "" + +#: gnu/packages/pdf.scm:104 +msgid "Poppler is a PDF rendering library based on the xpdf-3.0 code base." +msgstr "" + +#: gnu/packages/pdf.scm:113 +msgid "Qt4 frontend for the Poppler PDF rendering library" +msgstr "" + +#: gnu/packages/pdf.scm:146 +msgid "Python bindings for Poppler-Qt4" +msgstr "" + +#: gnu/packages/pdf.scm:148 +msgid "" +"This package provides Python bindings for the Qt4 interface of the\n" +"Poppler PDF rendering library." +msgstr "" + +#: gnu/packages/pdf.scm:195 +msgid "Viewer for PDF files based on the Motif toolkit" +msgstr "" + +#: gnu/packages/pdf.scm:197 +msgid "Xpdf is a viewer for Portable Document Format (PDF) files." +msgstr "" + +#: gnu/packages/pdf.scm:227 +msgid "Comic book support for zathura (libarchive backend)" +msgstr "" + +#: gnu/packages/pdf.scm:228 +msgid "" +"The zathura-cb plugin adds comic book support to zathura\n" +"using libarchive." +msgstr "" + +#: gnu/packages/pdf.scm:258 +msgid "PS support for zathura (libspectre backend)" +msgstr "" + +#: gnu/packages/pdf.scm:259 +msgid "" +"The zathura-ps plugin adds PS support to zathura\n" +"using libspectre." +msgstr "" + +#: gnu/packages/pdf.scm:290 +msgid "DjVu support for zathura (DjVuLibre backend)" +msgstr "" + +#: gnu/packages/pdf.scm:291 +msgid "" +"The zathura-djvu plugin adds DjVu support to zathura\n" +"using the DjVuLibre library." +msgstr "" + +#: gnu/packages/pdf.scm:323 +msgid "PDF support for zathura (poppler backend)" +msgstr "" + +#: gnu/packages/pdf.scm:324 +msgid "" +"The zathura-pdf-poppler plugin adds PDF support to zathura\n" +"by using the poppler rendering engine." +msgstr "" + +#: gnu/packages/pdf.scm:362 +msgid "Lightweight keyboard-driven PDF viewer" +msgstr "" + +#: gnu/packages/pdf.scm:363 +msgid "" +"Zathura is a customizable document viewer. It provides a\n" +"minimalistic interface and an interface that mainly focuses on keyboard\n" +"interaction." +msgstr "" + +#: gnu/packages/pdf.scm:402 +msgid "Tools to work with the PDF file format" +msgstr "" + +#: gnu/packages/pdf.scm:404 +msgid "" +"PoDoFo is a C++ library and set of command-line tools to work with the\n" +"PDF file format. It can parse PDF files and load them into memory, and makes\n" +"it easy to modify them and write the changes to disk. It is primarily useful\n" +"for applications that wish to do lower level manipulation of PDF, such as\n" +"extracting content or merging files." +msgstr "" + +#: gnu/packages/pdf.scm:465 +msgid "Lightweight PDF viewer and toolkit" +msgstr "" + +#: gnu/packages/pdf.scm:467 +msgid "" +"MuPDF is a C library that implements a PDF and XPS parsing and\n" +"rendering engine. It is used primarily to render pages into bitmaps,\n" +"but also provides support for other operations such as searching and\n" +"listing the table of contents and hyperlinks.\n" +"\n" +"The library ships with a rudimentary X11 viewer, and a set of command\n" +"line tools for batch rendering (pdfdraw), rewriting files (pdfclean),\n" +"and examining the file structure (pdfshow)." +msgstr "" + +#: gnu/packages/pdf.scm:507 +msgid "Command-line tools and library for transforming PDF files" +msgstr "" + +#: gnu/packages/pdf.scm:509 +msgid "" +"QPDF is a command-line program that does structural, content-preserving\n" +"transformations on PDF files. It could have been called something like\n" +"pdf-to-pdf. It includes support for merging and splitting PDFs and to\n" +"manipulate the list of pages in a PDF file. It is not a PDF viewer or a\n" +"program capable of converting PDF into other formats." +msgstr "" + +#: gnu/packages/pdf.scm:539 +msgid "Notetaking using a stylus" +msgstr "" + +#: gnu/packages/pdf.scm:541 +msgid "" +"Xournal is an application for notetaking, sketching, keeping a journal\n" +"using a stylus." +msgstr "" + +#: gnu/packages/pem.scm:41 +msgid "Personal expenses manager" +msgstr "" + +#: gnu/packages/pem.scm:43 +msgid "" +"GNU Pem is a simple tool for tracking personal income and\n" +"expenses. It operates from the command line and it stores its data\n" +"in a basic text format in your home directory. It can easily print\n" +"reports of your spending on different expenses via a basic search\n" +"feature." +msgstr "" + +#: gnu/packages/perl.scm:100 +msgid "Implementation of the Perl programming language" +msgstr "" + +#: gnu/packages/perl.scm:102 +msgid "" +"Perl 5 is a highly capable, feature-rich programming language with over\n" +"24 years of development." +msgstr "" + +#: gnu/packages/perl.scm:121 +msgid "Module for merging hierarchies using the C3 algorithm" +msgstr "" + +#: gnu/packages/perl.scm:122 +msgid "" +"This module implements the C3 algorithm, which aims to\n" +"provide a sane method resolution order under multiple inheritance." +msgstr "" + +#: gnu/packages/perl.scm:140 +msgid "Compute differences between two files or lists" +msgstr "" + +#: gnu/packages/perl.scm:141 +msgid "" +"This is a module for computing the difference between two\n" +"files, two strings, or any other two lists of things. It uses an intelligent\n" +"algorithm similar to (or identical to) the one used by the Unix \"diff\"\n" +"program. It is guaranteed to find the *smallest possible* set of\n" +"differences." +msgstr "" + +#: gnu/packages/perl.scm:162 +msgid "Use shorter versions of class names" +msgstr "" + +#: gnu/packages/perl.scm:163 +msgid "" +"The alias module loads the class you specify and exports\n" +"into your namespace a subroutine that returns the class name. You can\n" +"explicitly alias the class to another name or, if you prefer, you can do so\n" +"implicitly." +msgstr "" + +#: gnu/packages/perl.scm:185 +msgid "Configuration files and command line parsing" +msgstr "" + +#: gnu/packages/perl.scm:186 +msgid "" +"AppConfig is a bundle of Perl5 modules for reading\n" +"configuration files and parsing command line arguments." +msgstr "" + +#: gnu/packages/perl.scm:204 +msgid "Perl API to zip files" +msgstr "" + +#: gnu/packages/perl.scm:205 gnu/packages/zip.scm:168 +msgid "" +"The Archive::Zip module allows a Perl program to create,\n" +"manipulate, read, and write Zip archive files." +msgstr "" + +#: gnu/packages/perl.scm:224 gnu/packages/perl.scm:3966 +msgid "Establish an ISA relationship with base classes at compile time" +msgstr "" + +#: gnu/packages/perl.scm:225 +msgid "" +"Allows you to both load one or more modules, while setting\n" +"up inheritance from those modules at the same time. Unless you are using the\n" +"fields pragma, consider this module discouraged in favor of the lighter-weight\n" +"parent." +msgstr "" + +#: gnu/packages/perl.scm:250 +msgid "Execute code after a scope finished compilation" +msgstr "" + +#: gnu/packages/perl.scm:251 +msgid "" +"This module allows you to execute code when perl finished\n" +"compiling the surrounding scope." +msgstr "" + +#: gnu/packages/perl.scm:269 +msgid "Benchmarking with statistical confidence" +msgstr "" + +#: gnu/packages/perl.scm:271 +msgid "" +"The Benchmark::Timer class allows you to time portions of code\n" +"conveniently, as well as benchmark code by allowing timings of repeated\n" +"trials. It is perfect for when you need more precise information about the\n" +"running time of portions of your code than the Benchmark module will give you,\n" +"but don't want to go all out and profile your code." +msgstr "" + +#: gnu/packages/perl.scm:296 +msgid "Bit vector library" +msgstr "" + +#: gnu/packages/perl.scm:297 +msgid "" +"Bit::Vector is an efficient C library which allows you to\n" +"handle bit vectors, sets (of integers), \"big integer arithmetic\" and boolean\n" +"matrices, all of arbitrary sizes. The package also includes an\n" +"object-oriented Perl module for accessing the C library from Perl, and\n" +"optionally features overloaded operators for maximum ease of use. The C\n" +"library can nevertheless be used stand-alone, without Perl." +msgstr "" + +#: gnu/packages/perl.scm:319 +msgid "Boolean support for Perl" +msgstr "" + +#: gnu/packages/perl.scm:320 +msgid "" +"This module provides basic Boolean support, by defining two\n" +"special objects: true and false." +msgstr "" + +#: gnu/packages/perl.scm:341 +msgid "Cache interface for Perl" +msgstr "" + +#: gnu/packages/perl.scm:342 +msgid "" +"The Cache modules are designed to assist a developer in\n" +"persisting data for a specified period of time. Often these modules are used\n" +"in web applications to store data locally to save repeated and redundant\n" +"expensive calls to remote machines or databases. People have also been known\n" +"to use Cache::Cache for its straightforward interface in sharing data between\n" +"runs of an application or invocations of a CGI-style script or simply as an\n" +"easy to use abstraction of the filesystem or shared memory." +msgstr "" + +#: gnu/packages/perl.scm:365 +msgid "Shared memory interprocess cache via mmap" +msgstr "" + +#: gnu/packages/perl.scm:366 +msgid "" +"A shared memory cache through an mmap'ed file. It's core is\n" +"written in C for performance. It uses fcntl locking to ensure multiple\n" +"processes can safely access the cache at the same time. It uses a basic LRU\n" +"algorithm to keep the most used entries in the cache." +msgstr "" + +#: gnu/packages/perl.scm:387 +msgid "Capture STDOUT and STDERR from Perl, XS or external programs" +msgstr "" + +#: gnu/packages/perl.scm:389 +msgid "" +"Capture::Tiny provides a simple, portable way to capture almost anything\n" +"sent to STDOUT or STDERR, regardless of whether it comes from Perl, from XS\n" +"code or from an external program. Optionally, output can be teed so that it\n" +"is captured while being passed through to the original file handles." +msgstr "" + +#: gnu/packages/perl.scm:409 +msgid "Executable comments for Perl" +msgstr "" + +#: gnu/packages/perl.scm:410 +msgid "" +"Carp::Assert is intended for a purpose like the ANSI C\n" +"library assert.h." +msgstr "" + +#: gnu/packages/perl.scm:432 +msgid "Convenience wrappers around Carp::Assert" +msgstr "" + +#: gnu/packages/perl.scm:433 +msgid "" +"Carp::Assert::More is a set of handy assertion functions for\n" +"Perl." +msgstr "" + +#: gnu/packages/perl.scm:453 +msgid "Report errors from a \"clan\" of modules" +msgstr "" + +#: gnu/packages/perl.scm:454 +msgid "" +"This module allows errors from a clan (or family) of modules\n" +"to appear to originate from the caller of the clan. This is necessary in\n" +"cases where the clan modules are not classes derived from each other, and thus\n" +"the Carp.pm module doesn't help." +msgstr "" + +#: gnu/packages/perl.scm:478 +msgid "Automated accessor generation" +msgstr "" + +#: gnu/packages/perl.scm:479 +msgid "" +"This module automagically generates accessors/mutators for\n" +"your class." +msgstr "" + +#: gnu/packages/perl.scm:499 +msgid "Faster, but less expandable, chained accessors" +msgstr "" + +#: gnu/packages/perl.scm:500 +msgid "" +"A chained accessor is one that always returns the object\n" +"when called with parameters (to set), and the value of the field when called\n" +"with no arguments. This module subclasses Class::Accessor in order to provide\n" +"the same mk_accessors interface." +msgstr "" + +#: gnu/packages/perl.scm:526 +msgid "Build groups of accessors" +msgstr "" + +#: gnu/packages/perl.scm:527 +msgid "" +"This class lets you build groups of accessors that will call\n" +"different getters and setters." +msgstr "" + +#: gnu/packages/perl.scm:547 +msgid "Pragma to use the C3 method resolution order algorithm" +msgstr "" + +#: gnu/packages/perl.scm:548 +msgid "" +"This is pragma to change Perl 5's standard method resolution\n" +"order from depth-first left-to-right (a.k.a - pre-order) to the more\n" +"sophisticated C3 method resolution order." +msgstr "" + +#: gnu/packages/perl.scm:572 +msgid "Drop-in replacement for NEXT" +msgstr "" + +#: gnu/packages/perl.scm:573 +msgid "" +"This module is intended as a drop-in replacement for NEXT,\n" +"supporting the same interface, but using Class::C3 to do the hard work." +msgstr "" + +#: gnu/packages/perl.scm:597 +msgid "Load mix-ins or components to your C3-based class" +msgstr "" + +#: gnu/packages/perl.scm:598 +msgid "" +"This module will inject base classes to your module using\n" +"the Class::C3 method resolution order." +msgstr "" + +#: gnu/packages/perl.scm:616 +msgid "Inheritable, overridable class data" +msgstr "" + +#: gnu/packages/perl.scm:617 +msgid "" +"Class::Data::Inheritable is for creating accessor/mutators\n" +"to class data. That is, if you want to store something about your class as a\n" +"whole (instead of about a single object). This data is then inherited by your\n" +"subclasses and can be overridden." +msgstr "" + +#: gnu/packages/perl.scm:638 +msgid "Class for easy date and time manipulation" +msgstr "" + +#: gnu/packages/perl.scm:639 +msgid "" +"This module provides a general-purpose date and datetime\n" +"type for perl." +msgstr "" + +#: gnu/packages/perl.scm:657 +msgid "Utility methods for factory classes" +msgstr "" + +#: gnu/packages/perl.scm:658 +msgid "This module exports methods useful for factory classes." +msgstr "" + +#: gnu/packages/perl.scm:675 +msgid "Get information about a class and its structure" +msgstr "" + +#: gnu/packages/perl.scm:676 +msgid "" +"Class::Inspector allows you to get information about a\n" +"loaded class." +msgstr "" + +#: gnu/packages/perl.scm:704 +msgid "Working (require \"Class::Name\") and more" +msgstr "" + +#: gnu/packages/perl.scm:705 +msgid "" +"\"require EXPR\" only accepts Class/Name.pm style module\n" +"names, not Class::Name. For that, this module provides \"load_class\n" +"'Class::Name'\"." +msgstr "" + +#: gnu/packages/perl.scm:728 +msgid "XS implementation of parts of Class::Load" +msgstr "" + +#: gnu/packages/perl.scm:729 +msgid "" +"This module provides an XS implementation for portions of\n" +"Class::Load." +msgstr "" + +#: gnu/packages/perl.scm:748 +msgid "Create generic methods for OO Perl" +msgstr "" + +#: gnu/packages/perl.scm:749 +msgid "" +"This module solves the problem of having to continually\n" +"write accessor methods for your objects that perform standard tasks." +msgstr "" + +#: gnu/packages/perl.scm:770 +msgid "Moose-like method modifiers" +msgstr "" + +#: gnu/packages/perl.scm:771 +msgid "" +"Class::Method::Modifiers provides three modifiers: 'before',\n" +"'around', and 'after'. 'before' and 'after' are run just before and after the\n" +"method they modify, but can not really affect that original method. 'around'\n" +"is run in place of the original method, with a hook to easily call that\n" +"original method." +msgstr "" + +#: gnu/packages/perl.scm:792 +msgid "Implementation of a singleton class for Perl" +msgstr "" + +#: gnu/packages/perl.scm:793 +msgid "" +"This module implements a Singleton class from which other\n" +"classes can be derived. By itself, the Class::Singleton module does very\n" +"little other than manage the instantiation of a single object." +msgstr "" + +#: gnu/packages/perl.scm:812 +msgid "Minimalist class construction" +msgstr "" + +#: gnu/packages/perl.scm:813 +msgid "" +"This module offers a minimalist class construction kit. It\n" +"uses no non-core modules for any recent Perl." +msgstr "" + +#: gnu/packages/perl.scm:833 +msgid "Unload a class" +msgstr "" + +#: gnu/packages/perl.scm:834 +msgid "" +"Class:Unload unloads a given class by clearing out its\n" +"symbol table and removing it from %INC." +msgstr "" + +#: gnu/packages/perl.scm:852 +msgid "Generate fast XS accessors without runtime compilation" +msgstr "" + +#: gnu/packages/perl.scm:853 +msgid "" +"Class::XSAccessor implements fast read, write, and\n" +"read/write accessors in XS. Additionally, it can provide predicates such as\n" +"\"has_foo()\" for testing whether the attribute \"foo\" is defined in the\n" +"object. It only works with objects that are implemented as ordinary hashes.\n" +"Class::XSAccessor::Array implements the same interface for objects that use\n" +"arrays for their internal representation." +msgstr "" + +#: gnu/packages/perl.scm:873 +msgid "Recursively copy Perl datatypes" +msgstr "" + +#: gnu/packages/perl.scm:875 +msgid "" +"This module provides a clone() method which makes recursive copies of\n" +"nested hash, array, scalar and reference types, including tied variables and\n" +"objects." +msgstr "" + +#: gnu/packages/perl.scm:896 +msgid "Sane defaults for Perl programs" +msgstr "" + +#: gnu/packages/perl.scm:897 +msgid "" +"This module implements some sane defaults for Perl programs,\n" +"as defined by two typical specimens of Perl coders." +msgstr "" + +#: gnu/packages/perl.scm:915 +msgid "Load configuration from different file formats" +msgstr "" + +#: gnu/packages/perl.scm:916 +msgid "" +"Config::Any provides a facility for Perl applications and\n" +"libraries to load configuration data from multiple different file formats. It\n" +"supports XML, YAML, JSON, Apache-style configuration, and Perl code." +msgstr "" + +#: gnu/packages/perl.scm:937 +msgid "Module to implement some AutoConf macros in Perl" +msgstr "" + +#: gnu/packages/perl.scm:938 +msgid "" +"Config::AutoConf is intended to provide the same\n" +"opportunities to Perl developers as GNU Autoconf does for Shell developers." +msgstr "" + +#: gnu/packages/perl.scm:956 +msgid "Generic Config Module" +msgstr "" + +#: gnu/packages/perl.scm:957 +msgid "" +"This module opens a config file and parses its contents for\n" +"you. The format of config files supported by Config::General is inspired by\n" +"the well known Apache config format and is 100% compatible with Apache\n" +"configs, but you can also just use simple name/value pairs in your config\n" +"files. In addition to the capabilities of an Apache config file it supports\n" +"some enhancements such as here-documents, C-style comments, and multiline\n" +"options." +msgstr "" + +#: gnu/packages/perl.scm:983 +msgid "Preserve context during subroutine call" +msgstr "" + +#: gnu/packages/perl.scm:984 +msgid "" +"This module runs code after a subroutine call, preserving\n" +"the context the subroutine would have seen if it were the last statement in\n" +"the caller." +msgstr "" + +#: gnu/packages/perl.scm:1005 +msgid "Verify requirements in a CPAN::Meta object" +msgstr "" + +#: gnu/packages/perl.scm:1006 +msgid "" +"This module verifies if requirements described in a\n" +"CPAN::Meta object are present." +msgstr "" + +#: gnu/packages/perl.scm:1026 +msgid "JSON::XS for Cpanel" +msgstr "" + +#: gnu/packages/perl.scm:1027 gnu/packages/perl.scm:2769 +msgid "" +"This module converts Perl data structures to JSON and vice\n" +"versa." +msgstr "" + +#: gnu/packages/perl.scm:1045 +msgid "Random password generator" +msgstr "" + +#: gnu/packages/perl.scm:1046 +msgid "" +"Crypt::RandPasswd provides three functions that can be used\n" +"to generate random passwords, constructed from words, letters, or characters.\n" +"This code is a Perl implementation of the Automated Password Generator\n" +"standard, like the program described in \"A Random Word Generator For\n" +"Pronounceable Passwords\". This code is a re-engineering of the program\n" +"contained in Appendix A of FIPS Publication 181, \"Standard for Automated\n" +"Password Generator\"." +msgstr "" + +#: gnu/packages/perl.scm:1089 +msgid "Library for genomic analysis" +msgstr "" + +#: gnu/packages/perl.scm:1090 +msgid "" +"Chaolin Zhang's Perl Library (czplib) contains assorted\n" +"functions and data structures for processing and analysing genomic and\n" +"bioinformatics data." +msgstr "" + +#: gnu/packages/perl.scm:1109 +msgid "Pretty printing of data structures" +msgstr "" + +#: gnu/packages/perl.scm:1110 +msgid "" +"This module provide functions that takes a list of values as\n" +"their argument and produces a string as its result. The string contains Perl\n" +"code that, when \"eval\"ed, produces a deep copy of the original arguments." +msgstr "" + +#: gnu/packages/perl.scm:1129 +msgid "Concise data dumper" +msgstr "" + +#: gnu/packages/perl.scm:1130 +msgid "" +"Data::Dumper::Concise provides a dumper with Less\n" +"indentation and newlines plus sub deparsing." +msgstr "" + +#: gnu/packages/perl.scm:1152 +msgid "Parse and validate simple name/value option pairs" +msgstr "" + +#: gnu/packages/perl.scm:1154 +msgid "Data::OptList provides a simple syntax for name/value option pairs." +msgstr "" + +#: gnu/packages/perl.scm:1175 +msgid "Help when paging through sets of results" +msgstr "" + +#: gnu/packages/perl.scm:1176 +msgid "" +"When searching through large amounts of data, it is often\n" +"the case that a result set is returned that is larger than we want to display\n" +"on one page. This results in wanting to page through various pages of data.\n" +"The maths behind this is unfortunately fiddly, hence this module." +msgstr "" + +#: gnu/packages/perl.scm:1198 +msgid "Structured tags datastructures" +msgstr "" + +#: gnu/packages/perl.scm:1200 +msgid "" +"This module is for manipulating data as hierarchical tag/value\n" +"pairs (Structured TAGs or Simple Tree AGgregates). These datastructures can\n" +"be represented as nested arrays, which have the advantage of being native to\n" +"Perl." +msgstr "" + +#: gnu/packages/perl.scm:1227 +msgid "N at a time iteration API" +msgstr "" + +#: gnu/packages/perl.scm:1228 +msgid "" +"This module tries to find middle ground between one at a\n" +"time and all at once processing of data sets. The purpose of this module is\n" +"to avoid the overhead of implementing an iterative api when this isn't\n" +"necessary, without breaking forward compatibility in case that becomes\n" +"necessary later on." +msgstr "" + +#: gnu/packages/perl.scm:1253 +msgid "Dynamic generation of nested combinations of variants" +msgstr "" + +#: gnu/packages/perl.scm:1254 +msgid "" +"Data::Tumbler - Dynamic generation of nested combinations of\n" +"variants." +msgstr "" + +#: gnu/packages/perl.scm:1280 +msgid "Visitor style traversal of Perl data structures" +msgstr "" + +#: gnu/packages/perl.scm:1281 +msgid "" +"This module is a simple visitor implementation for Perl\n" +"values. It has a main dispatcher method, visit, which takes a single perl\n" +"value and then calls the methods appropriate for that value. It can\n" +"recursively map (cloning as necessary) or just traverse most structures, with\n" +"support for per-object behavior, circular structures, visiting tied\n" +"structures, and all ref types (hashes, arrays, scalars, code, globs)." +msgstr "" + +#: gnu/packages/perl.scm:1306 +msgid "Gregorian calendar date calculations" +msgstr "" + +#: gnu/packages/perl.scm:1307 +msgid "" +"This package consists of a Perl module for date calculations\n" +"based on the Gregorian calendar, thereby complying with all relevant norms and\n" +"standards: ISO/R 2015-1971, DIN 1355 and, to some extent, ISO 8601 (where\n" +"applicable)." +msgstr "" + +#: gnu/packages/perl.scm:1331 +msgid "XS wrapper for Date::Calc" +msgstr "" + +#: gnu/packages/perl.scm:1332 +msgid "" +"Date::Calc::XS is an XS wrapper and C library plug-in for\n" +"Date::Calc." +msgstr "" + +#: gnu/packages/perl.scm:1355 +msgid "Date manipulation routines" +msgstr "" + +#: gnu/packages/perl.scm:1356 +msgid "" +"Date::Manip is a series of modules for common date/time\n" +"operations, such as comparing two times, determining a date a given amount of\n" +"time from another, or parsing international times." +msgstr "" + +#: gnu/packages/perl.scm:1383 +msgid "Date and time object for Perl" +msgstr "" + +#: gnu/packages/perl.scm:1384 +msgid "" +"DateTime is a class for the representation of date/time\n" +"combinations. It represents the Gregorian calendar, extended backwards in\n" +"time before its creation (in 1582)." +msgstr "" + +#: gnu/packages/perl.scm:1407 +msgid "DateTime set objects" +msgstr "" + +#: gnu/packages/perl.scm:1408 +msgid "" +"The DateTime::Set module provides a date/time sets\n" +"implementation. It allows, for example, the generation of groups of dates,\n" +"like \"every wednesday\", and then find all the dates matching that pattern,\n" +"within a time range." +msgstr "" + +#: gnu/packages/perl.scm:1431 +msgid "DateTime rfc2445 recurrences" +msgstr "" + +#: gnu/packages/perl.scm:1432 +msgid "" +"This module provides convenience methods that let you easily\n" +"create DateTime::Set objects for RFC 2445 style recurrences." +msgstr "" + +#: gnu/packages/perl.scm:1453 +msgid "DateTime::Set extension for basic recurrences" +msgstr "" + +#: gnu/packages/perl.scm:1454 +msgid "" +"This module provides convenience methods that let you easily\n" +"create DateTime::Set objects for various recurrences, such as \"once a month\"\n" +"or \"every day\". You can also create more complicated recurrences, such as\n" +"\"every Monday, Wednesday and Thursday at 10:00 AM and 2:00 PM\"." +msgstr "" + +#: gnu/packages/perl.scm:1479 +msgid "Create DateTime parser classes and objects" +msgstr "" + +#: gnu/packages/perl.scm:1480 +msgid "" +"DateTime::Format::Builder creates DateTime parsers. Many\n" +"string formats of dates and times are simple and just require a basic regular\n" +"expression to extract the relevant information. Builder provides a simple way\n" +"to do this without writing reams of structural code." +msgstr "" + +#: gnu/packages/perl.scm:1506 +msgid "Parse data/time strings" +msgstr "" + +#: gnu/packages/perl.scm:1507 +msgid "" +"DateTime::Format::Flexible attempts to take any string you\n" +"give it and parse it into a DateTime object." +msgstr "" + +#: gnu/packages/perl.scm:1531 +msgid "Parse and format iCal datetime and duration strings" +msgstr "" + +#: gnu/packages/perl.scm:1532 +msgid "" +"This module understands the ICal date/time and duration\n" +"formats, as defined in RFC 2445. It can be used to parse these formats in\n" +"order to create the appropriate objects." +msgstr "" + +#: gnu/packages/perl.scm:1563 +msgid "Machine-readable date/time with natural parsing" +msgstr "" + +#: gnu/packages/perl.scm:1564 +msgid "" +"DateTime::Format::Natural takes a string with a human\n" +"readable date/time and creates a machine readable one by applying natural\n" +"parsing logic." +msgstr "" + +#: gnu/packages/perl.scm:1588 +msgid "Parse and format strp and strf time patterns" +msgstr "" + +#: gnu/packages/perl.scm:1589 +msgid "" +"This module implements most of `strptime(3)`, the POSIX\n" +"function that is the reverse of `strftime(3)`, for `DateTime`. While\n" +"`strftime` takes a `DateTime` and a pattern and returns a string, `strptime`\n" +"takes a string and a pattern and returns the `DateTime` object associated." +msgstr "" + +#: gnu/packages/perl.scm:1612 +msgid "Localization support for DateTime.pm" +msgstr "" + +#: gnu/packages/perl.scm:1613 +msgid "" +"The DateTime::Locale modules provide localization data for\n" +"the DateTime.pm class." +msgstr "" + +#: gnu/packages/perl.scm:1640 +msgid "Time zone object for Perl" +msgstr "" + +#: gnu/packages/perl.scm:1641 +msgid "" +"This class is the base class for all time zone objects. A\n" +"time zone is represented internally as a set of observances, each of which\n" +"describes the offset from GMT for a given time period. Note that without the\n" +"DateTime module, this module does not do much. It's primary interface is\n" +"through a DateTime object, and most users will not need to directly use\n" +"DateTime::TimeZone methods." +msgstr "" + +#: gnu/packages/perl.scm:1671 +msgid "Parse date/time strings" +msgstr "" + +#: gnu/packages/perl.scm:1672 +msgid "" +"DateTimeX::Easy uses a variety of DateTime::Format packages\n" +"to create DateTime objects, with some custom tweaks to smooth out the rough\n" +"edges (mainly concerning timezone detection and selection)." +msgstr "" + +#: gnu/packages/perl.scm:1693 +msgid "Meatier version of caller" +msgstr "" + +#: gnu/packages/perl.scm:1694 +msgid "Devel::Caller provides meatier version of caller." +msgstr "" + +#: gnu/packages/perl.scm:1711 +msgid "Check that a command is available" +msgstr "" + +#: gnu/packages/perl.scm:1712 +msgid "" +"Devel::CheckBin is a perl module that checks whether a\n" +"particular command is available." +msgstr "" + +#: gnu/packages/perl.scm:1732 +msgid "Provides equivalent of ${^GLOBAL_PHASE} eq 'DESTRUCT' for older perls" +msgstr "" + +#: gnu/packages/perl.scm:1733 +msgid "" +"Devel::GlobalDestruction provides a function returning the\n" +"equivalent of \"$@{^GLOBAL_PHASE@} eq 'DESTRUCT'\" for older perls." +msgstr "" + +#: gnu/packages/perl.scm:1753 +msgid "Alias lexical variables" +msgstr "" + +#: gnu/packages/perl.scm:1754 +msgid "" +"Devel::LexAlias provides the ability to alias a lexical\n" +"variable in a subroutines scope to one of your choosing." +msgstr "" + +#: gnu/packages/perl.scm:1776 +msgid "Introspect overloaded operators" +msgstr "" + +#: gnu/packages/perl.scm:1777 +msgid "" +"Devel::OverloadInfo returns information about overloaded\n" +"operators for a given class (or object), including where in the inheritance\n" +"hierarchy the overloads are declared and where the code implementing it is." +msgstr "" + +#: gnu/packages/perl.scm:1804 +msgid "Partial dumping of data structures" +msgstr "" + +#: gnu/packages/perl.scm:1805 +msgid "" +"This module is a data dumper optimized for logging of\n" +"arbitrary parameters." +msgstr "" + +#: gnu/packages/perl.scm:1823 +msgid "Object representing a stack trace" +msgstr "" + +#: gnu/packages/perl.scm:1824 +msgid "" +"The Devel::StackTrace module contains two classes,\n" +"Devel::StackTrace and Devel::StackTrace::Frame. These objects encapsulate the\n" +"information that can be retrieved via Perl's caller() function, as well as\n" +"providing a simple interface to this data." +msgstr "" + +#: gnu/packages/perl.scm:1846 +msgid "Displays stack trace in HTML" +msgstr "" + +#: gnu/packages/perl.scm:1847 +msgid "" +"Devel::StackTrace::AsHTML adds as_html method to\n" +"Devel::StackTrace which displays the stack trace in beautiful HTML, with code\n" +"snippet context and function parameters. If you call it on an instance of\n" +"Devel::StackTrace::WithLexicals, you even get to see the lexical variables of\n" +"each stack frame." +msgstr "" + +#: gnu/packages/perl.scm:1868 +msgid "Dump symbol names or the symbol table" +msgstr "" + +#: gnu/packages/perl.scm:1869 +msgid "Devel::Symdump provides access to the perl symbol table." +msgstr "" + +#: gnu/packages/perl.scm:1886 +msgid "Keyed-Hashing for Message Authentication" +msgstr "" + +#: gnu/packages/perl.scm:1887 +msgid "" +"The Digest::HMAC module follows the common Digest::\n" +"interface for the RFC 2104 HMAC mechanism." +msgstr "" + +#: gnu/packages/perl.scm:1903 +msgid "Perl implementation of the SHA-1 message digest algorithm" +msgstr "" + +#: gnu/packages/perl.scm:1905 +msgid "" +"This package provides 'Digest::SHA1', an implementation of the NIST\n" +"SHA-1 message digest algorithm for use by Perl programs." +msgstr "" + +#: gnu/packages/perl.scm:1927 +msgid "Declare version conflicts for your dist" +msgstr "" + +#: gnu/packages/perl.scm:1928 +msgid "" +"This module allows you to specify conflicting versions of\n" +"modules separately and deal with them after the module is done installing." +msgstr "" + +#: gnu/packages/perl.scm:1945 +msgid "OO-ish Error/Exception handling for Perl" +msgstr "" + +#: gnu/packages/perl.scm:1946 +msgid "" +"The Error package provides two interfaces. Firstly Error\n" +"provides a procedural interface to exception handling. Secondly Error is a\n" +"base class for errors/exceptions that can either be thrown, for subsequent\n" +"catch, or can simply be recorded." +msgstr "" + +#: gnu/packages/perl.scm:1971 +msgid "Safely and cleanly create closures via string eval" +msgstr "" + +#: gnu/packages/perl.scm:1972 +msgid "" +"String eval is often used for dynamic code generation. For\n" +"instance, Moose uses it heavily, to generate inlined versions of accessors and\n" +"constructors, which speeds code up at runtime by a significant amount. String\n" +"eval is not without its issues however - it's difficult to control the scope\n" +"it's used in (which determines which variables are in scope inside the eval),\n" +"and it's easy to miss compilation errors, since eval catches them and sticks\n" +"them in $@@ instead. This module attempts to solve these problems. It\n" +"provides an eval_closure function, which evals a string in a clean\n" +"environment, other than a fixed list of specified variables. Compilation\n" +"errors are rethrown automatically." +msgstr "" + +#: gnu/packages/perl.scm:2001 +msgid "Allows you to declare real exception classes in Perl" +msgstr "" + +#: gnu/packages/perl.scm:2002 +msgid "" +"Exception::Class allows you to declare exception hierarchies\n" +"in your modules in a \"Java-esque\" manner." +msgstr "" + +#: gnu/packages/perl.scm:2018 +msgid "Lightweight exporting of functions and variables" +msgstr "" + +#: gnu/packages/perl.scm:2020 +msgid "" +"Exporter::Lite is an alternative to Exporter, intended to provide a\n" +"lightweight subset of the most commonly-used functionality. It supports\n" +"import(), @@EXPORT and @@EXPORT_OK and not a whole lot else." +msgstr "" + +#: gnu/packages/perl.scm:2041 +msgid "Exporter with the features of Sub::Exporter but only core dependencies" +msgstr "" + +#: gnu/packages/perl.scm:2042 +msgid "" +"Exporter::Tiny supports many of Sub::Exporter's\n" +"external-facing features including renaming imported functions with the `-as`,\n" +"`-prefix` and `-suffix` options; explicit destinations with the `into` option;\n" +"and alternative installers with the `installler` option. But it's written in\n" +"only about 40% as many lines of code and with zero non-core dependencies." +msgstr "" + +#: gnu/packages/perl.scm:2065 +msgid "Build.PL install path logic made easy" +msgstr "" + +#: gnu/packages/perl.scm:2066 +msgid "" +"This module tries to make install path resolution as easy as\n" +"possible." +msgstr "" + +#: gnu/packages/perl.scm:2084 +msgid "Wrapper for perl's configuration" +msgstr "" + +#: gnu/packages/perl.scm:2085 +msgid "" +"ExtUtils::Config is an abstraction around the %Config hash.\n" +"By itself it is not a particularly interesting module by any measure, however\n" +"it ties together a family of modern toolchain modules." +msgstr "" + +#: gnu/packages/perl.scm:2104 +msgid "Various portability utilities for module builders" +msgstr "" + +#: gnu/packages/perl.scm:2105 +msgid "" +"This module provides various portable helper functions for\n" +"module building modules." +msgstr "" + +#: gnu/packages/perl.scm:2133 +msgid "Watch for changes to files" +msgstr "" + +#: gnu/packages/perl.scm:2134 +msgid "" +"This module provides a class to monitor a directory for\n" +"changes made to any file." +msgstr "" + +#: gnu/packages/perl.scm:2152 +msgid "Recursively copy files and directories" +msgstr "" + +#: gnu/packages/perl.scm:2153 +msgid "" +"This module has 3 functions: one to copy files only, one to\n" +"copy directories only, and one to do either depending on the argument's\n" +"type." +msgstr "" + +#: gnu/packages/perl.scm:2175 +msgid "Alternative interface to File::Find" +msgstr "" + +#: gnu/packages/perl.scm:2176 +msgid "" +"File::Find::Rule is a friendlier interface to File::Find.\n" +"It allows you to build rules which specify the desired files and\n" +"directories." +msgstr "" + +#: gnu/packages/perl.scm:2199 +msgid "Common rules for searching for Perl things" +msgstr "" + +#: gnu/packages/perl.scm:2200 +msgid "" +"File::Find::Rule::Perl provides methods for finding various\n" +"types Perl-related files, or replicating search queries run on a distribution\n" +"in various parts of the CPAN ecosystem." +msgstr "" + +#: gnu/packages/perl.scm:2223 +msgid "Find your home and other directories on any platform" +msgstr "" + +#: gnu/packages/perl.scm:2224 +msgid "" +"File::HomeDir is a module for locating the directories that\n" +"are \"owned\" by a user (typically your user) and to solve the various issues\n" +"that arise trying to find them consistently across a wide variety of\n" +"platforms." +msgstr "" + +#: gnu/packages/perl.scm:2251 +msgid "" +"Perl extension for crawling directory trees and compiling\n" +"lists of files" +msgstr "" + +#: gnu/packages/perl.scm:2254 +msgid "" +"The File::List module crawls the directory tree starting at the\n" +"provided base directory and can return files (and/or directories if desired)\n" +"matching a regular expression." +msgstr "" + +#: gnu/packages/perl.scm:2273 +msgid "Remove files and directories in Perl" +msgstr "" + +#: gnu/packages/perl.scm:2274 +msgid "" +"File::Remove::remove removes files and directories. It acts\n" +"like /bin/rm, for the most part. Although \"unlink\" can be given a list of\n" +"files, it will not remove directories; this module remedies that. It also\n" +"accepts wildcards, * and ?, as arguments for file names." +msgstr "" + +#: gnu/packages/perl.scm:2298 +msgid "Locate per-dist and per-module shared files" +msgstr "" + +#: gnu/packages/perl.scm:2299 +msgid "" +"The intent of File::ShareDir is to provide a companion to\n" +"Class::Inspector and File::HomeDir. Quite often you want or need your Perl\n" +"module to have access to a large amount of read-only data that is stored on\n" +"the file-system at run-time. Once the files have been installed to the\n" +"correct directory, you can use File::ShareDir to find your files again after\n" +"the installation." +msgstr "" + +#: gnu/packages/perl.scm:2321 +msgid "Install shared files" +msgstr "" + +#: gnu/packages/perl.scm:2322 +msgid "" +"File::ShareDir::Install allows you to install read-only data\n" +"files from a distribution. It is a companion module to File::ShareDir, which\n" +"allows you to locate these files after installation." +msgstr "" + +#: gnu/packages/perl.scm:2341 +msgid "Reading/Writing/Modifying of complete files" +msgstr "" + +#: gnu/packages/perl.scm:2342 +msgid "" +"File::Slurp provides subroutines to read or write entire\n" +"files with a simple call. It also has a subroutine for reading the list of\n" +"file names in a directory." +msgstr "" + +#: gnu/packages/perl.scm:2363 +msgid "Return name and handle of a temporary file safely" +msgstr "" + +#: gnu/packages/perl.scm:2364 +msgid "" +"File::Temp can be used to create and open temporary files in\n" +"a safe way." +msgstr "" + +#: gnu/packages/perl.scm:2381 +msgid "Portable implementation of the `which' utility" +msgstr "" + +#: gnu/packages/perl.scm:2383 +msgid "" +"File::Which was created to be able to get the paths to executable\n" +"programs on systems under which the `which' program wasn't implemented in the\n" +"shell." +msgstr "" + +#: gnu/packages/perl.scm:2410 +msgid "Getopt::Long, but simpler and more powerful" +msgstr "" + +#: gnu/packages/perl.scm:2411 +msgid "" +"Getopt::Long::Descriptive is yet another Getopt library.\n" +"It's built atop Getopt::Long, and gets a lot of its features, but tries to\n" +"avoid making you think about its huge array of options. It also provides\n" +"usage (help) messages, data validation, and a few other useful features." +msgstr "" + +#: gnu/packages/perl.scm:2429 +msgid "Table-driven argument parsing for Perl" +msgstr "" + +#: gnu/packages/perl.scm:2431 +msgid "" +"Getopt::Tabular is a Perl 5 module for table-driven argument parsing,\n" +"vaguely inspired by John Ousterhout's Tk_ParseArgv." +msgstr "" + +#: gnu/packages/perl.scm:2451 +msgid "Merge arbitrarily deep hashes into a single hash" +msgstr "" + +#: gnu/packages/perl.scm:2452 +msgid "" +"Hash::Merge merges two arbitrarily deep hashes into a single\n" +"hash. That is, at any level, it will add non-conflicting key-value pairs from\n" +"one hash to the other, and follows a set of specific rules when there are key\n" +"value conflicts. The hash is followed recursively, so that deeply nested\n" +"hashes that are at the same level will be merged when the parent hashes are\n" +"merged." +msgstr "" + +#: gnu/packages/perl.scm:2474 +msgid "Store multiple values per key" +msgstr "" + +#: gnu/packages/perl.scm:2475 +msgid "" +"Hash::MultiValue is an object (and a plain hash reference)\n" +"that may contain multiple values per key, inspired by MultiDict of WebOb." +msgstr "" + +#: gnu/packages/perl.scm:2495 +msgid "Import packages into other packages" +msgstr "" + +#: gnu/packages/perl.scm:2496 +msgid "" +"Writing exporters is a pain. Some use Exporter, some use\n" +"Sub::Exporter, some use Moose::Exporter, some use Exporter::Declare ... and\n" +"some things are pragmas. Exporting on someone else's behalf is harder. The\n" +"exporters don't provide a consistent API for this, and pragmas need to have\n" +"their import method called directly, since they effect the current unit of\n" +"compilation. Import::Into provides global methods to make this painless." +msgstr "" + +#: gnu/packages/perl.scm:2518 +msgid "Use modules in inc/ if newer than installed" +msgstr "" + +#: gnu/packages/perl.scm:2519 +msgid "" +"The inc::latest module helps bootstrap configure-time\n" +"dependencies for CPAN distributions. These dependencies get bundled into the\n" +"inc directory within a distribution and are used by Makefile.PL or Build.PL." +msgstr "" + +#: gnu/packages/perl.scm:2538 +msgid "Utilities for interactive I/O" +msgstr "" + +#: gnu/packages/perl.scm:2539 +msgid "" +"This module provides three utility subroutines that make it\n" +"easier to develop interactive applications: is_interactive(), interactive(),\n" +"and busy()." +msgstr "" + +#: gnu/packages/perl.scm:2558 +msgid "Emulate file interface for in-core strings" +msgstr "" + +#: gnu/packages/perl.scm:2559 +msgid "" +"IO::String is an IO::File (and IO::Handle) compatible class\n" +"that reads or writes data from in-core strings." +msgstr "" + +#: gnu/packages/perl.scm:2577 +msgid "IO:: interface for reading/writing an array of lines" +msgstr "" + +#: gnu/packages/perl.scm:2578 +msgid "" +"This toolkit primarily provides modules for performing both\n" +"traditional and object-oriented i/o) on things *other* than normal\n" +"filehandles; in particular, IO::Scalar, IO::ScalarArray, and IO::Lines." +msgstr "" + +#: gnu/packages/perl.scm:2596 +msgid "Perl interface to pseudo ttys" +msgstr "" + +#: gnu/packages/perl.scm:2598 +msgid "" +"This package provides the 'IO::Pty' and 'IO::Tty' Perl interfaces to\n" +"pseudo ttys." +msgstr "" + +#: gnu/packages/perl.scm:2626 +msgid "Run system() and background procs w/ piping, redirs, ptys" +msgstr "" + +#: gnu/packages/perl.scm:2627 +msgid "" +"IPC::Run allows you run and interact with child processes\n" +"using files, pipes, and pseudo-ttys. Both system()-style and scripted usages\n" +"are supported and may be mixed. Likewise, functional and OO API styles are\n" +"both supported and may be mixed." +msgstr "" + +#: gnu/packages/perl.scm:2645 +msgid "Run a subprocess with input/output redirection" +msgstr "" + +#: gnu/packages/perl.scm:2647 +msgid "" +"The IPC::Run3 module allows you to run a subprocess and redirect stdin,\n" +"stdout, and/or stderr to files and perl data structures. It aims to satisfy\n" +"99% of the need for using system, qx, and open3 with a simple, extremely\n" +"Perlish API and none of the bloat and rarely used features of IPC::Run." +msgstr "" + +#: gnu/packages/perl.scm:2671 +msgid "Lightweight interface to shared memory" +msgstr "" + +#: gnu/packages/perl.scm:2672 +msgid "" +"IPC::ShareLite provides a simple interface to shared memory,\n" +"allowing data to be efficiently communicated between processes." +msgstr "" + +#: gnu/packages/perl.scm:2692 +msgid "JSON encoder/decoder for Perl" +msgstr "" + +#: gnu/packages/perl.scm:2693 +msgid "" +"This module converts Perl data structures to JSON and vice\n" +"versa using either JSON::XS or JSON::PP." +msgstr "" + +#: gnu/packages/perl.scm:2718 +msgid "Wrapper for Perl JSON classes" +msgstr "" + +#: gnu/packages/perl.scm:2720 +msgid "" +"This module tries to provide a coherent API to bring together the\n" +"various JSON modules currently on CPAN. This module will allow you to code to\n" +"any JSON API and have it work regardless of which JSON module is actually\n" +"installed." +msgstr "" + +#: gnu/packages/perl.scm:2744 +msgid "Cpanel::JSON::XS with fallback" +msgstr "" + +#: gnu/packages/perl.scm:2745 +msgid "" +"This module first checks to see if either Cpanel::JSON::XS\n" +"or JSON::XS is already loaded, in which case it uses that module. Otherwise\n" +"it tries to load Cpanel::JSON::XS, then JSON::XS, then JSON::PP in order, and\n" +"either uses the first module it finds or throws an error." +msgstr "" + +#: gnu/packages/perl.scm:2768 +msgid "JSON serialising/deserialising for Perl" +msgstr "" + +#: gnu/packages/perl.scm:2792 +msgid "Combination of List::Util and List::MoreUtils" +msgstr "" + +#: gnu/packages/perl.scm:2793 +msgid "" +"This module exports all of the functions that either\n" +"List::Util or List::MoreUtils defines, with preference to List::Util." +msgstr "" + +#: gnu/packages/perl.scm:2817 +msgid "Provide the stuff missing in List::Util" +msgstr "" + +#: gnu/packages/perl.scm:2818 +msgid "" +"List::MoreUtils provides some trivial but commonly needed\n" +"functionality on lists which is not going to go into List::Util." +msgstr "" + +#: gnu/packages/perl.scm:2836 +msgid "Expiry plug-in for Memoize that adds LRU cache expiration" +msgstr "" + +#: gnu/packages/perl.scm:2837 +msgid "" +"This module implements an expiry policy for Memoize that\n" +"follows LRU semantics, that is, the last n results, where n is specified as\n" +"the argument to the CACHESIZE parameter, will be cached." +msgstr "" + +#: gnu/packages/perl.scm:2856 +msgid "Definition of MIME types" +msgstr "" + +#: gnu/packages/perl.scm:2857 +msgid "" +"This module provides a list of known mime-types, combined\n" +"from various sources. For instance, it contains all IANA types and the\n" +"knowledge of Apache." +msgstr "" + +#: gnu/packages/perl.scm:2886 +msgid "Tiny replacement for Module::Build" +msgstr "" + +#: gnu/packages/perl.scm:2887 +msgid "" +"Many Perl distributions use a Build.PL file instead of a\n" +"Makefile.PL file to drive distribution configuration, build, test and\n" +"installation. Traditionally, Build.PL uses Module::Build as the underlying\n" +"build system. This module provides a simple, lightweight, drop-in\n" +"replacement. Whereas Module::Build has over 6,700 lines of code; this module\n" +"has less than 120, yet supports the features needed by most distributions." +msgstr "" + +#: gnu/packages/perl.scm:2909 +msgid "Find and use installed modules in a (sub)category" +msgstr "" + +#: gnu/packages/perl.scm:2910 +msgid "" +"Module::Find lets you find and use modules in categories.\n" +"This can be useful for auto-detecting driver or plugin modules. You can\n" +"differentiate between looking in the category itself or in all\n" +"subcategories." +msgstr "" + +#: gnu/packages/perl.scm:2936 +msgid "Loads alternate underlying implementations for a module" +msgstr "" + +#: gnu/packages/perl.scm:2937 +msgid "" +"This module abstracts out the process of choosing one of\n" +"several underlying implementations for a module. This can be used to provide\n" +"XS and pure Perl implementations of a module, or it could be used to load an\n" +"implementation for a given OS or any other case of needing to provide multiple\n" +"implementations." +msgstr "" + +#: gnu/packages/perl.scm:2975 +msgid "Standalone, extensible Perl module installer" +msgstr "" + +#: gnu/packages/perl.scm:2976 +msgid "" +"Module::Install is a package for writing installers for\n" +"CPAN (or CPAN-like) distributions that are clean, simple, minimalist, act in a\n" +"strictly correct manner with ExtUtils::MakeMaker, and will run on any Perl\n" +"installation version 5.005 or newer." +msgstr "" + +#: gnu/packages/perl.scm:2996 +msgid "Perl runtime module handling" +msgstr "" + +#: gnu/packages/perl.scm:2997 +msgid "" +"The functions exported by this module deal with runtime\n" +"handling of Perl modules, which are normally handled at compile time." +msgstr "" + +#: gnu/packages/perl.scm:3018 +msgid "Provide information on conflicts for Module::Runtime" +msgstr "" + +#: gnu/packages/perl.scm:3019 +msgid "" +"This module provides conflicts checking for Module::Runtime,\n" +"which had a recent release that broke some versions of Moose. It is called\n" +"from Moose::Conflicts and moose-outdated." +msgstr "" + +#: gnu/packages/perl.scm:3040 +msgid "Recursively scan Perl code for dependencies" +msgstr "" + +#: gnu/packages/perl.scm:3041 +msgid "" +"Module::ScanDeps is a module to recursively scan Perl\n" +"programs for dependencies." +msgstr "" + +#: gnu/packages/perl.scm:3061 +msgid "Module name tools and transformations" +msgstr "" + +#: gnu/packages/perl.scm:3062 +msgid "" +"This module provides a few useful functions for manipulating\n" +"module names. Its main aim is to centralise some of the functions commonly\n" +"used by modules that manipulate other modules in some way, like converting\n" +"module names to relative paths." +msgstr "" + +#: gnu/packages/perl.scm:3092 +msgid "Minimalist Object Orientation (with Moose compatibility)" +msgstr "" + +#: gnu/packages/perl.scm:3093 +msgid "" +"Moo is an extremely light-weight Object Orientation system.\n" +"It allows one to concisely define objects and roles with a convenient syntax\n" +"that avoids the details of Perl's object system. Moo contains a subset of\n" +"Moose and is optimised for rapid startup." +msgstr "" + +#: gnu/packages/perl.scm:3169 +msgid "Postmodern object system for Perl 5" +msgstr "" + +#: gnu/packages/perl.scm:3171 +msgid "" +"Moose is a complete object system for Perl 5. It provides keywords for\n" +"attribute declaration, object construction, inheritance, and maybe more. With\n" +"Moose, you define your class declaratively, without needing to know about\n" +"blessed hashrefs, accessor methods, and so on. You can concentrate on the\n" +"logical structure of your classes, focusing on \"what\" rather than \"how\".\n" +"A class definition with Moose reads like a list of very concise English\n" +"sentences." +msgstr "" + +#: gnu/packages/perl.scm:3199 +msgid "Emulate Class::Accessor::Fast behavior using Moose attributes" +msgstr "" + +#: gnu/packages/perl.scm:3200 +msgid "" +"This module attempts to emulate the behavior of\n" +"Class::Accessor::Fast as accurately as possible using the Moose attribute\n" +"system. The public API of Class::Accessor::Fast is wholly supported, but the\n" +"private methods are not." +msgstr "" + +#: gnu/packages/perl.scm:3231 +msgid "Moose role for processing command line options" +msgstr "" + +#: gnu/packages/perl.scm:3232 +msgid "" +"This is a Moose role which provides an alternate constructor\n" +"for creating objects using parameters passed in from the command line." +msgstr "" + +#: gnu/packages/perl.scm:3253 +msgid "Mark overload code symbols as methods" +msgstr "" + +#: gnu/packages/perl.scm:3254 +msgid "" +"MooseX::MarkAsMethods allows one to easily mark certain\n" +"functions as Moose methods. This will allow other packages such as\n" +"namespace::autoclean to operate without blowing away your overloads. After\n" +"using MooseX::MarkAsMethods your overloads will be recognized by Class::MOP as\n" +"being methods, and class extension as well as composition from roles with\n" +"overloads will \"just work\"." +msgstr "" + +#: gnu/packages/perl.scm:3284 +msgid "Code attribute introspection" +msgstr "" + +#: gnu/packages/perl.scm:3285 +msgid "" +"This module allows code attributes of methods to be\n" +"introspected using Moose meta method objects." +msgstr "" + +#: gnu/packages/perl.scm:3311 +msgid "Subclassing of non-Moose classes" +msgstr "" + +#: gnu/packages/perl.scm:3312 +msgid "" +"MooseX::NonMoose allows for easily subclassing non-Moose\n" +"classes with Moose, taking care of the details connected with doing this, such\n" +"as setting up proper inheritance from Moose::Object and installing (and\n" +"inlining, at make_immutable time) a constructor that makes sure things like\n" +"BUILD methods are called. It tries to be as non-intrusive as possible." +msgstr "" + +#: gnu/packages/perl.scm:3341 +msgid "Extension of Params::Validate using Moose's types" +msgstr "" + +#: gnu/packages/perl.scm:3342 +msgid "" +"This module fills a gap in Moose by adding method parameter\n" +"validation to Moose." +msgstr "" + +#: gnu/packages/perl.scm:3363 +msgid "Apply roles to a related Perl class" +msgstr "" + +#: gnu/packages/perl.scm:3364 +msgid "" +"This module applies roles to make a subclass instead of\n" +"manually setting up a subclass." +msgstr "" + +#: gnu/packages/perl.scm:3390 +msgid "Moose roles with composition parameters" +msgstr "" + +#: gnu/packages/perl.scm:3391 +msgid "" +"Because Moose roles serve many different masters, they\n" +"usually provide only the least common denominator of functionality. To\n" +"empower roles further, more configurability than -alias and -excludes is\n" +"required. Perhaps your role needs to know which method to call when it is\n" +"done processing, or what default value to use for its url attribute.\n" +"Parameterized roles offer a solution to these (and other) kinds of problems." +msgstr "" + +#: gnu/packages/perl.scm:3417 +msgid "Roles which support overloading" +msgstr "" + +#: gnu/packages/perl.scm:3418 +msgid "" +"MooseX::Role::WithOverloading allows you to write a\n" +"Moose::Role which defines overloaded operators and allows those overload\n" +"methods to be composed into the classes/roles/instances it's compiled to,\n" +"where plain Moose::Roles would lose the overloading." +msgstr "" + +#: gnu/packages/perl.scm:3440 +msgid "Name your accessors foo() and set_foo()" +msgstr "" + +#: gnu/packages/perl.scm:3441 +msgid "" +"This module does not provide any methods. Simply loading it\n" +"changes the default naming policy for the loading class so that accessors are\n" +"separated into get and set methods. The get methods have the same name as the\n" +"accessor, while set methods are prefixed with \"_set_\"." +msgstr "" + +#: gnu/packages/perl.scm:3467 +msgid "Strict object constructors for Moose" +msgstr "" + +#: gnu/packages/perl.scm:3468 +msgid "" +"Simply loading this module makes your constructors\n" +"\"strict\". If your constructor is called with an attribute init argument\n" +"that your class does not declare, then it calls Moose->throw_error()." +msgstr "" + +#: gnu/packages/perl.scm:3496 +msgid "Trait loading and resolution for Moose" +msgstr "" + +#: gnu/packages/perl.scm:3497 +msgid "" +"Adds support on top of MooseX::Traits for class precedence\n" +"search for traits and some extra attributes." +msgstr "" + +#: gnu/packages/perl.scm:3522 +msgid "Organise your Moose types in libraries" +msgstr "" + +#: gnu/packages/perl.scm:3523 +msgid "" +"This package lets you declare types using short names, but\n" +"behind the scenes it namespaces all your type declarations, effectively\n" +"prevent name clashes between packages." +msgstr "" + +#: gnu/packages/perl.scm:3554 +msgid "DateTime related constraints and coercions for Moose" +msgstr "" + +#: gnu/packages/perl.scm:3555 +msgid "" +"This module packages several Moose::Util::TypeConstraints\n" +"with coercions, designed to work with the DateTime suite of objects." +msgstr "" + +#: gnu/packages/perl.scm:3587 +msgid "Extensions to MooseX::Types::DateTime" +msgstr "" + +#: gnu/packages/perl.scm:3588 +msgid "" +"This module builds on MooseX::Types::DateTime to add\n" +"additional custom types and coercions. Since it builds on an existing type,\n" +"all coercions and constraints are inherited." +msgstr "" + +#: gnu/packages/perl.scm:3617 +msgid "ClassName type constraints for Moose" +msgstr "" + +#: gnu/packages/perl.scm:3618 +msgid "" +"MooseX::Types::LoadableClass provides a ClassName type\n" +"constraint with coercion to load the class." +msgstr "" + +#: gnu/packages/perl.scm:3642 +msgid "Moosish types and type builder" +msgstr "" + +#: gnu/packages/perl.scm:3643 +msgid "" +"MooX::Types::MooseLike provides a possibility to build your\n" +"own set of Moose-like types. These custom types can then be used to describe\n" +"fields in Moo-based classes." +msgstr "" + +#: gnu/packages/perl.scm:3662 +msgid "MRO interface compatibility for Perls < 5.9.5" +msgstr "" + +#: gnu/packages/perl.scm:3663 +msgid "" +"The \"mro\" namespace provides several utilities for dealing\n" +"with method resolution order and method caching in general in Perl 5.9.5 and\n" +"higher. This module provides those interfaces for earlier versions of\n" +"Perl (back to 5.6.0)." +msgstr "" + +#: gnu/packages/perl.scm:3689 +msgid "Keep imports out of your namespace" +msgstr "" + +#: gnu/packages/perl.scm:3690 +msgid "" +"The namespace::autoclean pragma will remove all imported\n" +"symbols at the end of the current package's compile cycle. Functions called\n" +"in the package itself will still be bound by their name, but they won't show\n" +"up as methods on your class or instances. It is very similar to\n" +"namespace::clean, except it will clean all imported functions, no matter if\n" +"you imported them before or after you used the pragma. It will also not touch\n" +"anything that looks like a method." +msgstr "" + +#: gnu/packages/perl.scm:3716 +msgid "Keep imports and functions out of your namespace" +msgstr "" + +#: gnu/packages/perl.scm:3717 +msgid "" +"The namespace::clean pragma will remove all previously\n" +"declared or imported symbols at the end of the current package's compile\n" +"cycle. Functions called in the package itself will still be bound by their\n" +"name, but they won't show up as methods on your class or instances." +msgstr "" + +#: gnu/packages/perl.scm:3737 +msgid "Numeric comparisons" +msgstr "" + +#: gnu/packages/perl.scm:3738 +msgid "" +"Number::Compare compiles a simple comparison to an anonymous\n" +"subroutine, which you can call with a value to be tested against." +msgstr "" + +#: gnu/packages/perl.scm:3756 +msgid "Generate cryptographic signatures for objects" +msgstr "" + +#: gnu/packages/perl.scm:3757 +msgid "" +"Object::Signature is an abstract base class that you can\n" +"inherit from in order to allow your objects to generate unique cryptographic\n" +"signatures." +msgstr "" + +#: gnu/packages/perl.scm:3779 +msgid "Anonymous packages" +msgstr "" + +#: gnu/packages/perl.scm:3780 +msgid "" +"This module allows for anonymous packages that are\n" +"independent of the main namespace and only available through an object\n" +"instance, not by name." +msgstr "" + +#: gnu/packages/perl.scm:3808 +msgid "Manage deprecation warnings for your distribution" +msgstr "" + +#: gnu/packages/perl.scm:3809 +msgid "" +"This module allows you to manage a set of deprecations for\n" +"one or more modules." +msgstr "" + +#: gnu/packages/perl.scm:3836 +msgid "Routines for manipulating stashes" +msgstr "" + +#: gnu/packages/perl.scm:3837 +msgid "" +"Manipulating stashes (Perl's symbol tables) is occasionally\n" +"necessary, but incredibly messy, and easy to get wrong. This module hides all\n" +"of that behind a simple API." +msgstr "" + +#: gnu/packages/perl.scm:3860 +msgid "Faster implementation of the Package::Stash API" +msgstr "" + +#: gnu/packages/perl.scm:3861 +msgid "" +"This is a backend for Package::Stash, which provides the\n" +"functionality in a way that's less buggy and much faster. It will be used by\n" +"default if it's installed, and should be preferred in all environments with a\n" +"compiler." +msgstr "" + +#: gnu/packages/perl.scm:3881 +msgid "Play with other peoples' lexical variables" +msgstr "" + +#: gnu/packages/perl.scm:3882 +msgid "" +"PadWalker is a module which allows you to inspect (and even\n" +"change) lexical variables in any subroutine which called you. It will only\n" +"show those variables which are in scope at the point of the call. PadWalker\n" +"is particularly useful for debugging." +msgstr "" + +#: gnu/packages/perl.scm:3903 +msgid "Simple, compact and correct param-checking functions" +msgstr "" + +#: gnu/packages/perl.scm:3905 +msgid "" +"Params::Util provides a basic set of importable functions that makes\n" +"checking parameters easier." +msgstr "" + +#: gnu/packages/perl.scm:3928 +msgid "Validate method/function parameters" +msgstr "" + +#: gnu/packages/perl.scm:3929 +msgid "" +"The Params::Validate module allows you to validate method or\n" +"function call parameters to an arbitrary level of specificity." +msgstr "" + +#: gnu/packages/perl.scm:3947 +msgid "Create and manipulate PAR distributions" +msgstr "" + +#: gnu/packages/perl.scm:3948 +msgid "" +"PAR::Dist is a toolkit to create and manipulate PAR\n" +"distributions." +msgstr "" + +#: gnu/packages/perl.scm:3967 +msgid "" +"Allows you to both load one or more modules, while setting\n" +"up inheritance from those modules at the same time." +msgstr "" + +#: gnu/packages/perl.scm:3985 +msgid "Path specification manipulation" +msgstr "" + +#: gnu/packages/perl.scm:3986 +msgid "" +"Path::Class is a module for manipulation of file and\n" +"directory specifications in a cross-platform manner." +msgstr "" + +#: gnu/packages/perl.scm:4006 +msgid "Check for comprehensive documentation of a module" +msgstr "" + +#: gnu/packages/perl.scm:4007 +msgid "" +"This module provides a mechanism for determining if the pod\n" +"for a given module is comprehensive." +msgstr "" + +#: gnu/packages/perl.scm:4024 +msgid "Parsing library for text in Pod format" +msgstr "" + +#: gnu/packages/perl.scm:4025 +msgid "" +"Pod::Simple is a Perl library for parsing text in\n" +"the Pod (plain old documentation) markup language that is typically\n" +"used for writing documentation for Perl and for Perl modules." +msgstr "" + +#: gnu/packages/perl.scm:4045 +msgid "GNU C library compatible strftime for loggers and servers" +msgstr "" + +#: gnu/packages/perl.scm:4046 +msgid "" +"POSIX::strftime::Compiler provides GNU C library compatible\n" +"strftime(3). But this module is not affected by the system locale. This\n" +"feature is useful when you want to write loggers, servers, and portable\n" +"applications." +msgstr "" + +#: gnu/packages/perl.scm:4064 +msgid "Information about the currently running perl" +msgstr "" + +#: gnu/packages/perl.scm:4066 +msgid "" +"Probe::Perl provides methods for obtaining information about the\n" +"currently running perl interpreter. It originally began life as code in the\n" +"Module::Build project, but has been externalized here for general use." +msgstr "" + +#: gnu/packages/perl.scm:4087 +msgid "Create read-only scalars, arrays, hashes" +msgstr "" + +#: gnu/packages/perl.scm:4088 +msgid "" +"This module provides a facility for creating non-modifiable\n" +"variables in Perl. This is useful for configuration files, headers, etc. It\n" +"can also be useful as a development and debugging tool for catching updates to\n" +"variables that should not be changed." +msgstr "" + +#: gnu/packages/perl.scm:4106 +msgid "Provide commonly requested regular expressions" +msgstr "" + +#: gnu/packages/perl.scm:4108 +msgid "" +"This module exports a single hash (`%RE') that stores or generates\n" +"commonly needed regular expressions. Patterns currently provided include:\n" +"balanced parentheses and brackets, delimited text (with escapes), integers and\n" +"floating-point numbers in any base (up to 36), comments in 44 languages,\n" +"offensive language, lists of any pattern, IPv4 addresses, URIs, and Zip\n" +"codes." +msgstr "" + +#: gnu/packages/perl.scm:4138 +msgid "Roles, as a slice of Moose" +msgstr "" + +#: gnu/packages/perl.scm:4139 +msgid "Role::Tiny is a minimalist role composition tool." +msgstr "" + +#: gnu/packages/perl.scm:4156 +msgid "Call isa, can, does, and DOES safely" +msgstr "" + +#: gnu/packages/perl.scm:4157 +msgid "" +"This module allows you to call isa, can, does, and DOES\n" +"safely on things that may not be objects." +msgstr "" + +#: gnu/packages/perl.scm:4175 +msgid "Lexically-scoped resource management" +msgstr "" + +#: gnu/packages/perl.scm:4176 +msgid "" +"This module provides a convenient way to perform cleanup or\n" +"other forms of resource management at the end of a scope. It is particularly\n" +"useful when dealing with exceptions: the Scope::Guard constructor takes a\n" +"reference to a subroutine that is guaranteed to be called even if the thread\n" +"of execution is aborted prematurely. This effectively allows lexically-scoped\n" +"\"promises\" to be made that are automatically honoured by perl's garbage\n" +"collector." +msgstr "" + +#: gnu/packages/perl.scm:4199 +msgid "Infinite sets" +msgstr "" + +#: gnu/packages/perl.scm:4200 +msgid "Set::Infinite is a set theory module for infinite sets." +msgstr "" + +#: gnu/packages/perl.scm:4220 +msgid "Unordered collections of Perl Objects" +msgstr "" + +#: gnu/packages/perl.scm:4221 +msgid "" +"Set::Object provides efficient sets, unordered collections\n" +"of Perl objects without duplicates for scalars and references." +msgstr "" + +#: gnu/packages/perl.scm:4239 +msgid "Set operations for Perl" +msgstr "" + +#: gnu/packages/perl.scm:4240 +msgid "" +"The first priority of Set::Scalar is to be a convenient\n" +"interface to sets (as in: unordered collections of Perl scalars). While not\n" +"designed to be slow or big, neither has it been designed to be fast or\n" +"compact." +msgstr "" + +#: gnu/packages/perl.scm:4260 +msgid "Spiffy Perl Interface Framework For You" +msgstr "" + +#: gnu/packages/perl.scm:4261 +msgid "" +"Spiffy is a framework and methodology for doing object\n" +"oriented (OO) programming in Perl. Spiffy combines the best parts of\n" +"Exporter.pm, base.pm, mixin.pm and SUPER.pm into one magic foundation class.\n" +"It attempts to fix all the nits and warts of traditional Perl OO, in a clean,\n" +"straightforward and (perhaps someday) standard way. Spiffy borrows ideas from\n" +"other OO languages like Python, Ruby, Java and Perl 6." +msgstr "" + +#: gnu/packages/perl.scm:4283 +msgid "Temporary buffer to save bytes" +msgstr "" + +#: gnu/packages/perl.scm:4284 +msgid "" +"Stream::Buffered is a buffer class to store arbitrary length\n" +"of byte strings and then get a seekable filehandle once everything is\n" +"buffered. It uses PerlIO and/or temporary file to save the buffer depending\n" +"on the length of the size." +msgstr "" + +#: gnu/packages/perl.scm:4304 +msgid "Turn on strict and make all warnings fatal" +msgstr "" + +#: gnu/packages/perl.scm:4305 +msgid "" +"Strictures turns on strict and make all warnings fatal when\n" +"run from within a source-controlled directory." +msgstr "" + +#: gnu/packages/perl.scm:4323 +msgid "Camelcase and de-camelcase" +msgstr "" + +#: gnu/packages/perl.scm:4324 +msgid "" +"This module may be used to convert from under_score text to\n" +"CamelCase and back again." +msgstr "" + +#: gnu/packages/perl.scm:4344 +msgid "Rewrite strings based on a set of known prefixes" +msgstr "" + +#: gnu/packages/perl.scm:4345 +msgid "" +"This module allows you to rewrite strings based on a set of\n" +"known prefixes." +msgstr "" + +#: gnu/packages/perl.scm:4367 +msgid "Sophisticated exporter for custom-built routines" +msgstr "" + +#: gnu/packages/perl.scm:4369 +msgid "" +"Sub::Exporter provides a sophisticated alternative to Exporter.pm for\n" +"custom-built routines." +msgstr "" + +#: gnu/packages/perl.scm:4388 +msgid "Only use Sub::Exporter if you need it" +msgstr "" + +#: gnu/packages/perl.scm:4389 +msgid "" +"Sub::Exporter is an incredibly powerful module, but with\n" +"that power comes great responsibility, as well as some runtime penalties.\n" +"This module is a \"Sub::Exporter\" wrapper that will let your users just use\n" +"Exporter if all they are doing is picking exports, but use \"Sub::Exporter\"\n" +"if your users try to use \"Sub::Exporter\"'s more advanced features, like\n" +"renaming exports, if they try to use them." +msgstr "" + +#: gnu/packages/perl.scm:4411 +msgid "Retrieve names of code references" +msgstr "" + +#: gnu/packages/perl.scm:4412 +msgid "" +"Sub::Identify allows you to retrieve the real name of code\n" +"references." +msgstr "" + +#: gnu/packages/perl.scm:4431 +msgid "Install subroutines into packages easily" +msgstr "" + +#: gnu/packages/perl.scm:4433 +msgid "" +"Sub::Install makes it easy to install subroutines into packages without\n" +"the unsightly mess of C or typeglobs lying about where just anyone\n" +"can see them." +msgstr "" + +#: gnu/packages/perl.scm:4454 +msgid "(Re)name a sub" +msgstr "" + +#: gnu/packages/perl.scm:4455 +msgid "" +"Assigns a new name to referenced sub. If package\n" +"specification is omitted in the name, then the current package is used. The\n" +"return value is the sub." +msgstr "" + +#: gnu/packages/perl.scm:4474 +msgid "Apparently run a function in a higher stack frame" +msgstr "" + +#: gnu/packages/perl.scm:4475 +msgid "" +"Like Tcl's uplevel() function, but not quite so dangerous.\n" +"The idea is just to fool caller(). All the really naughty bits of Tcl's\n" +"uplevel() are avoided." +msgstr "" + +#: gnu/packages/perl.scm:4494 +msgid "Perl extension for generating SVG documents" +msgstr "" + +#: gnu/packages/perl.scm:4495 +msgid "" +"SVG is a Perl module which generates a nested data structure\n" +"containing the DOM representation of an SVG (Scalable Vector Graphics) image.\n" +"Using SVG, you can generate SVG objects, embed other SVG instances into it,\n" +"access the DOM object, create and access Javascript, and generate SMIL\n" +"animation content." +msgstr "" + +#: gnu/packages/perl.scm:4514 +msgid "Perl extension for getting CPU information" +msgstr "" + +#: gnu/packages/perl.scm:4516 +msgid "" +"In responce to a post on perlmonks.org, a module for counting the number\n" +"of CPU's on a system. Support has now also been added for type of CPU and\n" +"clock speed." +msgstr "" + +#: gnu/packages/perl.scm:4538 +msgid "Get full hostname in Perl" +msgstr "" + +#: gnu/packages/perl.scm:4539 +msgid "" +"Sys::Hostname::Long tries very hard to get the full hostname\n" +"of a system." +msgstr "" + +#: gnu/packages/perl.scm:4557 +msgid "Ensure that a platform has weaken support" +msgstr "" + +#: gnu/packages/perl.scm:4558 +msgid "" +"One recurring problem in modules that use Scalar::Util's\n" +"weaken function is that it is not present in the pure-perl variant. If\n" +"Scalar::Util is not available at all, it will issue a normal dependency on the\n" +"module. However, if Scalar::Util is relatively new ( it is >= 1.19 ) and the\n" +"module does not have weaken, the install will bail out altogether with a long\n" +"error encouraging the user to seek support." +msgstr "" + +#: gnu/packages/perl.scm:4583 +msgid "Template processing system for Perl" +msgstr "" + +#: gnu/packages/perl.scm:4584 +msgid "" +"The Template Toolkit is a collection of modules which\n" +"implement an extensible template processing system. It was originally\n" +"designed and remains primarily useful for generating dynamic web content, but\n" +"it can be used equally well for processing any other kind of text based\n" +"documents: HTML, XML, POD, PostScript, LaTeX, and so on." +msgstr "" + +#: gnu/packages/perl.scm:4607 +msgid "Profiling for Template Toolkit" +msgstr "" + +#: gnu/packages/perl.scm:4608 +msgid "" +"Template::Timer provides inline profiling of the template\n" +"processing in Perl code." +msgstr "" + +#: gnu/packages/perl.scm:4626 +msgid "Detect encoding of the current terminal" +msgstr "" + +#: gnu/packages/perl.scm:4627 +msgid "" +"Term::Encoding is a simple module to detect the encoding of\n" +"the current terminal expects in various ways." +msgstr "" + +#: gnu/packages/perl.scm:4651 +msgid "Progress meter on a standard terminal" +msgstr "" + +#: gnu/packages/perl.scm:4652 +msgid "" +"Term::ProgressBar provides a simple progress bar on the\n" +"terminal, to let the user know that something is happening, roughly how much\n" +"stuff has been done, and maybe an estimate at how long remains." +msgstr "" + +#: gnu/packages/perl.scm:4675 +msgid "Progress meter if run interactively" +msgstr "" + +#: gnu/packages/perl.scm:4676 +msgid "" +"Term::ProgressBar is a wonderful module for showing progress\n" +"bars on the terminal. This module acts very much like that module when it is\n" +"run interactively. However, when it is not run interactively (for example, as\n" +"a cron job) then it does not show the progress bar." +msgstr "" + +#: gnu/packages/perl.scm:4698 +msgid "Simple progress bars" +msgstr "" + +#: gnu/packages/perl.scm:4699 +msgid "" +"Term::ProgressBar::Simple tells you how much work has been\n" +"done, how much is left to do, and estimate how long it will take." +msgstr "" + +#: gnu/packages/perl.scm:4717 +msgid "Simple terminal control" +msgstr "Simpel terminalkontrol" + +#: gnu/packages/perl.scm:4718 +msgid "" +"This module, ReadKey, provides ioctl control for terminals\n" +"so the input modes can be changed (thus allowing reads of a single character\n" +"at a time), and also provides non-blocking reads of stdin, as well as several\n" +"other terminal related features, including retrieval/modification of the\n" +"screen size, and retrieval/modification of the control characters." +msgstr "" + +#: gnu/packages/perl.scm:4745 +msgid "Data-driven testing framework for Perl" +msgstr "" + +#: gnu/packages/perl.scm:4746 +msgid "" +"Test::Base gives a way to trivially write your own test\n" +"framework base class. It concentrates on offering reusable data driven\n" +"patterns, so that you can write tests with a minimum of code." +msgstr "" + +#: gnu/packages/perl.scm:4777 +msgid "Check for uncleaned imports" +msgstr "" + +#: gnu/packages/perl.scm:4778 +msgid "" +"This module lets you check your module's namespaces for\n" +"imported functions you might have forgotten to remove with\n" +"namespace::autoclean or namespace::clean and are therefore available to be\n" +"called as methods, which usually isn't want you want." +msgstr "" + +#: gnu/packages/perl.scm:4798 +msgid "Flexible deep comparison for the Test::Builder framework" +msgstr "" + +#: gnu/packages/perl.scm:4800 +msgid "" +"Test::Deep compares two structures by going through each level, ensuring\n" +"that the values match, that arrays and hashes have the same elements and that\n" +"references are blessed into the correct class. It also handles circular data\n" +"structures without getting caught in an infinite loop." +msgstr "" + +#: gnu/packages/perl.scm:4825 +msgid "Test strings and data structures and show differences" +msgstr "" + +#: gnu/packages/perl.scm:4826 +msgid "" +"This module exports three test functions and four diff-style\n" +"functions." +msgstr "" + +#: gnu/packages/perl.scm:4847 +msgid "Perl extension for maintaining test directories" +msgstr "" + +#: gnu/packages/perl.scm:4848 +msgid "" +"Testing code can involve making sure that files are created\n" +"and deleted as expected. Doing this manually can be error prone, as it's easy\n" +"to forget a file, or miss that some unexpected file was added. This module\n" +"simplifies maintaining test directories by tracking their status as they are\n" +"modified or tested with this API, making it simple to test both individual\n" +"files, as well as to verify that there are no missing or unknown files." +msgstr "" + +#: gnu/packages/perl.scm:4874 +msgid "Test exception based code" +msgstr "" + +#: gnu/packages/perl.scm:4875 +msgid "" +"This module provides a few convenience methods for testing\n" +"exception based code. It is built with Test::Builder and plays happily with\n" +"Test::More and friends." +msgstr "" + +#: gnu/packages/perl.scm:4895 +msgid "Simple helpers for testing code with exceptions" +msgstr "" + +#: gnu/packages/perl.scm:4896 +msgid "" +"Test::Fatal is an alternative to the popular\n" +"Test::Exception. It does much less, but should allow greater flexibility in\n" +"testing exception-throwing code with about the same amount of typing." +msgstr "" + +#: gnu/packages/perl.scm:4926 +msgid "Run Perl standard test scripts with statistics" +msgstr "" + +#: gnu/packages/perl.scm:4927 +msgid "" +"Simple test harness which allows tests to be run and results\n" +"automatically aggregated and output to STDOUT." +msgstr "" + +#: gnu/packages/perl.scm:4945 +msgid "Traces memory leaks in Perl" +msgstr "" + +#: gnu/packages/perl.scm:4946 +msgid "" +"Test::LeakTrace provides several functions that trace memory\n" +"leaks. This module scans arenas, the memory allocation system, so it can\n" +"detect any leaked SVs in given blocks." +msgstr "" + +#: gnu/packages/perl.scm:4965 +msgid "Tests strings for equality, with more helpful failures" +msgstr "" + +#: gnu/packages/perl.scm:4966 +msgid "" +"This module provides some drop-in replacements for the\n" +"string comparison functions of Test::More, but which are more suitable when\n" +"you test against long strings." +msgstr "" + +#: gnu/packages/perl.scm:4993 +msgid "Emulate troublesome interfaces in Perl" +msgstr "" + +#: gnu/packages/perl.scm:4994 +msgid "" +"Test::MockObject allows you to create objects that conform\n" +"to particular interfaces with very little code. You don't have to reimplement\n" +"the behavior, just the input and the output." +msgstr "" + +#: gnu/packages/perl.scm:5013 +msgid "Replaces actual time with simulated time" +msgstr "" + +#: gnu/packages/perl.scm:5014 +msgid "" +"This module was created to enable test suites to test code\n" +"at specific points in time. Specifically it overrides localtime, gmtime and\n" +"time at compile time and then relies on the user supplying a mock time via\n" +"set_relative_time, set_absolute_time or set_fixed_time to alter future calls\n" +"to gmtime,time or localtime." +msgstr "" + +#: gnu/packages/perl.scm:5041 +msgid "Most commonly needed test functions and features" +msgstr "" + +#: gnu/packages/perl.scm:5042 +msgid "" +"This module provides the most commonly used testing\n" +"functions, along with automatically turning on strict and warning and gives a\n" +"bit more fine-grained control over test suites." +msgstr "" + +#: gnu/packages/perl.scm:5060 +msgid "Ensure no warnings are produced while testing" +msgstr "" + +#: gnu/packages/perl.scm:5062 +msgid "" +"This modules causes any warnings during testing to be captured and\n" +"stored. It automatically adds an extra test that will run when your script\n" +"ends to check that there were no warnings. If there were any warnings, the\n" +"test will fail and output diagnostics of where, when and what the warning was,\n" +"including a stack trace of what was going on when it occurred." +msgstr "" + +#: gnu/packages/perl.scm:5087 +msgid "Utilities to test STDOUT and STDERR messages" +msgstr "" + +#: gnu/packages/perl.scm:5089 +msgid "" +"Test::Output provides a simple interface for testing output sent to\n" +"STDOUT or STDERR. A number of different utilities are included to try and be\n" +"as flexible as possible to the tester." +msgstr "" + +#: gnu/packages/perl.scm:5110 +msgid "Check for POD errors in files" +msgstr "" + +#: gnu/packages/perl.scm:5111 +msgid "" +"Check POD files for errors or warnings in a test file, using\n" +"Pod::Simple to do the heavy lifting." +msgstr "" + +#: gnu/packages/perl.scm:5131 +msgid "Check for pod coverage" +msgstr "" + +#: gnu/packages/perl.scm:5132 +msgid "" +"This module adds a test to your Perl distribution which\n" +"checks for pod coverage of all appropriate files." +msgstr "" + +#: gnu/packages/perl.scm:5150 +msgid "Checks to see if the module can be loaded" +msgstr "" + +#: gnu/packages/perl.scm:5151 +msgid "" +"Test::Requires checks to see if the module can be loaded.\n" +"If this fails, then rather than failing tests this skips all tests." +msgstr "" + +#: gnu/packages/perl.scm:5170 +msgid "Basic cross-platform tests for scripts" +msgstr "" + +#: gnu/packages/perl.scm:5172 +msgid "" +"The intent of the Test::Script module is to provide a series of basic\n" +"tests for 80% of the testing you will need to do for scripts in the script (or\n" +"bin as is also commonly used) paths of your Perl distribution." +msgstr "" + +#: gnu/packages/perl.scm:5195 +msgid "Fork test in Perl" +msgstr "" + +#: gnu/packages/perl.scm:5196 +msgid "" +"Test::SharedFork is a utility module for Test::Builder. It\n" +"makes fork(2) safe to use in test cases." +msgstr "" + +#: gnu/packages/perl.scm:5212 +msgid "Basic utilities for writing tests" +msgstr "" + +#: gnu/packages/perl.scm:5214 +msgid "Test::Simple contains basic utilities for writing tests." +msgstr "" + +#: gnu/packages/perl.scm:5231 +msgid "Simplify running Test::Builder tests" +msgstr "" + +#: gnu/packages/perl.scm:5233 +msgid "" +"Test::Tester allows testing of test modules based on Test::Builder with\n" +"a minimum of effort." +msgstr "" + +#: gnu/packages/perl.scm:5257 +msgid "Trap exit codes, exceptions, output, etc." +msgstr "" + +#: gnu/packages/perl.scm:5258 +msgid "" +"This module is primarily (but not exclusively) for use in\n" +"test scripts: A block eval configurable and extensible but by default trapping\n" +"STDOUT, STDERR, warnings, exceptions, would-be exit codes, and return values\n" +"from boxed blocks of test code." +msgstr "" + +#: gnu/packages/perl.scm:5278 +msgid "UTF-8 testing in Perl" +msgstr "" + +#: gnu/packages/perl.scm:5279 +msgid "" +"This module is a collection of tests useful for dealing with\n" +"UTF-8 strings in Perl. This module has two types of tests: The validity tests\n" +"check if a string is valid and not corrupt, whereas the characteristics tests\n" +"will check that string has a given set of characteristics." +msgstr "" + +#: gnu/packages/perl.scm:5301 +msgid "Perl extension to test methods for warnings" +msgstr "" + +#: gnu/packages/perl.scm:5302 +msgid "" +"This module provides a few convenience methods for testing\n" +"warning based code." +msgstr "" + +#: gnu/packages/perl.scm:5320 +msgid "Test for warnings and the lack of them" +msgstr "" + +#: gnu/packages/perl.scm:5321 +msgid "" +"This module is intended to be used as a drop-in replacement\n" +"for Test::NoWarnings. It also adds an extra test, but runs this test before\n" +"done_testing calculates the test count, rather than after. It does this by\n" +"hooking into done_testing as well as via an END block. You can declare a\n" +"plan, or not, and things will still Just Work." +msgstr "" + +#: gnu/packages/perl.scm:5342 +msgid "Test fallback behaviour in absence of modules" +msgstr "" + +#: gnu/packages/perl.scm:5343 +msgid "" +"This module allows you to deliberately hide modules from a\n" +"program even though they are installed. This is mostly useful for testing\n" +"modules that have a fallback when a certain dependency module is not\n" +"installed." +msgstr "" + +#: gnu/packages/perl.scm:5369 +msgid "Dynamic generation of tests" +msgstr "" + +#: gnu/packages/perl.scm:5370 +msgid "" +"The Test::WriteVariants module provides for the dynamic\n" +"generation of tests in nested combinations of contexts." +msgstr "" + +#: gnu/packages/perl.scm:5390 +msgid "Testing module for YAML implementations" +msgstr "" + +#: gnu/packages/perl.scm:5391 +msgid "" +"Test::YAML is a subclass of Test::Base with YAML specific\n" +"support." +msgstr "" + +#: gnu/packages/perl.scm:5409 +msgid "Align text" +msgstr "" + +#: gnu/packages/perl.scm:5410 +msgid "" +"Text::Aligner exports a single function, align(), which is\n" +"used to justify strings to various alignment styles." +msgstr "" + +#: gnu/packages/perl.scm:5428 +msgid "Extract delimited text sequences from strings" +msgstr "" + +#: gnu/packages/perl.scm:5429 +msgid "" +"The Text::Balanced module can be used to extract delimited\n" +"text sequences from strings." +msgstr "" + +#: gnu/packages/perl.scm:5447 +msgid "Manipulate comma-separated values" +msgstr "" + +#: gnu/packages/perl.scm:5448 +msgid "" +"Text::CSV provides facilities for the composition and\n" +"decomposition of comma-separated values. An instance of the Text::CSV class\n" +"can combine fields into a CSV string and parse a CSV string into fields." +msgstr "" + +#: gnu/packages/perl.scm:5469 +msgid "Perform diffs on files and record sets" +msgstr "" + +#: gnu/packages/perl.scm:5470 +msgid "" +"Text::Diff provides a basic set of services akin to the GNU\n" +"diff utility. It is not anywhere near as feature complete as GNU diff, but it\n" +"is better integrated with Perl and available on all platforms. It is often\n" +"faster than shelling out to a system's diff executable for small files, and\n" +"generally slower on larger files." +msgstr "" + +#: gnu/packages/perl.scm:5491 +msgid "Match globbing patterns against text" +msgstr "" + +#: gnu/packages/perl.scm:5492 +msgid "" +"Text::Glob implements glob(3) style matching that can be\n" +"used to match against text, rather than fetching names from a filesystem. If\n" +"you want to do full file globbing use the File::Glob module instead." +msgstr "" + +#: gnu/packages/perl.scm:5511 +msgid "Simple ASCII tables" +msgstr "" + +#: gnu/packages/perl.scm:5512 +msgid "Text::SimpleTable draws simple ASCII tables." +msgstr "" + +#: gnu/packages/perl.scm:5531 +msgid "Organize Data in Tables" +msgstr "" + +#: gnu/packages/perl.scm:5532 +msgid "Text::Table renders plaintext tables." +msgstr "" + +#: gnu/packages/perl.scm:5549 +msgid "Provide plain ASCII transliterations of Unicode text" +msgstr "" + +#: gnu/packages/perl.scm:5550 +msgid "" +"Text::Unidecode provides a function, unidecode(...) that\n" +"takes Unicode data and tries to represent it in US-ASCII characters (i.e., the\n" +"universally displayable characters between 0x00 and 0x7F). The representation\n" +"is almost always an attempt at transliteration-- i.e., conveying, in Roman\n" +"letters, the pronunciation expressed by the text in some other writing\n" +"system." +msgstr "" + +#: gnu/packages/perl.scm:5578 +msgid "Role for classes that can be thrown" +msgstr "" + +#: gnu/packages/perl.scm:5579 +msgid "" +"Throwable is a role for classes that are meant to be thrown\n" +"as exceptions to standard program flow." +msgstr "" + +#: gnu/packages/perl.scm:5597 +msgid "Ordered associative arrays for Perl" +msgstr "" + +#: gnu/packages/perl.scm:5598 +msgid "" +"This Perl module implements Perl hashes that preserve the\n" +"order in which the hash elements were added. The order is not affected when\n" +"values corresponding to existing keys in the IxHash are changed. The elements\n" +"can also be set to any arbitrary supplied order. The familiar perl array\n" +"operations can also be performed on the IxHash." +msgstr "" + +#: gnu/packages/perl.scm:5621 +msgid "Tie to an existing Perl object" +msgstr "" + +#: gnu/packages/perl.scm:5622 +msgid "" +"This class provides a tie constructor that returns the\n" +"object it was given as it's first argument. This way side effects of calling\n" +"$object->TIEHASH are avoided." +msgstr "" + +#: gnu/packages/perl.scm:5644 +msgid "English expression of durations" +msgstr "" + +#: gnu/packages/perl.scm:5645 +msgid "" +"This module provides functions for expressing durations in\n" +"rounded or exact terms." +msgstr "" + +#: gnu/packages/perl.scm:5667 +msgid "Parse time duration strings" +msgstr "" + +#: gnu/packages/perl.scm:5668 +msgid "" +"Time::Duration::Parse is a module to parse human readable\n" +"duration strings like \"2 minutes\" and \"3 seconds\" to seconds." +msgstr "" + +#: gnu/packages/perl.scm:5686 +msgid "Efficiently compute time from local and GMT time" +msgstr "" + +#: gnu/packages/perl.scm:5687 +msgid "" +"This module provides functions that are the inverse of\n" +"built-in perl functions localtime() and gmtime(). They accept a date as a\n" +"six-element array, and return the corresponding time(2) value in seconds since\n" +"the system epoch." +msgstr "" + +#: gnu/packages/perl.scm:5707 +msgid "Date parsing/formatting subroutines" +msgstr "" + +#: gnu/packages/perl.scm:5708 +msgid "" +"This module provides routines for parsing date string into\n" +"time values and formatting dates into ASCII strings." +msgstr "" + +#: gnu/packages/perl.scm:5728 +msgid "Shift and scale time" +msgstr "" + +#: gnu/packages/perl.scm:5729 +msgid "" +"This module allows you to speed up your sleep(), alarm(),\n" +"and time() calls." +msgstr "" + +#: gnu/packages/perl.scm:5752 +msgid "Simple tree object" +msgstr "" + +#: gnu/packages/perl.scm:5753 +msgid "" +"This module in a fully object-oriented implementation of a\n" +"simple n-ary tree." +msgstr "" + +#: gnu/packages/perl.scm:5776 +msgid "Factory object for dispensing Visitor objects" +msgstr "" + +#: gnu/packages/perl.scm:5777 +msgid "" +"This module is a factory for dispensing\n" +"Tree::Simple::Visitor::* objects." +msgstr "" + +#: gnu/packages/perl.scm:5795 +msgid "Minimal try/catch with proper preservation of $@" +msgstr "" + +#: gnu/packages/perl.scm:5796 +msgid "" +"This module provides bare bones try/catch/finally statements\n" +"that are designed to minimize common mistakes with eval blocks, and nothing\n" +"else." +msgstr "" + +#: gnu/packages/perl.scm:5817 +msgid "Data types for common serialisation formats" +msgstr "" + +#: gnu/packages/perl.scm:5818 +msgid "" +"This module provides some extra datatypes that are used by\n" +"common serialisation formats such as JSON or CBOR." +msgstr "" + +#: gnu/packages/perl.scm:5836 +msgid "UNIVERSAL::can() reimplementation" +msgstr "" + +#: gnu/packages/perl.scm:5837 +msgid "" +"This module attempts to work around people calling\n" +"UNIVERSAL::can() as a function, which it is not." +msgstr "" + +#: gnu/packages/perl.scm:5857 +msgid "UNIVERSAL::isa() reimplementation" +msgstr "" + +#: gnu/packages/perl.scm:5858 +msgid "" +"This module attempts to recover from people calling\n" +"UNIVERSAL::isa as a function." +msgstr "" + +#: gnu/packages/perl.scm:5876 +msgid "Associate user-defined magic to variables from Perl" +msgstr "" + +#: gnu/packages/perl.scm:5877 +msgid "" +"Magic is Perl's way of enhancing variables. This mechanism\n" +"lets the user add extra data to any variable and hook syntactical\n" +"operations (such as access, assignment or destruction) that can be applied to\n" +"it. With this module, you can add your own magic to any variable without\n" +"having to write a single line of XS." +msgstr "" + +#: gnu/packages/perl.scm:5900 +msgid "YAML for Perl" +msgstr "" + +#: gnu/packages/perl.scm:5901 +msgid "" +"The YAML.pm module implements a YAML Loader and Dumper based\n" +"on the YAML 1.0 specification." +msgstr "" + +#: gnu/packages/perl.scm:5924 +msgid "Read/Write YAML files" +msgstr "" + +#: gnu/packages/perl.scm:5925 +msgid "" +"YAML::Tiny is a perl class for reading and writing\n" +"YAML-style files, written with as little code as possible, reducing load time\n" +"and memory overhead." +msgstr "" + +#: gnu/packages/perl.scm:5952 +msgid "Distribution metadata for a CPAN dist" +msgstr "" + +#: gnu/packages/perl.scm:5953 +msgid "" +"Software distributions released to the CPAN include a\n" +"META.json or, for older distributions, META.yml, which describes the\n" +"distribution, its contents, and the requirements for building and installing\n" +"the distribution. The data structure stored in the META.json file is\n" +"described in CPAN::Meta::Spec. CPAN::Meta provides a simple class to\n" +"represent this distribution metadata (or distmeta), along with some helpful\n" +"methods for interrogating that data." +msgstr "" + +#: gnu/packages/perl.scm:5976 +msgid "Set of version requirements for a CPAN dist" +msgstr "" + +#: gnu/packages/perl.scm:5977 +msgid "" +"A CPAN::Meta::Requirements object models a set of version\n" +"constraints like those specified in the META.yml or META.json files in CPAN\n" +"distributions, and as defined by CPAN::Meta::Spec. It can be built up by\n" +"adding more and more constraints, and will reduce them to the simplest\n" +"representation." +msgstr "" + +#: gnu/packages/perl.scm:6000 +msgid "Read and write a subset of YAML for CPAN Meta files" +msgstr "" + +#: gnu/packages/perl.scm:6001 +msgid "" +"This module implements a subset of the YAML specification\n" +"for use in reading and writing CPAN metadata files like META.yml and\n" +"MYMETA.yml." +msgstr "" + +#: gnu/packages/perl.scm:6022 +msgid "Build and install Perl modules" +msgstr "" + +#: gnu/packages/perl.scm:6023 +msgid "" +"\"Module::Build\" is a system for building, testing, and\n" +"installing Perl modules. It is meant to be an alternative to\n" +"\"ExtUtils::MakeMaker\". Developers may alter the behavior of the module\n" +"through subclassing in a much more straightforward way than with\n" +"\"MakeMaker\". It also does not require a \"make\" on your system - most of\n" +"the \"Module::Build\" code is pure-perl and written in a cross-platform way." +msgstr "" + +#: gnu/packages/perl.scm:6047 +msgid "Parse META.yml and META.json CPAN metadata files" +msgstr "" + +#: gnu/packages/perl.scm:6048 +msgid "" +"Parse::CPAN::Meta is a parser for META.json and META.yml\n" +"files, using JSON::PP and/or CPAN::Meta::YAML." +msgstr "" + +#: gnu/packages/perl.scm:6066 +msgid "Common Scalar and List utility subroutines" +msgstr "" + +#: gnu/packages/perl.scm:6067 +msgid "" +"This package contains a selection of subroutines that people\n" +"have expressed would be nice to have in the perl core, but the usage would not\n" +"really be high enough to warrant the use of a keyword, and the size so small\n" +"such that being individual extensions would be wasteful." +msgstr "" + +#: gnu/packages/photo.scm:61 +msgid "Raw image decoder" +msgstr "" + +#: gnu/packages/photo.scm:63 +msgid "" +"LibRaw is a library for reading RAW files obtained from digital photo\n" +"cameras (CRW/CR2, NEF, RAF, DNG, and others)." +msgstr "" + +#: gnu/packages/photo.scm:80 +msgid "Read and manipulate EXIF data in digital photographs" +msgstr "" + +#: gnu/packages/photo.scm:82 +msgid "" +"The libexif C library allows applications to read, edit, and save EXIF\n" +"data as produced by digital cameras." +msgstr "" + +#: gnu/packages/photo.scm:107 +msgid "Accessing digital cameras" +msgstr "" + +#: gnu/packages/photo.scm:109 +msgid "" +"This is the library backend for gphoto2. It contains the code for PTP,\n" +"MTP, and other vendor specific protocols for controlling and transferring data\n" +"from digital cameras." +msgstr "" + +#: gnu/packages/photo.scm:150 +msgid "Command-line tools to access digital cameras" +msgstr "" + +#: gnu/packages/photo.scm:152 +msgid "" +"Gphoto2 is a set of command line utilities for manipulating a large\n" +"number of different digital cameras. Through libgphoto2, it supports PTP,\n" +"MTP, and much more." +msgstr "" + +#: gnu/packages/photo.scm:186 +msgid "Program and Perl library to manipulate EXIF tags" +msgstr "" + +#: gnu/packages/photo.scm:188 +msgid "" +"This package provides the 'exiftool' command and the 'Image::ExifTool'\n" +"Perl library to manipulate EXIF tags of digital images." +msgstr "" + +#: gnu/packages/photo.scm:211 +msgid "Library for panoramic images" +msgstr "" + +#: gnu/packages/photo.scm:213 +msgid "" +"The libpano13 package contains the backend library written by the\n" +"Panorama Tools project for building panoramic images from a set of\n" +"overlapping images, as well as some command line tools." +msgstr "" + +#: gnu/packages/photo.scm:255 +msgid "Tools for combining and blending images" +msgstr "" + +#: gnu/packages/photo.scm:257 +msgid "" +"Enblend blends away the seams in a panoramic image mosaic using a\n" +"multi-resolution spline. Enfuse merges different exposures of the same\n" +"scene to produce an image that looks much like a tone-mapped image." +msgstr "" + +#: gnu/packages/qemu.scm:119 +msgid "Machine emulator and virtualizer (without GUI)" +msgstr "" + +#: gnu/packages/qemu.scm:121 +msgid "" +"QEMU is a generic machine emulator and virtualizer.\n" +"\n" +"When used as a machine emulator, QEMU can run OSes and programs made for one\n" +"machine (e.g. an ARM board) on a different machine---e.g., your own PC. By\n" +"using dynamic translation, it achieves very good performance.\n" +"\n" +"When used as a virtualizer, QEMU achieves near native performances by\n" +"executing the guest code directly on the host CPU. QEMU supports\n" +"virtualization when executing under the Xen hypervisor or using\n" +"the KVM kernel module in Linux. When using KVM, QEMU can virtualize x86,\n" +"server and embedded PowerPC, and S390 guests." +msgstr "" + +#: gnu/packages/qemu.scm:143 +msgid "Machine emulator and virtualizer" +msgstr "" + +#: gnu/packages/ratpoison.scm:85 +msgid "Simple mouse-free tiling window manager" +msgstr "" + +#: gnu/packages/ratpoison.scm:87 +msgid "" +"Ratpoison is a simple window manager with no fat library\n" +"dependencies, no fancy graphics, no window decorations, and no\n" +"rodent dependence. It is largely modelled after GNU Screen which\n" +"has done wonders in the virtual terminal market.\n" +"\n" +"The screen can be split into non-overlapping frames. All windows\n" +"are kept maximized inside their frames to take full advantage of\n" +"your precious screen real estate.\n" +"\n" +"All interaction with the window manager is done through keystrokes.\n" +"Ratpoison has a prefix map to minimize the key clobbering that\n" +"cripples Emacs and other quality pieces of software." +msgstr "" + +#: gnu/packages/readline.scm:68 +msgid "Edit command lines while typing, with history support" +msgstr "" + +#: gnu/packages/readline.scm:70 +msgid "" +"The GNU readline library allows users to edit command lines as they\n" +"are typed in. It can maintain a searchable history of previously entered\n" +"commands, letting you easily recall, edit and re-enter past commands. It\n" +"features both Emacs-like and vi-like keybindings, making its usage\n" +"comfortable for anyone." +msgstr "" + +#: gnu/packages/scanner.scm:70 +msgid "Raster image scanner library and drivers" +msgstr "" + +#: gnu/packages/scanner.scm:71 +msgid "" +"SANE stands for \"Scanner Access Now Easy\" and is an API\n" +"proving access to any raster image scanner hardware (flatbed scanner,\n" +"hand-held scanner, video- and still-cameras, frame-grabbers, etc.). The\n" +"package contains the library and drivers." +msgstr "" + +#: gnu/packages/scheme.scm:132 +msgid "A Scheme implementation with integrated editor and debugger" +msgstr "" + +#: gnu/packages/scheme.scm:134 +msgid "" +"GNU/MIT Scheme is an implementation of the Scheme programming\n" +"language. It provides an interpreter, a compiler and a debugger. It also\n" +"features an integrated Emacs-like editor and a large runtime library." +msgstr "" + +#: gnu/packages/scheme.scm:217 +msgid "Efficient Scheme compiler" +msgstr "" + +#: gnu/packages/scheme.scm:219 +msgid "" +"Bigloo is a Scheme implementation devoted to one goal: enabling\n" +"Scheme based programming style where C(++) is usually\n" +"required. Bigloo attempts to make Scheme practical by offering\n" +"features usually presented by traditional programming languages\n" +"but not offered by Scheme and functional programming. Bigloo\n" +"compiles Scheme modules. It delivers small and fast stand alone\n" +"binary executables. Bigloo enables full connections between\n" +"Scheme and C programs and between Scheme and Java programs." +msgstr "" + +#: gnu/packages/scheme.scm:262 +msgid "Multi-tier programming language for the Web 2.0" +msgstr "" + +#: gnu/packages/scheme.scm:264 +msgid "" +"HOP is a multi-tier programming language for the Web 2.0 and the\n" +"so-called diffuse Web. It is designed for programming interactive web\n" +"applications in many fields such as multimedia (web galleries, music players,\n" +"...), ubiquitous and house automation (SmartPhones, personal appliance),\n" +"mashups, office (web agendas, mail clients, ...), etc." +msgstr "" + +#: gnu/packages/scheme.scm:304 +msgid "R5RS Scheme implementation that compiles native code via C" +msgstr "" + +#: gnu/packages/scheme.scm:306 +msgid "" +"CHICKEN is a compiler for the Scheme programming language. CHICKEN\n" +"produces portable and efficient C, supports almost all of the R5RS Scheme\n" +"language standard, and includes many enhancements and extensions." +msgstr "" + +#: gnu/packages/scheme.scm:325 +msgid "Scheme implementation using a bytecode interpreter" +msgstr "" + +#: gnu/packages/scheme.scm:327 +msgid "" +"Scheme 48 is an implementation of Scheme based on a byte-code\n" +"interpreter and is designed to be used as a testbed for experiments in\n" +"implementation techniques and as an expository tool." +msgstr "" + +#: gnu/packages/scheme.scm:403 +msgid "Implementation of Scheme and related languages" +msgstr "" + +#: gnu/packages/scheme.scm:405 +msgid "" +"Racket is an implementation of the Scheme programming language (R5RS and\n" +"R6RS) and related languages, such as Typed Racket. It features a compiler and\n" +"a virtual machine with just-in-time native compilation, as well as a large set\n" +"of libraries." +msgstr "" + +#: gnu/packages/scheme.scm:443 +msgid "Efficient Scheme interpreter and compiler" +msgstr "" + +#: gnu/packages/scheme.scm:445 +msgid "" +"Gambit consists of two main programs: gsi, the Gambit Scheme\n" +"interpreter, and gsc, the Gambit Scheme compiler. The interpreter contains\n" +"the complete execution and debugging environment. The compiler is the\n" +"interpreter extended with the capability of generating executable files. The\n" +"compiler can produce standalone executables or compiled modules which can be\n" +"loaded at run time. Interpreted code and compiled code can be freely\n" +"mixed." +msgstr "" + +#: gnu/packages/scheme.scm:482 +msgid "Small embeddable Scheme implementation" +msgstr "" + +#: gnu/packages/scheme.scm:484 +msgid "" +"Chibi-Scheme is a very small library with no external dependencies\n" +"intended for use as an extension and scripting language in C programs. In\n" +"addition to support for lightweight VM-based threads, each VM itself runs in\n" +"an isolated heap allowing multiple VMs to run simultaneously in different OS\n" +"threads." +msgstr "" + +#: gnu/packages/scheme.scm:660 +msgid "Scmutils library for MIT Scheme" +msgstr "" + +#: gnu/packages/scheme.scm:661 +msgid "" +"The Scmutils system is an integrated library of\n" +"procedures, embedded in the programming language Scheme, and intended to\n" +"support teaching and research in mathematical physics and electrical\n" +"engineering." +msgstr "" + +#: gnu/packages/search.scm:52 +msgid "Search Engine Library" +msgstr "" + +#: gnu/packages/search.scm:54 +msgid "" +"Xapian is a highly adaptable toolkit which allows developers to easily\n" +"add advanced indexing and search facilities to their own applications. It\n" +"supports the Probabilistic Information Retrieval model and also supports a\n" +"rich set of boolean query operators." +msgstr "" + +#: gnu/packages/search.scm:97 +msgid "Tool for Obsessive Compulsive Classifiers" +msgstr "" + +#: gnu/packages/search.scm:99 +msgid "" +"libtocc is the engine of the Tocc project, a tag-based file management\n" +"system. The goal of Tocc is to provide a better system for classifying files\n" +"that is more flexible than classic file systems that are based on a tree of\n" +"files and directories." +msgstr "" + +#: gnu/packages/search.scm:121 +msgid "Command-line interface to libtocc" +msgstr "" + +#: gnu/packages/search.scm:123 +msgid "" +"Tocc is a tag-based file management system. This package contains the\n" +"command line tool for interacting with libtocc." +msgstr "" + +#: gnu/packages/search.scm:141 +msgid "Finding text and HTML files that match boolean expressions" +msgstr "" + +#: gnu/packages/search.scm:143 +msgid "" +"GNU Bool is a utility to perform text searches on files using Boolean\n" +"expressions. For example, a search for \"hello AND world\" would return a\n" +"file containing the phrase \"Hello, world!\". It supports both AND and OR\n" +"statements, as well as the NEAR statement to search for the occurrence of\n" +"words in close proximity to each other. It handles context gracefully,\n" +"accounting for new lines and paragraph changes. It also has robust support\n" +"for parsing HTML files." +msgstr "" + +#: gnu/packages/serveez.scm:51 +msgid "Framework for implementing IP-based servers" +msgstr "" + +#: gnu/packages/serveez.scm:53 +msgid "" +"GNU Serveez is a server framework providing the routines necessary to\n" +"easily implement IP-based servers in your application. It\n" +"demonstrates aspects of network programming in a portable manner,\n" +"making it convenient for both simplifying the process of adding a\n" +"server to your application or for learning about how network services\n" +"work. Several example servers are provided already, such as an HTTP\n" +"server and an IRC server." +msgstr "" + +#: gnu/packages/telephony.scm:50 +msgid "(u)Common C++ framework for threaded applications" +msgstr "" + +#: gnu/packages/telephony.scm:51 +msgid "" +"GNU Common C++ is an portable, optimized class framework for\n" +"threaded applications, supporting concurrent synchronization, inter-process\n" +"communications via sockets, and various methods for data handling, such as\n" +"serialization and XML parsing. It includes the uCommon C++ library, a smaller\n" +"reimplementation." +msgstr "" + +#: gnu/packages/telephony.scm:70 +msgid "Common C++ framework for threaded applications" +msgstr "" + +#: gnu/packages/telephony.scm:71 +msgid "" +"GNU uCommon C++ is meant as a very light-weight C++ library\n" +"to facilitate using C++ design patterns even for very deeply embedded\n" +"applications, such as for systems using uclibc along with posix threading\n" +"support." +msgstr "" + +#: gnu/packages/telephony.scm:92 +msgid "Implementation of RTP (real-time transport protocol)" +msgstr "" + +#: gnu/packages/telephony.scm:93 +msgid "" +"GNU ccRTP is an implementation of RTP, the real-time transport\n" +"protocol from the IETF. It is suitable both for high capacity servers and\n" +"personal client applications. It is flexible in its design, allowing it to\n" +"function as a framework for the framework, rather than just being a\n" +"packet-manipulation library." +msgstr "" + +#: gnu/packages/telephony.scm:113 +msgid "Library implementing SIP (RFC-3261)" +msgstr "" + +#: gnu/packages/telephony.scm:114 +msgid "" +"GNU oSIP is an implementation of the SIP protocol. It is\n" +"used to provide multimedia and telecom software developers with an interface\n" +"to initiate and control SIP sessions." +msgstr "" + +#: gnu/packages/telephony.scm:134 +msgid "Sip abstraction library" +msgstr "" + +#: gnu/packages/telephony.scm:135 +msgid "" +"EXosip is a library that hides the complexity of using the\n" +"SIP protocol for multimedia session establishment. This protocol is mainly to\n" +"be used by VoIP telephony applications (endpoints or conference server) but\n" +"might be also useful for any application that wish to establish sessions like\n" +"multiplayer games." +msgstr "" + +#: gnu/packages/telephony.scm:178 +msgid "Secure peer-to-peer VoIP server for the SIP protocol" +msgstr "" + +#: gnu/packages/telephony.scm:179 +msgid "" +"GNU SIP Witch is a peer-to-peer Voice-over-IP server that\n" +"uses the SIP protocol. Calls can be made from behind NAT firewalls and\n" +"without the need for a service provider. Its peer-to-peer design ensures that\n" +"there is no central point for media intercept or capture and thus it can be\n" +"used to construct a secure telephone system that operates over the public\n" +"internet." +msgstr "" + +#: gnu/packages/telephony.scm:204 +msgid "Secure RTP (SRTP) Reference Implementation" +msgstr "" + +#: gnu/packages/telephony.scm:205 +msgid "" +"This package provides an implementation of the Secure\n" +"Real-time Transport Protocol (SRTP), the Universal Security Transform (UST),\n" +"and a supporting cryptographic kernel." +msgstr "" + +#: gnu/packages/texinfo.scm:56 +msgid "The GNU documentation format" +msgstr "" + +#: gnu/packages/texinfo.scm:58 +msgid "" +"Texinfo is the official documentation format of the GNU project. It\n" +"uses a single source file using explicit commands to produce a final document\n" +"in any of several supported output formats, such as HTML or PDF. This\n" +"package includes both the tools necessary to produce Info documents from\n" +"their source and the command-line Info reader. The emphasis of the language\n" +"is on expressing the content semantically, avoiding physical markup commands." +msgstr "" + +#: gnu/packages/texinfo.scm:116 +msgid "Convert Texinfo to HTML" +msgstr "" + +#: gnu/packages/texinfo.scm:118 +msgid "" +"Texi2HTML is a Perl script which converts Texinfo source files to HTML\n" +"output. It now supports many advanced features, such as internationalization\n" +"and extremely configurable output formats.\n" +"\n" +"Development of Texi2HTML moved to the GNU Texinfo repository in 2010, since it\n" +"was meant to replace the makeinfo implementation in GNU Texinfo. The route\n" +"forward for authors is, in most cases, to alter manuals and build processes as\n" +"necessary to use the new features of the makeinfo/texi2any implementation of\n" +"GNU Texinfo. The Texi2HTML maintainers (one of whom is the principal author\n" +"of the GNU Texinfo implementation) do not intend to make further releases of\n" +"Texi2HTML." +msgstr "" + +#: gnu/packages/texlive.scm:156 gnu/packages/texlive.scm:216 +#: gnu/packages/texlive.scm:274 +msgid "TeX Live, a package of the TeX typesetting system" +msgstr "" + +#: gnu/packages/texlive.scm:158 +msgid "" +"TeX Live provides a comprehensive TeX document production system.\n" +"It includes all the major TeX-related programs, macro packages, and fonts\n" +"that are free software, including support for many languages around the\n" +"world.\n" +"\n" +"This package contains the binaries." +msgstr "" + +#: gnu/packages/texlive.scm:218 +msgid "" +"TeX Live provides a comprehensive TeX document production system.\n" +"It includes all the major TeX-related programs, macro packages, and fonts\n" +"that are free software, including support for many languages around the\n" +"world.\n" +"\n" +"This package contains the complete tree of texmf-dist data." +msgstr "" + +#: gnu/packages/texlive.scm:276 +msgid "" +"TeX Live provides a comprehensive TeX document production system.\n" +"It includes all the major TeX-related programs, macro packages, and fonts\n" +"that are free software, including support for many languages around the\n" +"world.\n" +"\n" +"This package contains the complete TeX Live distribution." +msgstr "" + +#: gnu/packages/texlive.scm:305 +msgid "Wrapper for LaTeX and friends" +msgstr "" + +#: gnu/packages/texlive.scm:307 +msgid "" +"Rubber is a program whose purpose is to handle all tasks related to the\n" +"compilation of LaTeX documents. This includes compiling the document itself,\n" +"of course, enough times so that all references are defined, and running BibTeX\n" +"to manage bibliographic references. Automatic execution of dvips to produce\n" +"PostScript documents is also included, as well as usage of pdfLaTeX to produce\n" +"PDF documents." +msgstr "" + +#: gnu/packages/textutils.scm:58 +msgid "Text encoding converter" +msgstr "" + +#: gnu/packages/textutils.scm:59 +msgid "" +"The Recode library converts files between character sets and\n" +"usages. It recognises or produces over 200 different character sets (or about\n" +"300 if combined with an iconv library) and transliterates files between almost\n" +"any pair. When exact transliteration are not possible, it gets rid of\n" +"offending characters or falls back on approximations. The recode program is a\n" +"handy front-end to the library." +msgstr "" + +#: gnu/packages/textutils.scm:86 +msgid "Text encoding detection tool" +msgstr "" + +#: gnu/packages/textutils.scm:87 +msgid "" +"Enca (Extremely Naive Charset Analyser) consists of libenca,\n" +"an encoding detection library, and enca, a command line frontend, integrating\n" +"libenca and several charset conversion libraries and tools." +msgstr "" + +#: gnu/packages/textutils.scm:122 +msgid "C library for processing UTF-8 Unicode data" +msgstr "" + +#: gnu/packages/textutils.scm:123 +msgid "" +"utf8proc is a small C library that provides Unicode\n" +"normalization, case-folding, and other operations for data in the UTF-8\n" +"encoding, supporting Unicode version 7.0." +msgstr "" + +#: gnu/packages/textutils.scm:152 +msgid "Gordon's text utils library" +msgstr "" + +#: gnu/packages/textutils.scm:154 +msgid "" +"libgtextutils is a text utilities library used by the fastx toolkit from\n" +"the Hannon Lab." +msgstr "" + +#: gnu/packages/textutils.scm:175 +msgid "C++ hash functions for strings" +msgstr "" + +#: gnu/packages/textutils.scm:177 +msgid "" +"CityHash provides hash functions for strings. The functions mix the\n" +"input bits thoroughly but are not suitable for cryptography." +msgstr "" + +#: gnu/packages/version-control.scm:97 +msgid "Version control system supporting both distributed and centralized workflows" +msgstr "" + +#: gnu/packages/version-control.scm:99 +msgid "" +"GNU Bazaar is a version control system that allows you to record\n" +"changes to project files over time. It supports both a distributed workflow\n" +"as well as the classic centralized workflow." +msgstr "" + +#: gnu/packages/version-control.scm:258 +msgid "Distributed version control system" +msgstr "" + +#: gnu/packages/version-control.scm:260 +msgid "" +"Git is a free distributed version control system designed to handle\n" +"everything from small to very large projects with speed and efficiency." +msgstr "" + +#: gnu/packages/version-control.scm:305 +msgid "Man pages of the Git version control system" +msgstr "" + +#: gnu/packages/version-control.scm:307 +msgid "" +"This package provides the man pages of the Git version control system.\n" +"This is the documentation displayed when using the '--help' option of a 'git'\n" +"command." +msgstr "" + +#: gnu/packages/version-control.scm:344 +msgid "Command-line flags library for shell scripts" +msgstr "" + +#: gnu/packages/version-control.scm:346 +msgid "" +"Shell Flags (shFlags) is a library written to greatly simplify the\n" +"handling of command-line flags in Bourne based Unix shell scripts (bash, dash,\n" +"ksh, sh, zsh). Most shell scripts use getopt for flags processing, but the\n" +"different versions of getopt on various OSes make writing portable shell\n" +"scripts difficult. shFlags instead provides an API that doesn't change across\n" +"shell and OS versions so the script writer can be confident that the script\n" +"will work." +msgstr "" + +#: gnu/packages/version-control.scm:389 +msgid "Git extensions for Vincent Driessen's branching model" +msgstr "" + +#: gnu/packages/version-control.scm:391 +msgid "" +"Vincent Driessen's branching model is a git branching and release\n" +"management strategy that helps developers keep track of features, hotfixes,\n" +"and releases in bigger software projects. The git-flow library of git\n" +"subcommands helps automate some parts of the flow to make working with it a\n" +"lot easier." +msgstr "" + +#: gnu/packages/version-control.scm:426 +msgid "Run a command over a sequence of commits" +msgstr "" + +#: gnu/packages/version-control.scm:428 +msgid "" +"git-test-sequence is similar to an automated git bisect except it’s\n" +"linear. It will test every change between two points in the DAG. It will\n" +"also walk each side of a merge and test those changes individually." +msgstr "" + +#: gnu/packages/version-control.scm:486 +msgid "Git access control layer" +msgstr "" + +#: gnu/packages/version-control.scm:488 +msgid "" +"Gitolite is an access control layer on top of Git, providing fine access\n" +"control to Git repositories." +msgstr "" + +#: gnu/packages/version-control.scm:512 +msgid "Decentralized version control system" +msgstr "" + +#: gnu/packages/version-control.scm:514 +msgid "" +"Mercurial is a free, distributed source control management tool.\n" +"It efficiently handles projects of any size\n" +"and offers an easy and intuitive interface." +msgstr "" + +#: gnu/packages/version-control.scm:548 +msgid "HTTP and WebDAV client library" +msgstr "" + +#: gnu/packages/version-control.scm:549 +msgid "" +"Neon is an HTTP and WebDAV client library, with a\n" +"C interface. Features:\n" +"High-level wrappers for common HTTP and WebDAV operations (GET, MOVE,\n" +"DELETE, etc.);\n" +"low-level interface to the HTTP request/response engine, allowing the use\n" +"of arbitrary HTTP methods, headers, etc.;\n" +"authentication support including Basic and Digest support, along with\n" +"GSSAPI-based Negotiate on Unix, and SSPI-based Negotiate/NTLM on Win32;\n" +"SSL/TLS support using OpenSSL or GnuTLS, exposing an abstraction layer for\n" +"verifying server certificates, handling client certificates, and examining\n" +"certificate properties, smartcard-based client certificates are also\n" +"supported via a PKCS#11 wrapper interface;\n" +"abstract interface to parsing XML using libxml2 or expat, and wrappers for\n" +"simplifying handling XML HTTP response bodies;\n" +"WebDAV metadata support, wrappers for PROPFIND and PROPPATCH to simplify\n" +"property manipulation." +msgstr "" + +#: gnu/packages/version-control.scm:628 +msgid "Revision control system" +msgstr "" + +#: gnu/packages/version-control.scm:630 +msgid "" +"Subversion exists to be universally recognized and adopted as a\n" +"centralized version control system characterized by its\n" +"reliability as a safe haven for valuable data; the simplicity of its model and\n" +"usage; and its ability to support the needs of a wide variety of users and\n" +"projects, from individuals to large-scale enterprise operations." +msgstr "" + +#: gnu/packages/version-control.scm:651 +msgid "Per-file local revision control system" +msgstr "" + +#: gnu/packages/version-control.scm:653 +msgid "" +"RCS is the original Revision Control System. It works on a\n" +"file-by-file basis, in contrast to subsequent version control systems such as\n" +"CVS, Subversion, and Git. This can make it suitable for system\n" +"administration files, for example, which are often inherently local to one\n" +"machine." +msgstr "" + +#: gnu/packages/version-control.scm:679 +msgid "Historical centralized version control system" +msgstr "" + +#: gnu/packages/version-control.scm:681 +msgid "" +"CVS is a version control system, an important component of Source\n" +"Configuration Management (SCM). Using it, you can record the history of\n" +"sources files, and documents. It fills a similar role to the free software\n" +"RCS, PRCS, and Aegis packages." +msgstr "" + +#: gnu/packages/version-control.scm:714 +msgid "Export an RCS or CVS history as a fast-import stream" +msgstr "" + +#: gnu/packages/version-control.scm:715 +msgid "" +"This program analyzes a collection of RCS files in a CVS\n" +"repository (or outside of one) and, when possible, emits an equivalent history\n" +"in the form of a fast-import stream. Not all possible histories can be\n" +"rendered this way; the program tries to emit useful warnings when it can't.\n" +"\n" +"The program can also produce a visualization of the resulting commit directed\n" +"acyclic graph (DAG) in the input format of @uref{http://www.graphviz.org,\n" +"Graphviz}. The package also includes @command{cvssync}, a tool for mirroring\n" +"masters from remote CVS hosts." +msgstr "" + +#: gnu/packages/version-control.scm:742 +msgid "Version-control-agnostic ChangeLog diff and commit tool" +msgstr "" + +#: gnu/packages/version-control.scm:744 +msgid "" +"The vc-dwim package contains two tools, \"vc-dwim\" and \"vc-chlog\".\n" +"vc-dwim is a tool that simplifies the task of maintaining a ChangeLog and\n" +"using version control at the same time, for example by printing a reminder\n" +"when a file change has been described in the ChangeLog but the file has not\n" +"been added to the VC. vc-chlog scans changed files and generates\n" +"standards-compliant ChangeLog entries based on the changes that it detects." +msgstr "" + +#: gnu/packages/version-control.scm:766 +msgid "Make histograms from the output of 'diff'" +msgstr "" + +#: gnu/packages/version-control.scm:768 +msgid "" +"Diffstat reads the output of 'diff' and displays a histogram of the\n" +"insertions, deletions, and modifications per-file. It is useful for reviewing\n" +"large, complex patch files." +msgstr "" + +#: gnu/packages/version-control.scm:809 +msgid "File-based version control like SCCS" +msgstr "" + +#: gnu/packages/version-control.scm:810 +msgid "" +"GNU CSSC provides a replacement for the legacy Unix source\n" +"code control system SCCS. This allows old code still under that system to be\n" +"accessed and migrated on modern systems." +msgstr "" + +#: gnu/packages/version-control.scm:891 +msgid "Project change supervisor" +msgstr "" + +#: gnu/packages/version-control.scm:892 +msgid "" +"Aegis is a project change supervisor, and performs some of\n" +"the Software Configuration Management needed in a CASE environment. Aegis\n" +"provides a framework within which a team of developers may work on many\n" +"changes to a program independently, and Aegis coordinates integrating these\n" +"changes back into the master source of the program, with as little disruption\n" +"as possible. Resolution of contention for source files, a major headache for\n" +"any project with more than one developer, is one of Aegis's major functions." +msgstr "" + +#: gnu/packages/version-control.scm:919 +msgid "Ncurses-based text user interface for Git" +msgstr "" + +#: gnu/packages/version-control.scm:921 +msgid "" +"Tig is an ncurses text user interface for Git, primarily intended as\n" +"a history browser. It can also stage hunks for commit, or colorize the\n" +"output of the 'git' command." +msgstr "" + +#: gnu/packages/webkit.scm:121 +msgid "Web content engine for GTK+" +msgstr "" + +#: gnu/packages/webkit.scm:123 +msgid "" +"WebKitGTK+ is a full-featured port of the WebKit rendering engine,\n" +"suitable for projects requiring any kind of web integration, from hybrid\n" +"HTML/CSS applications to full-fledged web browsers." +msgstr "" + +#: gnu/packages/web.scm:88 +msgid "Featureful HTTP server" +msgstr "" + +#: gnu/packages/web.scm:90 +msgid "" +"The Apache HTTP Server Project is a collaborative software development\n" +"effort aimed at creating a robust, commercial-grade, featureful, and\n" +"freely-available source code implementation of an HTTP (Web) server. The\n" +"project is jointly managed by a group of volunteers located around the world,\n" +"using the Internet and the Web to communicate, plan, and develop the server\n" +"and its related documentation." +msgstr "" + +#: gnu/packages/web.scm:168 +msgid "HTTP and reverse proxy server" +msgstr "" + +#: gnu/packages/web.scm:170 +msgid "" +"Nginx (\"engine X\") is a high-performance web and reverse proxy server\n" +"created by Igor Sysoev. It can be used both as a standalone web server\n" +"and as a proxy to reduce the load on back-end HTTP or mail servers." +msgstr "" + +#: gnu/packages/web.scm:206 +msgid "PSGI/Plack web server" +msgstr "" + +#: gnu/packages/web.scm:207 +msgid "" +"Starman is a PSGI perl web server that has unique features\n" +"such as high performance, preforking, signal support, superdaemon awareness,\n" +"and UNIX socket support." +msgstr "" + +#: gnu/packages/web.scm:226 +msgid "JSON C library" +msgstr "" + +#: gnu/packages/web.scm:228 +msgid "" +"Jansson is a C library for encoding, decoding and manipulating JSON\n" +"data." +msgstr "" + +#: gnu/packages/web.scm:259 +msgid "JSON implementation in C" +msgstr "" + +#: gnu/packages/web.scm:261 +msgid "" +"JSON-C implements a reference counting object model that allows you to\n" +"easily construct JSON objects in C, output them as JSON formatted strings and\n" +"parse JSON formatted strings back into the C representation of JSON objects." +msgstr "" + +#: gnu/packages/web.scm:287 +msgid "JSON parser/generator for C++ with both SAX/DOM style API" +msgstr "" + +#: gnu/packages/web.scm:289 +msgid "" +"RapidJSON is a fast JSON parser/generator for C++ with both SAX/DOM\n" +"style API." +msgstr "" + +#: gnu/packages/web.scm:307 +msgid "C library for parsing JSON" +msgstr "" + +#: gnu/packages/web.scm:309 +msgid "" +"Yet Another JSON Library (YAJL) is a small event-driven (SAX-style) JSON\n" +"parser written in ANSI C and a small validating JSON generator." +msgstr "" + +#: gnu/packages/web.scm:339 +msgid "WebSockets library written in C" +msgstr "" + +#: gnu/packages/web.scm:341 +msgid "" +"Libwebsockets is a library that allows C programs to establish client\n" +"and server WebSockets connections---a protocol layered above HTTP that allows\n" +"for efficient socket-like bidirectional reliable communication channels." +msgstr "" + +#: gnu/packages/web.scm:376 +msgid "C library for the Publix Suffix List" +msgstr "" + +#: gnu/packages/web.scm:378 +msgid "" +"A \"public suffix\" is a domain name under which Internet users can\n" +"directly register own names.\n" +"\n" +"Browsers and other web clients can use it to avoid privacy-leaking\n" +"\"supercookies\", avoid privacy-leaking \"super domain\" certificates, domain\n" +"highlighting parts of the domain in a user interface, and sorting domain lists\n" +"by site.\n" +"\n" +"Libpsl has built-in PSL data for fast access, allows to load PSL data from\n" +"files, checks if a given domain is a public suffix, provides immediate cookie\n" +"domain verification, finds the longest public part of a given domain, finds\n" +"the shortest private part of a given domain, works with international\n" +"domains (UTF-8 and IDNA2008 Punycode), is thread-safe, and handles IDNA2008\n" +"UTS#46." +msgstr "" + +#: gnu/packages/web.scm:424 +msgid "HTML validator and tidier" +msgstr "" + +#: gnu/packages/web.scm:425 +msgid "" +"HTML Tidy is a command-line tool and C library that can be\n" +"used to validate and fix HTML data." +msgstr "" + +#: gnu/packages/web.scm:465 +msgid "Light-weight HTTP/HTTPS proxy daemon" +msgstr "" + +#: gnu/packages/web.scm:466 +msgid "" +"Tinyproxy is a light-weight HTTP/HTTPS proxy\n" +"daemon. Designed from the ground up to be fast and yet small, it is an ideal\n" +"solution for use cases such as embedded deployments where a full featured HTTP\n" +"proxy is required, but the system resources for a larger proxy are\n" +"unavailable." +msgstr "" + +#: gnu/packages/web.scm:499 +msgid "Small caching web proxy" +msgstr "" + +#: gnu/packages/web.scm:501 +msgid "" +"Polipo is a small caching web proxy (web cache, HTTP proxy, and proxy\n" +"server). It was primarily designed to be used by one person or a small group\n" +"of people." +msgstr "" + +#: gnu/packages/web.scm:521 +msgid "YAML 1.1 parser and emitter written in C" +msgstr "" + +#: gnu/packages/web.scm:523 +msgid "LibYAML is a YAML 1.1 parser and emitter written in C." +msgstr "" + +#: gnu/packages/web.scm:539 gnu/packages/web.scm:572 gnu/packages/web.scm:594 +msgid "Media stream URL parser" +msgstr "" + +#: gnu/packages/web.scm:540 +msgid "" +"This package contains support scripts called by libquvi to\n" +"parse media stream properties." +msgstr "" + +#: gnu/packages/web.scm:573 +msgid "" +"libquvi is a library with a C API for parsing media stream\n" +"URLs and extracting their actual media files." +msgstr "" + +#: gnu/packages/web.scm:595 +msgid "" +"quvi is a command-line-tool suite to extract media files\n" +"from streaming URLs. It is a command-line wrapper for the libquvi library." +msgstr "" + +#: gnu/packages/web.scm:658 +msgid "High-performance asynchronous HTTP client library" +msgstr "" + +#: gnu/packages/web.scm:660 +msgid "" +"serf is a C-based HTTP client library built upon the Apache Portable\n" +"Runtime (APR) library. It multiplexes connections, running the read/write\n" +"communication asynchronously. Memory copies and transformations are kept to a\n" +"minimum to provide high performance operation." +msgstr "" + +#: gnu/packages/web.scm:715 +msgid "CSS pre-processor" +msgstr "" + +#: gnu/packages/web.scm:716 +msgid "" +"SassC is a compiler written in C for the CSS pre-processor\n" +"language known as SASS." +msgstr "" + +#: gnu/packages/web.scm:744 +msgid "Compile a log format string to perl-code" +msgstr "" + +#: gnu/packages/web.scm:745 +msgid "" +"This module provides methods to compile a log format string\n" +"to perl-code, for faster generation of access_log lines." +msgstr "" + +#: gnu/packages/web.scm:766 +msgid "SASL authentication framework" +msgstr "" + +#: gnu/packages/web.scm:767 +msgid "Authen::SASL provides an SASL authentication framework." +msgstr "" + +#: gnu/packages/web.scm:791 +msgid "Sensible default Catalyst action" +msgstr "" + +#: gnu/packages/web.scm:792 +msgid "" +"This Catalyst action implements a sensible default end\n" +"action, which will forward to the first available view." +msgstr "" + +#: gnu/packages/web.scm:820 +msgid "Automated REST Method Dispatching" +msgstr "" + +#: gnu/packages/web.scm:821 +msgid "" +"This Action handles doing automatic method dispatching for\n" +"REST requests. It takes a normal Catalyst action, and changes the dispatch to\n" +"append an underscore and method name. First it will try dispatching to an\n" +"action with the generated name, and failing that it will try to dispatch to a\n" +"regular method." +msgstr "" + +#: gnu/packages/web.scm:857 +msgid "Storage class for Catalyst authentication using DBIx::Class" +msgstr "" + +#: gnu/packages/web.scm:858 +msgid "" +"The Catalyst::Authentication::Store::DBIx::Class class\n" +"provides access to authentication information stored in a database via\n" +"DBIx::Class." +msgstr "" + +#: gnu/packages/web.scm:882 +msgid "Create only one instance of Moose component per context" +msgstr "" + +#: gnu/packages/web.scm:883 +msgid "" +"Catalyst::Component::InstancePerContext returns a new\n" +"instance of a component on each request." +msgstr "" + +#: gnu/packages/web.scm:920 +msgid "Catalyst Development Tools" +msgstr "" + +#: gnu/packages/web.scm:921 +msgid "" +"The Catalyst-Devel distribution includes a variety of\n" +"modules useful for the development of Catalyst applications, but not required\n" +"to run them. Catalyst-Devel includes the Catalyst::Helper system, which\n" +"autogenerates scripts and tests; Module::Install::Catalyst, a Module::Install\n" +"extension for Catalyst; and requirements for a variety of development-related\n" +"modules." +msgstr "" + +#: gnu/packages/web.scm:950 +msgid "Regex DispatchType for Catalyst" +msgstr "" + +#: gnu/packages/web.scm:951 +msgid "" +"Dispatch type managing path-matching behaviour using\n" +"regexes. Regex dispatch types have been deprecated and removed from Catalyst\n" +"core. It is recommend that you use Chained methods or other techniques\n" +"instead. As part of the refactoring, the dispatch priority of Regex vs Regexp\n" +"vs LocalRegex vs LocalRegexp may have changed. Priority is now influenced by\n" +"when the dispatch type is first seen in your application." +msgstr "" + +#: gnu/packages/web.scm:999 +msgid "DBIx::Class::Schema Model Class" +msgstr "" + +#: gnu/packages/web.scm:1000 +msgid "" +"This is a Catalyst Model for DBIx::Class::Schema-based\n" +"Models." +msgstr "" + +#: gnu/packages/web.scm:1024 +msgid "Request logging from within Catalyst" +msgstr "" + +#: gnu/packages/web.scm:1025 +msgid "" +"This Catalyst plugin enables you to create \"access logs\"\n" +"from within a Catalyst application instead of requiring a webserver to do it\n" +"for you. It will work even with Catalyst debug logging turned off." +msgstr "" + +#: gnu/packages/web.scm:1057 +msgid "Infrastructure plugin for the Catalyst authentication framework" +msgstr "" + +#: gnu/packages/web.scm:1058 +msgid "" +"The authentication plugin provides generic user support for\n" +"Catalyst apps. It is the basis for both authentication (checking the user is\n" +"who they claim to be), and authorization (allowing the user to do what the\n" +"system authorises them to do)." +msgstr "" + +#: gnu/packages/web.scm:1088 +msgid "Role-based authorization for Catalyst" +msgstr "" + +#: gnu/packages/web.scm:1089 +msgid "" +"Catalyst::Plugin::Authorization::Roles provides role-based\n" +"authorization for Catalyst based on Catalyst::Plugin::Authentication." +msgstr "" + +#: gnu/packages/web.scm:1112 +msgid "Captchas for Catalyst" +msgstr "" + +#: gnu/packages/web.scm:1113 +msgid "" +"This plugin creates and validates Captcha images for\n" +"Catalyst." +msgstr "" + +#: gnu/packages/web.scm:1139 +msgid "Load config files of various types" +msgstr "" + +#: gnu/packages/web.scm:1140 +msgid "" +"This module will attempt to load find and load configuration\n" +"files of various types. Currently it supports YAML, JSON, XML, INI and Perl\n" +"formats." +msgstr "" + +#: gnu/packages/web.scm:1170 +msgid "Catalyst generic session plugin" +msgstr "" + +#: gnu/packages/web.scm:1171 +msgid "" +"This plugin links the two pieces required for session\n" +"management in web applications together: the state, and the store." +msgstr "" + +#: gnu/packages/web.scm:1197 +msgid "Maintain session IDs using cookies" +msgstr "" + +#: gnu/packages/web.scm:1198 +msgid "" +"In order for Catalyst::Plugin::Session to work, the session\n" +"ID needs to be stored on the client, and the session data needs to be stored\n" +"on the server. This plugin stores the session ID on the client using the\n" +"cookie mechanism." +msgstr "" + +#: gnu/packages/web.scm:1228 +msgid "FastMmap session storage backend" +msgstr "" + +#: gnu/packages/web.scm:1229 +msgid "" +"Catalyst::Plugin::Session::Store::FastMmap is a fast session\n" +"storage plugin for Catalyst that uses an mmap'ed file to act as a shared\n" +"memory interprocess cache. It is based on Cache::FastMmap." +msgstr "" + +#: gnu/packages/web.scm:1252 +msgid "Stack trace on the Catalyst debug screen" +msgstr "" + +#: gnu/packages/web.scm:1253 +msgid "" +"This plugin enhances the standard Catalyst debug screen by\n" +"including a stack trace of your application up to the point where the error\n" +"occurred. Each stack frame is displayed along with the package name, line\n" +"number, file name, and code context surrounding the line number." +msgstr "" + +#: gnu/packages/web.scm:1279 +msgid "Simple serving of static pages" +msgstr "" + +#: gnu/packages/web.scm:1280 +msgid "" +"The Static::Simple plugin is designed to make serving static\n" +"content in your application during development quick and easy, without\n" +"requiring a single line of code from you. This plugin detects static files by\n" +"looking at the file extension in the URL (such as .css or .png or .js). The\n" +"plugin uses the lightweight MIME::Types module to map file extensions to\n" +"IANA-registered MIME types, and will serve your static files with the correct\n" +"MIME type directly to the browser, without being processed through Catalyst." +msgstr "" + +#: gnu/packages/web.scm:1346 +msgid "The Catalyst Framework Runtime" +msgstr "" + +#: gnu/packages/web.scm:1347 +msgid "" +"Catalyst is a modern framework for making web applications.\n" +"It is designed to make it easy to manage the various tasks you need to do to\n" +"run an application on the web, either by doing them itself, or by letting you\n" +"\"plug in\" existing Perl modules that do what you need." +msgstr "" + +#: gnu/packages/web.scm:1377 +msgid "Replace request base with value passed by HTTP proxy" +msgstr "" + +#: gnu/packages/web.scm:1378 +msgid "" +"This module is a Moose::Role which allows you more\n" +"flexibility in your application's deployment configurations when deployed\n" +"behind a proxy. Using this module, the request base ($c->req->base) is\n" +"replaced with the contents of the X-Request-Base header." +msgstr "" + +#: gnu/packages/web.scm:1404 +msgid "Download data in many formats" +msgstr "" + +#: gnu/packages/web.scm:1405 +msgid "" +"The purpose of this module is to provide a method for\n" +"downloading data into many supportable formats. For example, downloading a\n" +"table based report in a variety of formats (CSV, HTML, etc.)." +msgstr "" + +#: gnu/packages/web.scm:1430 +msgid "Catalyst JSON view" +msgstr "" + +#: gnu/packages/web.scm:1431 +msgid "" +"Catalyst::View::JSON is a Catalyst View handler that returns\n" +"stash data in JSON format." +msgstr "" + +#: gnu/packages/web.scm:1456 +msgid "Template View Class" +msgstr "" + +#: gnu/packages/web.scm:1457 +msgid "" +"This module is a Catalyst view class for the Template\n" +"Toolkit." +msgstr "" + +#: gnu/packages/web.scm:1486 +msgid "Trait Loading and Resolution for Catalyst Components" +msgstr "" + +#: gnu/packages/web.scm:1487 +msgid "" +"Adds a \"COMPONENT\" in Catalyst::Component method to your\n" +"Catalyst component base class that reads the optional \"traits\" parameter\n" +"from app and component config and instantiates the component subclass with\n" +"those traits using \"new_with_traits\" in MooseX::Traits from\n" +"MooseX::Traits::Pluggable." +msgstr "" + +#: gnu/packages/web.scm:1512 +msgid "Apply roles to Catalyst classes" +msgstr "" + +#: gnu/packages/web.scm:1513 +msgid "" +"CatalystX::RoleApplicator applies roles to Catalyst\n" +"application classes." +msgstr "" + +#: gnu/packages/web.scm:1539 +msgid "Catalyst development server with Starman" +msgstr "" + +#: gnu/packages/web.scm:1540 +msgid "" +"This module provides a Catalyst extension to replace the\n" +"development server with Starman." +msgstr "" + +#: gnu/packages/web.scm:1560 +msgid "CGI interface that is CGI.pm compliant" +msgstr "" + +#: gnu/packages/web.scm:1561 +msgid "" +"CGI::Simple provides a relatively lightweight drop in\n" +"replacement for CGI.pm. It shares an identical OO interface to CGI.pm for\n" +"parameter parsing, file upload, cookie handling and header generation." +msgstr "" + +#: gnu/packages/web.scm:1582 +msgid "Build structures from CGI data" +msgstr "" + +#: gnu/packages/web.scm:1583 +msgid "" +"This is a module for building structured data from CGI\n" +"inputs, in a manner reminiscent of how PHP does." +msgstr "" + +#: gnu/packages/web.scm:1604 +msgid "Date conversion routines" +msgstr "" + +#: gnu/packages/web.scm:1605 +msgid "" +"This module provides functions that deal with the date\n" +"formats used by the HTTP protocol." +msgstr "" + +#: gnu/packages/web.scm:1625 +msgid "MD5 sums for files and urls" +msgstr "" + +#: gnu/packages/web.scm:1626 +msgid "" +"Digest::MD5::File is a Perl extension for getting MD5 sums\n" +"for files and urls." +msgstr "" + +#: gnu/packages/web.scm:1644 +msgid "Perl locale encoding determination" +msgstr "" + +#: gnu/packages/web.scm:1646 +msgid "" +"The POSIX locale system is used to specify both the language\n" +"conventions requested by the user and the preferred character set to\n" +"consume and output. The Encode::Locale module looks up the charset and\n" +"encoding (called a CODESET in the locale jargon) and arranges for the\n" +"Encode module to know this encoding under the name \"locale\". It means\n" +"bytes obtained from the environment can be converted to Unicode strings\n" +"by calling Encode::encode(locale => $bytes) and converted back again\n" +"with Encode::decode(locale => $string)." +msgstr "" + +#: gnu/packages/web.scm:1672 +msgid "Perl directory listing parser" +msgstr "" + +#: gnu/packages/web.scm:1674 +msgid "" +"The File::Listing module exports a single function called parse_dir(),\n" +"which can be used to parse directory listings." +msgstr "" + +#: gnu/packages/web.scm:1705 +msgid "Stock and mutual fund quotes" +msgstr "" + +#: gnu/packages/web.scm:1707 +msgid "" +"Finance::Quote gets stock quotes from various internet sources, including\n" +"Yahoo! Finance, Fidelity Investments, and the Australian Stock Exchange." +msgstr "" + +#: gnu/packages/web.scm:1729 +msgid "Perl extension providing access to the GSSAPIv2 library" +msgstr "" + +#: gnu/packages/web.scm:1730 +msgid "" +"This is a Perl extension for using GSSAPI C bindings as\n" +"described in RFC 2744." +msgstr "" + +#: gnu/packages/web.scm:1750 +msgid "Manipulate tables of HTML::Element" +msgstr "" + +#: gnu/packages/web.scm:1752 +msgid "" +"HTML::Element::Extended is a Perl extension for manipulating a table\n" +"composed of HTML::Element style components." +msgstr "" + +#: gnu/packages/web.scm:1776 +msgid "Perl class representing an HTML form element" +msgstr "" + +#: gnu/packages/web.scm:1777 +msgid "" +"Objects of the HTML::Form class represents a single HTML\n" +"
...
instance." +msgstr "" + +#: gnu/packages/web.scm:1799 +msgid "Check for HTML errors in a string or file" +msgstr "" + +#: gnu/packages/web.scm:1800 +msgid "" +"HTML::Lint is a pure-Perl HTML parser and checker for\n" +"syntactic legitmacy." +msgstr "" + +#: gnu/packages/web.scm:1821 +msgid "Extract contents from HTML tables" +msgstr "" + +#: gnu/packages/web.scm:1823 +msgid "" +"HTML::TableExtract is a Perl module for extracting the content contained\n" +"in tables within an HTML document, either as text or encoded element trees." +msgstr "" + +#: gnu/packages/web.scm:1847 +msgid "Work with HTML in a DOM-like tree structure" +msgstr "" + +#: gnu/packages/web.scm:1848 +msgid "" +"This distribution contains a suite of modules for\n" +"representing, creating, and extracting information from HTML syntax trees." +msgstr "" + +#: gnu/packages/web.scm:1868 +msgid "Perl HTML parser class" +msgstr "" + +#: gnu/packages/web.scm:1870 +msgid "" +"Objects of the HTML::Parser class will recognize markup and separate\n" +"it from plain text (alias data content) in HTML documents. As different\n" +"kinds of markup and text are recognized, the corresponding event handlers\n" +"are invoked." +msgstr "" + +#: gnu/packages/web.scm:1890 +msgid "Perl data tables useful in parsing HTML" +msgstr "" + +#: gnu/packages/web.scm:1892 +msgid "" +"The HTML::Tagset module contains several data tables useful in various\n" +"kinds of HTML parsing operations." +msgstr "" + +#: gnu/packages/web.scm:1915 +msgid "HTTP Body Parser" +msgstr "" + +#: gnu/packages/web.scm:1916 +msgid "" +"HTTP::Body parses chunks of HTTP POST data and supports\n" +"application/octet-stream, application/json, application/x-www-form-urlencoded,\n" +"and multipart/form-data." +msgstr "" + +#: gnu/packages/web.scm:1942 +msgid "Minimalist HTTP user agent cookie jar" +msgstr "" + +#: gnu/packages/web.scm:1943 +msgid "" +"This module implements a minimalist HTTP user agent cookie\n" +"jar in conformance with RFC 6265 ." +msgstr "" + +#: gnu/packages/web.scm:1963 +msgid "Perl HTTP cookie jars" +msgstr "" + +#: gnu/packages/web.scm:1965 +msgid "" +"The HTTP::Cookies class is for objects that represent a cookie jar,\n" +"that is, a database of all the HTTP cookies that a given LWP::UserAgent\n" +"object knows about." +msgstr "" + +#: gnu/packages/web.scm:1987 +msgid "Perl simple http server class" +msgstr "" + +#: gnu/packages/web.scm:1989 +msgid "" +"Instances of the HTTP::Daemon class are HTTP/1.1 servers that listen\n" +"on a socket for incoming requests. The HTTP::Daemon is a subclass of\n" +"IO::Socket::INET, so you can perform socket operations directly on it too." +msgstr "" + +#: gnu/packages/web.scm:2008 +msgid "Perl date conversion routines" +msgstr "" + +#: gnu/packages/web.scm:2010 +msgid "" +"The HTTP::Date module provides functions that deal with date formats\n" +"used by the HTTP protocol (and then some more)." +msgstr "" + +#: gnu/packages/web.scm:2033 +msgid "Perl HTTP style message" +msgstr "" + +#: gnu/packages/web.scm:2035 +msgid "An HTTP::Message object contains some headers and a content body." +msgstr "" + +#: gnu/packages/web.scm:2054 +msgid "Perl http content negotiation" +msgstr "" + +#: gnu/packages/web.scm:2056 +msgid "" +"The HTTP::Negotiate module provides a complete implementation of the\n" +"HTTP content negotiation algorithm specified in\n" +"draft-ietf-http-v11-spec-00.ps chapter 12. Content negotiation allows for\n" +"the selection of a preferred content representation based upon attributes\n" +"of the negotiable variants and the value of the various Accept* header\n" +"fields in the request." +msgstr "" + +#: gnu/packages/web.scm:2081 +msgid "Parse HTTP/1.1 requests" +msgstr "" + +#: gnu/packages/web.scm:2082 +msgid "" +"This is an HTTP request parser. It takes chunks of text as\n" +"received and returns a 'hint' as to what is required, or returns the\n" +"HTTP::Request when a complete request has been read. HTTP/1.1 chunking is\n" +"supported." +msgstr "" + +#: gnu/packages/web.scm:2102 +msgid "Fast HTTP request parser" +msgstr "" + +#: gnu/packages/web.scm:2103 +msgid "" +"HTTP::Parser::XS is a fast, primitive HTTP request/response\n" +"parser." +msgstr "" + +#: gnu/packages/web.scm:2124 +msgid "Set up a CGI environment from an HTTP::Request" +msgstr "" + +#: gnu/packages/web.scm:2125 +msgid "" +"This module provides a convenient way to set up a CGI\n" +"environment from an HTTP::Request." +msgstr "" + +#: gnu/packages/web.scm:2147 +msgid "Lightweight HTTP server" +msgstr "" + +#: gnu/packages/web.scm:2148 +msgid "" +"HTTP::Server::Simple is a simple standalone HTTP daemon with\n" +"no non-core module dependencies. It can be used for building a standalone\n" +"http-based UI to your existing tools." +msgstr "" + +#: gnu/packages/web.scm:2172 +msgid "HTTP/1.1 client" +msgstr "" + +#: gnu/packages/web.scm:2173 +msgid "" +"This is a very simple HTTP/1.1 client, designed for doing\n" +"simple requests without the overhead of a large framework like LWP::UserAgent.\n" +"It supports proxies and redirection. It also correctly resumes after EINTR." +msgstr "" + +#: gnu/packages/web.scm:2192 +msgid "Perl module to open an HTML file with automatic charset detection" +msgstr "" + +#: gnu/packages/web.scm:2194 +msgid "" +"IO::HTML provides an easy way to open a file containing HTML while\n" +"automatically determining its encoding. It uses the HTML5 encoding sniffing\n" +"algorithm specified in section 8.2.2.1 of the draft standard." +msgstr "" + +#: gnu/packages/web.scm:2213 +msgid "Family-neutral IP socket supporting both IPv4 and IPv6" +msgstr "" + +#: gnu/packages/web.scm:2214 +msgid "" +"This module provides a protocol-independent way to use IPv4\n" +"and IPv6 sockets, intended as a replacement for IO::Socket::INET." +msgstr "" + +#: gnu/packages/web.scm:2231 +msgid "Nearly transparent SSL encapsulation for IO::Socket::INET" +msgstr "" + +#: gnu/packages/web.scm:2233 +msgid "" +"IO::Socket::SSL makes using SSL/TLS much easier by wrapping the\n" +"necessary functionality into the familiar IO::Socket interface and providing\n" +"secure defaults whenever possible. This way existing applications can be made\n" +"SSL-aware without much effort, at least if you do blocking I/O and don't use\n" +"select or poll." +msgstr "" + +#: gnu/packages/web.scm:2264 +msgid "Perl modules for the WWW" +msgstr "" + +#: gnu/packages/web.scm:2266 +msgid "" +"The libwww-perl collection is a set of Perl modules which provides a\n" +"simple and consistent application programming interface to the\n" +"World-Wide Web. The main focus of the library is to provide classes\n" +"and functions that allow you to write WWW clients. The library also\n" +"contains modules that are of more general use and even classes that\n" +"help you implement simple HTTP servers." +msgstr "" + +#: gnu/packages/web.scm:2288 +msgid "Perl module to guess the media type for a file or a URL" +msgstr "" + +#: gnu/packages/web.scm:2290 +#, scheme-format +msgid "" +"The LWP::MediaTypes module provides functions for handling media (also\n" +"known as MIME) types and encodings. The mapping from file extensions to\n" +"media types is defined by the media.types file. If the ~/.media.types file\n" +"exists it is used instead." +msgstr "" + +#: gnu/packages/web.scm:2316 +msgid "HTTPS support for LWP::UserAgent" +msgstr "" + +#: gnu/packages/web.scm:2317 +msgid "" +"The LWP::Protocol::https module provides support for using\n" +"https schemed URLs with LWP." +msgstr "" + +#: gnu/packages/web.scm:2337 +msgid "Virtual browser that retries errors" +msgstr "" + +#: gnu/packages/web.scm:2338 +msgid "" +"LWP::UserAgent::Determined works just like LWP::UserAgent,\n" +"except that when you use it to get a web page but run into a\n" +"possibly-temporary error (like a DNS lookup timeout), it'll wait a few seconds\n" +"and retry a few times." +msgstr "" + +#: gnu/packages/web.scm:2383 +msgid "Perl interface to Amazon S3" +msgstr "" + +#: gnu/packages/web.scm:2384 +msgid "This module provides a Perlish interface to Amazon S3." +msgstr "" + +#: gnu/packages/web.scm:2404 +msgid "Perl low-level HTTP connection (client)" +msgstr "" + +#: gnu/packages/web.scm:2406 +msgid "" +"The Net::HTTP class is a low-level HTTP client. An instance of the\n" +"Net::HTTP class represents a connection to an HTTP server. The HTTP protocol\n" +"is described in RFC 2616. The Net::HTTP class supports HTTP/1.0 and\n" +"HTTP/1.1." +msgstr "" + +#: gnu/packages/web.scm:2426 +msgid "Extensible Perl server engine" +msgstr "" + +#: gnu/packages/web.scm:2427 +msgid "" +"Net::Server is an extensible, generic Perl server engine.\n" +"It attempts to be a generic server as in Net::Daemon and NetServer::Generic.\n" +"It includes with it the ability to run as an inetd\n" +"process (Net::Server::INET), a single connection server (Net::Server or\n" +"Net::Server::Single), a forking server (Net::Server::Fork), a preforking\n" +"server which maintains a constant number of preforked\n" +"children (Net::Server::PreForkSimple), or as a managed preforking server which\n" +"maintains the number of children based on server load (Net::Server::PreFork).\n" +"In all but the inetd type, the server provides the ability to connect to one\n" +"or to multiple server ports." +msgstr "" + +#: gnu/packages/web.scm:2455 +msgid "SSL support for Net::SMTP" +msgstr "" + +#: gnu/packages/web.scm:2456 +msgid "SSL support for Net::SMTP." +msgstr "" + +#: gnu/packages/web.scm:2490 +msgid "Perl Superglue for Web frameworks and servers (PSGI toolkit)" +msgstr "" + +#: gnu/packages/web.scm:2491 +msgid "" +"Plack is a set of tools for using the PSGI stack. It\n" +"contains middleware components, a reference server, and utilities for Web\n" +"application frameworks. Plack is like Ruby's Rack or Python's Paste for\n" +"WSGI." +msgstr "" + +#: gnu/packages/web.scm:2517 +msgid "Plack::Middleware which sets body for redirect response" +msgstr "" + +#: gnu/packages/web.scm:2518 +msgid "" +"This module sets the body in redirect response, if it's not\n" +"already set." +msgstr "" + +#: gnu/packages/web.scm:2539 +msgid "Override REST methods to Plack apps via POST" +msgstr "" + +#: gnu/packages/web.scm:2540 +msgid "" +"This middleware allows for POST requests that pretend to be\n" +"something else: by adding either a header named X-HTTP-Method-Override to the\n" +"request, or a query parameter named x-tunneled-method to the URI, the client\n" +"can say what method it actually meant." +msgstr "" + +#: gnu/packages/web.scm:2564 +msgid "Plack::Middleware which removes body for HTTP response" +msgstr "" + +#: gnu/packages/web.scm:2565 +msgid "" +"This module removes the body in an HTTP response if it's not\n" +"required." +msgstr "" + +#: gnu/packages/web.scm:2586 +msgid "Supports app to run as a reverse proxy backend" +msgstr "" + +#: gnu/packages/web.scm:2587 +msgid "" +"Plack::Middleware::ReverseProxy resets some HTTP headers,\n" +"which are changed by reverse-proxy. You can specify the reverse proxy address\n" +"and stop fake requests using 'enable_if' directive in your app.psgi." +msgstr "" + +#: gnu/packages/web.scm:2608 +msgid "Run HTTP tests on external live servers" +msgstr "" + +#: gnu/packages/web.scm:2609 +msgid "" +"This module allows your to run your Plack::Test tests\n" +"against an external server instead of just against a local application through\n" +"either mocked HTTP or a locally spawned server." +msgstr "" + +#: gnu/packages/web.scm:2631 +msgid "Testing TCP programs" +msgstr "Testning af TCP-programmer" + +#: gnu/packages/web.scm:2632 +msgid "Test::TCP is test utilities for TCP/IP programs." +msgstr "Test::TCP er testredskaber for TCP/IP-programmer." + +#: gnu/packages/web.scm:2660 +msgid "Testing-specific WWW::Mechanize subclass" +msgstr "" + +#: gnu/packages/web.scm:2661 +msgid "" +"Test::WWW::Mechanize is a subclass of the Perl module\n" +"WWW::Mechanize that incorporates features for web application testing." +msgstr "" + +#: gnu/packages/web.scm:2694 +msgid "Test::WWW::Mechanize for Catalyst" +msgstr "" + +#: gnu/packages/web.scm:2695 +msgid "" +"The Test::WWW::Mechanize::Catalyst module meshes the\n" +"Test::WWW:Mechanize module and the Catalyst web application framework to allow\n" +"testing of Catalyst applications without needing to start up a web server." +msgstr "" + +#: gnu/packages/web.scm:2719 +msgid "Test PSGI programs using WWW::Mechanize" +msgstr "" + +#: gnu/packages/web.scm:2720 +msgid "" +"PSGI is a specification to decouple web server environments\n" +"from web application framework code. Test::WWW::Mechanize is a subclass of\n" +"WWW::Mechanize that incorporates features for web application testing. The\n" +"Test::WWW::Mechanize::PSGI module meshes the two to allow easy testing of PSGI\n" +"applications." +msgstr "" + +#: gnu/packages/web.scm:2740 +msgid "Perl Uniform Resource Identifiers (absolute and relative)" +msgstr "" + +#: gnu/packages/web.scm:2742 +msgid "" +"The URI module implements the URI class. Objects of this class\n" +"represent \"Uniform Resource Identifier references\" as specified in RFC 2396\n" +"and updated by RFC 2732." +msgstr "" + +#: gnu/packages/web.scm:2763 +msgid "Find URIs in arbitrary text" +msgstr "" + +#: gnu/packages/web.scm:2764 +msgid "" +"This module finds URIs and URLs (according to what URI.pm\n" +"considers a URI) in plain text. It only finds URIs which include a\n" +"scheme (http:// or the like), for something a bit less strict, consider\n" +"URI::Find::Schemeless. For a command-line interface, urifind is provided." +msgstr "" + +#: gnu/packages/web.scm:2786 +msgid "WebSocket support for URI package" +msgstr "" + +#: gnu/packages/web.scm:2787 +msgid "" +"With this module, the URI package provides the same set of\n" +"methods for WebSocket URIs as it does for HTTP URIs." +msgstr "" + +#: gnu/packages/web.scm:2807 +msgid "Perl extension interface for libcurl" +msgstr "" + +#: gnu/packages/web.scm:2809 +msgid "" +"This is a Perl extension interface for the libcurl file downloading\n" +"library." +msgstr "" + +#: gnu/packages/web.scm:2836 +msgid "Web browsing in a Perl object" +msgstr "" + +#: gnu/packages/web.scm:2837 +msgid "" +"WWW::Mechanize is a Perl module for stateful programmatic\n" +"web browsing, used for automating interaction with websites." +msgstr "" + +#: gnu/packages/web.scm:2857 +msgid "Perl database of robots.txt-derived permissions" +msgstr "" + +#: gnu/packages/web.scm:2859 +msgid "" +"The WWW::RobotRules module parses /robots.txt files as specified in\n" +"\"A Standard for Robot Exclusion\", at\n" +". Webmasters can use the\n" +"/robots.txt file to forbid conforming robots from accessing parts of\n" +"their web site." +msgstr "" + +#: gnu/packages/web.scm:2879 +msgid "HTTP and WebSocket server library for R" +msgstr "" + +#: gnu/packages/web.scm:2881 +msgid "" +"The httpuv package provides low-level socket and protocol support for\n" +"handling HTTP and WebSocket requests directly from within R. It is primarily\n" +"intended as a building block for other packages, rather than making it\n" +"particularly easy to create complete web applications using httpuv alone." +msgstr "" + +#: gnu/packages/web.scm:2902 +msgid "Robust, high performance JSON parser and generator for R" +msgstr "" + +#: gnu/packages/web.scm:2904 +msgid "" +"The jsonlite package provides a fast JSON parser and generator optimized\n" +"for statistical data and the web. It offers flexible, robust, high\n" +"performance tools for working with JSON in R and is particularly powerful for\n" +"building pipelines and interacting with a web API. In addition to converting\n" +"JSON data from/to R objects, jsonlite contains functions to stream, validate,\n" +"and prettify JSON data. The unit tests included with the package verify that\n" +"all edge cases are encoded and decoded consistently for use with dynamic data\n" +"in systems and applications." +msgstr "" + +#: gnu/packages/web.scm:2932 +msgid "Simple HTTP server to serve static files or dynamic documents" +msgstr "" + +#: gnu/packages/web.scm:2934 +msgid "" +"Servr provides an HTTP server in R to serve static files, or dynamic\n" +"documents that can be converted to HTML files (e.g., R Markdown) under a given\n" +"directory." +msgstr "" + +#: gnu/packages/web.scm:2953 +msgid "R tools for HTML" +msgstr "" + +#: gnu/packages/web.scm:2955 +msgid "This package provides tools for HTML generation and output in R." +msgstr "" + +#: gnu/packages/web.scm:2974 +msgid "HTML Widgets for R" +msgstr "" + +#: gnu/packages/web.scm:2976 +msgid "" +"HTML widgets is a framework for creating HTML widgets that render in\n" +"various contexts including the R console, R Markdown documents, and Shiny web\n" +"applications." +msgstr "" + +#: gnu/packages/weechat.scm:92 +msgid "Extensible chat client" +msgstr "" + +#: gnu/packages/weechat.scm:93 +msgid "" +"WeeChat (Wee Enhanced Environment for Chat) is an\n" +"Internet Relay Chat client, which is designed to be light and fast.\n" +"The client uses a curses frontend, and there are remote interfaces\n" +"for Web, Qt, Android and Emacs. In WeeChat everything can be done\n" +"with a keyboard, though it also supports mouse. It is customizable\n" +"and extensible with plugins and scripts." +msgstr "" + +#: gnu/packages/wordnet.scm:79 +msgid "Lexical database for the English language" +msgstr "" + +#: gnu/packages/wordnet.scm:81 +msgid "" +"WordNet® is a large lexical database of English. Nouns, verbs,\n" +"adjectives and adverbs are grouped into sets of cognitive synonyms (synsets),\n" +"each expressing a distinct concept. Synsets are interlinked by means of\n" +"conceptual-semantic and lexical relations. The resulting network of\n" +"meaningfully related words and concepts can be navigated with the browser.\n" +"WordNet is also freely and publicly available for download. WordNet's\n" +"structure makes it a useful tool for computational linguistics and natural\n" +"language processing." +msgstr "" + +#: gnu/packages/xiph.scm:65 +msgid "Library for manipulating the ogg multimedia format" +msgstr "" + +#: gnu/packages/xiph.scm:67 +msgid "" +"The libogg library allows to manipulate the ogg multimedia container\n" +"format, which encapsulates raw compressed data and allows the interleaving of\n" +"audio and video data. In addition to encapsulation and interleaving of\n" +"multiple data streams, ogg provides packet framing, error detection, and\n" +"periodic timestamps for seeking." +msgstr "" + +#: gnu/packages/xiph.scm:91 +msgid "Library implementing the vorbis audio format" +msgstr "" + +#: gnu/packages/xiph.scm:93 +msgid "" +"The libvorbis library implements the ogg vorbis audio format,\n" +"a fully open, non-proprietary, patent-and-royalty-free, general-purpose\n" +"compressed audio format for mid to high quality (8kHz-48.0kHz, 16+ bit,\n" +"polyphonic) audio and music at fixed and variable bitrates from 16 to\n" +"128 kbps/channel." +msgstr "" + +#: gnu/packages/xiph.scm:118 +msgid "Library implementing the Theora video format" +msgstr "" + +#: gnu/packages/xiph.scm:120 +msgid "" +"The libtheora library implements the ogg theora video format,\n" +"a fully open, non-proprietary, patent-and-royalty-free, general-purpose\n" +"compressed video format." +msgstr "" + +#: gnu/packages/xiph.scm:141 +msgid "Library for patent-free audio compression format" +msgstr "" + +#: gnu/packages/xiph.scm:143 +msgid "" +"GNU Speex is a patent-free audio compression codec specially designed\n" +"for speech. It is well-adapted to internet applications, such as VoIP. It\n" +"features compression of different bands in the same bitstream, intensity\n" +"stereo encoding, and voice activity detection." +msgstr "" + +#: gnu/packages/xiph.scm:171 +msgid "Cross platform audio library" +msgstr "" + +#: gnu/packages/xiph.scm:173 +msgid "" +"Libao is a cross-platform audio library that allows programs to\n" +"output audio using a simple API on a wide variety of platforms.\n" +"It currently supports:\n" +"Null output (handy for testing without a sound device),\n" +"WAV files,\n" +"AU files,\n" +"RAW files,\n" +"OSS (Open Sound System, used on Linux and FreeBSD),\n" +"ALSA (Advanced Linux Sound Architecture),\n" +"aRts (Analog RealTime Synth, used by KDE),\n" +"PulseAudio (next generation GNOME sound server),\n" +"esd (EsounD or Enlightened Sound Daemon),\n" +"Mac OS X,\n" +"Windows (98 and later),\n" +"AIX,\n" +"Sun/NetBSD/OpenBSD,\n" +"IRIX,\n" +"NAS (Network Audio Server),\n" +"RoarAudio (Modern, multi-OS, networked Sound System),\n" +"OpenBSD's sndio." +msgstr "" + +#: gnu/packages/xiph.scm:212 +msgid "Free lossless audio codec" +msgstr "" + +#: gnu/packages/xiph.scm:214 +msgid "" +"FLAC stands for Free Lossless Audio Codec, an audio format that is lossless,\n" +"meaning that audio is compressed in FLAC without any loss in quality." +msgstr "" + +#: gnu/packages/xiph.scm:240 +msgid "Karaoke and text codec for embedding in ogg" +msgstr "" + +#: gnu/packages/xiph.scm:242 +msgid "" +"Kate is an overlay codec, originally designed for karaoke and text,\n" +"that can be multiplixed in Ogg. Text and images can be carried by a Kate\n" +"stream, and animated. Most of the time, this would be multiplexed with\n" +"audio/video to carry subtitles, song lyrics (with or without karaoke data),\n" +"etc., but doesn't have to be.\n" +"\n" +"Series of curves (splines, segments, etc.) may be attached to various\n" +"properties (text position, font size, etc.) to create animated overlays.\n" +"This allows scrolling or fading text to be defined. This can even be used\n" +"to draw arbitrary shapes, so hand drawing can also be represented by a\n" +"Kate stream." +msgstr "" + +#: gnu/packages/xiph.scm:276 +msgid "Ogg vorbis tools" +msgstr "" + +#: gnu/packages/xiph.scm:278 +msgid "" +"Ogg vorbis is a non-proprietary, patent-and-royalty-free,\n" +"general-purpose compressed audio format.\n" +"\n" +"The package vorbis-tools contains\n" +"ogg123, an ogg vorbis command line audio player;\n" +"oggenc, the ogg vorbis encoder;\n" +"oggdec, a simple, portable command line decoder (to wav and raw);\n" +"ogginfo, to obtain information (tags, bitrate, length, etc.) about\n" +" an ogg vorbis file." +msgstr "" + +#: gnu/packages/xiph.scm:303 gnu/packages/xiph.scm:366 +msgid "Versatile audio codec" +msgstr "" + +#: gnu/packages/xiph.scm:305 +msgid "" +"Opus is a totally open, royalty-free, highly versatile audio codec. Opus\n" +"is unmatched for interactive speech and music transmission over the Internet,\n" +"but is also intended for storage and streaming applications. It is\n" +"standardized by the Internet Engineering Task Force (IETF) as RFC 6716 which\n" +"incorporated technology from Skype's SILK codec and Xiph.Org's CELT codec." +msgstr "" + +#: gnu/packages/xiph.scm:339 +msgid "Command line utilities to encode, inspect, and decode .opus files" +msgstr "" + +#: gnu/packages/xiph.scm:340 +msgid "" +"Opus is a royalty-free, highly versatile audio codec.\n" +"Opus-tools provide command line utilities for creating, inspecting and\n" +"decoding .opus files." +msgstr "" + +#: gnu/packages/xiph.scm:368 +msgid "" +"The opusfile library provides seeking, decode, and playback of Opus\n" +"streams in the Ogg container (.opus files) including over http(s) on posix and\n" +"windows systems." +msgstr "" + +#: gnu/packages/xiph.scm:398 +msgid "Streaming media server" +msgstr "Strøm-medieserver" + +#: gnu/packages/xiph.scm:399 +msgid "" +"Icecast is a streaming media server which currently supports\n" +"Ogg (Vorbis and Theora), Opus, WebM and MP3 audio streams. It can be used to\n" +"create an Internet radio station or a privately running jukebox and many\n" +"things in between." +msgstr "" + +#: gnu/packages/xiph.scm:427 +msgid "Audio streaming library for icecast encoders" +msgstr "" + +#: gnu/packages/xiph.scm:429 +msgid "" +"Libshout is a library for communicating with and sending data to an\n" +"icecast server. It handles the socket connection, the timing of the data,\n" +"and prevents bad data from getting to the icecast server." +msgstr "" + +#: gnu/packages/zip.scm:57 +msgid "Compression and file packing utility" +msgstr "" + +#: gnu/packages/zip.scm:59 +msgid "" +"Zip is a compression and file packaging/archive utility. Zip is useful\n" +"for packaging a set of files for distribution, for archiving files, and for\n" +"saving disk space by temporarily compressing unused files or directories.\n" +"Zip puts one or more compressed files into a single ZIP archive, along with\n" +"information about the files (name, path, date, time of last modification,\n" +"protection, and check information to verify file integrity). An entire\n" +"directory structure can be packed into a ZIP archive with a single command.\n" +"\n" +"Zip has one compression method (deflation) and can also store files without\n" +"compression. Zip automatically chooses the better of the two for each file.\n" +"Compression ratios of 2:1 to 3:1 are common for text files." +msgstr "" + +#: gnu/packages/zip.scm:111 +msgid "Decompression and file extraction utility" +msgstr "" + +#: gnu/packages/zip.scm:113 +msgid "" +"UnZip is an extraction utility for archives compressed in .zip format,\n" +"also called \"zipfiles\".\n" +"\n" +"UnZip lists, tests, or extracts files from a .zip archive. The default\n" +"behaviour (with no options) is to extract into the current directory, and\n" +"subdirectories below it, all files from the specified zipfile. UnZip\n" +"recreates the stored directory structure by default." +msgstr "" + +#: gnu/packages/zip.scm:147 +msgid "Library for accessing zip files" +msgstr "" + +#: gnu/packages/zip.scm:149 +msgid "ZZipLib is a library based on zlib for accessing zip files." +msgstr "" + +#: gnu/packages/zip.scm:167 +msgid "Provides an interface to ZIP archive files" +msgstr "" + +#: gnu/packages/zsh.scm:65 +msgid "Powerful shell for interactive use and scripting" +msgstr "" + +#: gnu/packages/zsh.scm:66 +msgid "" +"The Z shell (zsh) is a Unix shell that can be used\n" +"as an interactive login shell and as a powerful command interpreter\n" +"for shell scripting. Zsh can be thought of as an extended Bourne shell\n" +"with a large number of improvements, including some features of bash,\n" +"ksh, and tcsh." +msgstr "" -- cgit v1.2.3 From 6d6e628119a043b3d8dd309d3e6d5a35bcd37618 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 1 Nov 2015 22:14:47 +0100 Subject: doc: Give an example with an encrypted root partition. * gnu/system/examples/desktop.tmpl: Add 'mapped-devices' field. Use it in 'file-systems'. * doc/guix.texi (System Installation): Suggest encrypted partitions. Give an example of a command sequence. --- doc/guix.texi | 14 ++++++++++++-- gnu/system/examples/desktop.tmpl | 12 ++++++++++-- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index e8b79ecf98..bd9b42b20f 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -5237,14 +5237,24 @@ Setting up network access is almost always a requirement because the image does not contain all the software and tools that may be needed. @item -Unless this has already been done, you must partition and format the -target partitions. +Unless this has already been done, you must partition, optionally +encrypt, and then format the target partitions. Preferably, assign partitions a label so that you can easily and reliably refer to them in @code{file-system} declarations (@pxref{File Systems}). This is typically done using the @code{-L} option of @command{mkfs.ext4} and related commands. +A typical command sequence may be: + +@example +# fdisk /dev/sdX +@dots{} Create partitions etc.@dots{} +# cryptsetup luksFormat /dev/sdX1 +# cryptsetup open --type luks /dev/sdX1 my-partition +# mkfs.ext4 -L my-root /dev/mapper/my-partition +@end example + The installation image includes Parted (@pxref{Overview,,, parted, GNU Parted User Manual}), @command{fdisk}, Cryptsetup/LUKS for disk encryption, and e2fsprogs, the suite of tools to manipulate diff --git a/gnu/system/examples/desktop.tmpl b/gnu/system/examples/desktop.tmpl index 988b8f937f..41f66f693a 100644 --- a/gnu/system/examples/desktop.tmpl +++ b/gnu/system/examples/desktop.tmpl @@ -13,9 +13,17 @@ ;; Assuming /dev/sdX is the target hard disk, and "root" is ;; the label of the target root file system. (bootloader (grub-configuration (device "/dev/sdX"))) + + ;; Here we assume that /dev/sdX1 contains a LUKS-encrypted + ;; root partition created with 'cryptsetup luksFormat'. + (mapped-devices (list (mapped-device + (source "/dev/sdX1") + (target "root-partition") + (type luks-device-mapping)))) + + ;; Mount said encrypted partition. (file-systems (cons (file-system - (device "root") - (title 'label) + (device "/dev/mapper/root-partition") (mount-point "/") (type "ext4")) %base-file-systems)) -- cgit v1.2.3 From 0f252e266a84cd9725377088d96b2e62d6407820 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Sun, 1 Nov 2015 16:32:55 -0500 Subject: doc: Mention minimum Linux-libre version for containers. * doc/guix.texi ("invoking guix environment", "invoking guix system"): Mention Linux-libre requirements for container features. --- doc/guix.texi | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/doc/guix.texi b/doc/guix.texi index bd9b42b20f..474a56e6db 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -4725,6 +4725,10 @@ working directory are mounted: guix environment --ad-hoc --container guile -- guile @end example +@quotation Note +The @code{--container} option requires Linux-libre 3.10 or newer. +@end quotation + The available options are summarized below. @table @code @@ -7370,6 +7374,10 @@ guix system container my-config.scm \ --expose=$HOME --share=$HOME/tmp=/exchange @end example +@quotation Note +This option requires Linux-libre 3.10 or newer. +@end quotation + @end table @var{options} can contain any of the common build options provided by -- cgit v1.2.3 From 7c5a442091175361263ca15c50432488c5af89f6 Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Sun, 1 Nov 2015 12:00:15 -0600 Subject: gnu: synergy: Upgrade to 1.7.4. * gnu/packages/synergy.scm (synergy): Upgrade to 1.7.4. --- gnu/packages/synergy.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/synergy.scm b/gnu/packages/synergy.scm index 905ef82af4..bc70eaf838 100644 --- a/gnu/packages/synergy.scm +++ b/gnu/packages/synergy.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2014 Eric Bavier +;;; Copyright © 2014, 2015 Eric Bavier ;;; ;;; This file is part of GNU Guix. ;;; @@ -32,7 +32,7 @@ (define-public synergy (package (name "synergy") - (version "1.7.3") + (version "1.7.4") (source (origin (method url-fetch) @@ -41,7 +41,7 @@ (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "098y71fiw1n5i7g1p6vjfs5rz472j192p9izz2axxxhfvcyzrvx4")) + "1prb06dmi4bhfsraih4hzlsfiraiczgzhqy9gjsxygczif8w6p91")) (modules '((guix build utils))) (snippet ;; Remove ~14MB of unnecessary bundled source and binaries -- cgit v1.2.3 From 32efa254a80672bdf5199b8e200764615a3cf68b Mon Sep 17 00:00:00 2001 From: David Thompson Date: Wed, 1 Jul 2015 20:32:07 -0400 Subject: scripts: Add 'container' subcommand. * guix/scripts/container.scm: New file. * guix/scripts/container/exec.scm: New file. * po/guix/POTFILES.in: Add them. * Makefile.am (MODULES): Add them. * doc/guix.texi (Invoking guix container): New section. --- Makefile.am | 2 + doc/guix.texi | 56 +++++++++++++++++++++++++++ guix/scripts/container.scm | 63 ++++++++++++++++++++++++++++++ guix/scripts/container/exec.scm | 86 +++++++++++++++++++++++++++++++++++++++++ po/guix/POTFILES.in | 2 + 5 files changed, 209 insertions(+) create mode 100644 guix/scripts/container.scm create mode 100644 guix/scripts/container/exec.scm diff --git a/Makefile.am b/Makefile.am index b2ee3245b3..67d483bfb0 100644 --- a/Makefile.am +++ b/Makefile.am @@ -128,6 +128,8 @@ MODULES = \ guix/scripts/edit.scm \ guix/scripts/size.scm \ guix/scripts/graph.scm \ + guix/scripts/container.scm \ + guix/scripts/container/exec.scm \ guix.scm \ $(GNU_SYSTEM_MODULES) diff --git a/doc/guix.texi b/doc/guix.texi index 474a56e6db..431db5d75f 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -144,6 +144,7 @@ Utilities * Invoking guix environment:: Setting up development environments. * Invoking guix publish:: Sharing substitutes. * Invoking guix challenge:: Challenging substitute servers. +* Invoking guix container:: Process isolation. GNU Distribution @@ -3583,6 +3584,7 @@ programming interface of Guix in a convenient way. * Invoking guix environment:: Setting up development environments. * Invoking guix publish:: Sharing substitutes. * Invoking guix challenge:: Challenging substitute servers. +* Invoking guix container:: Process isolation. @end menu @node Invoking guix build @@ -5036,6 +5038,60 @@ URLs to compare to. @end table +@node Invoking guix container +@section Invoking @command{guix container} +@cindex container + +@quotation Note +As of version @value{VERSION}, this tool is experimental. The interface +is subject to radical change in the future. +@end quotation + +The purpose of @command{guix container} is to manipulate processes +running within an isolated environment, commonly known as a +``container,'' typically created by the @command{guix environment} +(@pxref{Invoking guix environment}) and @command{guix system container} +(@pxref{Invoking guix system}) commands. + +The general syntax is: + +@example +guix container @var{action} @var{options}@dots{} +@end example + +@var{action} specifies the operation to perform with a container, and +@var{options} specifies the context-specific arguments for the action. + +The following actions are available: + +@table @code +@item exec +Execute a command within the context of a running container. + +The syntax is: + +@example +guix container exec @var{pid} @var{program} @var{arguments}@dots{} +@end example + +@var{pid} specifies the process ID of the running container. +@var{program} specifies an executable file name within the container's +root file system. @var{arguments} are the additional options that will +be passed to @var{program}. + +The following command launches an interactive login shell inside a +GuixSD container, started by @command{guix system container}, and whose +process ID is 9001: + +@example +guix container exec 9001 /run/current-system/profile/bin/bash --login +@end example + +Note that the @var{pid} cannot be the parent process of a container. It +must be the container's PID 1 or one of its child processes. + +@end table + @c ********************************************************************* @node GNU Distribution @chapter GNU Distribution diff --git a/guix/scripts/container.scm b/guix/scripts/container.scm new file mode 100644 index 0000000000..cd9f345b68 --- /dev/null +++ b/guix/scripts/container.scm @@ -0,0 +1,63 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2015 David Thompson +;;; +;;; 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 (guix scripts container) + #:use-module (ice-9 match) + #:use-module (guix ui) + #:export (guix-container)) + +(define (show-help) + (display (_ "Usage: guix container ACTION ARGS... +Build and manipulate Linux containers.\n")) + (newline) + (display (_ "The valid values for ACTION are:\n")) + (newline) + (display (_ "\ + exec execute a command inside of an existing container\n")) + (newline) + (display (_ " + -h, --help display this help and exit")) + (display (_ " + -V, --version display version information and exit")) + (newline) + (show-bug-report-information)) + +(define %actions '("exec")) + +(define (resolve-action name) + (let ((module (resolve-interface + `(guix scripts container ,(string->symbol name)))) + (proc (string->symbol (string-append "guix-container-" name)))) + (module-ref module proc))) + +(define (guix-container . args) + (with-error-handling + (match args + (() + (format (current-error-port) + (_ "guix container: missing action~%"))) + ((or ("-h") ("--help")) + (show-help) + (exit 0)) + (("--version") + (show-version-and-exit "guix container")) + ((action args ...) + (if (member action %actions) + (apply (resolve-action action) args) + (format (current-error-port) + (_ "guix container: invalid action~%"))))))) diff --git a/guix/scripts/container/exec.scm b/guix/scripts/container/exec.scm new file mode 100644 index 0000000000..b842fd38aa --- /dev/null +++ b/guix/scripts/container/exec.scm @@ -0,0 +1,86 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2015 David Thompson +;;; +;;; 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 (guix scripts container exec) + #:use-module (ice-9 match) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-11) + #:use-module (srfi srfi-37) + #:use-module (guix scripts) + #:use-module (guix ui) + #:use-module (guix utils) + #:use-module (gnu build linux-container) + #:export (guix-container-exec)) + +(define %options + (list (option '(#\h "help") #f #f + (lambda args + (show-help) + (exit 0))) + (option '(#\V "version") #f #f + (lambda args + (show-version-and-exit "guix container exec"))))) + +(define (show-help) + (display (_ "Usage: guix container exec PID COMMAND [ARGS...] +Execute COMMMAND within the container process PID.\n")) + (newline) + (display (_ " + -h, --help display this help and exit")) + (display (_ " + -V, --version display version information and exit")) + (newline) + (show-bug-report-information)) + +(define (partition-args args) + "Split ARGS into two lists; one containing the arguments for this program, +and the other containing arguments for the command to be executed." + (break (lambda (arg) + ;; Split after the pid argument. + (not (false-if-exception (string->number arg)))) + args)) + +(define (guix-container-exec . args) + (define (handle-argument arg result) + (if (assoc-ref result 'pid) + (leave (_ "~a: extraneous argument~%") arg) + (alist-cons 'pid (string->number* arg) result))) + + (with-error-handling + (let-values (((args command) (partition-args args))) + (let* ((opts (parse-command-line args %options '(()) + #:argument-handler + handle-argument)) + (pid (assoc-ref opts 'pid))) + + (unless pid + (leave (_ "no pid specified~%"))) + + (when (null? command) + (leave (_ "no command specified~%"))) + + (unless (file-exists? (string-append "/proc/" (number->string pid))) + (leave (_ "no such process ~d~%") pid)) + + (let ((result (container-excursion pid + (lambda () + (match command + ((program . program-args) + (apply execlp program program program-args))))))) + (unless (zero? result) + (leave (_ "exec failed with status ~d~%") result))))))) diff --git a/po/guix/POTFILES.in b/po/guix/POTFILES.in index 41cf9ee0f4..bf65416638 100644 --- a/po/guix/POTFILES.in +++ b/po/guix/POTFILES.in @@ -25,6 +25,8 @@ guix/scripts/size.scm guix/scripts/graph.scm guix/scripts/challenge.scm guix/gnu-maintenance.scm +guix/scripts/container.scm +guix/scripts/container/exec.scm guix/upstream.scm guix/ui.scm guix/http-client.scm -- cgit v1.2.3 From cb7fed9285e6eb7b9b4a2dd7a6c5b553de86771d Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 2 Nov 2015 10:46:56 +0200 Subject: gnu: links: Update to 2.12. * gnu/packages/links.scm (links): Update to 2.12. Various whitespace and line length fixes. --- gnu/packages/links.scm | 31 ++++++++++++++----------------- 1 file changed, 14 insertions(+), 17 deletions(-) diff --git a/gnu/packages/links.scm b/gnu/packages/links.scm index 04abf06991..e0a3da8fe6 100644 --- a/gnu/packages/links.scm +++ b/gnu/packages/links.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright 2014 John Darrington +;;; Copyright © 2014 John Darrington +;;; Copyright © 2015 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -31,21 +32,21 @@ (define-public links (package (name "links") - (version "2.8") + (version "2.12") (source (origin (method url-fetch) (uri (string-append "http://links.twibright.com/download/" name "-" version ".tar.bz2")) (sha256 - (base32 "15h07498z52jfdahzgvkphg1f7qvxnpbyfn2xmsls0d2dwwdll3r")))) + (base32 "0knq15yrp60s4jh92aacw8yfc2pcv3bqsw7dba7h5s6ivq8ihhcq")))) (build-system gnu-build-system) (arguments `(#:phases (alist-replace 'configure (lambda* (#:key outputs #:allow-other-keys) - ;; The tarball uses a very old version of autconf. It doesn't understand - ;; extra flags like `--enable-fast-install', so we need to - ;; invoke it with just what it understand. + ;; The tarball uses a very old version of autconf. It doesn't + ;; understand extra flags like `--enable-fast-install', so + ;; we need to invoke it with just what it understands. (let ((out (assoc-ref outputs "out"))) ;; 'configure' doesn't understand '--host'. ,@(if (%current-target-system) @@ -55,8 +56,7 @@ (zero? (system* "./configure" (string-append "--prefix=" out) - "--enable-graphics" - )))) + "--enable-graphics")))) %standard-phases))) (native-inputs `(("pkg-config" ,pkg-config))) (inputs `(("zlib" ,zlib) @@ -69,14 +69,11 @@ (description "Links is a graphics and text mode web browser, with many features including, tables, builtin image display, bookmarks, SSL and more.") (home-page "http://links.twibright.com") - ;; The distribution contains a copy of GPLv2 - ;; However, the copyright notices simply say: + ;; The distribution contains a copy of GPLv2 + ;; However, the copyright notices simply say: ;; "This file is a part of the Links program, released under GPL." ;; Therefore, under the provisions of Section 9, we can choose - ;; any version ever published by the FSF - ;; One file (https.c) contains an exception permitting - ;; linking of the program with openssl - (license license:gpl1+))) - - - + ;; any version ever published by the FSF. + ;; One file (https.c) contains an exception permitting + ;; linking of the program with openssl. + (license license:gpl1+))) -- cgit v1.2.3 From a83adbf681b7f0ce68eaff2b55f17ea5563f66bc Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 2 Nov 2015 10:50:08 +0200 Subject: gnu: links: Build with libevent. * gnu/packages/links.scm (links)[inputs]: Add libevent. --- gnu/packages/links.scm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gnu/packages/links.scm b/gnu/packages/links.scm index e0a3da8fe6..41fac8c305 100644 --- a/gnu/packages/links.scm +++ b/gnu/packages/links.scm @@ -24,6 +24,7 @@ #:use-module (gnu packages compression) #:use-module (gnu packages pkg-config) #:use-module (gnu packages image) + #:use-module (gnu packages libevent) #:use-module (gnu packages tls) #:use-module (gnu packages xorg) #:use-module (guix download) @@ -63,6 +64,7 @@ ("openssl" ,openssl) ("libjpeg" ,libjpeg) ("libtiff" ,libtiff) + ("libevent" ,libevent) ("libpng" ,libpng) ("libxt" ,libxt))) (synopsis "Text and graphics mode web browser") -- cgit v1.2.3 From 6394fe650e7246dd0fcfb3f92a1797f7b6f3fcd1 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 1 Nov 2015 22:29:53 +0100 Subject: system: grub: Use a bigger background image. * gnu/system/grub.scm (grub-background-image): Increase the default values of WIDTH and HEIGHT. After all, it's 2015 already! --- gnu/system/grub.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/system/grub.scm b/gnu/system/grub.scm index 4c21851cb6..5b824820b1 100644 --- a/gnu/system/grub.scm +++ b/gnu/system/grub.scm @@ -140,7 +140,7 @@ (system* (string-append #$imagemagick "/bin/convert") "-resize" #$size #$image #$output))))) -(define* (grub-background-image config #:key (width 640) (height 480)) +(define* (grub-background-image config #:key (width 1024) (height 768)) "Return the GRUB background image defined in CONFIG with a ratio of WIDTH/HEIGHT, or #f if none was found." (let* ((ratio (/ width height)) -- cgit v1.2.3 From f3674b1c80a95d77be8aadea4575eb788cfac7cf Mon Sep 17 00:00:00 2001 From: Ben Woodcroft Date: Thu, 15 Oct 2015 22:53:31 +1000 Subject: gnu: Add express-beta-diversity. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/bioinformatics.scm (express-beta-diversity): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/bioinformatics.scm | 45 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index fdb42562e8..953684101d 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -1090,6 +1090,51 @@ analysis (from RNA-Seq), transcription factor binding quantification in ChIP-Seq, and analysis of metagenomic data.") (license license:artistic2.0))) +(define-public express-beta-diversity + (package + (name "express-beta-diversity") + (version "1.0.7") + (source (origin + (method url-fetch) + (uri + (string-append + "https://github.com/dparks1134/ExpressBetaDiversity/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1djvdlmqvjf6h0zq7w36y8cl5cli6rgj86x65znl48agnwmzxfxr")))) + (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (delete 'configure) + (add-before 'build 'enter-source (lambda _ (chdir "source") #t)) + (replace 'check + (lambda _ (zero? (system* "../bin/ExpressBetaDiversity" + "-u")))) + (add-after 'check 'exit-source (lambda _ (chdir "..") #t)) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((bin (string-append (assoc-ref outputs "out") + "/bin"))) + (mkdir-p bin) + (copy-file "scripts/convertToEBD.py" + (string-append bin "/convertToEBD.py")) + (copy-file "bin/ExpressBetaDiversity" + (string-append bin "/ExpressBetaDiversity")) + #t)))))) + (inputs + `(("python" ,python-2))) + (home-page "http://kiwi.cs.dal.ca/Software/ExpressBetaDiversity") + (synopsis "Taxon- and phylogenetic-based beta diversity measures") + (description + "Express Beta Diversity (EBD) calculates ecological beta diversity +(dissimilarity) measures between biological communities. EBD implements a +variety of diversity measures including those that make use of phylogenetic +similarity of community members.") + (license license:gpl3+))) + (define-public fasttree (package (name "fasttree") -- cgit v1.2.3 From 762b1971d8e21ffbc46d28b37c9bace64c2369bc Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 2 Nov 2015 13:29:51 +0200 Subject: gnu: claws-mail: Update to 3.13.0. * gnu/packages/mail.scm (claws-mail): Update to 3.13.0. [url]: Update to new location. --- gnu/packages/mail.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 1a0a42d267..1e3ba8fd54 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -513,14 +513,14 @@ MailCore 2.") (define-public claws-mail (package (name "claws-mail") - (version "3.11.1") + (version "3.13.0") (source (origin (method url-fetch) (uri (string-append - "mirror://sourceforge/claws-mail/claws-mail-" version + "http://www.claws-mail.org/releases/" name "-" version ".tar.xz")) (sha256 - (base32 "0cyixz1jgfpi8abh9fbb8ylx9mcvw4jqj81cms666wpqr6v828yp")))) + (base32 "0fpr9gdgrs5yggm61a6135ca06x0cflddsh8dwfqmpb3dj07cl1n")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) (inputs `(("bogofilter" ,bogofilter) -- cgit v1.2.3 From 6407ce8ea1b67024e50273b7d6a1773a16a42322 Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Wed, 28 Oct 2015 21:11:36 +0300 Subject: emacs: Add completions for '--type' option of 'refresh' popup. * guix/scripts/refresh.scm: Export '%updaters'. * emacs/guix-main.scm (refresh-updater-names): New procedure. * emacs/guix-base.el (guix-refresh-updater-names): New function. * emacs/guix-read.el (guix-read-refresh-updater-names, guix-read-refresh-updater-names-string): New functions. * emacs/guix-command.el (guix-command-improve-refresh-argument): Use 'guix-read-refresh-updater-names-string'. --- emacs/guix-base.el | 4 ++++ emacs/guix-command.el | 1 + emacs/guix-main.scm | 5 +++++ emacs/guix-read.el | 6 ++++++ guix/scripts/refresh.scm | 3 ++- 5 files changed, 18 insertions(+), 1 deletion(-) diff --git a/emacs/guix-base.el b/emacs/guix-base.el index 2e99c545f0..14ea3d4458 100644 --- a/emacs/guix-base.el +++ b/emacs/guix-base.el @@ -186,6 +186,10 @@ For the meaning of location, see `guix-find-location'." "Return a list of names of available graph node types." (guix-eval-read (guix-make-guile-expression 'graph-type-names))) +(guix-memoized-defun guix-refresh-updater-names () + "Return a list of names of available refresh updater types." + (guix-eval-read (guix-make-guile-expression 'refresh-updater-names))) + (guix-memoized-defun guix-lint-checker-names () "Return a list of names of available lint checkers." (guix-eval-read (guix-make-guile-expression 'lint-checker-names))) diff --git a/emacs/guix-command.el b/emacs/guix-command.el index 36ce7bcb09..f8a6df7c6a 100644 --- a/emacs/guix-command.el +++ b/emacs/guix-command.el @@ -241,6 +241,7 @@ to be modified." (guix-command-define-argument-improver guix-command-improve-refresh-argument '(("--select" :fun guix-read-refresh-subset) + ("--type" :fun guix-read-refresh-updater-names-string) ("--key-server" :char ?S))) (guix-command-define-argument-improver diff --git a/emacs/guix-main.scm b/emacs/guix-main.scm index e29a0a0acc..9eac5185b7 100644 --- a/emacs/guix-main.scm +++ b/emacs/guix-main.scm @@ -991,6 +991,11 @@ Return #t if the shell command was executed successfully." "Return a list of names of available graph node types." (map node-type-name %node-types)) +(define (refresh-updater-names) + "Return a list of names of available refresh updater types." + (map (@ (guix upstream) upstream-updater-name) + (@ (guix scripts refresh) %updaters))) + (define (lint-checker-names) "Return a list of names of available lint checkers." (map (lambda (checker) diff --git a/emacs/guix-read.el b/emacs/guix-read.el index 5a7201c3aa..e60af9c2f7 100644 --- a/emacs/guix-read.el +++ b/emacs/guix-read.el @@ -136,6 +136,12 @@ keywords are available: :single-reader guix-read-refresh-subset :single-prompt "Refresh subset: ") +(guix-define-readers + :completions-getter guix-refresh-updater-names + :multiple-reader guix-read-refresh-updater-names + :multiple-prompt "Refresh updater,s: " + :multiple-separator ",") + (guix-define-readers :completions-var guix-help-key-policies :single-reader guix-read-key-policy diff --git a/guix/scripts/refresh.scm b/guix/scripts/refresh.scm index 04f6b76edc..0df4121d0a 100644 --- a/guix/scripts/refresh.scm +++ b/guix/scripts/refresh.scm @@ -42,7 +42,8 @@ #:use-module (srfi srfi-26) #:use-module (srfi srfi-37) #:use-module (rnrs io ports) - #:export (guix-refresh)) + #:export (guix-refresh + %updaters)) ;;; -- cgit v1.2.3 From 0048552d0de1582f016535078274be3cd4c66057 Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Thu, 29 Oct 2015 20:48:53 +0300 Subject: emacs: Enable 'guix-build-log-mode' for build log files. * emacs/guix-build-log.el (auto-mode-alist): Add 'guix-build-log-mode' to 'auto-mode-alist'. --- emacs/guix-build-log.el | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/emacs/guix-build-log.el b/emacs/guix-build-log.el index c209100ffd..c64946846e 100644 --- a/emacs/guix-build-log.el +++ b/emacs/guix-build-log.el @@ -346,6 +346,13 @@ programmatically using hooks: (when font-lock-mode (font-lock-fontify-buffer))) +;;;###autoload +(add-to-list 'auto-mode-alist + ;; Regexp for log files (usually placed in /var/log/guix/...) + (cons (rx "/guix/drvs/" (= 2 alnum) "/" (= 30 alnum) + "-" (+ (any alnum "-+.")) ".drv" string-end) + 'guix-build-log-mode)) + (provide 'guix-build-log) ;;; guix-build-log.el ends here -- cgit v1.2.3 From f4044b586d04c197325dec36eb35e77fe05028c7 Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Sat, 31 Oct 2015 22:01:45 +0300 Subject: emacs: Enable 'guix-build-log-minor-mode' in shell buffers. * emacs/guix-build-log.el (guix-build-log-minor-mode-activate): New variable. (guix-build-log-minor-mode-activate-maybe): New function. * emacs/guix-init.el: Add it to 'shell-mode-hook'. * doc/emacs.texi (Emacs Build Log): Mention it. --- doc/emacs.texi | 12 +++++------- emacs/guix-build-log.el | 13 +++++++++++++ emacs/guix-init.el | 1 + 3 files changed, 19 insertions(+), 7 deletions(-) diff --git a/doc/emacs.texi b/doc/emacs.texi index 03dc9519f8..e4608f09ef 100644 --- a/doc/emacs.texi +++ b/doc/emacs.texi @@ -646,13 +646,11 @@ Toggle (show/hide) the bodies of all build phases. @end table There is also @kbd{M-x guix-build-log-minor-mode} which also provides -the same highlighting. And as it is a minor mode, it can be enabled in -any buffer. For example, if you are building some package in a shell -buffer (@pxref{Interactive Shell,,, emacs, The GNU Emacs Manual}), you -may enable @command{guix-build-log-minor-mode} to make it more colorful. -Guix build output is rather specific, so this new highlighting shouldn't -conflict with the existing one. This mode also provides the same key -bindings as the major mode, but prefixed with @kbd{C-c}. +the same highlighting and the same key bindings as the major mode, but +prefixed with @kbd{C-c}. By default, this minor mode is enabled in +shell buffers (@pxref{Interactive Shell,,, emacs, The GNU Emacs +Manual}). If you don't like it, set +@code{guix-build-log-minor-mode-activate} to nil. @node Emacs Completions diff --git a/emacs/guix-build-log.el b/emacs/guix-build-log.el index c64946846e..3f78121a90 100644 --- a/emacs/guix-build-log.el +++ b/emacs/guix-build-log.el @@ -102,6 +102,12 @@ "Face for the number of seconds for a phase." :group 'guix-build-log-faces) +(defcustom guix-build-log-minor-mode-activate t + "If non-nil, then `guix-build-log-minor-mode' is automatically +activated in `shell-mode' buffers." + :type 'boolean + :group 'guix-build-log) + (defcustom guix-build-log-mode-hook '() "Hook run after `guix-build-log-mode' is entered." :type 'hook @@ -346,6 +352,13 @@ programmatically using hooks: (when font-lock-mode (font-lock-fontify-buffer))) +;;;###autoload +(defun guix-build-log-minor-mode-activate-maybe () + "Activate `guix-build-log-minor-mode' depending on +`guix-build-log-minor-mode-activate' variable." + (when guix-build-log-minor-mode-activate + (guix-build-log-minor-mode))) + ;;;###autoload (add-to-list 'auto-mode-alist ;; Regexp for log files (usually placed in /var/log/guix/...) diff --git a/emacs/guix-init.el b/emacs/guix-init.el index 4b3d9c281c..1612dee83f 100644 --- a/emacs/guix-init.el +++ b/emacs/guix-init.el @@ -15,5 +15,6 @@ avoid loading autoloads of Emacs packages installed in (guix-emacs-load-autoloads 'all)) (add-hook 'scheme-mode-hook 'guix-devel-activate-mode-maybe) +(add-hook 'shell-mode-hook 'guix-build-log-minor-mode-activate-maybe) (provide 'guix-init) -- cgit v1.2.3 From 46c36586fc1623ffea59b2d56f78becfdee97e01 Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Mon, 2 Nov 2015 15:53:48 +0300 Subject: doc: Fix typo. * doc/guix.texi (Invoking guix container): Fix typo. --- doc/guix.texi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/guix.texi b/doc/guix.texi index 431db5d75f..e1f6155754 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -5049,7 +5049,7 @@ is subject to radical change in the future. The purpose of @command{guix container} is to manipulate processes running within an isolated environment, commonly known as a -``container,'' typically created by the @command{guix environment} +``container'', typically created by the @command{guix environment} (@pxref{Invoking guix environment}) and @command{guix system container} (@pxref{Invoking guix system}) commands. -- cgit v1.2.3 From 6b5b656f71c4b3a098e9c0de16997514b1015855 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 2 Nov 2015 14:08:45 +0100 Subject: gnu: shogun: Disable build on non-x86_64. * gnu/packages/machine-learning.scm (shogun)[supported-systems]: Add field. --- gnu/packages/machine-learning.scm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm index 467b44ce3d..bfa88ac964 100644 --- a/gnu/packages/machine-learning.scm +++ b/gnu/packages/machine-learning.scm @@ -278,6 +278,9 @@ sample proximities between pairs of cases.") ("zlib" ,zlib))) (native-inputs `(("pkg-config" ,pkg-config))) + ;; Non-portable SSE instructions are used so building fails on platforms + ;; other than x86_64. + (supported-systems '("x86_64-linux")) (home-page "http://shogun-toolbox.org/") (synopsis "Machine learning toolbox") (description -- cgit v1.2.3 From 69b96e5eee36dd2f15790c6022a5c162e3206291 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 2 Nov 2015 14:26:05 +0100 Subject: gnu: python-simplegeneric: Add setuptools to native inputs. * gnu/packages/python.scm (python-simplegeneric)[native-inputs]: Add python-setuptools. --- gnu/packages/python.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index b37bb1360f..1055c6f242 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -3961,7 +3961,8 @@ PickleShare.") (base32 "0wwi1c6md4vkbcsfsf8dklf3vr4mcdj4mpxkanwgb6jb1432x5yw")))) (build-system python-build-system) (native-inputs - `(("unzip" ,unzip))) + `(("python-setuptools" ,python-setuptools) + ("unzip" ,unzip))) (home-page "http://cheeseshop.python.org/pypi/simplegeneric") (synopsis "Python module for simple generic functions") (description -- cgit v1.2.3 From 7241c2fae6a5c4c47432443fc3bff697f4617be3 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Sun, 1 Nov 2015 18:34:53 -0500 Subject: scripts: environment: Ignore user shell when spawning container. * guix/scripts/environment.scm (%default-options): Remove 'exec' association. (guix-environment): If the user didn't specify a command, use the default shell, or use /bin/sh when a container is requested. --- guix/scripts/environment.scm | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/guix/scripts/environment.scm b/guix/scripts/environment.scm index f9ab9a483f..45b54a9297 100644 --- a/guix/scripts/environment.scm +++ b/guix/scripts/environment.scm @@ -160,8 +160,7 @@ COMMAND or an interactive shell in that environment.\n")) (define %default-options ;; Default to opening a new shell. - `((exec . (,%default-shell)) - (system . ,(%current-system)) + `((system . ,(%current-system)) (substitutes? . #t) (max-silent-time . 3600) (verbosity . 0))) @@ -447,7 +446,14 @@ Otherwise, return the derivation for the Bash package." (network? (assoc-ref opts 'network?)) (bootstrap? (assoc-ref opts 'bootstrap?)) (system (assoc-ref opts 'system)) - (command (assoc-ref opts 'exec)) + (command (or (assoc-ref opts 'exec) + ;; Spawn a shell if the user didn't specify + ;; anything in particular. + (if container? + ;; The user's shell is likely not available + ;; within the container. + '("/bin/sh") + (list %default-shell)))) (packages (options/resolve-packages opts)) (mappings (pick-all opts 'file-system-mapping)) (inputs (delete-duplicates -- cgit v1.2.3 From 60af3d82419c7b31fedb8ebb54e2ce85f87a2ccd Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 2 Nov 2015 14:36:36 +0100 Subject: gnu: hisat: Disable build on non-x86_64. * gnu/packages/bioinformatics.scm (hisat)[supported-systems]: Add field. --- gnu/packages/bioinformatics.scm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 953684101d..2e048bdabc 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -1374,6 +1374,9 @@ estimates transcript expression.") `(("perl" ,perl) ("python" ,python) ("zlib" ,zlib))) + ;; Non-portable SSE instructions are used so building fails on platforms + ;; other than x86_64. + (supported-systems '("x86_64-linux")) (home-page "http://ccb.jhu.edu/software/hisat/index.shtml") (synopsis "Hierarchical indexing for spliced alignment of transcripts") (description -- cgit v1.2.3 From f13636f29179e0d7eb9b2e0416f771848a9d2e1e Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 15 Oct 2015 12:29:07 +0200 Subject: gnu: Add ruby-rubygems-tasks. * gnu/packages/ruby.scm (ruby-rubygems-tasks): New variable. --- gnu/packages/ruby.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 8bf85233ea..92e726de64 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -752,6 +752,28 @@ standard output stream.") (home-page "https://github.com/geemus/shindo") (license license:expat))) +(define-public ruby-rubygems-tasks + (package + (name "ruby-rubygems-tasks") + (version "0.2.4") + (source (origin + (method url-fetch) + (uri (rubygems-uri "rubygems-tasks" version)) + (sha256 + (base32 + "16cp45qlbcglnqdm4f1vj3diywdz4v024saqpgrz6palf0wmgz2j")))) + (build-system ruby-build-system) + ;; Tests need Internet access. + (arguments `(#:tests? #f)) + (native-inputs + `(("ruby-rspec" ,ruby-rspec) + ("ruby-yard" ,ruby-yard))) + (synopsis "Rake tasks for managing and releasing Ruby Gems") + (description "Rubygems-task provides Rake tasks for managing and releasing +Ruby Gems.") + (home-page "https://github.com/postmodern/rubygems-tasks") + (license license:expat))) + (define-public ruby-useragent (package (name "ruby-useragent") -- cgit v1.2.3 From 2417fce3afa1f1908462c2176dedd810cb639085 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 16 Sep 2015 11:05:50 +0200 Subject: gnu: Add ruby-ffi. * gnu/packages/ruby.scm (ruby-ffi): New variable. --- gnu/packages/ruby.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 92e726de64..fcb800a788 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -774,6 +774,34 @@ Ruby Gems.") (home-page "https://github.com/postmodern/rubygems-tasks") (license license:expat))) +(define-public ruby-ffi + (package + (name "ruby-ffi") + (version "1.9.10") + (source (origin + (method url-fetch) + (uri (rubygems-uri "ffi" version)) + (sha256 + (base32 + "1m5mprppw0xcrv2mkim5zsk70v089ajzqiq5hpyb0xg96fcyzyxj")))) + (build-system ruby-build-system) + ;; FIXME: Before running tests the build system attempts to build libffi + ;; from sources. + (arguments `(#:tests? #f)) + (native-inputs + `(("ruby-rake-compiler" ,ruby-rake-compiler) + ("ruby-rspec" ,ruby-rspec) + ("ruby-rubygems-tasks" ,ruby-rubygems-tasks))) + (inputs + `(("libffi" ,libffi))) + (synopsis "Ruby foreign function interface library") + (description "Ruby-FFI is a Ruby extension for programmatically loading +dynamic libraries, binding functions within them, and calling those functions +from Ruby code. Moreover, a Ruby-FFI extension works without changes on Ruby +and JRuby.") + (home-page "http://wiki.github.com/ffi/ffi") + (license license:bsd-3))) + (define-public ruby-useragent (package (name "ruby-useragent") -- cgit v1.2.3 From 58b59742f47e4aee243bd75af8e6dda5f92ed57a Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 16 Sep 2015 11:06:25 +0200 Subject: gnu: Add ruby-simplecov-html. * gnu/packages/ruby.scm (ruby-simplecov-html): New variable. --- gnu/packages/ruby.scm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index fcb800a788..3cd1465afa 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -802,6 +802,25 @@ and JRuby.") (home-page "http://wiki.github.com/ffi/ffi") (license license:bsd-3))) +(define-public ruby-simplecov-html + (package + (name "ruby-simplecov-html") + (version "0.10.0") + (source (origin + (method url-fetch) + (uri (rubygems-uri "simplecov-html" version)) + (sha256 + (base32 + "1m5mprppw0xcrv2mkim5zsk70v089ajzqiq5hpyb0xg96fcyzyxj")))) + (build-system ruby-build-system) + (native-inputs + `(("bundler" ,bundler))) + (synopsis "Default HTML formatter for SimpleCov code coverage tool") + (description "This package provides the default HTML formatter for +the SimpleCov code coverage tool for Ruby version 1.9 and above.") + (home-page "https://github.com/colszowka/simplecov-html") + (license license:expat))) + (define-public ruby-useragent (package (name "ruby-useragent") -- cgit v1.2.3 From 48e6851f2f51bd9b21f30bc1e669cfc07341b0da Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 30 Oct 2015 16:43:51 +0100 Subject: gnu: Add ruby-rb-inotify. * gnu/packages/ruby.scm (ruby-rb-inotify): New variable. --- gnu/packages/ruby.scm | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 3cd1465afa..471ce0f406 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -1279,6 +1279,39 @@ aware transformations between times in different time zones.") (home-page "http://tzinfo.github.io") (license license:expat))) +(define-public ruby-rb-inotify + (package + (name "ruby-rb-inotify") + (version "0.9.5") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "rb-inotify" version)) + (sha256 + (base32 + "0kddx2ia0qylw3r52nhg83irkaclvrncgy2m1ywpbhlhsz1rymb9")))) + (build-system ruby-build-system) + (arguments + '(#:tests? #f ; there are no tests + #:phases + (modify-phases %standard-phases + ;; Building the gemspec with rake is not working here since it is + ;; generated with Jeweler. It is also unnecessary because the + ;; existing gemspec does not use any development tools to generate a + ;; list of files. + (replace 'build + (lambda _ + (zero? (system* "gem" "build" "rb-inotify.gemspec"))))))) + (propagated-inputs + `(("ruby-ffi" ,ruby-ffi))) + (native-inputs + `(("ruby-yard" ,ruby-yard))) + (synopsis "Ruby wrapper for Linux's inotify") + (description "rb-inotify is a simple wrapper over the @code{inotify} Linux +kernel subsystem for monitoring changes to files and directories.") + (home-page "https://github.com/nex3/rb-inotify") + (license license:expat))) + (define-public ruby-json (package (name "ruby-json") -- cgit v1.2.3 From b86be2ad1a947957f69c84c8d80c92cc568a7d7a Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 30 Oct 2015 16:44:12 +0100 Subject: gnu: Add ruby-listen. * gnu/packages/ruby.scm (ruby-listen): New variable. --- gnu/packages/ruby.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 471ce0f406..30a927779b 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -1331,6 +1331,28 @@ a native C extension.") (home-page "http://json-jruby.rubyforge.org/") (license (list license:ruby license:gpl2)))) ; GPL2 only +(define-public ruby-listen + (package + (name "ruby-listen") + (version "3.0.3") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "listen" version)) + (sha256 + (base32 + "10lhshjklxlrkw7999j0xl6sdxd4x32kiy8rp88jwr68kis5vq2b")))) + (build-system ruby-build-system) + (arguments '(#:tests? #f)) ; no tests + (propagated-inputs + ;; FIXME: omitting "ruby-rb-fsevent" which is only for MacOS. + `(("ruby-rb-inotify" ,ruby-rb-inotify))) + (synopsis "Listen to file modifications") + (description "The Listen gem listens to file modifications and notifies +you about the changes.") + (home-page "https://github.com/guard/listen") + (license license:expat))) + (define-public ruby-activesupport (package (name "ruby-activesupport") -- cgit v1.2.3 From 8d9e9f28574e51e6cc3a5f8efc9c80bd7185bd71 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 30 Oct 2015 17:17:21 +0100 Subject: gnu: Add ruby-permutation. * gnu/packages/ruby.scm (ruby-permutation): New variable. --- gnu/packages/ruby.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 30a927779b..137b75a24f 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -649,6 +649,36 @@ and inspect the environment.") (home-page "https://github.com/e2/nenv") (license license:expat))) +(define-public ruby-permutation + (package + (name "ruby-permutation") + (version "0.1.8") + (source (origin + (method url-fetch) + (uri (rubygems-uri "permutation" version)) + (sha256 + (base32 + "13crwk2vfbzv99czva7881027dbcnidihmvx2jc58z2vm3bp9sl8")))) + (build-system ruby-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-rakefile + (lambda _ + (substitute* "Rakefile" + (("require 'rake/gempackagetask'") + "require 'rubygems/package_task'") + (("include Config") "")) + #t)) + (replace 'check + (lambda _ + (zero? (system* "ruby" "-Ilib" "test/test.rb"))))))) + (synopsis "Library to perform operations with sequence permutations") + (description "This package provides a Ruby library to perform different +operations with permutations of sequences, such as strings and arrays.") + (home-page "http://flori.github.io/permutation") + (license license:gpl2))) ; GPL 2 only + (define-public ruby-shellany (package (name "ruby-shellany") -- cgit v1.2.3 From 5c2b2f006a7020b9c25ac32e675fa76260b3c3a4 Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Mon, 2 Nov 2015 21:37:33 +0300 Subject: doc: Fix typos. * doc/guix.texi (Invoking guix environment): Fix typos. --- doc/guix.texi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index e1f6155754..74e0977db5 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -4751,7 +4751,7 @@ PETSc package. Running: @example -guix environment --ad-hoc -e '(@ (gnu) %base-packages)' +guix environment --ad-hoc -e '(@@ (gnu) %base-packages)' @end example starts a shell with all the GuixSD base packages available. @@ -4836,7 +4836,7 @@ directory: guix environment --container --expose=$HOME=/exchange guile -- guile @end example -@item --share +@item --share=@var{source}[=@var{target}] For containers, share the file system @var{source} from the host system as the writable file system @var{target} within the container. If @var{target} is not specified, @var{source} is used as the target mount -- cgit v1.2.3 From f1339551221c3fb220939cd1e8404785af96a8af Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 1 Nov 2015 09:39:13 +0200 Subject: gnu: gsl: Update to 2.0. * gnu/packages/maths.scm (gsl): Update to 2.0. [source]: Remove patches. * gnu/packages/patches/gsl-poly-test-fix-pt1.patch, gnu/packages/patches/gsl-poly-test-fix-pt2.patch: Remove files. * gnu-system.am (dist_patch_DATA): Remove patches. --- gnu-system.am | 2 - gnu/packages/maths.scm | 6 +- gnu/packages/patches/gsl-poly-test-fix-pt1.patch | 84 ------------------------ gnu/packages/patches/gsl-poly-test-fix-pt2.patch | 27 -------- 4 files changed, 2 insertions(+), 117 deletions(-) delete mode 100644 gnu/packages/patches/gsl-poly-test-fix-pt1.patch delete mode 100644 gnu/packages/patches/gsl-poly-test-fix-pt2.patch diff --git a/gnu-system.am b/gnu-system.am index f140ab6be8..36e7b6e937 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -485,8 +485,6 @@ dist_patch_DATA = \ gnu/packages/patches/grep-CVE-2015-1345.patch \ gnu/packages/patches/grub-gets-undeclared.patch \ gnu/packages/patches/grub-freetype.patch \ - gnu/packages/patches/gsl-poly-test-fix-pt1.patch \ - gnu/packages/patches/gsl-poly-test-fix-pt2.patch \ gnu/packages/patches/guile-1.8-cpp-4.5.patch \ gnu/packages/patches/guile-arm-fixes.patch \ gnu/packages/patches/guile-default-utf8.patch \ diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index b4b930de47..1aba3623a3 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -149,7 +149,7 @@ semiconductors.") (define-public gsl (package (name "gsl") - (version "1.16") + (version "2.0") (source (origin (method url-fetch) @@ -157,9 +157,7 @@ semiconductors.") version ".tar.gz")) (sha256 (base32 - "0lrgipi0z6559jqh82yx8n4xgnxkhzj46v96dl77hahdp58jzg3k")) - (patches (map search-patch '("gsl-poly-test-fix-pt1.patch" - "gsl-poly-test-fix-pt2.patch"))))) + "0bfahlsgil0695104a44c3c8vjkyvxmg3s92371fddcrj6qz0qg3")))) (build-system gnu-build-system) (arguments `(#:parallel-tests? #f diff --git a/gnu/packages/patches/gsl-poly-test-fix-pt1.patch b/gnu/packages/patches/gsl-poly-test-fix-pt1.patch deleted file mode 100644 index 3d1ed4243c..0000000000 --- a/gnu/packages/patches/gsl-poly-test-fix-pt1.patch +++ /dev/null @@ -1,84 +0,0 @@ -From 9cc12d0377dd634b1b97954d076b715f982853b7 Mon Sep 17 00:00:00 2001 -From: Patrick Alken -Date: Fri, 4 Apr 2014 13:36:16 -0600 -Subject: [PATCH] bug fix in sorting of complex numbers (bug #39055) - ---- - poly/test.c | 49 ++++++++++++++++++++++++++++++------------------- - 1 file changed, 30 insertions(+), 19 deletions(-) - -diff --git a/poly/test.c b/poly/test.c -index 9c147f6..d090802 100644 ---- a/poly/test.c -+++ b/poly/test.c -@@ -25,11 +25,21 @@ - #include - #include - -+/* sort by Re(z) then by Im(z) */ - static int - cmp_cplx(const double *a, const double *b) - { -- double t = (a[0] * a[0] + a[1] * a[1]) - (b[0] * b[0] + b[1] * b[1]); -- return t < 0.0 ? -1 : t > 0.0 ? 1 : 0; -+ double r = a[0] - b[0]; -+ -+ if (r == 0.0) -+ { -+ double t = a[1] - b[1]; -+ return t < 0.0 ? -1 : t > 0.0 ? 1 : 0; -+ } -+ else if (r < 0.0) -+ return -1; -+ else -+ return 1; - } - - int -@@ -534,25 +544,26 @@ main (void) - Problem reported by Munagala Ramanath (bug #39055) - */ - -- double a[16] = { 32, -48, -8, 28, -8, 16, -16, 12, -16, 6, 10, -17, 10, 2, -4, 1 }; -+ double a[16] = { 32, -48, -8, 28, -8, 16, -16, 12, -+ -16, 6, 10, -17, 10, 2, -4, 1 }; - double z[16*2]; - -- double expected[16*20] = { -- 1.0000000000000000, 0.00000000000000000, -- 1.0000000000000000, 0.00000000000000000, -- -1.0000000000000000, 0.00000000000000000, -- -0.65893856175240950, 0.83459757287426684, -- -0.65893856175240950, -0.83459757287426684, -- -0.070891117403341281, -1.1359249087587791, -- -0.070891117403341281, 1.1359249087587791, -- 1.1142366961812986, -0.48083981203389980, -- 1.1142366961812986, 0.48083981203389980, -- -1.3066982484920768, 0.00000000000000000, -- 0.57284747839410854, 1.1987808988289705, -- 0.57284747839410854, -1.1987808988289705, -- -1.6078107423472359, 0.00000000000000000, -- 2.0000000000000000, 0.00000000000000000, -- 2.0000000000000000, 0.00000000000000000 }; -+ double expected[16*2] = { -+ -1.6078107423472359, 0.00000000000000000, -+ -1.3066982484920768, 0.00000000000000000, -+ -1.0000000000000000, 0.00000000000000000, -+ -0.65893856175240950, -0.83459757287426684, -+ -0.65893856175240950, 0.83459757287426684, -+ -0.070891117403341281, -1.1359249087587791, -+ -0.070891117403341281, 1.1359249087587791, -+ 0.57284747839410854, -1.1987808988289705, -+ 0.57284747839410854, 1.1987808988289705, -+ 1.0000000000000000, 0.00000000000000000, -+ 1.0000000000000000, 0.00000000000000000, -+ 1.1142366961812986, -0.48083981203389980, -+ 1.1142366961812986, 0.48083981203389980, -+ 2.0000000000000000, 0.00000000000000000, -+ 2.0000000000000000, 0.00000000000000000 }; - - int i; - --- -2.4.3 - diff --git a/gnu/packages/patches/gsl-poly-test-fix-pt2.patch b/gnu/packages/patches/gsl-poly-test-fix-pt2.patch deleted file mode 100644 index 0e6fcf1a53..0000000000 --- a/gnu/packages/patches/gsl-poly-test-fix-pt2.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 0466df8660a7b6ddf2e082a1ec38bc6ea25a3c5c Mon Sep 17 00:00:00 2001 -From: Patrick Alken -Date: Mon, 7 Apr 2014 10:59:58 -0600 -Subject: [PATCH] change error test for 15th degree polynomial (bug #39055) - ---- - poly/test.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/poly/test.c b/poly/test.c -index d090802..f6a7e3f 100644 ---- a/poly/test.c -+++ b/poly/test.c -@@ -579,8 +579,8 @@ main (void) - - for (i = 0; i<15; i++) - { -- gsl_test_abs (z[2*i], expected[2*i], 1e-7, "z%d.real, 15th-order polynomial", i); -- gsl_test_abs (z[2*i+1], expected[2*i+1], 1e-7, "z%d.imag, 15th-order polynomial", i); -+ gsl_test_rel (z[2*i], expected[2*i], 1e-7, "z%d.real, 15th-order polynomial", i); -+ gsl_test_rel (z[2*i+1], expected[2*i+1], 1e-7, "z%d.imag, 15th-order polynomial", i); - } - } - --- -2.4.3 - -- cgit v1.2.3 From 5adbe65feceeb6d2a08abe644f4a66f598985182 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 1 Nov 2015 09:42:23 +0200 Subject: gnu: gsl: Enable tests. * gnu/packages/maths.scm (gsl)[arguments]: Enable tests for i686-linux. --- gnu/packages/maths.scm | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 1aba3623a3..4eeb39d955 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -8,6 +8,7 @@ ;;; Copyright © 2015 Ricardo Wurmus ;;; Copyright © 2015 Sou Bunnbu ;;; Copyright © 2015 Mark H Weaver +;;; Copyright © 2015 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -160,19 +161,7 @@ semiconductors.") "0bfahlsgil0695104a44c3c8vjkyvxmg3s92371fddcrj6qz0qg3")))) (build-system gnu-build-system) (arguments - `(#:parallel-tests? #f - #:phases - (alist-replace - 'configure - (lambda* (#:key target system outputs #:allow-other-keys #:rest args) - (let ((configure (assoc-ref %standard-phases 'configure))) - ;; disable numerically unstable test on i686, see thread at - ;; http://lists.gnu.org/archive/html/bug-gsl/2011-11/msg00019.html - (if (string=? (or target system) "i686-linux") - (substitute* "ode-initval2/Makefile.in" - (("TESTS = \\$\\(check_PROGRAMS\\)") "TESTS ="))) - (apply configure args))) - %standard-phases))) + `(#:parallel-tests? #f)) (home-page "http://www.gnu.org/software/gsl/") (synopsis "Numerical library for C and C++") (description -- cgit v1.2.3 From 3a391e68dafe81560d3e4936a1ec5ac3b06d43bb Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 2 Nov 2015 17:01:32 +0100 Subject: services: Clarify extend/compose of BOOT-SERVICE-TYPE. * gnu/services.scm (compute-boot-script): Add first placeholder parameter. (boot-service-type): Change 'compose' to APPEND, and 'extend' to COMPUTE-BOOT-SCRIPT. --- gnu/services.scm | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/gnu/services.scm b/gnu/services.scm index c8a2a2604f..ecf3532e52 100644 --- a/gnu/services.scm +++ b/gnu/services.scm @@ -182,7 +182,7 @@ This is a shorthand for (map (lambda (svc) ...) %base-services)." ;;; Core services. ;;; -(define (compute-boot-script mexps) +(define (compute-boot-script _ mexps) (mlet %store-monad ((gexps (sequence %store-monad mexps))) (gexp->file "boot" #~(begin @@ -203,16 +203,14 @@ This is a shorthand for (map (lambda (svc) ...) %base-services)." ;; Activate the system and spawn dmd. #$@gexps)))) -(define (second-argument a b) b) - (define boot-service-type ;; The service of this type is extended by being passed gexps as monadic ;; values. It aggregates them in a single script, as a monadic value, which ;; becomes its 'parameters'. It is the only service that extends nothing. (service-type (name 'boot) (extensions '()) - (compose compute-boot-script) - (extend second-argument))) + (compose append) + (extend compute-boot-script))) (define %boot-service ;; This is the ultimate service, the root of the service DAG. @@ -296,6 +294,8 @@ ACTIVATION-SCRIPT-TYPE." (mlet %store-monad ((script (activation-script gexps))) (return #~(primitive-load #$script)))) +(define (second-argument a b) b) + (define activation-service-type (service-type (name 'activate) (extensions -- cgit v1.2.3 From d62e201cfd0f1e48c14586489d0e2b80ce943d4f Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 2 Nov 2015 18:44:17 +0100 Subject: services: Add 'system-service-type'. * gnu/services.scm (system-derivation): New procedure. (system-service-type): New variable. (boot-script-entry): New procedure. (boot-service-type): Extend SYSTEM-SERVICE-TYPE. (etc-entry): New procedure. (etc-service-type): Extend SYSTEM-SERVICE-TYPE. (fold-services): Change default #:target-type to SYSTEM-SERVICE-TYPE. * gnu/system.scm (operating-system-directory-base-entries): New procedure. (essential-services): Use it. Add an instance of SYSTEM-SERVICE-TYPE. (operating-system-boot-script): Pass #:target-type to 'fold-services'. (operating-system-derivation): Rewrite in terms of 'fold-services'. * gnu/system/linux-container.scm (system-container): Remove. (container-script): Use 'operating-system-derivation'. * guix/scripts/system.scm (export-extension-graph): Replace BOOT-SERVICE-TYPE by SYSTEM-SERVICE-TYPE. * doc/images/service-graph.dot: Add 'system' node and edges. * doc/guix.texi (Service Composition): Mention SYSTEM-SERVICE-TYPE. (Service Reference): Document it. Update 'fold-services' documentation. --- doc/guix.texi | 26 +++++++++++++------- doc/images/service-graph.dot | 5 +++- gnu/services.scm | 51 +++++++++++++++++++++++++++++++++------ gnu/system.scm | 54 ++++++++++++++++++++++++------------------ gnu/system/linux-container.scm | 18 +++----------- guix/scripts/system.scm | 6 ++--- 6 files changed, 103 insertions(+), 57 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 74e0977db5..6ab98deef3 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -7589,8 +7589,11 @@ as arrows, a typical system might provide something like this: @image{images/service-graph,,5in,Typical service extension graph.} -At the bottom, we see the @dfn{boot service}, which produces the boot -script that is executed at boot time from the initial RAM disk. +@cindex system service +At the bottom, we see the @dfn{system service}, which produces the +directory containing everything to run and boot the system, as returned +by the @command{guix system build} command. @xref{Service Reference}, +to learn about the other service types shown here. @xref{system-extension-graph, the @command{guix system extension-graph} command}, for information on how to generate this representation for a particular operating system definition. @@ -7853,12 +7856,14 @@ Return true if @var{obj} is a service extension. At the core of the service abstraction lies the @code{fold-services} procedure, which is responsible for ``compiling'' a list of services -down to a single boot script. In essence, it propagates service -extensions down the service graph, updating each node parameters on the -way, until it reaches the root node. +down to a single directory that contains everything needed to boot and +run the system---the directory shown by the @command{guix system build} +command (@pxref{Invoking guix system}). In essence, it propagates +service extensions down the service graph, updating each node parameters +on the way, until it reaches the root node. @deffn {Scheme Procedure} fold-services @var{services} @ - [#:target-type @var{boot-service-type}] + [#:target-type @var{system-service-type}] Fold @var{services} by propagating their extensions down to the root of type @var{target-type}; return the root service adjusted accordingly. @end deffn @@ -7866,9 +7871,14 @@ type @var{target-type}; return the root service adjusted accordingly. Lastly, the @code{(gnu services)} module also defines several essential service types, some of which are listed below. +@defvr {Scheme Variable} system-service-type +This is the root of the service graph. It produces the system directory +as returned by the @command{guix system build} command. +@end defvr + @defvr {Scheme Variable} boot-service-type -The type of the ``boot service'', which is the root of the service -graph. +The type of the ``boot service'', which produces the @dfn{boot script}. +The boot script is what the initial RAM disk runs when booting. @end defvr @defvr {Scheme Variable} etc-service-type diff --git a/doc/images/service-graph.dot b/doc/images/service-graph.dot index 3397b878e9..04f231bb09 100644 --- a/doc/images/service-graph.dot +++ b/doc/images/service-graph.dot @@ -4,7 +4,8 @@ digraph "Service Type Dependencies" { etc [shape = box, fontname = Helvetica]; accounts [shape = box, fontname = Helvetica]; activation [shape = box, fontname = Helvetica]; - boot [shape = house, fontname = Helvetica]; + boot [shape = box, fontname = Helvetica]; + system [shape = house, fontname = Helvetica]; lshd -> dmd; lshd -> pam; udev -> dmd; @@ -32,4 +33,6 @@ digraph "Service Type Dependencies" { guix -> dmd; guix -> activation; guix -> accounts; + boot -> system; + etc -> system; } diff --git a/gnu/services.scm b/gnu/services.scm index ecf3532e52..8a66d453df 100644 --- a/gnu/services.scm +++ b/gnu/services.scm @@ -60,6 +60,7 @@ ambiguous-target-service-error-service ambiguous-target-service-error-target-type + system-service-type boot-service-type activation-service-type activation-service->script @@ -89,9 +90,10 @@ ;;; by providing one procedure to compose extensions, and one procedure to ;;; extend itself. ;;; -;;; A notable service type is BOOT-SERVICE-TYPE, which has a single instance, -;;; %BOOT-SERVICE. %BOOT-SERVICE constitutes the root of the service DAG. It -;;; produces the boot script that the initrd loads. +;;; A notable service type is SYSTEM-SERVICE-TYPE, which has a single +;;; instance, which is the root of the service DAG. Its value is the +;;; derivation that produces the 'system' directory as returned by +;;; 'operating-system-derivation'. ;;; ;;; The 'fold-services' procedure can be passed a list of procedures, which it ;;; "folds" by propagating extensions down the graph; it returns the root @@ -182,6 +184,25 @@ This is a shorthand for (map (lambda (svc) ...) %base-services)." ;;; Core services. ;;; +(define (system-derivation mentries mextensions) + "Return as a monadic value the derivation of the 'system' directory +containing the given entries." + (mlet %store-monad ((entries mentries) + (extensions (sequence %store-monad mextensions))) + (lower-object + (file-union "system" + (append entries (concatenate extensions)))))) + +(define system-service-type + ;; This is the ultimate service type, the root of the service DAG. The + ;; service of this type is extended by monadic name/item pairs. These items + ;; end up in the "system directory" as returned by + ;; 'operating-system-derivation'. + (service-type (name 'system) + (extensions '()) + (compose identity) + (extend system-derivation))) + (define (compute-boot-script _ mexps) (mlet %store-monad ((gexps (sequence %store-monad mexps))) (gexp->file "boot" @@ -203,17 +224,25 @@ This is a shorthand for (map (lambda (svc) ...) %base-services)." ;; Activate the system and spawn dmd. #$@gexps)))) +(define (boot-script-entry mboot) + "Return, as a monadic value, an entry for the boot script in the system +directory." + (mlet %store-monad ((boot mboot)) + (return `(("boot" ,boot))))) + (define boot-service-type ;; The service of this type is extended by being passed gexps as monadic ;; values. It aggregates them in a single script, as a monadic value, which ;; becomes its 'parameters'. It is the only service that extends nothing. (service-type (name 'boot) - (extensions '()) + (extensions + (list (service-extension system-service-type + boot-script-entry))) (compose append) (extend compute-boot-script))) (define %boot-service - ;; This is the ultimate service, the root of the service DAG. + ;; The service that produces the boot script. (service boot-service-type #t)) (define* (file-union name files) ;FIXME: Factorize. @@ -351,6 +380,12 @@ ACTIVATION-SCRIPT-TYPE." (define (files->etc-directory files) (file-union "etc" files)) +(define (etc-entry files) + "Return an entry for the /etc directory consisting of FILES in the system +directory." + (with-monad %store-monad + (return `(("etc" ,(files->etc-directory files)))))) + (define etc-service-type (service-type (name 'etc) (extensions @@ -359,7 +394,8 @@ ACTIVATION-SCRIPT-TYPE." (lambda (files) (let ((etc (files->etc-directory files))) - #~(activate-etc #$etc)))))) + #~(activate-etc #$etc)))) + (service-extension system-service-type etc-entry))) (compose concatenate) (extend append))) @@ -450,7 +486,8 @@ kernel." (lambda (node) (reverse (vhash-foldq* cons '() node edges))))) -(define* (fold-services services #:key (target-type boot-service-type)) +(define* (fold-services services + #:key (target-type system-service-type)) "Fold SERVICES by propagating their extensions down to the root of type TARGET-TYPE; return the root service adjusted accordingly." (define dependents diff --git a/gnu/system.scm b/gnu/system.scm index 8fed857b39..c26d27028b 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -254,6 +254,24 @@ from the initrd." "Return the list of swap services for OS." (map swap-service (operating-system-swap-devices os))) +(define* (operating-system-directory-base-entries os #:key container?) + "Return the basic entries of the 'system' directory of OS for use as the +value of the SYSTEM-SERVICE-TYPE service." + (mlet* %store-monad ((profile (operating-system-profile os)) + (locale (operating-system-locale-directory os))) + (if container? + (return `(("profile" ,profile) + ("locale" ,locale))) + (mlet %store-monad + ((kernel -> (operating-system-kernel os)) + (initrd (operating-system-initrd-file os)) + (params (operating-system-parameters-file os))) + (return `(("kernel" ,kernel) + ("parameters" ,params) + ("initrd" ,initrd) + ("profile" ,profile) + ("locale" ,locale))))))) ;used by libc + (define* (essential-services os #:key container?) "Return the list of essential services for OS. These are special services that implement part of what's declared in OS are responsible for low-level @@ -269,8 +287,11 @@ a container or that of a \"bare metal\" system." (swaps (swap-services os)) (procs (user-processes-service (map service-parameters other-fs))) - (host-name (host-name-service (operating-system-host-name os)))) - (cons* %boot-service + (host-name (host-name-service (operating-system-host-name os))) + (entries (operating-system-directory-base-entries + os #:container? container?))) + (cons* (service system-service-type entries) + %boot-service ;; %DMD-ROOT-SERVICE must come first so that the gexp that execs ;; dmd comes last in the boot script (XXX). @@ -607,10 +628,17 @@ etc." we're running in the final root. When CONTAINER? is true, skip all hardware-related operations as necessary when booting a Linux container." (let* ((services (operating-system-services os #:container? container?)) - (boot (fold-services services))) + (boot (fold-services services #:target-type boot-service-type))) ;; BOOT is the script as a monadic value. (service-parameters boot))) +(define* (operating-system-derivation os #:key container?) + "Return a derivation that builds OS." + (let* ((services (operating-system-services os #:container? container?)) + (system (fold-services services))) + ;; SYSTEM contains the derivation as a monadic value. + (service-parameters system))) + (define (operating-system-root-file-system os) "Return the root file system of OS." (find (match-lambda @@ -693,24 +721,4 @@ this file is the reconstruction of GRUB menu entries for old configurations." #$(operating-system-kernel-arguments os)) (initrd #$initrd))))) -(define (operating-system-derivation os) - "Return a derivation that builds OS." - (mlet* %store-monad - ((profile (operating-system-profile os)) - (etc -> (operating-system-etc-directory os)) - (boot (operating-system-boot-script os)) - (kernel -> (operating-system-kernel os)) - (initrd (operating-system-initrd-file os)) - (locale (operating-system-locale-directory os)) - (params (operating-system-parameters-file os))) - (lower-object - (file-union "system" - `(("boot" ,#~#$boot) - ("kernel" ,#~#$kernel) - ("parameters" ,#~#$params) - ("initrd" ,initrd) - ("profile" ,#~#$profile) - ("locale" ,#~#$locale) ;used by libc - ("etc" ,#~#$etc)))))) - ;;; system.scm ends here diff --git a/gnu/system/linux-container.scm b/gnu/system/linux-container.scm index c2eb773931..4f38c5cb0a 100644 --- a/gnu/system/linux-container.scm +++ b/gnu/system/linux-container.scm @@ -47,20 +47,6 @@ (check? #f) (create-mount-point? #t))))) -(define (system-container os) - "Return a derivation that builds OS as a Linux container." - (mlet* %store-monad - ((profile (operating-system-profile os)) - (etc -> (operating-system-etc-directory os)) - (boot (operating-system-boot-script os #:container? #t)) - (locale (operating-system-locale-directory os))) - (lower-object - (file-union "system-container" - `(("boot" ,#~#$boot) - ("profile" ,#~#$profile) - ("locale" ,#~#$locale) - ("etc" ,#~#$etc)))))) - (define (containerized-operating-system os mappings) "Return an operating system based on OS for use in a Linux container environment. MAPPINGS is a list of to realize in the @@ -95,7 +81,9 @@ that will be shared with the host system." (operating-system-file-systems os))) (specs (map file-system->spec file-systems))) - (mlet* %store-monad ((os-drv (system-container os))) + (mlet* %store-monad ((os-drv (operating-system-derivation + os + #:container? #t))) (define script #~(begin diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm index 7be734785a..7a8a751df9 100644 --- a/guix/scripts/system.scm +++ b/guix/scripts/system.scm @@ -491,10 +491,10 @@ building anything." (define (export-extension-graph os port) "Export the service extension graph of OS to PORT." (let* ((services (operating-system-services os)) - (boot (find (lambda (service) - (eq? (service-kind service) boot-service-type)) + (system (find (lambda (service) + (eq? (service-kind service) system-service-type)) services))) - (export-graph (list boot) (current-output-port) + (export-graph (list system) (current-output-port) #:node-type (service-node-type services) #:reverse-edges? #t))) -- cgit v1.2.3 From af4c3fd5e37d477bffce167909fbc0776a860204 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 2 Nov 2015 21:52:28 +0100 Subject: services: Add 'profile-service-type'. * gnu/services.scm (packages->profile-entry): New procedure. (profile-service-type): New variable. * gnu/system.scm (operating-system-directory-base-entries): Remove the "profile" entry. (essential-services): Add a PROFILE-SERVICE-TYPE instance. (operating-system-profile): Rewrite in terms of 'fold-services'. * doc/guix.texi (Service Reference): Add 'profile-service-type'. * doc/images/service-graph.dot: Likewise. --- doc/guix.texi | 6 ++++++ doc/images/service-graph.dot | 2 ++ gnu/services.scm | 19 +++++++++++++++++++ gnu/system.scm | 24 ++++++++++++++---------- 4 files changed, 41 insertions(+), 10 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 6ab98deef3..897675291e 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -7899,6 +7899,12 @@ executable file names, passed as gexps, and adds them to the set of setuid-root programs on the system (@pxref{Setuid Programs}). @end defvr +@defvr {Scheme Variable} profile-service-type +Type of the service that populates the @dfn{system profile}---i.e., the +programs under @file{/run/current-system/profile}. Other services can +extend it by passing it lists of packages to add to the system profile. +@end defvr + @node dmd Services @subsubsection dmd Services diff --git a/doc/images/service-graph.dot b/doc/images/service-graph.dot index 04f231bb09..b084005984 100644 --- a/doc/images/service-graph.dot +++ b/doc/images/service-graph.dot @@ -2,6 +2,7 @@ digraph "Service Type Dependencies" { dmd [shape = box, fontname = Helvetica]; pam [shape = box, fontname = Helvetica]; etc [shape = box, fontname = Helvetica]; + profile [shape = box, fontname = Helvetica]; accounts [shape = box, fontname = Helvetica]; activation [shape = box, fontname = Helvetica]; boot [shape = box, fontname = Helvetica]; @@ -35,4 +36,5 @@ digraph "Service Type Dependencies" { guix -> accounts; boot -> system; etc -> system; + profile -> system; } diff --git a/gnu/services.scm b/gnu/services.scm index 8a66d453df..0e1c74bda8 100644 --- a/gnu/services.scm +++ b/gnu/services.scm @@ -21,6 +21,7 @@ #:use-module (guix monads) #:use-module (guix store) #:use-module (guix records) + #:use-module (guix profiles) #:use-module (guix sets) #:use-module (guix ui) #:use-module (gnu packages base) @@ -68,6 +69,7 @@ etc-service-type etc-directory setuid-program-service-type + profile-service-type firmware-service-type %boot-service @@ -414,6 +416,23 @@ FILES must be a list of name/file-like object pairs." (compose concatenate) (extend append))) +(define (packages->profile-entry packages) + "Return a system entry for the profile containing PACKAGES." + (mlet %store-monad ((profile (profile-derivation + (manifest (map package->manifest-entry + (delete-duplicates packages eq?)))))) + (return `(("profile" ,profile))))) + +(define profile-service-type + ;; The service that populates the system's profile---i.e., + ;; /run/current-system/profile. It is extended by package lists. + (service-type (name 'profile) + (extensions + (list (service-extension system-service-type + packages->profile-entry))) + (compose concatenate) + (extend append))) + (define (firmware->activation-gexp firmware) "Return a gexp to make the packages listed in FIRMWARE loadable by the kernel." diff --git a/gnu/system.scm b/gnu/system.scm index c26d27028b..85a596ddb9 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -257,11 +257,9 @@ from the initrd." (define* (operating-system-directory-base-entries os #:key container?) "Return the basic entries of the 'system' directory of OS for use as the value of the SYSTEM-SERVICE-TYPE service." - (mlet* %store-monad ((profile (operating-system-profile os)) - (locale (operating-system-locale-directory os))) + (mlet %store-monad ((locale (operating-system-locale-directory os))) (if container? - (return `(("profile" ,profile) - ("locale" ,locale))) + (return `(("locale" ,locale))) (mlet %store-monad ((kernel -> (operating-system-kernel os)) (initrd (operating-system-initrd-file os)) @@ -269,7 +267,6 @@ value of the SYSTEM-SERVICE-TYPE service." (return `(("kernel" ,kernel) ("parameters" ,params) ("initrd" ,initrd) - ("profile" ,profile) ("locale" ,locale))))))) ;used by libc (define* (essential-services os #:key container?) @@ -305,6 +302,8 @@ a container or that of a \"bare metal\" system." host-name procs root-fs unmount (service setuid-program-service-type (operating-system-setuid-programs os)) + (service profile-service-type + (operating-system-packages os)) (append other-fs mappings swaps ;; Add the firmware service, unless we are building for a @@ -534,11 +533,6 @@ fi\n"))) #$(operating-system-timezone os))) ("sudoers" ,(operating-system-sudoers-file os)))))) -(define (operating-system-profile os) - "Return a derivation that builds the system profile of OS." - (profile-derivation (manifest (map package->manifest-entry - (operating-system-packages os))))) - (define %root-account ;; Default root account. (user-account @@ -639,6 +633,16 @@ hardware-related operations as necessary when booting a Linux container." ;; SYSTEM contains the derivation as a monadic value. (service-parameters system))) +(define* (operating-system-profile os #:key container?) + "Return a derivation that builds the system profile of OS." + (mlet* %store-monad + ((services -> (operating-system-services os #:container? container?)) + (profile (fold-services services + #:target-type profile-service-type))) + (match profile + (("profile" profile) + (return profile))))) + (define (operating-system-root-file-system os) "Return the root file system of OS." (find (match-lambda -- cgit v1.2.3 From 87f40011462eea9142de9853377b2cee3c0df785 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 2 Nov 2015 22:03:15 +0100 Subject: services: wicd: Add Wicd to the system profile. * gnu/services/networking.scm (wicd-service-type): Extend PROFILE-SERVICE-TYPE. (wicd-service): Mention it in docstring. * doc/guix.texi (Networking Services): Update documentation accordingly. * gnu/system/examples/desktop.tmpl (packages): Remove WICD. --- doc/guix.texi | 10 ++++++++-- gnu/services/networking.scm | 12 ++++++++++-- gnu/system/examples/desktop.tmpl | 4 ++-- 3 files changed, 20 insertions(+), 6 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 897675291e..28c9a9c0cf 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -6447,9 +6447,15 @@ gateway. @end deffn @cindex wicd +@cindex network management @deffn {Scheme Procedure} wicd-service [#:wicd @var{wicd}] -Return a service that runs @url{https://launchpad.net/wicd,Wicd}, a -network manager that aims to simplify wired and wireless networking. +Return a service that runs @url{https://launchpad.net/wicd,Wicd}, a network +management daemon that aims to simplify wired and wireless networking. + +This service adds the @var{wicd} package to the global profile, providing +several commands to interact with the daemon and configure networking: +@command{wicd-client}, a graphical user interface, and the @command{wicd-cli} +and @command{wicd-curses} user interfaces. @end deffn @deffn {Scheme Procedure} ntp-service [#:ntp @var{ntp}] @ diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm index d33ff4fc4a..8f67976b23 100644 --- a/gnu/services/networking.scm +++ b/gnu/services/networking.scm @@ -483,11 +483,19 @@ configuration file." (service-extension dbus-root-service-type list) (service-extension activation-service-type - (const %wicd-activation)))))) + (const %wicd-activation)) + + ;; Add Wicd to the global profile. + (service-extension profile-service-type list))))) (define* (wicd-service #:key (wicd wicd)) "Return a service that runs @url{https://launchpad.net/wicd,Wicd}, a network -manager that aims to simplify wired and wireless networking." +management daemon that aims to simplify wired and wireless networking. + +This service adds the @var{wicd} package to the global profile, providing +several commands to interact with the daemon and configure networking: +@command{wicd-client}, a graphical user interface, and the @command{wicd-cli} +and @command{wicd-curses} user interfaces." (service wicd-service-type wicd)) ;;; networking.scm ends here diff --git a/gnu/system/examples/desktop.tmpl b/gnu/system/examples/desktop.tmpl index 41f66f693a..0e26a7ec5e 100644 --- a/gnu/system/examples/desktop.tmpl +++ b/gnu/system/examples/desktop.tmpl @@ -3,7 +3,7 @@ (use-modules (gnu) (gnu system nss)) (use-service-modules desktop) -(use-package-modules xfce ratpoison wicd avahi xorg certs) +(use-package-modules xfce ratpoison avahi xorg certs) (operating-system (host-name "antelope") @@ -40,7 +40,7 @@ ;; Add Xfce and Ratpoison; that allows us to choose ;; sessions using either of these at the log-in screen. (packages (cons* xfce ratpoison ;desktop environments - xterm wicd avahi ;useful tools + xterm avahi ;useful tools nss-certs ;for HTTPS access %base-packages)) -- cgit v1.2.3 From e9b8212414ce9eb113ab36c2353d0bfa1a1acab4 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 2 Nov 2015 22:04:17 +0100 Subject: services: slim: Add xterm to the system profile. * gnu/services/xorg.scm (slim-service-type): Extend PROFILE-SERVICE-TYPE. * gnu/system/examples/desktop.tmpl (packages): Remove XTERM. --- gnu/services/xorg.scm | 7 ++++++- gnu/system/examples/desktop.tmpl | 4 ++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/gnu/services/xorg.scm b/gnu/services/xorg.scm index 639a541777..f4bc8245f5 100644 --- a/gnu/services/xorg.scm +++ b/gnu/services/xorg.scm @@ -309,7 +309,12 @@ reboot_cmd " dmd "/sbin/reboot\n" (list (service-extension dmd-root-service-type slim-dmd-service) (service-extension pam-root-service-type - slim-pam-service))))) + slim-pam-service) + + ;; Unconditionally add xterm to the system profile, to + ;; avoid bad surprises. + (service-extension profile-service-type + (const (list xterm))))))) (define* (slim-service #:key (slim slim) (allow-empty-passwords? #t) auto-login? diff --git a/gnu/system/examples/desktop.tmpl b/gnu/system/examples/desktop.tmpl index 0e26a7ec5e..ff2a1b7306 100644 --- a/gnu/system/examples/desktop.tmpl +++ b/gnu/system/examples/desktop.tmpl @@ -3,7 +3,7 @@ (use-modules (gnu) (gnu system nss)) (use-service-modules desktop) -(use-package-modules xfce ratpoison avahi xorg certs) +(use-package-modules xfce ratpoison avahi certs) (operating-system (host-name "antelope") @@ -40,7 +40,7 @@ ;; Add Xfce and Ratpoison; that allows us to choose ;; sessions using either of these at the log-in screen. (packages (cons* xfce ratpoison ;desktop environments - xterm avahi ;useful tools + avahi ;useful tools nss-certs ;for HTTPS access %base-packages)) -- cgit v1.2.3 From 1065bed9c41f8a9b0718ae2db0fd42f286c1b8be Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 2 Nov 2015 22:13:01 +0100 Subject: services: avahi: Add Avahi to the system profile. * gnu/services/avahi.scm (avahi-service-type): Extend PROFILE-SERVICE-TYPE. (avahi-service): Adjust docstring. * doc/guix.texi (Networking Services): Adjust accordingly. * gnu/system/examples/desktop.tmpl (packages): Remove AVAHI. --- doc/guix.texi | 4 +++- gnu/services/avahi.scm | 35 +++++++++++++++++++++-------------- gnu/system/examples/desktop.tmpl | 3 +-- 3 files changed, 25 insertions(+), 17 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 28c9a9c0cf..3afa496ea3 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -6571,7 +6571,9 @@ mDNS/DNS-SD responder that allows for service discovery and "zero-configuration" host name lookups (see @uref{http://avahi.org/}), and extends the name service cache daemon (nscd) so that it can resolve @code{.local} host names using -@uref{http://0pointer.de/lennart/projects/nss-mdns/, nss-mdns}. +@uref{http://0pointer.de/lennart/projects/nss-mdns/, nss-mdns}. Additionally, +add the @var{avahi} package to the system profile so that commands such as +@command{avahi-browse} are directly usable. If @var{host-name} is different from @code{#f}, use that as the host name to publish for this machine; otherwise, use the machine's actual host name. diff --git a/gnu/services/avahi.scm b/gnu/services/avahi.scm index 18131fe561..49a737f090 100644 --- a/gnu/services/avahi.scm +++ b/gnu/services/avahi.scm @@ -107,19 +107,24 @@ (stop #~(make-kill-destructor)))))) (define avahi-service-type - (service-type (name 'avahi) - (extensions - (list (service-extension dmd-root-service-type - avahi-dmd-service) - (service-extension dbus-root-service-type - (compose list - avahi-configuration-avahi)) - (service-extension account-service-type - (const %avahi-accounts)) - (service-extension activation-service-type - (const %avahi-activation)) - (service-extension nscd-service-type - (const (list nss-mdns))))))) + (let ((avahi-package (compose list avahi-configuration-avahi))) + (service-type (name 'avahi) + (extensions + (list (service-extension dmd-root-service-type + avahi-dmd-service) + (service-extension dbus-root-service-type + avahi-package) + (service-extension account-service-type + (const %avahi-accounts)) + (service-extension activation-service-type + (const %avahi-activation)) + (service-extension nscd-service-type + (const (list nss-mdns))) + + ;; Provide 'avahi-browse', 'avahi-resolve', etc. in + ;; the system profile. + (service-extension profile-service-type + avahi-package)))))) (define* (avahi-service #:key (avahi avahi) host-name @@ -132,7 +137,9 @@ mDNS/DNS-SD responder that allows for service discovery and \"zero-configuration\" host name lookups (see @uref{http://avahi.org/}), and extends the name service cache daemon (nscd) so that it can resolve @code{.local} host names using -@uref{http://0pointer.de/lennart/projects/nss-mdns/, nss-mdns}. +@uref{http://0pointer.de/lennart/projects/nss-mdns/, nss-mdns}. Additionally, +add the @var{avahi} package to the system profile so that commands such as +@command{avahi-browse} are directly usable. If @var{host-name} is different from @code{#f}, use that as the host name to publish for this machine; otherwise, use the machine's actual host name. diff --git a/gnu/system/examples/desktop.tmpl b/gnu/system/examples/desktop.tmpl index ff2a1b7306..7a479d1123 100644 --- a/gnu/system/examples/desktop.tmpl +++ b/gnu/system/examples/desktop.tmpl @@ -3,7 +3,7 @@ (use-modules (gnu) (gnu system nss)) (use-service-modules desktop) -(use-package-modules xfce ratpoison avahi certs) +(use-package-modules xfce ratpoison certs) (operating-system (host-name "antelope") @@ -40,7 +40,6 @@ ;; Add Xfce and Ratpoison; that allows us to choose ;; sessions using either of these at the log-in screen. (packages (cons* xfce ratpoison ;desktop environments - avahi ;useful tools nss-certs ;for HTTPS access %base-packages)) -- cgit v1.2.3 From beca0807ebd85c367eb88fdce04d826b6901c5fe Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 2 Nov 2015 22:22:36 +0100 Subject: services: udisks: Add UDisks to the system profile. * gnu/services/desktop.scm (udisks-service-type): Extend PROFILE-SERVICE-TYPE. --- gnu/services/desktop.scm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm index 31d196da78..1986764697 100644 --- a/gnu/services/desktop.scm +++ b/gnu/services/desktop.scm @@ -490,6 +490,10 @@ site} for more information." (service-extension dbus-root-service-type udisks-package) (service-extension udev-service-type + udisks-package) + + ;; Profile 'udisksctl' & co. in the system profile. + (service-extension profile-service-type udisks-package)))))) (define* (udisks-service #:key (udisks udisks)) -- cgit v1.2.3 From a70436183aeb6a861cc43e297b5a33b777dfe1b3 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 2 Nov 2015 22:44:17 +0100 Subject: guix system: Always build grub.cfg for 'init' and 'reconfigure'. Fixes . Reported by Germano Gabbianelli and Mark H Weaver . * guix/scripts/system.scm (perform-action): Always add GRUB.CFG to DRVS for 'init' and 'reconfigure'. Co-authored-by: Mark H Weaver --- guix/scripts/system.scm | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm index 7a8a751df9..0d54d453db 100644 --- a/guix/scripts/system.scm +++ b/guix/scripts/system.scm @@ -447,8 +447,14 @@ building anything." (if (eq? 'init action) '() (previous-grub-entries))))) - (drvs -> (if (and grub? (memq action '(init reconfigure))) - (list sys grub grub.cfg) + + ;; For 'init' and 'reconfigure', always build GRUB.CFG, even if + ;; --no-grub is passed, because GRUB.CFG because we then use it as a GC + ;; root. See . + (drvs -> (if (memq action '(init reconfigure)) + (if grub? + (list sys grub.cfg grub) + (list sys grub.cfg)) (list sys))) (% (if derivations-only? (return (for-each (compose println derivation-file-name) -- cgit v1.2.3 From b485f756e92fdfef45c28eed4c21f895e1acd47b Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 2 Nov 2015 23:42:31 +0100 Subject: tests: Set 'SHELL' for 'guix environment'. * tests/guix-environment.sh: Export 'SHELL'. --- tests/guix-environment.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/guix-environment.sh b/tests/guix-environment.sh index f7b0259e1b..aed27c103c 100644 --- a/tests/guix-environment.sh +++ b/tests/guix-environment.sh @@ -29,6 +29,10 @@ trap 'rm -r "$tmpdir"' EXIT mkdir "$tmpdir" +# 'guix environment' launches /bin/sh if 'SHELL' is unset, so export 'SHELL' +# since we know it's valid (build environments lack /bin/sh.) +export SHELL + # Check the environment variables for the bootstrap Guile. guix environment --ad-hoc guile-bootstrap --pure --search-paths > "$tmpdir/a" guix environment --ad-hoc guile-bootstrap:out --pure --search-paths > "$tmpdir/b" -- cgit v1.2.3 From 3195e19de2f4360bdde12fccb1821dc444c95807 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 3 Nov 2015 00:59:28 +0100 Subject: import: gnu: Update to the (guix upstream) API. This is a followup to 0a7c5a0. * guix/import/gnu.scm (preferred-archive-type): Use 'upstream-source-archive-types' instead of 'gnu-release-archive-types'. (gnu-package->sexp): Use 'upstream-source-urls' et al. Update call to 'download-tarball'. (gnu->guix-package): Use instead of . * guix/upstream.scm (upstream-source-archive-types): Export. --- guix/import/gnu.scm | 30 ++++++++++++++++++++---------- guix/upstream.scm | 1 + 2 files changed, 21 insertions(+), 10 deletions(-) diff --git a/guix/import/gnu.scm b/guix/import/gnu.scm index 7160fcf7ba..834f0ae5cf 100644 --- a/guix/import/gnu.scm +++ b/guix/import/gnu.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2014 Ludovic Courtès +;;; Copyright © 2014, 2015 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -23,11 +23,13 @@ #:use-module (guix store) #:use-module (guix hash) #:use-module (guix base32) + #:use-module (guix upstream) #:use-module (srfi srfi-1) #:use-module (srfi srfi-11) #:use-module (srfi srfi-26) #:use-module (srfi srfi-34) #:use-module (srfi srfi-35) + #:use-module (web uri) #:use-module (ice-9 match) #:use-module (ice-9 regex) #:export (gnu->guix-package)) @@ -47,7 +49,7 @@ (define (preferred-archive-type release) "Return the preferred type of archive for downloading RELEASE." - (find (cute member <> (gnu-release-archive-types release)) + (find (cute member <> (upstream-source-archive-types release)) '("xz" "lz" "bz2" "tbz2" "gz" "tgz" "Z"))) (define* (gnu-package->sexp package release @@ -60,21 +62,29 @@ (define url-base ;; XXX: We assume that RELEASE's directory starts with "/gnu". - (string-append "mirror:/" (gnu-release-directory release) + (string-append "mirror:/" + (match (upstream-source-urls release) + ((url rest ...) + (dirname (uri-path (string->uri url))))) "/" name "-")) (define archive-type (preferred-archive-type release)) + (define url + (find (cut string-suffix? archive-type <>) + (upstream-source-urls release))) + + (define sig-url + (find (cute string-suffix? (string-append archive-type ".sig") <>) + (upstream-source-signature-urls release))) + (let ((tarball (with-store store - (download-tarball store name - (gnu-release-directory release) - (gnu-release-version release) - #:archive-type archive-type + (download-tarball store url sig-url #:key-download key-download)))) `(package (name ,name) - (version ,(gnu-release-version release)) + (version ,(upstream-source-version release)) (source (origin (method url-fetch) (uri (string-append ,url-base version @@ -95,8 +105,8 @@ KEY-DOWNLOAD as the OpenPGP key download policy (see 'download-tarball' for details.)" (match (latest-release name) - ((? gnu-release? release) - (let ((version (gnu-release-version release))) + ((? upstream-source? release) + (let ((version (upstream-source-version release))) (match (find-packages (regexp-quote name)) ((info . _) (gnu-package->sexp info release #:key-download key-download)) diff --git a/guix/upstream.scm b/guix/upstream.scm index 219ae0568c..12eed3f2b4 100644 --- a/guix/upstream.scm +++ b/guix/upstream.scm @@ -40,6 +40,7 @@ upstream-source-version upstream-source-urls upstream-source-signature-urls + upstream-source-archive-types coalesce-sources -- cgit v1.2.3 From 42e8f7345ffbe5977fc9d2bb3d2615ad355a04b2 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Tue, 3 Nov 2015 10:07:30 +0800 Subject: gnu: libpcap: Update to 1.7.4. * gnu/packages/admin.scm (libpcap): Update to 1.7.4. --- gnu/packages/admin.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 455f7ee2a4..bfab7cd9ce 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -485,14 +485,14 @@ tools: server, client, and relay agent.") (define-public libpcap (package (name "libpcap") - (version "1.5.3") + (version "1.7.4") (source (origin (method url-fetch) (uri (string-append "http://www.tcpdump.org/release/libpcap-" version ".tar.gz")) (sha256 (base32 - "14wyjywrdi1ikaj6yc9c72m6m2r64z94lb0gm7k1a3q6q5cj3scs")))) + "1c28ykkizd7jqgzrfkg7ivqjlqs9p6lygp26bsw2i0z8hwhi3lvs")))) (build-system gnu-build-system) (native-inputs `(("bison" ,bison) ("flex" ,flex))) (arguments '(#:configure-flags '("--with-pcap=linux") -- cgit v1.2.3 From 6e32aa568c0a1f4f41d61167cb328ca56f2de250 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Tue, 3 Nov 2015 10:08:19 +0800 Subject: gnu: tcpdump: Update to 4.7.4. * gnu/packages/admin.scm (tcpdump): Update to 4.7.4. --- gnu/packages/admin.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index bfab7cd9ce..aba5a51a4c 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -510,14 +510,14 @@ network statistics collection, security monitoring, network debugging, etc.") (define-public tcpdump (package (name "tcpdump") - (version "4.5.1") + (version "4.7.4") (source (origin (method url-fetch) (uri (string-append "http://www.tcpdump.org/release/tcpdump-" version ".tar.gz")) (sha256 (base32 - "15hb7zkzd66nag102qbv100hcnf7frglbkylmr8adwr8f5jkkaql")))) + "1byr8w6grk08fsq0444jmcz9ar89lq9nf4mjq2cny0w9k8k21rbb")))) (build-system gnu-build-system) (inputs `(("libpcap" ,libpcap) ("openssl" ,openssl))) -- cgit v1.2.3 From dc57d527aee4eb18ec5fb345f90d6637bbd1a4d2 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 3 Nov 2015 09:37:52 +0100 Subject: gnu: guix: Update development snapshot. * gnu/packages/package-management.scm (guix-0.8.3)[arguments]: In 'disable-container-tests' phase, modify "tests/guix-environment-container.sh". Add 'set-SHELL' phase. * gnu/packages/package-management.scm (guix-devel): Update to b485f75. --- gnu/packages/package-management.scm | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 65464f7691..c1ef2e15c4 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -82,6 +82,7 @@ (string-append "--with-libgcrypt-prefix=" (assoc-ref %build-inputs "libgcrypt"))) + #:parallel-tests? #f ;work around #:phases (modify-phases %standard-phases (add-before 'configure 'copy-bootstrap-guile @@ -117,7 +118,17 @@ (substitute* "tests/containers.scm" (("^\\(test-assert" all) (string-append "(test-skip 1)\n" all))) + (when (file-exists? "tests/guix-environment-container.sh") + (substitute* "tests/guix-environment-container.sh" + (("guix environment --version") + "exit 77\n"))) #t)) + (add-before 'check 'set-SHELL + (lambda _ + ;; 'guix environment' tests rely on 'SHELL' having a + ;; correct value, so set it. + (setenv "SHELL" (which "sh")) + #t)) (add-after 'install 'wrap-program (lambda* (#:key inputs outputs #:allow-other-keys) @@ -184,7 +195,7 @@ the Nix package manager.") ;; ;; Note: use a short commit id; when using the long one, the limit on socket ;; file names is exceeded while running the tests. - (let ((commit "abbe2c6")) + (let ((commit "b485f75")) (package (inherit guix-0.8.3) (version (string-append "0.8.3." commit)) (source (origin @@ -194,7 +205,7 @@ the Nix package manager.") (commit commit))) (sha256 (base32 - "1zgjj5knpz3qbbqdjm4yh436bzfgasc6p0k3xnx58hfjd88mdsga")) + "1frn74y5c3n91qxs5b3sxbr8ai43s6svlb2djfnp7nqbr1ax3mph")) (file-name (string-append "guix-" version "-checkout")))) (arguments (substitute-keyword-arguments (package-arguments guix-0.8.3) -- cgit v1.2.3 From ef54b61dc6f67712c8a448b5fb17767b6b886ba4 Mon Sep 17 00:00:00 2001 From: Alex Vong Date: Mon, 2 Nov 2015 23:34:16 +0800 Subject: doc: './pre-inst-env guix pull' won't upgrade local source tree. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * doc/contributing.texi (Running Guix Before It Is Installed): Clarify './pre-inst-env guix pull' won't upgrade local source tree. * doc/guix.texi (Invoking guix pull): Mention ~/.config/guix/latest. Co-authored-by: Ludovic Courtès --- doc/contributing.texi | 5 +++++ doc/guix.texi | 4 +++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/doc/contributing.texi b/doc/contributing.texi index f855daf2da..cdc3f6d2d7 100644 --- a/doc/contributing.texi +++ b/doc/contributing.texi @@ -116,6 +116,11 @@ $1 = 361 The @command{pre-inst-env} script sets up all the environment variables necessary to support this, including @env{PATH} and @env{GUILE_LOAD_PATH}. +Note that @command{./pre-inst-env guix pull} does @emph{not} upgrade the +local source tree; it simply updates the @file{~/.config/guix/latest} +symlink (@pxref{Invoking guix pull}). Run @command{git pull} instead if +you want to upgrade your local source tree. + @node The Perfect Setup @section The Perfect Setup diff --git a/doc/guix.texi b/doc/guix.texi index 3afa496ea3..836a0b4e0e 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -1814,7 +1814,9 @@ On completion, @command{guix package} will use packages and package versions from this just-retrieved copy of Guix. Not only that, but all the Guix commands and Scheme modules will also be taken from that latest version. New @command{guix} sub-commands added by the update also -become available. +become available@footnote{Under the hood, @command{guix pull} updates +the @file{~/.config/guix/latest} symbolic link to point to the latest +Guix, and the @command{guix} command loads code from there.}. The @command{guix pull} command is usually invoked with no arguments, but it supports the following options: -- cgit v1.2.3 From 03d521f92e7ab2dec20c576d2fd9f391bd29d725 Mon Sep 17 00:00:00 2001 From: Taylan Ulrich Bayırlı/Kammer Date: Sun, 1 Nov 2015 19:38:53 +0100 Subject: gnu: Add nestopia-ue. * gnu/packages/games.scm (nestopia-ue): New variable. --- gnu/packages/games.scm | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 546944ad25..9c57a88dee 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -38,6 +38,7 @@ #:use-module (guix svn-download) #:use-module (gnu packages) #:use-module (gnu packages autotools) + #:use-module (gnu packages backup) #:use-module (gnu packages base) #:use-module (gnu packages admin) #:use-module (gnu packages audio) @@ -1212,3 +1213,62 @@ world}, @uref{http://evolonline.org, Evol Online} and ;; "data/themes/{golden-delicious,jewelry}/*" are under CC-BY-SA. ;; The rest is under GPL2+. (license (list license:gpl2+ license:zlib license:cc-by-sa4.0)))) + +(define-public nestopia-ue + (package + (name "nestopia-ue") + (version "1.46.2") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/rdanbrook/nestopia/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "07h49xwvg61dx20rk5p4r3ax2ar5y0ppvm60cqwqljyi9rdfbh7p")) + (modules '((guix build utils))) + ;; We don't need libretro for the GNU/Linux build. + (snippet + '(delete-file-recursively "libretro")))) + (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("ao" ,ao) + ("glu" ,glu) + ("gtk+" ,gtk+) + ("libarchive" ,libarchive) + ("mesa" ,mesa) + ("sdl2" ,sdl2))) + (arguments + '(#:phases + (modify-phases %standard-phases + ;; The Nestopia build system consists solely of a Makefile. + (delete 'configure) + ;; XXX Should be unnecessary with the next release. + (add-before + 'build 'patch-makefile + (lambda _ + (substitute* "Makefile" + (("@mkdir \\$@") "@mkdir -p $@") + (("CC =") "CC ?=") + (("CXX =") "CXX ?=") + (("PREFIX =") "PREFIX ?=") + (("^install:\n$") "install:\n\tmkdir -p $(BINDIR)\n")))) + (add-before + 'build 'remove-xdg-desktop-menu-call + (lambda _ + (substitute* "Makefile" + (("xdg-desktop-menu install .*") ""))))) + #:make-flags (let ((out (assoc-ref %outputs "out"))) + (list "CC=gcc" "CXX=g++" (string-append "PREFIX=" out))) + ;; There are no tests. + #:tests? #f)) + (home-page "http://0ldsk00l.ca/nestopia/") + (synopsis "Nintendo Entertainment System (NES/Famicom) emulator") + (description + "Nestopia UE (Undead Edition) is a fork of the Nintendo Entertainment +System (NES/Famicom) emulator Nestopia, with enhancements from members of the +emulation community. It provides highly accurate emulation.") + (license license:gpl2+))) -- cgit v1.2.3 From cfd35b4e23ed4b8e31401a9e88a0ce521babf65d Mon Sep 17 00:00:00 2001 From: David Thompson Date: Tue, 3 Nov 2015 08:14:57 -0500 Subject: doc: Linux-libre 3.19 is needed for using containers. * doc/guix.texi ("invoking guix environment", "invoking guix system"): 3.10 is actually too old without backported patches, so change to 3.19. --- doc/guix.texi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 836a0b4e0e..2ec25b21a1 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -4730,7 +4730,7 @@ guix environment --ad-hoc --container guile -- guile @end example @quotation Note -The @code{--container} option requires Linux-libre 3.10 or newer. +The @code{--container} option requires Linux-libre 3.19 or newer. @end quotation The available options are summarized below. @@ -7441,7 +7441,7 @@ guix system container my-config.scm \ @end example @quotation Note -This option requires Linux-libre 3.10 or newer. +This option requires Linux-libre 3.19 or newer. @end quotation @end table -- cgit v1.2.3 From c56ab21b2af601bd20af08c6924df2a5121e132a Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 3 Nov 2015 14:43:42 +0100 Subject: gnu: guix: Do not retain dependency on Graphviz. * gnu/packages/package-management.scm (guix-devel)[arguments]: Add ac_cv_path_DOT_USER_PROGRAM=dot to #:configure-flags. --- gnu/packages/package-management.scm | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index c1ef2e15c4..1c480be67e 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -209,6 +209,11 @@ the Nix package manager.") (file-name (string-append "guix-" version "-checkout")))) (arguments (substitute-keyword-arguments (package-arguments guix-0.8.3) + ((#:configure-flags flags) + ;; Set 'DOT_USER_PROGRAM' to the empty string so we don't keep a + ;; reference to Graphviz, whose closure is pretty big (too big for + ;; the GuixSD installation image.) + `(cons "ac_cv_path_DOT_USER_PROGRAM=dot" ,flags)) ((#:phases phases) `(modify-phases ,phases (add-after -- cgit v1.2.3 From 31e021f8767abb2c37e1c7a2e7aa6be276667bd3 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Tue, 3 Nov 2015 21:58:28 +0800 Subject: gnu: gstreamer: Update to 1.6.1. * gnu/packages/gstreamer.scm (gstreamer): Update to 1.6.1. [arguments]: Remove #:make-flags. --- gnu/packages/gstreamer.scm | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm index 0ac9783550..90061b2e94 100644 --- a/gnu/packages/gstreamer.scm +++ b/gnu/packages/gstreamer.scm @@ -83,7 +83,7 @@ arrays of data.") (define-public gstreamer (package (name "gstreamer") - (version "1.4.5") + (version "1.6.1") (source (origin (method url-fetch) @@ -91,12 +91,11 @@ arrays of data.") version ".tar.xz")) (sha256 (base32 - "1bmhbhak6i5wmmb6w86jyyv8lax4gdq983la4lk4a0krz6kim020")))) + "172w1bpnkn6mm1wi37n03apdbb6cdkykhzjf1vfxchcd7hhkyflp")))) (build-system gnu-build-system) (outputs '("out" "doc")) (arguments - `(#:make-flags '("CC=gcc") ; for g-ir-scanner. - #:configure-flags + `(#:configure-flags (list (string-append "--with-html-dir=" (assoc-ref %outputs "doc") "/share/gtk-doc/html")))) -- cgit v1.2.3 From 7bc36f8d96fb40a449c405a29ecdceb69a658132 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Tue, 3 Nov 2015 22:00:04 +0800 Subject: gnu: gst-plugins-base: Update to 1.6.1. * gnu/packages/gstreamer.scm (gst-plugins-base): Update to 1.6.1. [arguments]: Disable parallel tests. --- gnu/packages/gstreamer.scm | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm index 90061b2e94..619a63f934 100644 --- a/gnu/packages/gstreamer.scm +++ b/gnu/packages/gstreamer.scm @@ -130,7 +130,7 @@ This package provides the core library and elements.") (define-public gst-plugins-base (package (name "gst-plugins-base") - (version "1.4.5") + (version "1.6.1") (source (origin (method url-fetch) @@ -138,7 +138,7 @@ This package provides the core library and elements.") version ".tar.xz")) (sha256 (base32 - "07ampnfa6p41s0lhia62l9h8bdx3c7vxvdz93pbx64m3wycq3gbp")))) + "18sbyjcp281zb3bsqji3pglsdsxi0s6ai7rx90sx8cpflkxdqcwm")))) (build-system gnu-build-system) (outputs '("out" "doc")) (propagated-inputs @@ -161,7 +161,8 @@ This package provides the core library and elements.") ("gobject-introspection" ,gobject-introspection) ("python-wrapper" ,python-wrapper))) (arguments - `(#:configure-flags + `(#:parallel-tests? #f ; 'pipelines/tcp' fails in parallel + #:configure-flags (list (string-append "--with-html-dir=" (assoc-ref %outputs "doc") "/share/gtk-doc/html")) @@ -170,9 +171,7 @@ This package provides the core library and elements.") 'configure 'patch (lambda _ (substitute* "tests/check/libs/pbutils.c" - (("/bin/sh") (which "sh"))) - ;; for g-ir-scanner. - (setenv "CC" "gcc")) + (("/bin/sh") (which "sh")))) %standard-phases))) (home-page "http://gstreamer.freedesktop.org/") (synopsis -- cgit v1.2.3 From a64e5d451b2aef2a36a92a0b6ed626cb29169def Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Tue, 3 Nov 2015 22:01:15 +0800 Subject: gnu: gst-plugins-good: Update to 1.6.1. * gnu/packages/gstreamer.scm (gst-plugins-good): Update to 1.6.1. --- gnu/packages/gstreamer.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm index 619a63f934..2ef22f51ed 100644 --- a/gnu/packages/gstreamer.scm +++ b/gnu/packages/gstreamer.scm @@ -184,7 +184,7 @@ for the GStreamer multimedia library.") (define-public gst-plugins-good (package (name "gst-plugins-good") - (version "1.4.5") + (version "1.6.1") (source (origin (method url-fetch) @@ -193,7 +193,7 @@ for the GStreamer multimedia library.") version ".tar.xz")) (sha256 (base32 - "0hg6qzdpib9nwn3hdxv0d4rvivi1c4bmxsq2a9hqmamwyzrvbcbr")))) + "0darc3058kbnql3mnlpizl0sq0hhli7vkm0rpqb7nywz14abim46")))) (build-system gnu-build-system) (inputs `(("aalib" ,aalib) @@ -227,7 +227,7 @@ for the GStreamer multimedia library.") 'unpack 'disable-failing-rtprtx-tests (lambda _ ;; Disable rtprtx tests that frequently fail. - ;; XXX FIXME: Try removing this for version > 1.4.5. + ;; XXX FIXME: Try removing this for version > 1.6.1. (substitute* "tests/check/elements/rtprtx.c" (("tcase_add_test \\(tc_chain,\ (test_rtxsender_max_size_packets|test_rtxreceive_data_reconstruction)\\);" all) -- cgit v1.2.3 From 72131606f1e8b4dcb8f0c4e14823249dab865de6 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Tue, 3 Nov 2015 22:01:54 +0800 Subject: gnu: gst-plugins-ugly: Update to 1.6.1. * gnu/packages/gstreamer.scm (gst-plugins-ugly): Update to 1.6.1. --- gnu/packages/gstreamer.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm index 2ef22f51ed..6dad2ad15c 100644 --- a/gnu/packages/gstreamer.scm +++ b/gnu/packages/gstreamer.scm @@ -244,7 +244,7 @@ developers consider to have good quality code and correct functionality.") (define-public gst-plugins-ugly (package (name "gst-plugins-ugly") - (version "1.4.5") + (version "1.6.1") (source (origin (method url-fetch) @@ -252,7 +252,7 @@ developers consider to have good quality code and correct functionality.") name "/" name "-" version ".tar.xz")) (sha256 (base32 - "0rwhljn3f8mp2pfchzfcx4pvps1546dndw9mr56lz50qyqffimaw")))) + "0mvasl1pwq70w2kmrkcrg77kggl5q7jqybi7fkvy3vr28c7gkhqc")))) (build-system gnu-build-system) (inputs `(("gst-plugins-base" ,gst-plugins-base) -- cgit v1.2.3 From c869eed1a7034d1930343e70950c50a5a2814963 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Tue, 3 Nov 2015 22:02:32 +0800 Subject: gnu: gst-libav: Update to 1.6.1. * gnu/packages/gstreamer.scm (gst-libav): Update to 1.6.1. --- gnu/packages/gstreamer.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm index 6dad2ad15c..a52106b898 100644 --- a/gnu/packages/gstreamer.scm +++ b/gnu/packages/gstreamer.scm @@ -282,7 +282,7 @@ distribution problems in some jurisdictions, e.g. due to patent threats.") (define-public gst-libav (package (name "gst-libav") - (version "1.4.5") + (version "1.6.1") (source (origin (method url-fetch) (uri (string-append @@ -290,7 +290,7 @@ distribution problems in some jurisdictions, e.g. due to patent threats.") name "-" version ".tar.xz")) (sha256 (base32 - "1g7vg9amh3cc3nmc415h6g2rqxqi4wgwqi08hxfbpwq48ri64p30")))) + "1a9pc7zp5rg0cvpx8gqkr21w73i6p9xa505a34day9f8p3lfim94")))) (build-system gnu-build-system) (arguments '(#:configure-flags '("--with-system-libav") -- cgit v1.2.3 From 9ff7827a21c13e67fb72196da10ab1ad30d79ddf Mon Sep 17 00:00:00 2001 From: Taylan Ulrich Bayırlı/Kammer Date: Tue, 3 Nov 2015 16:22:56 +0100 Subject: gnu: nestopia-ue: Use system zlib. * gnu/packages/games.scm (nestopia-ue): Remove bundled zlib, patch files to include system zlib.h, and add zlib as input. --- gnu/packages/games.scm | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 9c57a88dee..f522db3073 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -1228,9 +1228,14 @@ world}, @uref{http://evolonline.org, Evol Online} and (base32 "07h49xwvg61dx20rk5p4r3ax2ar5y0ppvm60cqwqljyi9rdfbh7p")) (modules '((guix build utils))) - ;; We don't need libretro for the GNU/Linux build. (snippet - '(delete-file-recursively "libretro")))) + '(begin + ;; We don't need libretro for the GNU/Linux build. + (delete-file-recursively "libretro") + ;; Use system zlib. + (delete-file-recursively "source/zlib") + (substitute* "source/core/NstZlib.cpp" + (("#include \"../zlib/zlib.h\"") "#include ")))))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) @@ -1240,7 +1245,8 @@ world}, @uref{http://evolonline.org, Evol Online} and ("gtk+" ,gtk+) ("libarchive" ,libarchive) ("mesa" ,mesa) - ("sdl2" ,sdl2))) + ("sdl2" ,sdl2) + ("zlib" ,zlib))) (arguments '(#:phases (modify-phases %standard-phases -- cgit v1.2.3 From b7d48312bbfc7bdbb3895eb10edc352eeb555b98 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Tue, 3 Nov 2015 08:32:53 -0500 Subject: build: container: Add feature test predicates. * gnu/build/linux-container.scm (user-namespace-supported?, unprivileged-user-namespace-supported?, setgroups-supported?): New procedures. * tests/container.scm: Use predicates. * tests/syscalls.scm: Likewise. --- gnu/build/linux-container.scm | 22 +++++++++++++++++++++- tests/containers.scm | 5 +++-- tests/syscalls.scm | 11 ++++++++--- 3 files changed, 32 insertions(+), 6 deletions(-) diff --git a/gnu/build/linux-container.scm b/gnu/build/linux-container.scm index 556422bc38..eb5dbf94a3 100644 --- a/gnu/build/linux-container.scm +++ b/gnu/build/linux-container.scm @@ -19,16 +19,36 @@ (define-module (gnu build linux-container) #:use-module (ice-9 format) #:use-module (ice-9 match) + #:use-module (ice-9 rdelim) #:use-module (srfi srfi-98) #:use-module (guix utils) #:use-module (guix build utils) #:use-module (guix build syscalls) #:use-module ((gnu build file-systems) #:select (mount-file-system)) - #:export (%namespaces + #:export (user-namespace-supported? + unprivileged-user-namespace-supported? + setgroups-supported? + %namespaces run-container call-with-container container-excursion)) +(define (user-namespace-supported?) + "Return #t if user namespaces are supported on this system." + (file-exists? "/proc/self/ns/user")) + +(define (unprivileged-user-namespace-supported?) + "Return #t if user namespaces can be created by unprivileged users." + (let ((userns-file "/proc/sys/kernel/unprivileged_userns_clone")) + (if (file-exists? userns-file) + (string=? "1" (call-with-input-file userns-file read-string)) + #t))) + +(define (setgroups-supported?) + "Return #t if the setgroups proc file, introduced in Linux-libre 3.19, +exists." + (file-exists? "/proc/self/setgroups")) + (define %namespaces '(mnt pid ipc uts user net)) diff --git a/tests/containers.scm b/tests/containers.scm index 0ba81491ba..12982a64f7 100644 --- a/tests/containers.scm +++ b/tests/containers.scm @@ -28,8 +28,9 @@ ;; Skip these tests unless user namespaces are available and the setgroups ;; file (introduced in Linux 3.19 to address a security issue) exists. -(unless (and (file-exists? "/proc/self/ns/user") - (file-exists? "/proc/self/setgroups")) +(unless (and (user-namespace-supported?) + (unprivileged-user-namespace-supported?) + (setgroups-supported?)) (exit 77)) (test-begin "containers") diff --git a/tests/syscalls.scm b/tests/syscalls.scm index 86783b96c4..a57a9ca9f9 100644 --- a/tests/syscalls.scm +++ b/tests/syscalls.scm @@ -20,6 +20,7 @@ (define-module (test-syscalls) #:use-module (guix utils) #:use-module (guix build syscalls) + #:use-module (gnu build linux-container) #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) #:use-module (srfi srfi-64) @@ -80,7 +81,11 @@ (define (user-namespace pid) (string-append "/proc/" (number->string pid) "/ns/user")) -(unless (file-exists? (user-namespace (getpid))) +(define perform-container-tests? + (and (user-namespace-supported?) + (unprivileged-user-namespace-supported?))) + +(unless perform-container-tests? (test-skip 1)) (test-assert "clone" (match (clone (logior CLONE_NEWUSER SIGCHLD)) @@ -93,7 +98,7 @@ ((_ . status) (= 42 (status:exit-val status)))))))) -(unless (file-exists? (user-namespace (getpid))) +(unless perform-container-tests? (test-skip 1)) (test-assert "setns" (match (clone (logior CLONE_NEWUSER SIGCHLD)) @@ -122,7 +127,7 @@ (waitpid fork-pid) result)))))))) -(unless (file-exists? (user-namespace (getpid))) +(unless perform-container-tests? (test-skip 1)) (test-assert "pivot-root" (match (pipe) -- cgit v1.2.3 From 00bfa7ea25b4612d730b057308b304d0131bee03 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Tue, 3 Nov 2015 09:02:10 -0500 Subject: scripts: environment: Display friendly container error messages. * guix/scripts/environment.scm (assert-container-features): New procedure. (guix-environment): Use it. --- guix/scripts/environment.scm | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/guix/scripts/environment.scm b/guix/scripts/environment.scm index 45b54a9297..97410f4e09 100644 --- a/guix/scripts/environment.scm +++ b/guix/scripts/environment.scm @@ -437,6 +437,21 @@ Otherwise, return the derivation for the Bash package." opts (alist-cons 'exec command opts))))) +(define (assert-container-features) + "Check if containers can be created and exit with an informative error +message if any test fails." + (unless (user-namespace-supported?) + (report-error (_ "cannot create container: user namespaces unavailable\n")) + (leave (_ "is your kernel version < 3.10?\n"))) + + (unless (unprivileged-user-namespace-supported?) + (report-error (_ "cannot create container: unprivileged user cannot create user namespaces\n")) + (leave (_ "please set /proc/sys/kernel/unprivileged_userns_clone to \"1\"\n"))) + + (unless (setgroups-supported?) + (report-error (_ "cannot create container: /proc/self/setgroups does not exist\n")) + (leave (_ "is your kernel version < 3.19?\n")))) + ;; Entry point. (define (guix-environment . args) (with-error-handling @@ -474,6 +489,9 @@ Otherwise, return the derivation for the Bash package." '())) inputs)) eq?))) + + (when container? (assert-container-features)) + (with-store store (run-with-store store (mlet* %store-monad ((inputs (lower-inputs -- cgit v1.2.3 From 1c52181f33ec6c2b91f1361f7251769dd29c6ef2 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 3 Nov 2015 17:23:10 +0100 Subject: services: Add 'guix-publish-service'. * gnu/services/base.scm (): New record type. (guix-publish-dmd-service): New procedure. (%guix-publish-accounts, guix-publish-service-type): New variables. (guix-publish-service): New procedure. * doc/guix.texi (Invoking guix publish): Add xref to 'guix-publish-service' anchor. (Base Services): Document 'guix-publish-service'. --- doc/guix.texi | 16 ++++++++++++++ gnu/services/base.scm | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 77 insertions(+) diff --git a/doc/guix.texi b/doc/guix.texi index 2ec25b21a1..996192c0ea 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -4918,6 +4918,11 @@ Reference Manual}) on @var{port} (37146 by default). This is used primarily for debugging a running @command{guix publish} server. @end table +Enabling @command{guix publish} on a GuixSD system is a one-liner: just +add a call to @code{guix-publish-service} in the @code{services} field +of the @code{operating-system} declaration (@pxref{guix-publish-service, +@code{guix-publish-service}}). + @node Invoking guix challenge @section Invoking @command{guix challenge} @@ -6428,6 +6433,17 @@ Return a service to load console keymap from @var{file} using @command{loadkeys} command. @end deffn +@anchor{guix-publish-service} +@deffn {Scheme Procedure} guix-publish-service [#:guix @var{guix}] @ + [#:port 80] [#:host "localhost"] +Return a service that runs @command{guix publish} listening on @var{host} +and @var{port} (@pxref{Invoking guix publish}). + +This assumes that @file{/etc/guix} already contains a signing key pair as +created by @command{guix archive --generate-key} (@pxref{Invoking guix +archive}). If that is not the case, the service will fail to start. +@end deffn + @node Networking Services @subsubsection Networking Services diff --git a/gnu/services/base.scm b/gnu/services/base.scm index 604416b985..9d495565ad 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -76,6 +76,10 @@ guix-configuration? guix-service guix-service-type + guix-publish-configuration + guix-publish-configuration? + guix-publish-service + guix-publish-service-type %base-services)) @@ -705,6 +709,11 @@ If configuration file name @var{config-file} is not specified, use some reasonable default settings." (service syslog-service-type config-file)) + +;;; +;;; Guix services. +;;; + (define* (guix-build-accounts count #:key (group "guixbuild") (first-uid 30001) @@ -842,6 +851,58 @@ failed to register hydra.gnu.org public key: ~a~%" status)))))))) @var{config}." (service guix-service-type config)) + +(define-record-type* + guix-publish-configuration make-guix-publish-configuration + guix-publish-configuration? + (guix guix-publish-configuration-guix ;package + (default guix)) + (port guix-publish-configuration-port ;number + (default 80)) + (host guix-publish-configuration-host ;string + (default "localhost"))) + +(define guix-publish-dmd-service + (match-lambda + (($ guix port host) + (list (dmd-service + (provision '(guix-publish)) + (requirement '(guix-daemon)) + (start #~(make-forkexec-constructor + (list (string-append #$guix "/bin/guix") + "publish" "-u" "guix-publish" + "-p" #$(number->string port) + (string-append "--listen=" #$host)))) + (stop #~(make-kill-destructor))))))) + +(define %guix-publish-accounts + (list (user-group (name "guix-publish") (system? #t)) + (user-account + (name "guix-publish") + (group "guix-publish") + (system? #t) + (comment "guix publish user") + (home-directory "/var/empty") + (shell #~(string-append #$shadow "/sbin/nologin"))))) + +(define guix-publish-service-type + (service-type (name 'guix-publish) + (extensions + (list (service-extension dmd-root-service-type + guix-publish-dmd-service) + (service-extension account-service-type + (const %guix-publish-accounts)))))) + +(define* (guix-publish-service #:key (guix guix) (port 80) (host "localhost")) + "Return a service that runs @command{guix publish} listening on @var{host} +and @var{port} (@pxref{Invoking guix publish}). + +This assumes that @file{/etc/guix} already contains a signing key pair as +created by @command{guix archive --generate-key} (@pxref{Invoking guix +archive}). If that is not the case, the service will fail to start." + (service guix-publish-service-type + (guix-publish-configuration (guix guix) (port port) (host host)))) + ;;; ;;; Udev. -- cgit v1.2.3 From 6e82863463c641571e852291481e2b64401c2fe2 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 3 Nov 2015 18:08:47 +0100 Subject: system: Rename (gnu system linux) to (gnu system pam). * gnu/system/linux.scm: Rename to... * gnu/system/pam.scm: ... this. * gnu-system.am (GNU_SYSTEM_MODULES): Adjust accordingly. * gnu.scm, gnu/services/base.scm, gnu/services/desktop.scm, gnu/services/networking.scm, gnu/services/ssh.scm, gnu/services/xorg.scm, gnu/system.scm, gnu/system/vm.scm: Likewise. --- gnu-system.am | 2 +- gnu.scm | 2 +- gnu/services/base.scm | 2 +- gnu/services/desktop.scm | 2 +- gnu/services/networking.scm | 2 +- gnu/services/ssh.scm | 2 +- gnu/services/xorg.scm | 2 +- gnu/system.scm | 2 +- gnu/system/linux.scm | 214 -------------------------------------------- gnu/system/pam.scm | 213 +++++++++++++++++++++++++++++++++++++++++++ gnu/system/vm.scm | 2 +- 11 files changed, 222 insertions(+), 223 deletions(-) delete mode 100644 gnu/system/linux.scm create mode 100644 gnu/system/pam.scm diff --git a/gnu-system.am b/gnu-system.am index 36e7b6e937..c5b87cc6f4 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -359,11 +359,11 @@ GNU_SYSTEM_MODULES = \ gnu/system/file-systems.scm \ gnu/system/grub.scm \ gnu/system/install.scm \ - gnu/system/linux.scm \ gnu/system/linux-container.scm \ gnu/system/linux-initrd.scm \ gnu/system/locale.scm \ gnu/system/nss.scm \ + gnu/system/pam.scm \ gnu/system/shadow.scm \ gnu/system/vm.scm \ \ diff --git a/gnu.scm b/gnu.scm index e3147b39e3..f9a13246c3 100644 --- a/gnu.scm +++ b/gnu.scm @@ -34,7 +34,7 @@ '((gnu system) (gnu system file-systems) (gnu system grub) ; 'grub-configuration' - (gnu system linux) ; 'base-pam-services' + (gnu system pam) (gnu system shadow) ; 'user-account' (gnu system linux-initrd) (gnu system nss) diff --git a/gnu/services/base.scm b/gnu/services/base.scm index 9d495565ad..6165410463 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -23,8 +23,8 @@ #:use-module (gnu services) #:use-module (gnu services dmd) #:use-module (gnu services networking) + #:use-module (gnu system pam) #:use-module (gnu system shadow) ; 'user-account', etc. - #:use-module (gnu system linux) ; 'pam-service', etc. #:use-module (gnu system file-systems) ; 'file-system', etc. #:use-module (gnu packages admin) #:use-module ((gnu packages linux) diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm index 1986764697..0b4ed56d05 100644 --- a/gnu/services/desktop.scm +++ b/gnu/services/desktop.scm @@ -27,7 +27,7 @@ #:use-module (gnu services xorg) #:use-module (gnu services networking) #:use-module (gnu system shadow) - #:use-module (gnu system linux) ; unix-pam-service + #:use-module (gnu system pam) #:use-module (gnu packages glib) #:use-module (gnu packages admin) #:use-module (gnu packages freedesktop) diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm index 8f67976b23..a09714447e 100644 --- a/gnu/services/networking.scm +++ b/gnu/services/networking.scm @@ -22,7 +22,7 @@ #:use-module (gnu services dmd) #:use-module (gnu services dbus) #:use-module (gnu system shadow) - #:use-module (gnu system linux) ;PAM + #:use-module (gnu system pam) #:use-module (gnu packages admin) #:use-module (gnu packages linux) #:use-module (gnu packages tor) diff --git a/gnu/services/ssh.scm b/gnu/services/ssh.scm index d3a6cfb33a..18556d2cc5 100644 --- a/gnu/services/ssh.scm +++ b/gnu/services/ssh.scm @@ -21,7 +21,7 @@ #:use-module (guix records) #:use-module (gnu services) #:use-module (gnu services dmd) - #:use-module (gnu system linux) ; 'pam-service' + #:use-module (gnu system pam) #:use-module (gnu packages lsh) #:export (lsh-service)) diff --git a/gnu/services/xorg.scm b/gnu/services/xorg.scm index f4bc8245f5..dc2625d39b 100644 --- a/gnu/services/xorg.scm +++ b/gnu/services/xorg.scm @@ -21,7 +21,7 @@ #:use-module (gnu artwork) #:use-module (gnu services) #:use-module (gnu services dmd) - #:use-module (gnu system linux) ; 'pam-service' + #:use-module (gnu system pam) #:use-module ((gnu packages base) #:select (canonical-package)) #:use-module (gnu packages guile) #:use-module (gnu packages xorg) diff --git a/gnu/system.scm b/gnu/system.scm index 85a596ddb9..be6b1ac2c1 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -50,7 +50,7 @@ #:use-module (gnu system shadow) #:use-module (gnu system nss) #:use-module (gnu system locale) - #:use-module (gnu system linux) + #:use-module (gnu system pam) #:use-module (gnu system linux-initrd) #:use-module (gnu system file-systems) #:use-module (ice-9 match) diff --git a/gnu/system/linux.scm b/gnu/system/linux.scm deleted file mode 100644 index 487d379e65..0000000000 --- a/gnu/system/linux.scm +++ /dev/null @@ -1,214 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015 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 system linux) - #:use-module (guix records) - #:use-module (guix derivations) - #:use-module (guix gexp) - #:use-module (gnu services) - #:use-module (ice-9 match) - #:use-module (srfi srfi-1) - #:use-module (srfi srfi-26) - #:use-module ((guix utils) #:select (%current-system)) - #:export (pam-service - pam-entry - pam-services->directory - unix-pam-service - base-pam-services - - pam-root-service-type - pam-root-service)) - -;;; Commentary: -;;; -;;; Configuration of Linux-related things, including pluggable authentication -;;; modules (PAM). -;;; -;;; Code: - -;; PAM services (see -;; .) -(define-record-type* pam-service - make-pam-service - pam-service? - (name pam-service-name) ; string - - ;; The four "management groups". - (account pam-service-account ; list of - (default '())) - (auth pam-service-auth - (default '())) - (password pam-service-password - (default '())) - (session pam-service-session - (default '()))) - -(define-record-type* pam-entry - make-pam-entry - pam-entry? - (control pam-entry-control) ; string - (module pam-entry-module) ; file name - (arguments pam-entry-arguments ; list of string-valued g-expressions - (default '()))) - -(define (pam-service->configuration service) - "Return the derivation building the configuration file for SERVICE, to be -dumped in /etc/pam.d/NAME, where NAME is the name of SERVICE." - (define (entry->gexp type entry) - (match entry - (($ control module (arguments ...)) - #~(format #t "~a ~a ~a ~a~%" - #$type #$control #$module - (string-join (list #$@arguments)))))) - - (match service - (($ name account auth password session) - (define builder - #~(begin - (with-output-to-file #$output - (lambda () - #$@(append (map (cut entry->gexp "account" <>) account) - (map (cut entry->gexp "auth" <>) auth) - (map (cut entry->gexp "password" <>) password) - (map (cut entry->gexp "session" <>) session)) - #t)))) - - (computed-file name builder)))) - -(define (pam-services->directory services) - "Return the derivation to build the configuration directory to be used as -/etc/pam.d for SERVICES." - (let ((names (map pam-service-name services)) - (files (map pam-service->configuration services))) - (define builder - #~(begin - (use-modules (ice-9 match) - (srfi srfi-1)) - - (mkdir #$output) - (for-each (match-lambda - ((name file) - (symlink file (string-append #$output "/" name)))) - - ;; Since objects cannot be compared with - ;; 'equal?' since they contain gexps, which contain - ;; closures, use 'delete-duplicates' on the build-side - ;; instead. See . - (delete-duplicates '#$(zip names files))))) - - (computed-file "pam.d" builder))) - -(define %pam-other-services - ;; The "other" PAM configuration, which denies everything (see - ;; .) - (let ((deny (pam-entry - (control "required") - (module "pam_deny.so")))) - (pam-service - (name "other") - (account (list deny)) - (auth (list deny)) - (password (list deny)) - (session (list deny))))) - -(define unix-pam-service - (let ((unix (pam-entry - (control "required") - (module "pam_unix.so")))) - (lambda* (name #:key allow-empty-passwords? motd) - "Return a standard Unix-style PAM service for NAME. When -ALLOW-EMPTY-PASSWORDS? is true, allow empty passwords. When MOTD is true, it -should be a file-like object used as the message-of-the-day." - ;; See . - (let ((name* name)) - (pam-service - (name name*) - (account (list unix)) - (auth (list (if allow-empty-passwords? - (pam-entry - (control "required") - (module "pam_unix.so") - (arguments '("nullok"))) - unix))) - (password (list (pam-entry - (control "required") - (module "pam_unix.so") - ;; Store SHA-512 encrypted passwords in /etc/shadow. - (arguments '("sha512" "shadow"))))) - (session (if motd - (list unix - (pam-entry - (control "optional") - (module "pam_motd.so") - (arguments - (list #~(string-append "motd=" #$motd))))) - (list unix)))))))) - -(define (rootok-pam-service command) - "Return a PAM service for COMMAND such that 'root' does not need to -authenticate to run COMMAND." - (let ((unix (pam-entry - (control "required") - (module "pam_unix.so")))) - (pam-service - (name command) - (account (list unix)) - (auth (list (pam-entry - (control "sufficient") - (module "pam_rootok.so")))) - (password (list unix)) - (session (list unix))))) - -(define* (base-pam-services #:key allow-empty-passwords?) - "Return the list of basic PAM services everyone would want." - ;; TODO: Add other Shadow programs? - (append (list %pam-other-services) - - ;; These programs are setuid-root. - (map (cut unix-pam-service <> - #:allow-empty-passwords? allow-empty-passwords?) - '("su" "passwd" "sudo")) - - ;; These programs are not setuid-root, and we want root to be able - ;; to run them without having to authenticate (notably because - ;; 'useradd' and 'groupadd' are run during system activation.) - (map rootok-pam-service - '("useradd" "userdel" "usermod" - "groupadd" "groupdel" "groupmod")))) - - -;;; -;;; PAM root service. -;;; - -(define (/etc-entry services) - `(("pam.d" ,(pam-services->directory services)))) - -(define pam-root-service-type - (service-type (name 'pam) - (extensions (list (service-extension etc-service-type - /etc-entry))) - (compose concatenate) - (extend append))) - -(define (pam-root-service base) - "The \"root\" PAM service, which collects instance and turns -them into a /etc/pam.d directory, including the listed in BASE." - (service pam-root-service-type base)) - -;;; linux.scm ends here diff --git a/gnu/system/pam.scm b/gnu/system/pam.scm new file mode 100644 index 0000000000..d8470f02a3 --- /dev/null +++ b/gnu/system/pam.scm @@ -0,0 +1,213 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2013, 2014, 2015 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 system pam) + #:use-module (guix records) + #:use-module (guix derivations) + #:use-module (guix gexp) + #:use-module (gnu services) + #:use-module (ice-9 match) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-26) + #:use-module ((guix utils) #:select (%current-system)) + #:export (pam-service + pam-entry + pam-services->directory + unix-pam-service + base-pam-services + + pam-root-service-type + pam-root-service)) + +;;; Commentary: +;;; +;;; Configuration of the pluggable authentication modules (PAM). +;;; +;;; Code: + +;; PAM services (see +;; .) +(define-record-type* pam-service + make-pam-service + pam-service? + (name pam-service-name) ; string + + ;; The four "management groups". + (account pam-service-account ; list of + (default '())) + (auth pam-service-auth + (default '())) + (password pam-service-password + (default '())) + (session pam-service-session + (default '()))) + +(define-record-type* pam-entry + make-pam-entry + pam-entry? + (control pam-entry-control) ; string + (module pam-entry-module) ; file name + (arguments pam-entry-arguments ; list of string-valued g-expressions + (default '()))) + +(define (pam-service->configuration service) + "Return the derivation building the configuration file for SERVICE, to be +dumped in /etc/pam.d/NAME, where NAME is the name of SERVICE." + (define (entry->gexp type entry) + (match entry + (($ control module (arguments ...)) + #~(format #t "~a ~a ~a ~a~%" + #$type #$control #$module + (string-join (list #$@arguments)))))) + + (match service + (($ name account auth password session) + (define builder + #~(begin + (with-output-to-file #$output + (lambda () + #$@(append (map (cut entry->gexp "account" <>) account) + (map (cut entry->gexp "auth" <>) auth) + (map (cut entry->gexp "password" <>) password) + (map (cut entry->gexp "session" <>) session)) + #t)))) + + (computed-file name builder)))) + +(define (pam-services->directory services) + "Return the derivation to build the configuration directory to be used as +/etc/pam.d for SERVICES." + (let ((names (map pam-service-name services)) + (files (map pam-service->configuration services))) + (define builder + #~(begin + (use-modules (ice-9 match) + (srfi srfi-1)) + + (mkdir #$output) + (for-each (match-lambda + ((name file) + (symlink file (string-append #$output "/" name)))) + + ;; Since objects cannot be compared with + ;; 'equal?' since they contain gexps, which contain + ;; closures, use 'delete-duplicates' on the build-side + ;; instead. See . + (delete-duplicates '#$(zip names files))))) + + (computed-file "pam.d" builder))) + +(define %pam-other-services + ;; The "other" PAM configuration, which denies everything (see + ;; .) + (let ((deny (pam-entry + (control "required") + (module "pam_deny.so")))) + (pam-service + (name "other") + (account (list deny)) + (auth (list deny)) + (password (list deny)) + (session (list deny))))) + +(define unix-pam-service + (let ((unix (pam-entry + (control "required") + (module "pam_unix.so")))) + (lambda* (name #:key allow-empty-passwords? motd) + "Return a standard Unix-style PAM service for NAME. When +ALLOW-EMPTY-PASSWORDS? is true, allow empty passwords. When MOTD is true, it +should be a file-like object used as the message-of-the-day." + ;; See . + (let ((name* name)) + (pam-service + (name name*) + (account (list unix)) + (auth (list (if allow-empty-passwords? + (pam-entry + (control "required") + (module "pam_unix.so") + (arguments '("nullok"))) + unix))) + (password (list (pam-entry + (control "required") + (module "pam_unix.so") + ;; Store SHA-512 encrypted passwords in /etc/shadow. + (arguments '("sha512" "shadow"))))) + (session (if motd + (list unix + (pam-entry + (control "optional") + (module "pam_motd.so") + (arguments + (list #~(string-append "motd=" #$motd))))) + (list unix)))))))) + +(define (rootok-pam-service command) + "Return a PAM service for COMMAND such that 'root' does not need to +authenticate to run COMMAND." + (let ((unix (pam-entry + (control "required") + (module "pam_unix.so")))) + (pam-service + (name command) + (account (list unix)) + (auth (list (pam-entry + (control "sufficient") + (module "pam_rootok.so")))) + (password (list unix)) + (session (list unix))))) + +(define* (base-pam-services #:key allow-empty-passwords?) + "Return the list of basic PAM services everyone would want." + ;; TODO: Add other Shadow programs? + (append (list %pam-other-services) + + ;; These programs are setuid-root. + (map (cut unix-pam-service <> + #:allow-empty-passwords? allow-empty-passwords?) + '("su" "passwd" "sudo")) + + ;; These programs are not setuid-root, and we want root to be able + ;; to run them without having to authenticate (notably because + ;; 'useradd' and 'groupadd' are run during system activation.) + (map rootok-pam-service + '("useradd" "userdel" "usermod" + "groupadd" "groupdel" "groupmod")))) + + +;;; +;;; PAM root service. +;;; + +(define (/etc-entry services) + `(("pam.d" ,(pam-services->directory services)))) + +(define pam-root-service-type + (service-type (name 'pam) + (extensions (list (service-extension etc-service-type + /etc-entry))) + (compose concatenate) + (extend append))) + +(define (pam-root-service base) + "The \"root\" PAM service, which collects instance and turns +them into a /etc/pam.d directory, including the listed in BASE." + (service pam-root-service-type base)) + +;;; linux.scm ends here diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm index dfb6996067..96ff27f90b 100644 --- a/gnu/system/vm.scm +++ b/gnu/system/vm.scm @@ -43,7 +43,7 @@ #:use-module (gnu packages admin) #:use-module (gnu system shadow) - #:use-module (gnu system linux) + #:use-module (gnu system pam) #:use-module (gnu system linux-initrd) #:use-module (gnu system grub) #:use-module (gnu system file-systems) -- cgit v1.2.3 From f5dceecb0ce704491237bd6ad4a121088b0f47c1 Mon Sep 17 00:00:00 2001 From: Andy Wingo Date: Tue, 3 Nov 2015 15:46:33 +0100 Subject: gnu: Add libesmtp. * gnu/packages/mail.scm (libesmtp): New public variable. --- gnu/packages/mail.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 1e3ba8fd54..3ba956ef1b 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -939,4 +939,28 @@ Email::Send library.") format and headers.") (license (package-license perl)))) +(define-public libesmtp + (package + (name "libesmtp") + (version "1.0.6") + (source + (origin + (method url-fetch) + (uri (string-append "http://www.stafford.uklinux.net/libesmtp/libesmtp-" + version ".tar.bz2")) + (sha256 + (base32 + "02zbniyz7qys1jmx3ghx21kxmns1wc3hmv80gp7ag7yra9f1m9nh")))) + (build-system gnu-build-system) + (propagated-inputs + `(("openssl" ,openssl))) + (home-page "http://www.stafford.uklinux.net/libesmtp/") + (synopsis "Library for sending mail via remote hosts using SMTP") + (description "libESMTP is an SMTP client which manages posting (or +submission of) electronic mail via a preconfigured Mail Transport Agent (MTA). +It may be used as part of a Mail User Agent (MUA) or other program that must +be able to post electronic mail where mail functionality may not be that +program's primary purpose.") + (license (list lgpl2.1+ gpl2+)))) + ;;; mail.scm ends here -- cgit v1.2.3 From f8ae32a26a5f41466f5c7792261fdf2e78d1d35f Mon Sep 17 00:00:00 2001 From: Andy Wingo Date: Tue, 3 Nov 2015 15:46:44 +0100 Subject: gnu: Add esmtp. * gnu/packages/mail.scm (esmtp): New public variable. --- gnu/packages/mail.scm | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 3ba956ef1b..d4f3deca6d 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -30,6 +30,7 @@ #:use-module (gnu packages base) #:use-module (gnu packages backup) #:use-module (gnu packages bash) + #:use-module (gnu packages bison) #:use-module (gnu packages curl) #:use-module (gnu packages cyrus-sasl) #:use-module (gnu packages databases) @@ -43,6 +44,7 @@ #:use-module (gnu packages gsasl) #:use-module (gnu packages gtk) #:use-module (gnu packages guile) + #:use-module (gnu packages flex) #:use-module (gnu packages libcanberra) #:use-module (gnu packages libidn) #:use-module (gnu packages linux) @@ -68,6 +70,7 @@ (expat . license:expat))) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix git-download) #:use-module (guix utils) #:use-module (guix build-system gnu) #:use-module (guix build-system perl) @@ -963,4 +966,42 @@ be able to post electronic mail where mail functionality may not be that program's primary purpose.") (license (list lgpl2.1+ gpl2+)))) +(define-public esmtp + (package + (name "esmtp") + (version "1.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/andywingo/esmtp.git") + (commit "01bf9fc"))) + (sha256 + (base32 + "1ay282rrl92h0m0m8z5zzjnwiiagi7c78aq2qvhia5mw7prwfyw2")) + (file-name (string-append name "-" version "-checkout")))) + (arguments + `(#:phases (modify-phases %standard-phases + (add-before + 'configure 'autoconf + (lambda _ (zero? (system* "autoreconf" "-vfi"))))))) + (build-system gnu-build-system) + (native-inputs + `(("bison" ,bison) + ("flex" ,flex) + ("autoconf" ,autoconf) + ("automake" ,automake) + ("libtool" ,libtool))) + (inputs + `("libesmtp" ,libesmtp)) + (home-page "http://sourceforge.net/projects/esmtp/") + (synopsis "Relay-only mail transfer agent (MTA)") + (description "Esmtp is a simple relay-only mail transfer agent built using +libESMTP. It sends e-mail via a remote SMTP server using credentials from the +user's @file{$HOME/.esmtprc} configuration file; see the @command{esmtprc} man +page for more on configuration. This package also provides minimal +compatibility shims for the @command{sendmail}, @command{mailq}, and +@command{newaliases} commands.") + (license gpl2+))) + ;;; mail.scm ends here -- cgit v1.2.3 From 3009334e3b3c148d7a36c76952fbb32addfa2c07 Mon Sep 17 00:00:00 2001 From: Cyril Roelandt Date: Sat, 10 Oct 2015 22:50:34 +0200 Subject: guix: Add a "pypi-uri" helper method. * guix/download.scm (mirrors): New "pypi" mirror. * guix/build-system/python.scm (pypi-uri): New method. --- guix/build-system/python.scm | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/guix/build-system/python.scm b/guix/build-system/python.scm index aeb04c83a4..1a5d9df473 100644 --- a/guix/build-system/python.scm +++ b/guix/build-system/python.scm @@ -31,7 +31,8 @@ #:export (%python-build-system-modules package-with-python2 python-build - python-build-system)) + python-build-system + pypi-uri)) ;; Commentary: ;; @@ -40,6 +41,13 @@ ;; ;; Code: +(define (pypi-uri name version) + "Return a URI string for the Python package hosted on the Python Package +Index (PyPI) corresponding to NAME and VERSION." + (string-append "https://pypi.python.org/packages/source/" + (string-take name 1) "/" name "/" + name "-" version ".tar.gz")) + (define %python-build-system-modules ;; Build-side modules imported by default. `((guix build python-build-system) -- cgit v1.2.3 From d8bdd38201328b95d849dc95073f842db6eb3b8d Mon Sep 17 00:00:00 2001 From: Cyril Roelandt Date: Mon, 12 Oct 2015 01:03:25 +0200 Subject: import: pypi: Use "pypi-uri" instead of building the URL manually. * guix/import/pypi.scm (make-pypi-sexp): Use "pypi-uri". * tests/pypi.scm: Update the tests accordingly. --- guix/import/pypi.scm | 2 +- tests/pypi.scm | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/guix/import/pypi.scm b/guix/import/pypi.scm index d04a68524d..647ef615e0 100644 --- a/guix/import/pypi.scm +++ b/guix/import/pypi.scm @@ -165,7 +165,7 @@ VERSION, SOURCE-URL, HOME-PAGE, SYNOPSIS, DESCRIPTION, and LICENSE." (version ,version) (source (origin (method url-fetch) - (uri (string-append ,@(factorize-uri source-url version))) + (uri (pypi-uri ,name version)) (sha256 (base32 ,(guix-hash-url temp))))) diff --git a/tests/pypi.scm b/tests/pypi.scm index c772474b82..960b8cd32a 100644 --- a/tests/pypi.scm +++ b/tests/pypi.scm @@ -84,8 +84,7 @@ baz > 13.37") ('version "1.0.0") ('source ('origin ('method 'url-fetch) - ('uri ('string-append "https://example.com/foo-" - 'version ".tar.gz")) + ('uri (pypi-uri "foo" version)) ('sha256 ('base32 (? string? hash))))) -- cgit v1.2.3 From cbaa6a1e41178fa96c6911eb503e6ae1cc191eac Mon Sep 17 00:00:00 2001 From: Cyril Roelandt Date: Sun, 11 Oct 2015 05:16:28 +0200 Subject: gnu: Update python-requests. * gnu/packages/python.scm (python-requests, python2-requests): Bump to 2.8.0. --- gnu/packages/python.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 1055c6f242..70b297d0e1 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -2073,7 +2073,7 @@ with sensible defaults out of the box.") (define-public python-requests (package (name "python-requests") - (version "2.4.0") + (version "2.8.0") (source (origin (method url-fetch) (uri @@ -2082,7 +2082,7 @@ with sensible defaults out of the box.") version ".tar.gz")) (sha256 (base32 - "0gknlfx1wakrrm1zi8gi03x2lzj4dsns0vjw0nsmgqvkphyf01vh")))) + "0yrvj8hfnabrdxds59w6d6887sn5j0jlgpmcq04lk4k0kdc07w5j")))) (build-system python-build-system) (inputs `(("python-setuptools" ,python-setuptools) -- cgit v1.2.3 From 7477fbb1bed276b9cf2252126ad9ae9b2ed7e669 Mon Sep 17 00:00:00 2001 From: Cyril Roelandt Date: Sun, 11 Oct 2015 05:20:08 +0200 Subject: gnu: Add python-mccabe 0.2.1 * gnu/packages/python.scm (python-mccabe-0.2.1, python2-mccabe-0.2.1): New variables. --- gnu/packages/python.scm | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 70b297d0e1..e6b66f088a 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -4895,6 +4895,20 @@ complexity of Python source code.") (define-public python2-mccabe (package-with-python2 python-mccabe)) +(define-public python-mccabe-0.2.1 + (package (inherit python-mccabe) + (version "0.2.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "mccabe" version)) + (sha256 + (base32 + "0fi4a81kr5bcv5p4xgibqr595hyj5dafkqgsmfk96mfy8w71fajs")))))) + +(define-public python2-mccabe-0.2.1 + (package-with-python2 python-mccabe-0.2.1)) + ;; Flake8 2.4.1 requires an older version of pep8. ;; This should be removed ASAP. (define-public python-pep8-1.5.7 -- cgit v1.2.3 From abf21efcae3bb52b463c6b92f7b9132ba1c0bfa8 Mon Sep 17 00:00:00 2001 From: Cyril Roelandt Date: Sun, 11 Oct 2015 05:21:12 +0200 Subject: gnu: Add python-flake8-2.2.4 * gnu/packages/python.scm (python-flake8-2.2.4, python2-flake8-2.2.4): New variables. --- gnu/packages/python.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index e6b66f088a..ce424675bd 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -4979,6 +4979,29 @@ complexity of Python source code.") (define-public python2-flake8 (package-with-python2 python-flake8)) +;; This will only be needed by the python-hacking package and will not be +;; necessary once python-hacking > 0.10.2 is released. +(define-public python-flake8-2.2.4 + (package (inherit python-flake8) + (inputs + `(("python-setuptools" ,python-setuptools) + ("python-pep8" ,python-pep8-1.5.7) + ("python-pyflakes" ,python-pyflakes-0.8.1) + ("python-mccabe" ,python-mccabe-0.2.1) + ("python-mock" ,python-mock) + ("python-nose" ,python-nose))) + (version "2.2.4") + (source + (origin + (method url-fetch) + (uri (pypi-uri "flake8" version)) + (sha256 + (base32 + "1r9wsry4va45h1rck5hxd3vzsg2q3y6lnl6pym1bxvz8ry19jwx8")))))) + +(define-public python2-flake8-2.2.4 + (package-with-python2 python-flake8-2.2.4)) + (define-public python-mistune (package (name "python-mistune") -- cgit v1.2.3 From 2ac9ba6a2914c73ff83dbd7b4ba7b47333476685 Mon Sep 17 00:00:00 2001 From: Cyril Roelandt Date: Mon, 12 Oct 2015 00:47:16 +0200 Subject: gnu: Add python-hacking. * gnu/packages/openstack.scm (python-hacking, python2-hacking): New variables. --- gnu/packages/openstack.scm | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm index 4fd1c803ff..fc868814f7 100644 --- a/gnu/packages/openstack.scm +++ b/gnu/packages/openstack.scm @@ -100,6 +100,40 @@ manner.") (define-public python2-debtcollector (package-with-python2 python-debtcollector)) +(define-public python-hacking + (package + (name "python-hacking") + (version "0.10.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "hacking" version)) + (sha256 + (base32 + "1a310k3dv04jg7zvmk37h2ql7y9kf4hvdxb74bjlwdxgmy6h4wap")))) + (build-system python-build-system) + (propagated-inputs + `(("python-flake8-2.2.4" ,python-flake8-2.2.4) + ("python-mccabe-0.2.1" ,python-mccabe-0.2.1) + ("python-pbr" ,python-pbr) + ("python-pep8-1.5.7" ,python-pep8-1.5.7) + ("python-pyflakes-0.8.1" ,python-pyflakes-0.8.1) + ("python-six" ,python-six))) + (inputs + `(("python-setuptools" ,python-setuptools) + ;; Tests + ("python-testscenarios" ,python-testscenarios))) + (home-page "http://github.com/openstack-dev/hacking") + (synopsis "OpenStack hacking guideline enforcement") + (description + "Python-hacking is a set of flake8 plugins that test and enforce the +@uref{http://docs.openstack.org/developer/hacking/, OpenStack style +guidelines}.") + (license asl2.0))) + +(define-public python2-hacking + (package-with-python2 python-hacking)) + (define-public python-mox3 (package (name "python-mox3") -- cgit v1.2.3 From f4c7dc5582d02de79fcec640046486b86024bf1d Mon Sep 17 00:00:00 2001 From: Cyril Roelandt Date: Mon, 12 Oct 2015 00:48:40 +0200 Subject: gnu: Add python-oslosphinx. * gnu/packages/openstack.scm (python-oslosphinx, python2-oslosphinx): New variables. --- gnu/packages/openstack.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm index fc868814f7..34e482b4cd 100644 --- a/gnu/packages/openstack.scm +++ b/gnu/packages/openstack.scm @@ -465,6 +465,36 @@ in transmittable and storable formats, such as JSON and MessagePack.") (define-public python2-oslo.serialization (package-with-python2 python-oslo.serialization)) +(define-public python-oslosphinx + (package + (name "python-oslosphinx") + (version "3.1.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "oslosphinx" version)) + (sha256 + (base32 + "0zcshdc9s1f7hnvg0fm2ps5rak3dpnm8kqg4i21lknhmsvb7p5cb")))) + (build-system python-build-system) + (propagated-inputs + `(("python-requests" ,python-requests))) + (inputs + `(("python-pbr" ,python-pbr) + ("python-docutils" ,python-docutils) + ("python-hacking" ,python-hacking) + ("python-setuptools" ,python-setuptools) + ("python-sphinx" ,python-sphinx))) + (home-page "http://www.openstack.org/") + (synopsis "OpenStack sphinx extensions and theme") + (description + "This package provides themes and extensions for Sphinx documentation +from the OpenStack project.") + (license asl2.0))) + +(define-public python2-oslosphinx + (package-with-python2 python-oslosphinx)) + (define-public python-oslotest (package (name "python-oslotest") -- cgit v1.2.3 From 2931f46454c3755b8c478db8dbb45e48928080cd Mon Sep 17 00:00:00 2001 From: Cyril Roelandt Date: Mon, 12 Oct 2015 02:06:30 +0200 Subject: gnu: Add python-os-testr. * gnu/packages/openstack.scm (python-ostestr, python2-ostestr): New variables. --- gnu/packages/openstack.scm | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm index 34e482b4cd..d8f3bd364b 100644 --- a/gnu/packages/openstack.scm +++ b/gnu/packages/openstack.scm @@ -206,6 +206,40 @@ tested on Python version 3.2, 2.7 and 2.6.") (define-public python2-mox3 (package-with-python2 python-mox3)) +(define-public python-os-testr + (package + (name "python-os-testr") + (version "0.4.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "os-testr" version)) + (sha256 + (base32 + "0474z0mxb7y3vfk4s097wf1mzji5d135vh27cvlh9q17rq3x9r3w")))) + (build-system python-build-system) + (arguments + ;; os-testr uses itself to run the tests. It seems like pbr writes the + ;; exectuable in the virtualenv when using tox. Not sure how to do this + ;; when building the package. Skip the tests for now. + `(#:tests? #f)) + (propagated-inputs + `(("python-pbr" ,python-pbr) + ("python-subunit" ,python-subunit) + ("python-testtools" ,python-testtools))) + (inputs + `(("python-babel" ,python-babel) + ("python-setuptools" ,python-setuptools))) + (home-page "http://www.openstack.org/") + (synopsis "Testr wrapper to provide functionality for OpenStack projects") + (description + "Os-testr provides developers with a testr wrapper and an output filter + for subunit.") + (license asl2.0))) + +(define-public python2-os-testr + (package-with-python2 python-os-testr)) + (define-public python-pbr (package (name "python-pbr") -- cgit v1.2.3 From a3fc12daa7ee35d78180c21fa5d62616108fef53 Mon Sep 17 00:00:00 2001 From: Cyril Roelandt Date: Mon, 12 Oct 2015 02:31:38 +0200 Subject: gnu: paramiko: Move python-pycrypto to the propagated inputs. * gnu/packages/python.scm (python-paramiko): Move python-pycrypto to the propagated-inputs. --- gnu/packages/python.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index ce424675bd..4e54ef94f5 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -413,9 +413,10 @@ John the Ripper).") (build-system python-build-system) (native-inputs `(("python-setuptools" ,python-setuptools))) + (propagated-inputs + `(("python-pycrypto" ,python-pycrypto))) (inputs - `(("python-ecdsa" ,python-ecdsa) - ("python-pycrypto" ,python-pycrypto))) + `(("python-ecdsa" ,python-ecdsa))) (home-page "http://www.paramiko.org/") (synopsis "SSHv2 protocol library") (description "Paramiko is a python implementation of the SSHv2 protocol, -- cgit v1.2.3 From aee6412ad8525f25b7dabe02ef5af23485f1e196 Mon Sep 17 00:00:00 2001 From: Cyril Roelandt Date: Mon, 12 Oct 2015 23:27:16 +0200 Subject: gnu: Add python-oslo.log. * gnu/packages/openstack.scm (python-oslo.log, python2-oslo.log): New variables. --- gnu/packages/openstack.scm | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm index d8f3bd364b..7581e6a5e7 100644 --- a/gnu/packages/openstack.scm +++ b/gnu/packages/openstack.scm @@ -460,6 +460,47 @@ in an application or library.") (define-public python2-oslo.i18n (package-with-python2 python-oslo.i18n)) +(define-public python-oslo.log + (package + (name "python-oslo.log") + (version "1.6.0") + (source + (origin + (method url-fetch) + (uri (string-append + "https://pypi.python.org/packages/source/o/oslo.log/oslo.log-" + version + ".tar.gz")) + (sha256 + (base32 + "1fhy6yvbd565nv4x4i3ppyrlbmz3yy9d0xsvw5nkqsa7g43nmf8z")))) + (build-system python-build-system) + (propagated-inputs + `(("python-debtcollector" ,python-debtcollector) + ("python-oslo.config" ,python-oslo.config) + ("python-oslo.context" ,python-oslo.context) + ("python-oslo.i18n" ,python-oslo.i18n) + ("python-oslo.utils" ,python-oslo.utils) + ("python-oslo.serialization" ,python-oslo.serialization) + ("python-six" ,python-six))) + (inputs + `(("python-babel" ,python-babel) + ("python-iso8601" ,python-iso8601) + ("python-mock" ,python-mock) + ("python-oslotest" ,python-oslotest) + ("python-pbr" ,python-pbr) + ("python-setuptools" ,python-setuptools))) + (home-page "http://launchpad.net/oslo") + (synopsis "Python logging library of the Oslo project") + (description + "The oslo.log (logging) configuration library provides standardized +configuration for all OpenStack projects. It also provides custom formatters, +handlers and support for context specific logging (like resource id’s etc).") + (license asl2.0))) + +(define-public python2-oslo.log + (package-with-python2 python-oslo.log)) + (define-public python-oslo.serialization (package (name "python-oslo.serialization") -- cgit v1.2.3 From 39d3f2edce74247f09e7461f79e98a24ce18f89e Mon Sep 17 00:00:00 2001 From: Cyril Roelandt Date: Wed, 28 Oct 2015 02:30:51 +0100 Subject: gnu: python-oslotest: move mox3 to the propagated-inputs * gnu/packages/openstack.scm (python-oslotest): move mox3 to the propagated inputs. --- gnu/packages/openstack.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm index 7581e6a5e7..308590e4fe 100644 --- a/gnu/packages/openstack.scm +++ b/gnu/packages/openstack.scm @@ -588,10 +588,10 @@ from the OpenStack project.") (propagated-inputs `(("python-fixtures" ,python-fixtures) ("python-mock" ,python-mock) + ("python-mox3" ,python-mox3) ("python-six" ,python-six))) (inputs `(("python-pbr" ,python-pbr) - ("python-mox3" ,python-mox3) ("python-os-client-config" ,python-os-client-config) ("python-setuptools" ,python-setuptools) ("python-subunit" ,python-subunit) -- cgit v1.2.3 From 465b61fcd638e9dffe2cdd6d52f36bd692fab9a9 Mon Sep 17 00:00:00 2001 From: Cyril Roelandt Date: Mon, 12 Oct 2015 23:33:52 +0200 Subject: gnu: Add python-tempest-lib. * gnu/packages/openstack.scm (python-tempest-lib, python2-tempest-lib): New variables. --- gnu/packages/openstack.scm | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm index 308590e4fe..daec050922 100644 --- a/gnu/packages/openstack.scm +++ b/gnu/packages/openstack.scm @@ -354,6 +354,51 @@ extensions.") (define-public python2-stevedore (package-with-python2 python-stevedore)) +(define-public python-tempest-lib + (package + (name "python-tempest-lib") + (version "0.9.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "tempest-lib" version)) + (sha256 + (base32 + "1s32rpxw86p41ip9nr7zbqxd60mw1cqz2isirby36rh4vl68bfhx")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before + 'check 'pre-check + (lambda _ + (substitute* "tempest_lib/tests/cli/test_execute.py" + (("/bin/ls") (which "ls")))))))) + (propagated-inputs + `(("python-fixtures" ,python-fixtures) + ("python-httplib2" ,python-httplib2) + ("python-iso8601" ,python-iso8601) + ("python-jsonschema" ,python-jsonschema) + ("python-oslo.log" ,python-oslo.log) + ("python-paramiko" ,python-paramiko) + ("python-pbr" ,python-pbr) + ("python-six" ,python-six))) + (inputs + `(("python-babel" ,python-babel) + ("python-mock" ,python-mock) + ("python-os-testr" ,python-os-testr) + ("python-oslotest" ,python-oslotest) + ("python-setuptools" ,python-setuptools))) + (home-page "http://www.openstack.org/") + (synopsis "OpenStack functional testing library") + (description + "Tempest-lib is a functional testing library for OpenStack. It provides +common features used in Tempest.") + (license asl2.0))) + +(define-public python2-tempest-lib + (package-with-python2 python-tempest-lib)) + ;; Packages from the Oslo library (define-public python-oslo.config (package -- cgit v1.2.3 From bab020d7ca50e4153cf24832d119389a37fa8f63 Mon Sep 17 00:00:00 2001 From: Cyril Roelandt Date: Tue, 3 Nov 2015 22:38:49 +0100 Subject: import: pypi: add updater * guix/import/pypi.scm (guix-package->pypi-name, latest-release): New procedures. (%pypi-updater): New variable. * guix/scripts/refresh.scm (%updaters): Add %PYPI-UPDATER. * doc/guix.texi (Invoking guix refresh): Mention PyPI --- doc/guix.texi | 2 ++ guix/import/pypi.scm | 50 +++++++++++++++++++++++++++++++++++++++++++++++- guix/scripts/refresh.scm | 4 +++- 3 files changed, 54 insertions(+), 2 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 996192c0ea..23f9c3c0a9 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -4291,6 +4291,8 @@ the updater for GNU packages; the updater for @uref{http://elpa.gnu.org/, ELPA} packages; @item cran the updater fro @uref{http://cran.r-project.org/, CRAN} packages. +@item pypi +the updater fro @uref{https://pypi.python.org, PyPI} packages. @end table For instance, the following commands only checks for updates of Emacs diff --git a/guix/import/pypi.scm b/guix/import/pypi.scm index 647ef615e0..f1988a7186 100644 --- a/guix/import/pypi.scm +++ b/guix/import/pypi.scm @@ -30,12 +30,16 @@ #:use-module (guix ui) #:use-module (guix utils) #:use-module (guix import utils) + #:use-module ((guix download) #:prefix download:) #:use-module (guix import json) #:use-module (guix packages) + #:use-module (guix upstream) #:use-module (guix licenses) #:use-module (guix build-system python) + #:use-module (gnu packages) #:use-module (gnu packages python) - #:export (pypi->guix-package)) + #:export (pypi->guix-package + %pypi-updater)) (define (pypi-fetch name) "Return an alist representation of the PyPI metadata for the package NAME, @@ -60,6 +64,16 @@ package." (snake-case name) (string-append "python-" (snake-case name)))) +(define (guix-package->pypi-name package) + "Given a Python PACKAGE built from pypi.python.org, return the name of the +package on PyPI." + (let ((source-url (and=> (package-source package) origin-uri))) + ;; The URL has the form: + ;; 'https://pypi.python.org/packages/source/' + + ;; first letter of the package name + + ;; '/' + package name + '/' + ... + (substring source-url 42 (string-rindex source-url #\/)))) + (define (maybe-inputs package-inputs) "Given a list of PACKAGE-INPUTS, tries to generate the 'inputs' field of a package definition." @@ -190,3 +204,37 @@ VERSION, SOURCE-URL, HOME-PAGE, SYNOPSIS, DESCRIPTION, and LICENSE." (license (string->license (assoc-ref* package "info" "license")))) (make-pypi-sexp name version release home-page synopsis description license))))) + +(define (pypi-package? package) + "Return true if PACKAGE is a Python package from PyPI." + + (define (pypi-url? url) + (string-prefix? "https://pypi.python.org/" url)) + + (let ((source-url (and=> (package-source package) origin-uri)) + (fetch-method (and=> (package-source package) origin-method))) + (and (eq? fetch-method download:url-fetch) + (match source-url + ((? string?) + (pypi-url? source-url)) + ((source-url ...) + (any pypi-url? source-url)))))) + +(define (latest-release guix-package) + "Return an for the latest release of GUIX-PACKAGE." + (let* ((pypi-name (guix-package->pypi-name + (specification->package guix-package))) + (metadata (pypi-fetch pypi-name)) + (version (assoc-ref* metadata "info" "version")) + (url (assoc-ref (latest-source-release metadata) "url"))) + (upstream-source + (package guix-package) + (version version) + (urls (list url))))) + +(define %pypi-updater + (upstream-updater + (name 'pypi) + (description "Updater for PyPI packages") + (pred pypi-package?) + (latest latest-release))) diff --git a/guix/scripts/refresh.scm b/guix/scripts/refresh.scm index 0df4121d0a..3984a0bde1 100644 --- a/guix/scripts/refresh.scm +++ b/guix/scripts/refresh.scm @@ -30,6 +30,7 @@ #:use-module ((guix gnu-maintenance) #:select (%gnu-updater)) #:use-module (guix import elpa) #:use-module (guix import cran) + #:use-module (guix import pypi) #:use-module (guix gnupg) #:use-module (gnu packages) #:use-module ((gnu packages commencement) #:select (%final-inputs)) @@ -152,7 +153,8 @@ specified with `--select'.\n")) ;; List of "updaters" used by default. They are consulted in this order. (list %gnu-updater %elpa-updater - %cran-updater)) + %cran-updater + %pypi-updater)) (define (lookup-updater name) "Return the updater called NAME." -- cgit v1.2.3 From d431b232403fbf4d41617ba29664dcd3fff23f96 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Tue, 3 Nov 2015 18:05:43 -0500 Subject: scripts: container: Fix 'exec' command line parsing. * guix/scripts/container/exec.scm (partition-args): Reimplement such that all args up to and including the PID are returned as the first of the two values. --- guix/scripts/container/exec.scm | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/guix/scripts/container/exec.scm b/guix/scripts/container/exec.scm index b842fd38aa..10e70568cc 100644 --- a/guix/scripts/container/exec.scm +++ b/guix/scripts/container/exec.scm @@ -50,10 +50,18 @@ Execute COMMMAND within the container process PID.\n")) (define (partition-args args) "Split ARGS into two lists; one containing the arguments for this program, and the other containing arguments for the command to be executed." - (break (lambda (arg) - ;; Split after the pid argument. - (not (false-if-exception (string->number arg)))) - args)) + (define (number-string? str) + (false-if-exception (string->number str))) + + (let loop ((a '()) + (b args)) + (match b + (() + (values (reverse a) '())) + (((? number-string? head) . tail) + (values (reverse (cons head a)) tail)) + ((head . tail) + (loop (cons head a) tail))))) (define (guix-container-exec . args) (define (handle-argument arg result) -- cgit v1.2.3 From b18812b6a42f822ea5ec25639b42335ffe458a0f Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 3 Nov 2015 22:37:07 +0100 Subject: doc: Explain that 'guix publish' relies on the key pair. * doc/guix.texi (Invoking guix publish): Mention 'guix archive --generate-key'. --- doc/guix.texi | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/doc/guix.texi b/doc/guix.texi index 23f9c3c0a9..73913eea83 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -4877,6 +4877,10 @@ their authenticity and integrity (@pxref{Substitutes}). Because readable by the system administrator, it must be started as root; the @code{--user} option makes it drop root privileges early on. +The signing key pair must be generated before @command{guix publish} is +launched, using @command{guix archive --generate-key} (@pxref{Invoking +guix archive}). + The general syntax is: @example -- cgit v1.2.3 From 4ebdefc07a852842b5c9ff816bd8ed73ea7c9775 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 3 Nov 2015 22:39:18 +0100 Subject: gnu: cmake: Download over HTTPS. Reported by Gxsdnewb on #guix. * gnu/packages/cmake.scm (cmake)[source]: Use 'https' URL. --- gnu/packages/cmake.scm | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/gnu/packages/cmake.scm b/gnu/packages/cmake.scm index 9b8ebde761..a58284ba17 100644 --- a/gnu/packages/cmake.scm +++ b/gnu/packages/cmake.scm @@ -39,12 +39,12 @@ (version "3.3.2") (source (origin (method url-fetch) - (uri (string-append - "http://www.cmake.org/files/v" - (version-major+minor version) - "/cmake-" version ".tar.gz")) + (uri (string-append "https://www.cmake.org/files/v" + (version-major+minor version) + "/cmake-" version ".tar.gz")) (sha256 - (base32 "08pwy9ip9cgwgynhn5vrjw8drw29gijy1rmziq22n65zds6ifnp7")) + (base32 + "08pwy9ip9cgwgynhn5vrjw8drw29gijy1rmziq22n65zds6ifnp7")) (patches (list (search-patch "cmake-fix-tests.patch"))))) (build-system gnu-build-system) (arguments -- cgit v1.2.3 From f194445a65d8f2798c23528d4be8e8ed06f34d79 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 3 Nov 2015 23:23:29 +0100 Subject: Update NEWS. --- NEWS | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) diff --git a/NEWS b/NEWS index e33e2ac179..5b884e31ae 100644 --- a/NEWS +++ b/NEWS @@ -10,6 +10,79 @@ Copyright © 2013, 2014, 2015 Ludovic Courtès Please send Guix bug reports to bug-guix@gnu.org. +* Changes in 0.9.0 (since 0.8.3) + +** Package management + +*** New ‘guix graph’ command, to draw package graphs +*** New ‘guix challenge’ command, to challenge the authenticity of binaries +*** ‘guix environment’ has a new ‘--container’ option +*** ‘guix substitute’ now honors all the specified substitute URLs +*** New ‘guix import cran’ command, to import R packages from CRAN +*** Package descriptions can now include Texinfo markup rendered on the fly +*** ‘guix package’ has a new ‘--install-from-file’ option +*** ‘guix package --search’ shows package outputs +*** ‘guix refresh’ can refresh selected non-GNU package definitions +*** The ‘--ad-hoc’ option of ‘guix environment’ is now positional +*** The ‘--exec’ option of ‘guix environment’ is deprecated; use ‘--’ instead +*** ‘guix build’ has a new ‘--file’ option +*** ‘guix build --log-file’ can now return URLs +*** ‘guix size’ now has a ‘--substitute-urls’ option and is much faster +*** New ‘guix lint’ checkers: ‘formatting’, ‘license’, ‘source-file-name’ +*** Download progress report has been improved +*** Emacs shell-mode completions for ‘guix’ commands updated +*** Emacs: New ‘M-x guix’ popup interface + +** Distribution + +*** New extensible service composition API + +The operating system service API in (gnu services) has been completely +rewritten, significantly improving extensibility and modularity, while +providing a framework that makes it easy to reason about service composition. +Consequently, several sources of redundancy and confusion in +‘operating-system’ declarations have been eliminated. See “Service +Composition” in the manual. + +*** New ‘extension-graph’ and ‘dmd-graph’ sub-commands for ‘guix system’ +*** New ‘container’ sub-command for ‘guix system’ +*** New ‘guix container’ command, to deal with GuixSD containers +*** New ‘list-generations’ sub-command for ‘guix system’ +*** ‘operating-system’ has a new ‘locale-libcs’ field +*** New services: ‘nginx-service’, ‘udisks-service’, ‘guix-publish-service’ +*** ‘dbus-daemon’ now has proper support for lazy service activation +*** ‘wicd-service’ automatically adds Wicd to the system profile +*** ‘slim-service’ automatically adds xterm to the system profile +*** hydra.gnu.org now provides substitutes for ‘armhf-linux’ +*** /run/systemd is mounted as tmpfs by default, for use by elogind +*** ‘glibc’ package no longer contains Bash in its bin/ directory +*** libc now looks for locale data in a versioned sub-directory +*** libc honors the new ‘GUIX_LOCPATH’ environment variable +*** Xfce now defaults to the GNOME icon theme + +** Programming interfaces + +*** Rewritten (gnu services) module; (gnu services …) modules adjusted +*** New Emacs development tools, see “Development” in the manual +*** (guix gexp) provides the declarative ‘computed-file’, ‘program-file’, etc. +*** New (guix upstream) module, for generalized upstream release tracking + +** Noteworthy bug fixes + +*** Passwords in /etc/shadow are SHA512-hashed (http://bugs.gnu.org/21318) +*** daemon: Require a signature for imports made by root + (http://bugs.gnu.org/21354) +*** emacs: Fix guix-guile-program default value (http://bugs.gnu.org/21127) +*** Compressed initrds no longer include timestamps +*** Fix handling of encrypted root partitions (http://bugs.gnu.org/19190) +*** Python now includes tkinter (http://bugs.gnu.org/20889) +*** Memoize the results of ‘package-with-python2’ (http://bugs.gnu.org/21675) +*** Use the daemon's substitute URLs by default (http://bugs.gnu.org/20217) + +** Native language support + +*** Updated translations: da + * Changes in 0.8.3 (since 0.8.2) ** Package management -- cgit v1.2.3 From 3931607e4b215ff8e24d910575c5e80e9e0a38eb Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 3 Nov 2015 23:29:24 +0100 Subject: gnu: guile-ncurses: Mask test failure with ncurses 6.0. Fixes . * gnu/packages/guile.scm (guile-ncurses)[arguments]: Add #:make-flags. --- gnu/packages/guile.scm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index ac9e9c7b42..9698f2b523 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -296,6 +296,10 @@ many readers as needed).") (string-append "--with-guilesitedir=" (assoc-ref %outputs "out") "/share/guile/site/2.0")) + + ;; Work around . + #:make-flags '("XFAIL_TESTS=curses_034_util.test") + #:phases (alist-cons-after 'install 'post-install (lambda* (#:key outputs #:allow-other-keys) -- cgit v1.2.3 From b9d044ef7fd5c011c5b2591c7e76850ddb089cfe Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 3 Nov 2015 23:50:27 +0100 Subject: doc: Fix typos. * doc/guix.texi (Invoking guix refresh): Fix typos. --- doc/guix.texi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 73913eea83..7898a1d3fb 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -4290,9 +4290,9 @@ the updater for GNU packages; @item elpa the updater for @uref{http://elpa.gnu.org/, ELPA} packages; @item cran -the updater fro @uref{http://cran.r-project.org/, CRAN} packages. +the updater for @uref{http://cran.r-project.org/, CRAN} packages; @item pypi -the updater fro @uref{https://pypi.python.org, PyPI} packages. +the updater for @uref{https://pypi.python.org, PyPI} packages. @end table For instance, the following commands only checks for updates of Emacs -- cgit v1.2.3 From d1cb7e9562a1b645fcd374067b4f98577fea3723 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 3 Nov 2015 23:54:06 +0100 Subject: import: pypi: Add missing copyright line. * guix/import/pypi.scm: Add missing copyright line for bab020d. --- guix/import/pypi.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/guix/import/pypi.scm b/guix/import/pypi.scm index f1988a7186..f58efd9915 100644 --- a/guix/import/pypi.scm +++ b/guix/import/pypi.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 David Thompson +;;; Copyright © 2015 Cyril Roelandt ;;; ;;; This file is part of GNU Guix. ;;; -- cgit v1.2.3 From 32728adb958560268b793b4a3e48d94111b5ed2d Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 4 Nov 2015 00:08:30 +0100 Subject: import: pypi: Make downloads silent. * guix/import/pypi.scm (pypi-fetch): Wrap body in 'call-with-output-file' and 'with-error-to-port'. --- guix/import/pypi.scm | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/guix/import/pypi.scm b/guix/import/pypi.scm index f58efd9915..7ca0cc991e 100644 --- a/guix/import/pypi.scm +++ b/guix/import/pypi.scm @@ -45,7 +45,14 @@ (define (pypi-fetch name) "Return an alist representation of the PyPI metadata for the package NAME, or #f on failure." - (json-fetch (string-append "https://pypi.python.org/pypi/" name "/json"))) + ;; XXX: We want to silence the download progress report, which is especially + ;; annoying for 'guix refresh', but we have to use a file port. + (call-with-output-file "/dev/null" + (lambda (null) + (with-error-to-port null + (lambda () + (json-fetch (string-append "https://pypi.python.org/pypi/" + name "/json"))))))) (define (latest-source-release pypi-package) "Return the latest source release for PYPI-PACKAGE." -- cgit v1.2.3 From f856fcb558eb59f9bb0d4b0651bd7508370321f4 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 4 Nov 2015 00:09:49 +0100 Subject: build-system/python: 'package-with-python2' preserves source location. * guix/build-system/python.scm (package-with-explicit-python): Add 'location' field. --- guix/build-system/python.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/guix/build-system/python.scm b/guix/build-system/python.scm index 1a5d9df473..2532210a49 100644 --- a/guix/build-system/python.scm +++ b/guix/build-system/python.scm @@ -92,6 +92,7 @@ NEW-PREFIX; otherwise, NEW-PREFIX is prepended to the name." (if (eq? (package-build-system p) python-build-system) (package (inherit p) + (location (package-location p)) (name (let ((name (package-name p))) (string-append new-prefix (if (string-prefix? old-prefix name) -- cgit v1.2.3 From 718c5dd6e1f009540c6876a0f69ebe4d1268151a Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Tue, 3 Nov 2015 19:01:38 -0500 Subject: gnu: esmtp: Fix 'inputs' field. This is a followup to commit f8ae32a26a5f41466f5c7792261fdf2e78d1d35f. * gnu/packages/mail.scm (esmtp)[inputs]: Add missing parentheses. --- gnu/packages/mail.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index d4f3deca6d..7f7a8e308a 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -993,7 +993,7 @@ program's primary purpose.") ("automake" ,automake) ("libtool" ,libtool))) (inputs - `("libesmtp" ,libesmtp)) + `(("libesmtp" ,libesmtp))) (home-page "http://sourceforge.net/projects/esmtp/") (synopsis "Relay-only mail transfer agent (MTA)") (description "Esmtp is a simple relay-only mail transfer agent built using -- cgit v1.2.3 From e5930e5a13b878f8ea46aa87f0c638421f32ab59 Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Sun, 1 Nov 2015 09:48:35 -0600 Subject: gnu: newt: Build python bindings. * gnu/packages/slang.scm (newt)[outputs]: New field. [arguments]: Add #:make-flags argument. Add 'move-python' phase. --- gnu/packages/slang.scm | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/gnu/packages/slang.scm b/gnu/packages/slang.scm index a00fa7b01e..24ec71ed3e 100644 --- a/gnu/packages/slang.scm +++ b/gnu/packages/slang.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 Ludovic Courtès ;;; Copyright © 2015 Mark H Weaver +;;; Copyright © 2015 Eric Bavier ;;; ;;; This file is part of GNU Guix. ;;; @@ -20,6 +21,7 @@ (define-module (gnu packages slang) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix utils) #:use-module (guix build-system gnu) #:use-module ((guix licenses) #:prefix license:) #:use-module (gnu packages readline) @@ -28,7 +30,8 @@ #:use-module (gnu packages fribidi) #:use-module (gnu packages compression) #:use-module (gnu packages image) - #:use-module (gnu packages pcre)) + #:use-module (gnu packages pcre) + #:use-module (gnu packages python)) (define-public slang (package @@ -85,15 +88,22 @@ slsh, which is part of the S-Lang distribution.") (base32 "07n9f2mqsjfj35wx5ldhvl9sqcjqpcl0g4fdd9mawmny9rihw6vp")))) (build-system gnu-build-system) + (outputs '("out" "python")) (inputs `(("slang" ,slang) ("popt" ,popt) + ("python" ,python) ("fribidi" ,fribidi))) (arguments `(#:tests? #f ; no test suite #:configure-flags ;; Set the correct RUNPATH in binaries. (list (string-append "LDFLAGS=-Wl,-rpath=" %output "/lib")) + #:make-flags + ;; configure does not allow us to override this variable from the + ;; command-line. Fortunately, the Makefile does, so provide it here. + (list (string-append "PYTHONVERS=python" + ,(version-major+minor (package-version python)))) #:phases (modify-phases %standard-phases (add-after @@ -101,7 +111,17 @@ slsh, which is part of the S-Lang distribution.") (lambda _ (substitute* "po/Makefile" (("/usr/bin/install") "install")) - #t))))) + #t)) + (add-after + 'install 'move-python + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (py (assoc-ref outputs "python")) + (ver ,(version-major+minor (package-version python)))) + (mkdir-p (string-append py "/lib")) + (rename-file (string-append out "/lib/python" ver) + (string-append py "/lib/python" ver)) + #t)))))) (home-page "https://fedorahosted.org/newt/") (synopsis "Not Erik's Windowing Toolkit - text mode windowing with slang") (description -- cgit v1.2.3 From b95bcb8ae0a8a4f5c29bce8f6486a91d6d5441cc Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Sun, 1 Nov 2015 09:56:05 -0600 Subject: gnu: Add byobu. * gnu/packages/screen.scm (byobu): New variable. * gnu/packages/patches/byobu-writable-status.patch: New patch. * gnu-system.am (dist_patch_DATA): Add it. --- gnu-system.am | 1 + gnu/packages/patches/byobu-writable-status.patch | 13 ++++++ gnu/packages/screen.scm | 53 ++++++++++++++++++++++++ 3 files changed, 67 insertions(+) create mode 100644 gnu/packages/patches/byobu-writable-status.patch diff --git a/gnu-system.am b/gnu-system.am index c5b87cc6f4..946b77eeff 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -411,6 +411,7 @@ dist_patch_DATA = \ gnu/packages/patches/bitlbee-configure-doc-fix.patch \ gnu/packages/patches/bluez-tests.patch \ gnu/packages/patches/boost-mips-avoid-m32.patch \ + gnu/packages/patches/byobu-writable-status.patch \ gnu/packages/patches/calibre-drop-unrar.patch \ gnu/packages/patches/calibre-no-updates-dialog.patch \ gnu/packages/patches/cdparanoia-fpic.patch \ diff --git a/gnu/packages/patches/byobu-writable-status.patch b/gnu/packages/patches/byobu-writable-status.patch new file mode 100644 index 0000000000..2858280273 --- /dev/null +++ b/gnu/packages/patches/byobu-writable-status.patch @@ -0,0 +1,13 @@ +Skeleton status files are installed read-only. When copying to the config dir +upon initialization, make sure they end up writable. + +--- byobu-5.98/usr/bin/byobu-janitor.in ++++ byobu-5.98/usr/bin/byobu-janitor.in +@@ -82,6 +82,7 @@ + if [ ! -r "$BYOBU_CONFIG_DIR/$f" ]; then + # Copy from skeleton, if possible + cp -f "$BYOBU_PREFIX/share/$PKG/status/$f" "$BYOBU_CONFIG_DIR/$f" ++ chmod +w "$BYOBU_CONFIG_DIR/$f" + # Enable ec2_cost, if we're in ec2 and seeding a new setup + if metadata_available; then + $BYOBU_SED_INLINE -e "s/#ec2_cost/ec2_cost/g" "$($BYOBU_READLINK -f $BYOBU_CONFIG_DIR/$f)" diff --git a/gnu/packages/screen.scm b/gnu/packages/screen.scm index 84cc8c9dc5..fa5235c115 100644 --- a/gnu/packages/screen.scm +++ b/gnu/packages/screen.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013 Cyril Roelandt ;;; Copyright © 2014 Mark H Weaver +;;; Copyright © 2015 Eric Bavier ;;; ;;; This file is part of GNU Guix. ;;; @@ -25,6 +26,8 @@ #:use-module (gnu packages) #:use-module (gnu packages ncurses) #:use-module (gnu packages perl) + #:use-module (gnu packages python) + #:use-module (gnu packages slang) #:use-module (gnu packages texinfo)) (define-public screen @@ -90,3 +93,53 @@ view to show two terminals at once.") allowing you to run a program in an environment that is protected from the controlling terminal and attach to it later.") (license gpl2+))) + +(define-public byobu + (package + (name "byobu") + (version "5.98") + (source + (origin + (method url-fetch) + (uri (string-append "https://launchpad.net/byobu/trunk/" + version "/+download/byobu_" + version ".orig.tar.gz")) + (sha256 + (base32 + "1s8nh4wbds1nh52i0d1hy1b308jjf4siwpq92lna1zh9ll4x71j5")) + (patches (list (search-patch "byobu-writable-status.patch"))))) + (build-system gnu-build-system) + (inputs + `(("python" ,python-wrapper) ;for config and session GUIs + ("python-newt" ,newt "python"))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before + 'configure 'provide-locale + (lambda* (#:key inputs #:allow-other-keys) + (let ((libc (assoc-ref inputs "libc"))) ;implicit input + (substitute* "usr/bin/byobu.in" + (("locale") (string-append libc "/bin/locale")))))) + (add-after + 'install 'wrap-python-scripts + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((python (string-append (assoc-ref inputs "python") + "/bin/python")) + (out (assoc-ref outputs "out")) + (config (string-append out "/bin/byobu-config")) + (select (string-append out "/bin/byobu-select-session"))) + (wrap-program config + `("BYOBU_PYTHON" = (,python)) + `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))) + (wrap-program select + `("BYOBU_PYTHON" = (,python))) + #t)))))) + (home-page "http://byobu.co/index.html") + (synopsis "Text-based window manager and terminal multiplexer") + (description + "Byobu is a Japanese term for decorative, multi-panel screens that serve +as folding room dividers. The Byobu software includes an enhanced profile, +configuration utilities, and system status notifications for the GNU Screen +window manager as well as the Tmux terminal multiplexer.") + (license gpl3+))) -- cgit v1.2.3 From ae3d99e9da4531a49f1163b31de467c549c01848 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 4 Nov 2015 09:02:51 +0200 Subject: gnu: parallel: Update to 20151022. * gnu/packages/parallel.scm (parallel): Update to 20151022. --- gnu/packages/parallel.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/parallel.scm b/gnu/packages/parallel.scm index 38ce709fe1..812fac9ec4 100644 --- a/gnu/packages/parallel.scm +++ b/gnu/packages/parallel.scm @@ -28,7 +28,7 @@ (define-public parallel (package (name "parallel") - (version "20150922") + (version "20151022") (source (origin (method url-fetch) @@ -36,7 +36,7 @@ version ".tar.bz2")) (sha256 (base32 - "05zf3jhjmswfr63lgxw8q26kysd72b8m0zy5jbc94r6appx8bd7j")))) + "07cyq3lapbbxf27b47wv1yjqsz48jidqr595r1pq77ajzy4i7zl4")))) (build-system gnu-build-system) (inputs `(("perl" ,perl))) (home-page "http://www.gnu.org/software/parallel/") -- cgit v1.2.3 From 7e096dd290aa192f4ed8d96ee4712f8deefe9923 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 4 Nov 2015 09:16:04 +0200 Subject: gnu: ucommon: Update to 6.6.2. * gnu/packages/telephony.scm (ucommon): Update to 6.6.2. [license]: Change to gpl3+. --- gnu/packages/telephony.scm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gnu/packages/telephony.scm b/gnu/packages/telephony.scm index 6f90843a18..2cb070dc5f 100644 --- a/gnu/packages/telephony.scm +++ b/gnu/packages/telephony.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2014 John Darrington ;;; Copyright © 2015 Andreas Enge ;;; Copyright © 2015 David Hashe +;;; Copyright © 2015 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -59,20 +60,20 @@ reimplementation.") (define-public ucommon (package (name "ucommon") - (version "6.6.0") + (version "6.6.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/commoncpp/" name "-" version ".tar.gz")) (sha256 (base32 - "09y6rs51wl2851xp5zlxlqqb97xfi39v0yna3njb62swwr1n1ky1")))) + "16haqzq97axiyhgpca95rhr5y5s7fl8b65if5vil7v4lcqxp3hqn")))) (build-system gnu-build-system) (synopsis "Common C++ framework for threaded applications") (description "GNU uCommon C++ is meant as a very light-weight C++ library to facilitate using C++ design patterns even for very deeply embedded applications, such as for systems using uclibc along with posix threading support.") - (license gpl2+) ; plus runtime exception + (license gpl3+) (home-page "http://www.gnu.org/software/commoncpp"))) (define-public ccrtp -- cgit v1.2.3 From 3b6f7a0a6df0634d234b202643cfac049d942602 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 4 Nov 2015 09:27:11 +0200 Subject: gnu: sipwitch: Update to 1.9.14. * gnu/packages/telephony.scm (sipwitch): Update to 1.9.14. --- gnu/packages/telephony.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/telephony.scm b/gnu/packages/telephony.scm index 2cb070dc5f..5c61604191 100644 --- a/gnu/packages/telephony.scm +++ b/gnu/packages/telephony.scm @@ -146,13 +146,13 @@ multiplayer games.") (define-public sipwitch (package (name "sipwitch") - (version "1.9.10") + (version "1.9.14") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/sipwitch/sipwitch-" version ".tar.gz")) (sha256 (base32 - "1ljvg66v1ms3zc81mbg4x5k0pjb2flx35h70msfiajidlcna5xhz")))) + "1mrzl5nakiz613v3ch27k5dj2ykm88dlcr22lqny6dnjyfa9n2ki")))) (build-system gnu-build-system) ;; The configure.ac uses pkg-config but in a kludgy way which breaks when ;; cross-compiling. Among other issues there the program name "pkg-config" -- cgit v1.2.3 From 7b543d1ba449a43f8480e5e0cdf359c4abfa4dd4 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 4 Nov 2015 09:33:47 +0200 Subject: gnu: libassuan: Update to 2.3.0. * gnu/packages/gnupg.scm (libassuan): Update to 2.3.0. --- gnu/packages/gnupg.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index 333e88362b..44e183593a 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm @@ -110,7 +110,7 @@ generation.") (define-public libassuan (package (name "libassuan") - (version "2.2.1") + (version "2.3.0") (source (origin (method url-fetch) @@ -118,7 +118,7 @@ generation.") version ".tar.bz2")) (sha256 (base32 - "1pp2kl5gc2vja41g3wk03h1hgh7gxy6pj354fb5n4lrlg6xqb4ll")))) + "0lh4698pgb2wjrrrbdk14llizad5l74f8pdbg4ma4zq4fbsrkjc7")))) (build-system gnu-build-system) (propagated-inputs `(("libgpg-error" ,libgpg-error) ("pth" ,pth))) -- cgit v1.2.3 From 29852c8a99519954fb085e57d6fe02874a1f6cf0 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 4 Nov 2015 09:46:35 +0200 Subject: gnu: libmicrohttpd: Update to 0.9.45. * gnu/packages/gnunet.scm (libmicrohttpd): Update to 0.9.45. --- gnu/packages/gnunet.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnunet.scm b/gnu/packages/gnunet.scm index 9b273ace7b..6d1a1a86bc 100644 --- a/gnu/packages/gnunet.scm +++ b/gnu/packages/gnunet.scm @@ -111,14 +111,14 @@ tool to extract metadata from a file and print the results.") (define-public libmicrohttpd (package (name "libmicrohttpd") - (version "0.9.44") + (version "0.9.45") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/libmicrohttpd/libmicrohttpd-" version ".tar.gz")) (sha256 (base32 - "07j1p21rvbrrfpxngk8xswzkmjkh94bp1971xfjh1p0ja709qwzj")))) + "0saawnamxjp7nr5gpg7l5fp9y5941m3a7x214ki7ncm9ipsdwx8h")))) (build-system gnu-build-system) (inputs `(("curl" ,curl) -- cgit v1.2.3 From b871a453a0df086eea9f24b3d54c8d2039c7c2e2 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Wed, 4 Nov 2015 15:07:58 +0800 Subject: gnu: zsh: Update to 5.1.1. * gnu/packages/zsh.scm (zsh): Update to 5.1.1. --- gnu/packages/zsh.scm | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/gnu/packages/zsh.scm b/gnu/packages/zsh.scm index 3d3d5889d9..c2f09226bd 100644 --- a/gnu/packages/zsh.scm +++ b/gnu/packages/zsh.scm @@ -29,13 +29,14 @@ (define-public zsh (package (name "zsh") - (version "5.0.7") + (version "5.1.1") (source (origin - (method url-fetch) - (uri (string-append "http://www.zsh.org/pub/zsh-" version - ".tar.gz")) - (sha256 - (base32 "06drwywxa0zm8mizk32wc6ijhpzlyy2mcmskj66bnyggg70s9w23")))) + (method url-fetch) + (uri (string-append "http://www.zsh.org/pub/zsh-" version + ".tar.gz")) + (sha256 + (base32 + "11shllzhq53fg8ngy3bgbmpf09fn2czifg7hsb41nxi3410mpvcl")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--with-tcsetpgrp" "--enable-pcre") #:phases (alist-cons-before @@ -53,6 +54,7 @@ "Test/E01options.ztst" "Test/A05execution.ztst" "Test/A01grammar.ztst" + "Test/A06assign.ztst" "Test/B02typeset.ztst" "Completion/Unix/Command/_init_d" "Util/preconfig") -- cgit v1.2.3 From dee7e58e56856a81d5c82ae9557cd7195df726c0 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Wed, 4 Nov 2015 15:17:03 +0800 Subject: gnu: dosfstools: Update to 3.0.28. * gnu/packages/disk.scm (dosfstools): Update to 3.0.28. --- gnu/packages/disk.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/disk.scm b/gnu/packages/disk.scm index 98b13ae110..a3ecab25c6 100644 --- a/gnu/packages/disk.scm +++ b/gnu/packages/disk.scm @@ -124,7 +124,7 @@ to recover data more efficiently by only reading the necessary blocks.") (define-public dosfstools (package (name "dosfstools") - (version "3.0.27") + (version "3.0.28") (source (origin (method url-fetch) @@ -133,7 +133,7 @@ to recover data more efficiently by only reading the necessary blocks.") name "-" version ".tar.xz")) (sha256 (base32 - "1a2qs5g2zqbk1gzaaf4v3fw3yny6jgbzddpgcamkp3fjifn8wxl5")))) + "1qkya6lald91c8nsf29jwnk0k5v42wlj24gacfdp3wpc8hq935gf")))) (build-system gnu-build-system) (arguments `(#:make-flags (list (string-append "PREFIX=" %output) -- cgit v1.2.3 From 2666a126ef48da1dd5ee8465af0aeaf66216d75f Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Wed, 4 Nov 2015 15:58:48 +0800 Subject: gnu: font-adobe-source-han-sans: Update to 1.004. * gnu/packages/fonts.scm (font-adobe-source-han-sans): Update to 1.004. [license]: Change to 'silofl1.1'. --- gnu/packages/fonts.scm | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm index 4ce8addceb..cfdcac8f7f 100644 --- a/gnu/packages/fonts.scm +++ b/gnu/packages/fonts.scm @@ -390,17 +390,17 @@ for long (8 and more hours per day) work with computers.") (define-public font-adobe-source-han-sans (package (name "font-adobe-source-han-sans") - (version "1.001R") + (version "1.004") (source (origin (method url-fetch) (uri (string-append "https://github.com/adobe-fonts/source-han-sans/archive/" - version ".tar.gz")) - (file-name (string-append "source-han-sans-" version ".tar.gz")) + version "R.tar.gz")) + (file-name (string-append "source-han-sans-" version "R.tar.gz")) (sha256 (base32 - "0cwz3d8jancl0a7vbjxhnh1vgwsjba62lahfjya9yrjkp1ndxlap")))) - (outputs '("out" ; OpenType/CFF Collection (OTC), 119 MiB. + "1ssx0fw90sy6mj8fv8fv4dgzszpqwbmwpjnlx16g4pvaqzdmybbz")))) + (outputs '("out" ; OpenType/CFF Collection (OTC), 121 MiB. "cn" "jp" "kr" "tw")) ; Region-specific Subset OpenType/CFF. (build-system trivial-build-system) (arguments @@ -421,12 +421,13 @@ for long (8 and more hours per day) work with computers.") "/share/fonts/opentype"))))) (setenv "PATH" PATH) (system* tar "xvf" (assoc-ref %build-inputs "source")) - (chdir (string-append "source-han-sans-" ,version)) + (chdir (string-append "source-han-sans-" ,version "R")) (install-opentype-fonts "OTC" "out") (install-opentype-fonts "SubsetOTF/CN" "cn") (install-opentype-fonts "SubsetOTF/JP" "jp") (install-opentype-fonts "SubsetOTF/KR" "kr") - (install-opentype-fonts "SubsetOTF/TW" "tw"))))) + (install-opentype-fonts "SubsetOTF/TW" "tw") + (for-each delete-file (find-files %output "\\.zip$")))))) (native-inputs `(("gzip" ,gzip) ("tar" ,tar))) @@ -439,7 +440,7 @@ And in several OpenType/CFF-based deployment configurations to accommodate various system requirements or limitations. As the name suggests, Pan-CJK fonts are intended to support the characters necessary to render or display text in Simplified Chinese, Traditional Chinese, Japanese, and Korean.") - (license license:asl2.0))) + (license license:silofl1.1))) (define-public font-wqy-zenhei (package -- cgit v1.2.3 From 9e6b9ea4b18defa78b8e1e997e8c834db99a121c Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 4 Nov 2015 09:28:46 +0100 Subject: gnu: clang-runtime: Mark MIPS as unsupported. * gnu/packages/llvm.scm (clang-runtime-from-llvm): Add 'supported-systems' field. --- gnu/packages/llvm.scm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm index 18e0ca9c76..d5e5ed65ad 100644 --- a/gnu/packages/llvm.scm +++ b/gnu/packages/llvm.scm @@ -87,7 +87,10 @@ of programming tools as well as libraries with equivalent functionality.") functions for C and C++ programs. It also provides header files that allow C and C++ source code to interface with the \"sanitization\" passes of the clang compiler. In LLVM this library is called \"compiler-rt\".") - (license ncsa))) + (license ncsa) + + ;; doesn't list MIPS as supported. + (supported-systems (delete "mips64el-linux" %supported-systems)))) (define (clang-from-llvm llvm clang-runtime hash) (package -- cgit v1.2.3 From 4f14c628dc805d07fa01f25d054f030c8179c99b Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 4 Nov 2015 09:37:22 +0100 Subject: gnu: american-fuzzy-lop: Really build against QEMU 2.3.0. * gnu/packages/debug.scm (qemu-2.3.0): New variable. (american-fuzzy-lop): Use it instead of QEMU-HEADLESS. --- gnu/packages/debug.scm | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/gnu/packages/debug.scm b/gnu/packages/debug.scm index b098832681..1e0034c100 100644 --- a/gnu/packages/debug.scm +++ b/gnu/packages/debug.scm @@ -141,6 +141,24 @@ intended for use by people who discover and report bugs in compilers and other tools that process C/C++ code.") (license ncsa))) +(define qemu-2.3.0 + (package + (inherit qemu-headless) + (version "2.3.0") + (source (origin + (method url-fetch) + (uri (string-append + "http://wiki.qemu-project.org/download/qemu-" + version ".tar.bz2")) + (sha256 + (base32 + "120m53c3p28qxmfzllicjzr8syjv6v4d9rsyrgkp7gnmcgvvgfmn")))) + (arguments + ;; XXX: Disable tests because of GTester's rejection of duplicate test + ;; names, which wasn't addressed in this version of QEMU. + `(#:tests? #f + ,@(package-arguments qemu-headless))))) + (define-public american-fuzzy-lop (let ((machine (match (or (%current-target-system) (%current-system)) @@ -164,11 +182,11 @@ tools that process C/C++ code.") (inputs `(("custom-qemu" ;; The afl-qemu tool builds qemu 2.3.0 with a few patches applied. - ,(package (inherit qemu-headless) + ,(package (inherit qemu-2.3.0) (name "afl-qemu") (inputs `(("afl-src" ,source) - ,@(package-inputs qemu-headless))) + ,@(package-inputs qemu-2.3.0))) ;; afl only supports using a single afl-qemu-trace executable, so ;; we only build qemu for the native target. (arguments @@ -176,7 +194,7 @@ tools that process C/C++ code.") (list (string-append "--target-list=" ,machine "-linux-user")) #:modules ((srfi srfi-1) ,@%gnu-build-system-modules) - ,@(substitute-keyword-arguments (package-arguments qemu-headless) + ,@(substitute-keyword-arguments (package-arguments qemu-2.3.0) ((#:phases qemu-phases) `(modify-phases ,qemu-phases (add-after -- cgit v1.2.3 From 00c16d5b84f11d4eea3d06178d93cfc27bf3a931 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 4 Nov 2015 09:55:16 +0100 Subject: gnu: csound: Link against libmvec on x86_64. * gnu/packages/audio.scm (csound)[arguments]: New field. --- gnu/packages/audio.scm | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 92ece7a47e..db3f91273c 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -320,6 +320,12 @@ tools (analyzer, mono/stereo tools, crossovers).") (base32 "0a1sni6lr7qpwywpggbkp0ia3h9bwwgf9i87gsag8ra2h30v82hd")))) (build-system cmake-build-system) + (arguments + ;; Work around this error on x86_64 with libc 2.22+: + ;; libmvec.so.1: error adding symbols: DSO missing from command line + (if (string-prefix? "x86_64" (or (%current-target-system) (%current-system))) + '(#:configure-flags '("-DCMAKE_EXE_LINKER_FLAGS=-lmvec")) + '())) (inputs `(("alsa-lib" ,alsa-lib) ("boost" ,boost) -- cgit v1.2.3 From 5ffea4776d33e73922aa5fdbb7ac4dafbfbf15c5 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 4 Nov 2015 11:53:41 +0200 Subject: gnu: libassuan: Update to 2.4.0. * gnu/packages/gnupg.scm (libassuan): Update to 2.4.0. --- gnu/packages/gnupg.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index 44e183593a..ad653aaca9 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm @@ -110,7 +110,7 @@ generation.") (define-public libassuan (package (name "libassuan") - (version "2.3.0") + (version "2.4.0") (source (origin (method url-fetch) @@ -118,7 +118,7 @@ generation.") version ".tar.bz2")) (sha256 (base32 - "0lh4698pgb2wjrrrbdk14llizad5l74f8pdbg4ma4zq4fbsrkjc7")))) + "08l4261r56kv7w9qyq021s905bplh2m8h52qlkq46m7w8y9y932d")))) (build-system gnu-build-system) (propagated-inputs `(("libgpg-error" ,libgpg-error) ("pth" ,pth))) -- cgit v1.2.3 From 316d65be0ca41c277349c4f0127513f98dbec680 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 4 Nov 2015 10:27:12 +0100 Subject: doc: Back up on the claim of encrypted root partitions. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reported by 宋文武 at . * doc/guix.texi (System Installation): Comment out encrypted root partition commands. * gnu/system/examples/desktop.tmpl (mapped-devices): Remove. (file-systems): Refer to the root by label. * NEWS: Adjust. --- NEWS | 3 ++- doc/guix.texi | 23 ++++++++++++----------- gnu/system/examples/desktop.tmpl | 12 ++---------- 3 files changed, 16 insertions(+), 22 deletions(-) diff --git a/NEWS b/NEWS index 5b884e31ae..269f0b8b42 100644 --- a/NEWS +++ b/NEWS @@ -74,7 +74,8 @@ Composition” in the manual. (http://bugs.gnu.org/21354) *** emacs: Fix guix-guile-program default value (http://bugs.gnu.org/21127) *** Compressed initrds no longer include timestamps -*** Fix handling of encrypted root partitions (http://bugs.gnu.org/19190) +*** Partly fix handling of encrypted root partitions + (http://bugs.gnu.org/19190) *** Python now includes tkinter (http://bugs.gnu.org/20889) *** Memoize the results of ‘package-with-python2’ (http://bugs.gnu.org/21675) *** Use the daemon's substitute URLs by default (http://bugs.gnu.org/20217) diff --git a/doc/guix.texi b/doc/guix.texi index 7898a1d3fb..7e5f9c774b 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -5310,23 +5310,24 @@ Setting up network access is almost always a requirement because the image does not contain all the software and tools that may be needed. @item -Unless this has already been done, you must partition, optionally -encrypt, and then format the target partitions. +Unless this has already been done, you must partition, and then format +the target partition. Preferably, assign partitions a label so that you can easily and reliably refer to them in @code{file-system} declarations (@pxref{File Systems}). This is typically done using the @code{-L} option of @command{mkfs.ext4} and related commands. -A typical command sequence may be: - -@example -# fdisk /dev/sdX -@dots{} Create partitions etc.@dots{} -# cryptsetup luksFormat /dev/sdX1 -# cryptsetup open --type luks /dev/sdX1 my-partition -# mkfs.ext4 -L my-root /dev/mapper/my-partition -@end example +@c FIXME: Uncomment this once GRUB fully supports encrypted roots. +@c A typical command sequence may be: +@c +@c @example +@c # fdisk /dev/sdX +@c @dots{} Create partitions etc.@dots{} +@c # cryptsetup luksFormat /dev/sdX1 +@c # cryptsetup open --type luks /dev/sdX1 my-partition +@c # mkfs.ext4 -L my-root /dev/mapper/my-partition +@c @end example The installation image includes Parted (@pxref{Overview,,, parted, GNU Parted User Manual}), @command{fdisk}, Cryptsetup/LUKS for disk diff --git a/gnu/system/examples/desktop.tmpl b/gnu/system/examples/desktop.tmpl index 7a479d1123..ee660e0589 100644 --- a/gnu/system/examples/desktop.tmpl +++ b/gnu/system/examples/desktop.tmpl @@ -13,17 +13,9 @@ ;; Assuming /dev/sdX is the target hard disk, and "root" is ;; the label of the target root file system. (bootloader (grub-configuration (device "/dev/sdX"))) - - ;; Here we assume that /dev/sdX1 contains a LUKS-encrypted - ;; root partition created with 'cryptsetup luksFormat'. - (mapped-devices (list (mapped-device - (source "/dev/sdX1") - (target "root-partition") - (type luks-device-mapping)))) - - ;; Mount said encrypted partition. (file-systems (cons (file-system - (device "/dev/mapper/root-partition") + (device "root") + (title 'label) (mount-point "/") (type "ext4")) %base-file-systems)) -- cgit v1.2.3 From f6082affda1dc598199a4bad85dba2d79826159d Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 4 Nov 2015 11:12:03 +0100 Subject: Update NEWS. --- NEWS | 184 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 184 insertions(+) diff --git a/NEWS b/NEWS index 269f0b8b42..b6c5e23fc6 100644 --- a/NEWS +++ b/NEWS @@ -50,6 +50,7 @@ Composition” in the manual. *** New ‘list-generations’ sub-command for ‘guix system’ *** ‘operating-system’ has a new ‘locale-libcs’ field *** New services: ‘nginx-service’, ‘udisks-service’, ‘guix-publish-service’ +*** ‘%desktop-services’ now includes Polkit, GeoClue, elogind, UDisks, and more *** ‘dbus-daemon’ now has proper support for lazy service activation *** ‘wicd-service’ automatically adds Wicd to the system profile *** ‘slim-service’ automatically adds xterm to the system profile @@ -59,6 +60,187 @@ Composition” in the manual. *** libc now looks for locale data in a versioned sub-directory *** libc honors the new ‘GUIX_LOCPATH’ environment variable *** Xfce now defaults to the GNOME icon theme +*** 543 new packages + +abduco, accountsservice, american-fuzzy-lop, ansible, arandr, attic, +autobuild, bash-minimal, bash-static, bio-blastxmlparser, bio-locus, +bioperl-minimal, bioruby, bitcoin-core, bspwm, byobu, cabal-install, cityhash, +clang-runtime, clang-runtime, cm, cmus, conky, coreutils-minimal, cpphs, +cvs-fast-export, d-feet, deeptools, diffoscope, dosbox, dvtm, emacs-butler, +emacs-dash, emacs-debbugs, emacs-deferred, emacs-f, emacs-flycheck, +emacs-let-alist, emacs-ob-ipython, emacs-s, emacs-typo, enblend-enfuse, +epiphany, esmtp, ethtool, evilwm, exfat-utils, express-beta-diversity, +extra-cmake-modules, extundelete, fastcap, fasthenry, figlet, file-roller, +flann, font-anonymous-pro, font-gnu-unifont, font-inconsolata, font-tex-gyre, +font-ubuntu, frescobaldi, fuse-exfat, gajim, gamine, gerbv, gexiv2, +ghc-adjunctions, ghc-aeson, ghc-alex, ghc-annotated-wl-pprint, +ghc-ansi-terminal, ghc-ansi-wl-pprint, ghc-appar, ghc-async, ghc-attoparsec, +ghc-auto-update, ghc-base-compat, ghc-base-orphans, ghc-base64-bytestring, +ghc-bifunctors, ghc-blaze-builder, ghc-blaze-html, ghc-blaze-markup, +ghc-byteorder, ghc-bytestring-builder, ghc-cereal, ghc-cgi, ghc-charset, +ghc-cheapskate, ghc-clock, ghc-cmdargs, ghc-comonad, ghc-contravariant, +ghc-cookie, ghc-css-text, ghc-data-default, ghc-data-default-class, +ghc-data-default-instances-base, ghc-data-default-instances-containers, +ghc-data-default-instances-dlist, ghc-data-default-instances-old-locale, +ghc-digest, ghc-distributive, ghc-dlist, ghc-doctest, ghc-easy-file, +ghc-exceptions, ghc-extensible-exceptions, ghc-extra, ghc-fast-logger, +ghc-fingertree, ghc-free, ghc-generic-deriving, ghc-gluraw, ghc-glut, +ghc-haddock, ghc-haddock-api, ghc-haddock-library, ghc-half, ghc-happy, +ghc-haskell-src, ghc-haskell-src-exts, ghc-hspec, ghc-hspec-core, +ghc-hspec-expectations, ghc-hspec-meta, ghc-html, ghc-http-types, ghc-iproute, +ghc-kan-extensions, ghc-lens, ghc-lifted-base, ghc-logict, ghc-mmorph, +ghc-monad-control, ghc-multipart, ghc-nats, ghc-objectname, ghc-old-locale, +ghc-old-time, ghc-opengl, ghc-openglraw, ghc-optparse-applicative, +ghc-parsers, ghc-pcre-light, ghc-polyparse, ghc-prelude-extras, +ghc-profunctors, ghc-quickcheck-instances, ghc-quickcheck-io, +ghc-quickcheck-unicode, ghc-reducers, ghc-reflection, ghc-regex-base, +ghc-regex-compat, ghc-regex-posix, ghc-regex-tdfa-rc, ghc-resourcet, ghc-safe, +ghc-scientific, ghc-sdl, ghc-sdl-image, ghc-sdl-mixer, ghc-semigroupoids, +ghc-semigroups, ghc-setenv, ghc-silently, ghc-simple-reflect, ghc-smallcheck, +ghc-statevar, ghc-streaming-commons, ghc-stringbuilder, ghc-stringsearch, +ghc-tagged, ghc-tagsoup, ghc-tasty, ghc-tasty-ant-xml, ghc-tasty-golden, +ghc-tasty-hunit, ghc-tasty-quickcheck, ghc-tasty-smallcheck, ghc-temporary, +ghc-temporary-rc, ghc-transformers-base, ghc-transformers-compat, +ghc-trifecta, ghc-unbounded-delays, ghc-uniplate, ghc-unix-compat, +ghc-unix-time, ghc-utf8-string, ghc-vault, ghc-vector-binary-instances, +ghc-void, ghc-wai, ghc-wai-extra, ghc-wai-logger, ghc-word8, ghc-x11, +ghc-x11-xft, ghc-xhtml, ghc-xml, ghc-xmonad-contrib, ghc-xss-sanitize, +ghc-zip-archive, glibc-hurd, glibc-hurd-headers, gmtp, graphios, gtk-doc, +guile-next, guile-present, guile-redis, guile-rsvg, guile-wisp, gusb, gvfs, +gzochi, haunt, hlint, hscolour, hspec-discover, hurd-minimal, i3-wm, i3status, +ibus-libpinyin, idris, ifstatus, keepassx, klick, kwindowsystem, lablgtk, +libatasmart, libchamplain, libchop, libconfuse, libcue, libesmtp, libev, +libfm, libfm-extra, libgee, libgudev, liblxqt, libndp, libpano13, libpinyin, +libraw, libusb-compat, libyajl, lxqt-common, lxqt-session, lxrandr, lxtask, +lxterminal, lz4, mafft, manaplus, mars, menu-cache, minixml, mosaik, +nestopia-ue, newt, non-sequencer, ntk, openimageio, opusfile, patches, pbzip2, +pcmanfm, pcre2, pd, pelican, perl-czplib, perl-date-manip, perl-finance-quote, +perl-html-element-extended, perl-html-tableextract, perl-pod-simple, physfs, +pidgin, pidgin-otr, pigz, po4a, poppler-qt4, pwgen, python-appdirs, +python-bandit, python-blinker, python-ccm, python-chardet, +python-cryptography, python-cryptography-vectors, python-debian, +python-debtcollector, python-ecdsa, python-file, python-fonttools, +python-gnupg, python-hacking, python-httplib2, python-idna, +python-ipython-genutils, python-iso8601, python-joblib, python-libarchive-c, +python-llfuse, python-ly, python-minimal, python-minimal, python-mistune, +python-monotonic, python-mox3, python-msgpack, python-nbxmpp, python-netaddr, +python-numexpr, python-os-client-config, python-os-testr, python-oslo.config, +python-oslo.context, python-oslo.i18n, python-oslo.log, +python-oslo.serialization, python-oslo.utils, python-oslosphinx, +python-oslotest, python-paramiko, python-passlib, python-pathpy, python-patsy, +python-pbr, python-pbr, python-pexpect, python-pickleshare, python-pip, +python-poppler-qt4, python-pretend, python-prettytable, python-ptyprocess, +python-py-bcrypt, python-pyasn1, python-pyopenssl, python-pytest-runner, +python-requests-mock, python-setuptools-scm, python-simplegeneric, +python-statsmodels, python-stevedore, python-tempest-lib, python-terminado, +python-tlsh, python-traitlets, python-webob, python-wrapt, python-xlrd, +python2-appdirs, python2-bandit, python2-blinker, python2-ccm, +python2-chardet, python2-cryptography, python2-cryptography-vectors, +python2-debian, python2-debtcollector, python2-ecdsa, python2-file, +python2-fonttools, python2-gnupg, python2-hacking, python2-httplib2, +python2-idna, python2-ipaddress, python2-ipython-genutils, python2-iso8601, +python2-joblib, python2-keyring, python2-libarchive-c, python2-llfuse, +python2-mistune, python2-monotonic, python2-mox3, python2-msgpack, +python2-nbxmpp, python2-netaddr, python2-notmuch, python2-numexpr, +python2-os-client-config, python2-os-testr, python2-oslo.config, +python2-oslo.context, python2-oslo.i18n, python2-oslo.log, +python2-oslo.serialization, python2-oslo.utils, python2-oslosphinx, +python2-oslotest, python2-paramiko, python2-passlib, python2-pathpy, +python2-patsy, python2-pbr, python2-pbr, python2-pexpect, python2-pickleshare, +python2-pip, python2-pretend, python2-prettytable, python2-ptyprocess, +python2-py-bcrypt, python2-pyasn1, python2-pycrypto, python2-pyopenssl, +python2-pytest-runner, python2-requests-mock, python2-setuptools-scm, +python2-simplegeneric, python2-statsmodels, python2-stevedore, +python2-tempest-lib, python2-terminado, python2-tlsh, python2-traitlets, +python2-webob, python2-wrapt, python2-xlrd, r-assertthat, r-bh, r-chron, +r-codetools, r-colorspace, r-crayon, r-data.table, r-dbi, r-dichromat, +r-digest, r-dplyr, r-evaluate, r-formatr, r-ggplot2, r-gtable, r-highr, +r-htmltools, r-htmlwidgets, r-httpuv, r-jsonlite, r-knitr, r-labeling, +r-lazyeval, r-magrittr, r-markdown, r-memoise, r-microbenchmark, r-mime, +r-munsell, r-plyr, r-proto, r-pryr, r-qtl, r-r6, r-rcolorbrewer, r-rcpp, +r-reshape2, r-scales, r-servr, r-stringi, r-stringr, r-testthat, r-yaml, rage, +raincat, redis, rest, rfkill, rpm, ruby-activesupport, ruby-atoulme-antwrap, +ruby-bio-logger, ruby-builder, ruby-byebug, ruby-coderay, ruby-cucumber-core, +ruby-diff-lcs, ruby-docile, ruby-ffi, ruby-formatador, ruby-gherkin3, +ruby-json, ruby-libxml, ruby-listen, ruby-log4r, ruby-lumberjack, +ruby-method-source, ruby-mini-portile, ruby-minitar, ruby-nenv, ruby-nokogiri, +ruby-notiffany, ruby-orderedhash, ruby-ox, ruby-permutation, ruby-pg, +ruby-pry, ruby-rack, ruby-rb-inotify, ruby-rjb, ruby-rubygems-tasks, +ruby-shellany, ruby-shindo, ruby-simplecov-html, ruby-thor, ruby-thread-safe, +ruby-tzinfo, ruby-xml-simple, ruby-yard, sassc, scmutils, seqmagick, shotwell, +shroud, simple-scan, squashfs-tools, sxhkd, tinc, udisks, unison, vsearch, +webkitgtk-gtk2, wesnoth, wpa-supplicant-minimal, xcb-util-cursor, xcompmgr, +xfce4-pulseaudio-plugin, xjackfreak, xlsfonts, xmonad, yapet, yelp, +yelp-tools, yelp-xsl, znc, zynaddsubfx + +*** 268 package updates + +abcde-2.7, arb-2.7.0, ardour-4.2, at-spi2-atk-2.18.1, at-spi2-core-2.18.1, +ath9k-htc-firmware-1.4.0, atk-2.18.0, atkmm-2.24.1, autogen-5.18.6, +avidemux-2.6.10, bedtools-2.24.0, binutils-2.25.1, +binutils-static-stripped-tarball-2.25.1, bison-3.0.4, bluez-5.35, +bundler-1.10.6, c-reduce-2.3.0, cairomm-1.12.0, calcurse-4.0.0, +calibre-2.41.0, camlp5-6.14, cgal-4.6.3, chess-6.2.2, clang-3.6.2, +claws-mail-3.13.0, cmake-3.3.2, complexity-1.3, conkeror-1.0pre1.20150730, +cpio-2.12, crossmap-0.2.1, csound-6.05, cups-2.1.0, cups-filters-1.0.75, +cups-minimal-2.1.0, curl-7.45.0, dbus-1.10.0, dbus-1.10.0.a, ddrescue-1.20, +dmd-0.2.01, docbook-xml-4.4, docbook-xml-4.5, dosfstools-3.0.28, +e2fsck-static-1.42.13, e2fsprogs-1.42.13, efl-1.15.2, eigen-3.2.6, +elementary-1.15.2, emotion-generic-players-1.15.0, enlightenment-0.19.12, +eudev-3.1.5, evas-generic-loaders-1.15.0, feh-2.14, ffmpeg-2.8, fish-2.2.0, +flint-2.5.2, fontconfig-2.11.94, freeglut-3.0.0, freeimage-3.17.0, +freeipmi-1.4.11, gcc-4.9.3, gcc-4.9.3, gcc-4.9.3, gcc-5.2.0, +gcc-toolchain-5.2.0, gcj-4.9.3, gdb-7.10, gdk-pixbuf-2.32.1, geiser-0.8.1, +gettext-0.19.6, ghc-7.10.2, ghc-hashable-1.2.3.3, ghc-http-4000.2.20, +ghc-mtl-2.2.1, ghc-network-2.6.2.1, ghc-network-uri-2.6.0.3, +ghc-primitive-0.6.1.0, ghc-quickcheck-2.8.1, ghc-syb-0.6, ghc-text-1.2.1.3, +ghc-vector-0.11.0.0, giflib-5.1.1, git-2.5.0, git-manpages-2.5.0, +git-modes-1.2.0, glib-2.46.1, glib-networking-2.46.1, glibc-2.22, +glibc-locales-2.22, glibc-stripped-tarball-2.22, glibc-utf8-locales-2.22, +glibmm-2.46.1, global-6.5.1, glpk-4.56, gnome-desktop-3.16.2, +gnome-themes-standard-3.16.2, gnu-pw-mgr-1.6, gnumach-headers-1.6, +gnupg-2.1.9, gnurl-7.45.0, gnutls-3.4.5, gobject-introspection-1.46.0, +gp2c-0.0.9pl3, graphite2-1.3.3, graphviz-2.38.0, +gsettings-desktop-schemas-3.18.0, gsl-2.0, gst-libav-1.6.1, +gst-plugins-base-1.6.1, gst-plugins-good-1.6.1, gst-plugins-ugly-1.6.1, +gstreamer-1.6.1, gtk+-3.18.2, gtkmm-3.18.0, guile-ssh-0.8.0, guitarix-0.33.0, +guix-0.8.3, guix-0.8.3.b485f75, harfbuzz-1.0.5, help2man-1.47.2, +hurd-headers-0.7, ibus-1.5.11, icecat-38.3.0-gnu1, icedtea6-1.13.8, +icedtea7-2.6.2, imagemagick-6.9.2-1, intltool-0.51.0, json-glib-1.0.4, +leptonica-1.72, less-481, libbluray-0.9.0, libcap-2.24, libdrm-2.4.65, +libdvdcss-1.3.99, libedit-20150325-3.1, libgcrypt-1.6.3, libgsf-1.14.34, +libidn-1.32, libinput-0.21.0, libmicrohttpd-0.9.45, libmtp-1.1.9, +libotr-4.1.0, libpcap-1.7.4, libpciaccess-0.13.4, libqtxdg-1.2.0, +librsvg-2.40.11, libsigc++-2.6.1, libsoup-2.52.1, libssh-0.6.5, libtiff-4.0.5, +libtorrent-0.13.6, libva-1.6.1, lilypond-2.19.27, links-2.12, +linux-libre-4.2.5, linux-pam-1.2.1, lirc-0.9.3, llvm-3.6.2, lua-5.2.3, +lzo-2.09, magit-2.3.0, mesa-11.0.3, mesa-headers-11.0.3, mig-1.6, +minetest-0.4.13, mosh-1.2.5, mpg123-1.22.4, mplayer-1.2, mpv-0.11.0, +mu-0.9.13, mutt-1.5.24, ncdu-1.11, ncmpcpp-0.6.7, ncurses-6.0, node-0.12.7, +notmuch-0.20.2, ntp-4.2.8p4, ocaml-4.02.3, offlineimap-6.5.7, openblas-0.2.15, +openjpeg-2.1.0, openldap-2.4.42, openssh-7.0p1, orc-0.4.24, pango-1.38.1, +pangomm-2.38.1, parallel-20151022, pavucontrol-3.0, +pbtranscript-tofu-2.2.3.8f5467fe6, pciutils-3.3.1, perf-4.2.5, +perl-xml-parser-2.44, pixman-0.32.8, poppler-0.37.0, powertop-2.7, +python-cffi-1.2.1, python-dateutil-2.2, python-fixtures-1.3.1, +python-ipython-3.2.1, python-pyflakes-0.9.2, python-pygobject-3.18.0, +python-pyqt-4.11.4, python-pyqt-5.5, python-requests-2.8.0, +python-scipy-0.16.0, python-setuptools-18.3.1, python-sip-4.16.9, +python-six-1.9.0, python2-cffi-1.2.1, python2-dateutil-2.2, +python2-fixtures-1.3.1, python2-ipython-3.2.1, python2-pygobject-3.18.0, +python2-pyqt-4.11.4, python2-pyqt-5.5, python2-requests-2.8.0, +python2-scipy-0.16.0, python2-setuptools-18.3.1, python2-sip-4.16.9, +python2-six-1.9.0, qemu-2.4.0.1, qemu-headless-2.4.0.1, qpdf-5.1.3, +qsynth-0.4.0, qt-5.5.1, r-3.2.2, racket-6.2.1, ratpoison-1.4.8, readline-6.3, +retroarch-1.2.2, ripperx-2.8.0, rtorrent-0.9.6, ruby-2.2.3, ruby-arel-6.0.3, +ruby-bacon-1.2.0, ruby-i18n-0.7.0, samtools-1.2, sfarklib-2.24, sfml-2.3.2, +shadow-4.2.1, sipwitch-1.9.14, sqlite-3.8.11.1, subversion-1.8.14, +synergy-1.7.4, tcl-8.6.4, tcpdump-4.7.4, teckit-2.5.4, terminology-0.9.1, +texlive-2015, texlive-bin-2015, texlive-texmf-2015, tiled-0.13.1, tk-8.6.4, +tmux-2.0, tor-0.2.6.10, ucommon-6.6.2, units-2.12, util-linux-2.27, +vala-0.30.0, valgrind-3.11.0, vlc-2.2.1, webkitgtk-2.8.5, weechat-1.3, +wine-1.7.52, wpa-supplicant-2.5, xapian-1.2.21, xterm-320, +youtube-dl-2015.11.01, zsh-5.1.1 ** Programming interfaces @@ -79,6 +261,8 @@ Composition” in the manual. *** Python now includes tkinter (http://bugs.gnu.org/20889) *** Memoize the results of ‘package-with-python2’ (http://bugs.gnu.org/21675) *** Use the daemon's substitute URLs by default (http://bugs.gnu.org/20217) +*** ‘guix system --no-grub’ works correctly for ‘init’ and ‘reconfigure’ + (http://bugs.gnu.org/21068) ** Native language support -- cgit v1.2.3 From 47b3124a8ecf3cf5826ee909776936a3107350f3 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 4 Nov 2015 11:59:46 +0100 Subject: tests: Skip 'program-file' test when shebang is too long. * tests/gexp.scm ("program-file"): Skip when SHEBANG is too long. --- tests/gexp.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/gexp.scm b/tests/gexp.scm index 4860a8e79c..87c774782a 100644 --- a/tests/gexp.scm +++ b/tests/gexp.scm @@ -600,7 +600,7 @@ ;; If we're going to hit the silly shebang limit (128 chars on Linux-based ;; systems), then skip the following test. -(test-skip (if (> (string-length shebang) 127) 1 0)) +(test-skip (if (> (string-length shebang) 127) 2 0)) (test-assertm "gexp->script" (mlet* %store-monad ((n -> (random (expt 2 50))) -- cgit v1.2.3 From c8855b991880897b2658dc90164e29c96e2aeb3a Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 4 Nov 2015 12:10:11 +0100 Subject: tests: Use the canonical current directory name. * tests/guix-environment-container.sh (current_dir): New variable. Use it when grepping "mounts". --- tests/guix-environment-container.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/guix-environment-container.sh b/tests/guix-environment-container.sh index 141fd160a7..8b6f7cd38f 100644 --- a/tests/guix-environment-container.sh +++ b/tests/guix-environment-container.sh @@ -69,7 +69,8 @@ guix environment --container --ad-hoc --bootstrap guile-bootstrap \ cat "$tmpdir/mounts" test `wc -l < $tmpdir/mounts` -eq 3 -grep -e "$PWD$" $tmpdir/mounts # current directory +current_dir="`cd $PWD; pwd -P`" +grep -e "$current_dir$" $tmpdir/mounts # current directory grep $(guix build guile-bootstrap) $tmpdir/mounts grep -e "$NIX_STORE_DIR/.*-bash" $tmpdir/mounts # bootstrap bash -- cgit v1.2.3 From 43c082b3618f667ee163dfc6831e6afd1890bf63 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 4 Nov 2015 14:07:26 +0100 Subject: gnu: guix: Update to 0.9.0. * gnu/packages/package-management.scm (guix-0.8.3): Rename to... (guix-0.9.0): ... this. Adjust users. (guix): Set to GUIX-0.9.0. --- gnu/packages/package-management.scm | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 1c480be67e..d7dbb7a3b1 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -60,17 +60,17 @@ arch "-linux" "/20131110/guile-2.0.9.tar.xz"))) -(define-public guix-0.8.3 +(define-public guix-0.9.0 (package (name "guix") - (version "0.8.3") + (version "0.9.0") (source (origin (method url-fetch) (uri (string-append "ftp://alpha.gnu.org/gnu/guix/guix-" version ".tar.gz")) (sha256 (base32 - "14n0nkj0ckhdwhghx1pml99hbjr1xdkn8x145j0xp1357vqlisnz")))) + "0h573z2br0bf43sxyzia9xlm03n3y43zg1snds3c2piq2m6kabrn")))) (build-system gnu-build-system) (arguments `(#:configure-flags (list @@ -196,8 +196,8 @@ the Nix package manager.") ;; Note: use a short commit id; when using the long one, the limit on socket ;; file names is exceeded while running the tests. (let ((commit "b485f75")) - (package (inherit guix-0.8.3) - (version (string-append "0.8.3." commit)) + (package (inherit guix-0.9.0) + (version (string-append "0.9.0." commit)) (source (origin (method git-fetch) (uri (git-reference @@ -208,7 +208,7 @@ the Nix package manager.") "1frn74y5c3n91qxs5b3sxbr8ai43s6svlb2djfnp7nqbr1ax3mph")) (file-name (string-append "guix-" version "-checkout")))) (arguments - (substitute-keyword-arguments (package-arguments guix-0.8.3) + (substitute-keyword-arguments (package-arguments guix-0.9.0) ((#:configure-flags flags) ;; Set 'DOT_USER_PROGRAM' to the empty string so we don't keep a ;; reference to Graphviz, whose closure is pretty big (too big for @@ -232,9 +232,9 @@ the Nix package manager.") ("texinfo" ,texinfo) ("graphviz" ,graphviz) ("help2man" ,help2man) - ,@(package-native-inputs guix-0.8.3)))))) + ,@(package-native-inputs guix-0.9.0)))))) -(define-public guix guix-devel) +(define-public guix guix-0.9.0) (define-public nix (package -- cgit v1.2.3 From f8c0c8e4bfadf999fac1822a6ac3ce7d22139aee Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 4 Nov 2015 18:22:21 +0100 Subject: gnu: guix: Update development snapshot. * gnu/packages/package-management.scm (guix-devel): Update to commit 43c082b. (guix): Set to GUIX-DEVEL. --- gnu/packages/package-management.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index d7dbb7a3b1..ae52ab8300 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -195,7 +195,7 @@ the Nix package manager.") ;; ;; Note: use a short commit id; when using the long one, the limit on socket ;; file names is exceeded while running the tests. - (let ((commit "b485f75")) + (let ((commit "43c082b")) (package (inherit guix-0.9.0) (version (string-append "0.9.0." commit)) (source (origin @@ -205,7 +205,7 @@ the Nix package manager.") (commit commit))) (sha256 (base32 - "1frn74y5c3n91qxs5b3sxbr8ai43s6svlb2djfnp7nqbr1ax3mph")) + "12ffsyrabsisyf5va4p2csvig6r8g4b7w1dxgsy446l4pjdl7ndh")) (file-name (string-append "guix-" version "-checkout")))) (arguments (substitute-keyword-arguments (package-arguments guix-0.9.0) @@ -234,7 +234,7 @@ the Nix package manager.") ("help2man" ,help2man) ,@(package-native-inputs guix-0.9.0)))))) -(define-public guix guix-0.9.0) +(define-public guix guix-devel) (define-public nix (package -- cgit v1.2.3 From 388908a08b92d1bd1109e27099743fd0cb9975be Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 4 Nov 2015 19:54:56 +0200 Subject: gnu: irssi: Update to 0.8.17. * gnu/packages/irssi.scm (irssi): Update to 0.8.17. --- gnu/packages/irssi.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/irssi.scm b/gnu/packages/irssi.scm index c97fd07e05..c722f0ba27 100644 --- a/gnu/packages/irssi.scm +++ b/gnu/packages/irssi.scm @@ -30,14 +30,14 @@ (define-public irssi (package (name "irssi") - (version "0.8.15") + (version "0.8.17") (source (origin (method url-fetch) (uri (string-append "http://www.irssi.org/files/irssi-" version ".tar.bz2")) (sha256 (base32 - "19m0aah9bhc70dnhh7kpydbsz5n35l0l9knxav1df0sic3xicbf1")))) + "01v82q2pfiimx6lh271kdvgp8hl4pahc3srg04fqzxgdsb5015iw")))) (build-system gnu-build-system) (arguments `(#:phases -- cgit v1.2.3 From cc016b4ce3f6cedb884de1ca9c5ab9b16d5366b1 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 4 Nov 2015 20:15:30 +0200 Subject: gnu: irssi: Build with SSL support. * gnu/packages/irssi.scm (irssi)[inputs]: Add openssl. --- gnu/packages/irssi.scm | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/gnu/packages/irssi.scm b/gnu/packages/irssi.scm index c722f0ba27..44bc6bd3a2 100644 --- a/gnu/packages/irssi.scm +++ b/gnu/packages/irssi.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013 Cyril Roelandt +;;; Copyright © 2015 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -17,7 +18,7 @@ ;;; along with GNU Guix. If not, see . (define-module (gnu packages irssi) - #:use-module (guix licenses) + #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix build-system gnu) @@ -25,7 +26,8 @@ #:use-module (gnu packages glib) #:use-module (gnu packages ncurses) #:use-module (gnu packages perl) - #:use-module (gnu packages pkg-config)) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages tls)) (define-public irssi (package @@ -54,7 +56,8 @@ %standard-phases))) (inputs `(("glib" ,glib) - ("ncurses" ,ncurses))) + ("ncurses" ,ncurses) + ("openssl" ,openssl))) (native-inputs `(("pkg-config" ,pkg-config) ("perl" ,perl))) @@ -63,4 +66,4 @@ (description "Irssi is a terminal based IRC client for UNIX systems. It also supports SILC and ICB protocols via plugins.") - (license gpl2+))) + (license license:gpl2+))) -- cgit v1.2.3 From 5453de3dd88f28d5b3e7cff96df2c583e57bb23b Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 4 Nov 2015 23:54:12 +0100 Subject: import: hackage: Fix invalid use of 'leave'. Reported by Paul van der Walt in . * guix/scripts/import/hackage.scm (guix-import-hackage): Add missing argument in call to 'leave'. --- guix/scripts/import/hackage.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/guix/scripts/import/hackage.scm b/guix/scripts/import/hackage.scm index 8c4e640bf3..97d042be3e 100644 --- a/guix/scripts/import/hackage.scm +++ b/guix/scripts/import/hackage.scm @@ -134,9 +134,9 @@ from standard input~%"))))) ((package-name) (run-importer package-name opts (lambda () - (leave - (_ "failed to download cabal file for package '~a'~%")) - package-name))) + (leave (_ "failed to download cabal file \ +for package '~a'~%") + package-name)))) (() (leave (_ "too few arguments~%"))) ((many ...) -- cgit v1.2.3 From 67c920fa5d9a77543e0e950fdf26e2f502b656d8 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 5 Nov 2015 12:01:26 +0100 Subject: edit: Lift helper procedure. * guix/scripts/edit.scm (package->location-specification): New procedure, with code formerly... (guix-edit): ... here. Use it. --- guix/scripts/edit.scm | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/guix/scripts/edit.scm b/guix/scripts/edit.scm index 30146af10b..fa10a16f31 100644 --- a/guix/scripts/edit.scm +++ b/guix/scripts/edit.scm @@ -59,6 +59,15 @@ Start $EDITOR to edit the definitions of PACKAGE...\n")) file path)) absolute-file-name)) +(define (package->location-specification package) + "Return the location specification for PACKAGE for a typical editor command +line." + (let ((loc (package-location package))) + (list (string-append "+" + (number->string + (location-line loc))) + (search-path* %load-path (location-file loc))))) + (define (guix-edit . args) (with-error-handling @@ -71,10 +80,4 @@ Start $EDITOR to edit the definitions of PACKAGE...\n")) (package-full-name package)))) packages) (apply execlp (%editor) (%editor) - (append-map (lambda (package) - (let ((loc (package-location package))) - (list (string-append "+" - (number->string - (location-line loc))) - (search-path* %load-path (location-file loc))))) - packages))))) + (append-map package->location-specification packages))))) -- cgit v1.2.3 From 650f1615de325f332dbf3d993acc8a16648d795e Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 5 Nov 2015 12:04:26 +0100 Subject: edit: Improve error reporting when $EDITOR is not found. Reported by Benno Evers at . * guix/scripts/edit.scm (guix-edit): Wrap 'execl' call in 'catch'. Provide more meaningful error message. --- guix/scripts/edit.scm | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/guix/scripts/edit.scm b/guix/scripts/edit.scm index fa10a16f31..0509148c4d 100644 --- a/guix/scripts/edit.scm +++ b/guix/scripts/edit.scm @@ -79,5 +79,12 @@ line." (leave (_ "source location of package '~a' is unknown~%") (package-full-name package)))) packages) - (apply execlp (%editor) (%editor) - (append-map package->location-specification packages))))) + + (catch 'system-error + (lambda () + (apply execlp (%editor) (%editor) + (append-map package->location-specification packages))) + (lambda args + (let ((errno (system-error-errno args))) + (leave (_ "failed to launch '~a': ~a~%") + (%editor) (strerror errno)))))))) -- cgit v1.2.3 From a09f6edbf95276552866218b70948bd41db47555 Mon Sep 17 00:00:00 2001 From: Tomáš Čech Date: Thu, 5 Nov 2015 00:48:17 +0100 Subject: gnu: wayland: Update to 1.9.0. * gnu/packages/freedesktop.scm (wayland): Update to 1.9.0. --- gnu/packages/freedesktop.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index 28883d1e99..3db7ff7835 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -239,14 +239,14 @@ Python.") (define-public wayland (package (name "wayland") - (version "1.8.1") + (version "1.9.0") (source (origin (method url-fetch) (uri (string-append "http://wayland.freedesktop.org/releases/" name "-" version ".tar.xz")) (sha256 (base32 - "1j3gfzn8i0xhk3j34mwb2srrscjxfyi279jhyq80mz943j6r6z7i")))) + "1yhy62vkbq8j8c9zaa6yzvn75cd99kfa8n2zfdwl80x019r711ww")))) (build-system gnu-build-system) (native-inputs `(("doxygen" ,doxygen) -- cgit v1.2.3 From 00dfc97c36954307b4eb6ebfdbe7d3c238f5a874 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 2 Nov 2015 22:03:25 +0100 Subject: gnu: zynaddsubfx: Remove SSE flags from generic target. * gnu/packages/music.scm (zynaddsubfx)[arguments]: Add phase to move SSE compiler flags from generic to specific targets. --- gnu/packages/music.scm | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 5dcb5449a2..baedf939e4 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -784,6 +784,19 @@ browser.") (base32 "01c4v5lbzard6y00cjq3b6a50cafqwfwibzng9gdsajczhnbkqz2")))) (build-system cmake-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + ;; Move SSE compiler optimization flags from generic target to + ;; athlon64 and core2 targets, because otherwise the build would fail + ;; on non-Intel machines. + (add-after 'unpack 'remove-sse-flags-from-generic-target + (lambda _ + (substitute* "src/CMakeLists.txt" + (("-msse -msse2 -mfpmath=sse") "") + (("-march=(athlon64|core2)" flag) + (string-append flag " -msse -msse2 -mfpmath=sse"))) + #t))))) (inputs `(("liblo" ,liblo) ("ntk" ,ntk) -- cgit v1.2.3 From 6c2b26e21eb95b48616aee1613bbf80d02e22495 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 6 Nov 2015 15:22:26 +0100 Subject: gnu: Add BLESS. * gnu/packages/bioinformatics.scm (bless): New variable. Co-authored-by: Diane Trout --- gnu/packages/bioinformatics.scm | 83 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 2e048bdabc..fe55e91a91 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -44,6 +44,7 @@ #:use-module (gnu packages linux) #:use-module (gnu packages machine-learning) #:use-module (gnu packages maths) + #:use-module (gnu packages mpi) #:use-module (gnu packages ncurses) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) @@ -524,6 +525,88 @@ confidence to have in an alignment.") license:lgpl2.0+ license:asl2.0)))) +(define-public bless + (package + (name "bless") + (version "1p02") + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/bless-ec/bless.v" + version ".tgz")) + (sha256 + (base32 + "0rm0gw2s18dqwzzpl3c2x1z05ni2v0xz5dmfk3d33j6g4cgrlrdd")) + (modules '((guix build utils))) + (snippet + `(begin + ;; Remove bundled boost, pigz, zlib, and .git directory + ;; FIXME: also remove bundled sources for google-sparsehash, + ;; murmurhash3, kmc once packaged. + (delete-file-recursively "boost") + (delete-file-recursively "pigz") + (delete-file-recursively "zlib") + (delete-file-recursively ".git") + #t)))) + (build-system gnu-build-system) + (arguments + '(#:tests? #f ;no "check" target + #:make-flags + (list (string-append "ZLIB=" + (assoc-ref %build-inputs "zlib") + "/lib/libz.a") + (string-append "LDFLAGS=" + (string-join '("-lboost_filesystem" + "-lboost_system" + "-lboost_iostreams" + "-lz" + "-fopenmp" + "-std=c++11")))) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'do-not-build-bundled-pigz + (lambda* (#:key inputs outputs #:allow-other-keys) + (substitute* "Makefile" + (("cd pigz/pigz-2.3.3; make") "")) + #t)) + (add-after 'unpack 'patch-paths-to-executables + (lambda* (#:key inputs outputs #:allow-other-keys) + (substitute* "parse_args.cpp" + (("kmc_binary = .*") + (string-append "kmc_binary = \"" + (assoc-ref outputs "out") + "/bin/kmc\";")) + (("pigz_binary = .*") + (string-append "pigz_binary = \"" + (assoc-ref inputs "pigz") + "/bin/pigz\";"))) + #t)) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((bin (string-append (assoc-ref outputs "out") "/bin/"))) + (for-each (lambda (file) + (install-file file bin)) + '("bless" "kmc/bin/kmc")) + #t))) + (delete 'configure)))) + (native-inputs + `(("perl" ,perl))) + (inputs + `(("openmpi" ,openmpi) + ("boost" ,boost) + ("pigz" ,pigz) + ("zlib" ,zlib))) + (home-page "http://sourceforge.net/projects/bless-ec/wiki/Home/") + (synopsis "Bloom-filter-based error correction tool for NGS reads") + (description + "@dfn{Bloom-filter-based error correction solution for high-throughput +sequencing reads} (BLESS) uses a single minimum-sized bloom filter is a +correction tool for genomic reads produced by @dfn{Next-generation +sequencing} (NGS). BLESS produces accurate correction results with much less +memory compared with previous solutions and is also able to tolerate a higher +false-positive rate. BLESS can extend reads like DNA assemblers to correct +errors at the end of reads.") + (license license:gpl3+))) + (define-public bowtie (package (name "bowtie") -- cgit v1.2.3 From 32e14fc1fbba7db529fc744adaa7bb860e74fec2 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Thu, 5 Nov 2015 12:20:03 -0600 Subject: gnu: guile: Add guile-irregex. * gnu/packages/guile.scm (guile-irregex): New variable. --- gnu/packages/guile.scm | 79 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index 9698f2b523..eb378740f4 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -482,6 +482,85 @@ slightly from miniKanren mainline. See http://minikanren.org/ for more on miniKanren generally.") (license expat))) +(define-public guile-irregex + (package + (name "guile-irregex") + (version "0.9.3") + (source (origin + (method url-fetch) + (uri (string-append + "http://synthcode.com/scheme/irregex/irregex-" + version + ".tar.gz")) + (sha256 + (base32 + "1b8jl7bycyl2ssp6sb1j24pp9hvqyxm85ki9bmwd50glyyjs5zay")))) + (build-system gnu-build-system) + (arguments + `(#:modules ((guix build utils) + (ice-9 match) + (guix build gnu-build-system)) + #:phases + (modify-phases %standard-phases + (delete 'check) + (delete 'configure) + (delete 'build) + (delete 'check) + (replace 'install + (lambda* (#:key inputs outputs #:allow-other-keys) + (begin + (use-modules (guix build utils) + (ice-9 match)) + (let* ((out (assoc-ref outputs "out")) + (module-dir (string-append out "/share/guile/site/2.0")) + (source (assoc-ref inputs "source")) + (doc (string-append out "/share/doc/guile-irregex/")) + (guild (string-append (assoc-ref %build-inputs "guile") + "/bin/guild"))) + ;; Make installation directories. + (mkdir-p (string-append module-dir "/rx/source")) + (mkdir-p doc) + + ;; Compile .scm files and install. + (setenv "GUILE_AUTO_COMPILE" "0") + + (for-each (lambda (copy-info) + (match copy-info + ((src-file dest-file-basis) + (let* ((dest-file (string-append + module-dir dest-file-basis + ".scm")) + (go-file (string-append + module-dir dest-file-basis + ".go"))) + ;; Install source module. + (copy-file src-file + dest-file) + ;; Install compiled module. + (unless (zero? (system* guild "compile" + "-L" (getcwd) + "-o" go-file + src-file)) + (error (format #f "Failed to compile ~s to ~s!" + src-file dest-file))))))) + '(("irregex-guile.scm" "/rx/irregex") + ("irregex.scm" "/rx/source/irregex") + ;; Not really reachable via guile's packaging system, + ;; but nice to have around + ("irregex-utils.scm" "/rx/source/irregex-utils"))) + + ;; Also copy over the README. + (install-file "irregex.html" doc) + #t))))))) + (inputs + `(("guile" ,guile-2.0))) + (home-page "http://synthcode.com/scheme/irregex") + (synopsis "S-expression based regular expressions") + (description + "Irregex is an s-expression based alternative to your classic +string-based regular expressions. It implements SRFI 115 and is deeply +inspired by the SCSH regular expression system.") + (license bsd-3))) ;; There are two guile-gdbm packages, one using the FFI and one with ;; direct C bindings, hence the verbose name. -- cgit v1.2.3 From 4daa31270a3059e260787d9bf240469b40ec21a5 Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Thu, 5 Nov 2015 17:23:04 +0300 Subject: Update NEWS. * NEWS: Mention 'guix-build-log-mode'. --- NEWS | 1 + 1 file changed, 1 insertion(+) diff --git a/NEWS b/NEWS index b6c5e23fc6..922265cffa 100644 --- a/NEWS +++ b/NEWS @@ -32,6 +32,7 @@ Please send Guix bug reports to bug-guix@gnu.org. *** Download progress report has been improved *** Emacs shell-mode completions for ‘guix’ commands updated *** Emacs: New ‘M-x guix’ popup interface +*** Emacs: modes for viewing build logs (‘guix-build-log-mode’) ** Distribution -- cgit v1.2.3 From b9f1f3e2aac9ea8243ea2ec1499b0e060c435a0d Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Thu, 5 Nov 2015 19:39:58 +0300 Subject: gnu: manaplus: Update to 1.5.10.24. * gnu/packages/games.scm (manaplus): Update to 1.5.10.24. --- gnu/packages/games.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index f522db3073..f71e51bef5 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -1178,7 +1178,7 @@ is programmed in Haskell.") (define-public manaplus (package (name "manaplus") - (version "1.5.9.26") + (version "1.5.10.24") (source (origin (method url-fetch) (uri (string-append @@ -1186,7 +1186,7 @@ is programmed in Haskell.") version "/manaplus-" version ".tar.xz")) (sha256 (base32 - "070ms1cv7q88284pqh66lfhacckgv7m9s8z9009k2laypibx7vs6")))) + "1bjxdyicli1pq65a6l4m84ksqwn9i90xa7yly9sfcrwq5mm1zimb")))) (build-system gnu-build-system) (arguments '(#:configure-flags -- cgit v1.2.3 From 4c60ce4a6beea4be6cc1a9aecc28f73ccb338597 Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Thu, 5 Nov 2015 19:47:57 +0300 Subject: gnu: msmtp: Update to 1.6.2. * gnu/packages/mail.scm (msmtp): Update to 1.6.2. [arguments]: Use '--with-tls' configure flag instead of '--with-ssl' (deprecated). --- gnu/packages/mail.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 7f7a8e308a..b27eed8bfe 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -561,14 +561,14 @@ which can add many functionalities to the base client.") (define-public msmtp (package (name "msmtp") - (version "1.4.32") + (version "1.6.2") (source (origin (method url-fetch) (uri (string-append - "mirror://sourceforge/msmtp/msmtp-" version ".tar.bz2")) + "mirror://sourceforge/msmtp/msmtp-" version ".tar.xz")) (sha256 (base32 - "122z38pv4q03w3mbnhrhg4w85a51258sfdg2ips0b6cgwz3wbw1b")))) + "12c7ljahb06pgn8yvvw526xvr11vnr6d4nr0apylixddpxycsvig")))) (build-system gnu-build-system) (inputs `(("libidn" ,libidn) @@ -581,7 +581,7 @@ which can add many functionalities to the base client.") (arguments `(#:configure-flags (list "--with-libgsasl" "--with-libidn" - "--with-ssl=gnutls"))) + "--with-tls=gnutls"))) (synopsis "Simple and easy to use SMTP client with decent sendmail compatibility") (description -- cgit v1.2.3 From 4d75e03ac9cdea393dd29758fbfe8ec003326f7c Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 6 Nov 2015 22:29:02 +0100 Subject: gnu: bless: Correct indentation and home-page. * gnu/packages/bioinformatics.scm (bless): Fix indentation. [home-page]: Replace broken URL. --- gnu/packages/bioinformatics.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index fe55e91a91..f13e4050c4 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -535,8 +535,8 @@ confidence to have in an alignment.") version ".tgz")) (sha256 (base32 - "0rm0gw2s18dqwzzpl3c2x1z05ni2v0xz5dmfk3d33j6g4cgrlrdd")) - (modules '((guix build utils))) + "0rm0gw2s18dqwzzpl3c2x1z05ni2v0xz5dmfk3d33j6g4cgrlrdd")) + (modules '((guix build utils))) (snippet `(begin ;; Remove bundled boost, pigz, zlib, and .git directory @@ -595,7 +595,7 @@ confidence to have in an alignment.") ("boost" ,boost) ("pigz" ,pigz) ("zlib" ,zlib))) - (home-page "http://sourceforge.net/projects/bless-ec/wiki/Home/") + (home-page "http://sourceforge.net/p/bless-ec/wiki/Home/") (synopsis "Bloom-filter-based error correction tool for NGS reads") (description "@dfn{Bloom-filter-based error correction solution for high-throughput -- cgit v1.2.3 From 59698c2c6c0f3471c4fecca03f44dc969f67d95f Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 6 Nov 2015 16:07:07 +0100 Subject: gnu: Add guile-gnunet. * gnu/packages/gnunet.scm (guile-gnunet): New variable. --- gnu/packages/gnunet.scm | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/gnu/packages/gnunet.scm b/gnu/packages/gnunet.scm index 6d1a1a86bc..aac1567cf3 100644 --- a/gnu/packages/gnunet.scm +++ b/gnu/packages/gnunet.scm @@ -29,6 +29,7 @@ #:use-module (gnu packages glib) #:use-module (gnu packages gnupg) #:use-module (gnu packages groff) + #:use-module (gnu packages guile) #:use-module (gnu packages gstreamer) #:use-module (gnu packages libidn) #:use-module (gnu packages image) @@ -45,6 +46,7 @@ #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix git-download) #:use-module (guix build-system gnu)) (define-public libextractor @@ -250,3 +252,35 @@ applications. In particular, GNUnet now includes the GNU Name System, a privacy-preserving, decentralized public key infrastructure.") (license license:gpl3+) (home-page "https://gnunet.org/"))) + +(define-public guile-gnunet ;GSoC 2015! + (let ((commit "383eac2")) + (package + (name "guile-gnunet") + (version (string-append "0.0." commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "git://git.sv.gnu.org/guix/gnunet.git") + (commit commit))) + (sha256 + (base32 + "0k6mn28isjlxrnvbnblab3nh2xqx1b7san8k98kc35ap9lq0iz8w")))) + (build-system gnu-build-system) + (arguments + '(#:phases (modify-phases %standard-phases + (add-before 'configure 'bootstrap + (lambda _ + (zero? (system* "autoreconf" "-vfi"))))))) + (native-inputs `(("pkg-config" ,pkg-config) + ("autoconf" ,(autoconf-wrapper)) + ("automake" ,automake))) + (inputs `(("guile" ,guile-2.0) + ("gnunet" ,gnunet))) + (synopsis "Guile bindings for GNUnet services") + (description + "This package provides Guile bindings to the client libraries of various +GNUnet services, including the @dfn{identity} and @dfn{file sharing} +services.") + (home-page "http://gnu.org/software/guix") + (license license:gpl3+)))) -- cgit v1.2.3 From 235cba85286455901e591dc010a3e6c17d57b21c Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 6 Nov 2015 23:42:24 +0100 Subject: doc: Make the ifconfig command more visible. Suggested by Adam Pribyl . * doc/guix.texi (System Installation): Move the 'ifconfig' command to an @example. --- doc/guix.texi | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 7e5f9c774b..fd80a30f51 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -5293,14 +5293,19 @@ To install the system, you would: @enumerate @item -Configure the network, by running @command{ifconfig eno1 up && dhclient -eno1} (to get an automatically assigned IP address from the wired +Configure the network, by running: + +@example +ifconfig eno1 up && dhclient eno1 +@end example + +to get an automatically assigned IP address from the wired network interface controller@footnote{ @c http://cgit.freedesktop.org/systemd/systemd/tree/src/udev/udev-builtin-net_id.c#n20 The name @code{eno1} is for the first on-board Ethernet controller. The interface name for an Ethernet controller that is in the first slot of the first PCI bus, for instance, would be @code{enp1s0}. Use -@command{ifconfig -a} to list all the available network interfaces.}), +@command{ifconfig -a} to list all the available network interfaces.}, or using the @command{ifconfig} command. The system automatically loads drivers for your network interface -- cgit v1.2.3 From 53ec8d48907b7d13c67ba76da9b85a8bbd97fc38 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 6 Nov 2015 23:49:40 +0100 Subject: gnu: Add GPM. * gnu/packages/linux.scm (gpm): New variable. --- gnu/packages/linux.scm | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index aa2fc0283b..a75ea2f05e 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -2410,3 +2410,46 @@ id=0B7CLI-REKbE3VTdaa0EzTkhYdU0") "This package provides a FUSE-based file system that provides read and write access to exFAT devices.") (license gpl2+))) + +(define-public gpm + (package + (name "gpm") + (version "1.20.7") + (source (origin + (method url-fetch) + (uri (string-append + "http://www.nico.schottelius.org/software/gpm/archives/gpm-" + version ".tar.bz2")) + (sha256 + (base32 + "13d426a8h403ckpc8zyf7s2p5rql0lqbg2bv0454x0pvgbfbf4gh")))) + (build-system gnu-build-system) + (arguments + '(#:phases (modify-phases %standard-phases + (add-before 'configure 'bootstrap + (lambda _ + ;; The tarball was not generated with 'make dist' so we + ;; need to bootstrap things ourselves. + (and (zero? (system* "./autogen.sh")) + (begin + (patch-makefile-SHELL "Makefile.include.in") + #t))))) + + ;; Make sure programs find libgpm.so. + #:configure-flags (list (string-append "LDFLAGS=-Wl,-rpath=" + (assoc-ref %outputs "out") + "/lib")))) + (native-inputs + `(("texinfo" ,texinfo) + ("bison" ,bison) + ("flex" ,flex) + ("autoconf" ,autoconf) + ("automake" ,automake) + ("libtool" ,libtool))) + (home-page "http://www.nico.schottelius.org/software/gpm/") + (synopsis "Mouse support for the Linux console") + (description + "The GPM (general-purpose mouse) daemon is a mouse server for +applications running on the Linux console. It allows users to select items +and copy/paste text in the console and in xterm.") + (license gpl2+))) -- cgit v1.2.3 From 20ed2f7aa042726d67361054843575fc054d7935 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Fri, 6 Nov 2015 20:57:14 -0500 Subject: gnu: nspr: Update to 4.10.10. * gnu/packages/gnuzilla.scm (nspr): Update to 4.10.10. --- gnu/packages/gnuzilla.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index 3e933e7ec5..830efb5e93 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -95,7 +95,7 @@ in C/C++.") (define-public nspr (package (name "nspr") - (version "4.10.8") + (version "4.10.10") (source (origin (method url-fetch) (uri (string-append @@ -103,7 +103,7 @@ in C/C++.") version "/src/nspr-" version ".tar.gz")) (sha256 (base32 - "05aaakz24ba2hdzlqx8qamwrsp7gni1acms8mr6m432wa9yaazjh")))) + "01ria9wk6329hxqsy75p9dkxiqkq4nkz0jjzll7hslih3jbi8dil")))) (build-system gnu-build-system) (native-inputs `(("perl", perl))) -- cgit v1.2.3 From fe88f636e3bfbbf143bd87f57e0d65a2e532d7dd Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Fri, 6 Nov 2015 21:27:10 -0500 Subject: gnu: nss: Update to 3.20.1. * gnu/packages/gnuzilla.scm (nss): Update to 3.20.1. [source]: Switch to https URI. --- gnu/packages/gnuzilla.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index 830efb5e93..07453989df 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -129,18 +129,18 @@ in the Mozilla clients.") (define-public nss (package (name "nss") - (version "3.19.2") + (version "3.20.1") (source (origin (method url-fetch) (uri (let ((version-with-underscores (string-join (string-split version #\.) "_"))) (string-append - "ftp://ftp.mozilla.org/pub/mozilla.org/security/nss/" + "https://ftp.mozilla.org/pub/mozilla.org/security/nss/" "releases/NSS_" version-with-underscores "_RTM/src/" "nss-" version ".tar.gz"))) (sha256 (base32 - "1bn9wbf52z4423134hpkyvcxq1568fvzmkybv2d49n31iwz6c1hk")) + "15wcbqd2b911hxafbjfn63zd1gf2yxg0s5560hnhqmyrvw8qyg5d")) ;; Create nss.pc and nss-config. (patches (list (search-patch "nss-pkgconfig.patch"))))) (build-system gnu-build-system) -- cgit v1.2.3 From 0ca1eb705d29c20f901fc385ee4e1bb1eaa52f75 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Fri, 6 Nov 2015 22:08:30 -0500 Subject: gnu: icecat: Add several security fixes. * gnu/packages/patches/icecat-CVE-2015-4513-pt01.patch, gnu/packages/patches/icecat-CVE-2015-4513-pt02.patch, gnu/packages/patches/icecat-CVE-2015-4513-pt03.patch, gnu/packages/patches/icecat-CVE-2015-4513-pt04.patch, gnu/packages/patches/icecat-CVE-2015-4513-pt05.patch, gnu/packages/patches/icecat-CVE-2015-4513-pt06.patch, gnu/packages/patches/icecat-CVE-2015-4513-pt07.patch, gnu/packages/patches/icecat-CVE-2015-4513-pt08.patch, gnu/packages/patches/icecat-CVE-2015-4513-pt09.patch, gnu/packages/patches/icecat-CVE-2015-4513-pt10.patch, gnu/packages/patches/icecat-CVE-2015-4513-pt11.patch, gnu/packages/patches/icecat-CVE-2015-7188.patch, gnu/packages/patches/icecat-CVE-2015-7189.patch, gnu/packages/patches/icecat-CVE-2015-7193.patch, gnu/packages/patches/icecat-CVE-2015-7194.patch, gnu/packages/patches/icecat-CVE-2015-7196.patch, gnu/packages/patches/icecat-CVE-2015-7197.patch, gnu/packages/patches/icecat-CVE-2015-7198.patch, gnu/packages/patches/icecat-CVE-2015-7199.patch: New files. * gnu-system.am (dist_patch_DATA): Add them. * gnu/packages/gnuzilla.scm (icecat)[source]: Add patches. --- gnu-system.am | 19 + gnu/packages/gnuzilla.scm | 21 +- .../patches/icecat-CVE-2015-4513-pt01.patch | 36 ++ .../patches/icecat-CVE-2015-4513-pt02.patch | 103 +++++ .../patches/icecat-CVE-2015-4513-pt03.patch | 48 +++ .../patches/icecat-CVE-2015-4513-pt04.patch | 50 +++ .../patches/icecat-CVE-2015-4513-pt05.patch | 25 ++ .../patches/icecat-CVE-2015-4513-pt06.patch | 461 +++++++++++++++++++++ .../patches/icecat-CVE-2015-4513-pt07.patch | 93 +++++ .../patches/icecat-CVE-2015-4513-pt08.patch | 41 ++ .../patches/icecat-CVE-2015-4513-pt09.patch | 65 +++ .../patches/icecat-CVE-2015-4513-pt10.patch | 110 +++++ .../patches/icecat-CVE-2015-4513-pt11.patch | 42 ++ gnu/packages/patches/icecat-CVE-2015-7188.patch | 143 +++++++ gnu/packages/patches/icecat-CVE-2015-7189.patch | 143 +++++++ gnu/packages/patches/icecat-CVE-2015-7193.patch | 397 ++++++++++++++++++ gnu/packages/patches/icecat-CVE-2015-7194.patch | 32 ++ gnu/packages/patches/icecat-CVE-2015-7196.patch | 27 ++ gnu/packages/patches/icecat-CVE-2015-7197.patch | 70 ++++ gnu/packages/patches/icecat-CVE-2015-7198.patch | 27 ++ gnu/packages/patches/icecat-CVE-2015-7199.patch | 84 ++++ 21 files changed, 2036 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/icecat-CVE-2015-4513-pt01.patch create mode 100644 gnu/packages/patches/icecat-CVE-2015-4513-pt02.patch create mode 100644 gnu/packages/patches/icecat-CVE-2015-4513-pt03.patch create mode 100644 gnu/packages/patches/icecat-CVE-2015-4513-pt04.patch create mode 100644 gnu/packages/patches/icecat-CVE-2015-4513-pt05.patch create mode 100644 gnu/packages/patches/icecat-CVE-2015-4513-pt06.patch create mode 100644 gnu/packages/patches/icecat-CVE-2015-4513-pt07.patch create mode 100644 gnu/packages/patches/icecat-CVE-2015-4513-pt08.patch create mode 100644 gnu/packages/patches/icecat-CVE-2015-4513-pt09.patch create mode 100644 gnu/packages/patches/icecat-CVE-2015-4513-pt10.patch create mode 100644 gnu/packages/patches/icecat-CVE-2015-4513-pt11.patch create mode 100644 gnu/packages/patches/icecat-CVE-2015-7188.patch create mode 100644 gnu/packages/patches/icecat-CVE-2015-7189.patch create mode 100644 gnu/packages/patches/icecat-CVE-2015-7193.patch create mode 100644 gnu/packages/patches/icecat-CVE-2015-7194.patch create mode 100644 gnu/packages/patches/icecat-CVE-2015-7196.patch create mode 100644 gnu/packages/patches/icecat-CVE-2015-7197.patch create mode 100644 gnu/packages/patches/icecat-CVE-2015-7198.patch create mode 100644 gnu/packages/patches/icecat-CVE-2015-7199.patch diff --git a/gnu-system.am b/gnu-system.am index 946b77eeff..f3ded69a78 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -500,6 +500,25 @@ dist_patch_DATA = \ gnu/packages/patches/hwloc-gather-topology-lstopo.patch \ gnu/packages/patches/hydra-automake-1.15.patch \ gnu/packages/patches/hydra-disable-darcs-test.patch \ + gnu/packages/patches/icecat-CVE-2015-4513-pt01.patch \ + gnu/packages/patches/icecat-CVE-2015-4513-pt02.patch \ + gnu/packages/patches/icecat-CVE-2015-4513-pt03.patch \ + gnu/packages/patches/icecat-CVE-2015-4513-pt04.patch \ + gnu/packages/patches/icecat-CVE-2015-4513-pt05.patch \ + gnu/packages/patches/icecat-CVE-2015-4513-pt06.patch \ + gnu/packages/patches/icecat-CVE-2015-4513-pt07.patch \ + gnu/packages/patches/icecat-CVE-2015-4513-pt08.patch \ + gnu/packages/patches/icecat-CVE-2015-4513-pt09.patch \ + gnu/packages/patches/icecat-CVE-2015-4513-pt10.patch \ + gnu/packages/patches/icecat-CVE-2015-4513-pt11.patch \ + gnu/packages/patches/icecat-CVE-2015-7188.patch \ + gnu/packages/patches/icecat-CVE-2015-7189.patch \ + gnu/packages/patches/icecat-CVE-2015-7193.patch \ + gnu/packages/patches/icecat-CVE-2015-7194.patch \ + gnu/packages/patches/icecat-CVE-2015-7196.patch \ + gnu/packages/patches/icecat-CVE-2015-7197.patch \ + gnu/packages/patches/icecat-CVE-2015-7198.patch \ + gnu/packages/patches/icecat-CVE-2015-7199.patch \ gnu/packages/patches/icecat-avoid-bundled-includes.patch \ gnu/packages/patches/icecat-freetype-2.6.patch \ gnu/packages/patches/icu4c-CVE-2014-6585.patch \ diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index 07453989df..49e3b31537 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -239,7 +239,26 @@ standards.") (base32 "0vm6f7f1i5vkq2713mgzjdfnm8rpz9l0q8sv4s123vsam0j9gzh8")) (patches (map search-patch '("icecat-avoid-bundled-includes.patch" - "icecat-freetype-2.6.patch"))) + "icecat-freetype-2.6.patch" + "icecat-CVE-2015-4513-pt01.patch" + "icecat-CVE-2015-4513-pt02.patch" + "icecat-CVE-2015-4513-pt03.patch" + "icecat-CVE-2015-4513-pt04.patch" + "icecat-CVE-2015-4513-pt05.patch" + "icecat-CVE-2015-4513-pt06.patch" + "icecat-CVE-2015-4513-pt07.patch" + "icecat-CVE-2015-4513-pt08.patch" + "icecat-CVE-2015-4513-pt09.patch" + "icecat-CVE-2015-4513-pt10.patch" + "icecat-CVE-2015-4513-pt11.patch" + "icecat-CVE-2015-7188.patch" + "icecat-CVE-2015-7189.patch" + "icecat-CVE-2015-7193.patch" + "icecat-CVE-2015-7194.patch" + "icecat-CVE-2015-7196.patch" + "icecat-CVE-2015-7197.patch" + "icecat-CVE-2015-7198.patch" + "icecat-CVE-2015-7199.patch"))) (modules '((guix build utils))) (snippet '(begin diff --git a/gnu/packages/patches/icecat-CVE-2015-4513-pt01.patch b/gnu/packages/patches/icecat-CVE-2015-4513-pt01.patch new file mode 100644 index 0000000000..f003e3cf68 --- /dev/null +++ b/gnu/packages/patches/icecat-CVE-2015-4513-pt01.patch @@ -0,0 +1,36 @@ +From 3df141cb85a530d7ddc3a7555d44235e49341837 Mon Sep 17 00:00:00 2001 +From: Karl Tomlinson +Date: Sat, 19 Sep 2015 00:51:03 +1200 +Subject: [PATCH] Bug 1206564 - skip copying of listeners. r=roc, a=sylvestre + +--HG-- +extra : source : ddd169d6bd65771a6811a3bb223a4a385b101690 +--- + widget/gtk/nsWindow.cpp | 11 +++++------ + 1 file changed, 5 insertions(+), 6 deletions(-) + +diff --git a/widget/gtk/nsWindow.cpp b/widget/gtk/nsWindow.cpp +index dd1895b..d8e8e42 100644 +--- a/widget/gtk/nsWindow.cpp ++++ b/widget/gtk/nsWindow.cpp +@@ -461,12 +461,11 @@ nsWindow::DispatchDeactivateEvent(void) + void + nsWindow::DispatchResized(int32_t aWidth, int32_t aHeight) + { +- nsIWidgetListener *listeners[] = +- { mWidgetListener, mAttachedWidgetListener }; +- for (size_t i = 0; i < ArrayLength(listeners); ++i) { +- if (listeners[i]) { +- listeners[i]->WindowResized(this, aWidth, aHeight); +- } ++ if (mWidgetListener) { ++ mWidgetListener->WindowResized(this, aWidth, aHeight); ++ } ++ if (mAttachedWidgetListener) { ++ mAttachedWidgetListener->WindowResized(this, aWidth, aHeight); + } + } + +-- +2.5.0 + diff --git a/gnu/packages/patches/icecat-CVE-2015-4513-pt02.patch b/gnu/packages/patches/icecat-CVE-2015-4513-pt02.patch new file mode 100644 index 0000000000..9a77ed908b --- /dev/null +++ b/gnu/packages/patches/icecat-CVE-2015-4513-pt02.patch @@ -0,0 +1,103 @@ +From d463cb5f0374bfc7c62ae5f1c89edd3ca35084e5 Mon Sep 17 00:00:00 2001 +From: Olli Pettay +Date: Thu, 24 Sep 2015 03:53:31 +0300 +Subject: [PATCH] Bug 1204669 - optimize out hashtable lookups caused by extra + GetPrototypeBinding call, r=bz,waldo, a=al + +--HG-- +extra : source : 91657db26f49f885f2338cb8c9302cdf18999f1f +--- + dom/xbl/nsXBLPrototypeBinding.h | 9 +++++++-- + dom/xbl/nsXBLService.cpp | 6 +++--- + mfbt/WeakPtr.h | 8 +++++++- + 3 files changed, 17 insertions(+), 6 deletions(-) + +diff --git a/dom/xbl/nsXBLPrototypeBinding.h b/dom/xbl/nsXBLPrototypeBinding.h +index be2cb5a..1aaa07f 100644 +--- a/dom/xbl/nsXBLPrototypeBinding.h ++++ b/dom/xbl/nsXBLPrototypeBinding.h +@@ -17,6 +17,7 @@ + #include "nsXBLProtoImplMethod.h" + #include "nsXBLPrototypeHandler.h" + #include "nsXBLPrototypeResources.h" ++#include "mozilla/WeakPtr.h" + + class nsIAtom; + class nsIContent; +@@ -35,9 +36,12 @@ class CSSStyleSheet; + // Instances of this class are owned by the nsXBLDocumentInfo object returned + // by XBLDocumentInfo(). Consumers who want to refcount things should refcount + // that. +-class nsXBLPrototypeBinding final ++class nsXBLPrototypeBinding final : ++ public mozilla::SupportsWeakPtr + { + public: ++ MOZ_DECLARE_WEAKREFERENCE_TYPENAME(nsXBLPrototypeBinding) ++ + nsIContent* GetBindingElement() const { return mBinding; } + void SetBindingElement(nsIContent* aElement); + +@@ -289,7 +293,8 @@ protected: + nsXBLProtoImpl* mImplementation; // Our prototype implementation (includes methods, properties, fields, + // the constructor, and the destructor). + +- nsXBLPrototypeBinding* mBaseBinding; // Weak. The docinfo will own our base binding. ++ // Weak. The docinfo will own our base binding. ++ mozilla::WeakPtr mBaseBinding; + bool mInheritStyle; + bool mCheckedBaseProto; + bool mKeyHandlersRegistered; +diff --git a/dom/xbl/nsXBLService.cpp b/dom/xbl/nsXBLService.cpp +index 2204520..978c6fc 100644 +--- a/dom/xbl/nsXBLService.cpp ++++ b/dom/xbl/nsXBLService.cpp +@@ -732,7 +732,8 @@ nsXBLService::GetBinding(nsIContent* aBoundElement, nsIURI* aURI, + if (!docInfo) + return NS_ERROR_FAILURE; + +- nsXBLPrototypeBinding* protoBinding = docInfo->GetPrototypeBinding(ref); ++ WeakPtr protoBinding = ++ docInfo->GetPrototypeBinding(ref); + + if (!protoBinding) { + #ifdef DEBUG +@@ -783,7 +784,7 @@ nsXBLService::GetBinding(nsIContent* aBoundElement, nsIURI* aURI, + NS_ENSURE_SUCCESS(rv, rv); + + nsCOMPtr baseBindingURI; +- nsXBLPrototypeBinding* baseProto = protoBinding->GetBasePrototype(); ++ WeakPtr baseProto = protoBinding->GetBasePrototype(); + if (baseProto) { + baseBindingURI = baseProto->BindingURI(); + } +@@ -828,7 +829,6 @@ nsXBLService::GetBinding(nsIContent* aBoundElement, nsIURI* aURI, + + if (!aPeekOnly) { + // Make a new binding +- protoBinding = docInfo->GetPrototypeBinding(ref); + NS_ENSURE_STATE(protoBinding); + nsXBLBinding *newBinding = new nsXBLBinding(protoBinding); + +diff --git a/mfbt/WeakPtr.h b/mfbt/WeakPtr.h +index 6e5de43..22ba20e 100644 +--- a/mfbt/WeakPtr.h ++++ b/mfbt/WeakPtr.h +@@ -172,7 +172,13 @@ public: + + WeakPtr& operator=(T* aOther) + { +- return *this = aOther->SelfReferencingWeakPtr(); ++ if (aOther) { ++ *this = aOther->SelfReferencingWeakPtr(); ++ } else if (!mRef || mRef->get()) { ++ // Ensure that mRef is dereferenceable in the uninitialized state. ++ mRef = new WeakReference(nullptr); ++ } ++ return *this; + } + + MOZ_IMPLICIT WeakPtr(T* aOther) +-- +2.5.0 + diff --git a/gnu/packages/patches/icecat-CVE-2015-4513-pt03.patch b/gnu/packages/patches/icecat-CVE-2015-4513-pt03.patch new file mode 100644 index 0000000000..4f86629068 --- /dev/null +++ b/gnu/packages/patches/icecat-CVE-2015-4513-pt03.patch @@ -0,0 +1,48 @@ +From 88312d4d167aba886fdbd563afcfd5cc96a9d813 Mon Sep 17 00:00:00 2001 +From: Boris Zbarsky +Date: Fri, 11 Sep 2015 21:59:43 -0400 +Subject: [PATCH] Bug 1191942 - Make sure to not schedule + requestAnimationFrame callbacks if animations are paused. r=roc, a=ritu + +--HG-- +extra : source : ed8a6af1508ac68a28d017e26935e7a12dbda864 +extra : intermediate-source : 254e3cb723ed279f68b0c88ad30dc35b6a93ce84 +--- + dom/base/nsDocument.cpp | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +diff --git a/dom/base/nsDocument.cpp b/dom/base/nsDocument.cpp +index 47f611e..087501c 100644 +--- a/dom/base/nsDocument.cpp ++++ b/dom/base/nsDocument.cpp +@@ -3928,7 +3928,7 @@ void + nsDocument::DeleteShell() + { + mExternalResourceMap.HideViewers(); +- if (IsEventHandlingEnabled()) { ++ if (IsEventHandlingEnabled() && !AnimationsPaused()) { + RevokeAnimationFrameNotifications(); + } + +@@ -4687,7 +4687,7 @@ nsDocument::SetScriptGlobalObject(nsIScriptGlobalObject *aScriptGlobalObject) + // our layout history state now. + mLayoutHistoryState = GetLayoutHistoryState(); + +- if (mPresShell && !EventHandlingSuppressed()) { ++ if (mPresShell && !EventHandlingSuppressed() && !AnimationsPaused()) { + RevokeAnimationFrameNotifications(); + } + +@@ -10276,7 +10276,8 @@ nsIDocument::ScheduleFrameRequestCallback(const FrameRequestCallbackHolder& aCal + DebugOnly request = + mFrameRequestCallbacks.AppendElement(FrameRequest(aCallback, newHandle)); + NS_ASSERTION(request, "This is supposed to be infallible!"); +- if (!alreadyRegistered && mPresShell && IsEventHandlingEnabled()) { ++ if (!alreadyRegistered && mPresShell && IsEventHandlingEnabled() && ++ !AnimationsPaused()) { + mPresShell->GetPresContext()->RefreshDriver()-> + ScheduleFrameRequestCallbacks(this); + } +-- +2.5.0 + diff --git a/gnu/packages/patches/icecat-CVE-2015-4513-pt04.patch b/gnu/packages/patches/icecat-CVE-2015-4513-pt04.patch new file mode 100644 index 0000000000..f6f3cd3585 --- /dev/null +++ b/gnu/packages/patches/icecat-CVE-2015-4513-pt04.patch @@ -0,0 +1,50 @@ +From 97bd3ada2a0ac6eff0e03e6eec8d2012af3bb57d Mon Sep 17 00:00:00 2001 +From: Jan de Mooij +Date: Mon, 28 Sep 2015 13:30:42 +0200 +Subject: [PATCH] Bug 1205707 part 1 - Clean up some is-TypedArrayObject code + in Ion. r=Waldo, a=sylvestre + +--- + js/src/jit/MCallOptimize.cpp | 19 +++++++++++++++++-- + 1 file changed, 17 insertions(+), 2 deletions(-) + +diff --git a/js/src/jit/MCallOptimize.cpp b/js/src/jit/MCallOptimize.cpp +index 7fdede8..2c6a533 100644 +--- a/js/src/jit/MCallOptimize.cpp ++++ b/js/src/jit/MCallOptimize.cpp +@@ -2122,6 +2122,19 @@ IonBuilder::inlineIsTypedArray(CallInfo& callInfo) + return InliningStatus_Inlined; + } + ++static bool ++IsTypedArrayObject(CompilerConstraintList* constraints, MDefinition* def) ++{ ++ MOZ_ASSERT(def->type() == MIRType_Object); ++ ++ TemporaryTypeSet* types = def->resultTypeSet(); ++ if (!types) ++ return false; ++ ++ return types->forAllClasses(constraints, IsTypedArrayClass) == ++ TemporaryTypeSet::ForAllResult::ALL_TRUE; ++} ++ + IonBuilder::InliningStatus + IonBuilder::inlineTypedArrayLength(CallInfo& callInfo) + { +@@ -2132,8 +2145,10 @@ IonBuilder::inlineTypedArrayLength(CallInfo& callInfo) + if (getInlineReturnType() != MIRType_Int32) + return InliningStatus_NotInlined; + +- // We assume that when calling this function we always +- // have a TypedArray. The native asserts that as well. ++ // Note that the argument we see here is not necessarily a typed array. ++ // If it's not, this call should be unreachable though. ++ if (!IsTypedArrayObject(constraints(), callInfo.getArg(0))) ++ return InliningStatus_NotInlined; + + MInstruction* length = addTypedArrayLength(callInfo.getArg(0)); + current->push(length); +-- +2.5.0 + diff --git a/gnu/packages/patches/icecat-CVE-2015-4513-pt05.patch b/gnu/packages/patches/icecat-CVE-2015-4513-pt05.patch new file mode 100644 index 0000000000..b25f2231a7 --- /dev/null +++ b/gnu/packages/patches/icecat-CVE-2015-4513-pt05.patch @@ -0,0 +1,25 @@ +From d91a58cb0094d0421439a915be0b4879a45d20d4 Mon Sep 17 00:00:00 2001 +From: Brian Hackett +Date: Mon, 12 Oct 2015 17:15:12 -0600 +Subject: [PATCH] Bug 1209471 - Fix group used for Array.concat result, + r=jandem. a=al + +--- + js/src/jsarray.cpp | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/js/src/jsarray.cpp b/js/src/jsarray.cpp +index 3d574d5..b4ff057 100644 +--- a/js/src/jsarray.cpp ++++ b/js/src/jsarray.cpp +@@ -2661,6 +2661,7 @@ js::array_concat(JSContext* cx, unsigned argc, Value* vp) + narr = NewDenseEmptyArray(cx); + if (!narr) + return false; ++ TryReuseArrayGroup(aobj, narr); + args.rval().setObject(*narr); + length = 0; + } +-- +2.5.0 + diff --git a/gnu/packages/patches/icecat-CVE-2015-4513-pt06.patch b/gnu/packages/patches/icecat-CVE-2015-4513-pt06.patch new file mode 100644 index 0000000000..33dbf68f2c --- /dev/null +++ b/gnu/packages/patches/icecat-CVE-2015-4513-pt06.patch @@ -0,0 +1,461 @@ +From 13b2b587c183e85618868752e05ec46bd5a0af86 Mon Sep 17 00:00:00 2001 +From: Jon Coppeard +Date: Tue, 13 Oct 2015 11:09:12 +0200 +Subject: [PATCH] Bug 1208665 - r=Waldo a=abillings a=sylvestre + +--- + js/public/Utility.h | 49 +++++++++++++++++++++++++++++++++++++-------- + js/src/ds/LifoAlloc.h | 13 ++++++------ + js/src/jit/FixedList.h | 10 +++++---- + js/src/jit/JitAllocPolicy.h | 19 ++++++++++-------- + js/src/jit/LIR.cpp | 3 +-- + js/src/jit/MIRGenerator.h | 7 ++++--- + js/src/jit/MIRGraph.cpp | 2 +- + js/src/jsalloc.h | 14 ++++++++++--- + js/src/vm/MallocProvider.h | 39 ++++++++++++++++-------------------- + js/src/vm/Runtime.h | 10 +++++---- + 10 files changed, 105 insertions(+), 61 deletions(-) + +diff --git a/js/public/Utility.h b/js/public/Utility.h +index 40b5d90..6b750c3 100644 +--- a/js/public/Utility.h ++++ b/js/public/Utility.h +@@ -217,6 +217,36 @@ static inline char* js_strdup(const char* s) + + JS_DECLARE_NEW_METHODS(js_new, js_malloc, static MOZ_ALWAYS_INLINE) + ++namespace js { ++ ++/* ++ * Calculate the number of bytes needed to allocate |numElems| contiguous ++ * instances of type |T|. Return false if the calculation overflowed. ++ */ ++template ++MOZ_WARN_UNUSED_RESULT inline bool ++CalculateAllocSize(size_t numElems, size_t* bytesOut) ++{ ++ *bytesOut = numElems * sizeof(T); ++ return (numElems & mozilla::tl::MulOverflowMask::value) == 0; ++} ++ ++/* ++ * Calculate the number of bytes needed to allocate a single instance of type ++ * |T| followed by |numExtra| contiguous instances of type |Extra|. Return ++ * false if the calculation overflowed. ++ */ ++template ++MOZ_WARN_UNUSED_RESULT inline bool ++CalculateAllocSizeWithExtra(size_t numExtra, size_t* bytesOut) ++{ ++ *bytesOut = sizeof(T) + numExtra * sizeof(Extra); ++ return (numExtra & mozilla::tl::MulOverflowMask::value) == 0 && ++ *bytesOut >= sizeof(T); ++} ++ ++} /* namespace js */ ++ + template + static MOZ_ALWAYS_INLINE void + js_delete(T* p) +@@ -242,32 +272,34 @@ template + static MOZ_ALWAYS_INLINE T* + js_pod_malloc() + { +- return (T*)js_malloc(sizeof(T)); ++ return static_cast(js_malloc(sizeof(T))); + } + + template + static MOZ_ALWAYS_INLINE T* + js_pod_calloc() + { +- return (T*)js_calloc(sizeof(T)); ++ return static_cast(js_calloc(sizeof(T))); + } + + template + static MOZ_ALWAYS_INLINE T* + js_pod_malloc(size_t numElems) + { +- if (MOZ_UNLIKELY(numElems & mozilla::tl::MulOverflowMask::value)) ++ size_t bytes; ++ if (MOZ_UNLIKELY(!js::CalculateAllocSize(numElems, &bytes))) + return nullptr; +- return (T*)js_malloc(numElems * sizeof(T)); ++ return static_cast(js_malloc(bytes)); + } + + template + static MOZ_ALWAYS_INLINE T* + js_pod_calloc(size_t numElems) + { +- if (MOZ_UNLIKELY(numElems & mozilla::tl::MulOverflowMask::value)) ++ size_t bytes; ++ if (MOZ_UNLIKELY(!js::CalculateAllocSize(numElems, &bytes))) + return nullptr; +- return (T*)js_calloc(numElems * sizeof(T)); ++ return static_cast(js_calloc(bytes)); + } + + template +@@ -275,9 +307,10 @@ static MOZ_ALWAYS_INLINE T* + js_pod_realloc(T* prior, size_t oldSize, size_t newSize) + { + MOZ_ASSERT(!(oldSize & mozilla::tl::MulOverflowMask::value)); +- if (MOZ_UNLIKELY(newSize & mozilla::tl::MulOverflowMask::value)) ++ size_t bytes; ++ if (MOZ_UNLIKELY(!js::CalculateAllocSize(newSize, &bytes))) + return nullptr; +- return (T*)js_realloc(prior, newSize * sizeof(T)); ++ return static_cast(js_realloc(prior, bytes)); + } + + namespace js { +diff --git a/js/src/ds/LifoAlloc.h b/js/src/ds/LifoAlloc.h +index 9dc68c1..35cdc72 100644 +--- a/js/src/ds/LifoAlloc.h ++++ b/js/src/ds/LifoAlloc.h +@@ -310,9 +310,10 @@ class LifoAlloc + // The caller is responsible for initialization. + template + T* newArrayUninitialized(size_t count) { +- if (MOZ_UNLIKELY(count & mozilla::tl::MulOverflowMask::value)) ++ size_t bytes; ++ if (MOZ_UNLIKELY(!CalculateAllocSize(count, &bytes))) + return nullptr; +- return static_cast(alloc(sizeof(T) * count)); ++ return static_cast(alloc(bytes)); + } + + class Mark { +@@ -527,16 +528,16 @@ class LifoAllocPolicy + {} + template + T* pod_malloc(size_t numElems) { +- if (MOZ_UNLIKELY(numElems & mozilla::tl::MulOverflowMask::value)) ++ size_t bytes; ++ if (MOZ_UNLIKELY(!CalculateAllocSize(numElems, &bytes))) + return nullptr; +- size_t bytes = numElems * sizeof(T); + void* p = fb == Fallible ? alloc_.alloc(bytes) : alloc_.allocInfallible(bytes); + return static_cast(p); + } + template + T* pod_calloc(size_t numElems) { + T* p = pod_malloc(numElems); +- if (fb == Fallible && !p) ++ if (MOZ_UNLIKELY(!p)) + return nullptr; + memset(p, 0, numElems * sizeof(T)); + return p; +@@ -544,7 +545,7 @@ class LifoAllocPolicy + template + T* pod_realloc(T* p, size_t oldSize, size_t newSize) { + T* n = pod_malloc(newSize); +- if (fb == Fallible && !n) ++ if (MOZ_UNLIKELY(!n)) + return nullptr; + MOZ_ASSERT(!(oldSize & mozilla::tl::MulOverflowMask::value)); + memcpy(n, p, Min(oldSize * sizeof(T), newSize * sizeof(T))); +diff --git a/js/src/jit/FixedList.h b/js/src/jit/FixedList.h +index 9cea3a8..b6b37bb 100644 +--- a/js/src/jit/FixedList.h ++++ b/js/src/jit/FixedList.h +@@ -37,9 +37,10 @@ class FixedList + if (length == 0) + return true; + +- if (MOZ_UNLIKELY(length & mozilla::tl::MulOverflowMask::value)) ++ size_t bytes; ++ if (MOZ_UNLIKELY(!CalculateAllocSize(length, &bytes))) + return false; +- list_ = (T*)alloc.allocate(length * sizeof(T)); ++ list_ = (T*)alloc.allocate(bytes); + return list_ != nullptr; + } + +@@ -60,9 +61,10 @@ class FixedList + size_t newlength = length_ + num; + if (newlength < length_) + return false; +- if (MOZ_UNLIKELY(newlength & mozilla::tl::MulOverflowMask::value)) ++ size_t bytes; ++ if (MOZ_UNLIKELY(!CalculateAllocSize(newlength, &bytes))) + return false; +- T* list = (T*)alloc.allocate((length_ + num) * sizeof(T)); ++ T* list = (T*)alloc.allocate(bytes); + if (MOZ_UNLIKELY(!list)) + return false; + +diff --git a/js/src/jit/JitAllocPolicy.h b/js/src/jit/JitAllocPolicy.h +index 4bbd1a3..fca4b3f 100644 +--- a/js/src/jit/JitAllocPolicy.h ++++ b/js/src/jit/JitAllocPolicy.h +@@ -48,12 +48,13 @@ class TempAllocator + return p; + } + +- template +- void* allocateArray(size_t n) ++ template ++ T* allocateArray(size_t n) + { +- if (MOZ_UNLIKELY(n & mozilla::tl::MulOverflowMask::value)) ++ size_t bytes; ++ if (MOZ_UNLIKELY(!CalculateAllocSize(n, &bytes))) + return nullptr; +- void* p = lifoScope_.alloc().alloc(n * ElemSize); ++ T* p = static_cast(lifoScope_.alloc().alloc(bytes)); + if (MOZ_UNLIKELY(!ensureBallast())) + return nullptr; + return p; +@@ -79,9 +80,10 @@ class JitAllocPolicy + {} + template + T* pod_malloc(size_t numElems) { +- if (MOZ_UNLIKELY(numElems & mozilla::tl::MulOverflowMask::value)) ++ size_t bytes; ++ if (MOZ_UNLIKELY(!CalculateAllocSize(numElems, &bytes))) + return nullptr; +- return static_cast(alloc_.allocate(numElems * sizeof(T))); ++ return static_cast(alloc_.allocate(bytes)); + } + template + T* pod_calloc(size_t numElems) { +@@ -112,9 +114,10 @@ class OldJitAllocPolicy + {} + template + T* pod_malloc(size_t numElems) { +- if (MOZ_UNLIKELY(numElems & mozilla::tl::MulOverflowMask::value)) ++ size_t bytes; ++ if (MOZ_UNLIKELY(!CalculateAllocSize(numElems, &bytes))) + return nullptr; +- return static_cast(GetJitContext()->temp->allocate(numElems * sizeof(T))); ++ return static_cast(GetJitContext()->temp->allocate(bytes)); + } + void free_(void* p) { + } +diff --git a/js/src/jit/LIR.cpp b/js/src/jit/LIR.cpp +index 70a3fc0..a76e742 100644 +--- a/js/src/jit/LIR.cpp ++++ b/js/src/jit/LIR.cpp +@@ -105,8 +105,7 @@ LBlock::init(TempAllocator& alloc) + + int numPhis = (phi->type() == MIRType_Value) ? BOX_PIECES : 1; + for (int i = 0; i < numPhis; i++) { +- void* array = alloc.allocateArray(numPreds); +- LAllocation* inputs = static_cast(array); ++ LAllocation* inputs = alloc.allocateArray(numPreds); + if (!inputs) + return false; + +diff --git a/js/src/jit/MIRGenerator.h b/js/src/jit/MIRGenerator.h +index 01de27d..5e6b9ef 100644 +--- a/js/src/jit/MIRGenerator.h ++++ b/js/src/jit/MIRGenerator.h +@@ -60,10 +60,11 @@ class MIRGenerator + } + + template +- T * allocate(size_t count = 1) { +- if (count & mozilla::tl::MulOverflowMask::value) ++ T* allocate(size_t count = 1) { ++ size_t bytes; ++ if (MOZ_UNLIKELY(!CalculateAllocSize(count, &bytes))) + return nullptr; +- return reinterpret_cast(alloc().allocate(sizeof(T) * count)); ++ return static_cast(alloc().allocate(bytes)); + } + + // Set an error state and prints a message. Returns false so errors can be +diff --git a/js/src/jit/MIRGraph.cpp b/js/src/jit/MIRGraph.cpp +index 5d000dca..4c5cf8e 100644 +--- a/js/src/jit/MIRGraph.cpp ++++ b/js/src/jit/MIRGraph.cpp +@@ -297,7 +297,7 @@ MBasicBlock::NewAsmJS(MIRGraph& graph, CompileInfo& info, MBasicBlock* pred, Kin + size_t nphis = block->stackPosition_; + + TempAllocator& alloc = graph.alloc(); +- MPhi* phis = (MPhi*)alloc.allocateArray(nphis); ++ MPhi* phis = alloc.allocateArray(nphis); + if (!phis) + return nullptr; + +diff --git a/js/src/jsalloc.h b/js/src/jsalloc.h +index ce11ade..e20fa5f2 100644 +--- a/js/src/jsalloc.h ++++ b/js/src/jsalloc.h +@@ -53,6 +53,14 @@ class TempAllocPolicy + */ + JS_FRIEND_API(void*) onOutOfMemory(void* p, size_t nbytes); + ++ template ++ T* onOutOfMemoryTyped(void* p, size_t numElems) { ++ size_t bytes; ++ if (MOZ_UNLIKELY(!CalculateAllocSize(numElems, &bytes))) ++ return nullptr; ++ return static_cast(onOutOfMemory(p, bytes)); ++ } ++ + public: + MOZ_IMPLICIT TempAllocPolicy(JSContext* cx) : cx_((ContextFriendFields*) cx) {} // :( + MOZ_IMPLICIT TempAllocPolicy(ContextFriendFields* cx) : cx_(cx) {} +@@ -61,7 +69,7 @@ class TempAllocPolicy + T* pod_malloc(size_t numElems) { + T* p = js_pod_malloc(numElems); + if (MOZ_UNLIKELY(!p)) +- p = static_cast(onOutOfMemory(nullptr, numElems * sizeof(T))); ++ p = onOutOfMemoryTyped(nullptr, numElems); + return p; + } + +@@ -69,7 +77,7 @@ class TempAllocPolicy + T* pod_calloc(size_t numElems) { + T* p = js_pod_calloc(numElems); + if (MOZ_UNLIKELY(!p)) +- p = static_cast(onOutOfMemory(reinterpret_cast(1), numElems * sizeof(T))); ++ p = onOutOfMemoryTyped(reinterpret_cast(1), numElems); + return p; + } + +@@ -77,7 +85,7 @@ class TempAllocPolicy + T* pod_realloc(T* prior, size_t oldSize, size_t newSize) { + T* p2 = js_pod_realloc(prior, oldSize, newSize); + if (MOZ_UNLIKELY(!p2)) +- p2 = static_cast(onOutOfMemory(p2, newSize * sizeof(T))); ++ p2 = onOutOfMemoryTyped(p2, newSize); + return p2; + } + +diff --git a/js/src/vm/MallocProvider.h b/js/src/vm/MallocProvider.h +index 1ea4ce2..f334eb1 100644 +--- a/js/src/vm/MallocProvider.h ++++ b/js/src/vm/MallocProvider.h +@@ -64,30 +64,27 @@ struct MallocProvider + client()->updateMallocCounter(numElems * sizeof(T)); + return p; + } +- if (numElems & mozilla::tl::MulOverflowMask::value) { ++ size_t bytes; ++ if (MOZ_UNLIKELY(!CalculateAllocSize(numElems, &bytes))) { + client()->reportAllocationOverflow(); + return nullptr; + } +- return (T*)client()->onOutOfMemory(nullptr, numElems * sizeof(T)); ++ return static_cast(client()->onOutOfMemory(nullptr, bytes)); + } + + template + T* pod_malloc_with_extra(size_t numExtra) { +- if (MOZ_UNLIKELY(numExtra & mozilla::tl::MulOverflowMask::value)) { ++ size_t bytes; ++ if (MOZ_UNLIKELY((!CalculateAllocSizeWithExtra(numExtra, &bytes)))) { + client()->reportAllocationOverflow(); + return nullptr; + } +- size_t bytes = sizeof(T) + numExtra * sizeof(U); +- if (MOZ_UNLIKELY(bytes < sizeof(T))) { +- client()->reportAllocationOverflow(); +- return nullptr; +- } +- T* p = reinterpret_cast(js_pod_malloc(bytes)); ++ T* p = static_cast(js_malloc(bytes)); + if (MOZ_LIKELY(p)) { + client()->updateMallocCounter(bytes); + return p; + } +- return (T*)client()->onOutOfMemory(nullptr, bytes); ++ return static_cast(client()->onOutOfMemory(nullptr, bytes)); + } + + template +@@ -108,30 +105,27 @@ struct MallocProvider + client()->updateMallocCounter(numElems * sizeof(T)); + return p; + } +- if (numElems & mozilla::tl::MulOverflowMask::value) { ++ size_t bytes; ++ if (MOZ_UNLIKELY(!CalculateAllocSize(numElems, &bytes))) { + client()->reportAllocationOverflow(); + return nullptr; + } +- return (T*)client()->onOutOfMemory(nullptr, numElems * sizeof(T)); ++ return static_cast(client()->onOutOfMemory(nullptr, bytes)); + } + + template + T* pod_calloc_with_extra(size_t numExtra) { +- if (MOZ_UNLIKELY(numExtra & mozilla::tl::MulOverflowMask::value)) { +- client()->reportAllocationOverflow(); +- return nullptr; +- } +- size_t bytes = sizeof(T) + numExtra * sizeof(U); +- if (MOZ_UNLIKELY(bytes < sizeof(T))) { ++ size_t bytes; ++ if (MOZ_UNLIKELY((!CalculateAllocSizeWithExtra(numExtra, &bytes)))) { + client()->reportAllocationOverflow(); + return nullptr; + } +- T* p = reinterpret_cast(js_pod_calloc(bytes)); ++ T* p = static_cast(js_calloc(bytes)); + if (MOZ_LIKELY(p)) { + client()->updateMallocCounter(bytes); + return p; + } +- return (T*)client()->onOutOfMemory(nullptr, bytes); ++ return static_cast(client()->onOutOfMemory(nullptr, bytes)); + } + + template +@@ -151,11 +145,12 @@ struct MallocProvider + client()->updateMallocCounter((newSize - oldSize) * sizeof(T)); + return p; + } +- if (newSize & mozilla::tl::MulOverflowMask::value) { ++ size_t bytes; ++ if (MOZ_UNLIKELY(!CalculateAllocSize(newSize, &bytes))) { + client()->reportAllocationOverflow(); + return nullptr; + } +- return (T*)client()->onOutOfMemory(prior, newSize * sizeof(T)); ++ return static_cast(client()->onOutOfMemory(prior, bytes)); + } + + JS_DECLARE_NEW_METHODS(new_, pod_malloc, MOZ_ALWAYS_INLINE) +diff --git a/js/src/vm/Runtime.h b/js/src/vm/Runtime.h +index 90771d6..24c34d3 100644 +--- a/js/src/vm/Runtime.h ++++ b/js/src/vm/Runtime.h +@@ -1354,11 +1354,12 @@ struct JSRuntime : public JS::shadow::Runtime, + T* p = pod_calloc(numElems); + if (MOZ_LIKELY(!!p)) + return p; +- if (numElems & mozilla::tl::MulOverflowMask::value) { ++ size_t bytes; ++ if (MOZ_UNLIKELY(!js::CalculateAllocSize(numElems, &bytes))) { + reportAllocationOverflow(); + return nullptr; + } +- return (T*)onOutOfMemoryCanGC(reinterpret_cast(1), numElems * sizeof(T)); ++ return static_cast(onOutOfMemoryCanGC(reinterpret_cast(1), bytes)); + } + + template +@@ -1366,11 +1367,12 @@ struct JSRuntime : public JS::shadow::Runtime, + T* p2 = pod_realloc(p, oldSize, newSize); + if (MOZ_LIKELY(!!p2)) + return p2; +- if (newSize & mozilla::tl::MulOverflowMask::value) { ++ size_t bytes; ++ if (MOZ_UNLIKELY(!js::CalculateAllocSize(newSize, &bytes))) { + reportAllocationOverflow(); + return nullptr; + } +- return (T*)onOutOfMemoryCanGC(p, newSize * sizeof(T)); ++ return static_cast(onOutOfMemoryCanGC(p, bytes)); + } + + /* +-- +2.5.0 + diff --git a/gnu/packages/patches/icecat-CVE-2015-4513-pt07.patch b/gnu/packages/patches/icecat-CVE-2015-4513-pt07.patch new file mode 100644 index 0000000000..042188ee9c --- /dev/null +++ b/gnu/packages/patches/icecat-CVE-2015-4513-pt07.patch @@ -0,0 +1,93 @@ +From 182bcb255e28b536e2d2a1208fde3324a994dbc1 Mon Sep 17 00:00:00 2001 +From: Benjamin Bouvier +Date: Tue, 13 Oct 2015 19:22:47 +0200 +Subject: [PATCH] Bug 1107011: Propagate recovered on bailout flags when + converting float32 to doubles; r=nbp, a=ritu, a=abillings + +--HG-- +extra : commitid : 51QGWZ84Mqx +extra : amend_source : 48bf9cd43b37c95d61dd4d11b184c307e84a56b5 +extra : histedit_source : ae510534e698e680103f508e0029d75f03f4e6e0%2C1d8eb51e63dd3a52898892976f50747cc3907e65 +--- + js/src/jit-test/tests/ion/bug1107011-1.js | 17 +++++++++++++++++ + js/src/jit-test/tests/ion/bug1107011-2.js | 12 ++++++++++++ + js/src/jit/TypePolicy.cpp | 2 ++ + js/src/jit/ValueNumbering.cpp | 6 ++++++ + 4 files changed, 37 insertions(+) + create mode 100644 js/src/jit-test/tests/ion/bug1107011-1.js + create mode 100644 js/src/jit-test/tests/ion/bug1107011-2.js + +diff --git a/js/src/jit-test/tests/ion/bug1107011-1.js b/js/src/jit-test/tests/ion/bug1107011-1.js +new file mode 100644 +index 0000000..458d7dd +--- /dev/null ++++ b/js/src/jit-test/tests/ion/bug1107011-1.js +@@ -0,0 +1,17 @@ ++var f32 = new Float32Array(32); ++function f(n) { ++ var x; ++ if (n > 10000) { ++ x = 4.5; ++ } else { ++ x = f32[0]; ++ } ++ f32[0] = (function() { ++ for(var f=0;f<4;++f) { ++ x=1; ++ } ++ })() < x; ++} ++for (var n = 0; n < 100; n++) ++ f(n); ++ +diff --git a/js/src/jit-test/tests/ion/bug1107011-2.js b/js/src/jit-test/tests/ion/bug1107011-2.js +new file mode 100644 +index 0000000..d59685e +--- /dev/null ++++ b/js/src/jit-test/tests/ion/bug1107011-2.js +@@ -0,0 +1,12 @@ ++function foo() { ++ var x = 0, y = 0, a = new Float32Array(1); ++ function bar() { ++ x = y; ++ y = a[0]; ++ } ++ for (var i = 0; i < 1000; i++) { ++ bar(); ++ } ++} ++for (var i=0; i < 50; i++) ++ foo(); +diff --git a/js/src/jit/TypePolicy.cpp b/js/src/jit/TypePolicy.cpp +index 4cea638..2510d50 100644 +--- a/js/src/jit/TypePolicy.cpp ++++ b/js/src/jit/TypePolicy.cpp +@@ -22,6 +22,8 @@ EnsureOperandNotFloat32(TempAllocator& alloc, MInstruction* def, unsigned op) + if (in->type() == MIRType_Float32) { + MToDouble* replace = MToDouble::New(alloc, in); + def->block()->insertBefore(def, replace); ++ if (def->isRecoveredOnBailout()) ++ replace->setRecoveredOnBailout(); + def->replaceOperand(op, replace); + } + } +diff --git a/js/src/jit/ValueNumbering.cpp b/js/src/jit/ValueNumbering.cpp +index da3e692..eb367e1 100644 +--- a/js/src/jit/ValueNumbering.cpp ++++ b/js/src/jit/ValueNumbering.cpp +@@ -726,6 +726,12 @@ ValueNumberer::visitDefinition(MDefinition* def) + return true; + } + ++ // Skip optimizations on instructions which are recovered on bailout, to ++ // avoid mixing instructions which are recovered on bailouts with ++ // instructions which are not. ++ if (def->isRecoveredOnBailout()) ++ return true; ++ + // If this instruction has a dependency() into an unreachable block, we'll + // need to update AliasAnalysis. + MInstruction* dep = def->dependency(); +-- +2.5.0 + diff --git a/gnu/packages/patches/icecat-CVE-2015-4513-pt08.patch b/gnu/packages/patches/icecat-CVE-2015-4513-pt08.patch new file mode 100644 index 0000000000..6a16b07497 --- /dev/null +++ b/gnu/packages/patches/icecat-CVE-2015-4513-pt08.patch @@ -0,0 +1,41 @@ +From 544bc596ac085ee1adc0b3d7ea793bc37d747ce2 Mon Sep 17 00:00:00 2001 +From: Carsten Book +Date: Mon, 19 Oct 2015 08:49:46 +0200 +Subject: [PATCH] Bug 1213979 - h2 paket formats. r=hurley, a=al + +--HG-- +extra : source : 551a28778624d4aff67b698952b1b3e011fc21f7 +extra : intermediate-source : ed67ac61d1c0e4a23888abe3abd3f4636757e038 +--- + netwerk/protocol/http/Http2Stream.cpp | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/netwerk/protocol/http/Http2Stream.cpp b/netwerk/protocol/http/Http2Stream.cpp +index 38fc025..340eccf 100644 +--- a/netwerk/protocol/http/Http2Stream.cpp ++++ b/netwerk/protocol/http/Http2Stream.cpp +@@ -629,9 +629,9 @@ Http2Stream::AdjustInitialWindow() + return; + } + +- uint8_t *packet = mTxInlineFrame.get() + mTxInlineFrameUsed; + EnsureBuffer(mTxInlineFrame, mTxInlineFrameUsed + Http2Session::kFrameHeaderBytes + 4, + mTxInlineFrameUsed, mTxInlineFrameSize); ++ uint8_t *packet = mTxInlineFrame.get() + mTxInlineFrameUsed; + mTxInlineFrameUsed += Http2Session::kFrameHeaderBytes + 4; + + mSession->CreateFrameHeader(packet, 4, +@@ -661,9 +661,9 @@ Http2Stream::AdjustPushedPriority() + if (mPushSource->RecvdFin() || mPushSource->RecvdReset()) + return; + +- uint8_t *packet = mTxInlineFrame.get() + mTxInlineFrameUsed; + EnsureBuffer(mTxInlineFrame, mTxInlineFrameUsed + Http2Session::kFrameHeaderBytes + 5, + mTxInlineFrameUsed, mTxInlineFrameSize); ++ uint8_t *packet = mTxInlineFrame.get() + mTxInlineFrameUsed; + mTxInlineFrameUsed += Http2Session::kFrameHeaderBytes + 5; + + mSession->CreateFrameHeader(packet, 5, +-- +2.5.0 + diff --git a/gnu/packages/patches/icecat-CVE-2015-4513-pt09.patch b/gnu/packages/patches/icecat-CVE-2015-4513-pt09.patch new file mode 100644 index 0000000000..687eb0af76 --- /dev/null +++ b/gnu/packages/patches/icecat-CVE-2015-4513-pt09.patch @@ -0,0 +1,65 @@ +From ef6298177a8390c01f5084ba89a808015a0b9473 Mon Sep 17 00:00:00 2001 +From: Gerald Squelart +Date: Thu, 22 Oct 2015 10:00:12 +0200 +Subject: [PATCH] Bug 1204580 - Check box ranges for overflow - r=rillian, a=al + +--- + media/libstagefright/binding/Box.cpp | 21 +++++++++++++++++++-- + 1 file changed, 19 insertions(+), 2 deletions(-) + +diff --git a/media/libstagefright/binding/Box.cpp b/media/libstagefright/binding/Box.cpp +index 71c79ed..2558be0 100644 +--- a/media/libstagefright/binding/Box.cpp ++++ b/media/libstagefright/binding/Box.cpp +@@ -40,6 +40,11 @@ Box::Box(BoxContext* aContext, uint64_t aOffset, const Box* aParent) + : mContext(aContext), mParent(aParent) + { + uint8_t header[8]; ++ ++ if (aOffset > INT64_MAX - sizeof(header)) { ++ return; ++ } ++ + MediaByteRange headerRange(aOffset, aOffset + sizeof(header)); + if (mParent && !mParent->mRange.Contains(headerRange)) { + return; +@@ -67,11 +72,14 @@ Box::Box(BoxContext* aContext, uint64_t aOffset, const Box* aParent) + uint64_t size = BigEndian::readUint32(header); + if (size == 1) { + uint8_t bigLength[8]; ++ if (aOffset > INT64_MAX - sizeof(header) - sizeof(bigLength)) { ++ return; ++ } + MediaByteRange bigLengthRange(headerRange.mEnd, + headerRange.mEnd + sizeof(bigLength)); + if ((mParent && !mParent->mRange.Contains(bigLengthRange)) || + !byteRange->Contains(bigLengthRange) || +- !mContext->mSource->CachedReadAt(aOffset, bigLength, ++ !mContext->mSource->CachedReadAt(aOffset + sizeof(header), bigLength, + sizeof(bigLength), &bytes) || + bytes != sizeof(bigLength)) { + return; +@@ -82,10 +90,19 @@ Box::Box(BoxContext* aContext, uint64_t aOffset, const Box* aParent) + mBodyOffset = headerRange.mEnd; + } + ++ if (size > INT64_MAX) { ++ return; ++ } ++ int64_t end = static_cast(aOffset) + static_cast(size); ++ if (end < static_cast(aOffset)) { ++ // Overflowed. ++ return; ++ } ++ + mType = BigEndian::readUint32(&header[4]); + mChildOffset = mBodyOffset + BoxOffset(mType); + +- MediaByteRange boxRange(aOffset, aOffset + size); ++ MediaByteRange boxRange(aOffset, end); + if (mChildOffset > boxRange.mEnd || + (mParent && !mParent->mRange.Contains(boxRange)) || + !byteRange->Contains(boxRange)) { +-- +2.5.0 + diff --git a/gnu/packages/patches/icecat-CVE-2015-4513-pt10.patch b/gnu/packages/patches/icecat-CVE-2015-4513-pt10.patch new file mode 100644 index 0000000000..43dd17786f --- /dev/null +++ b/gnu/packages/patches/icecat-CVE-2015-4513-pt10.patch @@ -0,0 +1,110 @@ +From 7b6c571182661cfffa0987c1a88a2cb5a3230bcd Mon Sep 17 00:00:00 2001 +From: Georg Fritzsche +Date: Tue, 18 Aug 2015 19:21:40 +0200 +Subject: [PATCH] Bug 1193038 - Purposely leak StatisticsReport object and + suppress the leak report. r=glandium,mccr8,njn, a=lizzard + +--HG-- +extra : source : 346b9ee524d1a704ea953ef16237f3d0c7ee56d1 +extra : intermediate-source : 48b17faad125691454ebba9bdef0a5def9128f11 +--- + build/valgrind/cross-architecture.sup | 9 +++++++++ + toolkit/xre/nsAppRunner.cpp | 22 +++++++++++++++------- + 2 files changed, 24 insertions(+), 7 deletions(-) + +diff --git a/build/valgrind/cross-architecture.sup b/build/valgrind/cross-architecture.sup +index 9215d3b..1e9d7ab 100644 +--- a/build/valgrind/cross-architecture.sup ++++ b/build/valgrind/cross-architecture.sup +@@ -34,6 +34,15 @@ + fun:_ZN13CrashReporter14SetupExtraDataEP7nsIFileRK19nsACString_internal + ... + } ++{ ++ We purposely leak the StatisticsReporter object ++ Memcheck:Leak ++ fun:malloc ++ fun:moz_xmalloc ++ fun:operator new ++ fun:_Z21XRE_CreateStatsObjectv ++ ... ++} + + #################################### + # Leaks in third party libraries # +diff --git a/toolkit/xre/nsAppRunner.cpp b/toolkit/xre/nsAppRunner.cpp +index 5334a05..037aeac 100644 +--- a/toolkit/xre/nsAppRunner.cpp ++++ b/toolkit/xre/nsAppRunner.cpp +@@ -20,6 +20,7 @@ + #include "mozilla/Poison.h" + #include "mozilla/Preferences.h" + #include "mozilla/Telemetry.h" ++#include "mozilla/MemoryChecking.h" + + #include "nsAppRunner.h" + #include "mozilla/AppData.h" +@@ -3004,7 +3005,6 @@ public: + + ~XREMain() { + mScopedXPCOM = nullptr; +- mStatisticsRecorder = nullptr; + mAppData = nullptr; + } + +@@ -3023,7 +3023,6 @@ public: + #endif + + UniquePtr mScopedXPCOM; +- UniquePtr mStatisticsRecorder; + nsAutoPtr mAppData; + + nsXREDirProvider mDirProvider; +@@ -4268,10 +4267,6 @@ XREMain::XRE_main(int argc, char* argv[], const nsXREAppData* aAppData) + + NS_ENSURE_TRUE(aAppData, 2); + +- // A initializer to initialize histogram collection, a chromium +- // thing used by Telemetry. +- mStatisticsRecorder = MakeUnique(); +- + mAppData = new ScopedAppData(aAppData); + if (!mAppData) + return 1; +@@ -4345,7 +4340,6 @@ XREMain::XRE_main(int argc, char* argv[], const nsXREAppData* aAppData) + } + + mScopedXPCOM = nullptr; +- mStatisticsRecorder = nullptr; + + // unlock the profile after ScopedXPCOMStartup object (xpcom) + // has gone out of scope. see bug #386739 for more details +@@ -4531,11 +4525,25 @@ XRE_StopLateWriteChecks(void) { + mozilla::StopLateWriteChecks(); + } + ++// Separate stub function to let us specifically suppress it in Valgrind ++void ++XRE_CreateStatsObject() ++{ ++ // A initializer to initialize histogram collection, a chromium ++ // thing used by Telemetry (and effectively a global; it's all static). ++ // Note: purposely leaked ++ base::StatisticsRecorder* statistics_recorder = new base::StatisticsRecorder(); ++ MOZ_LSAN_INTENTIONALLY_LEAK_OBJECT(statistics_recorder); ++ unused << statistics_recorder; ++} ++ + int + XRE_main(int argc, char* argv[], const nsXREAppData* aAppData, uint32_t aFlags) + { + #if !defined(MOZ_METRO) || !defined(XP_WIN) + XREMain main; ++ ++ XRE_CreateStatsObject(); + int result = main.XRE_main(argc, argv, aAppData); + mozilla::RecordShutdownEndTimeStamp(); + return result; +-- +2.5.0 + diff --git a/gnu/packages/patches/icecat-CVE-2015-4513-pt11.patch b/gnu/packages/patches/icecat-CVE-2015-4513-pt11.patch new file mode 100644 index 0000000000..c4b326b9ed --- /dev/null +++ b/gnu/packages/patches/icecat-CVE-2015-4513-pt11.patch @@ -0,0 +1,42 @@ +From 72185a2795d4627203970e3c17fd9b3a6944edc6 Mon Sep 17 00:00:00 2001 +From: "Nicolas B. Pierron" +Date: Thu, 15 Oct 2015 10:57:39 +0200 +Subject: [PATCH] Bug 1204700 - ARM: Use a different scratch register for + store32. r=sstangl, a=lizzard + +--HG-- +extra : commitid : 8itRSfm5tEh +extra : source : ebafbc7c1a870499159cdd2ee91573f1b52c728a +--- + js/src/jit/arm/MacroAssembler-arm.cpp | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/js/src/jit/arm/MacroAssembler-arm.cpp b/js/src/jit/arm/MacroAssembler-arm.cpp +index 7b8c06e..c8030bb 100644 +--- a/js/src/jit/arm/MacroAssembler-arm.cpp ++++ b/js/src/jit/arm/MacroAssembler-arm.cpp +@@ -2487,8 +2487,8 @@ MacroAssemblerARMCompat::store32(Imm32 src, const Address& address) + void + MacroAssemblerARMCompat::store32(Imm32 imm, const BaseIndex& dest) + { +- ma_mov(imm, secondScratchReg_); +- store32(secondScratchReg_, dest); ++ ma_mov(imm, ScratchRegister); ++ store32(ScratchRegister, dest); + } + + void +@@ -2498,8 +2498,8 @@ MacroAssemblerARMCompat::store32(Register src, const BaseIndex& dest) + uint32_t scale = Imm32::ShiftOf(dest.scale).value; + + if (dest.offset != 0) { +- ma_add(base, Imm32(dest.offset), ScratchRegister); +- base = ScratchRegister; ++ ma_add(base, Imm32(dest.offset), secondScratchReg_); ++ base = secondScratchReg_; + } + ma_str(src, DTRAddr(base, DtrRegImmShift(dest.index, LSL, scale))); + } +-- +2.5.0 + diff --git a/gnu/packages/patches/icecat-CVE-2015-7188.patch b/gnu/packages/patches/icecat-CVE-2015-7188.patch new file mode 100644 index 0000000000..15e26e3a6e --- /dev/null +++ b/gnu/packages/patches/icecat-CVE-2015-7188.patch @@ -0,0 +1,143 @@ +From 23e5bd6ffab4b6fa17a92d0bc58fbd185e9a7e6e Mon Sep 17 00:00:00 2001 +From: Valentin Gosu +Date: Tue, 13 Oct 2015 11:10:26 +0200 +Subject: [PATCH] Bug 1199430 - Reject hostnames containing @. r=mcmanus, a=al + +--- + docshell/test/unit/test_nsDefaultURIFixup_info.js | 16 ++++++------ + netwerk/base/nsStandardURL.cpp | 30 ++++++++++++++--------- + netwerk/base/nsStandardURL.h | 2 +- + 3 files changed, 27 insertions(+), 21 deletions(-) + +diff --git a/docshell/test/unit/test_nsDefaultURIFixup_info.js b/docshell/test/unit/test_nsDefaultURIFixup_info.js +index b178ea9..dbb55c6 100644 +--- a/docshell/test/unit/test_nsDefaultURIFixup_info.js ++++ b/docshell/test/unit/test_nsDefaultURIFixup_info.js +@@ -199,12 +199,10 @@ let testcases = [ { + protocolChange: true + }, { + input: "[::1][100", +- fixedURI: "http://[::1][100/", +- alternateURI: "http://[::1][100/", ++ fixedURI: null, ++ alternateURI: null, + keywordLookup: true, +- protocolChange: true, +- affectedByWhitelist: true, +- affectedByDNSForSingleHosts: true, ++ protocolChange: true + }, { + input: "[::1]]", + keywordLookup: true, +@@ -514,15 +512,15 @@ if (Services.appinfo.OS.toLowerCase().startsWith("win")) { + input: "//mozilla", + fixedURI: "file:////mozilla", + protocolChange: true, +- }); ++ }); // \ is an invalid character in the hostname until bug 652186 is implemented + testcases.push({ + input: "mozilla\\", +- fixedURI: "http://mozilla\\/", +- alternateURI: "http://www.mozilla/", ++ // fixedURI: "http://mozilla\\/", ++ // alternateURI: "http://www.mozilla/", + keywordLookup: true, + protocolChange: true, + affectedByWhitelist: true, +- affectedByDNSForSingleHosts: true, ++ // affectedByDNSForSingleHosts: true, + }); + } + +diff --git a/netwerk/base/nsStandardURL.cpp b/netwerk/base/nsStandardURL.cpp +index f5f516f..cff90fc 100644 +--- a/netwerk/base/nsStandardURL.cpp ++++ b/netwerk/base/nsStandardURL.cpp +@@ -427,14 +427,16 @@ nsStandardURL::NormalizeIDN(const nsCSubstring &host, nsCString &result) + } + + bool +-nsStandardURL::ValidIPv6orHostname(const char *host) ++nsStandardURL::ValidIPv6orHostname(const char *host, uint32_t length) + { +- if (!host || !*host) { +- // Should not be NULL or empty string ++ if (!host) { + return false; + } + +- int32_t length = strlen(host); ++ if (length != strlen(host)) { ++ // Embedded null ++ return false; ++ } + + bool openBracket = host[0] == '['; + bool closeBracket = host[length - 1] == ']'; +@@ -448,8 +450,9 @@ nsStandardURL::ValidIPv6orHostname(const char *host) + return false; + } + +- if (PL_strchr(host, ':')) { +- // Hostnames should not contain a colon ++ const char *end = host + length; ++ if (end != net_FindCharInSet(host, end, "\t\n\v\f\r #/:?@[\\]")) { ++ // % is allowed because we don't do hostname percent decoding yet. + return false; + } + +@@ -587,6 +590,11 @@ nsStandardURL::BuildNormalizedSpec(const char *spec) + approxLen += encHost.Length(); + else + approxLen += mHost.mLen; ++ ++ if ((useEncHost && !ValidIPv6orHostname(encHost.BeginReading(), encHost.Length())) || ++ (!useEncHost && !ValidIPv6orHostname(tempHost.BeginReading(), tempHost.Length()))) { ++ return NS_ERROR_MALFORMED_URI; ++ } + } + + // +@@ -1580,14 +1588,10 @@ nsStandardURL::SetHost(const nsACString &input) + if (strchr(host, ' ')) + return NS_ERROR_MALFORMED_URI; + +- if (!ValidIPv6orHostname(host)) { +- return NS_ERROR_MALFORMED_URI; +- } +- + InvalidateCache(); + mHostEncoding = eEncoding_ASCII; + +- int32_t len; ++ uint32_t len; + nsAutoCString hostBuf; + if (NormalizeIDN(flat, hostBuf)) { + host = hostBuf.get(); +@@ -1596,6 +1600,10 @@ nsStandardURL::SetHost(const nsACString &input) + else + len = flat.Length(); + ++ if (!ValidIPv6orHostname(host, len)) { ++ return NS_ERROR_MALFORMED_URI; ++ } ++ + if (mHost.mLen < 0) { + int port_length = 0; + if (mPort != -1) { +diff --git a/netwerk/base/nsStandardURL.h b/netwerk/base/nsStandardURL.h +index 179a618..c56426e 100644 +--- a/netwerk/base/nsStandardURL.h ++++ b/netwerk/base/nsStandardURL.h +@@ -173,7 +173,7 @@ private: + void Clear(); + void InvalidateCache(bool invalidateCachedFile = true); + +- bool ValidIPv6orHostname(const char *host); ++ bool ValidIPv6orHostname(const char *host, uint32_t aLen); + bool NormalizeIDN(const nsCSubstring &host, nsCString &result); + void CoalescePath(netCoalesceFlags coalesceFlag, char *path); + +-- +2.5.0 + diff --git a/gnu/packages/patches/icecat-CVE-2015-7189.patch b/gnu/packages/patches/icecat-CVE-2015-7189.patch new file mode 100644 index 0000000000..329d1b6f1f --- /dev/null +++ b/gnu/packages/patches/icecat-CVE-2015-7189.patch @@ -0,0 +1,143 @@ +From 377e1cefec0fcf230caafb97b4414c835d27c7fe Mon Sep 17 00:00:00 2001 +From: Milan Sreckovic +Date: Fri, 2 Oct 2015 09:18:26 +0200 +Subject: [PATCH] Bug 1205900 - Compare context and canvas element sizes before + extracting the data. r=gwright, a=al + +--HG-- +extra : source : f6c99c8baa9b0b6a34d6791e5d4031a2de8f2087 +--- + dom/canvas/CanvasRenderingContext2D.cpp | 2 -- + dom/canvas/CanvasRenderingContext2D.h | 7 +++---- + dom/canvas/WebGLContext.cpp | 2 -- + dom/canvas/WebGLContext.h | 3 +-- + dom/canvas/nsICanvasRenderingContextInternal.h | 8 +++----- + dom/html/HTMLCanvasElement.cpp | 13 +++++++------ + 6 files changed, 14 insertions(+), 21 deletions(-) + +diff --git a/dom/canvas/CanvasRenderingContext2D.cpp b/dom/canvas/CanvasRenderingContext2D.cpp +index d9eaf99..a06fbce 100644 +--- a/dom/canvas/CanvasRenderingContext2D.cpp ++++ b/dom/canvas/CanvasRenderingContext2D.cpp +@@ -1418,7 +1418,6 @@ CanvasRenderingContext2D::EnsureTarget(RenderingMode aRenderingMode) + return mode; + } + +-#ifdef DEBUG + int32_t + CanvasRenderingContext2D::GetWidth() const + { +@@ -1430,7 +1429,6 @@ CanvasRenderingContext2D::GetHeight() const + { + return mHeight; + } +-#endif + + NS_IMETHODIMP + CanvasRenderingContext2D::SetDimensions(int32_t width, int32_t height) +diff --git a/dom/canvas/CanvasRenderingContext2D.h b/dom/canvas/CanvasRenderingContext2D.h +index af29c78..e853987 100644 +--- a/dom/canvas/CanvasRenderingContext2D.h ++++ b/dom/canvas/CanvasRenderingContext2D.h +@@ -481,10 +481,9 @@ public: + + nsresult Redraw(); + +-#ifdef DEBUG +- virtual int32_t GetWidth() const override; +- virtual int32_t GetHeight() const override; +-#endif ++ virtual int32_t GetWidth() const override; ++ virtual int32_t GetHeight() const override; ++ + // nsICanvasRenderingContextInternal + /** + * Gets the pres shell from either the canvas element or the doc shell +diff --git a/dom/canvas/WebGLContext.cpp b/dom/canvas/WebGLContext.cpp +index 1c22c27..f2a620a 100644 +--- a/dom/canvas/WebGLContext.cpp ++++ b/dom/canvas/WebGLContext.cpp +@@ -463,7 +463,6 @@ WebGLContext::SetContextOptions(JSContext* cx, JS::Handle options) + return NS_OK; + } + +-#ifdef DEBUG + int32_t + WebGLContext::GetWidth() const + { +@@ -475,7 +474,6 @@ WebGLContext::GetHeight() const + { + return mHeight; + } +-#endif + + /* So there are a number of points of failure here. We might fail based + * on EGL vs. WGL, or we might fail to alloc a too-large size, or we +diff --git a/dom/canvas/WebGLContext.h b/dom/canvas/WebGLContext.h +index 63c4091..210f341 100644 +--- a/dom/canvas/WebGLContext.h ++++ b/dom/canvas/WebGLContext.h +@@ -202,10 +202,9 @@ public: + NS_DECL_NSIDOMWEBGLRENDERINGCONTEXT + + // nsICanvasRenderingContextInternal +-#ifdef DEBUG + virtual int32_t GetWidth() const override; + virtual int32_t GetHeight() const override; +-#endif ++ + NS_IMETHOD SetDimensions(int32_t width, int32_t height) override; + NS_IMETHOD InitializeWithSurface(nsIDocShell*, gfxASurface*, int32_t, + int32_t) override +diff --git a/dom/canvas/nsICanvasRenderingContextInternal.h b/dom/canvas/nsICanvasRenderingContextInternal.h +index 3b1120f..fb1ef7c 100644 +--- a/dom/canvas/nsICanvasRenderingContextInternal.h ++++ b/dom/canvas/nsICanvasRenderingContextInternal.h +@@ -81,11 +81,9 @@ public: + return mCanvasElement; + } + +-#ifdef DEBUG +- // Useful for testing +- virtual int32_t GetWidth() const = 0; +- virtual int32_t GetHeight() const = 0; +-#endif ++ // Dimensions of the canvas, in pixels. ++ virtual int32_t GetWidth() const = 0; ++ virtual int32_t GetHeight() const = 0; + + // Sets the dimensions of the canvas, in pixels. Called + // whenever the size of the element changes. +diff --git a/dom/html/HTMLCanvasElement.cpp b/dom/html/HTMLCanvasElement.cpp +index f326662..68649f5 100644 +--- a/dom/html/HTMLCanvasElement.cpp ++++ b/dom/html/HTMLCanvasElement.cpp +@@ -526,18 +526,19 @@ HTMLCanvasElement::ToBlob(JSContext* aCx, + return; + } + +-#ifdef DEBUG + if (mCurrentContext) { + // We disallow canvases of width or height zero, and set them to 1, so + // we will have a discrepancy with the sizes of the canvas and the context. + // That discrepancy is OK, the rest are not. + nsIntSize elementSize = GetWidthHeight(); +- MOZ_ASSERT(elementSize.width == mCurrentContext->GetWidth() || +- (elementSize.width == 0 && mCurrentContext->GetWidth() == 1)); +- MOZ_ASSERT(elementSize.height == mCurrentContext->GetHeight() || +- (elementSize.height == 0 && mCurrentContext->GetHeight() == 1)); ++ if ((elementSize.width != mCurrentContext->GetWidth() && ++ (elementSize.width != 0 || mCurrentContext->GetWidth() != 1)) || ++ (elementSize.height != mCurrentContext->GetHeight() && ++ (elementSize.height != 0 || mCurrentContext->GetHeight() != 1))) { ++ aRv.Throw(NS_ERROR_FAILURE); ++ return; ++ } + } +-#endif + + uint8_t* imageBuffer = nullptr; + int32_t format = 0; +-- +2.5.0 + diff --git a/gnu/packages/patches/icecat-CVE-2015-7193.patch b/gnu/packages/patches/icecat-CVE-2015-7193.patch new file mode 100644 index 0000000000..798799de9f --- /dev/null +++ b/gnu/packages/patches/icecat-CVE-2015-7193.patch @@ -0,0 +1,397 @@ +From d135e3b3c48811c577e1632a41c5c50bc55c035c Mon Sep 17 00:00:00 2001 +From: Ehsan Akhgari +Date: Tue, 20 Oct 2015 11:40:12 +0200 +Subject: [PATCH] Bug 1210302 - Add a NS_ParseRequestContentType API; ba=al, + r=mcmanus, r=sicking, a=al + +--HG-- +extra : amend_source : d93021b626709b03f6499029dc3d1813cccba386 +--- + docshell/base/nsDocShell.cpp | 2 +- + dom/base/Navigator.cpp | 4 +-- + dom/base/nsContentUtils.cpp | 2 +- + dom/html/nsHTMLDocument.cpp | 2 +- + dom/manifest/ManifestProcessor.jsm | 6 ++-- + netwerk/base/moz.build | 1 + + netwerk/base/nsINetUtil_ESR_38.idl | 14 +++++++++ + netwerk/base/nsIOService.cpp | 12 ++++++++ + netwerk/base/nsIOService.h | 3 ++ + netwerk/base/nsNetUtil.h | 21 +++++++++++++ + netwerk/base/nsURLHelper.cpp | 60 +++++++++++++++++++++++++++++++++++--- + netwerk/base/nsURLHelper.h | 32 +++++++++++++++----- + 12 files changed, 139 insertions(+), 20 deletions(-) + create mode 100644 netwerk/base/nsINetUtil_ESR_38.idl + +diff --git a/docshell/base/nsDocShell.cpp b/docshell/base/nsDocShell.cpp +index bcc205c..4fc7c34 100644 +--- a/docshell/base/nsDocShell.cpp ++++ b/docshell/base/nsDocShell.cpp +@@ -13519,7 +13519,7 @@ nsDocShell::OnLinkClickSync(nsIContent* aContent, + anchor->GetType(typeHint); + NS_ConvertUTF16toUTF8 utf8Hint(typeHint); + nsAutoCString type, dummy; +- NS_ParseContentType(utf8Hint, type, dummy); ++ NS_ParseRequestContentType(utf8Hint, type, dummy); + CopyUTF8toUTF16(type, typeHint); + } + +diff --git a/dom/base/Navigator.cpp b/dom/base/Navigator.cpp +index f4ea502..7288420 100644 +--- a/dom/base/Navigator.cpp ++++ b/dom/base/Navigator.cpp +@@ -1221,9 +1221,9 @@ Navigator::SendBeacon(const nsAString& aUrl, + rv = secMan->CheckSameOriginURI(documentURI, uri, false); + bool crossOrigin = NS_FAILED(rv); + nsAutoCString contentType, parsedCharset; +- rv = NS_ParseContentType(mimeType, contentType, parsedCharset); ++ rv = NS_ParseRequestContentType(mimeType, contentType, parsedCharset); + if (crossOrigin && +- contentType.Length() > 0 && ++ mimeType.Length() > 0 && + !contentType.Equals(APPLICATION_WWW_FORM_URLENCODED) && + !contentType.Equals(MULTIPART_FORM_DATA) && + !contentType.Equals(TEXT_PLAIN)) { +diff --git a/dom/base/nsContentUtils.cpp b/dom/base/nsContentUtils.cpp +index 5e8dbd6..686f7bf 100644 +--- a/dom/base/nsContentUtils.cpp ++++ b/dom/base/nsContentUtils.cpp +@@ -7001,7 +7001,7 @@ nsContentUtils::IsAllowedNonCorsContentType(const nsACString& aHeaderValue) + nsAutoCString contentType; + nsAutoCString unused; + +- nsresult rv = NS_ParseContentType(aHeaderValue, contentType, unused); ++ nsresult rv = NS_ParseRequestContentType(aHeaderValue, contentType, unused); + if (NS_FAILED(rv)) { + return false; + } +diff --git a/dom/html/nsHTMLDocument.cpp b/dom/html/nsHTMLDocument.cpp +index 7481109..d195792 100644 +--- a/dom/html/nsHTMLDocument.cpp ++++ b/dom/html/nsHTMLDocument.cpp +@@ -1422,7 +1422,7 @@ nsHTMLDocument::Open(JSContext* cx, + nsAutoString type; + nsContentUtils::ASCIIToLower(aType, type); + nsAutoCString actualType, dummy; +- NS_ParseContentType(NS_ConvertUTF16toUTF8(type), actualType, dummy); ++ NS_ParseRequestContentType(NS_ConvertUTF16toUTF8(type), actualType, dummy); + if (!actualType.EqualsLiteral("text/html") && + !type.EqualsLiteral("replace")) { + contentType.AssignLiteral("text/plain"); +diff --git a/dom/manifest/ManifestProcessor.jsm b/dom/manifest/ManifestProcessor.jsm +index b6df920..f16881a 100644 +--- a/dom/manifest/ManifestProcessor.jsm ++++ b/dom/manifest/ManifestProcessor.jsm +@@ -31,7 +31,7 @@ const imports = {}; + Cu.import('resource://gre/modules/Services.jsm', imports); + Cu.importGlobalProperties(['URL']); + const securityManager = imports.Services.scriptSecurityManager; +-const netutil = Cc['@mozilla.org/network/util;1'].getService(Ci.nsINetUtil); ++const netutil = Cc['@mozilla.org/network/util;1'].getService(Ci.nsINetUtil_ESR_38); + const defaultDisplayMode = 'browser'; + const displayModes = new Set([ + 'fullscreen', +@@ -258,7 +258,7 @@ this.ManifestProcessor.prototype.process = function({ + }; + let value = extractValue(obj), + isParsable = (typeof value === 'string' && value.length > 0); +- value = (isParsable) ? netutil.parseContentType(value.trim(), charset, hadCharset) : undefined; ++ value = (isParsable) ? netutil.parseRequestContentType(value.trim(), charset, hadCharset) : undefined; + return (value === '') ? undefined : value; + } + +@@ -354,4 +354,4 @@ this.ManifestProcessor.prototype.process = function({ + }; + processedManifest.scope = processScopeMember(manifest, manifestURL, docURL, processedManifest.start_url); + return processedManifest; +-}; +\ No newline at end of file ++}; +diff --git a/netwerk/base/moz.build b/netwerk/base/moz.build +index 877365b..deedf76 100644 +--- a/netwerk/base/moz.build ++++ b/netwerk/base/moz.build +@@ -59,6 +59,7 @@ XPIDL_SOURCES += [ + 'nsINestedURI.idl', + 'nsINetAddr.idl', + 'nsINetUtil.idl', ++ 'nsINetUtil_ESR_38.idl', + 'nsINetworkInterceptController.idl', + 'nsINetworkLinkService.idl', + 'nsINetworkPredictor.idl', +diff --git a/netwerk/base/nsINetUtil_ESR_38.idl b/netwerk/base/nsINetUtil_ESR_38.idl +new file mode 100644 +index 0000000..7ef40e9 +--- /dev/null ++++ b/netwerk/base/nsINetUtil_ESR_38.idl +@@ -0,0 +1,14 @@ ++/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ ++/* This Source Code Form is subject to the terms of the Mozilla Public ++ * License, v. 2.0. If a copy of the MPL was not distributed with this ++ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ ++ ++#include "nsISupports.idl" ++ ++[scriptable, uuid(e82f2b9d-8bac-48bb-ade7-26a7cd4fb894)] ++interface nsINetUtil_ESR_38 : nsISupports ++{ ++ AUTF8String parseRequestContentType(in AUTF8String aTypeHeader, ++ out AUTF8String aCharset, ++ out boolean aHadCharset); ++}; +diff --git a/netwerk/base/nsIOService.cpp b/netwerk/base/nsIOService.cpp +index 83db86f..9a17e8b 100644 +--- a/netwerk/base/nsIOService.cpp ++++ b/netwerk/base/nsIOService.cpp +@@ -321,6 +321,7 @@ NS_IMPL_ISUPPORTS(nsIOService, + nsIIOService, + nsIIOService2, + nsINetUtil, ++ nsINetUtil_ESR_38, + nsISpeculativeConnect, + nsIObserver, + nsISupportsWeakReference) +@@ -1280,6 +1281,17 @@ nsIOService::Observe(nsISupports *subject, + + // nsINetUtil interface + NS_IMETHODIMP ++nsIOService::ParseRequestContentType(const nsACString &aTypeHeader, ++ nsACString &aCharset, ++ bool *aHadCharset, ++ nsACString &aContentType) ++{ ++ net_ParseRequestContentType(aTypeHeader, aContentType, aCharset, aHadCharset); ++ return NS_OK; ++} ++ ++// nsINetUtil interface ++NS_IMETHODIMP + nsIOService::ParseContentType(const nsACString &aTypeHeader, + nsACString &aCharset, + bool *aHadCharset, +diff --git a/netwerk/base/nsIOService.h b/netwerk/base/nsIOService.h +index acd501c..b125709 100644 +--- a/netwerk/base/nsIOService.h ++++ b/netwerk/base/nsIOService.h +@@ -14,6 +14,7 @@ + #include "nsIObserver.h" + #include "nsWeakReference.h" + #include "nsINetUtil.h" ++#include "nsINetUtil_ESR_38.h" + #include "nsIChannelEventSink.h" + #include "nsCategoryCache.h" + #include "nsISpeculativeConnect.h" +@@ -47,6 +48,7 @@ namespace net { + class nsIOService final : public nsIIOService2 + , public nsIObserver + , public nsINetUtil ++ , public nsINetUtil_ESR_38 + , public nsISpeculativeConnect + , public nsSupportsWeakReference + { +@@ -56,6 +58,7 @@ public: + NS_DECL_NSIIOSERVICE2 + NS_DECL_NSIOBSERVER + NS_DECL_NSINETUTIL ++ NS_DECL_NSINETUTIL_ESR_38 + NS_DECL_NSISPECULATIVECONNECT + + // Gets the singleton instance of the IO Service, creating it as needed +diff --git a/netwerk/base/nsNetUtil.h b/netwerk/base/nsNetUtil.h +index ec69716..df8874c 100644 +--- a/netwerk/base/nsNetUtil.h ++++ b/netwerk/base/nsNetUtil.h +@@ -56,6 +56,7 @@ + #include "nsISyncStreamListener.h" + #include "nsInterfaceRequestorAgg.h" + #include "nsINetUtil.h" ++#include "nsINetUtil_ESR_38.h" + #include "nsIURIWithPrincipal.h" + #include "nsIAuthPrompt.h" + #include "nsIAuthPrompt2.h" +@@ -1228,6 +1229,26 @@ NS_GetReferrerFromChannel(nsIChannel *channel, + } + + inline nsresult ++NS_ParseRequestContentType(const nsACString &rawContentType, ++ nsCString &contentType, ++ nsCString &contentCharset) ++{ ++ // contentCharset is left untouched if not present in rawContentType ++ nsresult rv; ++ nsCOMPtr util = do_GetNetUtil(&rv); ++ NS_ENSURE_SUCCESS(rv, rv); ++ nsCOMPtr utilESR38 = do_QueryInterface(util, &rv); ++ NS_ENSURE_SUCCESS(rv, rv); ++ nsCString charset; ++ bool hadCharset; ++ rv = utilESR38->ParseRequestContentType(rawContentType, charset, &hadCharset, ++ contentType); ++ if (NS_SUCCEEDED(rv) && hadCharset) ++ contentCharset = charset; ++ return rv; ++} ++ ++inline nsresult + NS_ParseContentType(const nsACString &rawContentType, + nsCString &contentType, + nsCString &contentCharset) +diff --git a/netwerk/base/nsURLHelper.cpp b/netwerk/base/nsURLHelper.cpp +index 10ea849..cdb2120 100644 +--- a/netwerk/base/nsURLHelper.cpp ++++ b/netwerk/base/nsURLHelper.cpp +@@ -803,7 +803,8 @@ net_ParseMediaType(const nsACString &aMediaTypeStr, + int32_t aOffset, + bool *aHadCharset, + int32_t *aCharsetStart, +- int32_t *aCharsetEnd) ++ int32_t *aCharsetEnd, ++ bool aStrict) + { + const nsCString& flatStr = PromiseFlatCString(aMediaTypeStr); + const char* start = flatStr.get(); +@@ -820,6 +821,8 @@ net_ParseMediaType(const nsACString &aMediaTypeStr, + int32_t charsetParamStart = 0; + int32_t charsetParamEnd = 0; + ++ uint32_t consumed = typeEnd - type; ++ + // Iterate over parameters + bool typeHasCharset = false; + uint32_t paramStart = flatStr.FindChar(';', typeEnd - start); +@@ -843,6 +846,7 @@ net_ParseMediaType(const nsACString &aMediaTypeStr, + charsetParamEnd = curParamEnd; + } + ++ consumed = curParamEnd; + curParamStart = curParamEnd + 1; + } while (curParamStart < flatStr.Length()); + } +@@ -872,8 +876,10 @@ net_ParseMediaType(const nsACString &aMediaTypeStr, + // some servers give junk after the charset parameter, which may + // include a comma, so this check makes us a bit more tolerant. + +- if (type != typeEnd && strncmp(type, "*/*", typeEnd - type) != 0 && +- memchr(type, '/', typeEnd - type) != nullptr) { ++ if (type != typeEnd && ++ memchr(type, '/', typeEnd - type) != nullptr && ++ (aStrict ? (net_FindCharNotInSet(start + consumed, end, HTTP_LWS) == end) : ++ (strncmp(type, "*/*", typeEnd - type) != 0))) { + // Common case here is that aContentType is empty + bool eq = !aContentType.IsEmpty() && + aContentType.Equals(Substring(type, typeEnd), +@@ -980,13 +986,59 @@ net_ParseContentType(const nsACString &aHeaderStr, + net_ParseMediaType(Substring(flatStr, curTypeStart, + curTypeEnd - curTypeStart), + aContentType, aContentCharset, curTypeStart, +- aHadCharset, aCharsetStart, aCharsetEnd); ++ aHadCharset, aCharsetStart, aCharsetEnd, false); + + // And let's move on to the next media-type + curTypeStart = curTypeEnd + 1; + } while (curTypeStart < flatStr.Length()); + } + ++void ++net_ParseRequestContentType(const nsACString &aHeaderStr, ++ nsACString &aContentType, ++ nsACString &aContentCharset, ++ bool *aHadCharset) ++{ ++ // ++ // Augmented BNF (from RFC 7231 section 3.1.1.1): ++ // ++ // media-type = type "/" subtype *( OWS ";" OWS parameter ) ++ // type = token ++ // subtype = token ++ // parameter = token "=" ( token / quoted-string ) ++ // ++ // Examples: ++ // ++ // text/html ++ // text/html; charset=ISO-8859-1 ++ // text/html; charset="ISO-8859-1" ++ // application/octet-stream ++ // ++ ++ aContentType.Truncate(); ++ aContentCharset.Truncate(); ++ *aHadCharset = false; ++ const nsCString& flatStr = PromiseFlatCString(aHeaderStr); ++ ++ // At this point curTypeEnd points to the spot where the media-type ++ // starting at curTypeEnd ends. Time to parse that! ++ nsAutoCString contentType, contentCharset; ++ bool hadCharset = false; ++ int32_t dummy1, dummy2; ++ uint32_t typeEnd = net_FindMediaDelimiter(flatStr, 0, ','); ++ if (typeEnd != flatStr.Length()) { ++ // We have some stuff left at the end, so this is not a valid ++ // request Content-Type header. ++ return; ++ } ++ net_ParseMediaType(flatStr, contentType, contentCharset, 0, ++ &hadCharset, &dummy1, &dummy2, true); ++ ++ aContentType = contentType; ++ aContentCharset = contentCharset; ++ *aHadCharset = hadCharset; ++} ++ + bool + net_IsValidHostName(const nsCSubstring &host) + { +diff --git a/netwerk/base/nsURLHelper.h b/netwerk/base/nsURLHelper.h +index 816a3c5..21e17be 100644 +--- a/netwerk/base/nsURLHelper.h ++++ b/netwerk/base/nsURLHelper.h +@@ -172,11 +172,27 @@ char * net_RFindCharNotInSet(const char *str, const char *end, const char *set); + * specified), aHadCharset is set to false. Otherwise, it's set to + * true. Note that aContentCharset can be empty even if aHadCharset + * is true. ++ * ++ * This parsing is suitable for HTTP request. Use net_ParseContentType ++ * for parsing this header in HTTP responses. ++ */ ++void net_ParseRequestContentType(const nsACString &aHeaderStr, ++ nsACString &aContentType, ++ nsACString &aContentCharset, ++ bool* aHadCharset); ++ ++/** ++ * Parses a content-type header and returns the content type and ++ * charset (if any). aCharset is not modified if no charset is ++ * specified in anywhere in aHeaderStr. In that case (no charset ++ * specified), aHadCharset is set to false. Otherwise, it's set to ++ * true. Note that aContentCharset can be empty even if aHadCharset ++ * is true. + */ + void net_ParseContentType(const nsACString &aHeaderStr, +- nsACString &aContentType, +- nsACString &aContentCharset, +- bool* aHadCharset); ++ nsACString &aContentType, ++ nsACString &aContentCharset, ++ bool* aHadCharset); + /** + * As above, but also returns the start and end indexes for the charset + * parameter in aHeaderStr. These are indices for the entire parameter, NOT +@@ -187,11 +203,11 @@ void net_ParseContentType(const nsACString &aHeaderStr, + * *aCharsetStart is nonnegative; this corresponds to charset="". + */ + void net_ParseContentType(const nsACString &aHeaderStr, +- nsACString &aContentType, +- nsACString &aContentCharset, +- bool *aHadCharset, +- int32_t *aCharsetStart, +- int32_t *aCharsetEnd); ++ nsACString &aContentType, ++ nsACString &aContentCharset, ++ bool *aHadCharset, ++ int32_t *aCharsetStart, ++ int32_t *aCharsetEnd); + + /* inline versions */ + +-- +2.5.0 + diff --git a/gnu/packages/patches/icecat-CVE-2015-7194.patch b/gnu/packages/patches/icecat-CVE-2015-7194.patch new file mode 100644 index 0000000000..481da06a7f --- /dev/null +++ b/gnu/packages/patches/icecat-CVE-2015-7194.patch @@ -0,0 +1,32 @@ +From 382a08fa0b21d46c44c46af39041324f304a9dfa Mon Sep 17 00:00:00 2001 +From: Aaron Klotz +Date: Tue, 13 Oct 2015 12:20:25 -0600 +Subject: [PATCH] Bug 1211262: Ensure that STORED entries in ZIP are considered + corrupt if compressed and uncompressed sizes differ; r=mwu, a=ritu + +--HG-- +extra : source : 673d9f45b802f1fd1ffaaeae19d433622fe68a5e +extra : intermediate-source : db9d3e806685d72a2891830ffbc42ef3cde559ae +--- + modules/libjar/nsZipArchive.cpp | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/modules/libjar/nsZipArchive.cpp b/modules/libjar/nsZipArchive.cpp +index bb1e21b..eaf22ac 100644 +--- a/modules/libjar/nsZipArchive.cpp ++++ b/modules/libjar/nsZipArchive.cpp +@@ -828,8 +828,10 @@ MOZ_WIN_MEM_TRY_BEGIN + // -- check if there is enough source data in the file + if (!offset || + mFd->mLen < aItem->Size() || +- offset > mFd->mLen - aItem->Size()) ++ offset > mFd->mLen - aItem->Size() || ++ (aItem->Compression() == STORED && aItem->Size() != aItem->RealSize())) { + return nullptr; ++ } + + return mFd->mFileData + offset; + MOZ_WIN_MEM_TRY_CATCH(return nullptr) +-- +2.5.0 + diff --git a/gnu/packages/patches/icecat-CVE-2015-7196.patch b/gnu/packages/patches/icecat-CVE-2015-7196.patch new file mode 100644 index 0000000000..6114ebf505 --- /dev/null +++ b/gnu/packages/patches/icecat-CVE-2015-7196.patch @@ -0,0 +1,27 @@ +From 3ed5c713015536b49dc88d3d4a36b60833ccd09a Mon Sep 17 00:00:00 2001 +From: Jan de Mooij +Date: Tue, 25 Aug 2015 13:11:41 +0200 +Subject: [PATCH] Bug 1140616 - Crash when _releaseobject is called on the + wrong thread. r=bsmedberg, a=sledru, a=lizzard + +--HG-- +extra : source : 6a513309283d06f56cebee8528cfcf134a74f3c4 +--- + dom/plugins/base/nsNPAPIPlugin.cpp | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/dom/plugins/base/nsNPAPIPlugin.cpp b/dom/plugins/base/nsNPAPIPlugin.cpp +index f0d07fa..9cd2e05 100644 +--- a/dom/plugins/base/nsNPAPIPlugin.cpp ++++ b/dom/plugins/base/nsNPAPIPlugin.cpp +@@ -1413,6 +1413,7 @@ _releaseobject(NPObject* npobj) + { + if (!NS_IsMainThread()) { + NPN_PLUGIN_LOG(PLUGIN_LOG_ALWAYS,("NPN_releaseobject called from the wrong thread\n")); ++ MOZ_CRASH("NPN_releaseobject called from the wrong thread"); + } + if (!npobj) + return; +-- +2.5.0 + diff --git a/gnu/packages/patches/icecat-CVE-2015-7197.patch b/gnu/packages/patches/icecat-CVE-2015-7197.patch new file mode 100644 index 0000000000..1763341ff7 --- /dev/null +++ b/gnu/packages/patches/icecat-CVE-2015-7197.patch @@ -0,0 +1,70 @@ +From a522e727bff0fb69cb0d34c2d2ad89168d15158d Mon Sep 17 00:00:00 2001 +From: Ehsan Akhgari +Date: Sat, 12 Sep 2015 17:38:51 -0400 +Subject: [PATCH] Bug 1204269 - Use the worker private in order to determine + the origin of the entry settings object for workers; r=smaug a=me + +--- + dom/base/WebSocket.cpp | 46 ++++++++++++++++++++++++++-------------------- + 1 file changed, 26 insertions(+), 20 deletions(-) + +diff --git a/dom/base/WebSocket.cpp b/dom/base/WebSocket.cpp +index ea91232..26b94d0 100644 +--- a/dom/base/WebSocket.cpp ++++ b/dom/base/WebSocket.cpp +@@ -1503,26 +1503,32 @@ WebSocketImpl::Init(JSContext* aCx, + !Preferences::GetBool("network.websocket.allowInsecureFromHTTPS", + false)) { + // Confirmed we are opening plain ws:// and want to prevent this from a +- // secure context (e.g. https). Check the principal's uri to determine if +- // we were loaded from https. +- nsCOMPtr globalObject(GetEntryGlobal()); +- if (globalObject) { +- nsCOMPtr principal(globalObject->PrincipalOrNull()); +- if (principal) { +- nsCOMPtr uri; +- principal->GetURI(getter_AddRefs(uri)); +- if (uri) { +- bool originIsHttps = false; +- aRv = uri->SchemeIs("https", &originIsHttps); +- if (NS_WARN_IF(aRv.Failed())) { +- return; +- } +- +- if (originIsHttps) { +- aRv.Throw(NS_ERROR_DOM_SECURITY_ERR); +- return; +- } +- } ++ // secure context (e.g. https). ++ nsCOMPtr principal; ++ nsCOMPtr originURI; ++ if (mWorkerPrivate) { ++ // For workers, retrieve the URI from the WorkerPrivate ++ principal = mWorkerPrivate->GetPrincipal(); ++ } else { ++ // Check the principal's uri to determine if we were loaded from https. ++ nsCOMPtr globalObject(GetEntryGlobal()); ++ if (globalObject) { ++ principal = globalObject->PrincipalOrNull(); ++ } ++ } ++ ++ if (principal) { ++ principal->GetURI(getter_AddRefs(originURI)); ++ } ++ if (originURI) { ++ bool originIsHttps = false; ++ aRv = originURI->SchemeIs("https", &originIsHttps); ++ if (NS_WARN_IF(aRv.Failed())) { ++ return; ++ } ++ if (originIsHttps) { ++ aRv.Throw(NS_ERROR_DOM_SECURITY_ERR); ++ return; + } + } + } +-- +2.5.0 + diff --git a/gnu/packages/patches/icecat-CVE-2015-7198.patch b/gnu/packages/patches/icecat-CVE-2015-7198.patch new file mode 100644 index 0000000000..2e127897bc --- /dev/null +++ b/gnu/packages/patches/icecat-CVE-2015-7198.patch @@ -0,0 +1,27 @@ +From cc2a334ee16e99d376fcb49203239abf9eb2c148 Mon Sep 17 00:00:00 2001 +From: Jeff Gilbert +Date: Wed, 7 Oct 2015 13:27:37 -0700 +Subject: [PATCH] Bug 1188010 - Use MOZ_RELEASE_ASSERT when failure means + overflow. - r=kamidphish, a=abillings + +--- + dom/canvas/WebGLTexture.cpp | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/dom/canvas/WebGLTexture.cpp b/dom/canvas/WebGLTexture.cpp +index 60afc45..d6a6ccd 100644 +--- a/dom/canvas/WebGLTexture.cpp ++++ b/dom/canvas/WebGLTexture.cpp +@@ -651,8 +651,7 @@ WebGLTexture::EnsureNoUninitializedImageData(TexImageTarget imageTarget, + imageInfo.mDepth, + bytespertexel, + mContext->mPixelStoreUnpackAlignment); +- MOZ_ASSERT(checked_byteLength.isValid()); // Should have been checked +- // earlier. ++ MOZ_RELEASE_ASSERT(checked_byteLength.isValid()); // Should have been checked earlier. + + // Infallible for now. + UniquePtr zeros((uint8_t*)moz_xcalloc(1, +-- +2.5.0 + diff --git a/gnu/packages/patches/icecat-CVE-2015-7199.patch b/gnu/packages/patches/icecat-CVE-2015-7199.patch new file mode 100644 index 0000000000..d6b830b8a0 --- /dev/null +++ b/gnu/packages/patches/icecat-CVE-2015-7199.patch @@ -0,0 +1,84 @@ +From 04741232fa561a4c299f31a5b5fb4603da79d2c5 Mon Sep 17 00:00:00 2001 +From: Robert Longson +Date: Tue, 6 Oct 2015 13:19:03 +0100 +Subject: [PATCH] Bug 1204061 - check return values from some methods + r=dholbert, a=sylvestre + +--HG-- +extra : source : f4c2f277aeae7bf8b05c6b01d1e140cd51b693b4 +--- + dom/svg/SVGPathSegListSMILType.cpp | 23 +++++++++++------------ + 1 file changed, 11 insertions(+), 12 deletions(-) + +diff --git a/dom/svg/SVGPathSegListSMILType.cpp b/dom/svg/SVGPathSegListSMILType.cpp +index f8b67d0..6df0f53 100644 +--- a/dom/svg/SVGPathSegListSMILType.cpp ++++ b/dom/svg/SVGPathSegListSMILType.cpp +@@ -232,7 +232,7 @@ AddWeightedPathSegs(double aCoeff1, + * identity, in which case we'll grow it to the right + * size. Also allowed to be the same list as aList1. + */ +-static void ++static nsresult + AddWeightedPathSegLists(double aCoeff1, const SVGPathDataAndInfo& aList1, + double aCoeff2, const SVGPathDataAndInfo& aList2, + SVGPathDataAndInfo& aResult) +@@ -263,8 +263,9 @@ AddWeightedPathSegLists(double aCoeff1, const SVGPathDataAndInfo& aList1, + // because in that case, we will have already set iter1 to nullptr above, to + // record that our first operand is an identity value.) + if (aResult.IsIdentity()) { +- DebugOnly success = aResult.SetLength(aList2.Length()); +- MOZ_ASSERT(success, "infallible nsTArray::SetLength should succeed"); ++ if (!aResult.SetLength(aList2.Length())) { ++ return NS_ERROR_OUT_OF_MEMORY; ++ } + aResult.SetElement(aList2.Element()); // propagate target element info! + } + +@@ -280,6 +281,7 @@ AddWeightedPathSegLists(double aCoeff1, const SVGPathDataAndInfo& aList1, + iter2 == end2 && + resultIter == aResult.end(), + "Very, very bad - path data corrupt"); ++ return NS_OK; + } + + static void +@@ -429,9 +431,7 @@ SVGPathSegListSMILType::Add(nsSMILValue& aDest, + } + } + +- AddWeightedPathSegLists(1.0, dest, aCount, valueToAdd, dest); +- +- return NS_OK; ++ return AddWeightedPathSegLists(1.0, dest, aCount, valueToAdd, dest); + } + + nsresult +@@ -482,8 +482,9 @@ SVGPathSegListSMILType::Interpolate(const nsSMILValue& aStartVal, + if (check == eRequiresConversion) { + // Can't convert |start| in-place, since it's const. Instead, we copy it + // into |result|, converting the types as we go, and use that as our start. +- DebugOnly success = result.SetLength(end.Length()); +- MOZ_ASSERT(success, "infallible nsTArray::SetLength should succeed"); ++ if (!result.SetLength(end.Length())) { ++ return NS_ERROR_OUT_OF_MEMORY; ++ } + result.SetElement(end.Element()); // propagate target element info! + + ConvertAllPathSegmentData(start.begin(), start.end(), +@@ -492,10 +493,8 @@ SVGPathSegListSMILType::Interpolate(const nsSMILValue& aStartVal, + startListToUse = &result; + } + +- AddWeightedPathSegLists(1.0 - aUnitDistance, *startListToUse, +- aUnitDistance, end, result); +- +- return NS_OK; ++ return AddWeightedPathSegLists(1.0 - aUnitDistance, *startListToUse, ++ aUnitDistance, end, result); + } + + } // namespace mozilla +-- +2.5.0 + -- cgit v1.2.3 From 1c40e3b785539c4a59ede324afa250a59597ea21 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Sat, 7 Nov 2015 21:31:04 +0800 Subject: gnu: brasero: Use 'glib-or-gtk-build-system'. Fixes . Suggested by Andy Wingo . * gnu/packages/gnome.scm (brasero)[build-system]: Switch to GLIB-OR-GTK-BUILD-SYSTEM. --- gnu/packages/gnome.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 488d46cc70..f47b835116 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -104,7 +104,7 @@ (sha256 (base32 "09vi2hyhl0bz7imv3ky6h7x5m3d546n968wcghydwrkvwm9ylpls")))) - (build-system gnu-build-system) + (build-system glib-or-gtk-build-system) (arguments `(#:configure-flags (list (string-append "--with-girdir=" -- cgit v1.2.3 From 8664cc882c2bfc0be48e2b9303cf34ab12f30fa3 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sat, 7 Nov 2015 18:47:03 +0100 Subject: services: Add 'gpm-service'. * gnu/services/base.scm (): New record type. (gpm-dmd-service): New procedure. (gpm-service-type): New variable. (gpm-service): New procedure. * doc/guix.texi (Base Services): Document it. --- doc/guix.texi | 10 +++++++++ gnu/services/base.scm | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 67 insertions(+), 1 deletion(-) diff --git a/doc/guix.texi b/doc/guix.texi index fd80a30f51..6a079477b1 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -6445,6 +6445,16 @@ Return a service to load console keymap from @var{file} using @command{loadkeys} command. @end deffn +@deffn {Scheme Procedure} gpm-service-type [#:gpm @var{gpm}] @ + [#:options] +Run @var{gpm}, the general-purpose mouse daemon, with the given +command-line @var{options}. GPM allows users to use the mouse in the console, +notably to select, copy, and paste text. The default value of @var{options} +uses the @code{ps2} protocol, which works for both USB and PS/2 mice. + +This service is not part of @var{%base-services}. +@end deffn + @anchor{guix-publish-service} @deffn {Scheme Procedure} guix-publish-service [#:guix @var{guix}] @ [#:port 80] [#:host "localhost"] diff --git a/gnu/services/base.scm b/gnu/services/base.scm index 6165410463..291f1a0c58 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -28,7 +28,7 @@ #:use-module (gnu system file-systems) ; 'file-system', etc. #:use-module (gnu packages admin) #:use-module ((gnu packages linux) - #:select (eudev kbd e2fsprogs lvm2 fuse alsa-utils crda)) + #:select (eudev kbd e2fsprogs lvm2 fuse alsa-utils crda gpm)) #:use-module ((gnu packages base) #:select (canonical-package glibc)) #:use-module (gnu packages package-management) @@ -80,6 +80,8 @@ guix-publish-configuration? guix-publish-service guix-publish-service-type + gpm-service-type + gpm-service %base-services)) @@ -1113,6 +1115,60 @@ gexp, to open it, and evaluate @var{close} to close it." "Return a service that uses @var{device} as a swap device." (service swap-service-type device)) + +(define-record-type* + gpm-configuration make-gpm-configuration gpm-configuration? + (gpm gpm-configuration-gpm) ;package + (options gpm-configuration-options)) ;list of strings + +(define gpm-dmd-service + (match-lambda + (($ dmd options) + (list (dmd-service + (requirement '(udev)) + (provision '(gpm)) + (start #~(lambda () + ;; 'gpm' runs in the background and sets a PID file. + ;; Note that it requires running as "root". + (false-if-exception (delete-file "/var/run/gpm.pid")) + (fork+exec-command (list (string-append #$gpm "/sbin/gpm") + #$@options)) + + ;; Wait for the PID file to appear; declare failure if + ;; it doesn't show up. + (let loop ((i 3)) + (or (file-exists? "/var/run/gpm.pid") + (if (zero? i) + #f + (begin + (sleep 1) + (loop (1- i)))))))) + + (stop #~(lambda (_) + ;; Return #f if successfully stopped. + (not (zero? (system* (string-append #$gpm "/sbin/gpm") + "-k")))))))))) + +(define gpm-service-type + (service-type (name 'gpm) + (extensions + (list (service-extension dmd-root-service-type + gpm-dmd-service))))) + +(define* (gpm-service #:key (gpm gpm) + (options '("-m" "/dev/input/mice" "-t" "ps2"))) + "Run @var{gpm}, the general-purpose mouse daemon, with the given +command-line @var{options}. GPM allows users to use the mouse in the console, +notably to select, copy, and paste text. The default value of @var{options} +uses the @code{ps2} protocol, which works for both USB and PS/2 mice. + +This service is not part of @var{%base-services}." + ;; To test in QEMU, use "-usbdevice mouse" and then, in the monitor, use + ;; "info mice" and "mouse_set X" to use the right mouse. + (service gpm-service-type + (gpm-configuration (gpm gpm) (options options)))) + + (define %base-services ;; Convenience variable holding the basic services. (let ((motd (plain-file "motd" " -- cgit v1.2.3 From ae7ffa9e9b9135928f67ba9fb28c9d6766bf7088 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sat, 7 Nov 2015 18:48:21 +0100 Subject: install: Run GPM. Suggested by Adam Pribyl at . * gnu/system/install.scm (installation-services): Add call to 'gpm-service'. * doc/guix.texi (System Installation): Mention GPM. --- doc/guix.texi | 4 +++- gnu/system/install.scm | 3 +++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/doc/guix.texi b/doc/guix.texi index 6a079477b1..896a8c8496 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -5286,7 +5286,9 @@ Once you have successfully booted the image on the USB stick, you should end up with a root prompt. Several console TTYs are configured and can be used to run commands as root. TTY2 shows this documentation, browsable using the Info reader commands (@pxref{Help,,, info, Info: An -Introduction}). +Introduction}). The installation system runs the GPM mouse daemon, +which allows you to select text with the left mouse button and to paste +it with the middle button. To install the system, you would: diff --git a/gnu/system/install.scm b/gnu/system/install.scm index 93a6f18c49..887bceb155 100644 --- a/gnu/system/install.scm +++ b/gnu/system/install.scm @@ -306,6 +306,9 @@ You have been warned. Thanks for being so brave. (console-font-service "tty5") (console-font-service "tty6") + ;; To facilitate copy/paste. + (gpm-service) + ;; Since this is running on a USB stick with a unionfs as the root ;; file system, use an appropriate cache configuration. (nscd-service (nscd-configuration -- cgit v1.2.3 From a83404825990aedc3946eac44193524d281b5eaa Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Sun, 8 Nov 2015 21:27:49 +0800 Subject: gnu: gnome-desktop: Update to 3.18.1. * gnu/packages/gnome.scm (gnome-desktop): Update to 3.18.1. Move gsettings-desktop-schemas and gtk+ to 'propagated-inputs'. [native-inputs]: Add gobject-introspection. --- gnu/packages/gnome.scm | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index f47b835116..f7f79e6a24 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -166,7 +166,7 @@ commonly used macros.") (define-public gnome-desktop (package (name "gnome-desktop") - (version "3.16.2") + (version "3.18.1") (source (origin (method url-fetch) @@ -175,18 +175,21 @@ commonly used macros.") name "-" version ".tar.xz")) (sha256 (base32 - "1l3v48i2w90i2cc056j4km9jb23axxgzpf5gl8xvv7gb8rmik3rs")))) + "0avpmyhzz5b3pyfpkp8iq5ym5r5w7zs3a396hqkdpdsiym0vrazc")))) (build-system gnu-build-system) (native-inputs - `(("itstool" ,itstool) + `(("gobject-introspection" ,gobject-introspection) + ("itstool" ,itstool) ("intltool" ,intltool) ("pkg-config" ,pkg-config) ("xmllint" ,libxml2))) + (propagated-inputs + ;; Required by gnome-desktop-3.0.pc. + `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas) + ("gtk+" ,gtk+))) (inputs `(("gdk-pixbuf" ,gdk-pixbuf) ("glib" ,glib) - ("gsettings-desktop-schemas" ,gsettings-desktop-schemas) - ("gtk+" ,gtk+) ("iso-codes" ,iso-codes) ("libx11" ,libx11) ("libxext" ,libxext) -- cgit v1.2.3 From b64d218c44781de778aa2c24819de1310b9d80e4 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Sun, 8 Nov 2015 21:30:08 +0800 Subject: gnu: gnome-themes-standard: Update to 3.18.0. * gnu/packages/gnome.scm (gnome-themes-standard): Update to 3.18.0. --- gnu/packages/gnome.scm | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index f7f79e6a24..c09996720b 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -1554,9 +1554,7 @@ engineering.") (define-public gnome-themes-standard (package (name "gnome-themes-standard") - ;; The version of this package should be the same as the version of - ;; gnome-desktop. - (version (package-version gnome-desktop)) + (version "3.18.0") (source (origin (method url-fetch) @@ -1565,7 +1563,7 @@ engineering.") version ".tar.xz")) (sha256 (base32 - "17sbcpc9df1cnz84g3npvh1na65mkxaygqcdma6wvda4knjpkssr")))) + "1jxss8kxszhf66vic9n1sagczm5amm0mgxpzyxyjna15q82fnip6")))) (build-system gnu-build-system) (inputs `(("gtk+" ,gtk+) -- cgit v1.2.3 From 7ce493657bdf2b77be1cef72844db0e74209cf83 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Sun, 8 Nov 2015 21:33:24 +0800 Subject: gnu: Add gnome-session. * gnu/packages/gnome.scm (gnome-session): New variable. --- gnu/packages/gnome.scm | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index c09996720b..3030f1f949 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -3679,3 +3679,38 @@ environment that allows users to view, unpack, and create compressed archives such as gzip tarballs.") (home-page "http://fileroller.sourceforge.net/") (license license:gpl2+))) + +(define-public gnome-session + (package + (name "gnome-session") + (version "3.18.1.2") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/" name "/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "0icajbzqf5llvp5s8nafwkhwz6a6jmwn4hhs81bk0bpzawyq4zdk")))) + (build-system gnu-build-system) + (native-inputs + `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc. + ("pkg-config" ,pkg-config) + ("intltool" ,intltool) + ("xsltproc" ,libxslt))) + (inputs + `(("gnome-desktop" ,gnome-desktop) + ("gtk+" ,gtk+) + ("json-glib" ,json-glib) + ("libsm" ,libsm) + ("libxcomposite" ,libxcomposite) + ("libxtst" ,libxtst) + ("mesa" ,mesa) + ("upower" ,upower) + ("xtrans" ,xtrans))) + (synopsis "Session manager for GNOME") + (description + "This package contains the GNOME session manager, as well as a +configuration program to choose applications starting on login.") + (home-page "https://wiki.gnome.org/Projects/SessionManagement") + (license license:gpl2+))) -- cgit v1.2.3 From cefdcb3801dad656c8b711979c16b34313d57dc7 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Sun, 8 Nov 2015 21:34:58 +0800 Subject: gnu: Add mozjs-24 (Mozilla SpiderMonkey 24). * gnu/packages/gnuzilla.scm (mozjs-24): New variable. --- gnu/packages/gnuzilla.scm | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index 49e3b31537..f32c947f3c 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -92,6 +92,44 @@ in C/C++.") (license license:mpl2.0))) ; and others for some files +(define-public mozjs-24 + (package (inherit mozjs) + (name "mozjs") + (version "24.2.0") + (source (origin + (method url-fetch) + (uri (string-append + "https://ftp.mozilla.org/pub/mozilla.org/js/" + name "-" version ".tar.bz2")) + (sha256 + (base32 + "1n1phk8r3l8icqrrap4czplnylawa0ddc2cc4cgdz46x3lrkybz6")))) + (arguments + '(#:phases + (modify-phases %standard-phases + (replace + 'configure + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (chdir "js/src") + ;; configure fails if it is follwed by SHELL and CONFIG_SHELL + (setenv "SHELL" (which "sh")) + (setenv "CONFIG_SHELL" (which "sh")) + (zero? (system* "./configure" + (string-append "--prefix=" out) + "--with-system-nspr" + "--enable-system-ffi" + "--enable-threadsafe")))))))) + (native-inputs + `(("perl" ,perl) + ("pkg-config" ,pkg-config) + ("python" ,python-2))) + (propagated-inputs + `(("nspr" ,nspr))) ; in the Requires.private field of mozjs-24.pc + (inputs + `(("libffi" ,libffi) + ("zlib" ,zlib))))) + (define-public nspr (package (name "nspr") -- cgit v1.2.3 From f47ba77e5fe0c890c412953e1621ad63d1e6f3fe Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Sun, 8 Nov 2015 21:41:52 +0800 Subject: gnu: Add gjs. * gnu/packages/gnome.scm (gjs): New variable. --- gnu/packages/gnome.scm | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 3030f1f949..3c3742770f 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -90,6 +90,7 @@ #:use-module (gnu packages video) #:use-module (gnu packages cdrom) #:use-module (gnu packages samba) + #:use-module (gnu packages readline) #:use-module (srfi srfi-1)) (define-public brasero @@ -3714,3 +3715,50 @@ such as gzip tarballs.") configuration program to choose applications starting on login.") (home-page "https://wiki.gnome.org/Projects/SessionManagement") (license license:gpl2+))) + +(define-public gjs + (package + (name "gjs") + (version "1.44.0") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/" name "/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "106fgpr4y99sj68l72pnfa2za11ps4bn6p9z28fr79j7mpv61jc8")) + (modules '((guix build utils))) + (snippet '(substitute* "test/run-with-dbus" + (("/bin/rm") "rm"))))) + (build-system gnu-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-before + 'check 'pre-check + (lambda _ + ;; For the missing /etc/machine-id. + (setenv "DBUS_FATAL_WARNINGS" "0") + #t))))) + (native-inputs + `(("glib:bin" ,glib "bin") ; for glib-compile-resources + ("pkg-config" ,pkg-config) + ("xmllint" ,libxml2) + ;; For testing + ("dbus-launch" ,dbus) + ("uuidgen" ,util-linux) + ("xvfb" ,xorg-server))) + (propagated-inputs + ;; These are all in the Requires.private field of gjs-1.0.pc. + `(("gobject-introspection" ,gobject-introspection) + ("mozjs" ,mozjs-24))) + (inputs + `(("gtk+" ,gtk+) + ("readline" ,readline))) + (synopsis "Javascript bindings for GNOME") + (home-page "http://live.gnome.org/Gjs") + (description + "Gjs is a javascript binding for GNOME. It's mainly based on spidermonkey +javascript engine and the GObject introspection framework.") + (license license:gpl2+))) -- cgit v1.2.3 From c3b9d75f8d0a6664e471767eb178799291535374 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Sun, 8 Nov 2015 21:42:26 +0800 Subject: gnu: evince: Update to 3.18.1. * gnu/packages/gnome.scm (evince): Update to 3.18.1. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 3c3742770f..32c29ca128 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -386,7 +386,7 @@ forgotten when the session ends.") (define-public evince (package (name "evince") - (version "3.16.1") + (version "3.18.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -394,7 +394,7 @@ forgotten when the session ends.") name "-" version ".tar.xz")) (sha256 (base32 - "0c31pwfzfm5x036f018q31k33vl8xb96nbs0iiccsc1abc37bzq6")))) + "0cccmbvl1b6d2976642iyfr8g3r69zf3mzl2ln6vjvvdbrv26l3v")))) (build-system glib-or-gtk-build-system) (arguments `(#:configure-flags '("--disable-nautilus") -- cgit v1.2.3 From 552cb93c0a2b115eb37c362eb449d734d3bc6b57 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 8 Nov 2015 16:27:39 +0200 Subject: gnu: glpk: Update to 4.57. * gnu/packages/maths.scm (glpk): Update to 4.57. --- gnu/packages/maths.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 4eeb39d955..1d597d2819 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -175,7 +175,7 @@ numbers.") (define-public glpk (package (name "glpk") - (version "4.56") + (version "4.57") (source (origin (method url-fetch) @@ -183,7 +183,7 @@ numbers.") version ".tar.gz")) (sha256 (base32 - "0syzix6qvpn0fzp08c84c8snansf1cam5vd0dk2w91mz2c85d18h")))) + "0p17jj1ixd2m9lnsvx8nywmfmnplfk5gvw25r1gy84qzrjkv48vk")))) (build-system gnu-build-system) (inputs `(("gmp" ,gmp))) -- cgit v1.2.3 From 19659accef766cbb71d1c6aff1778621d4117613 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 8 Nov 2015 18:44:06 +0200 Subject: gnu: octave: Upgrade to 4.0.0. * gnu/packages/maths.scm (octave): Update to 4.0.0. --- gnu/packages/maths.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 1d597d2819..932c693898 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -401,7 +401,7 @@ extremely large and complex data collections.") (define-public octave (package (name "octave") - (version "3.8.2") + (version "4.0.0") (source (origin (method url-fetch) @@ -409,7 +409,7 @@ extremely large and complex data collections.") version ".tar.gz")) (sha256 (base32 - "05slz8yx8k91fqlnfr1f0vni95iq9qmchz41c7nf4isn3b2fjn7j")))) + "101jr9yck798586jz4vkjcgk36zksmxf1pxrzvipgn2xgyay0zjc")))) (build-system gnu-build-system) (inputs `(("lapack" ,lapack) -- cgit v1.2.3 From d8c97beb064cd710e182adec478861e62c80902f Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Fri, 6 Nov 2015 14:43:15 +0200 Subject: gnu: Add wcalc. * gnu/packages/maths.scm (wcalc): New variable. --- gnu/packages/maths.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 932c693898..27b1a48809 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -1962,3 +1962,30 @@ algorithm and optimum parameters depending on the dataset. FLANN is written in C++ and contains bindings for C, Octave and Python.") (license (license:non-copyleft "file://COPYING" "See COPYING in the distribution.")))) + +(define-public wcalc + (package + (name "wcalc") + (version "2.5") + (source + (origin + (method url-fetch) + (uri + (string-append + "mirror://sourceforge/w-calc/wcalc-" version ".tar.bz2")) + (sha256 + (base32 + "1vi8dl6rccqiq1apmpwawyg2ywx6a1ic1d3cvkf2hlwk1z11fb0f")))) + (build-system gnu-build-system) + (inputs + `(("mpfr" ,mpfr) + ("readline" ,readline))) + (home-page "http://w-calc.sourceforge.net/index.php") + (synopsis "Flexible command-line scientific calculator") + (description "Wcalc is a very capable calculator. It has standard functions +(sin, asin, and sinh for example, in either radians or degrees), many +pre-defined constants (pi, e, c, etc.), support for using variables, \"active\" +variables, a command history, hex/octal/binary input and output, unit +conversions, embedded comments, and an expandable expression entry field. It +evaluates expressions using the standard order of operations.") + (license license:gpl2+))) -- cgit v1.2.3 From b68d2dbf0850d52e393f902dd64371cde85515a8 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 8 Nov 2015 21:57:42 +0100 Subject: refresh: Discard PyPI updater when Guile-JSON is missing. Reported by Sleep_Walker and Mathieu Lirzin . * guix/scripts/refresh.scm (maybe-updater, list-updaters): New macros. (%updaters): Use 'list-updaters' instead of 'list'. Make %PYPI-UPDATER conditional. --- guix/scripts/refresh.scm | 40 +++++++++++++++++++++++++++++++++++----- 1 file changed, 35 insertions(+), 5 deletions(-) diff --git a/guix/scripts/refresh.scm b/guix/scripts/refresh.scm index 3984a0bde1..8c2ca81175 100644 --- a/guix/scripts/refresh.scm +++ b/guix/scripts/refresh.scm @@ -30,7 +30,6 @@ #:use-module ((guix gnu-maintenance) #:select (%gnu-updater)) #:use-module (guix import elpa) #:use-module (guix import cran) - #:use-module (guix import pypi) #:use-module (guix gnupg) #:use-module (gnu packages) #:use-module ((gnu packages commencement) #:select (%final-inputs)) @@ -149,12 +148,43 @@ specified with `--select'.\n")) ;;; Updates. ;;; +(define-syntax maybe-updater + ;; Helper macro for 'list-udpaters'. + (lambda (s) + (syntax-case s (=>) + ((_ ((module => updater) rest ...) (result ...)) + (let ((met? (false-if-exception + (resolve-interface (syntax->datum #'module))))) + (if met? + #'(maybe-updater (rest ...) + (result ... (@ module updater))) + #'(maybe-updater (rest ...) (result ...))))) + ((_ (updater rest ...) (result ...)) + #'(maybe-updater (rest ...) (result ... updater))) + ((_ () result) + #'result)))) + +(define-syntax-rule (list-updaters updaters ...) + "Expand to '(list UPDATERS ...)' but only the subset of UPDATERS that are +either unconditional, or have their requirement met. + +A conditional updater has this form: + + ((SOME MODULE) => UPDATER) + +meaning that UPDATER is added to the list if and only if (SOME MODULE) could +be resolved at macro expansion time. + +This is a way to discard at macro expansion time updaters that depend on +unavailable optional dependencies such as Guile-JSON." + (maybe-updater (updaters ...) (list))) + (define %updaters ;; List of "updaters" used by default. They are consulted in this order. - (list %gnu-updater - %elpa-updater - %cran-updater - %pypi-updater)) + (list-updaters %gnu-updater + %elpa-updater + %cran-updater + ((guix import pypi) => %pypi-updater))) (define (lookup-updater name) "Return the updater called NAME." -- cgit v1.2.3 From 34a04c3319e12e27f439456dc7969ad598811ecc Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Mon, 2 Nov 2015 12:46:40 -0500 Subject: gnu: Remove tabulation from luajit. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/lua.scm (luajit): Remove tabs. Signed-off-by: Ludovic Courtès --- gnu/packages/lua.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/lua.scm b/gnu/packages/lua.scm index 87f53d1637..6bedde35c9 100644 --- a/gnu/packages/lua.scm +++ b/gnu/packages/lua.scm @@ -89,8 +89,8 @@ for configuration, scripting, and rapid prototyping.") version ".tar.gz")) (sha256 (base32 "0ydxpqkmsn2c341j4r2v6r5r0ig3kbwv3i9jran3iv81s6r6rgjm")) - (patches (list (search-patch "luajit-symlinks.patch") - (search-patch "luajit-no_ldconfig.patch"))))) + (patches (list (search-patch "luajit-symlinks.patch") + (search-patch "luajit-no_ldconfig.patch"))))) (build-system gnu-build-system) (arguments '(#:tests? #f ;luajit is distributed without tests -- cgit v1.2.3 From 0f9c1f34000e7fd3f4c6bdb45c568f6416906c3b Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Mon, 2 Nov 2015 12:46:42 -0500 Subject: gnu: Build lua-5.2 with a dynamic library MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/patches/lua52-liblua-so.patch: New file. * gnu/packages/lua.scm (lua-5.2): Use lua52-liblua-so.patch. Signed-off-by: Ludovic Courtès --- gnu/packages/lua.scm | 3 +- gnu/packages/patches/lua52-liblua-so.patch | 78 ++++++++++++++++++++++++++++++ 2 files changed, 80 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/lua52-liblua-so.patch diff --git a/gnu/packages/lua.scm b/gnu/packages/lua.scm index 6bedde35c9..d27c024cfb 100644 --- a/gnu/packages/lua.scm +++ b/gnu/packages/lua.scm @@ -37,7 +37,8 @@ version ".tar.gz")) (sha256 (base32 "0b8034v1s82n4dg5rzcn12067ha3nxaylp2vdp8gg08kjsbzphhk")) - (patches (list (search-patch "lua-pkgconfig.patch"))))) + (patches (list (search-patch "lua-pkgconfig.patch") + (search-patch "lua52-liblua-so.patch"))))) (build-system gnu-build-system) (inputs `(("readline", readline))) (arguments diff --git a/gnu/packages/patches/lua52-liblua-so.patch b/gnu/packages/patches/lua52-liblua-so.patch new file mode 100644 index 0000000000..2e6b39ae79 --- /dev/null +++ b/gnu/packages/patches/lua52-liblua-so.patch @@ -0,0 +1,78 @@ +From 7a1b4e0829124976878ca2765a8e546667a92ceb Mon Sep 17 00:00:00 2001 +From: Leo Famulari +Date: Fri, 30 Oct 2015 19:11:31 -0400 +Subject: [PATCH] apply existing non-executable library patch and install + libraries as executable + +--- + Makefile | 6 +++--- + src/Makefile | 8 +++++++- + 2 files changed, 10 insertions(+), 4 deletions(-) + +diff --git a/Makefile b/Makefile +index 1aea8e6..bfcfed9 100644 +--- a/Makefile ++++ b/Makefile +@@ -44,7 +44,7 @@ INTERPRETER= lua + COMPILER= luac + TO_BIN= $(INTERPRETER) $(COMPILER) + TO_INC= lua.h luaconf.h lualib.h lauxlib.h lua.hpp +-TO_LIB= liblua.a ++TO_LIB= liblua.a liblua.so liblua.so.${V} + TO_PC= lua-$(V).pc + TO_MAN= lua.1 luac.1 + +@@ -56,7 +56,7 @@ R= $V.3 + all: $(PLAT) + + $(PLATS): +- cd src && $(MAKE) $@ ++ cd src && $(MAKE) $@ V=$(V) R=$(R) + + clean: + cd src && $(MAKE) $@ +@@ -69,7 +69,7 @@ install: dummy $(TO_PC) + cd src && $(MKDIR) $(INSTALL_BIN) $(INSTALL_INC) $(INSTALL_LIB) $(INSTALL_PC) $(INSTALL_MAN) $(INSTALL_LMOD) $(INSTALL_CMOD) + cd src && $(INSTALL_EXEC) $(TO_BIN) $(INSTALL_BIN) + cd src && $(INSTALL_DATA) $(TO_INC) $(INSTALL_INC) +- cd src && $(INSTALL_DATA) $(TO_LIB) $(INSTALL_LIB) ++ cd src && $(INSTALL_EXEC) $(TO_LIB) $(INSTALL_LIB) + cd src && $(INSTALL_DATA) ../$(TO_PC) $(INSTALL_PC) + cd doc && $(INSTALL_DATA) $(TO_MAN) $(INSTALL_MAN) + +diff --git a/src/Makefile b/src/Makefile +index 7b4b2b7..c86476e 100644 +--- a/src/Makefile ++++ b/src/Makefile +@@ -29,6 +29,7 @@ MYOBJS= + PLATS= aix ansi bsd freebsd generic linux macosx mingw posix solaris + + LUA_A= liblua.a ++LUA_SO= liblua.so + CORE_O= lapi.o lcode.o lctype.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o \ + lmem.o lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o \ + ltm.o lundump.o lvm.o lzio.o +@@ -43,7 +44,7 @@ LUAC_T= luac + LUAC_O= luac.o + + ALL_O= $(BASE_O) $(LUA_O) $(LUAC_O) +-ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) ++ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) $(LUA_SO) + ALL_A= $(LUA_A) + + # Targets start here. +@@ -55,6 +56,11 @@ o: $(ALL_O) + + a: $(ALL_A) + ++$(LUA_SO): $(CORE_O) $(LIB_O) ++ $(CC) -shared -ldl -Wl,-soname,$(LUA_SO).$(V) -o $@.$(R) $? -lm $(MYLDFLAGS) ++ ln -sf $(LUA_SO).$(R) $(LUA_SO).$(V) ++ ln -sf $(LUA_SO).$(R) $(LUA_SO) ++ + $(LUA_A): $(BASE_O) + $(AR) $@ $(BASE_O) + $(RANLIB) $@ +-- +2.6.1 + -- cgit v1.2.3 From b3e91e029f8194b50fa0a20efabd826af07002a6 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Mon, 9 Nov 2015 13:07:45 +0800 Subject: gnu: cogl: Update to 1.22.0. * gnu/packages/gnome.scm (cogl): Update to 1.22.0. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 32c29ca128..6c2007d93b 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -2576,7 +2576,7 @@ throughout GNOME for API documentation).") (define-public cogl (package (name "cogl") - (version "1.20.0") + (version "1.22.0") (source (origin (method url-fetch) @@ -2585,7 +2585,7 @@ throughout GNOME for API documentation).") name "-" version ".tar.xz")) (sha256 (base32 - "0aqrj7gc0x7v536vdycgn2i23fj3nx3qwdd3mwgx7rr9b14kb7kj")))) + "14daxqrid5039xmq9yl4pk86awng1n9zgl6ysblhc4gw2ifzp7b8")))) (build-system gnu-build-system) (native-inputs `(("glib:bin" ,glib "bin") ; for glib-mkenums -- cgit v1.2.3 From 0efd8be5ea4c1ce3b32091b5770b9ca8d7e0e7b0 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Mon, 9 Nov 2015 13:08:14 +0800 Subject: gnu: clutter: Update to 1.24.2. * gnu/packages/gnome.scm (clutter): Update to 1.24.2. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 6c2007d93b..0d8abb1c23 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -2643,7 +2643,7 @@ without stepping on each others toes.") (define-public clutter (package (name "clutter") - (version "1.22.2") + (version "1.24.2") (source (origin (method url-fetch) @@ -2652,7 +2652,7 @@ without stepping on each others toes.") name "-" version ".tar.xz")) (sha256 (base32 - "1b0ikh9q3c3qnny3kbvhqih35449q8ajcbh7zkm8k3kykwfx4scf")))) + "0qyd0cw17wi8gl6y9z2j2lh2gwghxskfmsdvw4ayrgxwnj6cjccn")))) (build-system gnu-build-system) (outputs '("out" "doc")) ;9 MiB of gtk-doc HTML pages -- cgit v1.2.3 From c900f84307c64c00eb02754d127759d751e3c4bb Mon Sep 17 00:00:00 2001 From: David Hashe Date: Sun, 8 Nov 2015 13:51:46 -0600 Subject: gnu: Add gtksourceview. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/gtk.scm (gtksourceview): Rename to... (gtksourceview-2): ... this. (gtksourceview): Update to 3.18.1. * gnu/packages/ocaml.scm (lablgtk)[inputs]: Replace "gtksourceview" with "gtksourceview-2". Co-authored-by: 宋文武 --- gnu/packages/gtk.scm | 51 +++++++++++++++++++++++++++++++++++++++++++++++++- gnu/packages/ocaml.scm | 3 ++- 2 files changed, 52 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index 3ae2d70af9..edfdb3fe7d 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2015 Paul van der Walt ;;; Copyright © 2015 Sou Bunnbu ;;; Copyright © 2015 Andy Wingo +;;; Copyright © 2015 David Hashe ;;; ;;; This file is part of GNU Guix. ;;; @@ -277,7 +278,7 @@ graph-like environments, e.g. modular synths or finite state machine diagrams.") (license license:gpl3+))) -(define-public gtksourceview +(define-public gtksourceview-2 (package (name "gtksourceview") (version "2.10.5") ; This is the last version which builds against gtk+2 @@ -331,6 +332,54 @@ printing and other features typical of a source code editor.") (license license:lgpl2.0+) (home-page "https://developer.gnome.org/gtksourceview/"))) +(define-public gtksourceview + (package + (name "gtksourceview") + (version "3.18.1") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/" name "/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "1rpdg8rcjlqv8yk13vsh5148mads0zbfih8cak3hm7wb0spmzsbv")))) + (build-system gnu-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-before + 'check 'pre-check + (lambda* (#:key inputs #:allow-other-keys) + (let ((xorg-server (assoc-ref inputs "xorg-server"))) + ;; Tests require a running X server. + (system (format #f "~a/bin/Xvfb :1 &" xorg-server)) + (setenv "DISPLAY" ":1") + ;; For the missing /etc/machine-id. + (setenv "DBUS_FATAL_WARNINGS" "0") + #t)))))) + (native-inputs + `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc. + ("intltool" ,intltool) + ("itstool", itstool) + ("gobject-introspection" ,gobject-introspection) + ("pkg-config" ,pkg-config) + ("vala" ,vala) + ;; For testing. + ("xorg-server" ,xorg-server) + ("shared-mime-info" ,shared-mime-info))) + (propagated-inputs + ;; gtksourceview-3.0.pc refers to all these. + `(("glib" ,glib) + ("gtk+" ,gtk+) + ("libxml2" ,libxml2))) + (home-page "https://wiki.gnome.org/Projects/GtkSourceView") + (synopsis "GNOME source code widget") + (description "GtkSourceView is a text widget that extends the standard +GTK+ text widget GtkTextView. It improves GtkTextView by implementing syntax +highlighting and other features typical of a source code editor.") + (license license:lgpl2.1+))) + (define-public gdk-pixbuf (package (name "gdk-pixbuf") diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index ee4e7830b6..7f80fc8a32 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2013 Cyril Roelandt ;;; Copyright © 2014, 2015 Mark H Weaver ;;; Copyright © 2015 Andreas Enge +;;; Copyright © 2015 David Hashe ;;; ;;; This file is part of GNU Guix. ;;; @@ -453,7 +454,7 @@ provers.") ;; and gtk+-quartz-2.0 once available. (inputs `(("gtk+" ,gtk+-2) - ("gtksourceview" ,gtksourceview) + ("gtksourceview" ,gtksourceview-2) ("libgnomecanvas" ,libgnomecanvas) ("libgnomeui" ,libgnomeui) ("libglade" ,libglade) -- cgit v1.2.3 From 835ed74b3a4bcec041632b658ebf6863e0e7b597 Mon Sep 17 00:00:00 2001 From: David Hashe Date: Sun, 8 Nov 2015 10:57:19 -0600 Subject: gnu: Update libpeas. * gnu/packages/gnome.scm (libpeas): Update to 1.16.0. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 0d8abb1c23..b584270ba8 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -673,7 +673,7 @@ some form of information without getting in the user's way.") (define-public libpeas (package (name "libpeas") - (version "1.12.1") + (version "1.16.0") (source (origin (method url-fetch) @@ -682,7 +682,7 @@ some form of information without getting in the user's way.") name "-" version ".tar.xz")) (sha256 (base32 - "1mjjjjwphc83bjznmbsm7x0jg7ql261nys6qnl7mi0nkr4qvw476")))) + "0kj5n5hz93xq7qdb2r7n86nibzwqjr88jxaih1fdbxv5rn7014xh")))) (build-system gnu-build-system) (inputs `(("atk" ,atk) -- cgit v1.2.3 From 329d731b966c8e222a0997ebd4babd5f9edff3de Mon Sep 17 00:00:00 2001 From: David Hashe Date: Sun, 8 Nov 2015 13:57:44 -0600 Subject: gnu: Add gedit. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/gnome.scm (gedit): New variable. Co-authored-by: 宋文武 --- gnu/packages/gnome.scm | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index b584270ba8..cd6db9b664 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -45,6 +45,7 @@ #:use-module (gnu packages djvu) #:use-module (gnu packages flex) #:use-module (gnu packages docbook) + #:use-module (gnu packages enchant) #:use-module (gnu packages gettext) #:use-module (gnu packages glib) #:use-module (gnu packages gnupg) @@ -3762,3 +3763,60 @@ configuration program to choose applications starting on login.") "Gjs is a javascript binding for GNOME. It's mainly based on spidermonkey javascript engine and the GObject introspection framework.") (license license:gpl2+))) + +(define-public gedit + (package + (name "gedit") + (version "3.18.1") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/" name "/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "1kb3hglcppap7fdy7i7w2wk746kfz77jzs2lq6vrna8a3fqaxmas")))) + (build-system glib-or-gtk-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after + 'install 'wrap-gedit + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (gtksourceview (assoc-ref inputs "gtksourceview")) + (gi-typelib-path (getenv "GI_TYPELIB_PATH"))) + (wrap-program (string-append out "/bin/gedit") + `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)) + ;; For language-specs. + `("XDG_DATA_DIRS" ":" prefix (,(string-append gtksourceview + "/share"))))) + #t))))) + (propagated-inputs + `(("dconf" ,dconf))) + (native-inputs + `(("intltool" ,intltool) + ("itstool", itstool) + ("gobject-introspection" ,gobject-introspection) + ("pkg-config" ,pkg-config))) + (inputs + `(("glib" ,glib) + ("gtk+" ,gtk+) + ("gtksourceview" ,gtksourceview) + ("libpeas" ,libpeas) + ("libxml2" ,libxml2) + ("enchant" ,enchant) + ("iso-codes" ,iso-codes) + ("python-pygobject" ,python-pygobject) + ("python" ,python) + ("gsettings-desktop-schemas" ,gsettings-desktop-schemas) + ("libx11" ,libx11) + ("vala" ,vala) + ("adwaita-icon-theme" ,adwaita-icon-theme) + ("libsoup" ,libsoup) + ("gnome-desktop" ,gnome-desktop))) + (home-page "https://wiki.gnome.org/Apps/Gedit") + (synopsis "GNOME text editor") + (description "While aiming at simplicity and ease of use, gedit is a +powerful general purpose text editor.") + (license license:gpl2+))) -- cgit v1.2.3 From b71793637c64dd5358324290bafb51eb707e9222 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Mon, 9 Nov 2015 16:19:42 +0800 Subject: gnu: Add zenity. * gnu/packages/gnome.scm (zenity): New variable. --- gnu/packages/gnome.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index cd6db9b664..0742255764 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -3820,3 +3820,30 @@ javascript engine and the GObject introspection framework.") (description "While aiming at simplicity and ease of use, gedit is a powerful general purpose text editor.") (license license:gpl2+))) + +(define-public zenity + (package + (name "zenity") + (version "3.18.1.1") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/" name "/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "02m88dfm1rziqk2ywakwib06wl1rxangbzih6cp8wllbyl1plcg6")))) + (build-system gnu-build-system) + (native-inputs + `(("gettext" ,gnu-gettext) + ("itstool" ,itstool) + ("pkg-config" ,pkg-config))) + (inputs + `(("libnotify" ,libnotify) + ("webkitgtk" ,webkitgtk))) + (synopsis "Display graphical dialog boxes from shell scripts") + (home-page "http://www.gnome.org") + (description + "Zenity is a rewrite of gdialog, the GNOME port of dialog which allows you +to display dialog boxes from the commandline and shell scripts.") + (license license:lgpl2.0+))) -- cgit v1.2.3 From 60c3627cf67d0f5c477cbb8bacbc9ba8b3ffc437 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Mon, 9 Nov 2015 16:20:41 +0800 Subject: gnu: Add mutter. * gnu/packages/gnome.scm (mutter): New variable. --- gnu/packages/gnome.scm | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 0742255764..387f9ef7c6 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -3847,3 +3847,53 @@ powerful general purpose text editor.") "Zenity is a rewrite of gdialog, the GNOME port of dialog which allows you to display dialog boxes from the commandline and shell scripts.") (license license:lgpl2.0+))) + +(define-public mutter + (package + (name "mutter") + (version "3.18.1") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/" name "/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "1ab959z5fgi4rq0ifxdqvpdbv99a2b1lfgvj327s9crdvk4ygpjg")))) + (build-system gnu-build-system) + (arguments + '(#:configure-flags + ;; XXX: build fails with [-Werror]: + ;; backends/meta-cursor-renderer.c:112:5: error: + ;; implicit declaration of function ?roundf? + '("--enable-compile-warnings=minimum"))) + (native-inputs + `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc. + ("gobject-introspection" ,gobject-introspection) + ("intltool" ,intltool) + ("pkg-config" ,pkg-config))) + (propagated-inputs + ;; libmutter.pc refers to all these. + `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas) + ("gtk+" ,gtk+) + ("clutter" ,clutter))) + (inputs + `(("gnome-desktop" ,gnome-desktop) + ("libcanberra-gtk" ,libcanberra) + ("libice" ,libice) + ("libsm" ,libsm) + ("libxkbcommon" ,libxkbcommon) + ("libxkbfile" ,libxkbfile) + ("mesa-headers" ,mesa-headers) + ("startup-notification" ,startup-notification) + ("upower-glib" ,upower) + ("xkeyboard-config" ,xkeyboard-config) + ("zenity" ,zenity))) + (synopsis "Window and compositing manager") + (home-page "http://www.gnome.org") + (description + "Mutter is a window and compositing manager that displays and manages your +desktop via OpenGL. Mutter combines a sophisticated display engine using the +Clutter toolkit with solid window-management logic inherited from the Metacity +window manager.") + (license license:gpl2+))) -- cgit v1.2.3 From 2cbcd23a71c2c394f6bbb949a391a9589c47cf46 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Thu, 5 Nov 2015 08:43:44 -0500 Subject: gnu: Add ruby-eventmachine. * gnu/packages/ruby.scm (ruby-eventmachine): New variable. --- gnu/packages/ruby.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 137b75a24f..3193aeae91 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -1649,3 +1649,28 @@ that can be exported to a number of formats very easily, and also supports extending for custom Ruby constructs such as custom class level definitions.") (home-page "http://yardoc.org") (license license:expat))) + +(define-public ruby-eventmachine + (package + (name "ruby-eventmachine") + (version "1.0.8") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "eventmachine" version)) + (sha256 + (base32 + "1frvpk3p73xc64qkn0ymll3flvn4xcycq5yx8a43zd3gyzc1ifjp")))) + (build-system ruby-build-system) + (arguments + '(#:tests? #f)) ; test suite tries to connect to google.com + (native-inputs + `(("ruby-rake-compiler" ,ruby-rake-compiler))) + (synopsis "Single-threaded network event framework for Ruby") + (description + "EventMachine implements a single-threaded engine for arbitrary network +communications. EventMachine wraps all interactions with sockets, allowing +programs to concentrate on the implementation of network protocols. It can be +used to create both network servers and clients.") + (home-page "http://rubyeventmachine.com") + (license (list license:ruby license:gpl3)))) ; GPLv3 only AFAICT -- cgit v1.2.3 From 2936e48f5fade6d9ec881d7f6b89b5eb32cf5b5d Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Mon, 9 Nov 2015 09:33:00 -0600 Subject: gnu: guile-irregex: Remove duplicate 'check deletion in modify-phases * gnu/packages/guile.scm: Remove duplicate 'check deletion in modify-phases --- gnu/packages/guile.scm | 1 - 1 file changed, 1 deletion(-) diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index eb378740f4..5c74e9f19a 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -502,7 +502,6 @@ See http://minikanren.org/ for more on miniKanren generally.") (guix build gnu-build-system)) #:phases (modify-phases %standard-phases - (delete 'check) (delete 'configure) (delete 'build) (delete 'check) -- cgit v1.2.3 From 7119cca86c1249ab77cc136608a44e64679c61c7 Mon Sep 17 00:00:00 2001 From: Mathieu Lirzin Date: Sun, 8 Nov 2015 19:06:10 +0100 Subject: gnu: Add artanis. * gnu/packages/guile.scm (artanis): New variable. --- gnu/packages/guile.scm | 51 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index 5c74e9f19a..dd0457edfe 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -29,6 +29,7 @@ #:use-module (gnu packages autotools) #:use-module (gnu packages flex) #:use-module (gnu packages libunistring) + #:use-module (gnu packages linux) #:use-module (gnu packages m4) #:use-module (gnu packages multiprecision) #:use-module (gnu packages pkg-config) @@ -242,6 +243,56 @@ without requiring the source code to be rewritten.") ;;; Extensions. ;;; +(define-public artanis + (package + (name "artanis") + (version "0.1.0") + (source (origin + (method url-fetch) + (uri (string-append "ftp://alpha.gnu.org/gnu/artanis/artanis-" + version ".tar.gz")) + (sha256 + (base32 + "1mc2zy6n9wnn4hzi3zp3jd6b5rlr0lv7fvh800xf4fyrxg0zia4g")))) + (build-system gnu-build-system) + ;; TODO: Add guile-dbi and guile-dbd optional dependencies. + (inputs `(("guile" ,guile-2.0))) + (native-inputs `(("bash" ,bash) ;for the `source' builtin + ("pkgconfig" ,pkg-config) + ("util-linux" ,util-linux))) ;for the `script' command + (arguments + '(#:make-flags + ;; TODO: The documentation must be built with the `docs' target. + (let* ((out (assoc-ref %outputs "out")) + (dir (string-append out "/share/guile/site/2.0"))) + ;; Don't use (%site-dir) for site paths. + (list (string-append "MOD_PATH=" dir) + (string-append "MOD_COMPILED_PATH=" dir))) + #:test-target "test" + #:phases + (modify-phases %standard-phases + (add-before + 'install 'substitute-root-dir + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (substitute* "Makefile" ;ignore the execution of bash.bashrc + ((" /etc/bash.bashrc") " /dev/null")) + (substitute* "Makefile" ;set the root of config files to OUT + ((" /etc") (string-append " " out "/etc"))) + (mkdir-p (string-append out "/bin")) ;for the `art' executable + #t)))))) + (synopsis "Web application framework written in Guile") + (description "GNU Artanis is a web application framework written in Guile +Scheme. A web application framework (WAF) is a software framework that is +designed to support the development of dynamic websites, web applications, web +services and web resources. The framework aims to alleviate the overhead +associated with common activities performed in web development. Artanis +provides several tools for web development: database access, templating +frameworks, session management, URL-remapping for RESTful, page caching, and +more.") + (home-page "https://www.gnu.org/software/artanis/") + (license (list gpl3+ lgpl3+)))) ;dual license + (define-public guile-reader (package (name "guile-reader") -- cgit v1.2.3 From 295fc0829be8c7c34fd262512230b87b23ab1205 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 10 Nov 2015 13:58:25 +0200 Subject: gnu: pspp: Use gtksourceview-2. * gnu/packages/maths.scm (pspp)[inputs]: Use gtksourceview-2. --- gnu/packages/maths.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 27b1a48809..466dc2729d 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -221,7 +221,7 @@ LP/MIP solver is included in the package.") ("pango" ,pango) ("readline" ,readline) ("gtk" ,gtk+-2) - ("gtksourceview" ,gtksourceview) + ("gtksourceview" ,gtksourceview-2) ("zlib" ,zlib))) (native-inputs `(("glib" ,glib "bin") ;for glib-genmarshal -- cgit v1.2.3 From d2ab0e90c6dfd8c6382563403973f83be8133523 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Tue, 10 Nov 2015 09:57:14 +0800 Subject: gnu: telepathy-glib: Propagate inputs. * gnu/packages/glib.scm (telepathy-glib): Propagate inputs dbus, dbus-glib and glib. Move gobject-introspection and libxslt to 'native-inputs'. --- gnu/packages/glib.scm | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm index f7e67ba9ec..b2979b24e4 100644 --- a/gnu/packages/glib.scm +++ b/gnu/packages/glib.scm @@ -589,14 +589,15 @@ useful for C++.") (build-system gnu-build-system) (native-inputs `(("glib" ,glib "bin") ; uses glib-mkenums + ("gobject-introspection" ,gobject-introspection) ("pkg-config" ,pkg-config) - ("python" ,python-2))) - (inputs + ("python" ,python-2) + ("xsltproc" ,libxslt))) + (propagated-inputs + ;; There are all in the Requires.private field of telepathy-glib.pc. `(("dbus" ,dbus) ("dbus-glib" ,dbus-glib) - ("glib" ,glib) - ("gobject-introspection" ,gobject-introspection) - ("libxslt" ,libxslt))) + ("glib" ,glib))) (home-page "http://telepathy.freedesktop.org/wiki/") (synopsis "GLib Real-time communications framework over D-Bus") (description "Telepathy is a flexible, modular communications framework -- cgit v1.2.3 From b6072e6b9037b17bb337d787cc21500f900ca11b Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Tue, 10 Nov 2015 13:51:28 +0800 Subject: gnu: libgweather: Update to 3.18.1, enable tests. * gnu/packages/gnome.scm (libgweather): Update to 3.18.1. Enable tests. [native-inputs]: Add gobject-introspection. --- gnu/packages/gnome.scm | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 387f9ef7c6..6779cfbb63 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -2377,7 +2377,7 @@ service via the system message bus.") (define-public libgweather (package (name "libgweather") - (version "3.16.0") + (version "3.18.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -2385,22 +2385,26 @@ service via the system message bus.") name "-" version ".tar.xz")) (sha256 (base32 - "0x1z6wv7hdw2ivlkifcbd940zyrnvqvc4zh2drgvd2r6jmd7bjza")))) + "1l3sra84k5dnavbdbjyf1ar84xmjszpnnldih6mf45kniwpjkcll")))) (build-system gnu-build-system) (arguments - `(;; The tests want to write to $HOME/.cache/geocode-glib, which doesn't - ;; work for the builder. Punt. - #:tests? #f - #:configure-flags - `(;; No introspection for now, as it wants to install to - ;; gobject-introspection's own directory and I don't know how to easily - ;; override this. - "--enable-introspection=no" - ,(string-append "--with-zoneinfo-dir=" - (assoc-ref %build-inputs "tzdata") - "/share/zoneinfo")))) + `(#:configure-flags + `(,(string-append "--with-zoneinfo-dir=" + (assoc-ref %build-inputs "tzdata") + "/share/zoneinfo")) + #:phases + (modify-phases %standard-phases + (add-before + 'check 'pre-check + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "data/check-timezones.sh" + (("/usr/share/zoneinfo/zone.tab") + (string-append (assoc-ref inputs "tzdata") + "/share/zoneinfo/zone.tab"))) + #t))))) (native-inputs `(("glib:bin" ,glib "bin") ; for glib-mkenums + ("gobject-introspection" ,gobject-introspection) ("pkg-config" ,pkg-config) ("intltool" ,intltool))) (propagated-inputs -- cgit v1.2.3 From 0c15230db1a39897cbdc6dc7c47417fa3ece85e7 Mon Sep 17 00:00:00 2001 From: Taylan Ulrich Bayırlı/Kammer Date: Mon, 2 Nov 2015 00:38:01 +0100 Subject: gnu: Add mupen64plus-core. * gnu/packages/games.scm (mupen64plus-core): New variable. --- gnu/packages/games.scm | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index f71e51bef5..89e9ca59dd 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -13,6 +13,7 @@ ;;; Copyright © 2015 Ricardo Wurmus ;;; Copyright © 2015 Alex Kost ;;; Copyright © 2015 Paul van der Walt +;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer ;;; ;;; This file is part of GNU Guix. ;;; @@ -1214,6 +1215,52 @@ world}, @uref{http://evolonline.org, Evol Online} and ;; The rest is under GPL2+. (license (list license:gpl2+ license:zlib license:cc-by-sa4.0)))) +(define-public mupen64plus-core + (package + (name "mupen64plus-core") + (version "2.5") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/mupen64plus/mupen64plus-core/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "0dg2hksm5qni2hcha93k7n4fqr92888p946f7phb0ndschzfh9kk")))) + (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,pkg-config) + ("which" ,which))) + (inputs + `(("freetype" ,freetype) + ("glu" ,glu) + ("libpng" ,libpng) + ("mesa" ,mesa) + ("sdl2" ,sdl2) + ("zlib" ,zlib))) + (arguments + '(#:phases + (modify-phases %standard-phases + ;; The mupen64plus build system has no configure phase. + (delete 'configure) + ;; Makefile is in a subdirectory. + (add-before + 'build 'cd-to-project-dir + (lambda _ + (chdir "projects/unix")))) + #:make-flags (let ((out (assoc-ref %outputs "out"))) + (list "all" (string-append "PREFIX=" out))) + ;; There are no tests. + #:tests? #f)) + (home-page "http://www.mupen64plus.org/") + (synopsis "Nintendo 64 emulator core library") + (description + "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator +which is capable of accurately playing many games. This package contains the +core library.") + (license license:gpl2+))) + (define-public nestopia-ue (package (name "nestopia-ue") -- cgit v1.2.3 From ac2fe449e7d20bf0b5be3623e29de2d355eb0577 Mon Sep 17 00:00:00 2001 From: Taylan Ulrich Bayırlı/Kammer Date: Mon, 2 Nov 2015 00:38:13 +0100 Subject: gnu: Add mupen64plus-audio-sdl. * gnu/packages/games.scm (mupen64plus-audio-sdl): New variable. --- gnu/packages/games.scm | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 89e9ca59dd..891abf4f71 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -1261,6 +1261,52 @@ which is capable of accurately playing many games. This package contains the core library.") (license license:gpl2+))) +(define-public mupen64plus-audio-sdl + (package + (name "mupen64plus-audio-sdl") + (version "2.5") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/mupen64plus/mupen64plus-audio-sdl/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "0ss6w92n2rpfnazhg9lbq0nvs3fqx93nliz3k3wjxdlx4dpi7h3a")))) + (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,pkg-config) + ("which" ,which))) + (inputs + `(("mupen64plus-core" ,mupen64plus-core) + ("sdl2" ,sdl2))) + (arguments + '(#:phases + (modify-phases %standard-phases + ;; The mupen64plus build system has no configure phase. + (delete 'configure) + ;; Makefile is in a subdirectory. + (add-before + 'build 'cd-to-project-dir + (lambda _ + (chdir "projects/unix")))) + #:make-flags + (let ((out (assoc-ref %outputs "out")) + (m64p (assoc-ref %build-inputs "mupen64plus-core"))) + (list "all" + (string-append "PREFIX=" out) + (string-append "APIDIR=" m64p "/include/mupen64plus"))) + ;; There are no tests. + #:tests? #f)) + (home-page "http://www.mupen64plus.org/") + (synopsis "Mupen64Plus SDL input plugin") + (description + "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator +which is capable of accurately playing many games. This package contains the +SDL audio plugin.") + (license license:gpl2+))) + (define-public nestopia-ue (package (name "nestopia-ue") -- cgit v1.2.3 From d07f0ebbcc1828444eedec939d0bf0d77fab915d Mon Sep 17 00:00:00 2001 From: Taylan Ulrich Bayırlı/Kammer Date: Mon, 2 Nov 2015 00:38:28 +0100 Subject: gnu: Add mupen64plus-input-sdl. * gnu/packages/games.scm (mupen64plus-input-sdl): New variable. --- gnu/packages/games.scm | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 891abf4f71..b4b247e87f 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -1307,6 +1307,51 @@ which is capable of accurately playing many games. This package contains the SDL audio plugin.") (license license:gpl2+))) +(define-public mupen64plus-input-sdl + (package + (name "mupen64plus-input-sdl") + (version "2.5") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/mupen64plus/mupen64plus-input-sdl/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "11sj5dbalp2nrlmki34vy7wy28vc175pnnkdk65p8599hnyq37ri")))) + (build-system gnu-build-system) + (native-inputs + `(("which" ,which))) + (inputs + `(("mupen64plus-core" ,mupen64plus-core) + ("sdl2" ,sdl2))) + (arguments + '(#:phases + (modify-phases %standard-phases + ;; The mupen64plus build system has no configure phase. + (delete 'configure) + ;; Makefile is in a subdirectory. + (add-before + 'build 'cd-to-project-dir + (lambda _ + (chdir "projects/unix")))) + #:make-flags + (let ((out (assoc-ref %outputs "out")) + (m64p (assoc-ref %build-inputs "mupen64plus-core"))) + (list "all" + (string-append "PREFIX=" out) + (string-append "APIDIR=" m64p "/include/mupen64plus"))) + ;; There are no tests. + #:tests? #f)) + (home-page "http://www.mupen64plus.org/") + (synopsis "Mupen64Plus SDL input plugin") + (description + "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator +which is capable of accurately playing many games. This package contains the +SDL input plugin.") + (license license:gpl2+))) + (define-public nestopia-ue (package (name "nestopia-ue") -- cgit v1.2.3 From 3b3358bec9d2e611a3c515a98caecbb09784eee9 Mon Sep 17 00:00:00 2001 From: Taylan Ulrich Bayırlı/Kammer Date: Mon, 2 Nov 2015 00:38:40 +0100 Subject: gnu: Add mupen64plus-rsp-hle. * gnu/packages/games.scm (mupen64plus-rsp-hle): New variable. --- gnu/packages/games.scm | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index b4b247e87f..bc02fbd830 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -1352,6 +1352,48 @@ which is capable of accurately playing many games. This package contains the SDL input plugin.") (license license:gpl2+))) +(define-public mupen64plus-rsp-hle + (package + (name "mupen64plus-rsp-hle") + (version "2.5") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/mupen64plus/mupen64plus-rsp-hle/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "15h7mgz6xd2zjzm6l3f96sbs8kwr3xvbwzgikhnka79m6c69hsxv")))) + (build-system gnu-build-system) + (inputs + `(("mupen64plus-core" ,mupen64plus-core))) + (arguments + '(#:phases + (modify-phases %standard-phases + ;; The mupen64plus build system has no configure phase. + (delete 'configure) + ;; Makefile is in a subdirectory. + (add-before + 'build 'cd-to-project-dir + (lambda _ + (chdir "projects/unix")))) + #:make-flags + (let ((out (assoc-ref %outputs "out")) + (m64p (assoc-ref %build-inputs "mupen64plus-core"))) + (list "all" + (string-append "PREFIX=" out) + (string-append "APIDIR=" m64p "/include/mupen64plus"))) + ;; There are no tests. + #:tests? #f)) + (home-page "http://www.mupen64plus.org/") + (synopsis "Mupen64Plus SDL input plugin") + (description + "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator +which is capable of accurately playing many games. This package contains the +high-level emulation (HLE) RSP processor plugin.") + (license license:gpl2+))) + (define-public nestopia-ue (package (name "nestopia-ue") -- cgit v1.2.3 From 50afcd1f034cb424eafc76aa01efd461a9736cc9 Mon Sep 17 00:00:00 2001 From: Taylan Ulrich Bayırlı/Kammer Date: Mon, 2 Nov 2015 00:38:58 +0100 Subject: gnu: Add mupen64plus-rsp-z64. * gnu/packages/games.scm (mupen64plus-rsp-z64): New variable. --- gnu/packages/games.scm | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index bc02fbd830..14534914fe 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -1394,6 +1394,48 @@ which is capable of accurately playing many games. This package contains the high-level emulation (HLE) RSP processor plugin.") (license license:gpl2+))) +(define-public mupen64plus-rsp-z64 + (package + (name "mupen64plus-rsp-z64") + (version "2.0.0") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/mupen64plus/mupen64plus-rsp-z64/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "10jz1w2dhx5slhyk4m8mdqlpsd6cshchslr1fckb2ayzb1ls3ghi")))) + (build-system gnu-build-system) + (inputs + `(("mupen64plus-core" ,mupen64plus-core))) + (arguments + '(#:phases + (modify-phases %standard-phases + ;; The mupen64plus build system has no configure phase. + (delete 'configure) + ;; Makefile is in a subdirectory. + (add-before + 'build 'cd-to-project-dir + (lambda _ + (chdir "projects/unix")))) + #:make-flags + (let ((out (assoc-ref %outputs "out")) + (m64p (assoc-ref %build-inputs "mupen64plus-core"))) + (list "all" + (string-append "PREFIX=" out) + (string-append "APIDIR=" m64p "/include/mupen64plus"))) + ;; There are no tests. + #:tests? #f)) + (home-page "http://www.mupen64plus.org/") + (synopsis "Mupen64Plus SDL input plugin") + (description + "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator +which is capable of accurately playing many games. This package contains the +Z64 RSP processor plugin.") + (license license:gpl2+))) + (define-public nestopia-ue (package (name "nestopia-ue") -- cgit v1.2.3 From 307a536d429632b4f2fd94a3a8312bf0e0190067 Mon Sep 17 00:00:00 2001 From: Taylan Ulrich Bayırlı/Kammer Date: Mon, 2 Nov 2015 00:39:42 +0100 Subject: gnu: Add mupen64plus-video-arachnoid * gnu/packages/games.scm (mupen64plus-video-arachnoid): New variable. --- gnu/packages/games.scm | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 14534914fe..36a76cc380 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -1436,6 +1436,52 @@ which is capable of accurately playing many games. This package contains the Z64 RSP processor plugin.") (license license:gpl2+))) +(define-public mupen64plus-video-arachnoid + (package + (name "mupen64plus-video-arachnoid") + (version "2.0.0") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/mupen64plus/mupen64plus-video-arachnoid/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "0jjwf144rihznm4lnqbhgigxw664v3v32wy94adaa6imk8z6gslh")))) + (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,pkg-config) + ("which" ,which))) + (inputs + `(("mesa" ,mesa) + ("mupen64plus-core" ,mupen64plus-core))) + (arguments + '(#:phases + (modify-phases %standard-phases + ;; The mupen64plus build system has no configure phase. + (delete 'configure) + ;; Makefile is in a subdirectory. + (add-before + 'build 'cd-to-project-dir + (lambda _ + (chdir "projects/unix")))) + #:make-flags + (let ((out (assoc-ref %outputs "out")) + (m64p (assoc-ref %build-inputs "mupen64plus-core"))) + (list "all" + (string-append "PREFIX=" out) + (string-append "APIDIR=" m64p "/include/mupen64plus"))) + ;; There are no tests. + #:tests? #f)) + (home-page "http://www.mupen64plus.org/") + (synopsis "Mupen64Plus Rice Video plugin") + (description + "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator +which is capable of accurately playing many games. This package contains the +Arachnoid video plugin.") + (license license:gpl2+))) + (define-public nestopia-ue (package (name "nestopia-ue") -- cgit v1.2.3 From 9a3fe16b9963d4ec17bfda635722f32586565cc6 Mon Sep 17 00:00:00 2001 From: Taylan Ulrich Bayırlı/Kammer Date: Mon, 2 Nov 2015 00:39:58 +0100 Subject: gnu: Add mupen64plus-video-glide64. * gnu/packages/games.scm (mupen64plus-video-glide64): New variable. --- gnu/packages/games.scm | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 36a76cc380..8e0f25f366 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -1482,6 +1482,60 @@ which is capable of accurately playing many games. This package contains the Arachnoid video plugin.") (license license:gpl2+))) +(define-public mupen64plus-video-glide64 + (package + (name "mupen64plus-video-glide64") + (version "2.0.0") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/mupen64plus/mupen64plus-video-glide64/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "1rm55dbf6xgsq1blbzs6swa2ajv0qkn38acbljj346abnk6s3dla")))) + (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,pkg-config) + ("which" ,which))) + (inputs + `(("mesa" ,mesa) + ("mupen64plus-core" ,mupen64plus-core) + ("sdl2" ,sdl2))) + (arguments + '(#:phases + (modify-phases %standard-phases + ;; The mupen64plus build system has no configure phase. + (delete 'configure) + ;; Makefile is in a subdirectory. + (add-before + 'build 'cd-to-project-dir + (lambda _ + (chdir "projects/unix"))) + ;; XXX Should be unnecessary with the next release. + (add-before + 'build 'use-sdl2 + (lambda _ + (substitute* "Makefile" + (("SDL_CONFIG = (.*)sdl-config" all prefix) + (string-append "SDL_CONFIG = " prefix "sdl2-config")))))) + #:make-flags + (let ((out (assoc-ref %outputs "out")) + (m64p (assoc-ref %build-inputs "mupen64plus-core"))) + (list "all" + (string-append "PREFIX=" out) + (string-append "APIDIR=" m64p "/include/mupen64plus"))) + ;; There are no tests. + #:tests? #f)) + (home-page "http://www.mupen64plus.org/") + (synopsis "Mupen64Plus Rice Video plugin") + (description + "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator +which is capable of accurately playing many games. This package contains the +Glide64 video plugin.") + (license license:gpl2+))) + (define-public nestopia-ue (package (name "nestopia-ue") -- cgit v1.2.3 From e8bf3ced253bcf27e95b4fc46fdf8140550e43ed Mon Sep 17 00:00:00 2001 From: Taylan Ulrich Bayırlı/Kammer Date: Mon, 2 Nov 2015 00:40:14 +0100 Subject: gnu: Add mupen64plus-video-glide64mk2. * gnu/packages/games.scm (mupen64plus-video-glide64mk2): New variable. --- gnu/packages/games.scm | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 8e0f25f366..2cf721d290 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -1536,6 +1536,56 @@ which is capable of accurately playing many games. This package contains the Glide64 video plugin.") (license license:gpl2+))) +(define-public mupen64plus-video-glide64mk2 + (package + (name "mupen64plus-video-glide64mk2") + (version "2.5") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/mupen64plus/mupen64plus-video-glide64mk2/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "1ihl4q293d6svba26b4mhapjcdg12p90gibz79b4mx423jlcxxj9")))) + (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,pkg-config) + ("which" ,which))) + (inputs + `(("boost" ,boost) + ("libpng" ,libpng) + ("mesa" ,mesa) + ("mupen64plus-core" ,mupen64plus-core) + ("sdl2" ,sdl2) + ("zlib" ,zlib))) + (arguments + '(#:phases + (modify-phases %standard-phases + ;; The mupen64plus build system has no configure phase. + (delete 'configure) + ;; Makefile is in a subdirectory. + (add-before + 'build 'cd-to-project-dir + (lambda _ + (chdir "projects/unix")))) + #:make-flags + (let ((out (assoc-ref %outputs "out")) + (m64p (assoc-ref %build-inputs "mupen64plus-core"))) + (list "all" + (string-append "PREFIX=" out) + (string-append "APIDIR=" m64p "/include/mupen64plus"))) + ;; There are no tests. + #:tests? #f)) + (home-page "http://www.mupen64plus.org/") + (synopsis "Mupen64Plus Rice Video plugin") + (description + "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator +which is capable of accurately playing many games. This package contains the +Glide64MK2 video plugin.") + (license license:gpl2+))) + (define-public nestopia-ue (package (name "nestopia-ue") -- cgit v1.2.3 From e91d25f9e01fe03686766fe16119174d3df09907 Mon Sep 17 00:00:00 2001 From: Taylan Ulrich Bayırlı/Kammer Date: Mon, 2 Nov 2015 00:40:28 +0100 Subject: gnu: Add mupen64plus-video-rice. * gnu/packages/games.scm (mupen64plus-video-rice): New variable. --- gnu/packages/games.scm | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 2cf721d290..faf4356a59 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -1586,6 +1586,54 @@ which is capable of accurately playing many games. This package contains the Glide64MK2 video plugin.") (license license:gpl2+))) +(define-public mupen64plus-video-rice + (package + (name "mupen64plus-video-rice") + (version "2.5") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/mupen64plus/mupen64plus-video-rice/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "0rd2scjmh285w61aj3mgx71whg5rqrjbry3cdgicczrnyvf8wdvk")))) + (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,pkg-config) + ("which" ,which))) + (inputs + `(("libpng" ,libpng) + ("mesa" ,mesa) + ("mupen64plus-core" ,mupen64plus-core) + ("sdl2" ,sdl2))) + (arguments + '(#:phases + (modify-phases %standard-phases + ;; The mupen64plus build system has no configure phase. + (delete 'configure) + ;; Makefile is in a subdirectory. + (add-before + 'build 'cd-to-project-dir + (lambda _ + (chdir "projects/unix")))) + #:make-flags + (let ((out (assoc-ref %outputs "out")) + (m64p (assoc-ref %build-inputs "mupen64plus-core"))) + (list "all" + (string-append "PREFIX=" out) + (string-append "APIDIR=" m64p "/include/mupen64plus"))) + ;; There are no tests. + #:tests? #f)) + (home-page "http://www.mupen64plus.org/") + (synopsis "Mupen64Plus Rice Video plugin") + (description + "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator +which is capable of accurately playing many games. This package contains the +Rice Video plugin.") + (license license:gpl2+))) + (define-public nestopia-ue (package (name "nestopia-ue") -- cgit v1.2.3 From 17e2bc8617abcca0a6ade6fe598dc72ef70ca47a Mon Sep 17 00:00:00 2001 From: Taylan Ulrich Bayırlı/Kammer Date: Mon, 2 Nov 2015 00:40:40 +0100 Subject: gnu: Add mupen64plus-video-z64. * gnu/packages/games.scm (mupen64plus-video-z64): New variable. --- gnu/packages/games.scm | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index faf4356a59..732b9c6515 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -1634,6 +1634,60 @@ which is capable of accurately playing many games. This package contains the Rice Video plugin.") (license license:gpl2+))) +(define-public mupen64plus-video-z64 + (package + (name "mupen64plus-video-z64") + (version "2.0.0") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/mupen64plus/mupen64plus-video-z64/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "1x7wsjs5gx2iwx20p4cjcbf696zsjlh31qxmghwv0ifrq8x58s1b")))) + (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,pkg-config) + ("which" ,which))) + (inputs + `(("glew" ,glew) + ("mupen64plus-core" ,mupen64plus-core) + ("sdl2" ,sdl2))) + (arguments + '(#:phases + (modify-phases %standard-phases + ;; The mupen64plus build system has no configure phase. + (delete 'configure) + ;; Makefile is in a subdirectory. + (add-before + 'build 'cd-to-project-dir + (lambda _ + (chdir "projects/unix"))) + ;; XXX Should be unnecessary with the next release. + (add-before + 'build 'use-sdl2 + (lambda _ + (substitute* "Makefile" + (("SDL_CONFIG = (.*)sdl-config" all prefix) + (string-append "SDL_CONFIG = " prefix "sdl2-config")))))) + #:make-flags + (let ((out (assoc-ref %outputs "out")) + (m64p (assoc-ref %build-inputs "mupen64plus-core"))) + (list "all" + (string-append "PREFIX=" out) + (string-append "APIDIR=" m64p "/include/mupen64plus"))) + ;; There are no tests. + #:tests? #f)) + (home-page "http://www.mupen64plus.org/") + (synopsis "Mupen64Plus Z64 video plugin") + (description + "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator +which is capable of accurately playing many games. This package contains the +Z64 video plugin.") + (license license:gpl2+))) + (define-public nestopia-ue (package (name "nestopia-ue") -- cgit v1.2.3 From e6974eae1d5d4111c789cf7cb347ba0658802c29 Mon Sep 17 00:00:00 2001 From: Taylan Ulrich Bayırlı/Kammer Date: Mon, 2 Nov 2015 00:39:22 +0100 Subject: gnu: Add mupen64plus-ui-console. * gnu/packages/games.scm (mupen64plus-ui-console): New variable. * gnu/packages/patches/mupen64plus-ui-console-notice.patch: New file. * gnu-system.am (dist_patch_DATA): Add it. --- gnu-system.am | 1 + gnu/packages/games.scm | 66 ++++++++++++++++++++++ .../patches/mupen64plus-ui-console-notice.patch | 34 +++++++++++ 3 files changed, 101 insertions(+) create mode 100644 gnu/packages/patches/mupen64plus-ui-console-notice.patch diff --git a/gnu-system.am b/gnu-system.am index f3ded69a78..cf99a9a008 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -587,6 +587,7 @@ dist_patch_DATA = \ gnu/packages/patches/mplayer2-theora-fix.patch \ gnu/packages/patches/module-init-tools-moduledir.patch \ gnu/packages/patches/mumps-build-parallelism.patch \ + gnu/packages/patches/mupen64plus-ui-console-notice.patch \ gnu/packages/patches/mupdf-buildsystem-fix.patch \ gnu/packages/patches/mutt-store-references.patch \ gnu/packages/patches/net-tools-bitrot.patch \ diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 732b9c6515..2b5d78d618 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -1688,6 +1688,72 @@ which is capable of accurately playing many games. This package contains the Z64 video plugin.") (license license:gpl2+))) +(define-public mupen64plus-ui-console + (package + (name "mupen64plus-ui-console") + (version "2.5") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/mupen64plus/mupen64plus-ui-console/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "04qkpd8ic7xsgnqz7spl00wxdygf79m7d1k8rabbygjk5lg6p8z2")) + (patches + (list (search-patch "mupen64plus-ui-console-notice.patch"))))) + (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,pkg-config) + ("which" ,which))) + (inputs + `(("sdl2" ,sdl2))) + ;; Mupen64Plus supports a single data directory and a single plugin + ;; directory in its configuration, yet we need data and plugin files from + ;; a variety of packages. The best way to deal with this is to install + ;; all packages from which data and plugin files are needed into one's + ;; profile, and point the configuration there. Hence, propagate the most + ;; important packages here to save the user from the bother. The patch + ;; mupen64plus-ui-console-notice also gives users instructions on what + ;; they need to do in order to point the configuration to their profile. + (propagated-inputs + `(("mupen64plus-core" ,mupen64plus-core) + ("mupen64plus-audio-sdl" ,mupen64plus-audio-sdl) + ("mupen64plus-input-sdl" ,mupen64plus-input-sdl) + ("mupen64plus-rsp-hle" ,mupen64plus-rsp-hle) + ("mupen64plus-video-glide64" ,mupen64plus-video-glide64) + ("mupen64plus-video-glide64mk2" ,mupen64plus-video-glide64mk2) + ("mupen64plus-video-rice" ,mupen64plus-video-rice))) + (arguments + '(#:phases + (modify-phases %standard-phases + ;; The mupen64plus build system has no configure phase. + (delete 'configure) + ;; Makefile is in a subdirectory. + (add-before + 'build 'cd-to-project-dir + (lambda _ + (chdir "projects/unix")))) + #:make-flags + (let ((out (assoc-ref %outputs "out")) + (m64p (assoc-ref %build-inputs "mupen64plus-core"))) + (list "all" + (string-append "PREFIX=" out) + (string-append "APIDIR=" m64p "/include/mupen64plus") + ;; Trailing slash matters here. + (string-append "COREDIR=" m64p "/lib/"))) + ;; There are no tests. + #:tests? #f)) + (home-page "http://www.mupen64plus.org/") + (synopsis "Mupen64Plus SDL input plugin") + (description + "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator +which is capable of accurately playing many games. This package contains the +command line user interface. Installing this package is the easiest way +towards a working Mupen64Plus for casual users.") + (license license:gpl2+))) + (define-public nestopia-ue (package (name "nestopia-ue") diff --git a/gnu/packages/patches/mupen64plus-ui-console-notice.patch b/gnu/packages/patches/mupen64plus-ui-console-notice.patch new file mode 100644 index 0000000000..1d0b4c46bb --- /dev/null +++ b/gnu/packages/patches/mupen64plus-ui-console-notice.patch @@ -0,0 +1,34 @@ +Mupen64Plus supports a single data directory and a single plugin directory in +its configuration, yet we need data and plugin files from a variety of +packages. The best way to deal with this is to install all packages from +which data and plugin files are needed into one's profile, and point the +configuration there. Hence, the ui-console package provides propagated inputs +for packages with the most important data and plugin files, and this patch +provides the user instructions on what needs to be done in order to have +Mupen64Plus find the relevant data and plugins. + +--- a/src/plugin.c ++++ b/src/plugin.c +@@ -122,6 +122,22 @@ m64p_error PluginSearchLoad(m64p_handle ConfigUI) + { + const char *plugindir = (*ConfigGetParamString)(ConfigUI, "PluginDir"); + lib_filelist = osal_library_search(plugindir); ++ /* Guix specific */ ++ if (lib_filelist == NULL) ++ { ++ DebugMessage(M64MSG_ERROR, "No plugins found in PluginDir path: %s", plugindir); ++ DebugMessage(M64MSG_ERROR, ++ "\n\n" ++ "*********************************\n" ++ "*** Notice for GNU Guix users ***\n" ++ "*********************************\n" ++ "\n" ++ "You might want to edit your mupen64plus.cfg (in $XDG_CONFIG_HOME by default)\n" ++ "and set SharedDataPath to /path/to/my_guix_profile/share/mupen64plus and\n" ++ "PluginDir to /path/to/my_guix_profile/lib/mupen64plus so that data and plugins\n" ++ "are found.\n" ++ "\n"); ++ } + } + + /* if still no plugins found, search some common system folders */ -- cgit v1.2.3 From 68d85de16383d054dbf4fb5da2437f9cc743e5d2 Mon Sep 17 00:00:00 2001 From: Taylan Ulrich Bayırlı/Kammer Date: Tue, 10 Nov 2015 23:11:28 +0100 Subject: gnu: gtksourceview-2: Propagate input libxml2. * gnu/packages/gtk.scm (gtksourceview-2): Move libxml2 to propagated inputs. --- gnu/packages/gtk.scm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index edfdb3fe7d..40eb8e49ed 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -293,7 +293,6 @@ diagrams.") (build-system gnu-build-system) (inputs `(("gtk" ,gtk+-2) - ("libxml2" ,libxml2) ;; These two are needed only to allow the tests to run successfully. ("xorg-server" ,xorg-server) ("shared-mime-info" ,shared-mime-info))) @@ -301,6 +300,9 @@ diagrams.") `(("intltool" ,intltool) ("glib" ,glib "bin") ; for glib-genmarshal, etc. ("pkg-config" ,pkg-config))) + (propagated-inputs + ;; As per the pkg-config file. + `(("libxml2" ,libxml2))) (arguments `(#:phases ;; Unfortunately, some of the tests in "make check" are highly dependent -- cgit v1.2.3 From ba583bd2ce887cdd8b99ea55c15b57c5209e4b58 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 10 Nov 2015 18:38:04 +0100 Subject: gnu: torsocks: Upgrade to 2.0.0. * gnu/packages/tor.scm (torsocks): Update to 2.0.0. [source]: Fetch from git.torproject.org. Use 'torsocks-dns-test.patch'. [arguments, native-inputs]: New fields. [license]: Change to GPL2. * gnu/packages/patches/torsocks-dns-test.patch: New file. * gnu-system.am (dist_patch_DATA): Add it. --- gnu-system.am | 1 + gnu/packages/patches/torsocks-dns-test.patch | 18 ++++++++++++++ gnu/packages/tor.scm | 37 ++++++++++++++++++++-------- 3 files changed, 46 insertions(+), 10 deletions(-) create mode 100644 gnu/packages/patches/torsocks-dns-test.patch diff --git a/gnu-system.am b/gnu-system.am index cf99a9a008..c5b32b290e 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -661,6 +661,7 @@ dist_patch_DATA = \ gnu/packages/patches/texi2html-document-encoding.patch \ gnu/packages/patches/texi2html-i18n.patch \ gnu/packages/patches/tidy-CVE-2015-5522+5523.patch \ + gnu/packages/patches/torsocks-dns-test.patch \ gnu/packages/patches/tvtime-gcc41.patch \ gnu/packages/patches/tvtime-pngoutput.patch \ gnu/packages/patches/tvtime-videodev2.patch \ diff --git a/gnu/packages/patches/torsocks-dns-test.patch b/gnu/packages/patches/torsocks-dns-test.patch new file mode 100644 index 0000000000..ba70ba5933 --- /dev/null +++ b/gnu/packages/patches/torsocks-dns-test.patch @@ -0,0 +1,18 @@ +Skip DNS tests that rely on the ability to look up arbitary +host names. + +--- torsocks/tests/test_dns.c 2015-11-10 18:30:53.955941984 +0100 ++++ torsocks/tests/test_dns.c 2015-11-10 18:31:02.199941892 +0100 +@@ -134,11 +134,8 @@ static void test_getaddrinfo(const struc + int main(int argc, char **argv) + { + /* Libtap call for the number of tests planned. */ +- plan_tests(NUM_TESTS); ++ plan_tests(1); + +- test_getaddrinfo(&tor_check); +- test_gethostbyname(&tor_dir_auth1); +- test_gethostbyaddr(&tor_dir_auth2); + test_getaddrinfo(&tor_localhost); + + return 0; diff --git a/gnu/packages/tor.scm b/gnu/packages/tor.scm index 3cf45a400e..3b057d422e 100644 --- a/gnu/packages/tor.scm +++ b/gnu/packages/tor.scm @@ -18,13 +18,16 @@ ;;; along with GNU Guix. If not, see . (define-module (gnu packages tor) - #:use-module ((guix licenses) #:select (bsd-3 gpl2+)) + #:use-module ((guix licenses) #:select (bsd-3 gpl2+ gpl2)) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix git-download) #:use-module (guix build-system gnu) + #:use-module (gnu packages) #:use-module (gnu packages libevent) #:use-module (gnu packages compression) #:use-module (gnu packages pcre) + #:use-module (gnu packages perl) #:use-module (gnu packages python) #:use-module (gnu packages autotools) #:use-module (gnu packages tls) @@ -66,22 +69,36 @@ applications based on the TCP protocol.") (define-public torsocks (package (name "torsocks") - (version "1.2") + (version "2.0.0") (source (origin - (method url-fetch) - (uri (string-append "http://torsocks.googlecode.com/files/torsocks-" - version ".tar.gz")) - (sha256 - (base32 - "1m0is5q24sf7jjlkl0icfkdc0m53nbkg0q72s57p48yp4hv7v9dy")))) + (method git-fetch) + (uri (git-reference + (url "https://git.torproject.org/torsocks.git") + (commit (string-append "v" version)))) + (sha256 + (base32 + "0an2q5ail9z414riyjbkjkm29504hy778j914baz2gn5hlv2cfak")) + (file-name (string-append name "-" version "-checkout")) + (patches (list (search-patch "torsocks-dns-test.patch"))))) (build-system gnu-build-system) - (home-page "http://code.google.com/p/torsocks/") + (arguments + '(#:phases (modify-phases %standard-phases + (add-before 'configure 'bootstrap + (lambda _ + (system* "autoreconf" "-vfi")))))) + (native-inputs `(("autoconf" ,(autoconf-wrapper)) + ("automake" ,automake) + ("libtool" ,libtool) + ("perl-test-harness" ,perl-test-harness))) + (home-page "http://www.torproject.org/") (synopsis "Use socks-friendly applications with Tor") (description "Torsocks allows you to use most socks-friendly applications in a safe way with Tor. It ensures that DNS requests are handled safely and explicitly rejects UDP traffic from the application you're using.") - (license gpl2+))) + + ;; All the files explicitly say "version 2 only". + (license gpl2))) (define-public privoxy (package -- cgit v1.2.3 From 21059b26b070d6064202272982392a299f09b6e4 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 10 Nov 2015 21:23:03 +0100 Subject: system: Populate /etc/shells from ACCOUNT-SERVICE-TYPE. * gnu/system.scm (user-shells): Remove. (operating-system-etc-service): Remove "shells" entry. (shells-file): Move to... * gnu/system/shadow.scm (shells-file): ... here. New procedure. (etc-skel): Rename to... (etc-files): ... this. Add "shells" entry. (account-service-type): Adjust accordingly. --- gnu/system.scm | 28 ---------------------------- gnu/system/shadow.scm | 30 ++++++++++++++++++++++++++---- 2 files changed, 26 insertions(+), 32 deletions(-) diff --git a/gnu/system.scm b/gnu/system.scm index be6b1ac2c1..2755d85b23 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -403,38 +403,11 @@ settings for 'guix.el' to work out-of-the-box." (chdir #$output) (symlink #$(emacs-site-file) "site-start.el")))) -(define (user-shells os) - "Return the list of all the shells used by the accounts of OS. These may be -gexps or strings." - (map user-account-shell (operating-system-accounts os))) - -(define (shells-file shells) - "Return a file-like object that builds a shell list for use as /etc/shells -based on SHELLS. /etc/shells is used by xterm, polkit, and other programs." - (computed-file "shells" - #~(begin - (use-modules (srfi srfi-1)) - - (define shells - (delete-duplicates (list #$@shells))) - - (call-with-output-file #$output - (lambda (port) - (display "\ -/bin/sh -/run/current-system/profile/bin/sh -/run/current-system/profile/bin/bash\n" port) - (for-each (lambda (shell) - (display shell port) - (newline port)) - shells)))))) - (define* (operating-system-etc-service os) "Return a that builds containing the static part of the /etc directory." (let ((login.defs (plain-file "login.defs" "# Empty for now.\n")) - (shells (shells-file (user-shells os))) (emacs (emacs-site-directory)) (issue (plain-file "issue" (operating-system-issue os))) (nsswitch (plain-file "nsswitch.conf" @@ -524,7 +497,6 @@ fi\n"))) ("login.defs" ,#~#$login.defs) ("issue" ,#~#$issue) ("nsswitch.conf" ,#~#$nsswitch) - ("shells" ,#~#$shells) ("profile" ,#~#$profile) ("bashrc" ,#~#$bashrc) ("hosts" ,#~#$(or (operating-system-hosts-file os) diff --git a/gnu/system/shadow.scm b/gnu/system/shadow.scm index 3f49c1fc9f..7f3a1dfac2 100644 --- a/gnu/system/shadow.scm +++ b/gnu/system/shadow.scm @@ -280,11 +280,33 @@ group." (activate-users+groups (list #$@user-specs) (list #$@group-specs)))) -(define (etc-skel arguments) +(define (shells-file shells) + "Return a file-like object that builds a shell list for use as /etc/shells +based on SHELLS. /etc/shells is used by xterm, polkit, and other programs." + (computed-file "shells" + #~(begin + (use-modules (srfi srfi-1)) + + (define shells + (delete-duplicates (list #$@shells))) + + (call-with-output-file #$output + (lambda (port) + (display "\ +/bin/sh +/run/current-system/profile/bin/sh +/run/current-system/profile/bin/bash\n" port) + (for-each (lambda (shell) + (display shell port) + (newline port)) + shells)))))) +(define (etc-files arguments) "Filter out among ARGUMENTS things corresponding to skeletons, and return the /etc/skel directory for those." - (let ((skels (filter pair? arguments))) - `(("skel" ,(skeleton-directory skels))))) + (let ((skels (filter pair? arguments)) + (users (filter user-account? arguments))) + `(("skel" ,(skeleton-directory skels)) + ("shells" ,(shells-file (map user-account-shell users)))))) (define account-service-type (service-type (name 'account) @@ -298,7 +320,7 @@ the /etc/skel directory for those." (list (service-extension activation-service-type account-activation) (service-extension etc-service-type - etc-skel))))) + etc-files))))) (define (account-service accounts+groups skeletons) "Return a that takes care of user accounts and user groups, with -- cgit v1.2.3 From fc2d2339644b408574f0ead4436e751fa423a7e6 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 10 Nov 2015 22:00:53 +0100 Subject: guix package: '--search-paths' can report combined search paths. Partly fixes . * guix/scripts/package.scm (search-path-environment-variables): Change 'profile' to 'profiles'; expect it to be a list. (display-search-paths): Likewise. (%default-options): Remove 'profile' entry. (%options) <--profile>: Keep previous values associated with 'profile' in RESULT. (guix-package)[process-actions, process-query]: Handle the possible lack of 'profile' pair in OPTS. --- doc/guix.texi | 14 +++++++++++ guix/scripts/package.scm | 64 ++++++++++++++++++++++++++--------------------- tests/guix-package-net.sh | 12 ++++++++- 3 files changed, 60 insertions(+), 30 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 896a8c8496..09a860a64f 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -1347,6 +1347,20 @@ meaning that the returned environment variable definitions will either be exact settings, or prefixes or suffixes of the current value of these variables. When omitted, @var{kind} defaults to @code{exact}. +This option can also be used to compute the @emph{combined} search paths +of several profiles. Consider this example: + +@example +$ guix package -p foo -i guile +$ guix package -p bar -i guile-json +$ guix package -p foo -p bar --search-paths +@end example + +The last command above reports about the @code{GUILE_LOAD_PATH} +variable, even though, taken individually, neither @file{foo} nor +@file{bar} would lead to that recommendation. + + @item --profile=@var{profile} @itemx -p @var{profile} Use @var{profile} instead of the user's default profile. diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm index adbc4a1828..5a059f12ae 100644 --- a/guix/scripts/package.scm +++ b/guix/scripts/package.scm @@ -186,11 +186,11 @@ an output path different than CURRENT-PATH." ;;; Search paths. ;;; -(define* (search-path-environment-variables entries profile +(define* (search-path-environment-variables entries profiles #:optional (getenv getenv) #:key (kind 'exact)) "Return environment variable definitions that may be needed for the use of -ENTRIES, a list of manifest entries, in PROFILE. Use GETENV to determine the +ENTRIES, a list of manifest entries, in PROFILES. Use GETENV to determine the current settings and report only settings not already effective. KIND must be one of 'exact, 'prefix, or 'suffix, depending on the kind of search path definition to be returned." @@ -205,15 +205,15 @@ path definition to be returned." (environment-variable-definition variable value #:separator sep #:kind kind)))) - (evaluate-search-paths search-paths (list profile) + (evaluate-search-paths search-paths profiles getenv)))) -(define* (display-search-paths entries profile +(define* (display-search-paths entries profiles #:key (kind 'exact)) "Display the search path environment variables that may need to be set for ENTRIES, a list of manifest entries, in the context of PROFILE." - (let* ((profile (user-friendly-profile profile)) - (settings (search-path-environment-variables entries profile + (let* ((profiles (map user-friendly-profile profiles)) + (settings (search-path-environment-variables entries profiles #:kind kind))) (unless (null? settings) (format #t (_ "The following environment variable definitions may be needed:~%")) @@ -226,8 +226,7 @@ ENTRIES, a list of manifest entries, in the context of PROFILE." (define %default-options ;; Alist of default option values. - `((profile . ,%current-profile) - (max-silent-time . 3600) + `((max-silent-time . 3600) (verbosity . 0) (substitutes? . #t))) @@ -386,7 +385,7 @@ kind of search path~%") (option '(#\p "profile") #t #f (lambda (opt name arg result arg-handler) (values (alist-cons 'profile (canonicalize-profile arg) - (alist-delete 'profile result)) + result) #f))) (option '(#\n "dry-run") #f #f (lambda (opt name arg result arg-handler) @@ -601,7 +600,7 @@ more information.~%")) ;; Process any install/remove/upgrade action from OPTS. (define dry-run? (assoc-ref opts 'dry-run?)) - (define profile (assoc-ref opts 'profile)) + (define profile (or (assoc-ref opts 'profile) %current-profile)) (define (build-and-use-profile manifest) (let* ((bootstrap? (assoc-ref opts 'bootstrap?))) @@ -645,7 +644,7 @@ more information.~%")) "~a packages in profile~%" count) count) - (display-search-paths entries profile))))))))) + (display-search-paths entries (list profile)))))))))) ;; First roll back if asked to. (cond ((and (assoc-ref opts 'roll-back?) @@ -674,12 +673,12 @@ more information.~%")) (not dry-run?)) (for-each (match-lambda - (('delete-generations . pattern) - (delete-matching-generations (%store) profile pattern) + (('delete-generations . pattern) + (delete-matching-generations (%store) profile pattern) - (process-actions - (alist-delete 'delete-generations opts))) - (_ #f)) + (process-actions + (alist-delete 'delete-generations opts))) + (_ #f)) opts)) ((assoc-ref opts 'manifest) (let* ((file-name (assoc-ref opts 'manifest)) @@ -709,7 +708,14 @@ more information.~%")) (define (process-query opts) ;; Process any query specified by OPTS. Return #t when a query was ;; actually processed, #f otherwise. - (let ((profile (assoc-ref opts 'profile))) + (let* ((profiles (match (filter-map (match-lambda + (('profile . p) p) + (_ #f)) + opts) + (() (list %current-profile)) + (lst lst))) + (profile (match profiles + ((head tail ...) head)))) (match (assoc-ref opts 'query) (('list-generations pattern) (define (list-generation number) @@ -718,7 +724,7 @@ more information.~%")) (display-profile-content profile number) (newline))) - (cond ((not (file-exists? profile)) ; XXX: race condition + (cond ((not (file-exists? profile)) ; XXX: race condition (raise (condition (&profile-not-found-error (profile profile))))) ((string-null? pattern) @@ -741,11 +747,11 @@ more information.~%")) (installed (manifest-entries manifest))) (leave-on-EPIPE (for-each (match-lambda - (($ name version output path _) - (when (or (not regexp) - (regexp-exec regexp name)) - (format #t "~a\t~a\t~a\t~a~%" - name (or version "?") output path)))) + (($ name version output path _) + (when (or (not regexp) + (regexp-exec regexp name)) + (format #t "~a\t~a\t~a\t~a~%" + name (or version "?") output path)))) ;; Show most recently installed packages last. (reverse installed))) @@ -793,12 +799,12 @@ more information.~%")) #t)) (('search-paths kind) - (let* ((manifest (profile-manifest profile)) - (entries (manifest-entries manifest)) - (profile (user-friendly-profile profile)) - (settings (search-path-environment-variables entries profile - (const #f) - #:kind kind))) + (let* ((manifests (map profile-manifest profiles)) + (entries (append-map manifest-entries manifests)) + (profiles (map user-friendly-profile profiles)) + (settings (search-path-environment-variables entries profiles + (const #f) + #:kind kind))) (format #t "~{~a~%~}" settings) #t)) diff --git a/tests/guix-package-net.sh b/tests/guix-package-net.sh index 14222cfd25..35ef6ff1a0 100644 --- a/tests/guix-package-net.sh +++ b/tests/guix-package-net.sh @@ -46,9 +46,10 @@ fi profile="t-profile-$$" +profile_alt="t-profile-alt-$$" rm -f "$profile" -trap 'rm -f "$profile" "$profile-"[0-9]* ; rm -rf t-home-'"$$" EXIT +trap 'rm -f "$profile" "$profile_alt" "$profile-"[0-9]* ; rm -rf t-home-'"$$" EXIT guix package --bootstrap -p "$profile" -i guile-bootstrap @@ -156,6 +157,15 @@ guix package -p "$profile" --switch-generation=2 guix package -p "$profile" --delete-generations=3 test -z "`guix package -p "$profile" -l 3`" +# Search path of combined profiles. 'LIBRARY_PATH' should show up only in the +# combination, not in the individual profiles. +rm "$profile" +guix package --bootstrap -p "$profile" -i guile-bootstrap +guix package --bootstrap -p "$profile_alt" -i gcc-bootstrap +if guix package -p "$profile" --search-paths | grep LIBRARY_PATH +then false; fi +guix package -p "$profile" -p "$profile_alt" --search-paths \ + | grep "LIBRARY_PATH.*$profile/lib" # # Try with the default profile. -- cgit v1.2.3 From 2ab5fdc4b4b340ffabaeb582fa1b19e4836fc27e Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 10 Nov 2015 22:24:38 +0100 Subject: ui: 'guix help COMMAND' is like 'guix COMMAND --help'. * guix/ui.scm (run-guix): Add ("help" COMMAND) case. --- guix/ui.scm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/guix/ui.scm b/guix/ui.scm index 312c2a01a1..581fb941f5 100644 --- a/guix/ui.scm +++ b/guix/ui.scm @@ -1191,6 +1191,9 @@ and signal handling has already been set up." (format (current-error-port) (_ "guix: unrecognized option '~a'~%") o) (show-guix-usage)) + (("help" command) + (apply run-guix-command (string->symbol command) + '("--help"))) (("help" args ...) (show-guix-help)) ((command args ...) -- cgit v1.2.3 From a4564c629f43862a5d5590516f94e1806165d476 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Tue, 10 Nov 2015 23:06:28 -0500 Subject: gnu: git: Update to 2.6.3. * gnu/packages/version-control.scm (git): Update to 2.6.3. (git-manpages)[source]: Update hash. --- gnu/packages/version-control.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index b4c518acf7..77486cd3fb 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -105,14 +105,14 @@ as well as the classic centralized workflow.") ;; Keep in sync with 'git-manpages'! (package (name "git") - (version "2.5.0") + (version "2.6.3") (source (origin (method url-fetch) (uri (string-append "mirror://kernel.org/software/scm/git/git-" version ".tar.xz")) (sha256 (base32 - "0p747j94kynrx71qaamc9i0dkq5vqpv66a47b68pmin1qsxb2nfc")))) + "18vxb5fmwmrps504m23a4xdl29m7ibca3hmz0mn9jc38sz9y95yn")))) (build-system gnu-build-system) (native-inputs `(("native-perl" ,perl) @@ -279,7 +279,7 @@ everything from small to very large projects with speed and efficiency.") version ".tar.xz")) (sha256 (base32 - "1spnqxzl53ic7bv1x7c6lwscdh581scqm5zh98wfp4qn1ciafvhs")))) + "1d7jb4pyln0prgxpxkfiy2l6ragsjzsyqyxbssbchdvl145gj8xf")))) (build-system trivial-build-system) (arguments '(#:modules ((guix build utils)) -- cgit v1.2.3 From 533c1b04bc8bf90cae8209719d3d657ae28fd637 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Wed, 11 Nov 2015 01:15:32 -0500 Subject: gnu: linux-libre: Update to 4.2.6. * gnu/packages/linux.scm (linux-libre): Update to 4.2.6. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index a75ea2f05e..39983dafb3 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -210,7 +210,7 @@ for SYSTEM, or #f if there is no configuration for SYSTEM." #f))) (define-public linux-libre - (let* ((version "4.2.5") + (let* ((version "4.2.6") (build-phase '(lambda* (#:key system inputs #:allow-other-keys #:rest args) ;; Apply the neat patch. @@ -284,7 +284,7 @@ for SYSTEM, or #f if there is no configuration for SYSTEM." (uri (linux-libre-urls version)) (sha256 (base32 - "13ar9sghm2g5w2km9x2d07q3lh81rz286d6slklv56qanm24chzx")))) + "0phjk4dp0bk9s5mwawkxg3myl7fh244s833b33dc6m2y9clvzskl")))) (build-system gnu-build-system) (supported-systems '("x86_64-linux" "i686-linux")) (native-inputs `(("perl" ,perl) -- cgit v1.2.3 From 875b2f3d5e7c04176239d16c1832543f315cbf91 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 11 Nov 2015 13:05:56 +0200 Subject: gnu: youtube-dl: Upgrade to 2015.11.10. * gnu/packages/video.scm (youtube-dl): Upgrade to 2015.11.10. --- gnu/packages/video.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index deb2cf1dc4..687057fb88 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -812,7 +812,7 @@ projects while introducing many more.") (define-public youtube-dl (package (name "youtube-dl") - (version "2015.11.01") + (version "2015.11.10") (source (origin (method url-fetch) (uri (string-append "http://youtube-dl.org/downloads/" @@ -820,7 +820,7 @@ projects while introducing many more.") version ".tar.gz")) (sha256 (base32 - "0fhz6ml9mlz4g4xfm6kmkcks4p5j6srnszdrh9rmcc4gf36q3aaq")))) + "1gp68wzsfg31xx6iv7ga6cp022ak14r7ghg7mbhk9zr7rz5lx8y5")))) (build-system python-build-system) (inputs `(("setuptools" ,python-setuptools))) (home-page "http://youtube-dl.org") -- cgit v1.2.3 From 419630e0bec46b9cb33047dea1662df0c400ade3 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Wed, 11 Nov 2015 07:43:12 -0500 Subject: gnu: wpa-supplicant: Add fixes for CVE-2015-{5310,5314,5315,5316}. * gnu/packages/patches/wpa-supplicant-CVE-2015-5310.patch, gnu/packages/patches/wpa-supplicant-CVE-2015-5314.patch, gnu/packages/patches/wpa-supplicant-CVE-2015-5315.patch, gnu/packages/patches/wpa-supplicant-CVE-2015-5316.patch: New files. * gnu-system.am (dist_patch_DATA): Add them. * gnu/packages/admin.scm (wpa-supplicant-minimal)[source]: Add patches. --- gnu-system.am | 4 ++ gnu/packages/admin.scm | 7 ++- .../patches/wpa-supplicant-CVE-2015-5310.patch | 32 +++++++++++++ .../patches/wpa-supplicant-CVE-2015-5314.patch | 51 ++++++++++++++++++++ .../patches/wpa-supplicant-CVE-2015-5315.patch | 54 ++++++++++++++++++++++ .../patches/wpa-supplicant-CVE-2015-5316.patch | 34 ++++++++++++++ 6 files changed, 181 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/wpa-supplicant-CVE-2015-5310.patch create mode 100644 gnu/packages/patches/wpa-supplicant-CVE-2015-5314.patch create mode 100644 gnu/packages/patches/wpa-supplicant-CVE-2015-5315.patch create mode 100644 gnu/packages/patches/wpa-supplicant-CVE-2015-5316.patch diff --git a/gnu-system.am b/gnu-system.am index c5b32b290e..e53bb3ecf4 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -692,6 +692,10 @@ dist_patch_DATA = \ gnu/packages/patches/wicd-template-instantiation.patch \ gnu/packages/patches/wicd-urwid-1.3.patch \ gnu/packages/patches/wmctrl-64-fix.patch \ + gnu/packages/patches/wpa-supplicant-CVE-2015-5310.patch \ + gnu/packages/patches/wpa-supplicant-CVE-2015-5314.patch \ + gnu/packages/patches/wpa-supplicant-CVE-2015-5315.patch \ + gnu/packages/patches/wpa-supplicant-CVE-2015-5316.patch \ gnu/packages/patches/xf86-video-ark-remove-mibstore.patch \ gnu/packages/patches/xf86-video-ast-remove-mibstore.patch \ gnu/packages/patches/xf86-video-geode-glibc-2.20.patch \ diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index aba5a51a4c..6aca8570c0 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -716,7 +716,12 @@ commands and their arguments.") ".tar.gz")) (sha256 (base32 - "05mkp5bx1c3z7h5biddsv0p49gkrq9ksany3anp4wdiv92p5prfc")))) + "05mkp5bx1c3z7h5biddsv0p49gkrq9ksany3anp4wdiv92p5prfc")) + (patches + (map search-patch '("wpa-supplicant-CVE-2015-5310.patch" + "wpa-supplicant-CVE-2015-5314.patch" + "wpa-supplicant-CVE-2015-5315.patch" + "wpa-supplicant-CVE-2015-5316.patch"))))) (build-system gnu-build-system) (arguments '(#:phases (alist-replace diff --git a/gnu/packages/patches/wpa-supplicant-CVE-2015-5310.patch b/gnu/packages/patches/wpa-supplicant-CVE-2015-5310.patch new file mode 100644 index 0000000000..00e5b7c771 --- /dev/null +++ b/gnu/packages/patches/wpa-supplicant-CVE-2015-5310.patch @@ -0,0 +1,32 @@ +From 6b12d93d2c7428a34bfd4b3813ba339ed57b698a Mon Sep 17 00:00:00 2001 +From: Jouni Malinen +Date: Sun, 25 Oct 2015 15:45:50 +0200 +Subject: [PATCH] WNM: Ignore Key Data in WNM Sleep Mode Response frame if no + PMF in use + +WNM Sleep Mode Response frame is used to update GTK/IGTK only if PMF is +enabled. Verify that PMF is in use before using this field on station +side to avoid accepting unauthenticated key updates. (CVE-2015-5310) + +Signed-off-by: Jouni Malinen +--- + wpa_supplicant/wnm_sta.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/wpa_supplicant/wnm_sta.c b/wpa_supplicant/wnm_sta.c +index 954de67..7d79499 100644 +--- a/wpa_supplicant/wnm_sta.c ++++ b/wpa_supplicant/wnm_sta.c +@@ -187,6 +187,12 @@ static void wnm_sleep_mode_exit_success(struct wpa_supplicant *wpa_s, + end = ptr + key_len_total; + wpa_hexdump_key(MSG_DEBUG, "WNM: Key Data", ptr, key_len_total); + ++ if (key_len_total && !wpa_sm_pmf_enabled(wpa_s->wpa)) { ++ wpa_msg(wpa_s, MSG_INFO, ++ "WNM: Ignore Key Data in WNM-Sleep Mode Response - PMF not enabled"); ++ return; ++ } ++ + while (ptr + 1 < end) { + if (ptr + 2 + ptr[1] > end) { + wpa_printf(MSG_DEBUG, "WNM: Invalid Key Data element " diff --git a/gnu/packages/patches/wpa-supplicant-CVE-2015-5314.patch b/gnu/packages/patches/wpa-supplicant-CVE-2015-5314.patch new file mode 100644 index 0000000000..bfc4c74e95 --- /dev/null +++ b/gnu/packages/patches/wpa-supplicant-CVE-2015-5314.patch @@ -0,0 +1,51 @@ +From bef802ece03f9ae9d52a21f0cf4f1bc2c5a1f8aa Mon Sep 17 00:00:00 2001 +From: Jouni Malinen +Date: Sun, 1 Nov 2015 18:24:16 +0200 +Subject: [PATCH] EAP-pwd server: Fix last fragment length validation + +All but the last fragment had their length checked against the remaining +room in the reassembly buffer. This allowed a suitably constructed last +fragment frame to try to add extra data that would go beyond the buffer. +The length validation code in wpabuf_put_data() prevents an actual +buffer write overflow from occurring, but this results in process +termination. (CVE-2015-5314) + +Signed-off-by: Jouni Malinen +--- + src/eap_server/eap_server_pwd.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/src/eap_server/eap_server_pwd.c b/src/eap_server/eap_server_pwd.c +index cb83ff7..9f787ab 100644 +--- a/src/eap_server/eap_server_pwd.c ++++ b/src/eap_server/eap_server_pwd.c +@@ -970,7 +970,7 @@ static void eap_pwd_process(struct eap_sm *sm, void *priv, + /* + * the first and all intermediate fragments have the M bit set + */ +- if (EAP_PWD_GET_MORE_BIT(lm_exch)) { ++ if (EAP_PWD_GET_MORE_BIT(lm_exch) || data->in_frag_pos) { + if ((data->in_frag_pos + len) > wpabuf_size(data->inbuf)) { + wpa_printf(MSG_DEBUG, "EAP-pwd: Buffer overflow " + "attack detected! (%d+%d > %d)", +@@ -981,6 +981,8 @@ static void eap_pwd_process(struct eap_sm *sm, void *priv, + } + wpabuf_put_data(data->inbuf, pos, len); + data->in_frag_pos += len; ++ } ++ if (EAP_PWD_GET_MORE_BIT(lm_exch)) { + wpa_printf(MSG_DEBUG, "EAP-pwd: Got a %d byte fragment", + (int) len); + return; +@@ -990,8 +992,6 @@ static void eap_pwd_process(struct eap_sm *sm, void *priv, + * buffering fragments so that's how we know it's the last) + */ + if (data->in_frag_pos) { +- wpabuf_put_data(data->inbuf, pos, len); +- data->in_frag_pos += len; + pos = wpabuf_head_u8(data->inbuf); + len = data->in_frag_pos; + wpa_printf(MSG_DEBUG, "EAP-pwd: Last fragment, %d bytes", +-- +1.9.1 + diff --git a/gnu/packages/patches/wpa-supplicant-CVE-2015-5315.patch b/gnu/packages/patches/wpa-supplicant-CVE-2015-5315.patch new file mode 100644 index 0000000000..82c26398b6 --- /dev/null +++ b/gnu/packages/patches/wpa-supplicant-CVE-2015-5315.patch @@ -0,0 +1,54 @@ +From 8057821706784608b828e769ccefbced95591e50 Mon Sep 17 00:00:00 2001 +From: Jouni Malinen +Date: Sun, 1 Nov 2015 18:18:17 +0200 +Subject: [PATCH] EAP-pwd peer: Fix last fragment length validation + +All but the last fragment had their length checked against the remaining +room in the reassembly buffer. This allowed a suitably constructed last +fragment frame to try to add extra data that would go beyond the buffer. +The length validation code in wpabuf_put_data() prevents an actual +buffer write overflow from occurring, but this results in process +termination. (CVE-2015-5315) + +Signed-off-by: Jouni Malinen +--- + src/eap_peer/eap_pwd.c | 7 +++---- + 1 file changed, 3 insertions(+), 4 deletions(-) + +diff --git a/src/eap_peer/eap_pwd.c b/src/eap_peer/eap_pwd.c +index 1f78544..75ceef1 100644 +--- a/src/eap_peer/eap_pwd.c ++++ b/src/eap_peer/eap_pwd.c +@@ -903,7 +903,7 @@ eap_pwd_process(struct eap_sm *sm, void *priv, struct eap_method_ret *ret, + /* + * buffer and ACK the fragment + */ +- if (EAP_PWD_GET_MORE_BIT(lm_exch)) { ++ if (EAP_PWD_GET_MORE_BIT(lm_exch) || data->in_frag_pos) { + data->in_frag_pos += len; + if (data->in_frag_pos > wpabuf_size(data->inbuf)) { + wpa_printf(MSG_INFO, "EAP-pwd: Buffer overflow attack " +@@ -916,7 +916,8 @@ eap_pwd_process(struct eap_sm *sm, void *priv, struct eap_method_ret *ret, + return NULL; + } + wpabuf_put_data(data->inbuf, pos, len); +- ++ } ++ if (EAP_PWD_GET_MORE_BIT(lm_exch)) { + resp = eap_msg_alloc(EAP_VENDOR_IETF, EAP_TYPE_PWD, + EAP_PWD_HDR_SIZE, + EAP_CODE_RESPONSE, eap_get_id(reqData)); +@@ -930,10 +931,8 @@ eap_pwd_process(struct eap_sm *sm, void *priv, struct eap_method_ret *ret, + * we're buffering and this is the last fragment + */ + if (data->in_frag_pos) { +- wpabuf_put_data(data->inbuf, pos, len); + wpa_printf(MSG_DEBUG, "EAP-pwd: Last fragment, %d bytes", + (int) len); +- data->in_frag_pos += len; + pos = wpabuf_head_u8(data->inbuf); + len = data->in_frag_pos; + } +-- +1.9.1 + diff --git a/gnu/packages/patches/wpa-supplicant-CVE-2015-5316.patch b/gnu/packages/patches/wpa-supplicant-CVE-2015-5316.patch new file mode 100644 index 0000000000..3088f6a6dc --- /dev/null +++ b/gnu/packages/patches/wpa-supplicant-CVE-2015-5316.patch @@ -0,0 +1,34 @@ +From 95577884ca4fa76be91344ff7a8d5d1e6dc3da61 Mon Sep 17 00:00:00 2001 +From: Jouni Malinen +Date: Sun, 1 Nov 2015 19:35:44 +0200 +Subject: [PATCH] EAP-pwd peer: Fix error path for unexpected Confirm message + +If the Confirm message is received from the server before the Identity +exchange has been completed, the group has not yet been determined and +data->grp is NULL. The error path in eap_pwd_perform_confirm_exchange() +did not take this corner case into account and could end up +dereferencing a NULL pointer and terminating the process if invalid +message sequence is received. (CVE-2015-5316) + +Signed-off-by: Jouni Malinen +--- + src/eap_peer/eap_pwd.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/src/eap_peer/eap_pwd.c b/src/eap_peer/eap_pwd.c +index 75ceef1..892b590 100644 +--- a/src/eap_peer/eap_pwd.c ++++ b/src/eap_peer/eap_pwd.c +@@ -774,7 +774,8 @@ eap_pwd_perform_confirm_exchange(struct eap_sm *sm, struct eap_pwd_data *data, + wpabuf_put_data(data->outbuf, conf, SHA256_MAC_LEN); + + fin: +- bin_clear_free(cruft, BN_num_bytes(data->grp->prime)); ++ if (data->grp) ++ bin_clear_free(cruft, BN_num_bytes(data->grp->prime)); + BN_clear_free(x); + BN_clear_free(y); + if (data->outbuf == NULL) { +-- +1.9.1 + -- cgit v1.2.3 From e61d9e3966a8043208a4beca4bcf8f5a8d7458f3 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 11 Nov 2015 17:23:32 +0100 Subject: gnu: Add gfortran 5. * gnu/packages/gcc.scm (gfortran-5): New variable. --- gnu/packages/gcc.scm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index 419e2c9cbf..8465859c24 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -436,6 +436,9 @@ using compilers other than GCC." (define-public gfortran (custom-gcc gcc "gfortran" '("fortran"))) +(define-public gfortran-5 + (custom-gcc gcc-5 "gfortran" '("fortran"))) + (define-public gccgo-4.8 (custom-gcc gcc-4.8 "gccgo" '("go") ;; Suppress the separate "lib" output, because otherwise the -- cgit v1.2.3 From e5e206855174586bd646615a8955f90bbc03dfa8 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 11 Nov 2015 10:44:20 +0100 Subject: gnu: ardour: Update to 4.4. * gnu/packages/audio.scm (ardour): Update to 4.4. --- gnu/packages/audio.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index db3f91273c..a6899a07f6 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -155,7 +155,7 @@ streams from live audio.") (define-public ardour (package (name "ardour") - (version "4.2") + (version "4.4") (source (origin (method git-fetch) (uri (git-reference @@ -169,10 +169,10 @@ streams from live audio.") "libs/ardour/revision.cc" (lambda (port) (format port "#include \"ardour/revision.h\" -namespace ARDOUR { const char* revision = \"4.2\" ; }")))) +namespace ARDOUR { const char* revision = \"4.4-210-ga4daf93\" ; }")))) (sha256 (base32 - "1j8zw0bvh16qwyy8qrqynpak9nghl9j3qhjjcdl7wh9raafjqc00")) + "1gnrcnq2ksnh7fsa301v1c4p5dqrbqpjylf02rg3za3ab58wxi7l")) (file-name (string-append name "-" version)))) (build-system waf-build-system) (arguments -- cgit v1.2.3 From 42f8504ccc7729b536e3137e71eb45806968e41a Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 6 Nov 2015 22:35:33 +0100 Subject: gnu: Add prefix to license imports in (gnu packages avr). * gnu/packages/avr.scm: Import (guix licenses) with prefix "license:". --- gnu/packages/avr.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/avr.scm b/gnu/packages/avr.scm index d7ca1b1ace..105c741b8d 100644 --- a/gnu/packages/avr.scm +++ b/gnu/packages/avr.scm @@ -17,7 +17,7 @@ ;;; along with GNU Guix. If not, see . (define-module (gnu packages avr) - #:use-module (guix licenses) + #:use-module ((guix licenses) #:prefix license:) #:use-module (guix download) #:use-module (guix packages) #:use-module (guix build-system gnu) @@ -48,4 +48,4 @@ (description "AVR Libc is a project whose goal is to provide a high quality C library for use with GCC on Atmel AVR microcontrollers.") - (license (non-copyleft "http://www.nongnu.org/avr-libc/LICENSE.txt")))) + (license (license:non-copyleft "http://www.nongnu.org/avr-libc/LICENSE.txt")))) -- cgit v1.2.3 From 14649b8cdb5708ff99626bbfae194457c465311e Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 11 Nov 2015 22:09:27 +0100 Subject: refresh: Avoid non-literal format string. Reported by Mathieu Lirzin . * guix/scripts/refresh.scm (guix-refresh): Rewrite 'list-dependent?' report to avoid nested 'N_' calls. --- guix/scripts/refresh.scm | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/guix/scripts/refresh.scm b/guix/scripts/refresh.scm index 8c2ca81175..3161aacfe2 100644 --- a/guix/scripts/refresh.scm +++ b/guix/scripts/refresh.scm @@ -322,21 +322,25 @@ update would trigger a complete rebuild." (package-covering-dependents packages))) (total-dependents (length (package-transitive-dependents packages)))) - (if (= total-dependents 0) - (format (current-output-port) - (N_ "No dependents other than itself: ~{~a~}~%" - "No dependents other than themselves: ~{~a~^ ~}~%" - (length packages)) - (map package-full-name packages)) - (format (current-output-port) - (N_ (N_ "A single dependent package: ~2*~{~a~}~%" - "Building the following package would ensure ~d \ -dependent packages are rebuilt; ~*~{~a~^ ~}~%" - total-dependents) - "Building the following ~d packages would ensure ~d \ + (cond ((= total-dependents 0) + (format (current-output-port) + (N_ "No dependents other than itself: ~{~a~}~%" + "No dependents other than themselves: ~{~a~^ ~}~%" + (length packages)) + (map package-full-name packages))) + + ((= total-dependents 1) + (format (current-output-port) + (_ "A single dependent package: ~{~a~}~%") + rebuilds)) + (else + (format (current-output-port) + (N_ "Building the following package would ensure ~d \ +dependent packages are rebuilt: ~*~{~a~^ ~}~%" + "Building the following ~d packages would ensure ~d \ dependent packages are rebuilt: ~{~a~^ ~}~%" (length rebuilds)) - (length rebuilds) total-dependents rebuilds)))) + (length rebuilds) total-dependents rebuilds))))) (update? (let ((store (open-connection))) (parameterize ((%openpgp-key-server -- cgit v1.2.3 From 6d2e833495f8bd63ea3893c23a0762ad88a11cef Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 6 Nov 2015 22:37:40 +0100 Subject: gnu: Add microscheme. * gnu/packages/avr.scm (microscheme): New variable. --- gnu/packages/avr.scm | 42 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) diff --git a/gnu/packages/avr.scm b/gnu/packages/avr.scm index 105c741b8d..d59816b6b8 100644 --- a/gnu/packages/avr.scm +++ b/gnu/packages/avr.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 Manolis Fragkiskos Ragkousis +;;; Copyright © 2015 Ricardo Wurmus ;;; ;;; This file is part of GNU Guix. ;;; @@ -22,7 +23,9 @@ #:use-module (guix packages) #:use-module (guix build-system gnu) #:use-module (gnu packages) - #:use-module (gnu packages cross-base)) + #:use-module (gnu packages cross-base) + #:use-module (gnu packages vim) + #:use-module (gnu packages zip)) (define-public avr-libc (package @@ -49,3 +52,40 @@ "AVR Libc is a project whose goal is to provide a high quality C library for use with GCC on Atmel AVR microcontrollers.") (license (license:non-copyleft "http://www.nongnu.org/avr-libc/LICENSE.txt")))) + +(define-public microscheme + (package + (name "microscheme") + (version "0.9.2") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/ryansuchocki/" + "microscheme/archive/v" version ".zip")) + (sha256 + (base32 + "0cmp1c6ilcib4w9ysqghav310g8jsq9gdfpfa9sd23wgl7mlncxf")) + (file-name (string-append name "-" version ".zip")))) + (build-system gnu-build-system) + (arguments + `(#:parallel-build? #f ; fails to build otherwise + #:tests? #f ; no tests + #:phases + (modify-phases %standard-phases + (delete 'configure)) + #:make-flags + (list (string-append "PREFIX=" (assoc-ref %outputs "out"))))) + (native-inputs + `(("unzip" ,unzip) + ("vim" ,vim))) ; for xxd + (home-page "http://microscheme.org/") + (synopsis "Scheme subset for Atmel microcontrollers") + (description + "Microscheme, or @code{(ms)} for short, is a functional programming +language for the Arduino, and for Atmel 8-bit AVR microcontrollers in general. +Microscheme is a subset of Scheme, in the sense that every valid @code{(ms)} +program is also a valid Scheme program (with the exception of Arduino +hardware-specific primitives). The @code{(ms)} compiler performs function +inlining, and features an aggressive tree-shaker, eliminating unused top-level +definitions. Microscheme has a robust @dfn{Foreign Function Interface} (FFI) +meaning that C code may be invoked directly from (ms) programs.") + (license license:expat))) -- cgit v1.2.3 From 6237b9fa39c6ab3283c50b96520b990c8612abc1 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 11 Nov 2015 22:59:35 +0100 Subject: edit: Honor $VISUAL. Suggested by Andreas Enge . * guix/scripts/edit.scm (%editor): Honor 'VISUAL' before 'EDITOR'. (show-help): Adjust accordingly. * doc/guix.texi (Invoking guix edit): Likewise. --- doc/guix.texi | 5 +++-- guix/scripts/edit.scm | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 09a860a64f..3b6955c6f5 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -3929,8 +3929,9 @@ guix edit gcc-4.8 vim @end example @noindent -launches the program specified in the @code{EDITOR} environment variable -to edit the recipe of GCC@tie{}4.8.4 and that of Vim. +launches the program specified in the @code{VISUAL} or in the +@code{EDITOR} environment variable to edit the recipe of GCC@tie{}4.8.4 +and that of Vim. If you are using Emacs, note that the Emacs user interface provides similar functionality in the ``package info'' and ``package list'' diff --git a/guix/scripts/edit.scm b/guix/scripts/edit.scm index 0509148c4d..73a5bb78d2 100644 --- a/guix/scripts/edit.scm +++ b/guix/scripts/edit.scm @@ -38,7 +38,7 @@ (define (show-help) (display (_ "Usage: guix edit PACKAGE... -Start $EDITOR to edit the definitions of PACKAGE...\n")) +Start $VISUAL or $EDITOR to edit the definitions of PACKAGE...\n")) (newline) (display (_ " -h, --help display this help and exit")) @@ -48,7 +48,8 @@ Start $EDITOR to edit the definitions of PACKAGE...\n")) (show-bug-report-information)) (define %editor - (make-parameter (or (getenv "EDITOR") "emacsclient"))) + (make-parameter (or (getenv "VISUAL") (getenv "EDITOR") + "emacsclient"))) (define (search-path* path file) "Like 'search-path' but exit if FILE is not found." -- cgit v1.2.3 From 3a96d7c3dd864e4312df723ea54c2f710f55380c Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 11 Nov 2015 23:05:43 +0100 Subject: guix gc: Error out when extra arguments are passed. Fixes . Reported by Petter Berntsen . * guix/scripts/gc.scm (guix-gc)[assert-no-extra-arguments]: New procedure. Use it for actions 'collect-garbage', 'optimize', and 'verify'. * tests/guix-gc.sh: Add tests. --- guix/scripts/gc.scm | 7 +++++++ tests/guix-gc.sh | 8 +++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/guix/scripts/gc.scm b/guix/scripts/gc.scm index 89a68d51d0..fe1bb93f7f 100644 --- a/guix/scripts/gc.scm +++ b/guix/scripts/gc.scm @@ -182,6 +182,10 @@ Invoke the garbage collector.\n")) (('argument . arg) arg) (_ #f)) opts))) + (define (assert-no-extra-arguments) + (unless (null? paths) + (leave (_ "extraneous arguments: ~{~a ~}~%") paths))) + (define (list-relatives relatives) (for-each (compose (lambda (path) (for-each (cut simple-format #t "~a~%" <>) @@ -192,6 +196,7 @@ Invoke the garbage collector.\n")) (case (assoc-ref opts 'action) ((collect-garbage) + (assert-no-extra-arguments) (let ((min-freed (assoc-ref opts 'min-freed))) (if min-freed (collect-garbage store min-freed) @@ -205,8 +210,10 @@ Invoke the garbage collector.\n")) ((list-referrers) (list-relatives referrers)) ((optimize) + (assert-no-extra-arguments) (optimize-store store)) ((verify) + (assert-no-extra-arguments) (let ((options (assoc-ref opts 'verify-options))) (exit (verify-store store diff --git a/tests/guix-gc.sh b/tests/guix-gc.sh index c1eb66cef5..a100f186f5 100644 --- a/tests/guix-gc.sh +++ b/tests/guix-gc.sh @@ -1,5 +1,5 @@ # GNU Guix --- Functional package management for GNU -# Copyright © 2013 Ludovic Courtès +# Copyright © 2013, 2015 Ludovic Courtès # # This file is part of GNU Guix. # @@ -25,6 +25,12 @@ guix gc --version trap "rm -f guix-gc-root" EXIT rm -f guix-gc-root +# For some operations, passing extra arguments is an error. +for option in "" "-C 500M" "--verify" "--optimize" +do + if guix gc $option whatever; then false; else true; fi +done + # Check the references of a .drv. drv="`guix build guile-bootstrap -d`" out="`guix build guile-bootstrap`" -- cgit v1.2.3 From 8fe0b262a97427003ec20e653b08efc259ec7be8 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 11 Nov 2015 23:39:15 +0100 Subject: gnu: libmicrohttpd: Update to 0.9.46. * gnu/packages/gnunet.scm (libmicrohttpd): Update to 0.9.46. --- gnu/packages/gnunet.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnunet.scm b/gnu/packages/gnunet.scm index aac1567cf3..40ad0a2459 100644 --- a/gnu/packages/gnunet.scm +++ b/gnu/packages/gnunet.scm @@ -113,14 +113,14 @@ tool to extract metadata from a file and print the results.") (define-public libmicrohttpd (package (name "libmicrohttpd") - (version "0.9.45") + (version "0.9.46") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/libmicrohttpd/libmicrohttpd-" version ".tar.gz")) (sha256 (base32 - "0saawnamxjp7nr5gpg7l5fp9y5941m3a7x214ki7ncm9ipsdwx8h")))) + "0yc97flxi6pjkfj9k0d3cpnw59j92ky67q3g37la23rr9xjx5nq6")))) (build-system gnu-build-system) (inputs `(("curl" ,curl) -- cgit v1.2.3 From ddfd70da8e698ddde7dc070371581d4f2c9bca05 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 11 Nov 2015 23:45:29 +0100 Subject: gnu: stow: Update to 2.2.2. * gnu/packages/package-management.scm (stow): Update to 2.2.2. [native-inputs]: Add PERL-IO-STRINGY. --- gnu/packages/package-management.scm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index ae52ab8300..b6385a2605 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -275,21 +275,22 @@ sub-directory.") (define-public stow (package (name "stow") - (version "2.2.0") + (version "2.2.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/stow/stow-" version ".tar.gz")) (sha256 (base32 - "0arw1nsdlcvd7javkbk2bdvnc31d7dmb6fr25xyyi6ng76cxg2cb")))) + "1pvky9fayms4r6fhns8jd0vavszd7d979w62vfd5n88v614pdxz2")))) (build-system gnu-build-system) (inputs `(("perl" ,perl))) (native-inputs `(("perl-test-simple" ,perl-test-simple) ("perl-test-output" ,perl-test-output) - ("perl-capture-tiny" ,perl-capture-tiny))) + ("perl-capture-tiny" ,perl-capture-tiny) + ("perl-io-stringy" ,perl-io-stringy))) (home-page "https://www.gnu.org/software/stow/") (synopsis "Managing installed software packages") (description -- cgit v1.2.3 From 8de8cf438a41a1f30558b55ed6ba59ab4b743c85 Mon Sep 17 00:00:00 2001 From: Andreas Enge Date: Thu, 12 Nov 2015 05:12:37 +0100 Subject: gnu: lua: Register patch. * gnu-system.am (dist_patch_DATA): Register lua52-liblua-so.patch. This is a follow-up to commit 0f9c1f34000e7fd3f4c6bdb45c568f6416906c3b. --- gnu-system.am | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu-system.am b/gnu-system.am index e53bb3ecf4..0b716c76ab 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -570,6 +570,7 @@ dist_patch_DATA = \ gnu/packages/patches/lm-sensors-hwmon-attrs.patch \ gnu/packages/patches/lua-pkgconfig.patch \ gnu/packages/patches/lua51-liblua-so.patch \ + gnu/packages/patches/lua52-liblua-so.patch \ gnu/packages/patches/luajit-no_ldconfig.patch \ gnu/packages/patches/luajit-symlinks.patch \ gnu/packages/patches/luit-posix.patch \ -- cgit v1.2.3 From 685cee8779f9e414370017ea3f694cc60b13fb7e Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Tue, 10 Nov 2015 15:17:22 +0800 Subject: gnu: Add gnome-online-accounts. * gnu/packages/gnome.scm (gnome-online-accounts): New variable. --- gnu/packages/gnome.scm | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 6779cfbb63..70b92859f3 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -3901,3 +3901,41 @@ desktop via OpenGL. Mutter combines a sophisticated display engine using the Clutter toolkit with solid window-management logic inherited from the Metacity window manager.") (license license:gpl2+))) + +(define-public gnome-online-accounts + (package + (name "gnome-online-accounts") + (version "3.18.1") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/" name "/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "1hn2fvkr1f4qh4gix03avnvk7pklvv5272ns8ws56v4kcq4nppkc")))) + (build-system glib-or-gtk-build-system) + (native-inputs + `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc. + ("gobject-introspection" ,gobject-introspection) + ("intltool" ,intltool) + ("pkg-config" ,pkg-config) + ("xsltproc" ,libxslt))) + (propagated-inputs + `(("glib" ,glib) ; required by goa-1.0.pc + ("gtk+" ,gtk+))) ; required by goa-backend-1.0.pc + (inputs + `(("docbook-xsl" ,docbook-xsl) + ("json-glib" ,json-glib) + ("libsecret" ,libsecret) + ("rest" ,rest) + ("telepathy-glib" ,telepathy-glib) + ("webkitgtk" ,webkitgtk))) + (synopsis "Single sign-on framework for GNOME") + (home-page "https://wiki.gnome.org/Projects/GnomeOnlineAccounts") + (description + "GNOME Online Accounts provides interfaces so that applications and +libraries in GNOME can access the user's online accounts. It has providers for +Google, ownCloud, Facebook, Flickr, Windows Live, Pocket, Foursquare, Microsoft +Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.") + (license license:lgpl2.0+))) -- cgit v1.2.3 From df217748e1de2d6399a50e7c0ff2367aee265fef Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Tue, 10 Nov 2015 16:55:56 +0800 Subject: gnu: Add evolution-data-server. * gnu/packages/gnome.scm (evolution-data-server): New variable. --- gnu/packages/gnome.scm | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 70b92859f3..452fad91ab 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -39,6 +39,7 @@ #:use-module (gnu packages avahi) #:use-module (gnu packages base) #:use-module (gnu packages bison) + #:use-module (gnu packages calendar) #:use-module (gnu packages cups) #:use-module (gnu packages curl) #:use-module (gnu packages databases) @@ -52,6 +53,7 @@ #:use-module (gnu packages gnuzilla) #:use-module (gnu packages gstreamer) #:use-module (gnu packages gtk) + #:use-module (gnu packages gperf) #:use-module (gnu packages guile) #:use-module (gnu packages pdf) #:use-module (gnu packages polkit) @@ -3939,3 +3941,64 @@ libraries in GNOME can access the user's online accounts. It has providers for Google, ownCloud, Facebook, Flickr, Windows Live, Pocket, Foursquare, Microsoft Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.") (license license:lgpl2.0+))) + +(define-public evolution-data-server + (package + (name "evolution-data-server") + (version "3.18.2") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/" name "/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "16yfd2a00xqxikyf6pi2awfd0qfq4hwdhfar88axrb4mycfgqhjr")))) + (build-system gnu-build-system) + (arguments + '(;; XXX: fails with: + ;; /Fixture/Calendar0: cleaning up pid xxxx + ;; t status: 139) + #:tests? #f + #:configure-flags + (let ((nss (assoc-ref %build-inputs "nss")) + (nspr (assoc-ref %build-inputs "nspr"))) + (list "--disable-uoa" ; disable Ubuntu Online Accounts support + "--disable-google" ; disable Google Contacts support + (string-append "--with-nspr-includes=" nspr "/include/nspr") + (string-append "--with-nss-includes=" nss "/include/nss") + (string-append "--with-nss-libs=" nss "/lib/nss"))) + #:phases + (modify-phases %standard-phases + (add-before 'check 'pre-check + (lambda _ + (substitute* "tests/test-server-utils/e-test-server-utils.c" + (("/bin/rm") (which "rm"))) + #t))))) + (native-inputs + `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc. + ("gobject-introspection" ,gobject-introspection) + ("gperf" ,gperf) + ("intltool" ,intltool) + ("pkg-config" ,pkg-config) + ("python" ,python))) + (propagated-inputs + ;; These are all in the Requires field of .pc files. + `(("gtk+" ,gtk+) + ("libical" ,libical) + ("libsecret" ,libsecret) + ("libsoup" ,libsoup) + ("nss" ,nss) + ("sqlite" ,sqlite))) + (inputs + `(("bdb" ,bdb) + ("gcr" ,gcr) + ("gnome-online-accounts" ,gnome-online-accounts) + ("libgweather" ,libgweather))) + (synopsis "Store address books and calendars") + (home-page "https://wiki.gnome.org/Apps/Evolution") + (description + "This package provides a unified backend for programs that work with +contacts, tasks, and calendar information. It was originally developed for +Evolution (hence the name), but is now used by other packages as well.") + (license license:lgpl2.0))) -- cgit v1.2.3 From bd7dfafaa37fa26d47ac2d681b3b1a278663e9e2 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Tue, 10 Nov 2015 16:57:08 +0800 Subject: gnu: Add caribou. * gnu/packages/gnome.scm (caribou): New variable. --- gnu/packages/gnome.scm | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 452fad91ab..8869b62629 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -4002,3 +4002,68 @@ Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.") contacts, tasks, and calendar information. It was originally developed for Evolution (hence the name), but is now used by other packages as well.") (license license:lgpl2.0))) + +(define-public caribou + (package + (name "caribou") + (version "0.4.19") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/" name "/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "0i2s2xy9ami3wslam15cajhggpcsj4c70qm7qddcz52z9k0x02rg")))) + (build-system glib-or-gtk-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-before + 'build 'pre-build + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + ;; Use absolute shared library path in Caribou-1.0.typelib. + (substitute* "libcaribou/Makefile" + (("--shared-library=libcaribou.so") + (string-append "--shared-library=" + out "/lib/libcaribou.so"))) + #t))) + (add-after 'install 'wrap-programs + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (python-path (getenv "PYTHONPATH")) + (gi-typelib-path (getenv "GI_TYPELIB_PATH"))) + (for-each + (lambda (prog) + (wrap-program prog + `("PYTHONPATH" ":" prefix (,python-path)) + `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))) + (list (string-append out "/bin/caribou-preferences") + (string-append out "/libexec/antler-keyboard")))) + #t))))) + (native-inputs + `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc. + ("gobject-introspection" ,gobject-introspection) + ("intltool" ,intltool) + ("pkg-config" ,pkg-config) + ("python" ,python-2) ; incompatible with Python 3 (print syntax) + ("vala" ,vala) + ("xsltproc" ,libxslt))) + (propagated-inputs + ;; caribou-1.0.pc refers to all these. + `(("libgee" ,libgee) + ("libxklavier" ,libxklavier) + ("libxtst" ,libxtst) + ("gtk+" ,gtk+))) + (inputs + `(("clutter" ,clutter) + ("dconf" ,dconf) + ("gtk+-2" ,gtk+-2) + ("python-pygobject" ,python2-pygobject))) + (synopsis "Text entry and UI navigation application") + (home-page "https://wiki.gnome.org/Projects/Caribou") + (description + "Caribou is an input assistive technology intended for switch and pointer +users.") + (license license:lgpl2.1))) -- cgit v1.2.3 From 0086ec733c9a968da1f817c3004b4e8742ab4f4d Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 12 Nov 2015 11:45:23 +0100 Subject: gnu: sudo: Upgrade to 1.8.15 [fixes CVE-2015-5602]. * gnu/packages/admin.scm (sudo)[arguments]: Add CPPFLAGS to #:configure-flags. In 'pre-configure' phase, modify 'sudo_usage.h.in'. Add pattern to remove '-o 0 -g 0' installation flag in 'Makefile.in', and remove pattern for '-O 0 -G 0'. Remove modifications of 'configure'. --- gnu/packages/admin.scm | 31 ++++++++++++++++++++----------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 6aca8570c0..7fbc9fdc30 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -647,7 +647,7 @@ system administrator.") (define-public sudo (package (name "sudo") - (version "1.8.10p3") + (version "1.8.15") (source (origin (method url-fetch) (uri @@ -657,22 +657,31 @@ system administrator.") version ".tar.gz"))) (sha256 (base32 - "002l6h27pnhb77b65frhazbhknsxvrsnkpi43j7i0qw1lrgi7nkf")))) + "0263gi6i19fyzzc488n0qw3m518i39f6a7qmrfvahk9j10bkh5j3")))) (build-system gnu-build-system) (arguments - `(#:configure-flags '("--with-logpath=/var/log/sudo.log" - "--with-rundir=/run/sudo" - "--with-vardir=/var/db/sudo" - "--with-iologdir=/var/log/sudo-io") + `(#:configure-flags + (list "--with-logpath=/var/log/sudo.log" + "--with-rundir=/run/sudo" + "--with-vardir=/var/db/sudo" + "--with-iologdir=/var/log/sudo-io" + + ;; 'visudo.c' expects _PATH_MV to be defined, but glibc doesn't + ;; provide it. + (string-append "CPPFLAGS=-D_PATH_MV='\"" + (assoc-ref %build-inputs "coreutils") + "/bin/mv\"'")) #:phases (alist-cons-before 'configure 'pre-configure (lambda _ - (substitute* "configure" - ;; Refer to the right executables. - (("/usr/bin/mv") (which "mv")) - (("/usr/bin/sh") (which "sh"))) + (substitute* "src/sudo_usage.h.in" + ;; Do not capture 'configure' arguments since we would + ;; unduly retain references, and also because the + ;; CPPFLAGS above would close the string literal + ;; prematurely. + (("@CONFIGURE_ARGS@") "\"\"")) (substitute* (find-files "." "Makefile\\.in") - (("-O [[:graph:]]+ -G [[:graph:]]+") + (("-o [[:graph:]]+ -g [[:graph:]]+") ;; Allow installation as non-root. "") (("^install: (.*)install-sudoers(.*)" _ before after) -- cgit v1.2.3 From 029d9f77abc0d2699ae1314156d0a04bdcc84990 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 23 Oct 2015 10:35:00 +0200 Subject: gnu: mosaik: Build only on x86_64. * gnu/packages/bioinformatics.scm (mosaik)[supported-systems]: Add field. --- gnu/packages/bioinformatics.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index f13e4050c4..56a31f9488 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -2315,6 +2315,7 @@ viewer.") (inputs `(("perl" ,perl) ("zlib" ,zlib))) + (supported-systems '("x86_64-linux")) (home-page "https://code.google.com/p/mosaik-aligner/") (synopsis "Map nucleotide sequence reads to reference genomes") (description -- cgit v1.2.3 From fb3f69394a139fca0d60efb49843599fcc2e6e28 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 12 Nov 2015 14:56:55 +0200 Subject: gnu: libvpx: Update to 1.5.0. * gnu/packages/video.scm (libvpx): Update to 1.5.0. --- gnu/packages/video.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 687057fb88..d534d74834 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -775,7 +775,7 @@ projects while introducing many more.") (define-public libvpx (package (name "libvpx") - (version "1.4.0") + (version "1.5.0") (source (origin (method url-fetch) (uri (string-append "http://storage.googleapis.com/" @@ -783,7 +783,7 @@ projects while introducing many more.") name "-" version ".tar.bz2")) (sha256 (base32 - "1r0ql5kgy0c8mh5w7iiqvsd7w5njl9f9cclc7m52ln8assrdk0pm")))) + "15v7qw0ydyxn08ksb6lxn1l51pxgpwgshdwd3275yrr5hs86fv9h")))) (build-system gnu-build-system) (arguments `(#:phases (alist-replace @@ -800,7 +800,7 @@ projects while introducing many more.") "--size-limit=16384x16384" (string-append "--prefix=" out))))) %standard-phases) - #:tests? #f)) ; no check target + #:tests? #f)) ; tests involve downloading files (native-inputs `(("perl" ,perl) ("yasm" ,yasm))) -- cgit v1.2.3 From 9e81af9e72651cc4fdc700b29c44beb18a3743ba Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 16 Sep 2015 15:24:27 +0300 Subject: gnu: Add qtkeychain. * gnu/packages/qt.scm (qtkeychain): New variable. --- gnu/packages/qt.scm | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index 9813f5b0fd..8f148c9e90 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2013, 2014, 2015 Andreas Enge ;;; Copyright © 2015 Sou Bunnbu ;;; Copyright © 2015 Ludovic Courtès +;;; Copyright © 2015 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -19,10 +20,11 @@ ;;; along with GNU Guix. If not, see . (define-module (gnu packages qt) - #:use-module ((guix licenses) #:select (gpl2 gpl3 lgpl2.1 x11-style)) + #:use-module ((guix licenses) #:select (bsd-3 gpl2 gpl3 lgpl2.1 x11-style)) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix build utils) + #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) #:use-module (guix packages) #:use-module (guix utils) @@ -518,3 +520,35 @@ contain over 620 classes.") ("qt" ,qt-4))) (inputs `(("python" ,python-2))))) + +(define-public qtkeychain + (package + (name "qtkeychain") + (version "0.5.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/frankosterfeld/qtkeychain/" + "archive/v" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "055mkd4pz6cyff4cw0784wjc1w92m8x223sxi96ph15fr3lplbg6")))) + (build-system cmake-build-system) + (inputs + `(("qt", qt))) + (arguments + `(#:tests? #f ; No tests included + #:phases + (modify-phases %standard-phases + (add-before + 'configure 'set-qt-trans-dir + (lambda _ + (substitute* "CMakeLists.txt" + (("\\$\\{qt_translations_dir\\}") + "${CMAKE_INSTALL_PREFIX}/share/qt/translations"))))))) + (home-page "https://github.com/frankosterfeld/qtkeychain") + (synopsis "Qt API to store passwords") + (description + "QtKeychain is a Qt library to store passwords and other secret data +securely. It will not store any data unencrypted unless explicitly requested.") + (license bsd-3))) -- cgit v1.2.3 From b2e93b9e4522816e8959016ef5c22b2ccd9699a2 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 2 Nov 2015 19:31:31 +0200 Subject: gnu: Add owncloud-client. * gnu/packages/owncloud.scm (owncloud-client): New variable. * gnu-system.am (GNU_SYSTEM_MODULES): Add it. --- gnu-system.am | 1 + gnu/packages/owncloud.scm | 80 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 81 insertions(+) create mode 100644 gnu/packages/owncloud.scm diff --git a/gnu-system.am b/gnu-system.am index 0b716c76ab..3378fa77ea 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -241,6 +241,7 @@ GNU_SYSTEM_MODULES = \ gnu/packages/openstack.scm \ gnu/packages/orpheus.scm \ gnu/packages/ots.scm \ + gnu/packages/owncloud.scm \ gnu/packages/package-management.scm \ gnu/packages/parallel.scm \ gnu/packages/password-utils.scm \ diff --git a/gnu/packages/owncloud.scm b/gnu/packages/owncloud.scm new file mode 100644 index 0000000000..58c2a51ba8 --- /dev/null +++ b/gnu/packages/owncloud.scm @@ -0,0 +1,80 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2015 Efraim Flashner +;;; +;;; 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 owncloud) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix build-system cmake) + #:use-module (guix download) + #:use-module (guix packages) + #:use-module (gnu packages compression) + #:use-module (gnu packages databases) + #:use-module (gnu packages linux) + #:use-module (gnu packages perl) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages python) + #:use-module (gnu packages qt) + #:use-module (gnu packages ruby) + #:use-module (gnu packages tls)) + +(define-public owncloud-client + (package + (name "owncloud-client") + (version "2.0.2") + (source + (origin + (method url-fetch) + (uri (string-append "https://download.owncloud.com/desktop/stable/" + "owncloudclient-" version ".tar.xz")) + (sha256 + (base32 "0a42nqx0gn10n7ikhxwif0lqddmb6gbvr45bqbbl30an9gixq598")))) + (build-system cmake-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'change-rpath-dirs + (lambda _ + (substitute* '("src/libsync/CMakeLists.txt" + "csync/src/CMakeLists.txt") + ;; We store the libs in out/lib and not /usr/lib/appname, so we + ;; need the executable to point to the libraries in /lib and not + ;; in /lib/appname. + (("\\/\\$\\{APPLICATION_EXECUTABLE\\}") "")) + (substitute* '("src/cmd/CMakeLists.txt" + "src/crashreporter/CMakeLists.txt" + "src/gui/CMakeLists.txt") + ;; This has the same issue as the substitution above. + (("\\/\\$\\{APPLICATION_EXECUTABLE\\}\\\"") "\""))))))) + (native-inputs `(("pkg-config" ,pkg-config))) + (inputs + `(("inotify-tools" ,inotify-tools) + ("openssl" ,openssl) + ("perl" ,perl) + ("python-wrapper" ,python-wrapper) + ("qt" ,qt) + ("qtkeychain" ,qtkeychain) + ("ruby" ,ruby) + ("sqlite" ,sqlite) + ("zlib" ,zlib))) + (home-page "https://owncloud.org") + (synopsis "Folder synchronization with an ownCloud server") + (description "The ownCloudSync system lets you always have your latest +files wherever you are. Just specify one or more folders on the local machine +to and a server to synchronize to. You can configure more computers to +synchronize to the same server and any change to the files on one computer will +silently and reliably flow across to every other.") + (license license:gpl2+))) -- cgit v1.2.3 From 0137992a389732a169a8efdf91feb98eed2fb2a5 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 29 Oct 2015 16:18:36 +0200 Subject: gnu: Add c-ares. * gnu/packages/aria2.scm: New file. * gnu-system.am (GNU_SYSTEM_MODULES): Add it. --- gnu-system.am | 1 + gnu/packages/aria2.scm | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 gnu/packages/aria2.scm diff --git a/gnu-system.am b/gnu-system.am index 3378fa77ea..b7699fc246 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -35,6 +35,7 @@ GNU_SYSTEM_MODULES = \ gnu/packages/aidc.scm \ gnu/packages/apl.scm \ gnu/packages/apr.scm \ + gnu/packages/aria2.scm \ gnu/packages/asciidoc.scm \ gnu/packages/aspell.scm \ gnu/packages/attr.scm \ diff --git a/gnu/packages/aria2.scm b/gnu/packages/aria2.scm new file mode 100644 index 0000000000..707a3ce0e4 --- /dev/null +++ b/gnu/packages/aria2.scm @@ -0,0 +1,49 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2015 Efraim Flashner +;;; +;;; 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 aria2) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix download) + #:use-module (guix packages) + #:use-module (guix build-system gnu) + #:use-module (gnu packages pkg-config)) + +(define-public c-ares + (package + (name "c-ares") + (version "1.10.0") + (source (origin + (method url-fetch) + (uri (string-append + "http://c-ares.haxx.se/download/" name "-" version + ".tar.gz")) + (sha256 + (base32 + "1nyka87yf2jfd0y6sspll0yxwb8zi7kyvajrdbjmh4axc5s1cw1x")))) + (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,pkg-config))) + (home-page "http://c-ares.haxx.se/") + (synopsis "C library for asynchronous DNS requests") + (description + "C-ares is a C library that performs DNS requests and name resolution +asynchronously. It is intended for applications which need to perform DNS +queries without blocking, or need to perform multiple DNS queries in parallel. +The primary examples of such applications are servers which communicate with +multiple clients and programs with graphical user interfaces.") + (license (license:x11-style "http://c-ares.haxx.se/license.html")))) -- cgit v1.2.3 From 0534dd93ce1c46cfa61ef0b8e2b3389d3d6181e0 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 12 Nov 2015 16:53:43 +0200 Subject: gnu: gsl: Update to 2.1. * gnu/packages/maths.scm (gsl): Update to 2.1. --- gnu/packages/maths.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 466dc2729d..a56b7ce966 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -150,7 +150,7 @@ semiconductors.") (define-public gsl (package (name "gsl") - (version "2.0") + (version "2.1") (source (origin (method url-fetch) @@ -158,7 +158,7 @@ semiconductors.") version ".tar.gz")) (sha256 (base32 - "0bfahlsgil0695104a44c3c8vjkyvxmg3s92371fddcrj6qz0qg3")))) + "0rhcia9jhr3p1f1wybwyllwqfs9bggz99i3mi5lpyqcpff1hdbar")))) (build-system gnu-build-system) (arguments `(#:parallel-tests? #f)) -- cgit v1.2.3 From 2f1531f008665496f144a39544980b2f07713174 Mon Sep 17 00:00:00 2001 From: Roel Janssen Date: Thu, 12 Nov 2015 15:47:48 +0100 Subject: gnu: Add inklingreader. * gnu/packages/inklingreader.scm: New file. * gnu-system.am (GNU_SYSTEM_MODULES): Add it. Signed-off-by: Mathieu Lirzin --- gnu-system.am | 1 + gnu/packages/inklingreader.scm | 59 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 60 insertions(+) create mode 100644 gnu/packages/inklingreader.scm diff --git a/gnu-system.am b/gnu-system.am index b7699fc246..009ca766d2 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -159,6 +159,7 @@ GNU_SYSTEM_MODULES = \ gnu/packages/image.scm \ gnu/packages/imagemagick.scm \ gnu/packages/indent.scm \ + gnu/packages/inklingreader.scm \ gnu/packages/inkscape.scm \ gnu/packages/irssi.scm \ gnu/packages/iso-codes.scm \ diff --git a/gnu/packages/inklingreader.scm b/gnu/packages/inklingreader.scm new file mode 100644 index 0000000000..6cdc4b3330 --- /dev/null +++ b/gnu/packages/inklingreader.scm @@ -0,0 +1,59 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2015 Roel Janssen +;;; +;;; 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 inklingreader) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu) + #:use-module (gnu packages) + #:use-module (gnu packages autotools) + #:use-module (gnu packages glib) + #:use-module (gnu packages gnome) + #:use-module (gnu packages gtk) + #:use-module (gnu packages libusb) + #:use-module (gnu packages pkg-config)) + +(define-public inklingreader + (package + (name "inklingreader") + (version "0.8") + (source (origin + (method url-fetch) + (uri (string-append + "ftp://alpha.gnu.org/gnu/inklingreader/inklingreader-" + version ".tar.gz")) + (sha256 + (base32 + "0ikg95mgwfqh0bq4dzvkfmdiycacqvv27g91hl6adwk5y3gzl96g")))) + (build-system gnu-build-system) + (inputs + `(("glib" ,glib) + ("cairo" ,cairo) + ("gtk+" ,gtk+) + ("librsvg" ,librsvg) + ("libusb" ,libusb))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (home-page "https://www.gnu.org/software/inklingreader/") + (synopsis "Wacom Inkling sketch format conversion and manipulation") + (description + "GNU InklingReader is a package to support the Wacom Inkling device, +including data conversion to various free formats, basic editing features, +and an Inkscape plugin.") + (license license:gpl3+))) -- cgit v1.2.3 From 9c9be34871a6d2a7708b63ac96716f08b38956ce Mon Sep 17 00:00:00 2001 From: Taylan Ulrich Bayırlı/Kammer Date: Thu, 12 Nov 2015 15:52:04 +0100 Subject: gnu: mupen64plus-core: Specify supported-systems. * gnu/packages/games.scm (mupen64plus-core): Specify supported-systems. --- gnu/packages/games.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 2b5d78d618..9118158e0c 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -1253,6 +1253,7 @@ world}, @uref{http://evolonline.org, Evol Online} and (list "all" (string-append "PREFIX=" out))) ;; There are no tests. #:tests? #f)) + (supported-systems '("i686-linux" "x86_64-linux")) (home-page "http://www.mupen64plus.org/") (synopsis "Nintendo 64 emulator core library") (description -- cgit v1.2.3 From bff3c670c29189ecfb4eafa9316cc2d896c5d468 Mon Sep 17 00:00:00 2001 From: Taylan Ulrich Bayırlı/Kammer Date: Thu, 12 Nov 2015 17:25:40 +0100 Subject: gnu: mupen64plus-core: Add comment. * gnu/packages/games.scm (mupen64plus-core): Comment the reason for the supported-systems field. --- gnu/packages/games.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 9118158e0c..4274d4ce38 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -1253,6 +1253,7 @@ world}, @uref{http://evolonline.org, Evol Online} and (list "all" (string-append "PREFIX=" out))) ;; There are no tests. #:tests? #f)) + ;; As per the Makefile (in projects/unix/Makefile): (supported-systems '("i686-linux" "x86_64-linux")) (home-page "http://www.mupen64plus.org/") (synopsis "Nintendo 64 emulator core library") -- cgit v1.2.3 From 4f8f15cd5ca6da045ac811552f503b32aced8935 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 12 Nov 2015 19:59:42 +0200 Subject: Revert "gnu: libvpx: Update to 1.5.0." This reverts commit fb3f69394a139fca0d60efb49843599fcc2e6e28. --- gnu/packages/video.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index d534d74834..687057fb88 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -775,7 +775,7 @@ projects while introducing many more.") (define-public libvpx (package (name "libvpx") - (version "1.5.0") + (version "1.4.0") (source (origin (method url-fetch) (uri (string-append "http://storage.googleapis.com/" @@ -783,7 +783,7 @@ projects while introducing many more.") name "-" version ".tar.bz2")) (sha256 (base32 - "15v7qw0ydyxn08ksb6lxn1l51pxgpwgshdwd3275yrr5hs86fv9h")))) + "1r0ql5kgy0c8mh5w7iiqvsd7w5njl9f9cclc7m52ln8assrdk0pm")))) (build-system gnu-build-system) (arguments `(#:phases (alist-replace @@ -800,7 +800,7 @@ projects while introducing many more.") "--size-limit=16384x16384" (string-append "--prefix=" out))))) %standard-phases) - #:tests? #f)) ; tests involve downloading files + #:tests? #f)) ; no check target (native-inputs `(("perl" ,perl) ("yasm" ,yasm))) -- cgit v1.2.3 From 959c78f69a498b1cc558d6c8e6bc3faa78dd5423 Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Wed, 4 Nov 2015 21:40:31 +0300 Subject: emacs: Improve post processing of popup arguments. * emacs/guix-command.el (guix-command-switches, guix-command-rest-arg-regexp): New variables. (guix-command-post-processors, guix-command-post-process-matching-args, guix-command-post-process-rest-single, guix-command-post-process-rest-multiple, guix-command-post-process-rest-multiple-leave, guix-command-post-process-package-args): New functions. (guix-command-post-process-rest-multiple): Take 2 arguments. (guix-command-define-popup-action): Adjust accordingly. * emacs/guix-utils.el (guix-modify): New function. --- emacs/guix-command.el | 99 ++++++++++++++++++++++++++++++++++++++++++--------- emacs/guix-utils.el | 11 ++++++ 2 files changed, 94 insertions(+), 16 deletions(-) diff --git a/emacs/guix-command.el b/emacs/guix-command.el index f8a6df7c6a..ea294611e0 100644 --- a/emacs/guix-command.el +++ b/emacs/guix-command.el @@ -465,28 +465,94 @@ to be modified." "Return actions from ARGUMENTS." (cl-remove-if-not #'guix-command-argument-action? arguments)) -(defun guix-command-post-process-args (args) - "Adjust appropriately command line ARGS returned from popup command." - ;; XXX We need to split "--install foo bar" and similar strings into - ;; lists of strings. But some commands (e.g., 'guix hash') accept a - ;; file name as the 'rest' argument, and as file names may contain - ;; spaces, splitting by spaces will break such names. For example, the - ;; following argument: "-- /tmp/file with spaces" will be transformed - ;; into the following list: ("--" "/tmp/file" "with" "spaces") instead - ;; of the wished ("--" "/tmp/file with spaces"). - (let* (rest - (rx (rx string-start - (or "-- " "--install " "--remove "))) + +;;; Post processing popup arguments + +(defvar guix-command-post-processors + '(("hash" + guix-command-post-process-rest-single) + ("package" + guix-command-post-process-package-args) + ("system" + guix-command-post-process-rest-single)) + "Alist of guix commands and functions for post-processing +a list of arguments returned from popup interface. +Each function is called on the returned arguments in turn.") + +(defvar guix-command-rest-arg-regexp + (rx string-start "-- " (group (+ any))) + "Regexp to match a string with the 'rest' arguments.") + +(defun guix-command-replace-args (args predicate modifier) + "Replace arguments matching PREDICATE from ARGS. +Call MODIFIER on each argument matching PREDICATE and append the +returned list of strings to the end of ARGS. Remove the original +arguments." + (let* ((rest nil) (args (mapcar (lambda (arg) - (if (string-match-p rx arg) - (progn (push (split-string arg) rest) - nil) + (if (funcall predicate arg) + (progn + (push (funcall modifier arg) rest) + nil) arg)) args))) (if rest (apply #'append (delq nil args) rest) args))) +(cl-defun guix-command-post-process-matching-args (args regexp + &key group split?) + "Modify arguments from ARGS matching REGEXP by moving them to +the end of ARGS list. If SPLIT? is non-nil, split matching +arguments into multiple subarguments." + (guix-command-replace-args + args + (lambda (arg) + (string-match regexp arg)) + (lambda (arg) + (let ((val (match-string (or group 0) arg)) + (fun (if split? #'split-string #'list))) + (funcall fun val))))) + +(defun guix-command-post-process-rest-single (args) + "Modify ARGS by moving '-- ARG' argument to the end of ARGS list." + (guix-command-post-process-matching-args + args guix-command-rest-arg-regexp + :group 1)) + +(defun guix-command-post-process-rest-multiple (args) + "Modify ARGS by splitting '-- ARG ...' into multiple subarguments +and moving them to the end of ARGS list. +Remove '-- ' string." + (guix-command-post-process-matching-args + args guix-command-rest-arg-regexp + :group 1 + :split? t)) + +(defun guix-command-post-process-rest-multiple-leave (args) + "Modify ARGS by splitting '-- ARG ...' into multiple subarguments +and moving them to the end of ARGS list. +Leave '--' string as a separate argument." + (guix-command-post-process-matching-args + args guix-command-rest-arg-regexp + :split? t)) + +(defun guix-command-post-process-package-args (args) + "Adjust popup ARGS for 'guix package' command." + (guix-command-post-process-matching-args + args (rx string-start (or "--install " "--remove ") (+ any)) + :split? t)) + +(defun guix-command-post-process-args (commands args) + "Adjust popup ARGS for guix COMMANDS." + (let* ((command (car commands)) + (processors + (append (guix-assoc-value guix-command-post-processors commands) + (guix-assoc-value guix-command-post-processors command)))) + (guix-modify args + (or processors + (list #'guix-command-post-process-rest-multiple))))) + ;;; 'Execute' actions @@ -642,7 +708,8 @@ EXECUTOR function is called with the current command line arguments." ,doc (interactive (,arguments-fun)) (,executor (append ',commands - (guix-command-post-process-args args)))))) + (guix-command-post-process-args + ',commands args)))))) (defun guix-command-generate-popup-actions (actions &optional commands) "Generate 'popup' commands from ACTIONS arguments for guix COMMANDS." diff --git a/emacs/guix-utils.el b/emacs/guix-utils.el index d1f088b6a8..5f3f3ecc10 100644 --- a/emacs/guix-utils.el +++ b/emacs/guix-utils.el @@ -226,6 +226,17 @@ single argument." (while (re-search-forward ,regexp nil t) ,@body))) +(defun guix-modify (object modifiers) + "Apply MODIFIERS to OBJECT. +OBJECT is passed as an argument to the first function from +MODIFIERS list, the returned result is passed to the second +function from the list and so on. Return result of the last +modifier call." + (if (null modifiers) + object + (guix-modify (funcall (car modifiers) object) + (cdr modifiers)))) + ;;; Alist accessors -- cgit v1.2.3 From cfa548b4ea459110d28a7424fa73535dd4b5fc41 Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Wed, 4 Nov 2015 21:51:46 +0300 Subject: emacs: Adjust 'guix container' popup. * emacs/guix-command.el (guix-command-improve-action-argument): Use "C" key for 'container' action to distinguish it from 'challenge'. (guix-command-rest-argument): Add positional arguments. --- emacs/guix-command.el | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/emacs/guix-command.el b/emacs/guix-command.el index ea294611e0..5e5cff630c 100644 --- a/emacs/guix-command.el +++ b/emacs/guix-command.el @@ -131,7 +131,8 @@ to be modified." (guix-command-define-argument-improver guix-command-improve-action-argument - '(("graph" :char ?G) + '(("container" :char ?C) + ("graph" :char ?G) ("environment" :char ?E) ("publish" :char ?u) ("pull" :char ?P) @@ -369,6 +370,8 @@ to be modified." '("archive" "build" "challenge" "edit" "environment" "graph" "lint" "refresh")) (argument :doc "Packages" :fun 'guix-read-package-names-string)) + ((equal commands '("container" "exec")) + (argument :doc "PID Command [Args...]")) ((string= command "download") (argument :doc "URL")) ((string= command "gc") -- cgit v1.2.3 From 8b341eb05d7c93515f8c6aff0db568146339bcb1 Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Wed, 4 Nov 2015 21:54:53 +0300 Subject: emacs: Adjust 'guix environment' popup. * emacs/guix-command.el (guix-command-improve-environment-argument): Use "E" for '--expose' and "S" for '--share' to distinguish them from '--expression' and '--system' accordingly. Make '--ad-hoc' an option taking packages instead of a simple switch. (guix-command-rest-argument): Complete shell command instead of packages for '--' argument. (guix-command-additional-arguments): Add fake 'packages' argument. New variable. (guix-command-additional-arguments): Use it. (guix-command-post-process-environment-packages, guix-command-post-process-environment-ad-hoc): New functions. (guix-command-post-processors): Add "environment" command with the new argument processors. --- emacs/guix-command.el | 45 +++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 41 insertions(+), 4 deletions(-) diff --git a/emacs/guix-command.el b/emacs/guix-command.el index 5e5cff630c..2cb44de114 100644 --- a/emacs/guix-command.el +++ b/emacs/guix-command.el @@ -196,7 +196,11 @@ to be modified." (guix-command-define-argument-improver guix-command-improve-environment-argument - '(("--exec" :fun read-shell-command) + '(("--ad-hoc" + :name "--ad-hoc " :fun guix-read-package-names-string + :switch? nil :option? t) + ("--expose" :char ?E) + ("--share" :char ?S) ("--load" :fun guix-read-file-name))) (guix-command-define-argument-improver @@ -367,13 +371,15 @@ to be modified." (let ((command (car commands))) (cond ((member command - '("archive" "build" "challenge" "edit" "environment" + '("archive" "build" "challenge" "edit" "graph" "lint" "refresh")) (argument :doc "Packages" :fun 'guix-read-package-names-string)) ((equal commands '("container" "exec")) (argument :doc "PID Command [Args...]")) ((string= command "download") (argument :doc "URL")) + ((string= command "environment") + (argument :doc "Command [Args...]" :fun 'read-shell-command)) ((string= command "gc") (argument :doc "Paths" :fun 'guix-read-file-name)) ((member command '("hash" "system")) @@ -387,10 +393,22 @@ to be modified." (string= command "import")) (argument :doc "Package name")))))) +(defvar guix-command-additional-arguments + `((("environment") + ,(guix-command-make-argument + :name "++packages " :char ?p :option? t + :doc "build inputs of the specified packages" + :fun 'guix-read-package-names-string))) + "Alist of guix commands and additional arguments for them. +These are 'fake' arguments that are not presented in 'guix' shell +commands.") + (defun guix-command-additional-arguments (&optional commands) "Return additional arguments for COMMANDS." (let ((rest-arg (guix-command-rest-argument commands))) - (and rest-arg (list rest-arg)))) + (append (guix-assoc-value guix-command-additional-arguments + commands) + (and rest-arg (list rest-arg))))) ;; Ideally only `guix-command-arguments' function should exist with the ;; contents of `guix-command-all-arguments', but we need to make a @@ -472,7 +490,11 @@ to be modified." ;;; Post processing popup arguments (defvar guix-command-post-processors - '(("hash" + '(("environment" + guix-command-post-process-environment-packages + guix-command-post-process-environment-ad-hoc + guix-command-post-process-rest-multiple-leave) + ("hash" guix-command-post-process-rest-single) ("package" guix-command-post-process-package-args) @@ -546,6 +568,21 @@ Leave '--' string as a separate argument." args (rx string-start (or "--install " "--remove ") (+ any)) :split? t)) +(defun guix-command-post-process-environment-packages (args) + "Adjust popup ARGS for specified packages of 'guix environment' +command." + (guix-command-post-process-matching-args + args (rx string-start "++packages " (group (+ any))) + :group 1 + :split? t)) + +(defun guix-command-post-process-environment-ad-hoc (args) + "Adjust popup ARGS for '--ad-hoc' argument of 'guix environment' +command." + (guix-command-post-process-matching-args + args (rx string-start "--ad-hoc " (+ any)) + :split? t)) + (defun guix-command-post-process-args (commands args) "Adjust popup ARGS for guix COMMANDS." (let* ((command (car commands)) -- cgit v1.2.3 From 279ec1df202698d94c7992162621f6f7c00a7695 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 12 Nov 2015 23:08:43 +0100 Subject: ftp-client: Restrict to TCP connections. * guix/ftp-client.scm (ftp-open): Force SOCK_STREAM as the socket type to avoid calling 'connect' on a datagram socket. --- guix/ftp-client.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/guix/ftp-client.scm b/guix/ftp-client.scm index 37feb895a5..e98708ac4d 100644 --- a/guix/ftp-client.scm +++ b/guix/ftp-client.scm @@ -95,7 +95,7 @@ or a TCP port number), and return it." (let loop ((addresses addresses)) (let* ((ai (car addresses)) - (s (socket (addrinfo:fam ai) (addrinfo:socktype ai) + (s (socket (addrinfo:fam ai) SOCK_STREAM ;TCP only (addrinfo:protocol ai)))) (catch 'system-error -- cgit v1.2.3 From 4856700698cc0a2c1a5992a82c56d5b26024ab06 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 12 Nov 2015 23:10:31 +0100 Subject: ftp-client: Add timeout parameter to 'ftp-open'. * guix/ftp-client.scm (catch-EINPROGRESS): New macro. (connect*): New procedure. (ftp-open): Add #:timeout parameter. Use 'connect*' instead of 'connect' and pass it TIMEOUT. --- guix/ftp-client.scm | 49 ++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 46 insertions(+), 3 deletions(-) diff --git a/guix/ftp-client.scm b/guix/ftp-client.scm index e98708ac4d..9ea878a145 100644 --- a/guix/ftp-client.scm +++ b/guix/ftp-client.scm @@ -30,6 +30,7 @@ #:export (ftp-connection? ftp-connection-addrinfo + connect* ftp-open ftp-close ftp-chdir @@ -82,9 +83,51 @@ ((331) (%ftp-command (string-append "PASS " pass) 230 port)) (else (throw 'ftp-error port command code message)))))) -(define* (ftp-open host #:optional (port 21)) +(define-syntax-rule (catch-EINPROGRESS body ...) + (catch 'system-error + (lambda () + body ...) + (lambda args + (unless (= (system-error-errno args) EINPROGRESS) + (apply throw args))))) + +;; XXX: For lack of a better place. +(define* (connect* s sockaddr #:optional timeout) + "When TIMEOUT is omitted or #f, this procedure is equivalent to 'connect'. +When TIMEOUT is a number, it is the (possibly inexact) maximum number of +seconds to wait for the connection to succeed." + (define (raise-error errno) + (throw 'system-error 'connect* "~A" + (list (strerror errno)) + (list errno))) + + (if timeout + (let ((flags (fcntl s F_GETFL))) + (fcntl s F_SETFL (logior flags O_NONBLOCK)) + (catch-EINPROGRESS (connect s sockaddr)) + (match (select '() (list s) (list s) timeout) + ((() () ()) + ;; Time is up! + (raise-error ETIMEDOUT)) + ((() (write) ()) + ;; Check for ECONNREFUSED and the likes. + (fcntl s F_SETFL flags) + (let ((errno (getsockopt s SOL_SOCKET SO_ERROR))) + (unless (zero? errno) + (raise-error errno)))) + ((() () (except)) + ;; Seems like this cannot really happen, but who knows. + (let ((errno (getsockopt s SOL_SOCKET SO_ERROR))) + (raise-error errno))))) + (connect s sockaddr))) + +(define* (ftp-open host #:optional (port 21) #:key timeout) "Open an FTP connection to HOST on PORT (a service-identifying string, -or a TCP port number), and return it." +or a TCP port number), and return it. + +When TIMEOUT is not #f, it must be a (possibly inexact) number denoting the +maximum duration in seconds to wait for the connection to complete; passed +TIMEOUT, an ETIMEDOUT error is raised." ;; Use 21 as the default PORT instead of "ftp", to avoid depending on ;; libc's NSS, which is not available during bootstrap. @@ -100,7 +143,7 @@ or a TCP port number), and return it." (catch 'system-error (lambda () - (connect s (addrinfo:addr ai)) + (connect* s (addrinfo:addr ai) timeout) (setvbuf s _IOLBF) (let-values (((code message) (%ftp-listen s))) (if (eqv? code 220) -- cgit v1.2.3 From 60fd51222f9d7ec90bdad37bca921f40f7f5b104 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 12 Nov 2015 22:37:32 +0100 Subject: download: Add timeout parameter for connections. * guix/build/download.scm (ensure-uri): New procedure. (current-http-proxy): New variable. (open-socket-for-uri): Copy from Guile commit aaea5b2, but add #:timeout parameter and use 'connect*' instead of 'connect'. (open-connection-for-uri): Add #:timeout parameter and pass it to 'open-socket-for-uri'. --- guix/build/download.scm | 82 ++++++++++++++++++++++++++++++++++++------------- 1 file changed, 61 insertions(+), 21 deletions(-) diff --git a/guix/build/download.scm b/guix/build/download.scm index 240e79ee8d..17e8f8cb9e 100644 --- a/guix/build/download.scm +++ b/guix/build/download.scm @@ -20,6 +20,7 @@ (define-module (guix build download) #:use-module (web uri) + #:use-module (web http) #:use-module ((web client) #:hide (open-socket-for-uri)) #:use-module (web response) #:use-module (guix ftp-client) @@ -277,26 +278,65 @@ host name without trailing dot." (add-weak-reference record port) record))) -(define (open-socket-for-uri uri) - "Return an open port for URI. This variant works around - which affects Guile's 'open-socket-for-uri' up to -2.0.11 included." - (define rmem-max - ;; The maximum size for a receive buffer on Linux, see socket(7). - "/proc/sys/net/core/rmem_max") - - (define buffer-size - (if (file-exists? rmem-max) - (call-with-input-file rmem-max read) - 126976)) ;the default for Linux, per 'rmem_default' - - (let ((s ((@ (web client) open-socket-for-uri) uri))) - ;; Work around by restoring a decent - ;; buffer size. - (setsockopt s SOL_SOCKET SO_RCVBUF buffer-size) - s)) - -(define (open-connection-for-uri uri) +(define (ensure-uri uri-or-string) ;XXX: copied from (web http) + (cond + ((string? uri-or-string) (string->uri uri-or-string)) + ((uri? uri-or-string) uri-or-string) + (else (error "Invalid URI" uri-or-string)))) + +(define current-http-proxy + ;; XXX: Add a dummy definition for Guile < 2.0.10; this is used in + ;; 'open-socket-for-uri'. + (or (and=> (module-variable (resolve-interface '(web client)) + 'current-http-proxy) + variable-ref) + (const #f))) + +(define* (open-socket-for-uri uri-or-string #:key timeout) + "Return an open input/output port for a connection to URI. When TIMEOUT is +not #f, it must be a (possibly inexact) number denoting the maximum duration +in seconds to wait for the connection to complete; passed TIMEOUT, an +ETIMEDOUT error is raised." + ;; Includes a fix for which affects Guile's + ;; 'open-socket-for-uri' up to 2.0.11 included, and uses 'connect*' instead + ;; of 'connect'. + + (define http-proxy (current-http-proxy)) + (define uri (ensure-uri (or http-proxy uri-or-string))) + (define addresses + (let ((port (uri-port uri))) + (delete-duplicates + (getaddrinfo (uri-host uri) + (cond (port => number->string) + (else (symbol->string (uri-scheme uri)))) + (if port + AI_NUMERICSERV + 0)) + (lambda (ai1 ai2) + (equal? (addrinfo:addr ai1) (addrinfo:addr ai2)))))) + + (let loop ((addresses addresses)) + (let* ((ai (car addresses)) + (s (with-fluids ((%default-port-encoding #f)) + ;; Restrict ourselves to TCP. + (socket (addrinfo:fam ai) SOCK_STREAM IPPROTO_IP)))) + (catch 'system-error + (lambda () + (connect* s (addrinfo:addr ai) timeout) + + ;; Buffer input and output on this port. + (setvbuf s _IOFBF) + ;; If we're using a proxy, make a note of that. + (when http-proxy (set-http-proxy-port?! s #t)) + s) + (lambda args + ;; Connection failed, so try one of the other addresses. + (close s) + (if (null? (cdr addresses)) + (apply throw args) + (loop (cdr addresses)))))))) + +(define* (open-connection-for-uri uri #:key timeout) "Like 'open-socket-for-uri', but also handle HTTPS connections." (define https? (eq? 'https (uri-scheme uri))) @@ -319,7 +359,7 @@ host name without trailing dot." (thunk)) (thunk))))))) (with-https-proxy - (let ((s (open-socket-for-uri uri))) + (let ((s (open-socket-for-uri uri #:timeout timeout))) ;; Buffer input and output on this port. (setvbuf s _IOFBF %http-receive-buffer-size) -- cgit v1.2.3 From 1b9aefa394a57dabe38e0658a3b612e962d3fc5e Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 12 Nov 2015 23:15:18 +0100 Subject: download: Always use AI_ADDRCONFIG when resolving host names. * guix/build/download.scm (open-socket-for-uri): Always pass AI_ADDRCONFIG to 'getaddrinfo' as recommended in the fine Guile manual. * guix/ftp-client.scm (ftp-open): Ditto. --- guix/build/download.scm | 10 +++++----- guix/ftp-client.scm | 4 +++- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/guix/build/download.scm b/guix/build/download.scm index 17e8f8cb9e..8843804c40 100644 --- a/guix/build/download.scm +++ b/guix/build/download.scm @@ -298,8 +298,8 @@ not #f, it must be a (possibly inexact) number denoting the maximum duration in seconds to wait for the connection to complete; passed TIMEOUT, an ETIMEDOUT error is raised." ;; Includes a fix for which affects Guile's - ;; 'open-socket-for-uri' up to 2.0.11 included, and uses 'connect*' instead - ;; of 'connect'. + ;; 'open-socket-for-uri' up to 2.0.11 included, uses 'connect*' instead + ;; of 'connect', and uses AI_ADDRCONFIG. (define http-proxy (current-http-proxy)) (define uri (ensure-uri (or http-proxy uri-or-string))) @@ -309,9 +309,9 @@ ETIMEDOUT error is raised." (getaddrinfo (uri-host uri) (cond (port => number->string) (else (symbol->string (uri-scheme uri)))) - (if port - AI_NUMERICSERV - 0)) + (if (number? port) + (logior AI_ADDRCONFIG AI_NUMERICSERV) + AI_ADDRCONFIG)) (lambda (ai1 ai2) (equal? (addrinfo:addr ai1) (addrinfo:addr ai2)))))) diff --git a/guix/ftp-client.scm b/guix/ftp-client.scm index 9ea878a145..f02d460061 100644 --- a/guix/ftp-client.scm +++ b/guix/ftp-client.scm @@ -134,7 +134,9 @@ TIMEOUT, an ETIMEDOUT error is raised." (define addresses (getaddrinfo host (if (number? port) (number->string port) port) - (if (number? port) AI_NUMERICSERV 0))) + (if (number? port) + (logior AI_ADDRCONFIG AI_NUMERICSERV) + AI_ADDRCONFIG))) (let loop ((addresses addresses)) (let* ((ai (car addresses)) -- cgit v1.2.3 From bd7e1ffae6c91680e3328974f94c3ead8d2f378d Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 12 Nov 2015 23:17:12 +0100 Subject: lint: Have connections time out after 3 seconds. * guix/scripts/lint.scm (probe-uri): Add #:timeout parameter. Pass it to 'open-connection-for-uri' and 'ftp-open'. (validate-uri): Pass #:timeout 3 to 'probe-uri'. --- guix/scripts/lint.scm | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/guix/scripts/lint.scm b/guix/scripts/lint.scm index b1707ade44..a7618ee286 100644 --- a/guix/scripts/lint.scm +++ b/guix/scripts/lint.scm @@ -266,10 +266,13 @@ the synopsis") (check-start-with-package-name synopsis) (check-synopsis-length synopsis)))) -(define (probe-uri uri) +(define* (probe-uri uri #:key timeout) "Probe URI, a URI object, and return two values: a symbol denoting the probing status, such as 'http-response' when we managed to get an HTTP -response from URI, and additional details, such as the actual HTTP response." +response from URI, and additional details, such as the actual HTTP response. + +TIMEOUT is the maximum number of seconds (possibly an inexact number) to wait +for connections to complete; when TIMEOUT is #f, wait as long as needed." (define headers '((User-Agent . "GNU Guile") (Accept . "*/*"))) @@ -280,7 +283,7 @@ response from URI, and additional details, such as the actual HTTP response." ((or 'http 'https) (catch #t (lambda () - (let ((port (open-connection-for-uri uri)) + (let ((port (open-connection-for-uri uri #:timeout timeout)) (request (build-request uri #:headers headers))) (define response (dynamic-wind @@ -313,7 +316,7 @@ response from URI, and additional details, such as the actual HTTP response." ('ftp (catch #t (lambda () - (let ((conn (ftp-open (uri-host uri) 21))) + (let ((conn (ftp-open (uri-host uri) 21 #:timeout timeout))) (define response (dynamic-wind (const #f) @@ -338,7 +341,7 @@ response from URI, and additional details, such as the actual HTTP response." "Return #t if the given URI can be reached, otherwise return #f and emit a warning for PACKAGE mentionning the FIELD." (let-values (((status argument) - (probe-uri uri))) + (probe-uri uri #:timeout 3))) ;wait at most 3 seconds (case status ((http-response) (or (= 200 (response-code argument)) -- cgit v1.2.3 From f888502cfaa8c956817034fda5393894739307f1 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 12 Nov 2015 17:43:58 +0800 Subject: gnu: nix: Update to 1.10. * gnu/packages/package-management.scm (nix): Update to 1.10. --- gnu/packages/package-management.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index b6385a2605..244cd49cf3 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -239,14 +239,14 @@ the Nix package manager.") (define-public nix (package (name "nix") - (version "1.8") + (version "1.10") (source (origin (method url-fetch) (uri (string-append "http://nixos.org/releases/nix/nix-" version "/nix-" version ".tar.xz")) (sha256 (base32 - "077hircacgi9y4n6kf48qp4laz1h3ab6sif3rcci1jy13f05w2m3")))) + "1xhh7l1dqwn6i3m51xp8l0aa95da3823w4h8n8hfxlcxaixcl4jn")))) (build-system gnu-build-system) ;; XXX: Should we pass '--with-store-dir=/gnu/store'? But then we'd also ;; need '--localstatedir=/var'. But then! The thing would use /var/nix -- cgit v1.2.3 From 9083788a294e5ccbbd9bd4b2bb2867dae7079018 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 12 Nov 2015 17:59:34 +0800 Subject: gnu: nix: Don't propagate Perl libraries. * gnu/packages/package-management.scm (nix): Move perl-www-curl, perl-dbi and perl-dbd-sqlite from 'propagated-inputs' to 'inputs'. [arguments]: Add #:configure-flags. --- gnu/packages/package-management.scm | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 244cd49cf3..1c15196bf3 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -251,16 +251,29 @@ the Nix package manager.") ;; XXX: Should we pass '--with-store-dir=/gnu/store'? But then we'd also ;; need '--localstatedir=/var'. But then! The thing would use /var/nix ;; instead of /var/guix. So in the end, we do nothing special. + (arguments + '(#:configure-flags + ;; Set the prefixes of Perl libraries to avoid propagation. + (let ((perl-libdir (lambda (p) + (string-append + (assoc-ref %build-inputs p) + "/lib/perl5/site_perl")))) + (list (string-append "--with-dbi=" + (perl-libdir "perl-dbi")) + (string-append "--with-dbd-sqlite=" + (perl-libdir "perl-dbd-sqlite")) + (string-append "--with-www-curl=" + (perl-libdir "perl-www-curl")))))) (native-inputs `(("perl" ,perl) ("pkg-config" ,pkg-config))) (inputs `(("curl" ,curl) ("openssl" ,openssl) ("libgc" ,libgc) ("sqlite" ,sqlite) - ("bzip2" ,bzip2))) - (propagated-inputs `(("perl-www-curl" ,perl-www-curl) - ("perl-dbi" ,perl-dbi) - ("perl-dbd-sqlite" ,perl-dbd-sqlite))) + ("bzip2" ,bzip2) + ("perl-www-curl" ,perl-www-curl) + ("perl-dbi" ,perl-dbi) + ("perl-dbd-sqlite" ,perl-dbd-sqlite))) (home-page "http://nixos.org/nix/") (synopsis "The Nix package manager") (description -- cgit v1.2.3 From 2af4f5b051702551afd95079cdb0c2e51a902777 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Fri, 13 Nov 2015 17:48:11 +0800 Subject: gnu: gcr: Update to 3.18.0, enable introspection. * gnu/packages/gnome.scm (gcr): Update to 3.18.0. [native-inputs]: Add gobject-introspection and libxslt. --- gnu/packages/gnome.scm | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 8869b62629..f51532fdd8 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -247,7 +247,7 @@ and keep up to date translations of documentation.") (define-public gcr (package (name "gcr") - (version "3.16.0") + (version "3.18.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -255,7 +255,7 @@ and keep up to date translations of documentation.") name "-" version ".tar.xz")) (sha256 (base32 - "0xfhi0w358lvca1jjx24x2gm67mif33dsnmi9cv5i0f83ks8vzpc")))) + "006f6xbd3jppkf9avg83mpqdld5d0z6mr0sm81lql52mmyjnvlfl")))) (build-system gnu-build-system) (arguments '(#:tests? #f ;25 of 598 tests fail because /var/lib/dbus/machine-id does @@ -274,7 +274,9 @@ and keep up to date translations of documentation.") `(("python" ,python-2) ;for tests ("pkg-config" ,pkg-config) ("glib" ,glib "bin") - ("intltool" ,intltool))) + ("gobject-introspection" ,gobject-introspection) + ("intltool" ,intltool) + ("xsltproc" ,libxslt))) ;; mentioned in gck.pc, gcr.pc and gcr-ui.pc (propagated-inputs `(("p11-kit" ,p11-kit) -- cgit v1.2.3 From ebeabe2d35b93ed9d2fe5b88ccb7dc8f0fc0547c Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Fri, 13 Nov 2015 17:51:27 +0800 Subject: gnu: upower: Enable GObject introspection. * gnu/packages/gnome.scm (upower)[native-inputs]: Add gobject-introspection. --- gnu/packages/gnome.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index f51532fdd8..be2662379c 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -2362,7 +2362,8 @@ faster results and to avoid unnecessary server load.") (substitute* "src/linux/integration-test" (("/usr/bin/python3") (which "python3")))))))) (native-inputs - `(("pkg-config" ,pkg-config) + `(("gobject-introspection" ,gobject-introspection) + ("pkg-config" ,pkg-config) ("intltool" ,intltool) ("python" ,python))) (inputs -- cgit v1.2.3 From d777e048b5244dd264e1314b51f871af21ae9985 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Fri, 13 Nov 2015 17:56:22 +0800 Subject: gnu: upower: Update to 0.99.3. * gnu/packages/gnome.scm (upower): Update to 0.99.3. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index be2662379c..79846ae2e8 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -2332,14 +2332,14 @@ faster results and to avoid unnecessary server load.") (define-public upower (package (name "upower") - (version "0.99.2") + (version "0.99.3") (source (origin (method url-fetch) (uri (string-append "http://upower.freedesktop.org/releases/" name "-" version ".tar.xz")) (sha256 (base32 - "0vwlh20jmaf01m38kfn8yx2869a3clmkzlycrj99rf4nvwx4bp79")) + "0f6x9mi1jzgqdpycaikyhjljnw3aacsl3gxndyg0dfqkq6y9jwb9")) (patches (list (search-patch "upower-builddir.patch"))))) (build-system glib-or-gtk-build-system) (arguments -- cgit v1.2.3 From a124bbd2f41410e1c33654f4ff9865765baf28a7 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Fri, 13 Nov 2015 22:50:36 +0800 Subject: gnu: Adjust formatting as recommended by 'guix lint'. * gnu/packages/aidc.scm (barcode, qrencode), gnu/packages/bash.scm (bash, bash-completion), gnu/packages/busybox.scm (busybox), gnu/packages/cdrom.scm (cdparanoia), gnu/packages/cmake.scm (cmake), gnu/packages/conkeror.scm (conkeror), gnu/packages/cook.scm (cook), gnu/packages/curl.scm (curl), gnu/packages/docbook.scm (docbook-xsl), gnu/packages/enlightenment.scm (enlightenment), gnu/packages/games.scm (abbaye), gnu/packages/geeqie.scm (exiv2), gnu/packages/gimp.scm (gegl), gnu/packages/gl.scm (glu, freeglut, ftgl), gnu/packages/glib.scm (glib), gnu/packages/gnome.scm (orbit2, gconf, geocode-glib), gnu/packages/gstreamer.scm (gstreamer, gst-plugins-base), gnu/packages/linux.scm (util-linux), gnu/packages/lisp.scm (gcl, ecl), gnu/packages/maths.scm (gnuplot, hdf5), gnu/packages/ssh.scm (dropbear), gnu/packages/web.scm (json-c): Remove tabulations and trailing white spaces or reformat to fit within 80 columns. * gnu/packages/audio.scm (aubio), gnu/packages/emacs.scm (emacs-s), gnu/packages/engineering.scm (geda-gaf), gnu/packages/games.scm (dosbox), gnu/packages/gnome.scm (gusb), gnu/packages/gtk.scm (gtk+), gnu/packages/guile.scm (guile-wisp), gnu/packages/hurd.scm (hurd-headers), gnu/packages/wm.scm (i3-wm): Adjust synopsis or description. --- gnu/packages/aidc.scm | 9 +++---- gnu/packages/audio.scm | 2 +- gnu/packages/bash.scm | 8 ++++--- gnu/packages/busybox.scm | 10 ++++---- gnu/packages/cdrom.scm | 3 ++- gnu/packages/cmake.scm | 3 ++- gnu/packages/conkeror.scm | 8 +++---- gnu/packages/cook.scm | 8 +++---- gnu/packages/curl.scm | 4 ++-- gnu/packages/docbook.scm | 5 ++-- gnu/packages/emacs.scm | 2 +- gnu/packages/engineering.scm | 2 +- gnu/packages/enlightenment.scm | 2 +- gnu/packages/games.scm | 6 ++--- gnu/packages/geeqie.scm | 3 ++- gnu/packages/gimp.scm | 2 +- gnu/packages/gl.scm | 53 +++++++++++++++++++++++------------------- gnu/packages/glib.scm | 3 ++- gnu/packages/gnome.scm | 44 ++++++++++++++++++----------------- gnu/packages/gstreamer.scm | 9 +++---- gnu/packages/gtk.scm | 2 +- gnu/packages/guile.scm | 4 ++-- gnu/packages/hurd.scm | 2 +- gnu/packages/linux.scm | 2 +- gnu/packages/lisp.scm | 14 +++++------ gnu/packages/maths.scm | 6 ++--- gnu/packages/ssh.scm | 3 ++- gnu/packages/web.scm | 5 ++-- gnu/packages/wm.scm | 2 +- 29 files changed, 122 insertions(+), 104 deletions(-) diff --git a/gnu/packages/aidc.scm b/gnu/packages/aidc.scm index 02254c8547..3ef5d28fbb 100644 --- a/gnu/packages/aidc.scm +++ b/gnu/packages/aidc.scm @@ -33,9 +33,10 @@ (source (origin (method url-fetch) (uri (string-append "mirror://gnu/barcode/barcode-" - version ".tar.xz")) - (sha256 (base32 - "1indapql5fjz0bysyc88cmc54y8phqrbi7c76p71fgjp45jcyzp8")))) + version ".tar.xz")) + (sha256 + (base32 + "1indapql5fjz0bysyc88cmc54y8phqrbi7c76p71fgjp45jcyzp8")))) (build-system gnu-build-system) (synopsis "Convert text strings to printed bars in various standards") (description "GNU Barcode is a flexible tool to produce printed barcodes @@ -53,7 +54,7 @@ formats.") (method url-fetch) (uri (string-append "http://fukuchi.org/works/qrencode/qrencode-" version - ".tar.bz2")) + ".tar.bz2")) (sha256 (base32 "163sb580p570p27imc6jhkfdw15kzp8vy1jq92nip1rwa63i9myz")))) (build-system gnu-build-system) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index a6899a07f6..77842f8c48 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -128,7 +128,7 @@ Filter) modules follow the convention of 1V / Octave.") (native-inputs `(("pkg-config" ,pkg-config))) (home-page "http://aubio.org/") - (synopsis "A library for audio labelling") + (synopsis "Library for audio labelling") (description "aubio is a tool designed for the extraction of annotations from audio signals. Its features include segmenting a sound file before each of its diff --git a/gnu/packages/bash.scm b/gnu/packages/bash.scm index 180c64e872..bdb5a760f7 100644 --- a/gnu/packages/bash.scm +++ b/gnu/packages/bash.scm @@ -191,7 +191,7 @@ number/base32-hash tuples, directly usable in the 'patch-series' form." ;; Bash is reportedly not parallel-safe. See, for instance, ;; and - ;; . + ;; . #:parallel-build? #f #:parallel-tests? #f @@ -290,8 +290,10 @@ without modification.") (completions (string-append out "/share/bash-completion" "/completions")) - (already (find-files (string-append util-linux - "/etc/bash_completion.d")))) + (already (find-files + (string-append + util-linux + "/etc/bash_completion.d")))) (with-directory-excursion completions (for-each (lambda (file) (when (file-exists? file) diff --git a/gnu/packages/busybox.scm b/gnu/packages/busybox.scm index 13630b39dc..e2d6cf8f9e 100644 --- a/gnu/packages/busybox.scm +++ b/gnu/packages/busybox.scm @@ -40,12 +40,12 @@ "12v7nri79v8gns3inmz4k24q7pcnwi00hybs0wddfkcy1afh42xf")))) (build-system gnu-build-system) (arguments - `(#:phases + `(#:phases (alist-replace - 'configure + 'configure (lambda _ (zero? (system* "make" "defconfig"))) (alist-replace - 'check + 'check (lambda _ (substitute* '("testsuite/du/du-s-works" "testsuite/du/du-works") @@ -70,7 +70,7 @@ ;; So mark it with SKIP_KNOWN_BUGS like the others. ;; Presumably it wasn't known at the time of release ... ;; (It is strange that they release software which they know to have bugs) - (("testing \"grep -w \\^str doesn't match str not at the beginning\"") + (("testing \"grep -w \\^str doesn't match str not at the beginning\"") "test x\"$SKIP_KNOWN_BUGS\" = x\"\" && testing \"grep -w ^str doesn't match str not at the beginning\"")) ;; This test cannot possibly pass. @@ -79,7 +79,7 @@ (delete-file "testsuite/which/which-uses-default-path") (rmdir "testsuite/which") - (zero? (system* "make" + (zero? (system* "make" ;; "V=1" "SKIP_KNOWN_BUGS=1" "SKIP_INTERNET_TESTS=1" diff --git a/gnu/packages/cdrom.scm b/gnu/packages/cdrom.scm index 884ba8bfa6..9a216f789d 100644 --- a/gnu/packages/cdrom.scm +++ b/gnu/packages/cdrom.scm @@ -157,7 +157,8 @@ files.") (version "10.2") (source (origin (method url-fetch) - (uri (string-append "http://downloads.xiph.org/releases/cdparanoia/cdparanoia-III-" + (uri (string-append "http://downloads.xiph.org/releases/" + "cdparanoia/cdparanoia-III-" version ".src.tgz")) (sha256 (base32 diff --git a/gnu/packages/cmake.scm b/gnu/packages/cmake.scm index a58284ba17..2efce6fd87 100644 --- a/gnu/packages/cmake.scm +++ b/gnu/packages/cmake.scm @@ -66,7 +66,8 @@ "Source/cmExecProgramCommand.cxx" "Utilities/cmbzip2/Makefile-libbz2_so" "Utilities/Release/release_cmake.cmake" - "Utilities/cmlibarchive/libarchive/archive_write_set_format_shar.c" + "Utilities/cmlibarchive/libarchive/\ +archive_write_set_format_shar.c" "Tests/CMakeLists.txt" "Tests/RunCMake/File_Generate/RunCMakeTest.cmake") (("/bin/sh") (which "sh")))) diff --git a/gnu/packages/conkeror.scm b/gnu/packages/conkeror.scm index d91fe9e78b..cfeb22e8c3 100644 --- a/gnu/packages/conkeror.scm +++ b/gnu/packages/conkeror.scm @@ -76,7 +76,7 @@ services (Search, Gmail, Maps, Reader, etc.), Del.icio.us, Reddit, Last.fm and YouTube. For easier editing of form fields, it can spawn external editors.") (home-page "http://conkeror.org") ;; Conkeror is triple licensed. - (license (list license:gpl2 - license:lgpl2.1 - ;; MPL 1.1 -- this license is not GPL compatible - )))) + (license (list + ;; MPL 1.1 -- this license is not GPL compatible + license:gpl2 + license:lgpl2.1)))) diff --git a/gnu/packages/cook.scm b/gnu/packages/cook.scm index 4eb3096153..d0dd80dc40 100644 --- a/gnu/packages/cook.scm +++ b/gnu/packages/cook.scm @@ -35,17 +35,17 @@ (method url-fetch) (uri (string-append "http://miller.emu.id.au/pmiller/software/cook/cook-" version - ".tar.gz")) + ".tar.gz")) (sha256 (base32 "104saqnqql1l7zr2pm3f718fdky3ds8j07c6xvwrs1rfkhrw58yw")))) (build-system gnu-build-system) (arguments `(#:parallel-build? #f ; There are some nasty racy rules in the Makefile. - #:phases + #:phases (alist-cons-before 'configure 'pre-conf - (lambda _ + (lambda _ (substitute* (append '("common/env.c") (find-files "test" "\\.sh")) (("/bin/sh") (which "sh"))) @@ -57,7 +57,7 @@ ;; which plays havoc with this test, for which correct timestamps ;; are very important. Adding the U flag undoes the effect of ;; --enable-deterministic-archives and allows this test to work - ;; again. + ;; again. (substitute* "test/00/t0077a.sh" (("ar qc") "ar qcU")) diff --git a/gnu/packages/curl.scm b/gnu/packages/curl.scm index 3e435f4b13..16140f0f9c 100644 --- a/gnu/packages/curl.scm +++ b/gnu/packages/curl.scm @@ -95,8 +95,8 @@ ;; test 1510...[HTTP GET connection cache limit (CURLOPT_MAXCONNECTS)] ;; ;; 1510: output (log/stderr1510) FAILED: - ;; --- log/check-expected 2015-06-27 07:45:53.166720834 +0000 - ;; +++ log/check-generated 2015-06-27 07:45:53.166720834 +0000 + ;; --- log/check-expected 2015-06-27 07:45:53.166720834 +0000 + ;; +++ log/check-generated 2015-06-27 07:45:53.166720834 +0000 ;; @@ -1,5 +1,5 @@ ;; * Connection #0 to host server1.example.com left intact[LF] ;; * Connection #1 to host server2.example.com left intact[LF] diff --git a/gnu/packages/docbook.scm b/gnu/packages/docbook.scm index 3ec0377f57..9f5fbf1d96 100644 --- a/gnu/packages/docbook.scm +++ b/gnu/packages/docbook.scm @@ -134,8 +134,9 @@ by no means limited to these applications.) This package provides XML DTDs.") (string-append xsl "/" name-version)) (substitute* (string-append xsl "/" name-version "/catalog.xml") - (("rewritePrefix=\"./") - (string-append "rewritePrefix=\"file://" xsl "/" name-version "/"))))) + (("rewritePrefix=\"./") + (string-append "rewritePrefix=\"file://" xsl "/" + name-version "/"))))) #:modules ((guix build utils)))) (native-inputs `(("bzip2" ,bzip2) ("tar" ,tar))) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index f8be743ce5..67f1ea20ef 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -1023,7 +1023,7 @@ and stored in memory.") (lambda _ (zero? (system* "./run-tests.sh"))))))) (home-page "https://github.com/magnars/s.el") - (synopsis "Emacs string manipulation library.") + (synopsis "Emacs string manipulation library") (description "This package provides an Emacs library for manipulating strings.") (license license:gpl3+))) diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index 1c378f63a7..554399b049 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm @@ -140,7 +140,7 @@ plans and designs.") (home-page "http://geda-project.org/") (synopsis "Schematic capture, netlister, symbols, symbol checker, and utils") (description - "gaf stands for “gschem and friends”. It is a subset of the entire tool + "Gaf stands for “gschem and friends”. It is a subset of the entire tool suite grouped together under the gEDA name. gEDA/gaf is a collection of tools which currently includes: gschem, a schematic capture program; gnetlist, a netlist generation program; gsymcheck, a syntax checker for schematic symbols; diff --git a/gnu/packages/enlightenment.scm b/gnu/packages/enlightenment.scm index 0a91995a0a..97e7d38215 100644 --- a/gnu/packages/enlightenment.scm +++ b/gnu/packages/enlightenment.scm @@ -277,7 +277,7 @@ Libraries with some extra bells and whistles.") (string-append "https://download.enlightenment.org/rel/apps/" name "/" name "-" version ".tar.xz")) (sha256 - (base32 + (base32 "098bdx9qmv1yqqwfydrzs7fvbnhsf3vaib9pmqsyg4ihgqrkrwjm")))) (build-system gnu-build-system) (native-inputs diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 4274d4ce38..8dcedc11e8 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -158,8 +158,8 @@ scriptable with Guile.") (source (origin (method url-fetch) - (uri (string-append "http://abbaye-for-linux.googlecode.com/files/abbaye-for-linux-src-" - version ".tar.gz")) + (uri (string-append "http://abbaye-for-linux.googlecode.com/files/" + "abbaye-for-linux-src-" version ".tar.gz")) (sha256 (base32 "1wgvckgqa2084rbskxif58wbb83xbas8s1i8s7d57xbj08ryq8rk")))) @@ -1089,7 +1089,7 @@ next campaign.") ("glu" ,glu) ("mesa" ,mesa))) (home-page "http://www.dosbox.com") - (synopsis "x86 emulator with CGA/EGA/VGA/etc. graphics and sound") + (synopsis "X86 emulator with CGA/EGA/VGA/etc. graphics and sound") (description "DOSBox is a DOS-emulator that uses the SDL library. DOSBox also emulates CPU:286/386 realmode/protected mode, Directory FileSystem/XMS/EMS, Tandy/Hercules/CGA/EGA/VGA/VESA graphics, a diff --git a/gnu/packages/geeqie.scm b/gnu/packages/geeqie.scm index a192c4b009..9cc8f74255 100644 --- a/gnu/packages/geeqie.scm +++ b/gnu/packages/geeqie.scm @@ -53,7 +53,8 @@ and XMP metadata of images in various formats.") ;; Files under `xmpsdk' are a copy of Adobe's XMP SDK, licensed under the ;; 3-clause BSD license: . - ;; The core is GPLv2+: . + ;; The core is GPLv2+: + ;; . (license l:gpl2+))) (define-public geeqie diff --git a/gnu/packages/gimp.scm b/gnu/packages/gimp.scm index 35c55dc2f9..ebf66d478e 100644 --- a/gnu/packages/gimp.scm +++ b/gnu/packages/gimp.scm @@ -68,7 +68,7 @@ provided as well as the framework to add new color models and data types.") (version "0.2.0") (source (origin (method url-fetch) - (uri (list (string-append "http://download.gimp.org/pub/gegl/" + (uri (list (string-append "http://download.gimp.org/pub/gegl/" (string-take version 3) "/" name "-" version ".tar.bz2"))) (sha256 diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm index c7bece868d..33312ba127 100644 --- a/gnu/packages/gl.scm +++ b/gnu/packages/gl.scm @@ -49,14 +49,15 @@ (name "glu") (version "9.0.0") (source (origin - (method url-fetch) - (uri (string-append "ftp://ftp.freedesktop.org/pub/mesa/glu/glu-" - version ".tar.gz")) - (sha256 - (base32 "0r72yyhj09x3krn3kn629jqbwyq50ji8w5ri2pn6zwrk35m4g1s3")))) + (method url-fetch) + (uri (string-append "ftp://ftp.freedesktop.org/pub/mesa/glu/glu-" + version ".tar.gz")) + (sha256 + (base32 + "0r72yyhj09x3krn3kn629jqbwyq50ji8w5ri2pn6zwrk35m4g1s3")))) (build-system gnu-build-system) (propagated-inputs - `(("mesa" ,mesa))) ; according to glu.pc + `(("mesa" ,mesa))) ; according to glu.pc (home-page "http://www.opengl.org/archives/resources/faq/technical/glu.htm") (synopsis "Mesa OpenGL Utility library") (description @@ -77,20 +78,22 @@ as ASCII text.") (name "freeglut") (version "3.0.0") (source (origin - (method url-fetch) - (uri (string-append "mirror://sourceforge/project/freeglut/freeglut/" - version "/freeglut-" version ".tar.gz")) - (sha256 - (base32 "18knkyczzwbmyg8hr4zh8a1i5ga01np2jzd1rwmsh7mh2n2vwhra")))) + (method url-fetch) + (uri (string-append + "mirror://sourceforge/project/freeglut/freeglut/" + version "/freeglut-" version ".tar.gz")) + (sha256 + (base32 + "18knkyczzwbmyg8hr4zh8a1i5ga01np2jzd1rwmsh7mh2n2vwhra")))) (build-system cmake-build-system) (arguments '(#:tests? #f)) ; no test target (inputs `(("mesa" ,mesa) - ("libx11" ,libx11) - ("libxi" ,libxi) - ("libxrandr" ,libxrandr) - ("libxxf86vm" ,libxxf86vm) - ("inputproto" ,inputproto) - ("xinput" ,xinput))) + ("libx11" ,libx11) + ("libxi" ,libxi) + ("libxrandr" ,libxrandr) + ("libxxf86vm" ,libxxf86vm) + ("inputproto" ,inputproto) + ("xinput" ,xinput))) (propagated-inputs ;; Headers from Mesa and GLU are needed. `(("glu" ,glu) @@ -116,17 +119,19 @@ the X-Consortium license.") (name "ftgl") (version "2.1.3-rc5") (source (origin - (method url-fetch) - (uri (string-append "mirror://sourceforge/project/ftgl/FTGL%20Source/2.1.3~rc5/ftgl-" - version ".tar.gz")) - (sha256 - (base32 "0nsn4s6vnv5xcgxcw6q031amvh2zfj2smy1r5mbnjj2548hxcn2l")))) + (method url-fetch) + (uri (string-append + "mirror://sourceforge/project/ftgl/FTGL%20Source/2.1.3~rc5/" + "ftgl-" version ".tar.gz")) + (sha256 + (base32 + "0nsn4s6vnv5xcgxcw6q031amvh2zfj2smy1r5mbnjj2548hxcn2l")))) (build-system gnu-build-system) ;; The pkg-config file lists "freetype2" as Requires.private. (propagated-inputs `(("freetype" ,freetype))) (inputs `(("libx11" ,libx11) - ("mesa" ,mesa) - ("glu" ,glu))) + ("mesa" ,mesa) + ("glu" ,glu))) (home-page "http://ftgl.sourceforge.net") (synopsis "Font rendering library for OpenGL applications") (description diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm index b2979b24e4..146d3f563b 100644 --- a/gnu/packages/glib.scm +++ b/gnu/packages/glib.scm @@ -188,7 +188,8 @@ shared NFS home directories.") ;; Disable a test that requires dbus. (substitute* "gio/tests/gdbus-serialization.c" - (("g_test_add_func \\(\"/gdbus/message-serialize/double-array\", test_double_array\\);" all) + (("g_test_add_func \ +\\(\"/gdbus/message-serialize/double-array\", test_double_array\\);" all) (string-append "/* " all " */")))) %standard-phases) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 79846ae2e8..4bd9d9c881 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -930,23 +930,26 @@ functionality was designed to be as reusable and portable as possible.") (source (origin (method url-fetch) (uri (let ((upstream-name "ORBit2")) - (string-append "mirror://gnome/sources/" upstream-name "/" + (string-append "mirror://gnome/sources/" upstream-name "/" (version-major+minor version) "/" upstream-name "-" version ".tar.bz2"))) (sha256 - (base32 "0l3mhpyym9m5iz09fz0rgiqxl2ym6kpkwpsp1xrr4aa80nlh1jam")))) + (base32 + "0l3mhpyym9m5iz09fz0rgiqxl2ym6kpkwpsp1xrr4aa80nlh1jam")))) (build-system gnu-build-system) (arguments - ;; The programmer kindly gives us a hook to turn off deprecation warnings ... - `(#:configure-flags '("DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS") - ;; ... which they then completly ignore !! - #:phases - (alist-cons-before - 'configure 'ignore-deprecations - (lambda _ - (substitute* "linc2/src/Makefile.in" - (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))) - %standard-phases))) + `(#:configure-flags + ;; The programmer kindly gives us a hook to turn off deprecation + ;; warnings ... + '("DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS") + ;; ... which they then completly ignore !! + #:phases + (alist-cons-before + 'configure 'ignore-deprecations + (lambda _ + (substitute* "linc2/src/Makefile.in" + (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))) + %standard-phases))) (inputs `(("glib" ,glib) ("libidl" ,libidl))) (native-inputs @@ -955,9 +958,9 @@ functionality was designed to be as reusable and portable as possible.") (synopsis "CORBA 2.4-compliant Object Request Broker") (description "ORBit2 is a CORBA 2.4-compliant Object Request Broker (orb) featuring mature C, C++ and Python bindings.") - ;; Licence notice is unclear. The Web page simply say "GPL" without giving a version. - ;; SOME of the code files have licence notices for GPLv2+ - ;; The tarball contains files of the text of GPLv2 and LGPLv2 + ;; Licence notice is unclear. The Web page simply say "GPL" without giving + ;; a version. SOME of the code files have licence notices for GPLv2+. + ;; The tarball contains files of the text of GPLv2 and LGPLv2. (license license:gpl2+))) @@ -1014,9 +1017,9 @@ use in GNOME applications, built on top of CORBA.") (version "3.2.6") (source (origin (method url-fetch) - (uri - (let ((upstream-name "GConf")) - (string-append "mirror://gnome/sources/" upstream-name "/" + (uri + (let ((upstream-name "GConf")) + (string-append "mirror://gnome/sources/" upstream-name "/" (version-major+minor version) "/" upstream-name "-" version ".tar.xz"))) (sha256 @@ -2308,8 +2311,7 @@ permission from user.") (arguments `(;; The tests want to write to $HOME/.cache/geocode-glib, which doesn't ;; work for the builder. Punt. - #:tests? #f - )) + #:tests? #f)) (native-inputs `(("glib:bin" ,glib "bin") ; for glib-mkenums ("gobject-introspection" ,gobject-introspection) @@ -3293,7 +3295,7 @@ DAV, and others.") (and (zero? (system* "gtkdocize")) (zero? (system* "autoreconf" "-vif")))))))) (home-page "https://github/hughsie/libgusb") - (synopsis "A GLib binding for libusb1") + (synopsis "GLib binding for libusb1") (description "GUsb is a GObject wrapper for libusb1 that makes it easy to do asynchronous control, bulk and interrupt transfers with proper cancellation diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm index a52106b898..1235b3185a 100644 --- a/gnu/packages/gstreamer.scm +++ b/gnu/packages/gstreamer.scm @@ -87,8 +87,9 @@ arrays of data.") (source (origin (method url-fetch) - (uri (string-append "http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-" - version ".tar.xz")) + (uri (string-append + "http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-" + version ".tar.xz")) (sha256 (base32 "172w1bpnkn6mm1wi37n03apdbb6cdkykhzjf1vfxchcd7hhkyflp")))) @@ -134,8 +135,8 @@ This package provides the core library and elements.") (source (origin (method url-fetch) - (uri (string-append "http://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-" - version ".tar.xz")) + (uri (string-append "http://gstreamer.freedesktop.org/src/" name "/" + name "-" version ".tar.xz")) (sha256 (base32 "18sbyjcp281zb3bsqji3pglsdsxi0s6ai7rx90sx8cpflkxdqcwm")))) diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index 40eb8e49ed..c0c0794f4a 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -1108,7 +1108,7 @@ information.") (home-page "http://www.gtk.org/gtk-doc/") (synopsis "Documentation generator from C source code") (description - "GTK-Doc generates API documentation from comments added to C code. It is + "GTK-Doc generates API documentation from comments added to C code. It is typically used to document the public API of GTK+ and GNOME libraries, but it can also be used to document application code.") (license license:gpl2+))) diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index dd0457edfe..82776e6cd3 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -796,8 +796,8 @@ key-value cache and store.") (inputs `(("guile" ,guile-2.0) ("python" ,python))) - (synopsis "wisp is a whitespace to lisp syntax for Guile") - (description "wisp is a syntax for Guile which provides a Python-like + (synopsis "Whitespace to lisp syntax for Guile") + (description "Wisp is a syntax for Guile which provides a Python-like whitespace-significant language. It may be easier on the eyes for some users and in some situations.") (license gpl3+))) diff --git a/gnu/packages/hurd.scm b/gnu/packages/hurd.scm index e95f50ab6e..ff29aee489 100644 --- a/gnu/packages/hurd.scm +++ b/gnu/packages/hurd.scm @@ -182,6 +182,6 @@ Library and other user programs.") (home-page "http://www.gnu.org/software/hurd/hurd.html") (synopsis "GNU Hurd libraries") (description - "This package provides libihash, needed to build the GNU C + "This package provides libihash, needed to build the GNU C Library for GNU/Hurd.") (license gpl2+))) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 39983dafb3..9252ca8504 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -572,7 +572,7 @@ slabtop, and skill.") (arguments '(;; util-linux is not the preferred source for some of the libraries and ;; commands, so disable them (see, e.g., - ;; .) + ;; .) #:configure-flags '("--disable-libblkid" "--disable-libuuid" "--disable-uuidd" "--disable-fsck" diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index 78ff83de15..726cfcd5cb 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -59,15 +59,16 @@ #:configure-flags '("--enable-ansi") ; required for use by the maxima package #:phases (alist-cons-before 'configure 'pre-conf - (lambda _ + (lambda _ ;; Patch bug when building readline support. This bug was ;; also observed by Debian ;; https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=741819 (substitute* "o/gcl_readline.d" - (("rl_attempted_completion_function = \\(CPPFunction \\*\\)rl_completion;") + (("rl_attempted_completion_function = \ +\\(CPPFunction \\*\\)rl_completion;") "rl_attempted_completion_function = rl_completion;")) - (substitute* - (append + (substitute* + (append '("pcl/impl/kcl/makefile.akcl" "add-defs" "unixport/makefile.dos" @@ -115,8 +116,7 @@ interface to the Tk widget system.") ("libgc" ,libgc) ("libffi" ,libffi))) (arguments - '(#:tests? #f - ;; During 'make check', ECL fails to initialize with "protocol not + '(;; During 'make check', ECL fails to initialize with "protocol not ;; supported", presumably because /etc/protocols is missing in the ;; build environment. See . ;; @@ -139,7 +139,7 @@ interface to the Tk widget system.") ;; (string-append ;; "ECL=" (assoc-ref outputs "out") "/bin/ecl")))) ;; rearranged-phases)) - )) + #:tests? #f)) (home-page "http://ecls.sourceforge.net/") (synopsis "Embeddable Common Lisp") (description "ECL is an implementation of the Common Lisp language as diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index a56b7ce966..c916fe79f1 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -363,7 +363,7 @@ plotting engine by third-party applications like Octave.") ;; X11 Style with the additional restriction that derived works may only be ;; distributed as patches to the original. (license (license:fsf-free - "http://gnuplot.cvs.sourceforge.net/gnuplot/gnuplot/Copyright")))) + "http://gnuplot.cvs.sourceforge.net/gnuplot/gnuplot/Copyright")))) (define-public hdf5 (package @@ -406,10 +406,10 @@ extremely large and complex data collections.") (origin (method url-fetch) (uri (string-append "mirror://gnu/octave/octave-" - version ".tar.gz")) + version ".tar.gz")) (sha256 (base32 - "101jr9yck798586jz4vkjcgk36zksmxf1pxrzvipgn2xgyay0zjc")))) + "101jr9yck798586jz4vkjcgk36zksmxf1pxrzvipgn2xgyay0zjc")))) (build-system gnu-build-system) (inputs `(("lapack" ,lapack) diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm index 7a62d0bdee..0a57d26be5 100644 --- a/gnu/packages/ssh.scm +++ b/gnu/packages/ssh.scm @@ -325,7 +325,8 @@ especially over Wi-Fi, cellular, and long-distance links.") (source (origin (method url-fetch) (uri (string-append - "http://matt.ucc.asn.au/" name "/releases/" name "-" version ".tar.bz2")) + "http://matt.ucc.asn.au/" name "/releases/" + name "-" version ".tar.bz2")) (sha256 (base32 "1bjpbg2vi5f332q4bqxkidkjfxsqmnqvp4g1wyh8d99b8gg94nar")))) (build-system gnu-build-system) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 4d526fce0c..6a47f3b6c9 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -235,8 +235,9 @@ data.") (version "0.12") (source (origin (method url-fetch) - (uri (string-append "https://s3.amazonaws.com/json-c_releases/releases/json-c-" - version ".tar.gz")) + (uri (string-append + "https://s3.amazonaws.com/json-c_releases/releases/json-c-" + version ".tar.gz")) (sha256 (base32 "0gwzic3ifg2d0w32ya3agpxh8i083cgvf7kmc51cnbgqnfr02300")) diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm index db5fa1e3da..1765c3a6b0 100644 --- a/gnu/packages/wm.scm +++ b/gnu/packages/wm.scm @@ -179,7 +179,7 @@ commands would.") ("pkg-config" ,pkg-config))) (home-page "http://i3wm.org/") (synopsis "Improved tiling window manager") - (description "i3 is a tiling window manager, completely written + (description "A tiling window manager, completely written from scratch. i3 is primarily targeted at advanced users and developers.") (license bsd-3))) -- cgit v1.2.3 From 9715df7fbed076a1073a5d90d81a26f2b8e24df8 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Sun, 8 Nov 2015 23:00:28 -0500 Subject: gnu: mit-krb5: Update to 1.13.2. * gnu/packages/mit-krb5.scm (mit-krb5): Update to 1.13.2. [native-inputs]: Remove "patch/init-fix". * gnu/packages/patches/mit-krb5-init-fix.patch: Delete file. * gnu-system.am (dist_patch_DATA): Remove it. --- gnu-system.am | 1 - gnu/packages/mit-krb5.scm | 7 +++---- gnu/packages/patches/mit-krb5-init-fix.patch | 18 ------------------ 3 files changed, 3 insertions(+), 23 deletions(-) delete mode 100644 gnu/packages/patches/mit-krb5-init-fix.patch diff --git a/gnu-system.am b/gnu-system.am index 009ca766d2..6cb37297f7 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -586,7 +586,6 @@ dist_patch_DATA = \ gnu/packages/patches/mcron-install.patch \ gnu/packages/patches/mdadm-gcc-4.9-fix.patch \ gnu/packages/patches/mhash-keygen-test-segfault.patch \ - gnu/packages/patches/mit-krb5-init-fix.patch \ gnu/packages/patches/mpc123-initialize-ao.patch \ gnu/packages/patches/mplayer2-theora-fix.patch \ gnu/packages/patches/module-init-tools-moduledir.patch \ diff --git a/gnu/packages/mit-krb5.scm b/gnu/packages/mit-krb5.scm index b79d4d34bc..4327e1da65 100644 --- a/gnu/packages/mit-krb5.scm +++ b/gnu/packages/mit-krb5.scm @@ -29,18 +29,17 @@ (define-public mit-krb5 (package (name "mit-krb5") - (version "1.11.3") + (version "1.13.2") (source (origin (method url-fetch) (uri (string-append "http://web.mit.edu/kerberos/www/dist/krb5/" (string-copy version 0 (string-rindex version #\.)) "/krb5-" version "-signed.tar")) (sha256 (base32 - "1daiaxgkxcryqs37w28v4x1vajqmay4l144d1zd9c2d7jjxr9gcs")))) + "1qbdzyrws7d0q4filsibh28z54pd5l987jr0ygv43iq9085w6a75")))) (build-system gnu-build-system) (native-inputs - `(("patch/init-fix" ,(search-patch "mit-krb5-init-fix.patch")) - ("bison" ,bison) + `(("bison" ,bison) ("perl" ,perl))) (arguments '(#:phases diff --git a/gnu/packages/patches/mit-krb5-init-fix.patch b/gnu/packages/patches/mit-krb5-init-fix.patch deleted file mode 100644 index 13e49c2789..0000000000 --- a/gnu/packages/patches/mit-krb5-init-fix.patch +++ /dev/null @@ -1,18 +0,0 @@ -Fix the early context initialization code to avoid assuming that -arguments will be evaluated from right to left. - -Patch by Mark H Weaver . - ---- src/lib/krb5/krb/t_cc_config.c.orig 2012-12-17 21:47:05.000000000 -0500 -+++ src/lib/krb5/krb/t_cc_config.c 2013-10-29 18:19:16.547994590 -0400 -@@ -117,8 +117,8 @@ - int c; - unsigned int i; - -- bail_on_err(context, "Error initializing Kerberos library", -- krb5_init_context(&context)); -+ ret = krb5_init_context(&context); -+ bail_on_err(context, "Error initializing Kerberos library", ret); - bail_on_err(context, "Error getting location of default ccache", - krb5_cc_default(context, &ccache)); - server = NULL; -- cgit v1.2.3 From 4d53c29e6ca0fb432e92c298f9537c688fbbc10e Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Sun, 8 Nov 2015 22:37:33 -0500 Subject: gnu: mit-krb5: Refactor build code; support multiple patches. * gnu/packages/mit-krb5.scm (mit-krb5)[source]: Use version-major+minor. [arguments]: Use modify-phases. Split and rewrite 'unpack' phase into 'unpack', 'apply-patches', and 'enter-source-directory' phases. Add a 'pre-check' phase instead of replacing the 'check' phase. Combine substitutions on the same file. In the 'unpack' phase, find native-inputs with names starting with "patch/" and apply them all. Print a message for each patch applied. Do not rely on the result of 'chdir', which is unspecified. Determine the names of the inner tar file and the directory in a more robust way. Add (ice-9 ftw), (ice-9 match) and (srfi srfi-1) to #:modules. --- gnu/packages/mit-krb5.scm | 85 +++++++++++++++++++++++++++++------------------ 1 file changed, 52 insertions(+), 33 deletions(-) diff --git a/gnu/packages/mit-krb5.scm b/gnu/packages/mit-krb5.scm index 4327e1da65..76d8b2473e 100644 --- a/gnu/packages/mit-krb5.scm +++ b/gnu/packages/mit-krb5.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013 Andreas Enge +;;; Copyright © 2015 Mark H Weaver ;;; ;;; This file is part of GNU Guix. ;;; @@ -24,6 +25,7 @@ #:use-module (guix licenses) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix utils) #:use-module (guix build-system gnu)) (define-public mit-krb5 @@ -33,7 +35,7 @@ (source (origin (method url-fetch) (uri (string-append "http://web.mit.edu/kerberos/www/dist/krb5/" - (string-copy version 0 (string-rindex version #\.)) + (version-major+minor version) "/krb5-" version "-signed.tar")) (sha256 (base32 "1qbdzyrws7d0q4filsibh28z54pd5l987jr0ygv43iq9085w6a75")))) @@ -42,40 +44,57 @@ `(("bison" ,bison) ("perl" ,perl))) (arguments - '(#:phases - (alist-replace - 'unpack - (lambda* (#:key source #:allow-other-keys) - (let ((inner - (substring source - (string-index-right source #\k) - (string-index-right source #\-)))) - (and (zero? (system* "tar" "xvf" source)) - (zero? (system* "tar" "xvf" (string-append inner ".tar.gz"))) - (chdir inner) - (chdir "src") - ;; XXX The current patch system does not support unusual - ;; source unpack methods, so we have to apply this patch in a - ;; non-standard way. - (zero? (system* "patch" "-p1" "--force" "-i" - (assoc-ref %build-inputs "patch/init-fix")))))) - (alist-replace - 'check - (lambda* (#:key inputs #:allow-other-keys #:rest args) - (let ((perl (assoc-ref inputs "perl")) - (check (assoc-ref %standard-phases 'check))) - (substitute* "plugins/kdb/db2/libdb2/test/run.test" - (("/bin/cat") (string-append perl "/bin/perl"))) - (substitute* "plugins/kdb/db2/libdb2/test/run.test" - (("D/bin/sh") (string-append "D" (which "bash")))) - (substitute* "plugins/kdb/db2/libdb2/test/run.test" - (("bindir=/bin/.") (string-append "bindir=" perl "/bin"))) - ;; use existing files and directories in test + `(#:modules ((ice-9 ftw) + (ice-9 match) + (srfi srfi-1) + ,@%gnu-build-system-modules) + #:phases + (modify-phases %standard-phases + (replace 'unpack + (lambda* (#:key source #:allow-other-keys) + (define (sub-directory? name) + (and (not (member name '("." ".."))) + (equal? (stat:type (stat name)) + 'directory))) + (and (zero? (system* "tar" "xvf" source)) + (match (find-files "." "\\.tar\\.gz$") + ((inner-tar-file) + (zero? (system* "tar" "xvf" inner-tar-file)))) + (match (scandir "." sub-directory?) + ((directory) + (chdir directory) + #t))))) + + (add-after 'unpack 'apply-patches + (lambda* (#:key inputs native-inputs #:allow-other-keys) + (let ((patches (filter (match-lambda + ((name . file) + (string-prefix? "patch/" name))) + (or native-inputs inputs)))) + (every (match-lambda + ((name . file) + (format (current-error-port) + "applying '~a'...~%" name) + (zero? (system* "patch" "-p1" "--force" "-i" file)))) + patches)))) + + (add-after 'apply-patches 'enter-source-directory + (lambda _ + (chdir "src") + #t)) + + (add-before 'check 'pre-check + (lambda* (#:key inputs #:allow-other-keys) + (let ((perl (assoc-ref inputs "perl"))) + (substitute* "plugins/kdb/db2/libdb2/test/run.test" + (("/bin/cat") (string-append perl "/bin/perl")) + (("D/bin/sh") (string-append "D" (which "bash"))) + (("bindir=/bin/.") (string-append "bindir=" perl "/bin")))) + + ;; avoid service names since /etc/services is unavailable (substitute* "tests/resolve/Makefile" (("-p telnet") "-p 23")) - ;; avoid service names since /etc/services is unavailable - (apply check args))) - %standard-phases)))) + #t))))) (synopsis "MIT Kerberos 5") (description "Massachusetts Institute of Technology implementation of Kerberos. -- cgit v1.2.3 From ff45a00e798350676ca7a4cf1cac349cc0b4c1f6 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Sun, 8 Nov 2015 23:05:11 -0500 Subject: gnu: mit-krb5: Add fixes for CVE-2015-{2695,2696,2697,2698}. * gnu/packages/patches/mit-krb5-CVE-2015-2695-pt1.patch, gnu/packages/patches/mit-krb5-CVE-2015-2695-pt2.patch, gnu/packages/patches/mit-krb5-CVE-2015-2696.patch, gnu/packages/patches/mit-krb5-CVE-2015-2697.patch, gnu/packages/patches/mit-krb5-CVE-2015-2698-pt1.patch, gnu/packages/patches/mit-krb5-CVE-2015-2698-pt2.patch: New files. * gnu-system.am (dist_patch_DATA): Add them. * gnu/packages/mit-krb5.scm (mit-krb5)[native-inputs]: Add patches. --- gnu-system.am | 6 + gnu/packages/mit-krb5.scm | 14 +- .../patches/mit-krb5-CVE-2015-2695-pt1.patch | 569 ++++++++++++++++ .../patches/mit-krb5-CVE-2015-2695-pt2.patch | 65 ++ gnu/packages/patches/mit-krb5-CVE-2015-2696.patch | 736 +++++++++++++++++++++ gnu/packages/patches/mit-krb5-CVE-2015-2697.patch | 55 ++ .../patches/mit-krb5-CVE-2015-2698-pt1.patch | 43 ++ .../patches/mit-krb5-CVE-2015-2698-pt2.patch | 132 ++++ 8 files changed, 1619 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/mit-krb5-CVE-2015-2695-pt1.patch create mode 100644 gnu/packages/patches/mit-krb5-CVE-2015-2695-pt2.patch create mode 100644 gnu/packages/patches/mit-krb5-CVE-2015-2696.patch create mode 100644 gnu/packages/patches/mit-krb5-CVE-2015-2697.patch create mode 100644 gnu/packages/patches/mit-krb5-CVE-2015-2698-pt1.patch create mode 100644 gnu/packages/patches/mit-krb5-CVE-2015-2698-pt2.patch diff --git a/gnu-system.am b/gnu-system.am index 6cb37297f7..c80f08678d 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -586,6 +586,12 @@ dist_patch_DATA = \ gnu/packages/patches/mcron-install.patch \ gnu/packages/patches/mdadm-gcc-4.9-fix.patch \ gnu/packages/patches/mhash-keygen-test-segfault.patch \ + gnu/packages/patches/mit-krb5-CVE-2015-2695-pt1.patch \ + gnu/packages/patches/mit-krb5-CVE-2015-2695-pt2.patch \ + gnu/packages/patches/mit-krb5-CVE-2015-2696.patch \ + gnu/packages/patches/mit-krb5-CVE-2015-2697.patch \ + gnu/packages/patches/mit-krb5-CVE-2015-2698-pt1.patch \ + gnu/packages/patches/mit-krb5-CVE-2015-2698-pt2.patch \ gnu/packages/patches/mpc123-initialize-ao.patch \ gnu/packages/patches/mplayer2-theora-fix.patch \ gnu/packages/patches/module-init-tools-moduledir.patch \ diff --git a/gnu/packages/mit-krb5.scm b/gnu/packages/mit-krb5.scm index 76d8b2473e..16bef8d97d 100644 --- a/gnu/packages/mit-krb5.scm +++ b/gnu/packages/mit-krb5.scm @@ -42,7 +42,19 @@ (build-system gnu-build-system) (native-inputs `(("bison" ,bison) - ("perl" ,perl))) + ("perl" ,perl) + + ;; Include the patches as native-inputs. + ,@(map (lambda (label) + (let ((input-name (string-append "patch/" label)) + (file-name (string-append name "-" label ".patch"))) + `(,input-name ,(search-patch file-name)))) + '("CVE-2015-2695-pt1" + "CVE-2015-2695-pt2" + "CVE-2015-2696" + "CVE-2015-2697" + "CVE-2015-2698-pt1" + "CVE-2015-2698-pt2")))) (arguments `(#:modules ((ice-9 ftw) (ice-9 match) diff --git a/gnu/packages/patches/mit-krb5-CVE-2015-2695-pt1.patch b/gnu/packages/patches/mit-krb5-CVE-2015-2695-pt1.patch new file mode 100644 index 0000000000..0f5603e228 --- /dev/null +++ b/gnu/packages/patches/mit-krb5-CVE-2015-2695-pt1.patch @@ -0,0 +1,569 @@ +Copied from Debian. + +From b813d5811432faed844a2dfd3daecde914978f2c Mon Sep 17 00:00:00 2001 +From: Nicolas Williams +Date: Mon, 14 Sep 2015 12:27:52 -0400 +Subject: Fix SPNEGO context aliasing bugs [CVE-2015-2695] + +The SPNEGO mechanism currently replaces its context handle with the +mechanism context handle upon establishment, under the assumption that +most GSS functions are only called after context establishment. This +assumption is incorrect, and can lead to aliasing violations for some +programs. Maintain the SPNEGO context structure after context +establishment and refer to it in all GSS methods. Add initiate and +opened flags to the SPNEGO context structure for use in +gss_inquire_context() prior to context establishment. + +CVE-2015-2695: + +In MIT krb5 1.5 and later, applications which call +gss_inquire_context() on a partially-established SPNEGO context can +cause the GSS-API library to read from a pointer using the wrong type, +generally causing a process crash. This bug may go unnoticed, because +the most common SPNEGO authentication scenario establishes the context +after just one call to gss_accept_sec_context(). Java server +applications using the native JGSS provider are vulnerable to this +bug. A carefully crafted SPNEGO packet might allow the +gss_inquire_context() call to succeed with attacker-determined +results, but applications should not make access control decisions +based on gss_inquire_context() results prior to context establishment. + + CVSSv2 Vector: AV:N/AC:M/Au:N/C:N/I:N/A:C/E:POC/RL:OF/RC:C + +[ghudson@mit.edu: several bugfixes, style changes, and edge-case +behavior changes; commit message and CVE description] + +ticket: 8244 +target_version: 1.14 +tags: pullup + +(cherry picked from commit b51b33f2bc5d1497ddf5bd107f791c101695000d) +Patch-Category: upstream +--- + src/lib/gssapi/spnego/gssapiP_spnego.h | 2 + + src/lib/gssapi/spnego/spnego_mech.c | 254 ++++++++++++++++++++++++--------- + 2 files changed, 192 insertions(+), 64 deletions(-) + +diff --git a/src/lib/gssapi/spnego/gssapiP_spnego.h b/src/lib/gssapi/spnego/gssapiP_spnego.h +index bc23f56..8e05736 100644 +--- a/src/lib/gssapi/spnego/gssapiP_spnego.h ++++ b/src/lib/gssapi/spnego/gssapiP_spnego.h +@@ -102,6 +102,8 @@ typedef struct { + int firstpass; + int mech_complete; + int nego_done; ++ int initiate; ++ int opened; + OM_uint32 ctx_flags; + gss_name_t internal_name; + gss_OID actual_mech; +diff --git a/src/lib/gssapi/spnego/spnego_mech.c b/src/lib/gssapi/spnego/spnego_mech.c +index 6e39c37..a1072b0 100644 +--- a/src/lib/gssapi/spnego/spnego_mech.c ++++ b/src/lib/gssapi/spnego/spnego_mech.c +@@ -104,7 +104,7 @@ static OM_uint32 get_negotiable_mechs(OM_uint32 *, spnego_gss_cred_id_t, + gss_cred_usage_t, gss_OID_set *); + static void release_spnego_ctx(spnego_gss_ctx_id_t *); + static void check_spnego_options(spnego_gss_ctx_id_t); +-static spnego_gss_ctx_id_t create_spnego_ctx(void); ++static spnego_gss_ctx_id_t create_spnego_ctx(int); + static int put_mech_set(gss_OID_set mechSet, gss_buffer_t buf); + static int put_input_token(unsigned char **, gss_buffer_t, unsigned int); + static int put_mech_oid(unsigned char **, gss_OID_const, unsigned int); +@@ -442,7 +442,7 @@ check_spnego_options(spnego_gss_ctx_id_t spnego_ctx) + } + + static spnego_gss_ctx_id_t +-create_spnego_ctx(void) ++create_spnego_ctx(int initiate) + { + spnego_gss_ctx_id_t spnego_ctx = NULL; + spnego_ctx = (spnego_gss_ctx_id_t) +@@ -465,6 +465,8 @@ create_spnego_ctx(void) + spnego_ctx->mic_rcvd = 0; + spnego_ctx->mech_complete = 0; + spnego_ctx->nego_done = 0; ++ spnego_ctx->opened = 0; ++ spnego_ctx->initiate = initiate; + spnego_ctx->internal_name = GSS_C_NO_NAME; + spnego_ctx->actual_mech = GSS_C_NO_OID; + +@@ -630,7 +632,7 @@ init_ctx_new(OM_uint32 *minor_status, + OM_uint32 ret; + spnego_gss_ctx_id_t sc = NULL; + +- sc = create_spnego_ctx(); ++ sc = create_spnego_ctx(1); + if (sc == NULL) + return GSS_S_FAILURE; + +@@ -647,10 +649,7 @@ init_ctx_new(OM_uint32 *minor_status, + ret = GSS_S_FAILURE; + goto cleanup; + } +- /* +- * The actual context is not yet determined, set the output +- * context handle to refer to the spnego context itself. +- */ ++ + sc->ctx_handle = GSS_C_NO_CONTEXT; + *ctx = (gss_ctx_id_t)sc; + sc = NULL; +@@ -1091,16 +1090,11 @@ cleanup: + } + gss_release_buffer(&tmpmin, &mechtok_out); + if (ret == GSS_S_COMPLETE) { +- /* +- * Now, switch the output context to refer to the +- * negotiated mechanism's context. +- */ +- *context_handle = (gss_ctx_id_t)spnego_ctx->ctx_handle; ++ spnego_ctx->opened = 1; + if (actual_mech != NULL) + *actual_mech = spnego_ctx->actual_mech; + if (ret_flags != NULL) + *ret_flags = spnego_ctx->ctx_flags; +- release_spnego_ctx(&spnego_ctx); + } else if (ret != GSS_S_CONTINUE_NEEDED) { + if (spnego_ctx != NULL) { + gss_delete_sec_context(&tmpmin, +@@ -1344,7 +1338,7 @@ acc_ctx_hints(OM_uint32 *minor_status, + if (ret != GSS_S_COMPLETE) + goto cleanup; + +- sc = create_spnego_ctx(); ++ sc = create_spnego_ctx(0); + if (sc == NULL) { + ret = GSS_S_FAILURE; + goto cleanup; +@@ -1426,7 +1420,7 @@ acc_ctx_new(OM_uint32 *minor_status, + gss_release_buffer(&tmpmin, &sc->DER_mechTypes); + assert(mech_wanted != GSS_C_NO_OID); + } else +- sc = create_spnego_ctx(); ++ sc = create_spnego_ctx(0); + if (sc == NULL) { + ret = GSS_S_FAILURE; + *return_token = NO_TOKEN_SEND; +@@ -1809,13 +1803,12 @@ cleanup: + ret = GSS_S_FAILURE; + } + if (ret == GSS_S_COMPLETE) { +- *context_handle = (gss_ctx_id_t)sc->ctx_handle; ++ sc->opened = 1; + if (sc->internal_name != GSS_C_NO_NAME && + src_name != NULL) { + *src_name = sc->internal_name; + sc->internal_name = GSS_C_NO_NAME; + } +- release_spnego_ctx(&sc); + } else if (ret != GSS_S_CONTINUE_NEEDED) { + if (sc != NULL) { + gss_delete_sec_context(&tmpmin, &sc->ctx_handle, +@@ -2128,8 +2121,13 @@ spnego_gss_unwrap( + gss_qop_t *qop_state) + { + OM_uint32 ret; ++ spnego_gss_ctx_id_t sc = (spnego_gss_ctx_id_t)context_handle; ++ ++ if (sc->ctx_handle == GSS_C_NO_CONTEXT) ++ return (GSS_S_NO_CONTEXT); ++ + ret = gss_unwrap(minor_status, +- context_handle, ++ sc->ctx_handle, + input_message_buffer, + output_message_buffer, + conf_state, +@@ -2149,8 +2147,13 @@ spnego_gss_wrap( + gss_buffer_t output_message_buffer) + { + OM_uint32 ret; ++ spnego_gss_ctx_id_t sc = (spnego_gss_ctx_id_t)context_handle; ++ ++ if (sc->ctx_handle == GSS_C_NO_CONTEXT) ++ return (GSS_S_NO_CONTEXT); ++ + ret = gss_wrap(minor_status, +- context_handle, ++ sc->ctx_handle, + conf_req_flag, + qop_req, + input_message_buffer, +@@ -2167,8 +2170,14 @@ spnego_gss_process_context_token( + const gss_buffer_t token_buffer) + { + OM_uint32 ret; ++ spnego_gss_ctx_id_t sc = (spnego_gss_ctx_id_t)context_handle; ++ ++ /* SPNEGO doesn't have its own context tokens. */ ++ if (!sc->opened) ++ return (GSS_S_DEFECTIVE_TOKEN); ++ + ret = gss_process_context_token(minor_status, +- context_handle, ++ sc->ctx_handle, + token_buffer); + + return (ret); +@@ -2192,19 +2201,9 @@ spnego_gss_delete_sec_context( + if (*ctx == NULL) + return (GSS_S_COMPLETE); + +- /* +- * If this is still an SPNEGO mech, release it locally. +- */ +- if ((*ctx)->magic_num == SPNEGO_MAGIC_ID) { +- (void) gss_delete_sec_context(minor_status, +- &(*ctx)->ctx_handle, +- output_token); +- (void) release_spnego_ctx(ctx); +- } else { +- ret = gss_delete_sec_context(minor_status, +- context_handle, +- output_token); +- } ++ (void) gss_delete_sec_context(minor_status, &(*ctx)->ctx_handle, ++ output_token); ++ (void) release_spnego_ctx(ctx); + + return (ret); + } +@@ -2216,8 +2215,13 @@ spnego_gss_context_time( + OM_uint32 *time_rec) + { + OM_uint32 ret; ++ spnego_gss_ctx_id_t sc = (spnego_gss_ctx_id_t)context_handle; ++ ++ if (sc->ctx_handle == GSS_C_NO_CONTEXT) ++ return (GSS_S_NO_CONTEXT); ++ + ret = gss_context_time(minor_status, +- context_handle, ++ sc->ctx_handle, + time_rec); + return (ret); + } +@@ -2229,9 +2233,20 @@ spnego_gss_export_sec_context( + gss_buffer_t interprocess_token) + { + OM_uint32 ret; ++ spnego_gss_ctx_id_t sc = *(spnego_gss_ctx_id_t *)context_handle; ++ ++ /* We don't currently support exporting partially established ++ * contexts. */ ++ if (!sc->opened) ++ return GSS_S_UNAVAILABLE; ++ + ret = gss_export_sec_context(minor_status, +- context_handle, ++ &sc->ctx_handle, + interprocess_token); ++ if (sc->ctx_handle == GSS_C_NO_CONTEXT) { ++ release_spnego_ctx(&sc); ++ *context_handle = GSS_C_NO_CONTEXT; ++ } + return (ret); + } + +@@ -2241,11 +2256,12 @@ spnego_gss_import_sec_context( + const gss_buffer_t interprocess_token, + gss_ctx_id_t *context_handle) + { +- OM_uint32 ret; +- ret = gss_import_sec_context(minor_status, +- interprocess_token, +- context_handle); +- return (ret); ++ /* ++ * Until we implement partial context exports, there are no SPNEGO ++ * exported context tokens, only tokens for underlying mechs. So just ++ * return an error for now. ++ */ ++ return GSS_S_UNAVAILABLE; + } + #endif /* LEAN_CLIENT */ + +@@ -2262,16 +2278,48 @@ spnego_gss_inquire_context( + int *opened) + { + OM_uint32 ret = GSS_S_COMPLETE; ++ spnego_gss_ctx_id_t sc = (spnego_gss_ctx_id_t)context_handle; ++ ++ if (src_name != NULL) ++ *src_name = GSS_C_NO_NAME; ++ if (targ_name != NULL) ++ *targ_name = GSS_C_NO_NAME; ++ if (lifetime_rec != NULL) ++ *lifetime_rec = 0; ++ if (mech_type != NULL) ++ *mech_type = (gss_OID)gss_mech_spnego; ++ if (ctx_flags != NULL) ++ *ctx_flags = 0; ++ if (locally_initiated != NULL) ++ *locally_initiated = sc->initiate; ++ if (opened != NULL) ++ *opened = sc->opened; ++ ++ if (sc->ctx_handle != GSS_C_NO_CONTEXT) { ++ ret = gss_inquire_context(minor_status, sc->ctx_handle, ++ src_name, targ_name, lifetime_rec, ++ mech_type, ctx_flags, NULL, NULL); ++ } + +- ret = gss_inquire_context(minor_status, +- context_handle, +- src_name, +- targ_name, +- lifetime_rec, +- mech_type, +- ctx_flags, +- locally_initiated, +- opened); ++ if (!sc->opened) { ++ /* ++ * We are still doing SPNEGO negotiation, so report SPNEGO as ++ * the OID. After negotiation is complete we will report the ++ * underlying mechanism OID. ++ */ ++ if (mech_type != NULL) ++ *mech_type = (gss_OID)gss_mech_spnego; ++ ++ /* ++ * Remove flags we don't support with partially-established ++ * contexts. (Change this to keep GSS_C_TRANS_FLAG if we add ++ * support for exporting partial SPNEGO contexts.) ++ */ ++ if (ctx_flags != NULL) { ++ *ctx_flags &= ~GSS_C_PROT_READY_FLAG; ++ *ctx_flags &= ~GSS_C_TRANS_FLAG; ++ } ++ } + + return (ret); + } +@@ -2286,8 +2334,13 @@ spnego_gss_wrap_size_limit( + OM_uint32 *max_input_size) + { + OM_uint32 ret; ++ spnego_gss_ctx_id_t sc = (spnego_gss_ctx_id_t)context_handle; ++ ++ if (sc->ctx_handle == GSS_C_NO_CONTEXT) ++ return (GSS_S_NO_CONTEXT); ++ + ret = gss_wrap_size_limit(minor_status, +- context_handle, ++ sc->ctx_handle, + conf_req_flag, + qop_req, + req_output_size, +@@ -2304,8 +2357,13 @@ spnego_gss_get_mic( + gss_buffer_t message_token) + { + OM_uint32 ret; ++ spnego_gss_ctx_id_t sc = (spnego_gss_ctx_id_t)context_handle; ++ ++ if (sc->ctx_handle == GSS_C_NO_CONTEXT) ++ return (GSS_S_NO_CONTEXT); ++ + ret = gss_get_mic(minor_status, +- context_handle, ++ sc->ctx_handle, + qop_req, + message_buffer, + message_token); +@@ -2321,8 +2379,13 @@ spnego_gss_verify_mic( + gss_qop_t *qop_state) + { + OM_uint32 ret; ++ spnego_gss_ctx_id_t sc = (spnego_gss_ctx_id_t)context_handle; ++ ++ if (sc->ctx_handle == GSS_C_NO_CONTEXT) ++ return (GSS_S_NO_CONTEXT); ++ + ret = gss_verify_mic(minor_status, +- context_handle, ++ sc->ctx_handle, + msg_buffer, + token_buffer, + qop_state); +@@ -2337,8 +2400,14 @@ spnego_gss_inquire_sec_context_by_oid( + gss_buffer_set_t *data_set) + { + OM_uint32 ret; ++ spnego_gss_ctx_id_t sc = (spnego_gss_ctx_id_t)context_handle; ++ ++ /* There are no SPNEGO-specific OIDs for this function. */ ++ if (sc->ctx_handle == GSS_C_NO_CONTEXT) ++ return (GSS_S_UNAVAILABLE); ++ + ret = gss_inquire_sec_context_by_oid(minor_status, +- context_handle, ++ sc->ctx_handle, + desired_object, + data_set); + return (ret); +@@ -2407,8 +2476,15 @@ spnego_gss_set_sec_context_option( + const gss_buffer_t value) + { + OM_uint32 ret; ++ spnego_gss_ctx_id_t sc = (spnego_gss_ctx_id_t)*context_handle; ++ ++ /* There are no SPNEGO-specific OIDs for this function, and we cannot ++ * construct an empty SPNEGO context with it. */ ++ if (sc == NULL || sc->ctx_handle == GSS_C_NO_CONTEXT) ++ return (GSS_S_UNAVAILABLE); ++ + ret = gss_set_sec_context_option(minor_status, +- context_handle, ++ &sc->ctx_handle, + desired_object, + value); + return (ret); +@@ -2425,8 +2501,13 @@ spnego_gss_wrap_aead(OM_uint32 *minor_status, + gss_buffer_t output_message_buffer) + { + OM_uint32 ret; ++ spnego_gss_ctx_id_t sc = (spnego_gss_ctx_id_t)context_handle; ++ ++ if (sc->ctx_handle == GSS_C_NO_CONTEXT) ++ return (GSS_S_NO_CONTEXT); ++ + ret = gss_wrap_aead(minor_status, +- context_handle, ++ sc->ctx_handle, + conf_req_flag, + qop_req, + input_assoc_buffer, +@@ -2447,8 +2528,13 @@ spnego_gss_unwrap_aead(OM_uint32 *minor_status, + gss_qop_t *qop_state) + { + OM_uint32 ret; ++ spnego_gss_ctx_id_t sc = (spnego_gss_ctx_id_t)context_handle; ++ ++ if (sc->ctx_handle == GSS_C_NO_CONTEXT) ++ return (GSS_S_NO_CONTEXT); ++ + ret = gss_unwrap_aead(minor_status, +- context_handle, ++ sc->ctx_handle, + input_message_buffer, + input_assoc_buffer, + output_payload_buffer, +@@ -2467,8 +2553,13 @@ spnego_gss_wrap_iov(OM_uint32 *minor_status, + int iov_count) + { + OM_uint32 ret; ++ spnego_gss_ctx_id_t sc = (spnego_gss_ctx_id_t)context_handle; ++ ++ if (sc->ctx_handle == GSS_C_NO_CONTEXT) ++ return (GSS_S_NO_CONTEXT); ++ + ret = gss_wrap_iov(minor_status, +- context_handle, ++ sc->ctx_handle, + conf_req_flag, + qop_req, + conf_state, +@@ -2486,8 +2577,13 @@ spnego_gss_unwrap_iov(OM_uint32 *minor_status, + int iov_count) + { + OM_uint32 ret; ++ spnego_gss_ctx_id_t sc = (spnego_gss_ctx_id_t)context_handle; ++ ++ if (sc->ctx_handle == GSS_C_NO_CONTEXT) ++ return (GSS_S_NO_CONTEXT); ++ + ret = gss_unwrap_iov(minor_status, +- context_handle, ++ sc->ctx_handle, + conf_state, + qop_state, + iov, +@@ -2505,8 +2601,13 @@ spnego_gss_wrap_iov_length(OM_uint32 *minor_status, + int iov_count) + { + OM_uint32 ret; ++ spnego_gss_ctx_id_t sc = (spnego_gss_ctx_id_t)context_handle; ++ ++ if (sc->ctx_handle == GSS_C_NO_CONTEXT) ++ return (GSS_S_NO_CONTEXT); ++ + ret = gss_wrap_iov_length(minor_status, +- context_handle, ++ sc->ctx_handle, + conf_req_flag, + qop_req, + conf_state, +@@ -2523,8 +2624,13 @@ spnego_gss_complete_auth_token( + gss_buffer_t input_message_buffer) + { + OM_uint32 ret; ++ spnego_gss_ctx_id_t sc = (spnego_gss_ctx_id_t)context_handle; ++ ++ if (sc->ctx_handle == GSS_C_NO_CONTEXT) ++ return (GSS_S_UNAVAILABLE); ++ + ret = gss_complete_auth_token(minor_status, +- context_handle, ++ sc->ctx_handle, + input_message_buffer); + return (ret); + } +@@ -2776,8 +2882,13 @@ spnego_gss_pseudo_random(OM_uint32 *minor_status, + gss_buffer_t prf_out) + { + OM_uint32 ret; ++ spnego_gss_ctx_id_t sc = (spnego_gss_ctx_id_t)context; ++ ++ if (sc->ctx_handle == GSS_C_NO_CONTEXT) ++ return (GSS_S_NO_CONTEXT); ++ + ret = gss_pseudo_random(minor_status, +- context, ++ sc->ctx_handle, + prf_key, + prf_in, + desired_output_len, +@@ -2918,7 +3029,12 @@ spnego_gss_get_mic_iov(OM_uint32 *minor_status, gss_ctx_id_t context_handle, + gss_qop_t qop_req, gss_iov_buffer_desc *iov, + int iov_count) + { +- return gss_get_mic_iov(minor_status, context_handle, qop_req, iov, ++ spnego_gss_ctx_id_t sc = (spnego_gss_ctx_id_t)context_handle; ++ ++ if (sc->ctx_handle == GSS_C_NO_CONTEXT) ++ return (GSS_S_NO_CONTEXT); ++ ++ return gss_get_mic_iov(minor_status, sc->ctx_handle, qop_req, iov, + iov_count); + } + +@@ -2927,7 +3043,12 @@ spnego_gss_verify_mic_iov(OM_uint32 *minor_status, gss_ctx_id_t context_handle, + gss_qop_t *qop_state, gss_iov_buffer_desc *iov, + int iov_count) + { +- return gss_verify_mic_iov(minor_status, context_handle, qop_state, iov, ++ spnego_gss_ctx_id_t sc = (spnego_gss_ctx_id_t)context_handle; ++ ++ if (sc->ctx_handle == GSS_C_NO_CONTEXT) ++ return (GSS_S_NO_CONTEXT); ++ ++ return gss_verify_mic_iov(minor_status, sc->ctx_handle, qop_state, iov, + iov_count); + } + +@@ -2936,7 +3057,12 @@ spnego_gss_get_mic_iov_length(OM_uint32 *minor_status, + gss_ctx_id_t context_handle, gss_qop_t qop_req, + gss_iov_buffer_desc *iov, int iov_count) + { +- return gss_get_mic_iov_length(minor_status, context_handle, qop_req, iov, ++ spnego_gss_ctx_id_t sc = (spnego_gss_ctx_id_t)context_handle; ++ ++ if (sc->ctx_handle == GSS_C_NO_CONTEXT) ++ return (GSS_S_NO_CONTEXT); ++ ++ return gss_get_mic_iov_length(minor_status, sc->ctx_handle, qop_req, iov, + iov_count); + } + diff --git a/gnu/packages/patches/mit-krb5-CVE-2015-2695-pt2.patch b/gnu/packages/patches/mit-krb5-CVE-2015-2695-pt2.patch new file mode 100644 index 0000000000..aa9fcfa0dd --- /dev/null +++ b/gnu/packages/patches/mit-krb5-CVE-2015-2695-pt2.patch @@ -0,0 +1,65 @@ +Copied from Debian. + +From 18c512ebdcc5cacc777e9dbcc6817f83c301ad93 Mon Sep 17 00:00:00 2001 +From: Greg Hudson +Date: Wed, 4 Nov 2015 21:29:10 -0500 +Subject: Fix SPNEGO context import + +The patches for CVE-2015-2695 did not implement a SPNEGO +gss_import_sec_context() function, under the erroneous belief than an +exported SPNEGO context would be tagged with the underlying context +mechanism. Implement it now to allow SPNEGO contexts to be +successfully exported and imported after establishment. + +ticket: 8273 +(cherry picked from commit fbb565f913c52eba9bea82f1694aba7a8c90e93d) + +Patch-Category: upstream +--- + src/lib/gssapi/spnego/spnego_mech.c | 33 +++++++++++++++++++++++++++------ + 1 file changed, 27 insertions(+), 6 deletions(-) + +diff --git a/src/lib/gssapi/spnego/spnego_mech.c b/src/lib/gssapi/spnego/spnego_mech.c +index a1072b0..02284a1 100644 +--- a/src/lib/gssapi/spnego/spnego_mech.c ++++ b/src/lib/gssapi/spnego/spnego_mech.c +@@ -2256,12 +2256,33 @@ spnego_gss_import_sec_context( + const gss_buffer_t interprocess_token, + gss_ctx_id_t *context_handle) + { +- /* +- * Until we implement partial context exports, there are no SPNEGO +- * exported context tokens, only tokens for underlying mechs. So just +- * return an error for now. +- */ +- return GSS_S_UNAVAILABLE; ++ OM_uint32 ret, tmpmin; ++ gss_ctx_id_t mctx; ++ spnego_gss_ctx_id_t sc; ++ int initiate, opened; ++ ++ ret = gss_import_sec_context(minor_status, interprocess_token, &mctx); ++ if (ret != GSS_S_COMPLETE) ++ return ret; ++ ++ ret = gss_inquire_context(&tmpmin, mctx, NULL, NULL, NULL, NULL, NULL, ++ &initiate, &opened); ++ if (ret != GSS_S_COMPLETE || !opened) { ++ /* We don't currently support importing partially established ++ * contexts. */ ++ (void) gss_delete_sec_context(&tmpmin, &mctx, GSS_C_NO_BUFFER); ++ return GSS_S_FAILURE; ++ } ++ ++ sc = create_spnego_ctx(initiate); ++ if (sc == NULL) { ++ (void) gss_delete_sec_context(&tmpmin, &mctx, GSS_C_NO_BUFFER); ++ return GSS_S_FAILURE; ++ } ++ sc->ctx_handle = mctx; ++ sc->opened = 1; ++ *context_handle = (gss_ctx_id_t)sc; ++ return GSS_S_COMPLETE; + } + #endif /* LEAN_CLIENT */ + diff --git a/gnu/packages/patches/mit-krb5-CVE-2015-2696.patch b/gnu/packages/patches/mit-krb5-CVE-2015-2696.patch new file mode 100644 index 0000000000..7b4b1d71ab --- /dev/null +++ b/gnu/packages/patches/mit-krb5-CVE-2015-2696.patch @@ -0,0 +1,736 @@ +Copied from Debian. + +From ebea85358bc72ec20c53130d83acb93f95853b76 Mon Sep 17 00:00:00 2001 +From: Nicolas Williams +Date: Mon, 14 Sep 2015 12:28:36 -0400 +Subject: Fix IAKERB context aliasing bugs [CVE-2015-2696] + +The IAKERB mechanism currently replaces its context handle with the +krb5 mechanism handle upon establishment, under the assumption that +most GSS functions are only called after context establishment. This +assumption is incorrect, and can lead to aliasing violations for some +programs. Maintain the IAKERB context structure after context +establishment and add new IAKERB entry points to refer to it with that +type. Add initiate and established flags to the IAKERB context +structure for use in gss_inquire_context() prior to context +establishment. + +CVE-2015-2696: + +In MIT krb5 1.9 and later, applications which call +gss_inquire_context() on a partially-established IAKERB context can +cause the GSS-API library to read from a pointer using the wrong type, +generally causing a process crash. Java server applications using the +native JGSS provider are vulnerable to this bug. A carefully crafted +IAKERB packet might allow the gss_inquire_context() call to succeed +with attacker-determined results, but applications should not make +access control decisions based on gss_inquire_context() results prior +to context establishment. + + CVSSv2 Vector: AV:N/AC:M/Au:N/C:N/I:N/A:C/E:POC/RL:OF/RC:C + +[ghudson@mit.edu: several bugfixes, style changes, and edge-case +behavior changes; commit message and CVE description] + +ticket: 8244 +target_version: 1.14 +tags: pullup + +(cherry picked from commit e04f0283516e80d2f93366e0d479d13c9b5c8c2a) +Patch-Category: upstream +--- + src/lib/gssapi/krb5/gssapiP_krb5.h | 114 ++++++++++++ + src/lib/gssapi/krb5/gssapi_krb5.c | 105 +++++++++-- + src/lib/gssapi/krb5/iakerb.c | 351 +++++++++++++++++++++++++++++++++---- + 3 files changed, 529 insertions(+), 41 deletions(-) + +diff --git a/src/lib/gssapi/krb5/gssapiP_krb5.h b/src/lib/gssapi/krb5/gssapiP_krb5.h +index a0e8625..05dc321 100644 +--- a/src/lib/gssapi/krb5/gssapiP_krb5.h ++++ b/src/lib/gssapi/krb5/gssapiP_krb5.h +@@ -620,6 +620,21 @@ OM_uint32 KRB5_CALLCONV krb5_gss_accept_sec_context_ext + ); + #endif /* LEAN_CLIENT */ + ++OM_uint32 KRB5_CALLCONV krb5_gss_inquire_sec_context_by_oid ++(OM_uint32*, /* minor_status */ ++ const gss_ctx_id_t, ++ /* context_handle */ ++ const gss_OID, /* desired_object */ ++ gss_buffer_set_t* /* data_set */ ++); ++ ++OM_uint32 KRB5_CALLCONV krb5_gss_set_sec_context_option ++(OM_uint32*, /* minor_status */ ++ gss_ctx_id_t*, /* context_handle */ ++ const gss_OID, /* desired_object */ ++ const gss_buffer_t/* value */ ++); ++ + OM_uint32 KRB5_CALLCONV krb5_gss_process_context_token + (OM_uint32*, /* minor_status */ + gss_ctx_id_t, /* context_handle */ +@@ -1301,6 +1316,105 @@ OM_uint32 KRB5_CALLCONV + krb5_gss_import_cred(OM_uint32 *minor_status, gss_buffer_t token, + gss_cred_id_t *cred_handle); + ++OM_uint32 KRB5_CALLCONV ++iakerb_gss_process_context_token(OM_uint32 *minor_status, ++ const gss_ctx_id_t context_handle, ++ const gss_buffer_t token_buffer); ++ ++OM_uint32 KRB5_CALLCONV ++iakerb_gss_context_time(OM_uint32 *minor_status, gss_ctx_id_t context_handle, ++ OM_uint32 *time_rec); ++ ++OM_uint32 KRB5_CALLCONV ++iakerb_gss_inquire_context(OM_uint32 *minor_status, ++ gss_ctx_id_t context_handle, gss_name_t *src_name, ++ gss_name_t *targ_name, OM_uint32 *lifetime_rec, ++ gss_OID *mech_type, OM_uint32 *ctx_flags, ++ int *locally_initiated, int *opened); ++ ++OM_uint32 KRB5_CALLCONV ++iakerb_gss_get_mic(OM_uint32 *minor_status, gss_ctx_id_t context_handle, ++ gss_qop_t qop_req, gss_buffer_t message_buffer, ++ gss_buffer_t message_token); ++ ++OM_uint32 KRB5_CALLCONV ++iakerb_gss_get_mic_iov(OM_uint32 *minor_status, gss_ctx_id_t context_handle, ++ gss_qop_t qop_req, gss_iov_buffer_desc *iov, ++ int iov_count); ++ ++OM_uint32 KRB5_CALLCONV ++iakerb_gss_get_mic_iov_length(OM_uint32 *minor_status, ++ gss_ctx_id_t context_handle, gss_qop_t qop_req, ++ gss_iov_buffer_desc *iov, int iov_count); ++ ++OM_uint32 KRB5_CALLCONV ++iakerb_gss_verify_mic(OM_uint32 *minor_status, gss_ctx_id_t context_handle, ++ gss_buffer_t msg_buffer, gss_buffer_t token_buffer, ++ gss_qop_t *qop_state); ++ ++OM_uint32 KRB5_CALLCONV ++iakerb_gss_verify_mic_iov(OM_uint32 *minor_status, gss_ctx_id_t context_handle, ++ gss_qop_t *qop_state, gss_iov_buffer_desc *iov, ++ int iov_count); ++ ++OM_uint32 KRB5_CALLCONV ++iakerb_gss_wrap(OM_uint32 *minor_status, gss_ctx_id_t context_handle, ++ int conf_req_flag, gss_qop_t qop_req, ++ gss_buffer_t input_message_buffer, int *conf_state, ++ gss_buffer_t output_message_buffer); ++ ++OM_uint32 KRB5_CALLCONV ++iakerb_gss_wrap_iov(OM_uint32 *minor_status, gss_ctx_id_t context_handle, ++ int conf_req_flag, gss_qop_t qop_req, int *conf_state, ++ gss_iov_buffer_desc *iov, int iov_count); ++ ++OM_uint32 KRB5_CALLCONV ++iakerb_gss_wrap_iov_length(OM_uint32 *minor_status, ++ gss_ctx_id_t context_handle, int conf_req_flag, ++ gss_qop_t qop_req, int *conf_state, ++ gss_iov_buffer_desc *iov, int iov_count); ++ ++OM_uint32 KRB5_CALLCONV ++iakerb_gss_unwrap(OM_uint32 *minor_status, gss_ctx_id_t context_handle, ++ gss_buffer_t input_message_buffer, ++ gss_buffer_t output_message_buffer, int *conf_state, ++ gss_qop_t *qop_state); ++ ++OM_uint32 KRB5_CALLCONV ++iakerb_gss_unwrap_iov(OM_uint32 *minor_status, gss_ctx_id_t context_handle, ++ int *conf_state, gss_qop_t *qop_state, ++ gss_iov_buffer_desc *iov, int iov_count); ++ ++OM_uint32 KRB5_CALLCONV ++iakerb_gss_wrap_size_limit(OM_uint32 *minor_status, ++ gss_ctx_id_t context_handle, int conf_req_flag, ++ gss_qop_t qop_req, OM_uint32 req_output_size, ++ OM_uint32 *max_input_size); ++ ++#ifndef LEAN_CLIENT ++OM_uint32 KRB5_CALLCONV ++iakerb_gss_export_sec_context(OM_uint32 *minor_status, ++ gss_ctx_id_t *context_handle, ++ gss_buffer_t interprocess_token); ++#endif /* LEAN_CLIENT */ ++ ++OM_uint32 KRB5_CALLCONV ++iakerb_gss_inquire_sec_context_by_oid(OM_uint32 *minor_status, ++ const gss_ctx_id_t context_handle, ++ const gss_OID desired_object, ++ gss_buffer_set_t *data_set); ++ ++OM_uint32 KRB5_CALLCONV ++iakerb_gss_set_sec_context_option(OM_uint32 *minor_status, ++ gss_ctx_id_t *context_handle, ++ const gss_OID desired_object, ++ const gss_buffer_t value); ++ ++OM_uint32 KRB5_CALLCONV ++iakerb_gss_pseudo_random(OM_uint32 *minor_status, gss_ctx_id_t context_handle, ++ int prf_key, const gss_buffer_t prf_in, ++ ssize_t desired_output_len, gss_buffer_t prf_out); ++ + /* Magic string to identify exported krb5 GSS credentials. Increment this if + * the format changes. */ + #define CRED_EXPORT_MAGIC "K5C1" +diff --git a/src/lib/gssapi/krb5/gssapi_krb5.c b/src/lib/gssapi/krb5/gssapi_krb5.c +index 77b7fff..9a23656 100644 +--- a/src/lib/gssapi/krb5/gssapi_krb5.c ++++ b/src/lib/gssapi/krb5/gssapi_krb5.c +@@ -345,7 +345,7 @@ static struct { + } + }; + +-static OM_uint32 KRB5_CALLCONV ++OM_uint32 KRB5_CALLCONV + krb5_gss_inquire_sec_context_by_oid (OM_uint32 *minor_status, + const gss_ctx_id_t context_handle, + const gss_OID desired_object, +@@ -459,7 +459,7 @@ static struct { + }; + #endif + +-static OM_uint32 KRB5_CALLCONV ++OM_uint32 KRB5_CALLCONV + krb5_gss_set_sec_context_option (OM_uint32 *minor_status, + gss_ctx_id_t *context_handle, + const gss_OID desired_object, +@@ -904,20 +904,103 @@ static struct gss_config krb5_mechanism = { + krb5_gss_get_mic_iov_length, + }; + ++/* Functions which use security contexts or acquire creds are IAKERB-specific; ++ * other functions can borrow from the krb5 mech. */ ++static struct gss_config iakerb_mechanism = { ++ { GSS_MECH_KRB5_OID_LENGTH, GSS_MECH_KRB5_OID }, ++ NULL, ++ iakerb_gss_acquire_cred, ++ krb5_gss_release_cred, ++ iakerb_gss_init_sec_context, ++#ifdef LEAN_CLIENT ++ NULL, ++#else ++ iakerb_gss_accept_sec_context, ++#endif ++ iakerb_gss_process_context_token, ++ iakerb_gss_delete_sec_context, ++ iakerb_gss_context_time, ++ iakerb_gss_get_mic, ++ iakerb_gss_verify_mic, ++#if defined(IOV_SHIM_EXERCISE_WRAP) || defined(IOV_SHIM_EXERCISE) ++ NULL, ++#else ++ iakerb_gss_wrap, ++#endif ++#if defined(IOV_SHIM_EXERCISE_UNWRAP) || defined(IOV_SHIM_EXERCISE) ++ NULL, ++#else ++ iakerb_gss_unwrap, ++#endif ++ krb5_gss_display_status, ++ krb5_gss_indicate_mechs, ++ krb5_gss_compare_name, ++ krb5_gss_display_name, ++ krb5_gss_import_name, ++ krb5_gss_release_name, ++ krb5_gss_inquire_cred, ++ NULL, /* add_cred */ ++#ifdef LEAN_CLIENT ++ NULL, ++ NULL, ++#else ++ iakerb_gss_export_sec_context, ++ NULL, ++#endif ++ krb5_gss_inquire_cred_by_mech, ++ krb5_gss_inquire_names_for_mech, ++ iakerb_gss_inquire_context, ++ krb5_gss_internal_release_oid, ++ iakerb_gss_wrap_size_limit, ++ krb5_gss_localname, ++ krb5_gss_authorize_localname, ++ krb5_gss_export_name, ++ krb5_gss_duplicate_name, ++ krb5_gss_store_cred, ++ iakerb_gss_inquire_sec_context_by_oid, ++ krb5_gss_inquire_cred_by_oid, ++ iakerb_gss_set_sec_context_option, ++ krb5_gssspi_set_cred_option, ++ krb5_gssspi_mech_invoke, ++ NULL, /* wrap_aead */ ++ NULL, /* unwrap_aead */ ++ iakerb_gss_wrap_iov, ++ iakerb_gss_unwrap_iov, ++ iakerb_gss_wrap_iov_length, ++ NULL, /* complete_auth_token */ ++ NULL, /* acquire_cred_impersonate_name */ ++ NULL, /* add_cred_impersonate_name */ ++ NULL, /* display_name_ext */ ++ krb5_gss_inquire_name, ++ krb5_gss_get_name_attribute, ++ krb5_gss_set_name_attribute, ++ krb5_gss_delete_name_attribute, ++ krb5_gss_export_name_composite, ++ krb5_gss_map_name_to_any, ++ krb5_gss_release_any_name_mapping, ++ iakerb_gss_pseudo_random, ++ NULL, /* set_neg_mechs */ ++ krb5_gss_inquire_saslname_for_mech, ++ krb5_gss_inquire_mech_for_saslname, ++ krb5_gss_inquire_attrs_for_mech, ++ krb5_gss_acquire_cred_from, ++ krb5_gss_store_cred_into, ++ iakerb_gss_acquire_cred_with_password, ++ krb5_gss_export_cred, ++ krb5_gss_import_cred, ++ NULL, /* import_sec_context_by_mech */ ++ NULL, /* import_name_by_mech */ ++ NULL, /* import_cred_by_mech */ ++ iakerb_gss_get_mic_iov, ++ iakerb_gss_verify_mic_iov, ++ iakerb_gss_get_mic_iov_length, ++}; ++ + #ifdef _GSS_STATIC_LINK + #include "mglueP.h" + static int gss_iakerbmechglue_init(void) + { + struct gss_mech_config mech_iakerb; +- struct gss_config iakerb_mechanism = krb5_mechanism; +- +- /* IAKERB mechanism mirrors krb5, but with different context SPIs */ +- iakerb_mechanism.gss_accept_sec_context = iakerb_gss_accept_sec_context; +- iakerb_mechanism.gss_init_sec_context = iakerb_gss_init_sec_context; +- iakerb_mechanism.gss_delete_sec_context = iakerb_gss_delete_sec_context; +- iakerb_mechanism.gss_acquire_cred = iakerb_gss_acquire_cred; +- iakerb_mechanism.gssspi_acquire_cred_with_password +- = iakerb_gss_acquire_cred_with_password; + + memset(&mech_iakerb, 0, sizeof(mech_iakerb)); + mech_iakerb.mech = &iakerb_mechanism; +diff --git a/src/lib/gssapi/krb5/iakerb.c b/src/lib/gssapi/krb5/iakerb.c +index f30de32..4662bd9 100644 +--- a/src/lib/gssapi/krb5/iakerb.c ++++ b/src/lib/gssapi/krb5/iakerb.c +@@ -47,6 +47,8 @@ struct _iakerb_ctx_id_rec { + gss_ctx_id_t gssc; + krb5_data conv; /* conversation for checksumming */ + unsigned int count; /* number of round trips */ ++ int initiate; ++ int established; + krb5_get_init_creds_opt *gic_opts; + }; + +@@ -695,7 +697,7 @@ cleanup: + * Allocate and initialise an IAKERB context + */ + static krb5_error_code +-iakerb_alloc_context(iakerb_ctx_id_t *pctx) ++iakerb_alloc_context(iakerb_ctx_id_t *pctx, int initiate) + { + iakerb_ctx_id_t ctx; + krb5_error_code code; +@@ -709,6 +711,8 @@ iakerb_alloc_context(iakerb_ctx_id_t *pctx) + ctx->magic = KG_IAKERB_CONTEXT; + ctx->state = IAKERB_AS_REQ; + ctx->count = 0; ++ ctx->initiate = initiate; ++ ctx->established = 0; + + code = krb5_gss_init_context(&ctx->k5c); + if (code != 0) +@@ -732,7 +736,7 @@ iakerb_gss_delete_sec_context(OM_uint32 *minor_status, + gss_ctx_id_t *context_handle, + gss_buffer_t output_token) + { +- OM_uint32 major_status = GSS_S_COMPLETE; ++ iakerb_ctx_id_t iakerb_ctx = (iakerb_ctx_id_t)*context_handle; + + if (output_token != GSS_C_NO_BUFFER) { + output_token->length = 0; +@@ -740,23 +744,10 @@ iakerb_gss_delete_sec_context(OM_uint32 *minor_status, + } + + *minor_status = 0; ++ *context_handle = GSS_C_NO_CONTEXT; ++ iakerb_release_context(iakerb_ctx); + +- if (*context_handle != GSS_C_NO_CONTEXT) { +- iakerb_ctx_id_t iakerb_ctx = (iakerb_ctx_id_t)*context_handle; +- +- if (iakerb_ctx->magic == KG_IAKERB_CONTEXT) { +- iakerb_release_context(iakerb_ctx); +- *context_handle = GSS_C_NO_CONTEXT; +- } else { +- assert(iakerb_ctx->magic == KG_CONTEXT); +- +- major_status = krb5_gss_delete_sec_context(minor_status, +- context_handle, +- output_token); +- } +- } +- +- return major_status; ++ return GSS_S_COMPLETE; + } + + static krb5_boolean +@@ -802,7 +793,7 @@ iakerb_gss_accept_sec_context(OM_uint32 *minor_status, + int initialContextToken = (*context_handle == GSS_C_NO_CONTEXT); + + if (initialContextToken) { +- code = iakerb_alloc_context(&ctx); ++ code = iakerb_alloc_context(&ctx, 0); + if (code != 0) + goto cleanup; + +@@ -854,11 +845,8 @@ iakerb_gss_accept_sec_context(OM_uint32 *minor_status, + time_rec, + delegated_cred_handle, + &exts); +- if (major_status == GSS_S_COMPLETE) { +- *context_handle = ctx->gssc; +- ctx->gssc = NULL; +- iakerb_release_context(ctx); +- } ++ if (major_status == GSS_S_COMPLETE) ++ ctx->established = 1; + if (mech_type != NULL) + *mech_type = (gss_OID)gss_mech_krb5; + } +@@ -897,7 +885,7 @@ iakerb_gss_init_sec_context(OM_uint32 *minor_status, + int initialContextToken = (*context_handle == GSS_C_NO_CONTEXT); + + if (initialContextToken) { +- code = iakerb_alloc_context(&ctx); ++ code = iakerb_alloc_context(&ctx, 1); + if (code != 0) { + *minor_status = code; + goto cleanup; +@@ -983,11 +971,8 @@ iakerb_gss_init_sec_context(OM_uint32 *minor_status, + ret_flags, + time_rec, + &exts); +- if (major_status == GSS_S_COMPLETE) { +- *context_handle = ctx->gssc; +- ctx->gssc = GSS_C_NO_CONTEXT; +- iakerb_release_context(ctx); +- } ++ if (major_status == GSS_S_COMPLETE) ++ ctx->established = 1; + if (actual_mech_type != NULL) + *actual_mech_type = (gss_OID)gss_mech_krb5; + } else { +@@ -1010,3 +995,309 @@ cleanup: + + return major_status; + } ++ ++OM_uint32 KRB5_CALLCONV ++iakerb_gss_unwrap(OM_uint32 *minor_status, gss_ctx_id_t context_handle, ++ gss_buffer_t input_message_buffer, ++ gss_buffer_t output_message_buffer, int *conf_state, ++ gss_qop_t *qop_state) ++{ ++ iakerb_ctx_id_t ctx = (iakerb_ctx_id_t)context_handle; ++ ++ if (ctx->gssc == GSS_C_NO_CONTEXT) ++ return GSS_S_NO_CONTEXT; ++ ++ return krb5_gss_unwrap(minor_status, ctx->gssc, input_message_buffer, ++ output_message_buffer, conf_state, qop_state); ++} ++ ++OM_uint32 KRB5_CALLCONV ++iakerb_gss_wrap(OM_uint32 *minor_status, gss_ctx_id_t context_handle, ++ int conf_req_flag, gss_qop_t qop_req, ++ gss_buffer_t input_message_buffer, int *conf_state, ++ gss_buffer_t output_message_buffer) ++{ ++ iakerb_ctx_id_t ctx = (iakerb_ctx_id_t)context_handle; ++ ++ if (ctx->gssc == GSS_C_NO_CONTEXT) ++ return GSS_S_NO_CONTEXT; ++ ++ return krb5_gss_wrap(minor_status, ctx->gssc, conf_req_flag, qop_req, ++ input_message_buffer, conf_state, ++ output_message_buffer); ++} ++ ++OM_uint32 KRB5_CALLCONV ++iakerb_gss_process_context_token(OM_uint32 *minor_status, ++ const gss_ctx_id_t context_handle, ++ const gss_buffer_t token_buffer) ++{ ++ iakerb_ctx_id_t ctx = (iakerb_ctx_id_t)context_handle; ++ ++ if (ctx->gssc == GSS_C_NO_CONTEXT) ++ return GSS_S_DEFECTIVE_TOKEN; ++ ++ return krb5_gss_process_context_token(minor_status, ctx->gssc, ++ token_buffer); ++} ++ ++OM_uint32 KRB5_CALLCONV ++iakerb_gss_context_time(OM_uint32 *minor_status, gss_ctx_id_t context_handle, ++ OM_uint32 *time_rec) ++{ ++ iakerb_ctx_id_t ctx = (iakerb_ctx_id_t)context_handle; ++ ++ if (ctx->gssc == GSS_C_NO_CONTEXT) ++ return GSS_S_NO_CONTEXT; ++ ++ return krb5_gss_context_time(minor_status, ctx->gssc, time_rec); ++} ++ ++#ifndef LEAN_CLIENT ++ ++OM_uint32 KRB5_CALLCONV ++iakerb_gss_export_sec_context(OM_uint32 *minor_status, ++ gss_ctx_id_t *context_handle, ++ gss_buffer_t interprocess_token) ++{ ++ OM_uint32 maj; ++ iakerb_ctx_id_t ctx = (iakerb_ctx_id_t)context_handle; ++ ++ /* We don't currently support exporting partially established contexts. */ ++ if (!ctx->established) ++ return GSS_S_UNAVAILABLE; ++ ++ maj = krb5_gss_export_sec_context(minor_status, &ctx->gssc, ++ interprocess_token); ++ if (ctx->gssc == GSS_C_NO_CONTEXT) { ++ iakerb_release_context(ctx); ++ *context_handle = GSS_C_NO_CONTEXT; ++ } ++ return maj; ++} ++ ++/* ++ * Until we implement partial context exports, there are no SPNEGO exported ++ * context tokens, only tokens for the underlying krb5 context. So we do not ++ * need to implement an iakerb_gss_import_sec_context() yet; it would be ++ * unreachable except via a manually constructed token. ++ */ ++ ++#endif /* LEAN_CLIENT */ ++ ++OM_uint32 KRB5_CALLCONV ++iakerb_gss_inquire_context(OM_uint32 *minor_status, ++ gss_ctx_id_t context_handle, gss_name_t *src_name, ++ gss_name_t *targ_name, OM_uint32 *lifetime_rec, ++ gss_OID *mech_type, OM_uint32 *ctx_flags, ++ int *initiate, int *opened) ++{ ++ OM_uint32 ret; ++ iakerb_ctx_id_t ctx = (iakerb_ctx_id_t)context_handle; ++ ++ if (src_name != NULL) ++ *src_name = GSS_C_NO_NAME; ++ if (targ_name != NULL) ++ *targ_name = GSS_C_NO_NAME; ++ if (lifetime_rec != NULL) ++ *lifetime_rec = 0; ++ if (mech_type != NULL) ++ *mech_type = (gss_OID)gss_mech_iakerb; ++ if (ctx_flags != NULL) ++ *ctx_flags = 0; ++ if (initiate != NULL) ++ *initiate = ctx->initiate; ++ if (opened != NULL) ++ *opened = ctx->established; ++ ++ if (ctx->gssc == GSS_C_NO_CONTEXT) ++ return GSS_S_COMPLETE; ++ ++ ret = krb5_gss_inquire_context(minor_status, ctx->gssc, src_name, ++ targ_name, lifetime_rec, mech_type, ++ ctx_flags, initiate, opened); ++ ++ if (!ctx->established) { ++ /* Report IAKERB as the mech OID until the context is established. */ ++ if (mech_type != NULL) ++ *mech_type = (gss_OID)gss_mech_iakerb; ++ ++ /* We don't support exporting partially-established contexts. */ ++ if (ctx_flags != NULL) ++ *ctx_flags &= ~GSS_C_TRANS_FLAG; ++ } ++ ++ return ret; ++} ++ ++OM_uint32 KRB5_CALLCONV ++iakerb_gss_wrap_size_limit(OM_uint32 *minor_status, ++ gss_ctx_id_t context_handle, int conf_req_flag, ++ gss_qop_t qop_req, OM_uint32 req_output_size, ++ OM_uint32 *max_input_size) ++{ ++ iakerb_ctx_id_t ctx = (iakerb_ctx_id_t)context_handle; ++ ++ if (ctx->gssc == GSS_C_NO_CONTEXT) ++ return GSS_S_NO_CONTEXT; ++ ++ return krb5_gss_wrap_size_limit(minor_status, ctx->gssc, conf_req_flag, ++ qop_req, req_output_size, max_input_size); ++} ++ ++OM_uint32 KRB5_CALLCONV ++iakerb_gss_get_mic(OM_uint32 *minor_status, gss_ctx_id_t context_handle, ++ gss_qop_t qop_req, gss_buffer_t message_buffer, ++ gss_buffer_t message_token) ++{ ++ iakerb_ctx_id_t ctx = (iakerb_ctx_id_t)context_handle; ++ ++ if (ctx->gssc == GSS_C_NO_CONTEXT) ++ return GSS_S_NO_CONTEXT; ++ ++ return krb5_gss_get_mic(minor_status, ctx->gssc, qop_req, message_buffer, ++ message_token); ++} ++ ++OM_uint32 KRB5_CALLCONV ++iakerb_gss_verify_mic(OM_uint32 *minor_status, gss_ctx_id_t context_handle, ++ gss_buffer_t msg_buffer, gss_buffer_t token_buffer, ++ gss_qop_t *qop_state) ++{ ++ iakerb_ctx_id_t ctx = (iakerb_ctx_id_t)context_handle; ++ ++ if (ctx->gssc == GSS_C_NO_CONTEXT) ++ return GSS_S_NO_CONTEXT; ++ ++ return krb5_gss_verify_mic(minor_status, ctx->gssc, msg_buffer, ++ token_buffer, qop_state); ++} ++ ++OM_uint32 KRB5_CALLCONV ++iakerb_gss_inquire_sec_context_by_oid(OM_uint32 *minor_status, ++ const gss_ctx_id_t context_handle, ++ const gss_OID desired_object, ++ gss_buffer_set_t *data_set) ++{ ++ iakerb_ctx_id_t ctx = (iakerb_ctx_id_t)context_handle; ++ ++ if (ctx->gssc == GSS_C_NO_CONTEXT) ++ return GSS_S_UNAVAILABLE; ++ ++ return krb5_gss_inquire_sec_context_by_oid(minor_status, ctx->gssc, ++ desired_object, data_set); ++} ++ ++OM_uint32 KRB5_CALLCONV ++iakerb_gss_set_sec_context_option(OM_uint32 *minor_status, ++ gss_ctx_id_t *context_handle, ++ const gss_OID desired_object, ++ const gss_buffer_t value) ++{ ++ iakerb_ctx_id_t ctx = (iakerb_ctx_id_t)*context_handle; ++ ++ if (ctx == NULL || ctx->gssc == GSS_C_NO_CONTEXT) ++ return GSS_S_UNAVAILABLE; ++ ++ return krb5_gss_set_sec_context_option(minor_status, &ctx->gssc, ++ desired_object, value); ++} ++ ++OM_uint32 KRB5_CALLCONV ++iakerb_gss_wrap_iov(OM_uint32 *minor_status, gss_ctx_id_t context_handle, ++ int conf_req_flag, gss_qop_t qop_req, int *conf_state, ++ gss_iov_buffer_desc *iov, int iov_count) ++{ ++ iakerb_ctx_id_t ctx = (iakerb_ctx_id_t)context_handle; ++ ++ if (ctx->gssc == GSS_C_NO_CONTEXT) ++ return GSS_S_NO_CONTEXT; ++ ++ return krb5_gss_wrap_iov(minor_status, ctx->gssc, conf_req_flag, qop_req, ++ conf_state, iov, iov_count); ++} ++ ++OM_uint32 KRB5_CALLCONV ++iakerb_gss_unwrap_iov(OM_uint32 *minor_status, gss_ctx_id_t context_handle, ++ int *conf_state, gss_qop_t *qop_state, ++ gss_iov_buffer_desc *iov, int iov_count) ++{ ++ iakerb_ctx_id_t ctx = (iakerb_ctx_id_t)context_handle; ++ ++ if (ctx->gssc == GSS_C_NO_CONTEXT) ++ return GSS_S_NO_CONTEXT; ++ ++ return krb5_gss_unwrap_iov(minor_status, ctx->gssc, conf_state, qop_state, ++ iov, iov_count); ++} ++ ++OM_uint32 KRB5_CALLCONV ++iakerb_gss_wrap_iov_length(OM_uint32 *minor_status, ++ gss_ctx_id_t context_handle, int conf_req_flag, ++ gss_qop_t qop_req, int *conf_state, ++ gss_iov_buffer_desc *iov, int iov_count) ++{ ++ iakerb_ctx_id_t ctx = (iakerb_ctx_id_t)context_handle; ++ ++ if (ctx->gssc == GSS_C_NO_CONTEXT) ++ return GSS_S_NO_CONTEXT; ++ ++ return krb5_gss_wrap_iov_length(minor_status, ctx->gssc, conf_req_flag, ++ qop_req, conf_state, iov, iov_count); ++} ++ ++OM_uint32 KRB5_CALLCONV ++iakerb_gss_pseudo_random(OM_uint32 *minor_status, gss_ctx_id_t context_handle, ++ int prf_key, const gss_buffer_t prf_in, ++ ssize_t desired_output_len, gss_buffer_t prf_out) ++{ ++ iakerb_ctx_id_t ctx = (iakerb_ctx_id_t)context_handle; ++ ++ if (ctx->gssc == GSS_C_NO_CONTEXT) ++ return GSS_S_NO_CONTEXT; ++ ++ return krb5_gss_pseudo_random(minor_status, ctx->gssc, prf_key, prf_in, ++ desired_output_len, prf_out); ++} ++ ++OM_uint32 KRB5_CALLCONV ++iakerb_gss_get_mic_iov(OM_uint32 *minor_status, gss_ctx_id_t context_handle, ++ gss_qop_t qop_req, gss_iov_buffer_desc *iov, ++ int iov_count) ++{ ++ iakerb_ctx_id_t ctx = (iakerb_ctx_id_t)context_handle; ++ ++ if (ctx->gssc == GSS_C_NO_CONTEXT) ++ return GSS_S_NO_CONTEXT; ++ ++ return krb5_gss_get_mic_iov(minor_status, ctx->gssc, qop_req, iov, ++ iov_count); ++} ++ ++OM_uint32 KRB5_CALLCONV ++iakerb_gss_verify_mic_iov(OM_uint32 *minor_status, gss_ctx_id_t context_handle, ++ gss_qop_t *qop_state, gss_iov_buffer_desc *iov, ++ int iov_count) ++{ ++ iakerb_ctx_id_t ctx = (iakerb_ctx_id_t)context_handle; ++ ++ if (ctx->gssc == GSS_C_NO_CONTEXT) ++ return GSS_S_NO_CONTEXT; ++ ++ return krb5_gss_verify_mic_iov(minor_status, ctx->gssc, qop_state, iov, ++ iov_count); ++} ++ ++OM_uint32 KRB5_CALLCONV ++iakerb_gss_get_mic_iov_length(OM_uint32 *minor_status, ++ gss_ctx_id_t context_handle, gss_qop_t qop_req, ++ gss_iov_buffer_desc *iov, int iov_count) ++{ ++ iakerb_ctx_id_t ctx = (iakerb_ctx_id_t)context_handle; ++ ++ if (ctx->gssc == GSS_C_NO_CONTEXT) ++ return GSS_S_NO_CONTEXT; ++ ++ return krb5_gss_get_mic_iov_length(minor_status, ctx->gssc, qop_req, iov, ++ iov_count); ++} diff --git a/gnu/packages/patches/mit-krb5-CVE-2015-2697.patch b/gnu/packages/patches/mit-krb5-CVE-2015-2697.patch new file mode 100644 index 0000000000..f65ce39623 --- /dev/null +++ b/gnu/packages/patches/mit-krb5-CVE-2015-2697.patch @@ -0,0 +1,55 @@ +Copied from Debian. + +From fcafb522a0509bfd6f4f6b57e4a1e93c0092eeb0 Mon Sep 17 00:00:00 2001 +From: Greg Hudson +Date: Fri, 25 Sep 2015 12:51:47 -0400 +Subject: Fix build_principal memory bug [CVE-2015-2697] + +In build_principal_va(), use k5memdup0() instead of strdup() to make a +copy of the realm, to ensure that we allocate the correct number of +bytes and do not read past the end of the input string. This bug +affects krb5_build_principal(), krb5_build_principal_va(), and +krb5_build_principal_alloc_va(). krb5_build_principal_ext() is not +affected. + +CVE-2015-2697: + +In MIT krb5 1.7 and later, an authenticated attacker may be able to +cause a KDC to crash using a TGS request with a large realm field +beginning with a null byte. If the KDC attempts to find a referral to +answer the request, it constructs a principal name for lookup using +krb5_build_principal() with the requested realm. Due to a bug in this +function, the null byte causes only one byte be allocated for the +realm field of the constructed principal, far less than its length. +Subsequent operations on the lookup principal may cause a read beyond +the end of the mapped memory region, causing the KDC process to crash. + +CVSSv2: AV:N/AC:L/Au:S/C:N/I:N/A:C/E:POC/RL:OF/RC:C + +ticket: 8252 (new) +target_version: 1.14 +tags: pullup + +(cherry picked from commit f0c094a1b745d91ef2f9a4eae2149aac026a5789) +Patch-Category: upstream +--- + src/lib/krb5/krb/bld_princ.c | 6 ++---- + 1 file changed, 2 insertions(+), 4 deletions(-) + +diff --git a/src/lib/krb5/krb/bld_princ.c b/src/lib/krb5/krb/bld_princ.c +index ab6fed8..8604268 100644 +--- a/src/lib/krb5/krb/bld_princ.c ++++ b/src/lib/krb5/krb/bld_princ.c +@@ -40,10 +40,8 @@ build_principal_va(krb5_context context, krb5_principal princ, + data = malloc(size * sizeof(krb5_data)); + if (!data) { retval = ENOMEM; } + +- if (!retval) { +- r = strdup(realm); +- if (!r) { retval = ENOMEM; } +- } ++ if (!retval) ++ r = k5memdup0(realm, rlen, &retval); + + while (!retval && (component = va_arg(ap, char *))) { + if (count == size) { diff --git a/gnu/packages/patches/mit-krb5-CVE-2015-2698-pt1.patch b/gnu/packages/patches/mit-krb5-CVE-2015-2698-pt1.patch new file mode 100644 index 0000000000..67545e4c16 --- /dev/null +++ b/gnu/packages/patches/mit-krb5-CVE-2015-2698-pt1.patch @@ -0,0 +1,43 @@ +Copied from Debian. + +From 1a8bdc6d81dcd7dd8a4d42e8de6d2cacf1dd4408 Mon Sep 17 00:00:00 2001 +From: Greg Hudson +Date: Tue, 27 Oct 2015 00:44:24 -0400 +Subject: Fix two IAKERB comments + +The comment explaining why there is no iakerb_gss_import_sec_context() +erroneously referenced SPNEGO instead of IAKERB (noticed by Ben +Kaduk). The comment above iakerb_gss_delete_sec_context() is out of +date after the last commit. + +(cherry picked from commit 92d6dd045dfc06cc03d20b327a6ee7a71e6bc24d) + +Patch-Category: upstream +--- + src/lib/gssapi/krb5/iakerb.c | 6 +----- + 1 file changed, 1 insertion(+), 5 deletions(-) + +diff --git a/src/lib/gssapi/krb5/iakerb.c b/src/lib/gssapi/krb5/iakerb.c +index 4662bd9..e25862d 100644 +--- a/src/lib/gssapi/krb5/iakerb.c ++++ b/src/lib/gssapi/krb5/iakerb.c +@@ -727,10 +727,6 @@ cleanup: + return code; + } + +-/* +- * Delete an IAKERB context. This can also accept Kerberos context +- * handles. The heuristic is similar to SPNEGO's delete_sec_context. +- */ + OM_uint32 KRB5_CALLCONV + iakerb_gss_delete_sec_context(OM_uint32 *minor_status, + gss_ctx_id_t *context_handle, +@@ -1077,7 +1073,7 @@ iakerb_gss_export_sec_context(OM_uint32 *minor_status, + } + + /* +- * Until we implement partial context exports, there are no SPNEGO exported ++ * Until we implement partial context exports, there are no IAKERB exported + * context tokens, only tokens for the underlying krb5 context. So we do not + * need to implement an iakerb_gss_import_sec_context() yet; it would be + * unreachable except via a manually constructed token. diff --git a/gnu/packages/patches/mit-krb5-CVE-2015-2698-pt2.patch b/gnu/packages/patches/mit-krb5-CVE-2015-2698-pt2.patch new file mode 100644 index 0000000000..8725cd4eed --- /dev/null +++ b/gnu/packages/patches/mit-krb5-CVE-2015-2698-pt2.patch @@ -0,0 +1,132 @@ +Copied from Debian. + +From 4b330d5be1f8048be4d079ac3cb38d60c0e99e69 Mon Sep 17 00:00:00 2001 +From: Greg Hudson +Date: Wed, 4 Nov 2015 21:28:28 -0500 +Subject: Fix IAKERB context export/import [CVE-2015-2698] + +The patches for CVE-2015-2696 contained a regression in the newly +added IAKERB iakerb_gss_export_sec_context() function, which could +cause it to corrupt memory. Fix the regression by properly +dereferencing the context_handle pointer before casting it. + +Also, the patches did not implement an IAKERB gss_import_sec_context() +function, under the erroneous belief than an exported IAKERB context +would be tagged as a krb5 context. Implement it now to allow IAKERB +contexts to be successfully exported and imported after establishment. + +CVE-2015-2698: + +In any MIT krb5 release with the patches for CVE-2015-2696 applied, an +application which calls gss_export_sec_context() may experience memory +corruption if the context was established using the IAKERB mechanism. +Historically, some vulnerabilities of this nature can be translated +into remote code execution, though the necessary exploits must be +tailored to the individual application and are usually quite +complicated. + + CVSSv2 Vector: AV:N/AC:H/Au:S/C:C/I:C/A:C/E:POC/RL:OF/RC:C + +ticket: 8273 (new) +target_version: 1.14 +tags: pullup + +(cherry picked from commit d8b31c874c7d1039be7649362ef11c89f4e14c27) + +Patch-Category: upstream +--- + src/lib/gssapi/krb5/gssapiP_krb5.h | 5 +++++ + src/lib/gssapi/krb5/gssapi_krb5.c | 2 +- + src/lib/gssapi/krb5/iakerb.c | 42 +++++++++++++++++++++++++++++++------- + 3 files changed, 41 insertions(+), 8 deletions(-) + +diff --git a/src/lib/gssapi/krb5/gssapiP_krb5.h b/src/lib/gssapi/krb5/gssapiP_krb5.h +index 05dc321..ac53662 100644 +--- a/src/lib/gssapi/krb5/gssapiP_krb5.h ++++ b/src/lib/gssapi/krb5/gssapiP_krb5.h +@@ -1396,6 +1396,11 @@ OM_uint32 KRB5_CALLCONV + iakerb_gss_export_sec_context(OM_uint32 *minor_status, + gss_ctx_id_t *context_handle, + gss_buffer_t interprocess_token); ++ ++OM_uint32 KRB5_CALLCONV ++iakerb_gss_import_sec_context(OM_uint32 *minor_status, ++ const gss_buffer_t interprocess_token, ++ gss_ctx_id_t *context_handle); + #endif /* LEAN_CLIENT */ + + OM_uint32 KRB5_CALLCONV +diff --git a/src/lib/gssapi/krb5/gssapi_krb5.c b/src/lib/gssapi/krb5/gssapi_krb5.c +index 9a23656..d7ba279 100644 +--- a/src/lib/gssapi/krb5/gssapi_krb5.c ++++ b/src/lib/gssapi/krb5/gssapi_krb5.c +@@ -945,7 +945,7 @@ static struct gss_config iakerb_mechanism = { + NULL, + #else + iakerb_gss_export_sec_context, +- NULL, ++ iakerb_gss_import_sec_context, + #endif + krb5_gss_inquire_cred_by_mech, + krb5_gss_inquire_names_for_mech, +diff --git a/src/lib/gssapi/krb5/iakerb.c b/src/lib/gssapi/krb5/iakerb.c +index e25862d..32a341e 100644 +--- a/src/lib/gssapi/krb5/iakerb.c ++++ b/src/lib/gssapi/krb5/iakerb.c +@@ -1057,7 +1057,7 @@ iakerb_gss_export_sec_context(OM_uint32 *minor_status, + gss_buffer_t interprocess_token) + { + OM_uint32 maj; +- iakerb_ctx_id_t ctx = (iakerb_ctx_id_t)context_handle; ++ iakerb_ctx_id_t ctx = (iakerb_ctx_id_t)*context_handle; + + /* We don't currently support exporting partially established contexts. */ + if (!ctx->established) +@@ -1072,13 +1072,41 @@ iakerb_gss_export_sec_context(OM_uint32 *minor_status, + return maj; + } + +-/* +- * Until we implement partial context exports, there are no IAKERB exported +- * context tokens, only tokens for the underlying krb5 context. So we do not +- * need to implement an iakerb_gss_import_sec_context() yet; it would be +- * unreachable except via a manually constructed token. +- */ ++OM_uint32 KRB5_CALLCONV ++iakerb_gss_import_sec_context(OM_uint32 *minor_status, ++ gss_buffer_t interprocess_token, ++ gss_ctx_id_t *context_handle) ++{ ++ OM_uint32 maj, tmpmin; ++ krb5_error_code code; ++ gss_ctx_id_t gssc; ++ krb5_gss_ctx_id_t kctx; ++ iakerb_ctx_id_t ctx; ++ ++ maj = krb5_gss_import_sec_context(minor_status, interprocess_token, &gssc); ++ if (maj != GSS_S_COMPLETE) ++ return maj; ++ kctx = (krb5_gss_ctx_id_t)gssc; ++ ++ if (!kctx->established) { ++ /* We don't currently support importing partially established ++ * contexts. */ ++ krb5_gss_delete_sec_context(&tmpmin, &gssc, GSS_C_NO_BUFFER); ++ return GSS_S_FAILURE; ++ } + ++ code = iakerb_alloc_context(&ctx, kctx->initiate); ++ if (code != 0) { ++ krb5_gss_delete_sec_context(&tmpmin, &gssc, GSS_C_NO_BUFFER); ++ *minor_status = code; ++ return GSS_S_FAILURE; ++ } ++ ++ ctx->gssc = gssc; ++ ctx->established = 1; ++ *context_handle = (gss_ctx_id_t)ctx; ++ return GSS_S_COMPLETE; ++} + #endif /* LEAN_CLIENT */ + + OM_uint32 KRB5_CALLCONV -- cgit v1.2.3 From 2abcc935ce87221009acc9f211badbe6cd27191d Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 13 Nov 2015 22:46:54 +0100 Subject: gnu: eigen: Update to 3.2.7. * gnu/packages/algebra.scm (eigen): Upgrade to 3.2.7. [source]: Add 'file-name' field. --- gnu/packages/algebra.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm index daa5ddd072..2ea6c1f5c8 100644 --- a/gnu/packages/algebra.scm +++ b/gnu/packages/algebra.scm @@ -383,14 +383,15 @@ cosine/ sine transforms or DCT/DST).") (define-public eigen (package (name "eigen") - (version "3.2.6") + (version "3.2.7") (source (origin (method url-fetch) (uri (string-append "https://bitbucket.org/eigen/eigen/get/" version ".tar.bz2")) (sha256 (base32 - "0gil5ksmgcg6v3nw0v613mvpzz4n33xhawqs8l7fj7rnlpwm4cwa")) + "0gigbjjdlw2q0gvcnyiwc6in314a647rkidk6977bwiwn88im3p5")) + (file-name (string-append name "-" version ".tar.bz2")) (modules '((guix build utils))) (snippet ;; There are 3 test failures in the "unsupported" directory, -- cgit v1.2.3 From 73cea74ddaf98fc526f633e5c5768a6ead4d312d Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sat, 14 Nov 2015 09:44:32 +0100 Subject: gnu: calf: Update tarball URL. * gnu/packages/audio.scm (calf)[source]: Use tarball from new project website instead of sourceforge. --- gnu/packages/audio.scm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 77842f8c48..4a86a8d543 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -271,9 +271,8 @@ plugins are provided.") (version "0.0.60") (source (origin (method url-fetch) - (uri (string-append - "mirror://sourceforge/calf/calf/" - version "/calf-" version ".tar.gz")) + (uri (string-append "http://calf-studio-gear.org/files/calf-" + version ".tar.gz")) (sha256 (base32 "019fwg00jv217a5r767z7szh7vdrarybac0pr2sk26xp81kibrx9")))) -- cgit v1.2.3 From 5649c8cd894f2cf6fc7c9ab08974ff03d3580448 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Fri, 13 Nov 2015 18:07:21 -0500 Subject: gnu: Add guile-sly. * gnu/packages/guile.scm (guile-sly): New variable. --- gnu/packages/guile.scm | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index 82776e6cd3..8714332312 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -41,6 +41,10 @@ #:use-module (gnu packages gettext) #:use-module (gnu packages databases) #:use-module (gnu packages python) + #:use-module (gnu packages gl) + #:use-module (gnu packages sdl) + #:use-module (gnu packages maths) + #:use-module (gnu packages image) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix git-download) @@ -802,4 +806,39 @@ whitespace-significant language. It may be easier on the eyes for some users and in some situations.") (license gpl3+))) +(define-public guile-sly + (package + (name "guile-sly") + (version "0.1") + (source (origin + (method url-fetch) + (uri (string-append "http://files.dthompson.us/sly/sly-" + version ".tar.gz")) + (sha256 + (base32 + "1svzlbz2vripmyq2kjh0rig16bsrnbkwbsm558pjln9l65mcl4qq")))) + (build-system gnu-build-system) + (arguments + '(#:configure-flags + (list (string-append "--with-libfreeimage-prefix=" + (assoc-ref %build-inputs "freeimage")) + (string-append "--with-libgslcblas-prefix=" + (assoc-ref %build-inputs "gsl"))))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (propagated-inputs + `(("guile" ,guile-2.0) + ("guile-sdl" ,guile-sdl) + ("guile-opengl" ,guile-opengl))) + (inputs + `(("gsl" ,gsl) + ("freeimage" ,freeimage) + ("mesa" ,mesa))) + (synopsis "2D/3D game engine for GNU Guile") + (description "Sly is a 2D/3D game engine written in Guile Scheme. Sly +features a functional reactive programming interface and live coding +capabilities.") + (home-page "http://dthompson.us/pages/software/sly.html") + (license gpl3+))) + ;;; guile.scm ends here -- cgit v1.2.3 From 511495fb24aef0a9db5318d7d5c7f78e6c344ad0 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sat, 14 Nov 2015 16:49:20 +0100 Subject: gnu: sudo: Build sequentially. Possibly fixes . * gnu/packages/admin.scm (sudo)[arguments]: Add #:parallel-build? #f. --- gnu/packages/admin.scm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 7fbc9fdc30..5b9f5d1650 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -671,6 +671,10 @@ system administrator.") (string-append "CPPFLAGS=-D_PATH_MV='\"" (assoc-ref %build-inputs "coreutils") "/bin/mv\"'")) + + ;; Avoid non-determinism; see . + #:parallel-build? #f + #:phases (alist-cons-before 'configure 'pre-configure (lambda _ -- cgit v1.2.3 From 19a696ed728e11a01bcc8e6532103125204057e6 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 15 Nov 2015 00:07:38 +0200 Subject: gnu: youtube-dl: Update to 2015.11.13. * gnu/packages/video.scm (youtube-dl): Update to 2015.11.13. --- gnu/packages/video.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 687057fb88..219159d24d 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -812,7 +812,7 @@ projects while introducing many more.") (define-public youtube-dl (package (name "youtube-dl") - (version "2015.11.10") + (version "2015.11.13") (source (origin (method url-fetch) (uri (string-append "http://youtube-dl.org/downloads/" @@ -820,7 +820,7 @@ projects while introducing many more.") version ".tar.gz")) (sha256 (base32 - "1gp68wzsfg31xx6iv7ga6cp022ak14r7ghg7mbhk9zr7rz5lx8y5")))) + "02140awgwvspnq226xpbc4clijmqkk8hlmfqhmmzzbihvs2b4xfx")))) (build-system python-build-system) (inputs `(("setuptools" ,python-setuptools))) (home-page "http://youtube-dl.org") -- cgit v1.2.3 From 1c8a70a3505dc3062a3fe18b967376449981cc9e Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 15 Nov 2015 09:27:46 +0200 Subject: gnu: efl: Update to 1.16.0. * gnu/packages/enlightenment.scm (efl): Update to 1.16.0. --- gnu/packages/enlightenment.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/enlightenment.scm b/gnu/packages/enlightenment.scm index 97e7d38215..b9e4443cc6 100644 --- a/gnu/packages/enlightenment.scm +++ b/gnu/packages/enlightenment.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 Tomáš Čech ;;; Copyright © 2015 Daniel Pimentel +;;; Copyright © 2015 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -51,7 +52,7 @@ (define-public efl (package (name "efl") - (version "1.15.2") + (version "1.16.0") (source (origin (method url-fetch) (uri (string-append @@ -59,7 +60,7 @@ version ".tar.xz")) (sha256 (base32 - "1962wqx7gdnpzvnkbighyn4hj5vw8l4c1d7xl5zilqjlyhcqywyx")))) + "08w3hrjyz1yjqjq77px86fljxxi5xz5yfy79qwssypafjvcvpzky")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) -- cgit v1.2.3 From 5fbf590a906c0986f733c525bc38adbd701f5d14 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 15 Nov 2015 09:46:50 +0200 Subject: gnu: elementary: Update to 1.16.0. * gnu/packages/enlightenment.scm (elementary): Update to 1.16.0. --- gnu/packages/enlightenment.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/enlightenment.scm b/gnu/packages/enlightenment.scm index b9e4443cc6..07e55ecf6f 100644 --- a/gnu/packages/enlightenment.scm +++ b/gnu/packages/enlightenment.scm @@ -135,7 +135,7 @@ removable devices or support for multimedia.") (define-public elementary (package (name "elementary") - (version "1.15.2") + (version "1.16.0") (source (origin (method url-fetch) (uri @@ -143,7 +143,7 @@ removable devices or support for multimedia.") "elementary/elementary-" version ".tar.xz")) (sha256 (base32 - "0gqg98bglnl2jggdzxzrh9r7bv32i4sahspms0bihq8b45rk0g2j")))) + "1546b7pdpw6nx1hjxy674zr8dgpzwl7lq3hvnv4axkpd4zwkqgs8")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) -- cgit v1.2.3 From 96479cf10dd01cd52699e91441b6273e57d555e2 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 15 Nov 2015 10:22:11 +0200 Subject: gnu: emotion-generic-players: Update to 1.16.0. * gnu/packages/enlightenment.scm (emotion-generic-players): Update to 1.16.0. --- gnu/packages/enlightenment.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/enlightenment.scm b/gnu/packages/enlightenment.scm index 07e55ecf6f..ab45a9ba0c 100644 --- a/gnu/packages/enlightenment.scm +++ b/gnu/packages/enlightenment.scm @@ -192,7 +192,7 @@ files in Evas (EFL canvas library).") (define-public emotion-generic-players (package (name "emotion-generic-players") - (version "1.15.0") + (version "1.16.0") (source (origin (method url-fetch) (uri @@ -201,7 +201,7 @@ files in Evas (EFL canvas library).") "-" version ".tar.xz")) (sha256 (base32 - "0pszwmcygxnv1sfx0m79md2jmi4sng8mdb1xcr6h2z5c8685wvcz")))) + "163ay26c6dx49m1am7vsxxn0gy877zhayxq0yxn9zkbq2srzvjym")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) -- cgit v1.2.3 From 90b57418697ad112428ae2c982fa7a7ce7fa49b1 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 15 Nov 2015 10:25:16 +0200 Subject: gnu: evas-generic-loaders: Update to 1.16.0. * gnu/packages/enlightenment.scm (evas-generic-loaders): Update to 1.16.0. --- gnu/packages/enlightenment.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/enlightenment.scm b/gnu/packages/enlightenment.scm index ab45a9ba0c..0c8d9b76c5 100644 --- a/gnu/packages/enlightenment.scm +++ b/gnu/packages/enlightenment.scm @@ -160,7 +160,7 @@ full capabilities of EFL.") (define-public evas-generic-loaders (package (name "evas-generic-loaders") - (version "1.15.0") + (version "1.16.0") (source (origin (method url-fetch) (uri @@ -170,7 +170,7 @@ full capabilities of EFL.") version ".tar.xz")) (sha256 (base32 - "0zzx06j20x580xqnnsxp7gb7rv279zcgvdxfbhs905af9m6rwlqy")))) + "1il3i3rii6ddpj7cw2mdqnb0q2wmhwnvs6qi9janna1n5hhrqyfm")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) -- cgit v1.2.3 From 5de56b611c75e6866339faaefc4706b2b8b10a81 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 15 Nov 2015 11:03:03 +0200 Subject: gnu: enlightenment: Update to 0.19.13. * gnu/packages/enlightenment.scm (enlightenment): Update to 0.19.13. --- gnu/packages/enlightenment.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/enlightenment.scm b/gnu/packages/enlightenment.scm index 0c8d9b76c5..d28a29ce45 100644 --- a/gnu/packages/enlightenment.scm +++ b/gnu/packages/enlightenment.scm @@ -271,7 +271,7 @@ Libraries with some extra bells and whistles.") (define-public enlightenment (package (name "enlightenment") - (version "0.19.12") + (version "0.19.13") (source (origin (method url-fetch) (uri @@ -279,7 +279,7 @@ Libraries with some extra bells and whistles.") name "/" name "-" version ".tar.xz")) (sha256 (base32 - "098bdx9qmv1yqqwfydrzs7fvbnhsf3vaib9pmqsyg4ihgqrkrwjm")))) + "1kl9r3amvgrb283b7d9wn5p4aqz9v9ba9xz25cdyfa28fkmfdayd")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) -- cgit v1.2.3 From 000e36f2eec02b8bf57bd54e857e56628e184b31 Mon Sep 17 00:00:00 2001 From: Andreas Enge Date: Mon, 16 Nov 2015 03:51:34 +0100 Subject: gnu: pari-gp: Update to 2.7.5. * gnu/packages/algebra.scm (pari-gp): Update to 2.7.5. --- gnu/packages/algebra.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm index 2ea6c1f5c8..07dfaafdc3 100644 --- a/gnu/packages/algebra.scm +++ b/gnu/packages/algebra.scm @@ -115,7 +115,7 @@ solve the shortest vector problem.") (define-public pari-gp (package (name "pari-gp") - (version "2.7.4") + (version "2.7.5") (source (origin (method url-fetch) (uri (string-append @@ -123,7 +123,7 @@ solve the shortest vector problem.") version ".tar.gz")) (sha256 (base32 - "0k1qqagfl6zn7gvwmsqffj6g9yrzqvszwh2mblhmxpjlw1pigfh8")))) + "0c8l83a0gjq73r9hndsrzkypwxvnnm4pxkkzbg6jm95m80nzwh11")))) (build-system gnu-build-system) (inputs `(("gmp" ,gmp) ("libx11" ,libx11) -- cgit v1.2.3 From b6bbebbcab34267aaae7dba8170ae453e68c37db Mon Sep 17 00:00:00 2001 From: Andreas Enge Date: Fri, 30 Oct 2015 11:41:10 +0100 Subject: gnu: gnucash: Update to 2.6.9. * gnu/packages/gnucash.scm (gnucash): Update to 2.6.9. [home-page]: Update. --- gnu/packages/gnucash.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnucash.scm b/gnu/packages/gnucash.scm index 42d19af8f4..e252f98f94 100644 --- a/gnu/packages/gnucash.scm +++ b/gnu/packages/gnucash.scm @@ -37,7 +37,7 @@ (define-public gnucash (package (name "gnucash") - (version "2.6.6") + (version "2.6.9") (source (origin (method url-fetch) @@ -45,7 +45,7 @@ version ".tar.bz2")) (sha256 (base32 - "103ir5qg6k8m2mmg9b99c3gn8myxh1gsqyr0mfhmrhqya68wfdr3")) + "0iw25l1kv60cg6fd2vg11mcvzmjqnc5p9lp3rjy06ghkjfrn3and")) (patches (list (search-patch "gnucash-price-quotes-perl.patch"))))) (build-system gnu-build-system) (inputs -- cgit v1.2.3 From 1b076e630f4a7245d14634b047e1d1a91ee2659e Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 16 Nov 2015 09:50:33 +0100 Subject: gnu: libpng: Use 1.5.24 as a replacement [fixes CVE-2015-8126]. Reported by Leo Famulari . * gnu/packages/image.scm (libpng-urls): New procedure. (libpng)[source]: Use it. [replacement]: New field. (libpng-1.5.24): New variable. --- gnu/packages/image.scm | 29 ++++++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index bde327cf91..b7b8eac24b 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -46,23 +46,28 @@ #:use-module (guix build-system cmake) #:use-module (srfi srfi-1)) +(define (libpng-urls version) + "Return a list of URLs for libpng VERSION." + ;; Note: upstream removes older tarballs. + (list (string-append "mirror://sourceforge/libpng/libpng15/" + version "/libpng-" version ".tar.xz") + (string-append + "ftp://ftp.simplesystems.org/pub/libpng/png/src" + "/libpng15/libpng-" version ".tar.xz"))) + (define-public libpng (package (name "libpng") (version "1.5.21") (source (origin (method url-fetch) - - ;; Note: upstream removes older tarballs. - (uri (list (string-append "mirror://sourceforge/libpng/libpng15/" - version "/libpng-" version ".tar.xz") - (string-append - "ftp://ftp.simplesystems.org/pub/libpng/png/src" - "/libpng15/libpng-" version ".tar.xz"))) + (uri (libpng-urls version)) (sha256 (base32 "19yvzw6sf9gf7v25ha9bla8bw1nijh82wj8ag6brjj3hpij1q5dm")))) (build-system gnu-build-system) + (replacement libpng-1.5.24) ;CVE-2015-8126 + ;; libpng.la says "-lz", so propagate it. (propagated-inputs `(("zlib" ,zlib))) @@ -73,6 +78,16 @@ library. It supports almost all PNG features and is extensible.") (license license:zlib) (home-page "http://www.libpng.org/pub/png/libpng.html"))) +(define libpng-1.5.24 + (package + (inherit libpng) + (source (origin + (method url-fetch) + (uri (libpng-urls "1.5.24")) + (sha256 + (base32 + "1qhvfk1ypsaf6q6xkspyqqzmghpbahhq54ms8fa5ssqkyds38bmr")))))) + (define-public libjpeg (package (name "libjpeg") -- cgit v1.2.3 From fcc43c1f7b998b9ffd2f734a4c99d6e17d7cf102 Mon Sep 17 00:00:00 2001 From: Amirouche Boubekki Date: Fri, 13 Nov 2015 15:09:08 +0100 Subject: gnu: images: Add jpegoptim 1.4.3 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/images.scm (jpegoptim): New variable jpegoptim Signed-off-by: Ludovic Courtès --- gnu/packages/image.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index b7b8eac24b..1acc5ee973 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2014, 2015 Alex Kost ;;; Copyright © 2014 Ricardo Wurmus ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer +;;; Copyright © 2015 Amirouche Boubekki ;;; Copyright © 2014 John Darrington ;;; ;;; This file is part of GNU Guix. @@ -119,6 +120,29 @@ image files in PBMPLUS PPM/PGM, GIF, BMP, and Targa file formats.") (sha256 (base32 "1cz0dy05mgxqdgjf52p54yxpyy95rgl30cnazdrfmw7hfca9n0h0")))))) +(define-public jpegoptim + (package + (name "jpegoptim") + (version "1.4.3") + (source (origin + (method url-fetch) + (uri (string-append "http://www.kokkonen.net/tjko/src/jpegoptim-" + version ".tar.gz")) + (sha256 (base32 + "0k53q7dc8w5ashz8v261x2b5vvz7gdvg8w962rz9gjvkjbh4lg93")))) + (build-system gnu-build-system) + (inputs `(("libjpeg" ,libjpeg))) + (arguments + ;; no tests + '(#:tests? #f)) + (synopsis "Optimize JPEG images") + (description + "jpegoptim provides lossless optimization (based on optimizing +the Huffman tables) and \"lossy\" optimization based on setting +maximum quality factor.") + (license license:gpl2+) + (home-page "http://www.kokkonen.net/tjko/projects.html#jpegoptim"))) + (define-public libtiff (package (name "libtiff") -- cgit v1.2.3 From f106b0e970922cb5aad8fbb00375ad6a75f3f3d2 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 16 Nov 2015 10:54:23 +0100 Subject: emacs: 'display-search-paths' now takes a list of profiles. Fixes a regression introduced in fc2d233. * emacs/guix-main.scm (process-package-actions): Make second argument to 'display-search-paths' a list. --- emacs/guix-main.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/emacs/guix-main.scm b/emacs/guix-main.scm index 9eac5185b7..7175b103da 100644 --- a/emacs/guix-main.scm +++ b/emacs/guix-main.scm @@ -905,7 +905,7 @@ OUTPUTS is a list of package outputs (may be an empty list)." "~a packages in profile~%" count) count) - (display-search-paths entries profile)))))))))) + (display-search-paths entries (list profile))))))))))) (define (delete-generations* profile generations) "Delete GENERATIONS from PROFILE. -- cgit v1.2.3 From 5f4621de1fc4ef99b6dd9cbc978e010168de67dd Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 10 Nov 2015 15:55:51 +0100 Subject: gnu: Add r-curl. * gnu/packages/web.scm (r-curl): New variable. --- gnu/packages/web.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 6a47f3b6c9..6c3329ffb6 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -2978,3 +2978,28 @@ directory.") various contexts including the R console, R Markdown documents, and Shiny web applications.") (license l:expat))) + +(define-public r-curl + (package + (name "r-curl") + (version "0.9.3") + (source (origin + (method url-fetch) + (uri (cran-uri "curl" version)) + (sha256 + (base32 + "02p9s1jlk8dcbvn71ivn4xnrqh9dwqyhgn4s1fzcfmnmfxhl5gld")))) + (build-system r-build-system) + (inputs + `(("libcurl" ,curl))) + (home-page "https://github.com/jeroenooms/curl") + (synopsis "HTTP client for R") + (description + "The @code{curl()} and @code{curl_download()} functions provide highly +configurable drop-in replacements for base @code{url()} and +@code{download.file()} with better performance, support for encryption, gzip +compression, authentication, and other @code{libcurl} goodies. The core of +the package implements a framework for performing fully customized requests +where data can be processed either in memory, on disk, or streaming via the +callback or connection interfaces.") + (license l:expat))) -- cgit v1.2.3 From 67a167fdf7410791cb57e2948dedc519d75bb80b Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 10 Nov 2015 16:10:09 +0100 Subject: gnu: Add r-xml2. * gnu/packages/statistics.scm (r-xml2): New variable. --- gnu/packages/statistics.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 0c0464c2b9..cbcb05c32f 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -41,6 +41,7 @@ #:use-module (gnu packages texlive) #:use-module (gnu packages texinfo) #:use-module (gnu packages base) + #:use-module (gnu packages xml) #:use-module (gnu packages xorg) #:use-module (gnu packages zip) #:use-module (srfi srfi-1)) @@ -1053,3 +1054,27 @@ inference for statistical models.") (native-inputs `(("python2-setuptools" ,python2-setuptools) ,@(package-native-inputs stats)))))) + +(define-public r-xml2 + (package + (name "r-xml2") + (version "0.1.2") + (source + (origin + (method url-fetch) + (uri (cran-uri "xml2" version)) + (sha256 + (base32 + "0jjilz36h7vbdbkpvjnja1vgjf6d1imql3z4glqn2m2b74w5qm4c")))) + (build-system r-build-system) + (inputs + `(("libxml2" ,libxml2))) + (propagated-inputs + `(("r-rcpp" ,r-rcpp) + ("r-bh" ,r-bh))) + (home-page "https://github.com/hadley/xml2") + (synopsis "Parse XML with R") + (description + "This package provides a simple, consistent interface to working with XML +files in R. It is built on top of the libxml2 C library.") + (license license:gpl2+))) -- cgit v1.2.3 From 6140747f062d0e05fc4d9c9e013d65d20529e0ac Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 10 Nov 2015 16:17:34 +0100 Subject: gnu: Add r-rversions. * gnu/packages/statistics.scm (r-rversions): New variable. --- gnu/packages/statistics.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index cbcb05c32f..a0ae5c18dc 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -41,6 +41,7 @@ #:use-module (gnu packages texlive) #:use-module (gnu packages texinfo) #:use-module (gnu packages base) + #:use-module (gnu packages web) #:use-module (gnu packages xml) #:use-module (gnu packages xorg) #:use-module (gnu packages zip) @@ -1078,3 +1079,25 @@ inference for statistical models.") "This package provides a simple, consistent interface to working with XML files in R. It is built on top of the libxml2 C library.") (license license:gpl2+))) + +(define-public r-rversions + (package + (name "r-rversions") + (version "1.0.2") + (source (origin + (method url-fetch) + (uri (cran-uri "rversions" version)) + (sha256 + (base32 + "0xmi461g1rf5ngb7r1sri798jn6icld1xq25wj9jii2ca8j8xv68")))) + (build-system r-build-system) + (propagated-inputs + `(("r-curl" ,r-curl) + ("r-xml2" ,r-xml2))) + (home-page "https://github.com/metacran/rversions") + (synopsis "Query R versions, including 'r-release' and 'r-oldrel'") + (description + "This package provides functions to query the main R repository to find +the versions that @code{r-release} and @code{r-oldrel} refer to, and also all +previous R versions and their release dates.") + (license license:expat))) -- cgit v1.2.3 From 1a77eccd0e4f95a4e2517c0f6c3e33ade3ff089b Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 10 Nov 2015 16:19:16 +0100 Subject: gnu: Add r-whisker. * gnu/packages/statistics.scm (r-whisker): New variable. --- gnu/packages/statistics.scm | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index a0ae5c18dc..a5be5d96af 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -1101,3 +1101,21 @@ files in R. It is built on top of the libxml2 C library.") the versions that @code{r-release} and @code{r-oldrel} refer to, and also all previous R versions and their release dates.") (license license:expat))) + +(define-public r-whisker + (package + (name "r-whisker") + (version "0.3-2") + (source (origin + (method url-fetch) + (uri (cran-uri "whisker" version)) + (sha256 + (base32 + "0z4cn115gxcl086d6bnqr8afi67b6a7xqg6ivmk3l4ng1x8kcj28")))) + (build-system r-build-system) + (home-page "http://github.com/edwindj/whisker") + (synopsis "Logicless mustache templating for R") + (description + "This package provides logicless templating, with a syntax that is not +limited to R.") + (license license:gpl3+))) -- cgit v1.2.3 From 13d083af59143cb458851a6944552acb60c1267c Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 10 Nov 2015 16:20:25 +0100 Subject: gnu: Add r-brew. * gnu/packages/statistics.scm (r-brew): New variable. --- gnu/packages/statistics.scm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index a5be5d96af..5ab13d1e71 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -1119,3 +1119,22 @@ previous R versions and their release dates.") "This package provides logicless templating, with a syntax that is not limited to R.") (license license:gpl3+))) + +(define-public r-brew + (package + (name "r-brew") + (version "1.0-6") + (source (origin + (method url-fetch) + (uri (cran-uri "brew" version)) + (sha256 + (base32 + "1vghazbcha8gvkwwcdagjvzx6yl8zm7kgr0i9wxr4jng06d1l3fp")))) + (build-system r-build-system) + (home-page "http://cran.r-project.org/web/packages/brew") + (synopsis "Templating framework for report generation") + (description + "The brew package implements a templating framework for mixing text and R +code for report generation. The template syntax is similar to PHP, Ruby's erb +module, Java Server Pages, and Python's psp module.") + (license license:gpl2+))) -- cgit v1.2.3 From 167c988263439146db655f2f976daead677e26de Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 10 Nov 2015 16:28:23 +0100 Subject: gnu: Add r-roxygen2. * gnu/packages/statistics.scm (r-roxygen2): New variable. --- gnu/packages/statistics.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 5ab13d1e71..8062a51af4 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -1138,3 +1138,27 @@ limited to R.") code for report generation. The template syntax is similar to PHP, Ruby's erb module, Java Server Pages, and Python's psp module.") (license license:gpl2+))) + +(define-public r-roxygen2 + (package + (name "r-roxygen2") + (version "5.0.0") + (source (origin + (method url-fetch) + (uri (cran-uri "roxygen2" version)) + (sha256 + (base32 + "0xjdphjs7l1v71lylmqgp76cbcxzvm9z1a40jgkdwvz072nn08vr")))) + (build-system r-build-system) + (propagated-inputs + `(("r-brew" ,r-brew) + ("r-digest" ,r-digest) + ("r-rcpp" ,r-rcpp) + ("r-stringi" ,r-stringi) + ("r-stringr" ,r-stringr))) + (home-page "https://github.com/klutometis/roxygen") + (synopsis "In-source documentation system for R") + (description + "Roxygen2 is a Doxygen-like in-source documentation system for Rd, +collation, and NAMESPACE files.") + (license license:gpl2+))) -- cgit v1.2.3 From 681e03c12ddf1bd1022b7478d2182559a2273149 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 10 Nov 2015 16:40:04 +0100 Subject: gnu: Add r-httr. * gnu/packages/statistics.scm (r-httr): New variable. --- gnu/packages/statistics.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 8062a51af4..9c277b4851 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -1162,3 +1162,30 @@ module, Java Server Pages, and Python's psp module.") "Roxygen2 is a Doxygen-like in-source documentation system for Rd, collation, and NAMESPACE files.") (license license:gpl2+))) + +(define-public r-httr + (package + (name "r-httr") + (version "1.0.0") + (source (origin + (method url-fetch) + (uri (cran-uri "httr" version)) + (sha256 + (base32 + "1yprw8p4g8026jhravgg1hdwj1g51cpdgycyr5a58jwm4i5f79cq")))) + (build-system r-build-system) + (propagated-inputs + `(("r-curl" ,r-curl) + ("r-digest" ,r-digest) + ("r-jsonlite" ,r-jsonlite) + ("r-mime" ,r-mime) + ("r-r6" ,r-r6) + ("r-stringr" ,r-stringr))) + (home-page "https://github.com/hadley/httr") + (synopsis "Tools for working with URLs and HTTP") + (description + "The aim of httr is to provide a wrapper for RCurl customised to the +demands of modern web APIs. It provides useful tools for working with HTTP +organised by HTTP verbs (@code{GET()}, @code{POST()}, etc). Configuration +functions make it easy to control additional request components.") + (license license:expat))) -- cgit v1.2.3 From 035711f1f57dcb2967dfc4b6a71b363350fdfcbc Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 11 Nov 2015 14:07:24 +0100 Subject: gnu: Add r-git2r. * gnu/packages/statistics.scm (r-git2r): New variable. --- gnu/packages/statistics.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 9c277b4851..fb13284fe1 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -38,8 +38,10 @@ #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) #:use-module (gnu packages readline) + #:use-module (gnu packages ssh) #:use-module (gnu packages texlive) #:use-module (gnu packages texinfo) + #:use-module (gnu packages tls) #:use-module (gnu packages base) #:use-module (gnu packages web) #:use-module (gnu packages xml) @@ -1189,3 +1191,29 @@ demands of modern web APIs. It provides useful tools for working with HTTP organised by HTTP verbs (@code{GET()}, @code{POST()}, etc). Configuration functions make it easy to control additional request components.") (license license:expat))) + +(define-public r-git2r + (package + (name "r-git2r") + (version "0.11.0") + (source (origin + (method url-fetch) + (uri (cran-uri "git2r" version)) + (sha256 + (base32 + "1h5ag8sm512jsn2sp4yhiqspc7hjq5y8z0kqz24sdznxa3b7rpn9")))) + (build-system r-build-system) + ;; This R package contains modified sources of libgit2. This modified + ;; version of libgit2 is built as the package is built. Hence libgit2 is + ;; not among the inputs of this package. + (inputs + `(("libssh2" ,libssh2) + ("openssl" ,openssl) + ("zlib" ,zlib))) + (home-page "https://github.com/ropensci/git2r") + (synopsis "Access Git repositories with R") + (description + "This package provides an R interface to the libgit2 library, which is a +pure C implementation of the Git core methods.") + ;; GPLv2 only with linking exception. + (license license:gpl2))) -- cgit v1.2.3 From 81a4228b185b64415f98c5d812602ab0da240e5d Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 11 Nov 2015 14:07:47 +0100 Subject: gnu: Add r-rstudioapi. * gnu/packages/statistics.scm (r-rstudioapi): New variable. --- gnu/packages/statistics.scm | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index fb13284fe1..896f52993a 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -1217,3 +1217,21 @@ functions make it easy to control additional request components.") pure C implementation of the Git core methods.") ;; GPLv2 only with linking exception. (license license:gpl2))) + +(define-public r-rstudioapi + (package + (name "r-rstudioapi") + (version "0.3.1") + (source (origin + (method url-fetch) + (uri (cran-uri "rstudioapi" version)) + (sha256 + (base32 + "0q7671d924nzqsqhs8d9p7l907bcam56wjwm7vvz44xgj0saj8bs")))) + (build-system r-build-system) + (home-page "http://cran.r-project.org/web/packages/rstudioapi") + (synopsis "Safely access the RStudio API") + (description + "This package provides functions to access the RStudio API and provide +informative error messages when it's not available.") + (license license:expat))) -- cgit v1.2.3 From d6e21589afb29e4d6d5b124cbfd533299567fb28 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 11 Nov 2015 14:08:46 +0100 Subject: gnu: Add r-devtools. * gnu/packages/statistics.scm (r-devtools): New variable. --- gnu/packages/statistics.scm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 896f52993a..2af9de2344 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -1235,3 +1235,32 @@ pure C implementation of the Git core methods.") "This package provides functions to access the RStudio API and provide informative error messages when it's not available.") (license license:expat))) + +(define-public r-devtools + (package + (name "r-devtools") + (version "1.9.1") + (source (origin + (method url-fetch) + (uri (cran-uri "devtools" version)) + (sha256 + (base32 + "10ycx3kkiz5x8nmgw31d9wa5hhlx2fhda2nqzxfrczqpz1jik6ci")))) + (build-system r-build-system) + (propagated-inputs + `(("r-curl" ,r-curl) + ("r-digest" ,r-digest) + ("r-evaluate" ,r-evaluate) + ("r-git2r" ,r-git2r) + ("r-httr" ,r-httr) + ("r-jsonlite" ,r-jsonlite) + ("r-memoise" ,r-memoise) + ("r-roxygen2" ,r-roxygen2) + ("r-rstudioapi" ,r-rstudioapi) + ("r-rversions" ,r-rversions) + ("r-whisker" ,r-whisker))) + (home-page "https://github.com/hadley/devtools") + (synopsis "Tools to make developing R packages easier") + (description "The devtools package is a collection of package development +tools to simplify the devolpment of R packages.") + (license license:gpl2+))) -- cgit v1.2.3 From 54567afa13a9ac5376cbfea1e6b514bf850a88c6 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 16 Nov 2015 15:04:34 +0200 Subject: gnu: mpv: Update to 0.13.0. * gnu/packages/video.scm (mpv): Update to 0.13.0. --- gnu/packages/video.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 219159d24d..b46e609aad 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -690,7 +690,7 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.") (define-public mpv (package (name "mpv") - (version "0.11.0") + (version "0.13.0") (source (origin (method url-fetch) (uri (string-append @@ -698,7 +698,7 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.") ".tar.gz")) (sha256 (base32 - "1njvmqzj8akan5y485gx4blynwiy52adw7zbbnnnvd3dwis725d2")) + "1nqjd64p4pj1lks9n9s8y4zf4dp5bz8pyd0gsvviww7mv17p0whk")) (file-name (string-append name "-" version ".tar.gz")))) (build-system waf-build-system) (native-inputs @@ -739,10 +739,10 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.") (method url-fetch) ;; Keep this in sync with the version in the bootstrap.py ;; script of the source tarball. - (uri "http://www.freehackers.org/~tnagy/release/waf-1.8.4") + (uri "http://www.freehackers.org/~tnagy/release/waf-1.8.12") (sha256 (base32 - "1a7skwgpl91adhcwlmdr76xzdpidh91hvcmj34zz6548bpx3a87h")))) + "12y9c352zwliw0zk9jm2lhynsjcf5jy0k1qch1c1av8hnbm2pgq1")))) ("youtube-dl" ,youtube-dl) ("zlib" ,zlib))) (arguments -- cgit v1.2.3 From 782770d1c2fb00b77bf23d3d556bb980af0faac2 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 16 Nov 2015 15:18:30 +0200 Subject: gnu: mpv: Remove lua configure hack. * gnu/packages/video.scm (mpv)[arguments]: Remove obsolete code that helped configure find lua. --- gnu/packages/video.scm | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index b46e609aad..fb4db6243c 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -759,10 +759,7 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.") (substitute* "wscript" ;; XXX Remove this when our Samba package provides a .pc file. (("check_pkg_config\\('smbclient'\\)") - "check_cc(lib='smbclient')") - ;; XXX Remove this when our Lua package provides a .pc file. - (("check_lua") - "check_cc(lib='lua')"))))) + "check_cc(lib='smbclient')"))))) ;; No check function defined. #:tests? #f)) (home-page "http://mpv.io/") -- cgit v1.2.3 From 2776d72c7cdea26ac997c4dc8a5190c788c36b29 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 10 Nov 2015 11:32:43 +0200 Subject: gnu: vte: Provide 0.36.5. * gnu/packages/gnome.scm (vte): Add version 0.36.5. --- gnu/packages/gnome.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 4bd9d9c881..8eec16df91 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -11,6 +11,7 @@ ;;; Copyright © 2015 Ricardo Wurmus ;;; Copyright © 2015 Mark H Weaver ;;; Copyright © 2015 David Thompson +;;; Copyright © 2015 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -1708,6 +1709,27 @@ gnome-terminal, but can also be used to embed a console/terminal in games, editors, IDEs, etc.") (license license:lgpl2.1+))) +;; provides vte 2.90, required for some terminal emulators +;; tilda bug: https://github.com/lanoxx/tilda/issues/94 +;; pantheon-terminal bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=788021 +;; roxterm bug: http://sourceforge.net/p/roxterm/bugs/107/ +;; pantheon-terminal, roxterm are not currently packaged +(define-public vte-0.36 + (package (inherit vte) + (name "vte") + (version "0.36.5") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/" name "/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "1psfnqsmxx4qzc55qwvb8jai824ix4pqcdqhgxk0g2zh82bcxhn2")))) + (propagated-inputs + `(("gtk" ,gtk+) + ("ncurses" ,ncurses))))) + ;; stable version for gtk2, required by xfce4-terminal. (define-public vte/gtk+-2 (package (inherit vte) -- cgit v1.2.3 From 6a7e1a180b79b722bbac606234103f78259e2e9b Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 24 Aug 2015 22:48:40 +0300 Subject: gnu: Add tilda. * gnu/packages/terminals.scm: New file. * gnu-system.am (GNU_SYSTEM_MODULES): Add it. --- gnu-system.am | 1 + gnu/packages/terminals.scm | 72 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 73 insertions(+) create mode 100644 gnu/packages/terminals.scm diff --git a/gnu-system.am b/gnu-system.am index c80f08678d..75914b7153 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -302,6 +302,7 @@ GNU_SYSTEM_MODULES = \ gnu/packages/tcl.scm \ gnu/packages/tcsh.scm \ gnu/packages/telephony.scm \ + gnu/packages/terminals.scm \ gnu/packages/texinfo.scm \ gnu/packages/texlive.scm \ gnu/packages/textutils.scm \ diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm new file mode 100644 index 0000000000..0c28c5d465 --- /dev/null +++ b/gnu/packages/terminals.scm @@ -0,0 +1,72 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2015 Efraim Flashner +;;; +;;; 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 terminals) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix build utils) + #:use-module (guix build-system gnu) + #:use-module (guix download) + #:use-module (guix packages) + #:use-module (gnu packages autotools) + #:use-module (gnu packages gettext) + #:use-module (gnu packages glib) + #:use-module (gnu packages gnome) + #:use-module (gnu packages gtk) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages wm) + #:use-module (gnu packages zip)) + +(define-public tilda + (package + (name "tilda") + (version "1.2.4") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/lanoxx/tilda/archive/" + "tilda-" version ".zip")) + (sha256 + (base32 + "06r7q0b1xjclagsnw0ilxhw5az5ddly2f7xc1lcwlrf337x0jrar")))) + (build-system gnu-build-system) + (arguments + `(#:phases (modify-phases %standard-phases + (add-before 'patch-source-shebangs 'autogen + (lambda _ ; Avoid running ./configure. + (substitute* "autogen.sh" + (("^.*\\$srcdir/configure.*") "")) + (zero? (system* "sh" "autogen.sh"))))))) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("gettext" ,gnu-gettext) + ("pkg-config" ,pkg-config) + ("unzip" ,unzip))) + (inputs + `(("glib" ,glib "bin") + ("gtk+" ,gtk+) + ("libconfuse" ,libconfuse) + ("vte" ,vte-0.36))) ; TODO: try to use vte-0.38+ in 1.3 + ; https://github.com/lanoxx/tilda/issues/94 + (synopsis "GTK+-based drop-down terminal") + (description "Tilda is a terminal emulator similar to normal terminals like +gnome-terminal (GNOME) or Konsole (KDE), with the difference that it drops down +from the edge of a screen when a certain configurable hotkey is pressed. This +is similar to the built-in consoles in some applications. Tilda is highly +configureable through a graphical wizard.") + (home-page "https://github.com/lanoxx/tilda") + (license license:gpl2+))) -- cgit v1.2.3 From 9c88f655e6533e2f84ebf7ee546596c85031441d Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 16 Nov 2015 14:16:22 +0100 Subject: graft: Graft files in a deterministic order. * guix/build/graft.scm (rewrite-directory)[rewrite-leaf]: Change to take a single parameter. Add call to 'lstat'. Factorize result of 'destination'. Use 'find-files' instead of 'file-system-fold'. --- guix/build/graft.scm | 60 +++++++++++++++++++++++----------------------------- 1 file changed, 26 insertions(+), 34 deletions(-) diff --git a/guix/build/graft.scm b/guix/build/graft.scm index 55f0f9410d..d29e671c67 100644 --- a/guix/build/graft.scm +++ b/guix/build/graft.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2014 Ludovic Courtès +;;; Copyright © 2014, 2015 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -21,7 +21,6 @@ #:use-module (rnrs bytevectors) #:use-module (rnrs io ports) #:use-module (ice-9 match) - #:use-module (ice-9 ftw) #:export (replace-store-references rewrite-directory)) @@ -93,38 +92,31 @@ file name pairs." (define (destination file) (string-append output (string-drop file prefix-len))) - (define (rewrite-leaf file stat result) - (case (stat:type stat) - ((symlink) - (let ((target (readlink file))) - (symlink (call-with-output-string - (lambda (output) - (replace-store-references (open-input-string target) - output mapping - store))) - (destination file)))) - ((regular) - (with-fluids ((%default-port-encoding #f)) - (call-with-input-file file - (lambda (input) - (call-with-output-file (destination file) - (lambda (output) - (replace-store-references input output mapping - store) - (chmod output (stat:perms stat)))))))) - (else - (error "unsupported file type" stat)))) + (define (rewrite-leaf file) + (let ((stat (lstat file)) + (dest (destination file))) + (mkdir-p (dirname dest)) + (case (stat:type stat) + ((symlink) + (let ((target (readlink file))) + (symlink (call-with-output-string + (lambda (output) + (replace-store-references (open-input-string target) + output mapping + store))) + dest))) + ((regular) + (with-fluids ((%default-port-encoding #f)) + (call-with-input-file file + (lambda (input) + (call-with-output-file dest + (lambda (output) + (replace-store-references input output mapping + store) + (chmod output (stat:perms stat)))))))) + (else + (error "unsupported file type" stat))))) - (file-system-fold (const #t) - rewrite-leaf - (lambda (directory stat result) ;down - (mkdir (destination directory))) - (const #t) ;up - (const #f) ;skip - (lambda (file stat errno result) ;error - (error "read error" file stat errno)) - #f - directory - lstat)) + (for-each rewrite-leaf (find-files directory))) ;;; graft.scm ends here -- cgit v1.2.3 From 333c376c4586d16b215b994240ad4a5ddaa74d03 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 16 Nov 2015 14:22:13 +0100 Subject: graft: Graft files in parallel. * guix/build/graft.scm (rewrite-directory): Use 'n-par-for-each' instead of 'for-each'. --- guix/build/graft.scm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/guix/build/graft.scm b/guix/build/graft.scm index d29e671c67..0a9cd3260c 100644 --- a/guix/build/graft.scm +++ b/guix/build/graft.scm @@ -21,6 +21,7 @@ #:use-module (rnrs bytevectors) #:use-module (rnrs io ports) #:use-module (ice-9 match) + #:use-module (ice-9 threads) #:export (replace-store-references rewrite-directory)) @@ -117,6 +118,7 @@ file name pairs." (else (error "unsupported file type" stat))))) - (for-each rewrite-leaf (find-files directory))) + (n-par-for-each (parallel-job-count) + rewrite-leaf (find-files directory))) ;;; graft.scm ends here -- cgit v1.2.3 From 3aab2c839fe04f503668029204e21358f901e62f Mon Sep 17 00:00:00 2001 From: David Thompson Date: Sat, 14 Nov 2015 13:56:40 -0500 Subject: gnu: Add devil. * gnu/packages/image.scm (devil): New variable. * gnu/packages/patches/devil-fix-libpng.patch: New file. * gnu-system.am (dist_patch_DATA): Add it. --- gnu-system.am | 1 + gnu/packages/image.scm | 52 +++++++++++++++++++++++++++++ gnu/packages/patches/devil-fix-libpng.patch | 36 ++++++++++++++++++++ 3 files changed, 89 insertions(+) create mode 100644 gnu/packages/patches/devil-fix-libpng.patch diff --git a/gnu-system.am b/gnu-system.am index 75914b7153..ccc1255c5b 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -433,6 +433,7 @@ dist_patch_DATA = \ gnu/packages/patches/cursynth-wave-rand.patch \ gnu/packages/patches/dbus-helper-search-path.patch \ gnu/packages/patches/dealii-p4est-interface.patch \ + gnu/packages/patches/devil-fix-libpng.patch \ gnu/packages/patches/diffutils-gets-undeclared.patch \ gnu/packages/patches/dfu-programmer-fix-libusb.patch \ gnu/packages/patches/doxygen-test.patch \ diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index 1acc5ee973..979d144ca4 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -666,3 +666,55 @@ channels.") (description "Libmng is the MNG (Multiple-image Network Graphics) reference library.") (license license:bsd-3))) + +(define-public devil + (package + (name "devil") + (version "1.7.8") + (source (origin + (method url-fetch) + (uri (string-append "http://downloads.sourceforge.net/openil/" + "DevIL-" version ".tar.gz")) + (sha256 + (base32 + "1zd850nn7nvkkhasrv7kn17kzgslr5ry933v6db62s4lr0zzlbv8")) + ;; Backported from upstream: + ;; https://github.com/DentonW/DevIL/commit/724194d7a9a91221a564579f64bdd6f0abd64219.patch + (patches (list (search-patch "devil-fix-libpng.patch"))) + (modules '((guix build utils))) + (snippet + ;; Fix old lcms include directives and lib flags. + '(substitute* '("configure" "src-IL/src/il_profiles.c") + (("-llcms") "-llcms2") + (("lcms/lcms\\.h") "lcms2/lcms2.h") + (("lcms\\.h") "lcms2.h"))))) + (build-system gnu-build-system) + (arguments + '(#:configure-flags '("--enable-ILUT=yes") ; build utility library + #:phases + (modify-phases %standard-phases + (add-before 'check 'fix-tests + (lambda* (#:key inputs #:allow-other-keys) + ;; Fix hard-coded /bin/bash reference. + (substitute* '("test/Makefile") + (("TESTS_ENVIRONMENT = /bin/bash") + (string-append "TESTS_ENVIRONMENT = " + (assoc-ref inputs "bash") + "/bin/bash"))) + #t))))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("lcms" ,lcms) + ("libjpeg" ,libjpeg) + ("libmng" ,libmng) + ("libpng" ,libpng) + ("libtiff" ,libtiff) + ("openexr" ,openexr) + ("zlib" ,zlib))) + (synopsis "Library for manipulating many image formats") + (description "Developer's Image Library (DevIL) is a library to develop +applications with support for many types of images. DevIL can load, save, +convert, manipulate, filter and display a wide variety of image formats.") + (home-page "http://openil.sourceforge.net") + (license license:lgpl2.1+))) diff --git a/gnu/packages/patches/devil-fix-libpng.patch b/gnu/packages/patches/devil-fix-libpng.patch new file mode 100644 index 0000000000..a8e90333a3 --- /dev/null +++ b/gnu/packages/patches/devil-fix-libpng.patch @@ -0,0 +1,36 @@ +From 724194d7a9a91221a564579f64bdd6f0abd64219 Mon Sep 17 00:00:00 2001 +From: Noah Mayr +Date: Sun, 1 Mar 2015 10:10:56 +0100 +Subject: [PATCH] Fixed deprecated libpng API usage. + +--- + src-IL/src/il_icon.c | 2 +- + src-IL/src/il_png.c | 4 ++-- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/src-IL/src/il_icon.c b/src-IL/src/il_icon.c +index 2ccb1a3..fd9475d 100644 +--- a/src-IL/src/il_icon.c ++++ b/src-IL/src/il_icon.c +@@ -525,7 +525,7 @@ ILboolean ico_readpng_get_image(ICOIMAGE *Icon, ILdouble display_exponent) + + // Expand low-bit-depth grayscale images to 8 bits + if (ico_color_type == PNG_COLOR_TYPE_GRAY && bit_depth < 8) { +- png_set_gray_1_2_4_to_8(ico_png_ptr); ++ png_set_expand_gray_1_2_4_to_8(ico_png_ptr); + } + + // Expand RGB images with transparency to full alpha channels +diff --git a/src-IL/src/il_png.c b/src-IL/src/il_png.c +index da9517d..2866508 100644 +--- a/src-IL/src/il_png.c ++++ b/src-IL/src/il_png.c +@@ -277,7 +277,7 @@ ILboolean readpng_get_image(ILdouble display_exponent) + + // Expand low-bit-depth grayscale images to 8 bits + if (png_color_type == PNG_COLOR_TYPE_GRAY && bit_depth < 8) { +- png_set_gray_1_2_4_to_8(png_ptr); ++ png_set_expand_gray_1_2_4_to_8(png_ptr); + } + + // Expand RGB images with transparency to full alpha channels -- cgit v1.2.3 From 83a4a70b504e158055e384c6a0e267c1270c6beb Mon Sep 17 00:00:00 2001 From: David Thompson Date: Sat, 14 Nov 2015 14:00:20 -0500 Subject: gnu: Add love. * gnu/packages/game-development.scm (love): New variable. --- gnu/packages/game-development.scm | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index fcebf2b548..1e3854aab1 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -48,7 +48,9 @@ #:use-module (gnu packages gtk) #:use-module (gnu packages sdl) #:use-module (gnu packages pkg-config) - #:use-module (gnu packages xiph)) + #:use-module (gnu packages xiph) + #:use-module (gnu packages lua) + #:use-module (gnu packages mp3)) (define-public bullet (package @@ -260,3 +262,35 @@ files can be accessed in the same way as you access files directly on a disk, and it makes it easy to ship a new archive that will override a previous archive on a per-file basis.") (license license:zlib))) + +(define-public love + (package + (name "love") + (version "0.9.2") + (source (origin + (method url-fetch) + (uri (string-append "https://bitbucket.org/rude/love/downloads/" + "love-" version "-linux-src.tar.gz")) + (sha256 + (base32 + "0wn1npr5gal5b1idh4a5fwc3f5c36lsbjd4r4d699rqlviid15d9")))) + (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("devil" ,devil) + ("freetype" ,freetype) + ("libmodplug" ,libmodplug) + ("libvorbis" ,libvorbis) + ("luajit" ,luajit) + ("mesa" ,mesa) + ("mpg123" ,mpg123) + ("openal" ,openal) + ("physfs" ,physfs) + ("sdl2" ,sdl2) + ("zlib" ,zlib))) + (synopsis "2D game framework for Lua") + (description "LÖVE is a framework for making 2D games in the Lua +programming language.") + (home-page "https://love2d.org/") + (license license:zlib))) -- cgit v1.2.3 From a4eb83b709349ebbfe72ed473d0f65cdf5c4cbc7 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 16 Nov 2015 15:51:43 +0100 Subject: gnu: eigen: Fix 'Cflags' value in 'eigen3.pc'. * gnu/packages/algebra.scm (eigen)[source]: Augment snippet to address . --- gnu/packages/algebra.scm | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm index 07dfaafdc3..fb3b3e94b3 100644 --- a/gnu/packages/algebra.scm +++ b/gnu/packages/algebra.scm @@ -399,7 +399,11 @@ cosine/ sine transforms or DCT/DST).") ;; anyway, so just skip them. '(substitute* "CMakeLists.txt" (("add_subdirectory\\(unsupported\\)") - "# Do not build the tests for unsupported features.\n"))))) + "# Do not build the tests for unsupported features.\n") + ;; Work around + ;; . + (("\"include/eigen3\"") + "\"${CMAKE_INSTALL_PREFIX}/include/eigen3\""))))) (build-system cmake-build-system) (arguments '(;; Turn off debugging symbols to save space. -- cgit v1.2.3 From 354f4fe2926d52fcd767022cd9b5ded319807e0e Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 16 Nov 2015 15:52:56 +0100 Subject: gnu: eigen: Use 'modify-phases'. * gnu/packages/algebra.scm (eigen)[arguments]: Use 'modify-phases' instead of 'alist-cons-before'. --- gnu/packages/algebra.scm | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm index fb3b3e94b3..41464ca882 100644 --- a/gnu/packages/algebra.scm +++ b/gnu/packages/algebra.scm @@ -413,19 +413,18 @@ cosine/ sine transforms or DCT/DST).") ;; . #:test-target "check" - #:phases (alist-cons-before - 'check 'build-tests - (lambda _ - ;; First build the tests, in parallel. - ;; See . - (let* ((cores (parallel-job-count)) - (dash-j (format #f "-j~a" cores))) - ;; These variables are supposed to be honored. - (setenv "EIGEN_MAKE_ARGS" dash-j) - (setenv "EIGEN_CTEST_ARGS" dash-j) + #:phases (modify-phases %standard-phases + (add-before 'check 'build-tests + (lambda _ + ;; First build the tests, in parallel. + ;; See . + (let* ((cores (parallel-job-count)) + (dash-j (format #f "-j~a" cores))) + ;; These variables are supposed to be honored. + (setenv "EIGEN_MAKE_ARGS" dash-j) + (setenv "EIGEN_CTEST_ARGS" dash-j) - (zero? (system* "make" "buildtests" dash-j)))) - %standard-phases))) + (zero? (system* "make" "buildtests" dash-j)))))))) (home-page "http://eigen.tuxfamily.org") (synopsis "C++ template library for linear algebra") (description -- cgit v1.2.3 From d3a33fe28d7933afda7bfa2e421bf0000c0c0eac Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 16 Nov 2015 16:01:33 +0100 Subject: gnu: eigen: Run 'ctest' in verbose mode. * gnu/packages/algebra.scm (eigen)[arguments]: Add "-V" in 'EIGEN_CTEST_ARGS'. --- gnu/packages/algebra.scm | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm index 41464ca882..75eaf26559 100644 --- a/gnu/packages/algebra.scm +++ b/gnu/packages/algebra.scm @@ -422,7 +422,11 @@ cosine/ sine transforms or DCT/DST).") (dash-j (format #f "-j~a" cores))) ;; These variables are supposed to be honored. (setenv "EIGEN_MAKE_ARGS" dash-j) - (setenv "EIGEN_CTEST_ARGS" dash-j) + + ;; Use '-V' to get more details in case of test + ;; failures. + (setenv "EIGEN_CTEST_ARGS" + (string-append "-V " dash-j)) (zero? (system* "make" "buildtests" dash-j)))))))) (home-page "http://eigen.tuxfamily.org") -- cgit v1.2.3 From 9832ecf09a87bf5e4dcedba0ac2cd1df89c3b361 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Mon, 16 Nov 2015 13:37:01 -0500 Subject: gnu: dovecot: Update to 2.2.19. * gnu/packages/mail.scm (dovecot): Update to 2.2.19. --- gnu/packages/mail.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index b27eed8bfe..7f8f5ca07f 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -678,7 +678,7 @@ facilities for checking incoming mail.") (define-public dovecot (package (name "dovecot") - (version "2.2.16") + (version "2.2.19") (source (origin (method url-fetch) @@ -686,7 +686,7 @@ facilities for checking incoming mail.") (version-major+minor version) "/" name "-" version ".tar.gz")) (sha256 (base32 - "1w6gg4h9mxg3i8faqpmgj19imzyy001b0v8ihch8ma3zl63i5kjn")))) + "17sf5aancad4pg1vx1606k99389wg76blpqzmnmxlz4hklzix7km")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) -- cgit v1.2.3 From 4ca02340691624316330619fc6fec5a5e68e00b7 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 17 Nov 2015 00:46:21 +0200 Subject: gnu: wget: Update to 1.17. * gnu/packages/wget.scm (wget): Update to 1.17. --- gnu/packages/wget.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/wget.scm b/gnu/packages/wget.scm index f4ccb66d91..2a4ae8aed7 100644 --- a/gnu/packages/wget.scm +++ b/gnu/packages/wget.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012 Nikita Karetnikov ;;; Copyright © 2014, 2015 Ludovic Courtès +;;; Copyright © 2015 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -32,7 +33,7 @@ (define-public wget (package (name "wget") - (version "1.16.3") + (version "1.17") (source (origin (method url-fetch) @@ -40,7 +41,7 @@ version ".tar.xz")) (sha256 (base32 - "0dzv5xf9qxc2bp4cyifmaghh3h464wbm73xiwcrvckf1ynqbgxv7")))) + "11xvs919a8xr595hs6hk323rkk7yshyfdfyfdhlahagkrcxdcsdx")))) (build-system gnu-build-system) (inputs `(("gnutls" ,gnutls) -- cgit v1.2.3 From ae916e02cbd4bd41b3f486d71f00f68b6fea4b7b Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Mon, 16 Nov 2015 11:16:16 +0800 Subject: gnu: Add ppp. * gnu/packages/samba.scm (ppp): New variable. --- gnu/packages/samba.scm | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/gnu/packages/samba.scm b/gnu/packages/samba.scm index d7223bc0ba..484eafb647 100644 --- a/gnu/packages/samba.scm +++ b/gnu/packages/samba.scm @@ -23,6 +23,7 @@ #:use-module (guix build-system gnu) #:use-module (guix licenses) #:use-module (gnu packages acl) + #:use-module (gnu packages admin) #:use-module (gnu packages popt) #:use-module (gnu packages openldap) #:use-module (gnu packages readline) @@ -196,3 +197,42 @@ Desktops into Active Directory environments using the winbind daemon.") "Talloc is a hierarchical, reference counted memory pool system with destructors. It is the core memory allocator used in Samba.") (license gpl3+))) ;; The bundled "replace" library uses LGPL3. + +(define-public ppp + (package + (name "ppp") + (version "2.4.7") + (source (origin + (method url-fetch) + (uri (string-append "https://www.samba.org/ftp/ppp/ppp-" + version ".tar.gz")) + (sha256 + (base32 + "0c7vrjxl52pdwi4ckrvfjr08b31lfpgwf3pp0cqy76a77vfs7q02")))) + (build-system gnu-build-system) + (arguments + '(#:tests? #f ; no check target + #:make-flags '("CC=gcc") + #:phases + (modify-phases %standard-phases + (add-before 'configure 'patch-Makefile + (lambda* (#:key inputs #:allow-other-keys) + (let ((libc (assoc-ref inputs "libc")) + (libpcap (assoc-ref inputs "libpcap"))) + (substitute* "pppd/Makefile.linux" + (("/usr/include/crypt\\.h") + (string-append libc "/include/crypt.h")) + (("/usr/include/pcap-bpf.h") + (string-append libpcap "/include/pcap-bpf.h"))))))))) + (inputs + `(("libpcap" ,libpcap))) + (synopsis "Implementation of the Point-to-Point Protocol") + (home-page "https://ppp.samba.org/") + (description + "The Point-to-Point Protocol (PPP) provides a standard way to establish +a network connection over a serial link. At present, this package supports IP +and IPV6 and the protocols layered above them, such as TCP and UDP.") + ;; pppd, pppstats and pppdump are under BSD-style notices. + ;; some of the pppd plugins are GPL'd. + ;; chat is public domain. + (license (list bsd-3 bsd-4 gpl2+ public-domain)))) -- cgit v1.2.3 From bf50f7b5870c08342a8eba7941923ed48404aa9c Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sat, 14 Nov 2015 17:18:02 +0100 Subject: gnu: Add prefix to license imports in (gnu packages imagemagick). * gnu/packages/imagemagick.scm: Import (guix licenses) with prefix "license:". --- gnu/packages/imagemagick.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/imagemagick.scm b/gnu/packages/imagemagick.scm index f154e19d35..43f14cb350 100644 --- a/gnu/packages/imagemagick.scm +++ b/gnu/packages/imagemagick.scm @@ -22,7 +22,7 @@ #:use-module (guix build-system gnu) #:use-module (guix build-system perl) #:use-module (guix download) - #:use-module ((guix licenses) #:select (fsf-free)) + #:use-module ((guix licenses) #:prefix license:) #:use-module (gnu packages) #:use-module (gnu packages algebra) #:use-module (gnu packages compression) @@ -104,7 +104,7 @@ including DPX, EXR, GIF, JPEG, JPEG-2000, PDF, PhotoCD, PNG, Postscript, SVG, and TIFF. Use ImageMagick to resize, flip, mirror, rotate, distort, shear and transform images, adjust image colors, apply various special effects, or draw text, lines, polygons, ellipses and Bézier curves.") - (license (fsf-free "http://www.imagemagick.org/script/license.php")))) + (license (license:fsf-free "http://www.imagemagick.org/script/license.php")))) (define-public perl-image-magick (package -- cgit v1.2.3 From ac838d0f8e65113356ba6cf63f0e47cecd2b29d4 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sat, 14 Nov 2015 17:19:04 +0100 Subject: gnu: Add GraphicsMagick. * gnu/packages/imagemagick.scm (graphicsmagick): New variable. --- gnu/packages/imagemagick.scm | 49 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/gnu/packages/imagemagick.scm b/gnu/packages/imagemagick.scm index 43f14cb350..a68e9aa159 100644 --- a/gnu/packages/imagemagick.scm +++ b/gnu/packages/imagemagick.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013, 2014, 2015 Ludovic Courtès ;;; Copyright © 2015 Eric Bavier +;;; Copyright © 2015 Ricardo Wurmus ;;; ;;; This file is part of GNU Guix. ;;; @@ -22,6 +23,7 @@ #:use-module (guix build-system gnu) #:use-module (guix build-system perl) #:use-module (guix download) + #:use-module (guix utils) #:use-module ((guix licenses) #:prefix license:) #:use-module (gnu packages) #:use-module (gnu packages algebra) @@ -149,3 +151,50 @@ Use it to create, edit, compose, or convert bitmap images from within a Perl script.") ;; See Magick.pm (license (package-license imagemagick)))) + +(define-public graphicsmagick + (package + (name "graphicsmagick") + (version "1.3.23") + (source (origin + (method url-fetch) + (uri (string-append "ftp://ftp.graphicsmagick.org/pub/" + "GraphicsMagick/" (version-major+minor version) + "/GraphicsMagick-" version ".tar.xz")) + (sha256 + (base32 + "03g6l2h8cmf231y1vma0z7x85070jm1ysgs9ppqcd3jj56jka9gx")))) + (build-system gnu-build-system) + (arguments + `(#:configure-flags + (list "--with-frozenpaths" + "--enable-shared=yes" + "--with-x=yes" + (string-append "--with-gs-font-dir=" + (assoc-ref %build-inputs "gs-fonts") + "/share/fonts/type1/ghostscript")))) + (inputs + `(("graphviz" ,graphviz) + ("ghostscript" ,ghostscript) + ("gs-fonts" ,gs-fonts) + ("lcms" ,lcms) + ("libx11" ,libx11) + ("libxml2" ,libxml2) + ("libtiff" ,libtiff) + ("libpng" ,libpng) + ("libjpeg" ,libjpeg) + ("freetype" ,freetype) + ("bzip2" ,bzip2) + ("xz" ,xz) + ("zlib" ,zlib))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (outputs '("out" ; 13 MiB + "doc")) ; ~7 MiB + (home-page "http://www.graphicsmagick.org") + (synopsis "Create, edit, compose, or convert bitmap images") + (description + "GraphicsMagick provides a comprehensive collection of utilities, +programming interfaces, and GUIs, to support file format conversion, image +processing, and 2D vector rendering.") + (license license:expat))) -- cgit v1.2.3 From 3279b7ec47ad33911309d3b58eea60002229458e Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sat, 14 Nov 2015 22:26:44 +0100 Subject: gnu: Add Scribus. * gnu/packages/scribus.scm: New file * gnu/packages/patches/scribus-qobject.scm: New file. * gnu-system.am (GNU_SYSTEM_MODULES, dist_patch_DATA): Add them. --- gnu-system.am | 2 + gnu/packages/patches/scribus-qobject.patch | 17 +++++++ gnu/packages/scribus.scm | 79 ++++++++++++++++++++++++++++++ 3 files changed, 98 insertions(+) create mode 100644 gnu/packages/patches/scribus-qobject.patch create mode 100644 gnu/packages/scribus.scm diff --git a/gnu-system.am b/gnu-system.am index ccc1255c5b..60f16bf8fc 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -281,6 +281,7 @@ GNU_SYSTEM_MODULES = \ gnu/packages/scanner.scm \ gnu/packages/scheme.scm \ gnu/packages/screen.scm \ + gnu/packages/scribus.scm \ gnu/packages/sdl.scm \ gnu/packages/search.scm \ gnu/packages/serveez.scm \ @@ -658,6 +659,7 @@ dist_patch_DATA = \ gnu/packages/patches/sed-hurd-path-max.patch \ gnu/packages/patches/scheme48-tests.patch \ gnu/packages/patches/scotch-test-threading.patch \ + gnu/packages/patches/scribus-qobject.patch \ gnu/packages/patches/sdl-libx11-1.6.patch \ gnu/packages/patches/serf-comment-style-fix.patch \ gnu/packages/patches/serf-deflate-buckets-test-fix.patch \ diff --git a/gnu/packages/patches/scribus-qobject.patch b/gnu/packages/patches/scribus-qobject.patch new file mode 100644 index 0000000000..91be932f1b --- /dev/null +++ b/gnu/packages/patches/scribus-qobject.patch @@ -0,0 +1,17 @@ +See upstream bug report: http://bugs.scribus.net/view.php?id=13102 + +scribus/sclayer.cpp | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/scribus/sclayer.cpp b/scribus/sclayer.cpp +index 502112b..4da7bd5 100644 +--- a/scribus/sclayer.cpp ++++ b/scribus/sclayer.cpp +@@ -9,6 +9,7 @@ for which a new license (GPL+exception) is in place. + + #include //necessary to avoid msvc warnings induced by SCRIBUS_API on ScLayers + early instanciation of templates + #include //necessary to avoid msvc warnings induced by SCRIBUS_API on ScLayers + early instanciation of templates ++#include + #include + + ScLayer::ScLayer(void) diff --git a/gnu/packages/scribus.scm b/gnu/packages/scribus.scm new file mode 100644 index 0000000000..864e5707d3 --- /dev/null +++ b/gnu/packages/scribus.scm @@ -0,0 +1,79 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2015 Ricardo Wurmus +;;; +;;; 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 scribus) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix utils) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix build-system cmake) + #:use-module (gnu packages) + #:use-module (gnu packages compression) + #:use-module (gnu packages cups) + #:use-module (gnu packages fontutils) + #:use-module (gnu packages ghostscript) + #:use-module (gnu packages gtk) + #:use-module (gnu packages image) + #:use-module (gnu packages linux) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages python) + #:use-module (gnu packages qt) + #:use-module (gnu packages imagemagick) + #:use-module (gnu packages xml)) + +(define-public scribus + (package + (name "scribus") + (version "1.5.0") + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/scribus/scribus-devel/" + version "/scribus-" version ".tar.xz")) + (sha256 + (base32 + "0s4f9q2nyqrrv4wc1ddf2admkmf9m33wmwp73ba5b4vi29nydnx3")) + (patches (list (search-patch "scribus-qobject.patch"))))) + (build-system cmake-build-system) + (arguments `(#:tests? #f)) ; no test target + (inputs + `(("cairo" ,cairo) + ("cups" ,cups) + ("graphicsmagick" ,graphicsmagick) + ("lcms" ,lcms) + ("libjpeg" ,libjpeg) + ("libtiff" ,libtiff) + ("libxml2" ,libxml2) + ("python" ,python-2) + ("freetype" ,freetype) + ("qt" ,qt) + ("zlib" ,zlib))) + (native-inputs + `(("util-linux" ,util-linux) + ("pkg-config" ,pkg-config))) + (home-page "http://scribus.net") + (synopsis "Desktop publishing and page layout program") + (description + "Scribus is a @dfn{desktop publishing} (DTP) application and can be used +for many tasks; from brochure design to newspapers, magazines, newsletters and +posters to technical documentation. Scribus supports professional DTP +features, such as CMYK color and a color management system to soft proof +images for high quality color printing, flexible PDF creation options, +Encapsulated PostScript import/export and creation of four color separations, +import of EPS/PS and SVG as native vector graphics, Unicode text including +right to left scripts such as Arabic and Hebrew via freetype.") + (license license:gpl2+))) -- cgit v1.2.3 From b7f4677999f9ad9f457088b69e1dc86e9664ec76 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 17 Nov 2015 09:38:01 +0100 Subject: ftp-client: Restrict to TCP/IP connections. Fixes . Regression introduced in 279ec1d. Reported by Chris Marusich . * guix/ftp-client.scm (ftp-open): Restrict sockets to SOCK_STREAM/IPPROTO_IP. --- guix/ftp-client.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/guix/ftp-client.scm b/guix/ftp-client.scm index f02d460061..e76f08afd4 100644 --- a/guix/ftp-client.scm +++ b/guix/ftp-client.scm @@ -140,8 +140,9 @@ TIMEOUT, an ETIMEDOUT error is raised." (let loop ((addresses addresses)) (let* ((ai (car addresses)) - (s (socket (addrinfo:fam ai) SOCK_STREAM ;TCP only - (addrinfo:protocol ai)))) + (s (socket (addrinfo:fam ai) + ;; TCP/IP only + SOCK_STREAM IPPROTO_IP))) (catch 'system-error (lambda () -- cgit v1.2.3 From 87450b12744bf1f508b6fd4ee11c00af35fcc4ee Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 17 Nov 2015 09:44:19 +0100 Subject: Thank Chris. --- THANKS | 1 + 1 file changed, 1 insertion(+) diff --git a/THANKS b/THANKS index eb6db7f37b..a3427bbde9 100644 --- a/THANKS +++ b/THANKS @@ -25,6 +25,7 @@ infrastructure help: Daniel Kochmański Matthew Lien Dave Love + Chris Marusich Niels Möller Cyprien Nicolas Yutaka Niibe -- cgit v1.2.3 From b494d198cde5a4569155dd8ea3c607cb5ab69f21 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 17 Nov 2015 21:32:58 +0200 Subject: gnu: youtube-dl: Update to 2015.11.15. * gnu/packages/video.scm (youtube-dl): Update to 2015.11.15. --- gnu/packages/video.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index fb4db6243c..6cc3aabad3 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -809,7 +809,7 @@ projects while introducing many more.") (define-public youtube-dl (package (name "youtube-dl") - (version "2015.11.13") + (version "2015.11.15") (source (origin (method url-fetch) (uri (string-append "http://youtube-dl.org/downloads/" @@ -817,7 +817,7 @@ projects while introducing many more.") version ".tar.gz")) (sha256 (base32 - "02140awgwvspnq226xpbc4clijmqkk8hlmfqhmmzzbihvs2b4xfx")))) + "0ik0nnsflshmjvg7niyfa85hmwy0vispn48vpapjljwxqgm4x5ih")))) (build-system python-build-system) (inputs `(("setuptools" ,python-setuptools))) (home-page "http://youtube-dl.org") -- cgit v1.2.3 From ba5dd1055fc97d96eb4c08ebfd61a7140ae7a94e Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Mon, 16 Nov 2015 11:48:28 +0800 Subject: gnu: Add network-manager. * gnu/packages/gnome.scm (%network-manager-glib-duplicate-test-patch) (network-manager): New variables. --- gnu/packages/gnome.scm | 95 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 8eec16df91..d699806a38 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -36,6 +36,7 @@ #:use-module (guix build-system gnu) #:use-module (guix build-system glib-or-gtk) #:use-module (gnu packages) + #:use-module (gnu packages admin) #:use-module (gnu packages autotools) #:use-module (gnu packages avahi) #:use-module (gnu packages base) @@ -45,6 +46,7 @@ #:use-module (gnu packages curl) #:use-module (gnu packages databases) #:use-module (gnu packages djvu) + #:use-module (gnu packages dns) #:use-module (gnu packages flex) #:use-module (gnu packages docbook) #:use-module (gnu packages enchant) @@ -68,6 +70,7 @@ #:use-module (gnu packages lua) #:use-module (gnu packages m4) #:use-module (gnu packages image) + #:use-module (gnu packages networking) #:use-module (gnu packages perl) #:use-module (gnu packages photo) #:use-module (gnu packages pkg-config) @@ -4094,3 +4097,95 @@ Evolution (hence the name), but is now used by other packages as well.") "Caribou is an input assistive technology intended for switch and pointer users.") (license license:lgpl2.1))) + +(define %network-manager-glib-duplicate-test-patch + (origin + (method url-fetch) + (uri (string-append + "http://cgit.freedesktop.org/NetworkManager/NetworkManager/" + "patch/libnm-core/tests/test-general.c" + "?id=874f455d6d47c5a34ed9861a6710f4b78202e0d6")) + (file-name "network-manager-glib-duplicate-test.patch") + (sha256 + (base32 + "1v0vpxzf0p0b1y5lmq8w7rjndp216gr60nbf2dpdz5rgxx3p3ml6")))) + +(define-public network-manager + (package + (name "network-manager") + (version "1.0.6") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/NetworkManager/" + (version-major+minor version) "/" + "NetworkManager-" version ".tar.xz")) + (sha256 + (base32 + "1galh9j95yw33iv1jj8zz0h88ahx8gm5mqmam7zq9f730cj01siq")) + (patches (list %network-manager-glib-duplicate-test-patch)))) + (build-system gnu-build-system) + (outputs '("out" + "doc")) ; 8 MiB of gtk-doc HTML + (arguments + '(#:configure-flags + (let ((out (assoc-ref %outputs "out")) + (doc (assoc-ref %outputs "doc")) + (dhclient (string-append (assoc-ref %build-inputs "isc-dhcp") + "/sbin/dhclient"))) + (list "--with-crypto=gnutls" + "--disable-config-plugin-ibft" + "--sysconfdir=/etc" + "--localstatedir=/var" + (string-append "--with-udev-dir=" + out "/lib/udev") + (string-append "--with-dbus-sys-dir=" + out "/etc/dbus-1/system.d") + (string-append "--with-html-dir=" + doc "/share/gtk-doc/html") + (string-append "--with-dhclient=" dhclient))) + #:phases + (modify-phases %standard-phases + (add-before 'check 'pre-check + (lambda _ + ;; For the missing /etc/machine-id. + (setenv "DBUS_FATAL_WARNINGS" "0") + #t)) + (replace 'install + (lambda _ + (zero? (system* "make" + "sysconfdir=/tmp" + "localstatedir=/tmp" + "install"))))))) + (native-inputs + `(("glib:bin" ,glib "bin") ; for gdbus-codegen + ("gobject-introspection" ,gobject-introspection) + ("intltool" ,intltool) + ("pkg-config" ,pkg-config) + ;; For testing. + ("python" ,python-wrapper) + ("python-dbus" ,python-dbus) + ("python-pygobject" ,python-pygobject))) + (inputs + `(("dbus-glib" ,dbus-glib) + ("dnsmasq" ,dnsmasq) + ("gnutls" ,gnutls) + ("iptables" ,iptables) + ("isc-dhcp" ,isc-dhcp) + ("libgcrypt" ,libgcrypt) + ("libgudev" ,libgudev) + ("libndp" ,libndp) + ("libnl" ,libnl) + ("libsoup" ,libsoup) + ("polkit" ,polkit) + ("ppp" ,ppp) + ("readline" ,readline) + ("util-linux" ,util-linux))) + (synopsis "Network connection manager") + (home-page "http://www.gnome.org/projects/NetworkManager/") + (description + "NetworkManager is a system network service that manages your network +devices and connections, attempting to keep active network connectivity when +available. It manages ethernet, WiFi, mobile broadband (WWAN), and PPPoE +devices, and provides VPN integration with a variety of different VPN +services.") + (license license:gpl2+))) -- cgit v1.2.3 From 4d62a9d304e17fa4793d557f6e065a0998e56e70 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Mon, 16 Nov 2015 12:34:53 +0800 Subject: gnu: Add network-manager-applet. * gnu/packages/gnome.scm (network-manager-applet): New variable. --- gnu/packages/gnome.scm | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index d699806a38..0bd4c4e9b6 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -4189,3 +4189,38 @@ available. It manages ethernet, WiFi, mobile broadband (WWAN), and PPPoE devices, and provides VPN integration with a variety of different VPN services.") (license license:gpl2+))) + +(define-public network-manager-applet + (package + (name "network-manager-applet") + (version "1.0.6") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/" name "/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "1yj0m6fb9v12d0di0rfmk3hx1vmygjkiff2c476rf792sbh56kax")))) + (build-system glib-or-gtk-build-system) + (arguments '(#:configure-flags '("--disable-migration"))) + (native-inputs + `(("intltool" ,intltool) + ("gobject-introspection" ,gobject-introspection) + ("pkg-config" ,pkg-config))) + (propagated-inputs + ;; libnm-gtk.pc refers to all these. + `(("dbus-glib" ,dbus-glib) + ("gtk+" ,gtk+) + ("network-manager" ,network-manager))) + (inputs + `(("iso-codes" ,iso-codes) + ("libgudev" ,libgudev) + ("libnotify" ,libnotify) + ("libsecret" ,libsecret))) + (synopsis "Applet for managing network connections") + (home-page "http://www.gnome.org/projects/NetworkManager/") + (description + "This package contains a systray applet for NetworkManager. It displays +the available networks and allows users to easily switch between them.") + (license license:gpl2+))) -- cgit v1.2.3 From 49846012f098be181ca84d66233edb07fbc77d67 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 18 Nov 2015 08:36:27 +0200 Subject: Revert "gnu: wget: Update to 1.17." This reverts commit 4ca02340691624316330619fc6fec5a5e68e00b7. --- gnu/packages/wget.scm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/gnu/packages/wget.scm b/gnu/packages/wget.scm index 2a4ae8aed7..f4ccb66d91 100644 --- a/gnu/packages/wget.scm +++ b/gnu/packages/wget.scm @@ -1,7 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012 Nikita Karetnikov ;;; Copyright © 2014, 2015 Ludovic Courtès -;;; Copyright © 2015 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -33,7 +32,7 @@ (define-public wget (package (name "wget") - (version "1.17") + (version "1.16.3") (source (origin (method url-fetch) @@ -41,7 +40,7 @@ version ".tar.xz")) (sha256 (base32 - "11xvs919a8xr595hs6hk323rkk7yshyfdfyfdhlahagkrcxdcsdx")))) + "0dzv5xf9qxc2bp4cyifmaghh3h464wbm73xiwcrvckf1ynqbgxv7")))) (build-system gnu-build-system) (inputs `(("gnutls" ,gnutls) -- cgit v1.2.3 From f7d17ac7565b6b1d005ff735180e5b24c9bf32cc Mon Sep 17 00:00:00 2001 From: Erik Edrosa Date: Sun, 15 Nov 2015 20:29:46 -0500 Subject: gnu: Add python-pystache. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/python.scm (python-pystache, python2-pystache): New variables. Signed-off-by: Ludovic Courtès --- gnu/packages/python.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 4e54ef94f5..508479b250 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -12,6 +12,7 @@ ;;; Copyright © 2015 Eric Dvorsak ;;; Copyright © 2015 Leo Famulari ;;; Copyright © 2015 Ben Woodcroft +;;; Copyright © 2015 Erik Edrosa ;;; ;;; This file is part of GNU Guix. ;;; @@ -2352,6 +2353,29 @@ written in pure Python.") (define-public python2-jinja2 (package-with-python2 python-jinja2)) +(define-public python-pystache + (package + (name "python-pystache") + (version "0.5.4") + (source (origin + (method url-fetch) + (uri (pypi-uri "pystache" version)) + (sha256 + (base32 + "0nmqsfmiw4arjxqkmf9z66ml950pcdjk6aq4gin4sywmzdjw5fzp")))) + (build-system python-build-system) + (native-inputs + `(("python-setuptools" ,python-setuptools))) + (home-page "http://defunkt.io/pystache/") + (synopsis "Python logic-less template engine") + (description + "Pystache is a Python implementation of the framework agnostic, +logic-free templating system Mustache.") + (license license:expat))) + +(define-public python2-pystache + (package-with-python2 python-pystache)) + (define-public python-joblib (package (name "python-joblib") -- cgit v1.2.3 From f836fb8d0ce2d4170cd4364cccb1f10df664e33e Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 18 Nov 2015 14:06:31 +0100 Subject: gnu: zynaddsubfx: Update to 2.5.2. * gnu/packages/music.scm (zynaddsubfx): Update to 2.5.2. --- gnu/packages/music.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index baedf939e4..a217a89a19 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -774,7 +774,7 @@ browser.") (define-public zynaddsubfx (package (name "zynaddsubfx") - (version "2.5.1") + (version "2.5.2") (source (origin (method url-fetch) (uri (string-append @@ -782,7 +782,7 @@ browser.") version "/zynaddsubfx-" version ".tar.gz")) (sha256 (base32 - "01c4v5lbzard6y00cjq3b6a50cafqwfwibzng9gdsajczhnbkqz2")))) + "11yrady7xwfrzszkk2fvq81ymv99mq474h60qnirk27khdygk24m")))) (build-system cmake-build-system) (arguments `(#:phases -- cgit v1.2.3 From 3698a77588250134f7e32f7b18d652ad7ce55004 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Wed, 18 Nov 2015 09:09:29 -0500 Subject: gnu: python-cryptography-vectors: Update to 1.0.2. * gnu/packages/python.scm (python-cryptography-vectors): Update to 1.0.2. --- gnu/packages/python.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 508479b250..5a83e945ad 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -5575,7 +5575,7 @@ responses, rather than doing any computation.") (define-public python-cryptography-vectors (package (name "python-cryptography-vectors") - (version "1.0.1") + (version "1.0.2") (source (origin (method url-fetch) @@ -5584,7 +5584,7 @@ responses, rather than doing any computation.") version ".tar.gz")) (sha256 (base32 - "1i2chlyhlx4792di82fqzcy9wz0gnnc661bj46zr794ip4629sp4")))) + "0dx98kcypmarwwhi6rjwy30ridys2ja6mc6mjf0svd4nllkaljdq")))) (build-system python-build-system) (native-inputs `(("python-setuptools" ,python-setuptools))) -- cgit v1.2.3 From 7f51b663b01ea10060410ffa9a69ae28c184f6c1 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Wed, 18 Nov 2015 09:11:30 -0500 Subject: gnu: python-cryptography: Update to 1.0.2. * gnu/packages/python.scm (python-cryptography): Update to 1.0.2. --- gnu/packages/python.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 5a83e945ad..dff7948cb2 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -5601,7 +5601,7 @@ responses, rather than doing any computation.") (define-public python-cryptography (package (name "python-cryptography") - (version "1.0.1") + (version "1.0.2") (source (origin (method url-fetch) @@ -5609,7 +5609,7 @@ responses, rather than doing any computation.") "cryptography/cryptography-" version ".tar.gz")) (sha256 (base32 - "1lxzvhlyl6h6nm77n34622rcj2cxnx220x9vgjlw76wjd8m0kqyg")))) + "1jmcidddbbgdavvnvjjc0pda4b9a5i9idsivchn69pqxx68x8k6n")))) (build-system python-build-system) (inputs `(("openssl" ,openssl))) -- cgit v1.2.3 From f4a4a71885f5ad6db36f8b83a1b87e86d2dbbea4 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Wed, 18 Nov 2015 09:44:37 -0500 Subject: gnu: python-tornado: Use the preferred home-page. * gnu/packages/python.scm (python-tornado)[home-page]: Use the preferred one. --- gnu/packages/python.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index dff7948cb2..ecf02ddb8b 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -4751,7 +4751,7 @@ It is written entirely in Python.") `(("python-certifi" ,python-certifi))) (native-inputs `(("python-setuptools" ,python-setuptools))) - (home-page "https://pypi.python.org/pypi/tornado/4.1") + (home-page "http://www.tornadoweb.org/") (synopsis "Python web framework and asynchronous networking library") (description "Tornado is a Python web framework and asynchronous networking library, -- cgit v1.2.3 From e33cf9a69ae20d6d3098a1287d9247b1e32c7402 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 18 Nov 2015 17:35:14 +0100 Subject: gnu: weechat: Use 'modify-phases'. * gnu/packages/weechat.scm (weechat)[arguments]: Use 'modify-phases'. Remove 'fix-file' phase. --- gnu/packages/weechat.scm | 30 ++++++++++++------------------ 1 file changed, 12 insertions(+), 18 deletions(-) diff --git a/gnu/packages/weechat.scm b/gnu/packages/weechat.scm index d88ad53166..18508dd09d 100644 --- a/gnu/packages/weechat.scm +++ b/gnu/packages/weechat.scm @@ -47,11 +47,11 @@ (name "weechat") (version "1.3") (source (origin - (method url-fetch) - (uri (string-append "http://weechat.org/files/src/weechat-" + (method url-fetch) + (uri (string-append "http://weechat.org/files/src/weechat-" version ".tar.gz")) - (sha256 - (base32 "13b7dfs3sn71c51fi0bli5rzlsppil6gg1lzik3k8l43yhhqyv2w")))) + (sha256 + (base32 "13b7dfs3sn71c51fi0bli5rzlsppil6gg1lzik3k8l43yhhqyv2w")))) (build-system gnu-build-system) (native-inputs `(("autoconf" ,autoconf) ("pkg-config" ,pkg-config) @@ -75,20 +75,14 @@ ("python" ,python-2) ("perl" ,perl) ("tcl" ,tcl))) - (arguments `(#:configure-flags (list - (string-append - "--with-tclconfig=" - (assoc-ref %build-inputs "tcl") "/lib")) - #:phases (alist-cons-after - 'autogen 'fix-file - (lambda _ - (substitute* "configure" - (("/usr/bin/file") (which "file")))) - (alist-cons-before - 'configure 'autogen - (lambda _ - (zero? (system* "./autogen.sh"))) - %standard-phases)))) + (arguments + `(#:configure-flags (list (string-append + "--with-tclconfig=" + (assoc-ref %build-inputs "tcl") "/lib")) + #:phases (modify-phases %standard-phases + (add-before 'configure 'autogen + (lambda _ + (zero? (system* "./autogen.sh"))))))) (synopsis "Extensible chat client") (description "WeeChat (Wee Enhanced Environment for Chat) is an Internet Relay Chat client, which is designed to be light and fast. -- cgit v1.2.3 From a9346faee6f61d7a2b0e066b110c9ce660827dbd Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 18 Nov 2015 17:42:44 +0100 Subject: gnu: weechat: Record the absolute file name of 'python'. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes . Reported by Luis Felipe López Acevedo . * gnu/packages/weechat.scm (weechat)[arguments]: Add 'set-python-file-name' phase. --- gnu/packages/weechat.scm | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/gnu/packages/weechat.scm b/gnu/packages/weechat.scm index 18508dd09d..c0fd8c6c88 100644 --- a/gnu/packages/weechat.scm +++ b/gnu/packages/weechat.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright 2014 Kevin Lemonnier +;;; Copyright 2015 Ludovic Courts ;;; ;;; This file is part of GNU Guix. ;;; @@ -82,7 +83,15 @@ #:phases (modify-phases %standard-phases (add-before 'configure 'autogen (lambda _ - (zero? (system* "./autogen.sh"))))))) + (zero? (system* "./autogen.sh")))) + (add-before 'build 'set-python-file-name + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "src/plugins/python/weechat-python.c" + (("python2_bin = .*;") + (string-append "python2_bin = \"" + (assoc-ref inputs "python") + "/bin/python\";\n"))) + #t))))) (synopsis "Extensible chat client") (description "WeeChat (Wee Enhanced Environment for Chat) is an Internet Relay Chat client, which is designed to be light and fast. -- cgit v1.2.3 From b567abcf1afb13b4f12e25df436db99a72e56443 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 18 Nov 2015 18:01:30 +0100 Subject: gnu: weechat: Encode as UTF-8. * gnu/packages/weechat.scm: Reencode as UTF-8. --- gnu/packages/weechat.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/weechat.scm b/gnu/packages/weechat.scm index c0fd8c6c88..48250302c3 100644 --- a/gnu/packages/weechat.scm +++ b/gnu/packages/weechat.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright 2014 Kevin Lemonnier -;;; Copyright 2015 Ludovic Courts +;;; Copyright © 2014 Kevin Lemonnier +;;; Copyright © 2015 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; -- cgit v1.2.3 From 7be4a4b0ae68de0974e0ac6a4e313f1001bcd73d Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 18 Nov 2015 18:01:50 +0100 Subject: gnu: weechat: Fix patching of assignments to 'python2_bin'. Fixes a regression introduced in a9346fa. * gnu/packages/weechat.scm (weechat)[arguments]: Make sure PYTHON2_BIN can be freed with 'free'. --- gnu/packages/weechat.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/weechat.scm b/gnu/packages/weechat.scm index 48250302c3..27349ec60d 100644 --- a/gnu/packages/weechat.scm +++ b/gnu/packages/weechat.scm @@ -87,10 +87,10 @@ (add-before 'build 'set-python-file-name (lambda* (#:key inputs #:allow-other-keys) (substitute* "src/plugins/python/weechat-python.c" - (("python2_bin = .*;") - (string-append "python2_bin = \"" + (("python2_bin = weechat_python_get_python2_bin.*;") + (string-append "python2_bin = strdup (\"" (assoc-ref inputs "python") - "/bin/python\";\n"))) + "/bin/python\");\n"))) #t))))) (synopsis "Extensible chat client") (description "WeeChat (Wee Enhanced Environment for Chat) is an -- cgit v1.2.3 From c797fabe79619832ec1189294b2bc22397c54457 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 18 Nov 2015 12:17:42 +0100 Subject: services: Export udev-configuration procedures. * gnu/services/base.scm (udev-configuration, udev-configuration?, udev-configuration-rules): Export. --- gnu/services/base.scm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/gnu/services/base.scm b/gnu/services/base.scm index 291f1a0c58..64938c1f09 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -51,6 +51,10 @@ host-name-service console-keymap-service console-font-service + + udev-configuration + udev-configuration? + udev-configuration-rules udev-service-type udev-service -- cgit v1.2.3 From 21ef9843e4d0ea665acd2070ef589c3c4d0bd1b0 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Wed, 18 Nov 2015 17:47:17 -0500 Subject: Revert "gnu: libpng: Use 1.5.24 as a replacement [fixes CVE-2015-8126]." This reverts commit 1b076e630f4a7245d14634b047e1d1a91ee2659e. --- gnu/packages/image.scm | 29 +++++++---------------------- 1 file changed, 7 insertions(+), 22 deletions(-) diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index 979d144ca4..1577bccfd0 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -47,28 +47,23 @@ #:use-module (guix build-system cmake) #:use-module (srfi srfi-1)) -(define (libpng-urls version) - "Return a list of URLs for libpng VERSION." - ;; Note: upstream removes older tarballs. - (list (string-append "mirror://sourceforge/libpng/libpng15/" - version "/libpng-" version ".tar.xz") - (string-append - "ftp://ftp.simplesystems.org/pub/libpng/png/src" - "/libpng15/libpng-" version ".tar.xz"))) - (define-public libpng (package (name "libpng") (version "1.5.21") (source (origin (method url-fetch) - (uri (libpng-urls version)) + + ;; Note: upstream removes older tarballs. + (uri (list (string-append "mirror://sourceforge/libpng/libpng15/" + version "/libpng-" version ".tar.xz") + (string-append + "ftp://ftp.simplesystems.org/pub/libpng/png/src" + "/libpng15/libpng-" version ".tar.xz"))) (sha256 (base32 "19yvzw6sf9gf7v25ha9bla8bw1nijh82wj8ag6brjj3hpij1q5dm")))) (build-system gnu-build-system) - (replacement libpng-1.5.24) ;CVE-2015-8126 - ;; libpng.la says "-lz", so propagate it. (propagated-inputs `(("zlib" ,zlib))) @@ -79,16 +74,6 @@ library. It supports almost all PNG features and is extensible.") (license license:zlib) (home-page "http://www.libpng.org/pub/png/libpng.html"))) -(define libpng-1.5.24 - (package - (inherit libpng) - (source (origin - (method url-fetch) - (uri (libpng-urls "1.5.24")) - (sha256 - (base32 - "1qhvfk1ypsaf6q6xkspyqqzmghpbahhq54ms8fa5ssqkyds38bmr")))))) - (define-public libjpeg (package (name "libjpeg") -- cgit v1.2.3 From 328a14e869c01ae4e33120a08a5d60c719263684 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Sun, 15 Nov 2015 13:16:18 -0500 Subject: gnu: libpng: Update to 1.5.24 [fixes CVE-2015-8126]. * gnu/packages/image.scm (libpng): Update to 1.5.24. --- gnu/packages/image.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index 1577bccfd0..37221b0c27 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -50,7 +50,7 @@ (define-public libpng (package (name "libpng") - (version "1.5.21") + (version "1.5.24") (source (origin (method url-fetch) @@ -61,7 +61,7 @@ "ftp://ftp.simplesystems.org/pub/libpng/png/src" "/libpng15/libpng-" version ".tar.xz"))) (sha256 - (base32 "19yvzw6sf9gf7v25ha9bla8bw1nijh82wj8ag6brjj3hpij1q5dm")))) + (base32 "1qhvfk1ypsaf6q6xkspyqqzmghpbahhq54ms8fa5ssqkyds38bmr")))) (build-system gnu-build-system) ;; libpng.la says "-lz", so propagate it. -- cgit v1.2.3 From ee6bb0cc763507b165674dbe03c6ae5d26c8da5c Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Sun, 15 Nov 2015 14:16:57 -0500 Subject: gnu: libxml2: Add fixes for CVE-2015-{1819,7941,7942,8035} and other bugs. * gnu/packages/patches/libxml2-CVE-2015-1819.patch, gnu/packages/patches/libxml2-CVE-2015-7941-pt1.patch, gnu/packages/patches/libxml2-CVE-2015-7941-pt2.patch, gnu/packages/patches/libxml2-CVE-2015-7942-pt1.patch, gnu/packages/patches/libxml2-CVE-2015-7942-pt2.patch, gnu/packages/patches/libxml2-CVE-2015-8035.patch, gnu/packages/patches/libxml2-bug-737840.patch, gnu/packages/patches/libxml2-bug-738805.patch, gnu/packages/patches/libxml2-bug-746048.patch, gnu/packages/patches/libxml2-bug-747437.patch, gnu/packages/patches/libxml2-bug-751603.patch, gnu/packages/patches/libxml2-bug-751631.patch, gnu/packages/patches/libxml2-bug-754946.patch, gnu/packages/patches/libxml2-bug-754947.patch, gnu/packages/patches/libxml2-bug-755857.patch, gnu/packages/patches/libxml2-fix-catalog-corruption.patch, gnu/packages/patches/libxml2-id-attrs-in-xmlSetTreeDoc.patch, gnu/packages/patches/libxml2-node-sort-order-pt1.patch, gnu/packages/patches/libxml2-node-sort-order-pt2.patch: New files. * gnu-system.am (dist_patch_DATA): Add them. * gnu/packages/xml.scm (libxml2)[source]: Add patches. --- gnu-system.am | 19 +++ gnu/packages/patches/libxml2-CVE-2015-1819.patch | 176 +++++++++++++++++++++ .../patches/libxml2-CVE-2015-7941-pt1.patch | 32 ++++ .../patches/libxml2-CVE-2015-7941-pt2.patch | 49 ++++++ .../patches/libxml2-CVE-2015-7942-pt1.patch | 32 ++++ .../patches/libxml2-CVE-2015-7942-pt2.patch | 28 ++++ gnu/packages/patches/libxml2-CVE-2015-8035.patch | 31 ++++ gnu/packages/patches/libxml2-bug-737840.patch | 88 +++++++++++ gnu/packages/patches/libxml2-bug-738805.patch | 31 ++++ gnu/packages/patches/libxml2-bug-746048.patch | 65 ++++++++ gnu/packages/patches/libxml2-bug-747437.patch | 46 ++++++ gnu/packages/patches/libxml2-bug-751603.patch | 38 +++++ gnu/packages/patches/libxml2-bug-751631.patch | 35 ++++ gnu/packages/patches/libxml2-bug-754946.patch | 132 ++++++++++++++++ gnu/packages/patches/libxml2-bug-754947.patch | 103 ++++++++++++ gnu/packages/patches/libxml2-bug-755857.patch | 43 +++++ .../patches/libxml2-fix-catalog-corruption.patch | 29 ++++ .../libxml2-id-attrs-in-xmlSetTreeDoc.patch | 36 +++++ .../patches/libxml2-node-sort-order-pt1.patch | 33 ++++ .../patches/libxml2-node-sort-order-pt2.patch | 37 +++++ gnu/packages/xml.scm | 23 ++- 21 files changed, 1105 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/libxml2-CVE-2015-1819.patch create mode 100644 gnu/packages/patches/libxml2-CVE-2015-7941-pt1.patch create mode 100644 gnu/packages/patches/libxml2-CVE-2015-7941-pt2.patch create mode 100644 gnu/packages/patches/libxml2-CVE-2015-7942-pt1.patch create mode 100644 gnu/packages/patches/libxml2-CVE-2015-7942-pt2.patch create mode 100644 gnu/packages/patches/libxml2-CVE-2015-8035.patch create mode 100644 gnu/packages/patches/libxml2-bug-737840.patch create mode 100644 gnu/packages/patches/libxml2-bug-738805.patch create mode 100644 gnu/packages/patches/libxml2-bug-746048.patch create mode 100644 gnu/packages/patches/libxml2-bug-747437.patch create mode 100644 gnu/packages/patches/libxml2-bug-751603.patch create mode 100644 gnu/packages/patches/libxml2-bug-751631.patch create mode 100644 gnu/packages/patches/libxml2-bug-754946.patch create mode 100644 gnu/packages/patches/libxml2-bug-754947.patch create mode 100644 gnu/packages/patches/libxml2-bug-755857.patch create mode 100644 gnu/packages/patches/libxml2-fix-catalog-corruption.patch create mode 100644 gnu/packages/patches/libxml2-id-attrs-in-xmlSetTreeDoc.patch create mode 100644 gnu/packages/patches/libxml2-node-sort-order-pt1.patch create mode 100644 gnu/packages/patches/libxml2-node-sort-order-pt2.patch diff --git a/gnu-system.am b/gnu-system.am index 60f16bf8fc..b49ddf0525 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -571,6 +571,25 @@ dist_patch_DATA = \ gnu/packages/patches/libwmf-CVE-2015-0848+CVE-2015-4588.patch \ gnu/packages/patches/libwmf-CVE-2015-4695.patch \ gnu/packages/patches/libwmf-CVE-2015-4696.patch \ + gnu/packages/patches/libxml2-CVE-2015-1819.patch \ + gnu/packages/patches/libxml2-CVE-2015-7941-pt1.patch \ + gnu/packages/patches/libxml2-CVE-2015-7941-pt2.patch \ + gnu/packages/patches/libxml2-CVE-2015-7942-pt1.patch \ + gnu/packages/patches/libxml2-CVE-2015-7942-pt2.patch \ + gnu/packages/patches/libxml2-CVE-2015-8035.patch \ + gnu/packages/patches/libxml2-bug-737840.patch \ + gnu/packages/patches/libxml2-bug-738805.patch \ + gnu/packages/patches/libxml2-bug-746048.patch \ + gnu/packages/patches/libxml2-bug-747437.patch \ + gnu/packages/patches/libxml2-bug-751603.patch \ + gnu/packages/patches/libxml2-bug-751631.patch \ + gnu/packages/patches/libxml2-bug-754946.patch \ + gnu/packages/patches/libxml2-bug-754947.patch \ + gnu/packages/patches/libxml2-bug-755857.patch \ + gnu/packages/patches/libxml2-fix-catalog-corruption.patch \ + gnu/packages/patches/libxml2-id-attrs-in-xmlSetTreeDoc.patch \ + gnu/packages/patches/libxml2-node-sort-order-pt1.patch \ + gnu/packages/patches/libxml2-node-sort-order-pt2.patch \ gnu/packages/patches/lirc-localstatedir.patch \ gnu/packages/patches/libpthread-glibc-preparation.patch \ gnu/packages/patches/lm-sensors-hwmon-attrs.patch \ diff --git a/gnu/packages/patches/libxml2-CVE-2015-1819.patch b/gnu/packages/patches/libxml2-CVE-2015-1819.patch new file mode 100644 index 0000000000..58461c73b2 --- /dev/null +++ b/gnu/packages/patches/libxml2-CVE-2015-1819.patch @@ -0,0 +1,176 @@ +From 213f1fe0d76d30eaed6e5853057defc43e6df2c9 Mon Sep 17 00:00:00 2001 +From: Daniel Veillard +Date: Tue, 14 Apr 2015 17:41:48 +0800 +Subject: [PATCH] CVE-2015-1819 Enforce the reader to run in constant memory + +One of the operation on the reader could resolve entities +leading to the classic expansion issue. Make sure the +buffer used for xmlreader operation is bounded. +Introduce a new allocation type for the buffers for this effect. +--- + buf.c | 43 ++++++++++++++++++++++++++++++++++++++++++- + include/libxml/tree.h | 3 ++- + xmlreader.c | 20 +++++++++++++++++++- + 3 files changed, 63 insertions(+), 3 deletions(-) + +diff --git a/buf.c b/buf.c +index 6efc7b6..07922ff 100644 +--- a/buf.c ++++ b/buf.c +@@ -27,6 +27,7 @@ + #include + #include + #include ++#include /* for XML_MAX_TEXT_LENGTH */ + #include "buf.h" + + #define WITH_BUFFER_COMPAT +@@ -299,7 +300,8 @@ xmlBufSetAllocationScheme(xmlBufPtr buf, + if ((scheme == XML_BUFFER_ALLOC_DOUBLEIT) || + (scheme == XML_BUFFER_ALLOC_EXACT) || + (scheme == XML_BUFFER_ALLOC_HYBRID) || +- (scheme == XML_BUFFER_ALLOC_IMMUTABLE)) { ++ (scheme == XML_BUFFER_ALLOC_IMMUTABLE) || ++ (scheme == XML_BUFFER_ALLOC_BOUNDED)) { + buf->alloc = scheme; + if (buf->buffer) + buf->buffer->alloc = scheme; +@@ -458,6 +460,18 @@ xmlBufGrowInternal(xmlBufPtr buf, size_t len) { + size = buf->use + len + 100; + #endif + ++ if (buf->alloc == XML_BUFFER_ALLOC_BOUNDED) { ++ /* ++ * Used to provide parsing limits ++ */ ++ if ((buf->use + len >= XML_MAX_TEXT_LENGTH) || ++ (buf->size >= XML_MAX_TEXT_LENGTH)) { ++ xmlBufMemoryError(buf, "buffer error: text too long\n"); ++ return(0); ++ } ++ if (size >= XML_MAX_TEXT_LENGTH) ++ size = XML_MAX_TEXT_LENGTH; ++ } + if ((buf->alloc == XML_BUFFER_ALLOC_IO) && (buf->contentIO != NULL)) { + size_t start_buf = buf->content - buf->contentIO; + +@@ -739,6 +753,15 @@ xmlBufResize(xmlBufPtr buf, size_t size) + CHECK_COMPAT(buf) + + if (buf->alloc == XML_BUFFER_ALLOC_IMMUTABLE) return(0); ++ if (buf->alloc == XML_BUFFER_ALLOC_BOUNDED) { ++ /* ++ * Used to provide parsing limits ++ */ ++ if (size >= XML_MAX_TEXT_LENGTH) { ++ xmlBufMemoryError(buf, "buffer error: text too long\n"); ++ return(0); ++ } ++ } + + /* Don't resize if we don't have to */ + if (size < buf->size) +@@ -867,6 +890,15 @@ xmlBufAdd(xmlBufPtr buf, const xmlChar *str, int len) { + + needSize = buf->use + len + 2; + if (needSize > buf->size){ ++ if (buf->alloc == XML_BUFFER_ALLOC_BOUNDED) { ++ /* ++ * Used to provide parsing limits ++ */ ++ if (needSize >= XML_MAX_TEXT_LENGTH) { ++ xmlBufMemoryError(buf, "buffer error: text too long\n"); ++ return(-1); ++ } ++ } + if (!xmlBufResize(buf, needSize)){ + xmlBufMemoryError(buf, "growing buffer"); + return XML_ERR_NO_MEMORY; +@@ -938,6 +970,15 @@ xmlBufAddHead(xmlBufPtr buf, const xmlChar *str, int len) { + } + needSize = buf->use + len + 2; + if (needSize > buf->size){ ++ if (buf->alloc == XML_BUFFER_ALLOC_BOUNDED) { ++ /* ++ * Used to provide parsing limits ++ */ ++ if (needSize >= XML_MAX_TEXT_LENGTH) { ++ xmlBufMemoryError(buf, "buffer error: text too long\n"); ++ return(-1); ++ } ++ } + if (!xmlBufResize(buf, needSize)){ + xmlBufMemoryError(buf, "growing buffer"); + return XML_ERR_NO_MEMORY; +diff --git a/include/libxml/tree.h b/include/libxml/tree.h +index 2f90717..4a9b3bc 100644 +--- a/include/libxml/tree.h ++++ b/include/libxml/tree.h +@@ -76,7 +76,8 @@ typedef enum { + XML_BUFFER_ALLOC_EXACT, /* grow only to the minimal size */ + XML_BUFFER_ALLOC_IMMUTABLE, /* immutable buffer */ + XML_BUFFER_ALLOC_IO, /* special allocation scheme used for I/O */ +- XML_BUFFER_ALLOC_HYBRID /* exact up to a threshold, and doubleit thereafter */ ++ XML_BUFFER_ALLOC_HYBRID, /* exact up to a threshold, and doubleit thereafter */ ++ XML_BUFFER_ALLOC_BOUNDED /* limit the upper size of the buffer */ + } xmlBufferAllocationScheme; + + /** +diff --git a/xmlreader.c b/xmlreader.c +index f19e123..471e7e2 100644 +--- a/xmlreader.c ++++ b/xmlreader.c +@@ -2091,6 +2091,9 @@ xmlNewTextReader(xmlParserInputBufferPtr input, const char *URI) { + "xmlNewTextReader : malloc failed\n"); + return(NULL); + } ++ /* no operation on a reader should require a huge buffer */ ++ xmlBufSetAllocationScheme(ret->buffer, ++ XML_BUFFER_ALLOC_BOUNDED); + ret->sax = (xmlSAXHandler *) xmlMalloc(sizeof(xmlSAXHandler)); + if (ret->sax == NULL) { + xmlBufFree(ret->buffer); +@@ -3616,6 +3619,7 @@ xmlTextReaderConstValue(xmlTextReaderPtr reader) { + return(((xmlNsPtr) node)->href); + case XML_ATTRIBUTE_NODE:{ + xmlAttrPtr attr = (xmlAttrPtr) node; ++ const xmlChar *ret; + + if ((attr->children != NULL) && + (attr->children->type == XML_TEXT_NODE) && +@@ -3629,10 +3633,21 @@ xmlTextReaderConstValue(xmlTextReaderPtr reader) { + "xmlTextReaderSetup : malloc failed\n"); + return (NULL); + } ++ xmlBufSetAllocationScheme(reader->buffer, ++ XML_BUFFER_ALLOC_BOUNDED); + } else + xmlBufEmpty(reader->buffer); + xmlBufGetNodeContent(reader->buffer, node); +- return(xmlBufContent(reader->buffer)); ++ ret = xmlBufContent(reader->buffer); ++ if (ret == NULL) { ++ /* error on the buffer best to reallocate */ ++ xmlBufFree(reader->buffer); ++ reader->buffer = xmlBufCreateSize(100); ++ xmlBufSetAllocationScheme(reader->buffer, ++ XML_BUFFER_ALLOC_BOUNDED); ++ ret = BAD_CAST ""; ++ } ++ return(ret); + } + break; + } +@@ -5131,6 +5146,9 @@ xmlTextReaderSetup(xmlTextReaderPtr reader, + "xmlTextReaderSetup : malloc failed\n"); + return (-1); + } ++ /* no operation on a reader should require a huge buffer */ ++ xmlBufSetAllocationScheme(reader->buffer, ++ XML_BUFFER_ALLOC_BOUNDED); + if (reader->sax == NULL) + reader->sax = (xmlSAXHandler *) xmlMalloc(sizeof(xmlSAXHandler)); + if (reader->sax == NULL) { +-- +2.6.3 + diff --git a/gnu/packages/patches/libxml2-CVE-2015-7941-pt1.patch b/gnu/packages/patches/libxml2-CVE-2015-7941-pt1.patch new file mode 100644 index 0000000000..4ca49039b2 --- /dev/null +++ b/gnu/packages/patches/libxml2-CVE-2015-7941-pt1.patch @@ -0,0 +1,32 @@ +From a7dfab7411cbf545f359dd3157e5df1eb0e7ce31 Mon Sep 17 00:00:00 2001 +From: Daniel Veillard +Date: Mon, 23 Feb 2015 11:17:35 +0800 +Subject: [PATCH] Stop parsing on entities boundaries errors + +For https://bugzilla.gnome.org/show_bug.cgi?id=744980 + +There are times, like on unterminated entities that it's preferable to +stop parsing, even if that means less error reporting. Entities are +feeding the parser on further processing, and if they are ill defined +then it's possible to get the parser to bug. Also do the same on +Conditional Sections if the input is broken, as the structure of +the document can't be guessed. +--- + parser.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/parser.c b/parser.c +index a8d1b67..bbe97eb 100644 +--- a/parser.c ++++ b/parser.c +@@ -5658,6 +5658,7 @@ xmlParseEntityDecl(xmlParserCtxtPtr ctxt) { + if (RAW != '>') { + xmlFatalErrMsgStr(ctxt, XML_ERR_ENTITY_NOT_FINISHED, + "xmlParseEntityDecl: entity %s not terminated\n", name); ++ xmlStopParser(ctxt); + } else { + if (input != ctxt->input) { + xmlFatalErrMsg(ctxt, XML_ERR_ENTITY_BOUNDARY, +-- +2.6.3 + diff --git a/gnu/packages/patches/libxml2-CVE-2015-7941-pt2.patch b/gnu/packages/patches/libxml2-CVE-2015-7941-pt2.patch new file mode 100644 index 0000000000..30563a46b6 --- /dev/null +++ b/gnu/packages/patches/libxml2-CVE-2015-7941-pt2.patch @@ -0,0 +1,49 @@ +From 9b8512337d14c8ddf662fcb98b0135f225a1c489 Mon Sep 17 00:00:00 2001 +From: Daniel Veillard +Date: Mon, 23 Feb 2015 11:29:20 +0800 +Subject: [PATCH] Cleanup conditional section error handling + +For https://bugzilla.gnome.org/show_bug.cgi?id=744980 + +The error handling of Conditional Section also need to be +straightened as the structure of the document can't be +guessed on a failure there and it's better to stop parsing +as further errors are likely to be irrelevant. +--- + parser.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/parser.c b/parser.c +index bbe97eb..fe603ac 100644 +--- a/parser.c ++++ b/parser.c +@@ -6770,6 +6770,8 @@ xmlParseConditionalSections(xmlParserCtxtPtr ctxt) { + SKIP_BLANKS; + if (RAW != '[') { + xmlFatalErr(ctxt, XML_ERR_CONDSEC_INVALID, NULL); ++ xmlStopParser(ctxt); ++ return; + } else { + if (ctxt->input->id != id) { + xmlValidityError(ctxt, XML_ERR_ENTITY_BOUNDARY, +@@ -6830,6 +6832,8 @@ xmlParseConditionalSections(xmlParserCtxtPtr ctxt) { + SKIP_BLANKS; + if (RAW != '[') { + xmlFatalErr(ctxt, XML_ERR_CONDSEC_INVALID, NULL); ++ xmlStopParser(ctxt); ++ return; + } else { + if (ctxt->input->id != id) { + xmlValidityError(ctxt, XML_ERR_ENTITY_BOUNDARY, +@@ -6885,6 +6889,8 @@ xmlParseConditionalSections(xmlParserCtxtPtr ctxt) { + + } else { + xmlFatalErr(ctxt, XML_ERR_CONDSEC_INVALID_KEYWORD, NULL); ++ xmlStopParser(ctxt); ++ return; + } + + if (RAW == 0) +-- +2.6.3 + diff --git a/gnu/packages/patches/libxml2-CVE-2015-7942-pt1.patch b/gnu/packages/patches/libxml2-CVE-2015-7942-pt1.patch new file mode 100644 index 0000000000..bd9077d7c4 --- /dev/null +++ b/gnu/packages/patches/libxml2-CVE-2015-7942-pt1.patch @@ -0,0 +1,32 @@ +From bd0526e66a56e75a18da8c15c4750db8f801c52d Mon Sep 17 00:00:00 2001 +From: Daniel Veillard +Date: Fri, 23 Oct 2015 19:02:28 +0800 +Subject: [PATCH] Another variation of overflow in Conditional sections + +Which happen after the previous fix to +https://bugzilla.gnome.org/show_bug.cgi?id=756456 + +But stopping the parser and exiting we didn't pop the intermediary entities +and doing the SKIP there applies on an input which may be too small +--- + parser.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/parser.c b/parser.c +index a65e4cc..b9217ff 100644 +--- a/parser.c ++++ b/parser.c +@@ -6915,7 +6915,9 @@ xmlParseConditionalSections(xmlParserCtxtPtr ctxt) { + "All markup of the conditional section is not in the same entity\n", + NULL, NULL); + } +- SKIP(3); ++ if ((ctxt-> instate != XML_PARSER_EOF) && ++ ((ctxt->input->cur + 3) < ctxt->input->end)) ++ SKIP(3); + } + } + +-- +2.6.3 + diff --git a/gnu/packages/patches/libxml2-CVE-2015-7942-pt2.patch b/gnu/packages/patches/libxml2-CVE-2015-7942-pt2.patch new file mode 100644 index 0000000000..115d369ac3 --- /dev/null +++ b/gnu/packages/patches/libxml2-CVE-2015-7942-pt2.patch @@ -0,0 +1,28 @@ +From 41ac9049a27f52e7a1f3b341f8714149fc88d450 Mon Sep 17 00:00:00 2001 +From: Daniel Veillard +Date: Tue, 27 Oct 2015 10:53:44 +0800 +Subject: [PATCH] Fix an error in previous Conditional section patch + +an off by one mistake in the change, led to error on correct +document where the end of the included entity was exactly +the end of the conditional section, leading to regtest failure +--- + parser.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/parser.c b/parser.c +index b9217ff..d67b300 100644 +--- a/parser.c ++++ b/parser.c +@@ -6916,7 +6916,7 @@ xmlParseConditionalSections(xmlParserCtxtPtr ctxt) { + NULL, NULL); + } + if ((ctxt-> instate != XML_PARSER_EOF) && +- ((ctxt->input->cur + 3) < ctxt->input->end)) ++ ((ctxt->input->cur + 3) <= ctxt->input->end)) + SKIP(3); + } + } +-- +2.6.3 + diff --git a/gnu/packages/patches/libxml2-CVE-2015-8035.patch b/gnu/packages/patches/libxml2-CVE-2015-8035.patch new file mode 100644 index 0000000000..d29c96228e --- /dev/null +++ b/gnu/packages/patches/libxml2-CVE-2015-8035.patch @@ -0,0 +1,31 @@ +From f0709e3ca8f8947f2d91ed34e92e38a4c23eae63 Mon Sep 17 00:00:00 2001 +From: Daniel Veillard +Date: Tue, 3 Nov 2015 15:31:25 +0800 +Subject: [PATCH] CVE-2015-8035 Fix XZ compression support loop + +For https://bugzilla.gnome.org/show_bug.cgi?id=757466 +DoS when parsing specially crafted XML document if XZ support +is compiled in (which wasn't the case for 2.9.2 and master since +Nov 2013, fixed in next commit !) +--- + xzlib.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/xzlib.c b/xzlib.c +index 0dcb9f4..1fab546 100644 +--- a/xzlib.c ++++ b/xzlib.c +@@ -581,6 +581,10 @@ xz_decomp(xz_statep state) + xz_error(state, LZMA_DATA_ERROR, "compressed data error"); + return -1; + } ++ if (ret == LZMA_PROG_ERROR) { ++ xz_error(state, LZMA_PROG_ERROR, "compression error"); ++ return -1; ++ } + } while (strm->avail_out && ret != LZMA_STREAM_END); + + /* update available output and crc check value */ +-- +2.6.3 + diff --git a/gnu/packages/patches/libxml2-bug-737840.patch b/gnu/packages/patches/libxml2-bug-737840.patch new file mode 100644 index 0000000000..2a2d62c583 --- /dev/null +++ b/gnu/packages/patches/libxml2-bug-737840.patch @@ -0,0 +1,88 @@ +From ef709ce2f7b792d5fb69ed142796d743fb1eb388 Mon Sep 17 00:00:00 2001 +From: Daniel Veillard +Date: Thu, 10 Sep 2015 19:41:41 +0800 +Subject: [PATCH] Fix the spurious ID already defined error + +For https://bugzilla.gnome.org/show_bug.cgi?id=737840 +the fix for 724903 introduced a regression on external entities carrying +IDs, revert that patch in part and add a specific test to avoid readding it +--- + result/valid/737840.xml | 10 ++++++++++ + result/valid/737840.xml.err | 0 + result/valid/737840.xml.err.rdr | 0 + test/valid/737840.xml | 10 ++++++++++ + test/valid/dtds/737840.ent | 1 + + valid.c | 6 ++++-- + 6 files changed, 25 insertions(+), 2 deletions(-) + create mode 100644 result/valid/737840.xml + create mode 100644 result/valid/737840.xml.err + create mode 100644 result/valid/737840.xml.err.rdr + create mode 100644 test/valid/737840.xml + create mode 100644 test/valid/dtds/737840.ent + +diff --git a/result/valid/737840.xml b/result/valid/737840.xml +new file mode 100644 +index 0000000..433c6d6 +--- /dev/null ++++ b/result/valid/737840.xml +@@ -0,0 +1,10 @@ ++ ++ ++ ++ ++ ++]> ++ ++ ⌖ ++ +diff --git a/result/valid/737840.xml.err b/result/valid/737840.xml.err +new file mode 100644 +index 0000000..e69de29 +diff --git a/result/valid/737840.xml.err.rdr b/result/valid/737840.xml.err.rdr +new file mode 100644 +index 0000000..e69de29 +diff --git a/test/valid/737840.xml b/test/valid/737840.xml +new file mode 100644 +index 0000000..2d27b73 +--- /dev/null ++++ b/test/valid/737840.xml +@@ -0,0 +1,10 @@ ++ ++ ++ ++ ++]> ++ ++ ++ ⌖ ++ +diff --git a/test/valid/dtds/737840.ent b/test/valid/dtds/737840.ent +new file mode 100644 +index 0000000..e972132 +--- /dev/null ++++ b/test/valid/dtds/737840.ent +@@ -0,0 +1 @@ ++ +\ No newline at end of file +diff --git a/valid.c b/valid.c +index 409aa81..45a3f70 100644 +--- a/valid.c ++++ b/valid.c +@@ -2634,8 +2634,10 @@ xmlAddID(xmlValidCtxtPtr ctxt, xmlDocPtr doc, const xmlChar *value, + /* + * The id is already defined in this DTD. + */ +- xmlErrValidNode(ctxt, attr->parent, XML_DTD_ID_REDEFINED, +- "ID %s already defined\n", value, NULL, NULL); ++ if (ctxt != NULL) { ++ xmlErrValidNode(ctxt, attr->parent, XML_DTD_ID_REDEFINED, ++ "ID %s already defined\n", value, NULL, NULL); ++ } + #endif /* LIBXML_VALID_ENABLED */ + xmlFreeID(ret); + return(NULL); +-- +2.6.3 + diff --git a/gnu/packages/patches/libxml2-bug-738805.patch b/gnu/packages/patches/libxml2-bug-738805.patch new file mode 100644 index 0000000000..16163bb941 --- /dev/null +++ b/gnu/packages/patches/libxml2-bug-738805.patch @@ -0,0 +1,31 @@ +From 72a46a519ce7326d9a00f0b6a7f2a8e958cd1675 Mon Sep 17 00:00:00 2001 +From: Daniel Veillard +Date: Thu, 23 Oct 2014 11:35:36 +0800 +Subject: [PATCH] Fix missing entities after CVE-2014-3660 fix + +For https://bugzilla.gnome.org/show_bug.cgi?id=738805 + +The fix for CVE-2014-3660 introduced a regression in some case +where entity substitution is required and the entity is used +first in anotther entity referenced from an attribute value +--- + parser.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/parser.c b/parser.c +index 67c9dfd..a8d1b67 100644 +--- a/parser.c ++++ b/parser.c +@@ -7235,7 +7235,8 @@ xmlParseReference(xmlParserCtxtPtr ctxt) { + * far more secure as the parser will only process data coming from + * the document entity by default. + */ +- if ((ent->checked == 0) && ++ if (((ent->checked == 0) || ++ ((ent->children == NULL) && (ctxt->options & XML_PARSE_NOENT))) && + ((ent->etype != XML_EXTERNAL_GENERAL_PARSED_ENTITY) || + (ctxt->options & (XML_PARSE_NOENT | XML_PARSE_DTDVALID)))) { + unsigned long oldnbent = ctxt->nbentities; +-- +2.6.3 + diff --git a/gnu/packages/patches/libxml2-bug-746048.patch b/gnu/packages/patches/libxml2-bug-746048.patch new file mode 100644 index 0000000000..450b8d3ab3 --- /dev/null +++ b/gnu/packages/patches/libxml2-bug-746048.patch @@ -0,0 +1,65 @@ +From e724879d964d774df9b7969fc846605aa1bac54c Mon Sep 17 00:00:00 2001 +From: Daniel Veillard +Date: Fri, 30 Oct 2015 21:14:55 +0800 +Subject: [PATCH] Fix parsing short unclosed comment uninitialized access + +For https://bugzilla.gnome.org/show_bug.cgi?id=746048 +The HTML parser was too optimistic when processing comments and +didn't check for the end of the stream on the first 2 characters +--- + HTMLparser.c | 21 ++++++++++++++------- + 1 file changed, 14 insertions(+), 7 deletions(-) + +diff --git a/HTMLparser.c b/HTMLparser.c +index 19c10c3..bdf7807 100644 +--- a/HTMLparser.c ++++ b/HTMLparser.c +@@ -3264,12 +3264,17 @@ htmlParseComment(htmlParserCtxtPtr ctxt) { + ctxt->instate = state; + return; + } ++ len = 0; ++ buf[len] = 0; + q = CUR_CHAR(ql); ++ if (!IS_CHAR(q)) ++ goto unfinished; + NEXTL(ql); + r = CUR_CHAR(rl); ++ if (!IS_CHAR(r)) ++ goto unfinished; + NEXTL(rl); + cur = CUR_CHAR(l); +- len = 0; + while (IS_CHAR(cur) && + ((cur != '>') || + (r != '-') || (q != '-'))) { +@@ -3300,18 +3305,20 @@ htmlParseComment(htmlParserCtxtPtr ctxt) { + } + } + buf[len] = 0; +- if (!IS_CHAR(cur)) { +- htmlParseErr(ctxt, XML_ERR_COMMENT_NOT_FINISHED, +- "Comment not terminated \n + + CVE-2009-3301 + 2010-02-16T14:30:00.533-05:00 + 2015-11-17T10:59:44.723-05:00 + + + 9.3 + NETWORK + MEDIUM + NONE + COMPLETE + COMPLETE + COMPLETE + http://nvd.nist.gov + 2015-11-17T10:02:50.097-05:00 + + + + + + CERT + TA10-287A + + + CONFIRM + https://bugzilla.redhat.com/show_bug.cgi?id=533038 + + + XF + openoffice-word-sprmtdeftable-bo(56240) + + + VUPEN + ADV-2010-2905 + + + VUPEN + ADV-2010-0635 + + + VUPEN + ADV-2010-0366 + + + UBUNTU + USN-903-1 + + + BID + 38218 + + + REDHAT + RHSA-2010:0101 + + + CONFIRM + http://www.oracle.com/technetwork/topics/security/cpuoct2010-175626.html + + + CONFIRM + http://www.openoffice.org/security/cves/CVE-2009-3301-3302.html + + + CONFIRM + http://www.openoffice.org/security/bulletin.html + + + MANDRIVA + MDVSA-2010:221 + + + GENTOO + GLSA-201408-19 + + + DEBIAN + DSA-1995 + + + SECTRACK + 1023591 + + + SUSE + SUSE-SA:2010:017 + + + + + Integer underflow in filter/ww8/ww8par2.cxx in OpenOffice.org (OOo) before 3.2 allows remote attackers to cause a denial of service (application crash) or possibly execute arbitrary code via a crafted sprmTDefTable table property modifier in a Word document. + + + CVE-2015-8330 + 2015-11-24T15:59:25.897-05:00 + 2015-11-24T15:59:26.930-05:00 + + MISC + https://www.onapsis.com/blog/analyzing-sap-security-notes-november-2015 + + + MISC + http://erpscan.com/advisories/erpscan-15-032-sap-pco-agent-dos-vulnerability/ + + The PCo agent in SAP Plant Connectivity (PCo) allows remote attackers to cause a denial of service (memory corruption and agent crash) via crafted xMII requests, aka SAP Security Note 2238619. + + diff --git a/tests/cve.scm b/tests/cve.scm new file mode 100644 index 0000000000..26bc560e52 --- /dev/null +++ b/tests/cve.scm @@ -0,0 +1,69 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2015 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 (test-cve) + #:use-module (guix cve) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-64)) + +(define %sample + (search-path %load-path "tests/cve-sample.xml")) + +(define (vulnerability id packages) + (make-struct (@@ (guix cve) ) 0 id packages)) + +(define %expected-vulnerabilities + ;; What we should get when reading %SAMPLE. + (list + ;; CVE-2003-0001 has no "/a" in its product list so it is omitted. + ;; CVE-2004-0230 lists "tcp" as an application, but lacks a version number. + (vulnerability "CVE-2008-2335" '(("phpvid" . "1.1") ("phpvid" . "1.2"))) + (vulnerability "CVE-2008-3522" '(("enterprise_virtualization" . "3.5") + ("jasper" . "1.900.1"))) + (vulnerability "CVE-2009-3301" '(("openoffice.org" . "2.1.0") + ("openoffice.org" . "2.3.0") + ("openoffice.org" . "2.2.1"))) + ;; CVE-2015-8330 has no software list. + )) + + +(test-begin "cve") + +(test-equal "xml->vulnerabilities" + %expected-vulnerabilities + (call-with-input-file %sample xml->vulnerabilities)) + +(test-equal "" + (list `(("1.1" . ,(first %expected-vulnerabilities)) + ("1.2" . ,(first %expected-vulnerabilities))) + '() + '() + (list (second %expected-vulnerabilities)) + (list (third %expected-vulnerabilities))) + (let* ((vulns (call-with-input-file %sample xml->vulnerabilities)) + (lookup (vulnerabilities->lookup-proc vulns))) + (list (lookup "phpvid") + (lookup "jasper" "2.0") + (lookup "foobar") + (lookup "jasper" "1.900.1") + (lookup "openoffice.org" "2.3.0")))) + +(test-end "cve") + + +(exit (= (test-runner-fail-count (test-runner-current)) 0)) -- cgit v1.2.3 From 5432734b00ae14c3a93af358fc7bbf80e3db5ee8 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 26 Nov 2015 22:59:06 +0100 Subject: lint: Add "cve" checker. Fixes . * guix/scripts/lint.scm (package-name->cpe-name, package-vulnerabilities) (check-vulnerabilities): New procedures. * guix/scripts/lint.scm (%checkers): Add "cve" checker. * tests/lint.scm ("cve", "cve: one vulnerability"): New tests. * doc/guix.texi (Invoking guix lint): Mention it. --- doc/guix.texi | 6 ++++++ guix/scripts/lint.scm | 35 +++++++++++++++++++++++++++++++++++ tests/lint.scm | 17 +++++++++++++++++ 3 files changed, 58 insertions(+) diff --git a/doc/guix.texi b/doc/guix.texi index 058b3598dc..8ecb7ccc17 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -4452,6 +4452,12 @@ invalid. Check that the source file name is meaningful, e.g. is not just a version number or ``git-checkout'', and should not have a @code{file-name} declared (@pxref{origin Reference}). +@item cve +Report known vulnerabilities found in the Common Vulnerabilities and +Exposures (CVE) database +@uref{https://nvd.nist.gov/download.cfm#CVE_FEED, published by the US +NIST}. + @item formatting Warn about obvious source code formatting issues: trailing white space, use of tabulations, etc. diff --git a/guix/scripts/lint.scm b/guix/scripts/lint.scm index 034f0f95ee..1da4790f2d 100644 --- a/guix/scripts/lint.scm +++ b/guix/scripts/lint.scm @@ -32,6 +32,7 @@ #:use-module (guix scripts) #:use-module (guix gnu-maintenance) #:use-module (guix monads) + #:use-module (guix cve) #:use-module (gnu packages) #:use-module (ice-9 match) #:use-module (ice-9 regex) @@ -61,6 +62,7 @@ check-source check-source-file-name check-license + check-vulnerabilities check-formatting run-checkers @@ -571,6 +573,34 @@ descriptions maintained upstream." (emit-warning package (_ "invalid license field") 'license)))) +(define (package-name->cpe-name name) + "Do a basic conversion of NAME, a Guix package name, to the corresponding +Common Platform Enumeration (CPE) name." + (match name + ("icecat" "firefox") ;or "firefox_esr" + ;; TODO: Add more. + (_ name))) + +(define package-vulnerabilities + (let ((lookup (delay (vulnerabilities->lookup-proc + (current-vulnerabilities))))) + (lambda (package) + "Return a list of vulnerabilities affecting PACKAGE." + ((force lookup) + (package-name->cpe-name (package-name package)) + (package-version package))))) + +(define (check-vulnerabilities package) + "Check for known vulnerabilities for PACKAGE." + (match (package-vulnerabilities package) + (() + #t) + ((vulnerabilities ...) + (emit-warning package + (format #f (_ "probably vulnerable to ~a") + (string-join (map vulnerability-id vulnerabilities) + ", ")))))) + ;;; ;;; Source code formatting. @@ -708,6 +738,11 @@ or a list thereof") (name 'synopsis) (description "Validate package synopses") (check check-synopsis-style)) + (lint-checker + (name 'cve) + (description "Check the Common Vulnerabilities and Exposures\ + (CVE) database") + (check check-vulnerabilities)) (lint-checker (name 'formatting) (description "Look for formatting issues in the source") diff --git a/tests/lint.scm b/tests/lint.scm index 3f149562d4..50316ade9a 100644 --- a/tests/lint.scm +++ b/tests/lint.scm @@ -512,6 +512,23 @@ requests." (check-source pkg)))) "not reachable: 404"))) +(test-assert "cve" + (mock ((guix scripts lint) package-vulnerabilities (const '())) + (string-null? + (with-warnings (check-vulnerabilities (dummy-package "x")))))) + +(test-assert "cve: one vulnerability" + (mock ((guix scripts lint) package-vulnerabilities + (lambda (package) + (list (make-struct (@@ (guix cve) ) 0 + "CVE-2015-1234" + (list (cons (package-name package) + (package-version package))))))) + (string-contains + (with-warnings + (check-vulnerabilities (dummy-package "pi" (version "3.14")))) + "vulnerable to CVE-2015-1234"))) + (test-assert "formatting: lonely parentheses" (string-contains (with-warnings -- cgit v1.2.3 From ad227484c3e1dc85488be76a23128e77ad0b33ff Mon Sep 17 00:00:00 2001 From: Mario Daniel Ruiz Saavedra Date: Thu, 26 Nov 2015 11:07:51 -0500 Subject: Add 'guix-daemon.conf' job for Upstart. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * etc/guix-daemon.conf.in: New file. * daemon.am (CLEANFILES): Add etc/guix-daemon.conf. (upstartjobdir, nodist_upstartjob_DATA): New variables. (EXTRA_DIST): Add etc/guix-daemon.conf.in. * doc/guix.texi (Binary Installation, Build Environment Setup): Mention 'guix-daemon.conf'. Signed-off-by: Mario Daniel Ruiz Saavedra Signed-off-by: Ludovic Courtès --- .gitignore | 1 + daemon.am | 16 ++++++++++++++-- doc/guix.texi | 9 ++++++++- etc/guix-daemon.conf.in | 12 ++++++++++++ 4 files changed, 35 insertions(+), 3 deletions(-) create mode 100644 etc/guix-daemon.conf.in diff --git a/.gitignore b/.gitignore index 6e8bfaca95..412d09ca11 100644 --- a/.gitignore +++ b/.gitignore @@ -125,6 +125,7 @@ GTAGS /doc/os-config-desktop.texi /doc/*.1 /etc/guix-daemon.service +/etc/guix-daemon.conf /doc/images/bootstrap-graph.pdf /doc/images/coreutils-bag-graph.png /doc/images/coreutils-graph.png diff --git a/daemon.am b/daemon.am index f2cb0a499e..f75eef2e98 100644 --- a/daemon.am +++ b/daemon.am @@ -21,7 +21,7 @@ # BUILT_SOURCES += nix/libstore/schema.sql.hh -CLEANFILES += $(BUILT_SOURCES) etc/guix-daemon.service +CLEANFILES += $(BUILT_SOURCES) etc/guix-daemon.service etc/guix-daemon.conf noinst_LIBRARIES = libformat.a libutil.a libstore.a @@ -191,11 +191,23 @@ etc/guix-daemon.service: etc/guix-daemon.service.in \ "$(srcdir)/etc/guix-daemon.service.in" > "$@.tmp" mv "$@.tmp" "$@" +# The '.conf' job for Upstart. +upstartjobdir = $(libdir)/upstart/system +nodist_upstartjob_DATA = etc/guix-daemon.conf + +etc/guix-daemon.conf: etc/guix-daemon.conf.in \ + $(top_builddir)/config.status + $(MKDIR_P) "`dirname "$@"`" + $(SED) -e 's|@''bindir''@|$(bindir)|' < \ + "$(srcdir)/etc/guix-daemon.conf.in" > "$@.tmp" + mv "$@.tmp" "$@" + EXTRA_DIST += \ nix/libstore/schema.sql \ nix/AUTHORS \ nix/COPYING \ - etc/guix-daemon.service.in + etc/guix-daemon.service.in \ + etc/guix-daemon.conf.in AM_TESTS_ENVIRONMENT += \ top_builddir="$(abs_top_builddir)" diff --git a/doc/guix.texi b/doc/guix.texi index 8ecb7ccc17..b4044531ed 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -366,6 +366,10 @@ On hosts using the systemd init system, drop @file{~root/.guix-profile/lib/systemd/system/guix-daemon.service} in @file{/etc/systemd/system}. +Likewise, on hosts using the Upstart init system, drop +@file{~root/.guix-profile/lib/upstart/system/guix-daemon.conf} in +@file{/etc/init}. + @item Make the @command{guix} command available to other users on the machine, for instance with: @@ -554,7 +558,10 @@ parallel, as specified by the @option{--max-jobs} option following command@footnote{If your machine uses the systemd init system, dropping the @file{@var{prefix}/lib/systemd/system/guix-daemon.service} file in @file{/etc/systemd/system} will ensure that -@command{guix-daemon} is automatically started.}: +@command{guix-daemon} is automatically started. Similarly, if your +machine uses the Upstart init system, drop the +@file{@var{prefix}/lib/upstart/system/guix-daemon.conf} +file in @file{/etc/init}.}: @example # guix-daemon --build-users-group=guixbuild diff --git a/etc/guix-daemon.conf.in b/etc/guix-daemon.conf.in new file mode 100644 index 0000000000..8f833cb693 --- /dev/null +++ b/etc/guix-daemon.conf.in @@ -0,0 +1,12 @@ +# This is a "job" for the Upstart init system to launch 'guix-daemon'. +# Drop it in /etc/init to have 'guix-daemon' automatically started. + +description "Build daemon for GNU Guix" + +start on runlevel [2345] + +stop on runlevel [016] + +task + +exec @bindir@/guix-daemon --build-users-group=guixbuild -- cgit v1.2.3 From 08c28b6d5a447db6bedc1faa24e98f54c95d9ee8 Mon Sep 17 00:00:00 2001 From: Andreas Enge Date: Fri, 27 Nov 2015 02:44:21 +0100 Subject: gnu: gp2c: Update to 0.0.9pl4. * gnu/packages/algebra.scm (gp2c): Update to 0.0.9pl4. --- gnu/packages/algebra.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm index 75eaf26559..e9edf36d1e 100644 --- a/gnu/packages/algebra.scm +++ b/gnu/packages/algebra.scm @@ -157,7 +157,7 @@ PARI is also available as a C library to allow for faster computations.") (define-public gp2c (package (name "gp2c") - (version "0.0.9pl3") + (version "0.0.9pl4") (source (origin (method url-fetch) (uri (string-append @@ -165,7 +165,7 @@ PARI is also available as a C library to allow for faster computations.") version ".tar.gz")) (sha256 (base32 - "0wbghihwlcx3w4j1la3bjf5gcrkk6lp9syw6iimqndq1f73ijlq3")))) + "079qq4yyxpc53a2kn08gg9pcfgdyffbl14c2hqsic11q8pnsr08z")))) (build-system gnu-build-system) (native-inputs `(("perl" ,perl))) (inputs `(("pari-gp" ,pari-gp))) -- cgit v1.2.3 From ef8742ea69b8998320d4815e2d9820432852517d Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 27 Nov 2015 10:59:56 +0100 Subject: gnu: eigen: Really run tests in verbose mode. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Suggested by Gaël Guennebaud . * gnu/packages/algebra.scm (eigen)[arguments]: Remove #:test-target. Rename 'build-tests' phase to 'check', and have it run 'ctest -V'. --- gnu/packages/algebra.scm | 22 +++++++--------------- 1 file changed, 7 insertions(+), 15 deletions(-) diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm index e9edf36d1e..25e1af1750 100644 --- a/gnu/packages/algebra.scm +++ b/gnu/packages/algebra.scm @@ -409,26 +409,18 @@ cosine/ sine transforms or DCT/DST).") '(;; Turn off debugging symbols to save space. #:build-type "Release" - ;; Use 'make check', as per - ;; . - #:test-target "check" - #:phases (modify-phases %standard-phases - (add-before 'check 'build-tests + (replace 'check (lambda _ - ;; First build the tests, in parallel. - ;; See . (let* ((cores (parallel-job-count)) (dash-j (format #f "-j~a" cores))) - ;; These variables are supposed to be honored. - (setenv "EIGEN_MAKE_ARGS" dash-j) - - ;; Use '-V' to get more details in case of test - ;; failures. - (setenv "EIGEN_CTEST_ARGS" - (string-append "-V " dash-j)) + ;; First build the tests, in parallel. See + ;; . + (and (zero? (system* "make" "buildtests" dash-j)) - (zero? (system* "make" "buildtests" dash-j)))))))) + ;; Then run 'CTest' with -V so we get more + ;; details upon failure. + (zero? (system* "ctest" "-V" dash-j))))))))) (home-page "http://eigen.tuxfamily.org") (synopsis "C++ template library for linear algebra") (description -- cgit v1.2.3 From 4331f558d788d901b2cb3667216ed29bc8d2800c Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 27 Nov 2015 15:06:15 +0100 Subject: gnu: tor: Update to 0.2.7.5. * gnu/packages/tor.scm (tor): Update to 0.2.7.5. --- gnu/packages/tor.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/tor.scm b/gnu/packages/tor.scm index 3b057d422e..e6e8876597 100644 --- a/gnu/packages/tor.scm +++ b/gnu/packages/tor.scm @@ -36,14 +36,14 @@ (define-public tor (package (name "tor") - (version "0.2.6.10") + (version "0.2.7.5") (source (origin (method url-fetch) (uri (string-append "https://www.torproject.org/dist/tor-" version ".tar.gz")) (sha256 (base32 - "13ab4bqz19980q4qgmbr7ar4r9y70bmsfbw66y9n31ivwkpw0hh5")))) + "0pxayvcab4cb107ynbpzx4g0qyr1mjfba2an76wdx6dxn56rwakx")))) (build-system gnu-build-system) (native-inputs `(("python" ,python-2))) ; for tests -- cgit v1.2.3 From fde40c98f916d36746dd78e742dff576146beef7 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 27 Nov 2015 22:46:27 +0100 Subject: services: lsh: Correctly handle #:interfaces option. * gnu/services/ssh.scm (lsh-dmd-service)[lsh-command]: Pass a series of --interface flags instead of the nonexistent --interfaces option. --- gnu/services/ssh.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/services/ssh.scm b/gnu/services/ssh.scm index 18556d2cc5..4b0380e8fd 100644 --- a/gnu/services/ssh.scm +++ b/gnu/services/ssh.scm @@ -23,6 +23,7 @@ #:use-module (gnu services dmd) #:use-module (gnu system pam) #:use-module (gnu packages lsh) + #:use-module (srfi srfi-26) #:export (lsh-service)) ;;; Commentary: @@ -142,8 +143,8 @@ "--tcpip-forward" "--no-tcpip-forward") (if (null? interfaces) '() - (list (string-append "--interfaces=" - (string-join interfaces ","))))))) + (map (cut string-append "--interface=" <>) + interfaces))))) (define requires (if (and daemonic? (lsh-configuration-syslog-output? config)) -- cgit v1.2.3 From 6331bde73f26381e694f84e7e6885f1961abb8ae Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 27 Nov 2015 23:04:49 +0100 Subject: services: Add 'tor-hidden-service'. * gnu/services/networking.scm (, ): New record types. (tor-configuration->torrc): New procedure. (tor-dmd-service): Use it. (tor-hidden-service-activation): New procedure. (tor-service-type)[extensions]: Extend ACTIVATION-SERVICE-TYPE. [compose, extend]: New fields. (tor-service): Use 'tor-configuration'. (tor-hidden-service-type): New variable. (tor-hidden-service): New procedure. --- doc/guix.texi | 25 +++++++- gnu/services/networking.scm | 139 ++++++++++++++++++++++++++++++++++++++------ 2 files changed, 145 insertions(+), 19 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index b4044531ed..2252bf9c18 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -6580,8 +6580,29 @@ Return a service to run the @uref{https://torproject.org, Tor} anonymous networking daemon. The daemon runs as the @code{tor} unprivileged user. It is passed -@var{config-file}, a file-like object, with an additional @code{User tor} -line. Run @command{man tor} for information about the configuration file. +@var{config-file}, a file-like object, with an additional @code{User tor} line +and lines for hidden services added via @code{tor-hidden-service}. Run +@command{man tor} for information about the configuration file. +@end deffn + +@deffn {Scheme Procedure} tor-hidden-service @var{name} @var{mapping} +Define a new Tor @dfn{hidden service} called @var{name} and implementing +@var{mapping}. @var{mapping} is a list of port/host tuples, such as: + +@example + '((22 \"127.0.0.1:22\") + (80 \"127.0.0.1:8080\")) +@end example + +In this example, port 22 of the hidden service is mapped to local port 22, and +port 80 is mapped to local port 8080. + +This creates a @file{/var/lib/tor/@var{name}} directory, where the +@file{hostname} file contains the @code{.onion} host name for the hidden +service. + +See @uref{https://www.torproject.org/docs/tor-hidden-service.html.en, the Tor +project's documentation} for more information. @end deffn @deffn {Scheme Procedure} bitlbee-service [#:bitlbee bitlbee] @ diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm index 0bbacab1ad..e5b713678d 100644 --- a/gnu/services/networking.scm +++ b/gnu/services/networking.scm @@ -32,6 +32,8 @@ #:use-module (gnu packages gnome) #:use-module (guix gexp) #:use-module (guix records) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-9) #:use-module (srfi srfi-26) #:use-module (ice-9 match) #:export (%facebook-host-aliases @@ -39,6 +41,7 @@ dhcp-client-service %ntp-servers ntp-service + tor-hidden-service tor-service bitlbee-service wicd-service @@ -307,6 +310,15 @@ keep the system clock synchronized with that of @var{servers}." ;;; Tor. ;;; +(define-record-type* + tor-configuration make-tor-configuration + tor-configuration? + (tor tor-configuration-tor + (default tor)) + (config-file tor-configuration-config-file) + (hidden-services tor-configuration-hidden-services + (default '()))) + (define %tor-accounts ;; User account and groups for Tor. (list (user-group (name "tor") (system? #t)) @@ -318,22 +330,55 @@ keep the system clock synchronized with that of @var{servers}." (home-directory "/var/empty") (shell #~(string-append #$shadow "/sbin/nologin"))))) +(define-record-type + (hidden-service name mapping) + hidden-service? + (name hidden-service-name) ;string + (mapping hidden-service-mapping)) ;list of port/address tuples + +(define (tor-configuration->torrc config) + "Return a 'torrc' file for CONFIG." + (match config + (($ tor config-file services) + (computed-file + "torrc" + #~(begin + (use-modules (guix build utils) + (ice-9 match)) + + (call-with-output-file #$output + (lambda (port) + (display "\ +# The beginning was automatically added. +User tor\n" port) + + (for-each (match-lambda + ((service (ports hosts) ...) + (format port "\ +HiddenServiceDir /var/lib/tor/~a~%" + service) + (for-each (lambda (tcp-port host) + (format port "\ +HiddenServicePort ~a ~a~%" + tcp-port host)) + ports hosts))) + '#$(map (match-lambda + (($ name mapping) + (cons name mapping))) + services)) + + ;; Append the user's config file. + (call-with-input-file #$config-file + (lambda (input) + (dump-port input port))) + #t))) + #:modules '((guix build utils)))))) + (define (tor-dmd-service config) "Return a running TOR." (match config - ((tor config-file) - (let ((torrc (computed-file "torrc" - #~(begin - (use-modules (guix build utils)) - (call-with-output-file #$output - (lambda (port) - (display "\ -User tor # automatically added\n" port) - (call-with-input-file #$config-file - (lambda (input) - (dump-port input port))) - #t))) - #:modules '((guix build utils))))) + (($ tor) + (let ((torrc (tor-configuration->torrc config))) (list (dmd-service (provision '(tor)) @@ -346,13 +391,43 @@ User tor # automatically added\n" port) (stop #~(make-kill-destructor)) (documentation "Run the Tor anonymous network overlay."))))))) +(define (tor-hidden-service-activation config) + "Return the activation gexp for SERVICES, a list of hidden services." + #~(begin + (use-modules (guix build utils)) + + (define (initialize service) + (let ((directory (string-append "/var/lib/tor/" + service)) + (user (getpw "tor"))) + (mkdir-p directory) + (chown directory (passwd:uid user) (passwd:gid user)) + + ;; The daemon bails out if we give wider permissions. + (chmod directory #o700))) + + (for-each initialize + '#$(map hidden-service-name + (tor-configuration-hidden-services config))))) + (define tor-service-type (service-type (name 'tor) (extensions (list (service-extension dmd-root-service-type tor-dmd-service) (service-extension account-service-type - (const %tor-accounts)))))) + (const %tor-accounts)) + (service-extension activation-service-type + tor-hidden-service-activation))) + + ;; This can be extended with hidden services. + (compose concatenate) + (extend (lambda (config services) + (tor-configuration + (inherit config) + (hidden-services + (append (tor-configuration-hidden-services config) + services))))))) (define* (tor-service #:optional (config-file (plain-file "empty" "")) @@ -361,9 +436,39 @@ User tor # automatically added\n" port) networking daemon. The daemon runs as the @code{tor} unprivileged user. It is passed -@var{config-file}, a file-like object, with an additional @code{User tor} -line. Run @command{man tor} for information about the configuration file." - (service tor-service-type (list tor config-file))) +@var{config-file}, a file-like object, with an additional @code{User tor} line +and lines for hidden services added via @code{tor-hidden-service}. Run +@command{man tor} for information about the configuration file." + (service tor-service-type + (tor-configuration (tor tor) + (config-file config-file)))) + +(define tor-hidden-service-type + ;; A type that extends Tor with hidden services. + (service-type (name 'tor-hidden-service) + (extensions + (list (service-extension tor-service-type list))))) + +(define (tor-hidden-service name mapping) + "Define a new Tor @dfn{hidden service} called @var{name} and implementing +@var{mapping}. @var{mapping} is a list of port/host tuples, such as: + +@example + '((22 \"127.0.0.1:22\") + (80 \"127.0.0.1:8080\")) +@end example + +In this example, port 22 of the hidden service is mapped to local port 22, and +port 80 is mapped to local port 8080. + +This creates a @file{/var/lib/tor/@var{name}} directory, where the +@file{hostname} file contains the @code{.onion} host name for the hidden +service. + +See @uref{https://www.torproject.org/docs/tor-hidden-service.html.en, the Tor +project's documentation} for more information." + (service tor-hidden-service-type + (hidden-service name mapping))) ;;; -- cgit v1.2.3 From 5ee35eb747206a1d70bdeb979be88da47caa9f6f Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 27 Nov 2015 23:08:00 +0100 Subject: services: tor: Write to syslog. * gnu/services/networking.scm (tor-configuration->torrc): Add "Log notice syslog". (tor-dmd-service): Add 'syslogd' to 'requirement'. --- gnu/services/networking.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm index e5b713678d..0c545124c7 100644 --- a/gnu/services/networking.scm +++ b/gnu/services/networking.scm @@ -350,7 +350,8 @@ keep the system clock synchronized with that of @var{servers}." (lambda (port) (display "\ # The beginning was automatically added. -User tor\n" port) +User tor +Log notice syslog\n" port) (for-each (match-lambda ((service (ports hosts) ...) @@ -384,7 +385,7 @@ HiddenServicePort ~a ~a~%" ;; Tor needs at least one network interface to be up, hence the ;; dependency on 'loopback'. - (requirement '(user-processes loopback)) + (requirement '(user-processes loopback syslogd)) (start #~(make-forkexec-constructor (list (string-append #$tor "/bin/tor") "-f" #$torrc))) -- cgit v1.2.3 From 6629099a635118a9fd72892ec4b13442b811059c Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 27 Nov 2015 23:29:51 +0100 Subject: services: tor: Store private data under /var/lib/tor. * gnu/services/networking.scm (tor-configuration->torrc): Add 'DataDirectory' clause. Change 'HiddenServiceDir' to /var/lib/tor/hidden-services/NAME. (tor-hidden-service-activation): Create /var/lib/tor. (tor-hidden-service): Adjust docstring. * doc/guix.texi (Networking Services): Adjust accordingly. --- doc/guix.texi | 4 ++-- gnu/services/networking.scm | 21 ++++++++++++++------- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 2252bf9c18..ab1e4be20f 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -6597,8 +6597,8 @@ Define a new Tor @dfn{hidden service} called @var{name} and implementing In this example, port 22 of the hidden service is mapped to local port 22, and port 80 is mapped to local port 8080. -This creates a @file{/var/lib/tor/@var{name}} directory, where the -@file{hostname} file contains the @code{.onion} host name for the hidden +This creates a @file{/var/lib/tor/hidden-services/@var{name}} directory, where +the @file{hostname} file contains the @code{.onion} host name for the hidden service. See @uref{https://www.torproject.org/docs/tor-hidden-service.html.en, the Tor diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm index 0c545124c7..ce21b1d9ff 100644 --- a/gnu/services/networking.scm +++ b/gnu/services/networking.scm @@ -351,12 +351,13 @@ keep the system clock synchronized with that of @var{servers}." (display "\ # The beginning was automatically added. User tor +DataDirectory /var/lib/tor Log notice syslog\n" port) (for-each (match-lambda ((service (ports hosts) ...) (format port "\ -HiddenServiceDir /var/lib/tor/~a~%" +HiddenServiceDir /var/lib/tor/hidden-services/~a~%" service) (for-each (lambda (tcp-port host) (format port "\ @@ -397,16 +398,22 @@ HiddenServicePort ~a ~a~%" #~(begin (use-modules (guix build utils)) + (define %user + (getpw "tor")) + (define (initialize service) - (let ((directory (string-append "/var/lib/tor/" - service)) - (user (getpw "tor"))) + (let ((directory (string-append "/var/lib/tor/hidden-services/" + service))) (mkdir-p directory) - (chown directory (passwd:uid user) (passwd:gid user)) + (chown directory (passwd:uid %user) (passwd:gid %user)) ;; The daemon bails out if we give wider permissions. (chmod directory #o700))) + (mkdir-p "/var/lib/tor") + (chown "/var/lib/tor" (passwd:uid %user) (passwd:gid %user)) + (chmod "/var/lib/tor" #o700) + (for-each initialize '#$(map hidden-service-name (tor-configuration-hidden-services config))))) @@ -462,8 +469,8 @@ and lines for hidden services added via @code{tor-hidden-service}. Run In this example, port 22 of the hidden service is mapped to local port 22, and port 80 is mapped to local port 8080. -This creates a @file{/var/lib/tor/@var{name}} directory, where the -@file{hostname} file contains the @code{.onion} host name for the hidden +This creates a @file{/var/lib/tor/hidden-services/@var{name}} directory, where +the @file{hostname} file contains the @code{.onion} host name for the hidden service. See @uref{https://www.torproject.org/docs/tor-hidden-service.html.en, the Tor -- cgit v1.2.3 From ae4427e3f39a32094ced6206ae4bcd12683f9127 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sat, 28 Nov 2015 00:02:23 +0100 Subject: substitute: Warn upon store prefix mismatches. Suggested by Hynek Urban . * guix/scripts/substitute.scm (fetch-narinfos): Move body to... [do-fetch]: ... here. New procedure. Emit a warning when CACHE-INFO's prefix does not match. --- guix/scripts/substitute.scm | 48 +++++++++++++++++++++++++-------------------- 1 file changed, 27 insertions(+), 21 deletions(-) diff --git a/guix/scripts/substitute.scm b/guix/scripts/substitute.scm index 964df9422c..01cc3f129e 100755 --- a/guix/scripts/substitute.scm +++ b/guix/scripts/substitute.scm @@ -565,31 +565,37 @@ if file doesn't exist, and the narinfo otherwise." (read-to-eof port)) result)))) + (define (do-fetch uri) + (case (and=> uri uri-scheme) + ((http) + (let ((requests (map (cut narinfo-request url <>) paths))) + (update-progress!) + (let ((result (http-multiple-get url + handle-narinfo-response '() + requests))) + (newline (current-error-port)) + result))) + ((file #f) + (let* ((base (string-append (uri-path uri) "/")) + (files (map (compose (cut string-append base <> ".narinfo") + store-path-hash-part) + paths))) + (filter-map (cut narinfo-from-file <> url) files))) + (else + (leave (_ "~s: unsupported server URI scheme~%") + (if uri (uri-scheme uri) url))))) + (define cache-info (download-cache-info url)) (and cache-info - (string=? (cache-info-store-directory cache-info) - (%store-prefix)) - (let ((uri (string->uri url))) - (case (and=> uri uri-scheme) - ((http) - (let ((requests (map (cut narinfo-request url <>) paths))) - (update-progress!) - (let ((result (http-multiple-get url - handle-narinfo-response '() - requests))) - (newline (current-error-port)) - result))) - ((file #f) - (let* ((base (string-append (uri-path uri) "/")) - (files (map (compose (cut string-append base <> ".narinfo") - store-path-hash-part) - paths))) - (filter-map (cut narinfo-from-file <> url) files))) - (else - (leave (_ "~s: unsupported server URI scheme~%") - (if uri (uri-scheme uri) url))))))) + (if (string=? (cache-info-store-directory cache-info) + (%store-prefix)) + (do-fetch (string->uri url)) + (begin + (warning (_ "'~a' uses different store '~a'; ignoring it~%") + url (cache-info-store-directory cache-info)) + #f)))) (define (lookup-narinfos cache paths) "Return the narinfos for PATHS, invoking the server at CACHE when no -- cgit v1.2.3 From f6c9fb1b38732fab867db086b0527b01adb03dce Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sat, 28 Nov 2015 15:25:42 +0100 Subject: doc: Mention 'specification->package'. Suggested by Florian Paul Schmidt . * doc/guix.texi (Using the Configuration System): Mention 'specification->package'. --- doc/guix.texi | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/doc/guix.texi b/doc/guix.texi index ab1e4be20f..f7adfafe54 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -5543,6 +5543,26 @@ editor, @command{find}, @command{grep}, etc. The example above adds tcpdump to those, taken from the @code{(gnu packages admin)} module (@pxref{Package Modules}). +@findex specification->package +Referring to packages by variable name, like @var{tcpdump} above, has +the advantage of being unambiguous; it also allows typos and such to be +diagnosed right away as ``unbound variables''. The downside is that one +needs to know which module defines which package, and to augment the +@code{use-package-modules} line accordingly. To avoid that, one can use +the @code{specification->package} procedure of the @code{(gnu packages)} +module, which returns the best package for a given name or name and +version: + +@lisp +(use-modules (gnu packages)) + +(operating-system + ;; ... + (packages (append (map specification->package + '("tcpdump" "htop" "gnupg-2.0")) + %base-packages))) +@end lisp + @vindex %base-services The @code{services} field lists @dfn{system services} to be made available when the system starts (@pxref{Services}). -- cgit v1.2.3 From 4e70fe4d0efbb29d47e3d83d36d6c15f92baebb0 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sat, 28 Nov 2015 16:15:31 +0100 Subject: lint: Do not report already-patched vulnerabilities. * guix/scripts/lint.scm (patch-file-name): New procedure. (check-vulnerabilities): Use it to filter out patched vulnerabilities. * tests/lint.scm ("cve: one patched vulnerability"): New test. --- guix/scripts/lint.scm | 27 +++++++++++++++++++++++---- tests/lint.scm | 17 +++++++++++++++++ 2 files changed, 40 insertions(+), 4 deletions(-) diff --git a/guix/scripts/lint.scm b/guix/scripts/lint.scm index 1da4790f2d..338c7e827d 100644 --- a/guix/scripts/lint.scm +++ b/guix/scripts/lint.scm @@ -573,6 +573,15 @@ descriptions maintained upstream." (emit-warning package (_ "invalid license field") 'license)))) +(define (patch-file-name patch) + "Return the basename of PATCH's file name, or #f if the file name could not +be determined." + (match patch + ((? string?) + (basename patch)) + ((? origin?) + (and=> (origin-actual-file-name patch) basename)))) + (define (package-name->cpe-name name) "Do a basic conversion of NAME, a Guix package name, to the corresponding Common Platform Enumeration (CPE) name." @@ -596,10 +605,20 @@ Common Platform Enumeration (CPE) name." (() #t) ((vulnerabilities ...) - (emit-warning package - (format #f (_ "probably vulnerable to ~a") - (string-join (map vulnerability-id vulnerabilities) - ", ")))))) + (let* ((patches (filter-map patch-file-name + (or (and=> (package-source package) + origin-patches) + '()))) + (unpatched (remove (lambda (vuln) + (find (cute string-contains + <> (vulnerability-id vuln)) + patches)) + vulnerabilities))) + (unless (null? unpatched) + (emit-warning package + (format #f (_ "probably vulnerable to ~a") + (string-join (map vulnerability-id unpatched) + ", ")))))))) ;;; diff --git a/tests/lint.scm b/tests/lint.scm index 50316ade9a..df82593a9e 100644 --- a/tests/lint.scm +++ b/tests/lint.scm @@ -529,6 +529,23 @@ requests." (check-vulnerabilities (dummy-package "pi" (version "3.14")))) "vulnerable to CVE-2015-1234"))) +(test-assert "cve: one patched vulnerability" + (mock ((guix scripts lint) package-vulnerabilities + (lambda (package) + (list (make-struct (@@ (guix cve) ) 0 + "CVE-2015-1234" + (list (cons (package-name package) + (package-version package))))))) + (string-null? + (with-warnings + (check-vulnerabilities + (dummy-package "pi" + (version "3.14") + (source + (dummy-origin + (patches + (list "/a/b/pi-CVE-2015-1234.patch")))))))))) + (test-assert "formatting: lonely parentheses" (string-contains (with-warnings -- cgit v1.2.3 From f79a576e776eb299af52d60cdd51f4a4f79beee3 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sat, 28 Nov 2015 16:29:11 +0100 Subject: gnu: jasper: Patch CVE-2008-3522. * gnu/packages/patches/jasper-CVE-2008-3522.patch: New file. * gnu/packages/image.scm (jasper)[source]: Use it. * gnu-system.am (dist_patch_DATA): Add it. --- gnu-system.am | 1 + gnu/packages/image.scm | 3 ++- gnu/packages/patches/jasper-CVE-2008-3522.patch | 14 ++++++++++++++ 3 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/jasper-CVE-2008-3522.patch diff --git a/gnu-system.am b/gnu-system.am index f69645ba1a..e6af49bd0c 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -535,6 +535,7 @@ dist_patch_DATA = \ gnu/packages/patches/icu4c-CVE-2015-4760.patch \ gnu/packages/patches/imagemagick-test-segv.patch \ gnu/packages/patches/irrlicht-mesa-10.patch \ + gnu/packages/patches/jasper-CVE-2008-3522.patch \ gnu/packages/patches/jbig2dec-ignore-testtest.patch \ gnu/packages/patches/julia-0.3.10-fix-empty-array.patch \ gnu/packages/patches/kmod-module-directory.patch \ diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index 8a4a42a295..f3f89f6be6 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -714,7 +714,8 @@ convert, manipulate, filter and display a wide variety of image formats.") "/software/jasper-" version ".zip")) (sha256 (base32 - "154l7zk7yh3v8l2l6zm5s2alvd2fzkp6c9i18iajfbna5af5m43b")))) + "154l7zk7yh3v8l2l6zm5s2alvd2fzkp6c9i18iajfbna5af5m43b")) + (patches (list (search-patch "jasper-CVE-2008-3522.patch"))))) (build-system gnu-build-system) (native-inputs `(("unzip" ,unzip))) diff --git a/gnu/packages/patches/jasper-CVE-2008-3522.patch b/gnu/packages/patches/jasper-CVE-2008-3522.patch new file mode 100644 index 0000000000..10cfec99a5 --- /dev/null +++ b/gnu/packages/patches/jasper-CVE-2008-3522.patch @@ -0,0 +1,14 @@ +Fix CVE-2008-3522 (buffer overflow in 'jas_stream_printf'). +Patch from . + +--- jasper-1.900.1/src/libjasper/base/jas_stream.c 2008-09-08 14:56:01.000000000 +0200 ++++ jasper-1.900.1/src/libjasper/base/jas_stream.c 2008-09-08 14:58:16.000000000 +0200 +@@ -553,7 +553,7 @@ int jas_stream_printf(jas_stream_t *stre + int ret; + + va_start(ap, fmt); +- ret = vsprintf(buf, fmt, ap); ++ ret = vsnprintf(buf, sizeof buf, fmt, ap); + jas_stream_puts(stream, buf); + va_end(ap); + return ret; -- cgit v1.2.3 From 471cdfdb193357de7d76600ce6a5dcdbdbba1320 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sat, 28 Nov 2015 21:53:51 +0100 Subject: environment: Set build options early on. This fixes a bug whereby some options, such as #:substitute-urls, would be passed to the daemon too late to have an effect. * guix/scripts/environment.scm (build-inputs): Remove call to 'set-build-options-from-command-line*'. (guix-environment): Add call to 'set-build-options-from-command-line' as early as possible. --- guix/scripts/environment.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/guix/scripts/environment.scm b/guix/scripts/environment.scm index fae261733e..2cc5f366a7 100644 --- a/guix/scripts/environment.scm +++ b/guix/scripts/environment.scm @@ -294,7 +294,6 @@ OUTPUT) tuples, using the build options in OPTS." (if dry-run? (return #f) (mbegin %store-monad - (set-build-options-from-command-line* opts) (built-derivations derivations) (return derivations)))))))) @@ -500,6 +499,7 @@ message if any test fails." (when container? (assert-container-features)) (with-store store + (set-build-options-from-command-line store opts) (run-with-store store (mlet* %store-monad ((inputs (lower-inputs (map (match-lambda -- cgit v1.2.3 From 4eae7980753649fd8b3cfdb92f755acf0a2108e8 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 29 Nov 2015 17:37:00 +0100 Subject: gnu: guile-next: Update to 2.1.1. * gnu/packages/guile.scm (guile-next)[source]: Update to 2.1.1. [arguments, native-inputs]: Move to... (guile-for-guile-emacs): ... here. New fields. --- gnu/packages/guile.scm | 41 +++++++++++++++++++---------------------- 1 file changed, 19 insertions(+), 22 deletions(-) diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index 6d2341a428..96d5288e4a 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -194,22 +194,33 @@ without requiring the source code to be rewritten.") (define-public guile-next (package (inherit guile-2.0) (name "guile-next") - (version "20151025.e5bccb6") + (version "2.1.1") + (source (origin + (method url-fetch) + (uri (string-append "ftp://alpha.gnu.org/gnu/guile/guile-" + version ".tar.xz")) + (sha256 + (base32 + "0nixmx7as79g8rr8bvznh59pwcc2jd22cfk17v309p57zp2c255r")))) + (synopsis "Snapshot of what will become version 2.2 of GNU Guile"))) + +(define-public guile-for-guile-emacs + (package (inherit guile-next) + (name "guile-for-guile-emacs") + (version "20150510.d8d9a8d") (source (origin (method git-fetch) (uri (git-reference - (url "git://git.sv.gnu.org/guile.git") - (commit "e5bccb6e5df3485152bc6501e1f36275e09c6352"))) - (file-name (string-append name "-" version "-checkout")) + (url "git://git.hcoop.net/git/bpt/guile.git") + (commit "d8d9a8da05ec876acba81a559798eb5eeceb5a17"))) (sha256 (base32 - "0z7ywryfcargrpz8hdrz6sfs06c2h2y9baqin3mbjvvg96a5bx47")))) - + "00sprsshy16y8pxjy126hr2adqcvvzzz96hjyjwgg8swva1qh6b0")))) (arguments (substitute-keyword-arguments `(;; Tests aren't passing for now. ;; Obviously we should re-enable this! #:tests? #f - ,@(package-arguments guile-2.0)) + ,@(package-arguments guile-next)) ((#:phases phases) `(modify-phases ,phases (add-after 'unpack 'autogen @@ -220,7 +231,6 @@ without requiring the source code to be rewritten.") (substitute* "build-aux/git-version-gen" (("#!/bin/sh") (string-append "#!" (which "sh")))) #t)))))) - (synopsis "Snapshot of what will become version 2.2 of GNU Guile") (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) @@ -228,20 +238,7 @@ without requiring the source code to be rewritten.") ("flex" ,flex) ("texinfo" ,texinfo) ("gettext" ,gnu-gettext) - ,@(package-native-inputs guile-2.0))))) - -(define-public guile-for-guile-emacs - (package (inherit guile-next) - (name "guile-for-guile-emacs") - (version "20150510.d8d9a8d") - (source (origin - (method git-fetch) - (uri (git-reference - (url "git://git.hcoop.net/git/bpt/guile.git") - (commit "d8d9a8da05ec876acba81a559798eb5eeceb5a17"))) - (sha256 - (base32 - "00sprsshy16y8pxjy126hr2adqcvvzzz96hjyjwgg8swva1qh6b0")))))) + ,@(package-native-inputs guile-next))))) ;;; -- cgit v1.2.3 From 841cb43c6b4b7cb6ce328962368c583bc5fdc114 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 29 Nov 2015 17:42:01 +0100 Subject: guix build: Factorize build log query. * guix/scripts/build.scm (show-build-log): New procedure. (guix-build): New variable 'items'. Use it and 'show-build-log'. --- guix/scripts/build.scm | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/guix/scripts/build.scm b/guix/scripts/build.scm index 644ffe8d6e..b415403473 100644 --- a/guix/scripts/build.scm +++ b/guix/scripts/build.scm @@ -494,6 +494,15 @@ arguments with packages that use the specified source." ((head tail ...) (loop tail sources (cons head result)))))) +(define (show-build-log store file urls) + "Show the build log for FILE, falling back to remote logs from URLS if +needed." + (let ((log (or (log-file store file) + (log-url store file #:base-urls urls)))) + (if log + (format #t "~a~%" log) + (leave (_ "no build log for '~a'~%") file)))) + ;;; ;;; Entry point. @@ -515,9 +524,14 @@ arguments with packages that use the specified source." ;; daemon's substitute URLs. %default-substitute-urls) '()))) + (items (filter-map (match-lambda + (('argument . (? store-path? file)) + file) + (_ #f)) + opts)) (roots (filter-map (match-lambda - (('gc-root . root) root) - (_ #f)) + (('gc-root . root) root) + (_ #f)) opts))) (set-build-options-from-command-line store opts) @@ -527,22 +541,10 @@ arguments with packages that use the specified source." #:dry-run? (assoc-ref opts 'dry-run?))) (cond ((assoc-ref opts 'log-file?) - (for-each (lambda (file) - (let ((log (or (log-file store file) - (log-url store file - #:base-urls urls)))) - (if log - (format #t "~a~%" log) - (leave (_ "no build log for '~a'~%") - file)))) + (for-each (cut show-build-log store <> urls) (delete-duplicates (append (map derivation-file-name drv) - (filter-map (match-lambda - (('argument - . (? store-path? file)) - file) - (_ #f)) - opts))))) + items)))) ((assoc-ref opts 'derivations-only?) (format #t "~{~a~%~}" (map derivation-file-name drv)) (for-each (cut register-root store <> <>) -- cgit v1.2.3 From 25d188ce12e4e192e4167d03728a8ff69fe0bb35 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 29 Nov 2015 17:46:11 +0100 Subject: http-client: 'http-fetch' converts strings to URIs. * guix/http-client.scm (http-fetch): Use 'string->uri' if URI is a string. Fixes a regression introduced in 8a5063f. --- guix/http-client.scm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/guix/http-client.scm b/guix/http-client.scm index aa873a4353..eb2c3f4d5f 100644 --- a/guix/http-client.scm +++ b/guix/http-client.scm @@ -207,7 +207,9 @@ textual. Follow any HTTP redirection. When BUFFERED? is #f, return an unbuffered port, suitable for use in `filtered-port'. Raise an '&http-get-error' condition if downloading fails." - (let loop ((uri uri)) + (let loop ((uri (if (string? uri) + (string->uri uri) + uri))) (let ((port (or port (open-connection-for-uri uri)))) (unless buffered? (setvbuf port _IONBF)) -- cgit v1.2.3 From cb7bd0cff5e8ea1c01ba835a4ebba6c9abae7e16 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 29 Nov 2015 19:17:33 +0100 Subject: gnu: weechat: Dynamically link against libpython2.7.so. * gnu/packages/patches/weechat-python.patch: New file. * gnu-system.am (dist_patch_DATA): Add it. * gnu/packages/weechat.scm (weechat)[source]: Use it. --- gnu-system.am | 1 + gnu/packages/patches/weechat-python.patch | 40 +++++++++++++++++++++++++++++++ gnu/packages/weechat.scm | 5 +++- 3 files changed, 45 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/weechat-python.patch diff --git a/gnu-system.am b/gnu-system.am index e6af49bd0c..e4eb1d7cc9 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -726,6 +726,7 @@ dist_patch_DATA = \ gnu/packages/patches/vtk-mesa-10.patch \ gnu/packages/patches/w3m-fix-compile.patch \ gnu/packages/patches/webkitgtk-2.4-sql-init-string.patch \ + gnu/packages/patches/weechat-python.patch \ gnu/packages/patches/weex-vacopy.patch \ gnu/packages/patches/wicd-bitrate-none-fix.patch \ gnu/packages/patches/wicd-get-selected-profile-fix.patch \ diff --git a/gnu/packages/patches/weechat-python.patch b/gnu/packages/patches/weechat-python.patch new file mode 100644 index 0000000000..8182636ecb --- /dev/null +++ b/gnu/packages/patches/weechat-python.patch @@ -0,0 +1,40 @@ +Get Python LDFLAGS from 'pkg-config'. + +The other approach is more complex and gets it wrong: it returns +"-L/path/to/python/lib/python-2.7.10/lib/python2.7/config -lpython -lwhatever"; +since that config/ sub-directory contains libpython2.7.a, we end up +statically linking Python in Weechat's python.so, which we do not want. + +--- weechat-1.3/configure.ac 2015-08-16 08:27:07.000000000 +0200 ++++ weechat-1.3/configure.ac 2015-11-29 18:18:52.975197048 +0100 +@@ -535,29 +535,7 @@ if test "x$enable_python" = "xyes" ; the + if test -r "$PYTHON_INCLUDE/Python.h"; then + PYTHON_CFLAGS="-I$PYTHON_INCLUDE" + AC_MSG_RESULT(found) +- PYTHON_LIB=`$PYTHON -c "import sys, distutils.sysconfig; sys.stdout.write(distutils.sysconfig.get_config_var('LIBPL'))"` +- PYTHON_LFLAGS="-lpython$PYTHON_VERSION "`$PYTHON -c "import sys, distutils.sysconfig; sys.stdout.write(distutils.sysconfig.get_config_var('LIBS')+' '+distutils.sysconfig.get_config_var('SYSLIBS')+' '+distutils.sysconfig.get_config_var('LINKFORSHARED'))"` +- AC_MSG_CHECKING(for Python library) +- if test -r "$PYTHON_LIB/libpython$PYTHON_VERSION.so"; then +- PYTHON_LFLAGS="-L$PYTHON_LIB $PYTHON_LFLAGS" +- AC_MSG_RESULT(found) +- elif test -r "$PYTHON_LIB/libpython$PYTHON_VERSION.a"; then +- PYTHON_LFLAGS="-L$PYTHON_LIB $PYTHON_LFLAGS" +- AC_MSG_RESULT(found) +- elif test -r "$PYTHON_LIB/libpython$PYTHON_VERSION.dll.a"; then +- PYTHON_LFLAGS="-L$PYTHON_LIB $PYTHON_LFLAGS" +- AC_MSG_RESULT(found) +- elif test -r "$PYTHON_SYSPREFIX/lib/libpython$PYTHON_VERSION.so"; then +- PYTHON_LFLAGS="-L$PYTHON_SYSPREFIX/lib/ $PYTHON_LFLAGS" +- AC_MSG_RESULT(found) +- else +- AC_MSG_WARN([ +-*** Python library couldn't be found on your system. +-*** Try to install it with your software package manager. +-*** WeeChat will be built without Python support.]) +- enable_python="no" +- not_found="$not_found python" +- fi ++ PYTHON_LFLAGS=`pkg-config python2 --libs` + else + AC_MSG_WARN([ + *** Python header files couldn't be found on your system. diff --git a/gnu/packages/weechat.scm b/gnu/packages/weechat.scm index 27349ec60d..2142f5638e 100644 --- a/gnu/packages/weechat.scm +++ b/gnu/packages/weechat.scm @@ -20,6 +20,7 @@ ;; TODO: Add ruby (define-module (gnu packages weechat) + #:use-module (gnu packages) #:use-module (gnu packages ncurses) #:use-module (gnu packages base) #:use-module (gnu packages gettext) @@ -52,7 +53,9 @@ (uri (string-append "http://weechat.org/files/src/weechat-" version ".tar.gz")) (sha256 - (base32 "13b7dfs3sn71c51fi0bli5rzlsppil6gg1lzik3k8l43yhhqyv2w")))) + (base32 + "13b7dfs3sn71c51fi0bli5rzlsppil6gg1lzik3k8l43yhhqyv2w")) + (patches (list (search-patch "weechat-python.patch"))))) (build-system gnu-build-system) (native-inputs `(("autoconf" ,autoconf) ("pkg-config" ,pkg-config) -- cgit v1.2.3 From 25a21c7ff68a2e045ae8c5b8a464359e77781b5f Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sat, 21 Nov 2015 17:47:00 +0100 Subject: gnu: xfce-session: Enable shutdown/reboot menu entries. * gnu/packages/xfce.scm (xfce-session)[inputs]: Add upower and polkit. [source]: Replace paths to "shutdown" with "halt" and "restart". --- gnu/packages/xfce.scm | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/gnu/packages/xfce.scm b/gnu/packages/xfce.scm index a4987c1b2e..e213fb6067 100644 --- a/gnu/packages/xfce.scm +++ b/gnu/packages/xfce.scm @@ -35,6 +35,7 @@ #:use-module (gnu packages image) #:use-module (gnu packages gnome) #:use-module (gnu packages pdf) + #:use-module (gnu packages polkit) #:use-module (gnu packages gstreamer) #:use-module (gnu packages linux) #:use-module (gnu packages photo) @@ -426,7 +427,16 @@ your system in categories, so you can quickly find and launch them.") "01kvbd09c06j20n155hracsgrq06rlmfgdywffjsvlwpn19m9j38")) (patches ;; See: https://bugzilla.xfce.org/show_bug.cgi?id=12282 - (list (search-patch "xfce4-session-fix-xflock4.patch"))))) + (list (search-patch "xfce4-session-fix-xflock4.patch"))) + (modules '((guix build utils))) + (snippet + '(begin + (substitute* "xfsm-shutdown-helper/main.c" + (("/sbin/shutdown -h now") "halt") + (("/sbin/shutdown -r now") "restart") + (("/usr/sbin/pm-suspend") "pm-suspend") + (("/usr/sbin/pm-hibernate") "pm-hibernate")) + #t)))) (build-system gnu-build-system) (arguments '(#:configure-flags @@ -436,6 +446,8 @@ your system in categories, so you can quickly find and launch them.") ("intltool" ,intltool))) (inputs `(("iceauth" ,iceauth) + ("upower" ,upower) + ("polkit" ,polkit) ("libsm" ,libsm) ("libwnck" ,libwnck-1) ("libxfce4ui" ,libxfce4ui))) -- cgit v1.2.3 From eac26c3b09138f3ef22497fcf97212c376fc6d5c Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sat, 21 Nov 2015 22:40:22 +0100 Subject: services: Add pkexec to setuid programs. * gnu/services/desktop.scm (polkit-setuid-programs): Add pkexec to list of setuid programs. --- gnu/services/desktop.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm index 0b4ed56d05..694a8eda7e 100644 --- a/gnu/services/desktop.scm +++ b/gnu/services/desktop.scm @@ -381,7 +381,8 @@ site} for more information." (match-lambda (($ polkit) (list #~(string-append #$polkit - "/lib/polkit-1/polkit-agent-helper-1"))))) + "/lib/polkit-1/polkit-agent-helper-1") + #~(string-append #$polkit "/bin/pkexec"))))) (define polkit-service-type (service-type (name 'polkit) -- cgit v1.2.3 From 11d4800aa2e8181d353a0cc3149294062e1ba2c3 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sun, 22 Nov 2015 16:45:18 +0100 Subject: gnu: Add Rakarrack. * gnu/packages/audio.scm (rakarrack): New variable. --- gnu/packages/audio.scm | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index cf066b55bd..6a8347af05 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -42,6 +42,8 @@ #:use-module (gnu packages databases) #:use-module (gnu packages file) #:use-module (gnu packages flex) + #:use-module (gnu packages fltk) + #:use-module (gnu packages fontutils) #:use-module (gnu packages gettext) #:use-module (gnu packages glib) #:use-module (gnu packages gtk) @@ -589,6 +591,56 @@ from a simple noise gate to modulation effects like flanger, phaser or auto-wah.") (license license:gpl2+))) +(define-public rakarrack + (package + (name "rakarrack") + (version "0.6.1") + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/rakarrack/rakarrack/" + "rakarrack-" version "/rakarrack-" + version ".tar.bz2")) + (sha256 + (base32 + "1rpf63pdn54c4yg13k7cb1w1c7zsvl97c4qxcpz41c8l91xd55kn")) + (modules '((guix build utils))) + (snippet + '(begin + (substitute* '("src/process.C" + "src/global.h") + (("#include Date: Thu, 12 Nov 2015 16:04:49 +0100 Subject: gnu: Add perl-dbd-mysql. * gnu/packages/databases.scm (perl-dbd-mysql): New variable. --- gnu/packages/databases.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index 51e2a3e058..1eccad59fc 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -620,6 +620,30 @@ columns, primary keys, unique constraints and relationships.") (description "") (license (package-license perl)))) +(define-public perl-dbd-mysql + (package + (name "perl-dbd-mysql") + (version "4.033") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/C/CA/CAPTTOFU/" + "DBD-mysql-" version ".tar.gz")) + (sha256 + (base32 + "0769xakykps0cx368g4vaips4w3bjk383rianiavq7sq6g6bp66c")))) + (build-system perl-build-system) + ;; Tests require running MySQL server + (arguments `(#:tests? #f)) + (propagated-inputs + `(("perl-dbi" ,perl-dbi) + ("mysql" ,mysql))) + (home-page "http://search.cpan.org/dist/DBD-mysql") + (synopsis "DBI MySQL interface") + (description "This package provides a MySQL driver for the Perl5 +@dfn{Database Interface} (DBI).") + (license (package-license perl)))) + (define-public perl-dbd-sqlite (package (name "perl-dbd-sqlite") -- cgit v1.2.3 From 26059753aea72d0a2bc51204bad9fe416e7c6536 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 29 Nov 2015 22:49:19 +0100 Subject: refresh: Check updater availability at run time. This is a followup to b68d2db, which added a check for updaters at macro-expansion time. The problem is that, when running 'guix pull', Guile-JSON is found, so the PyPi updater (say) is added to %UPDATERS, but then at run time Guile-JSON might be missing. Reported by orbea on #guix. * guix/scripts/refresh.scm (maybe-updater): Rewrite as 'syntax-rules'. Produce code that checks conditions at run time. (list-updaters): Update docstring. --- guix/scripts/refresh.scm | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/guix/scripts/refresh.scm b/guix/scripts/refresh.scm index 8e8a34bd0f..a94bb22a91 100644 --- a/guix/scripts/refresh.scm +++ b/guix/scripts/refresh.scm @@ -157,20 +157,21 @@ specified with `--select'.\n")) ;;; (define-syntax maybe-updater - ;; Helper macro for 'list-udpaters'. - (lambda (s) - (syntax-case s (=>) - ((_ ((module => updater) rest ...) (result ...)) - (let ((met? (false-if-exception - (resolve-interface (syntax->datum #'module))))) - (if met? - #'(maybe-updater (rest ...) - (result ... (@ module updater))) - #'(maybe-updater (rest ...) (result ...))))) - ((_ (updater rest ...) (result ...)) - #'(maybe-updater (rest ...) (result ... updater))) - ((_ () result) - #'result)))) + ;; Helper macro for 'list-updaters'. + (syntax-rules (=>) + ((_ ((module => updater) rest ...) result) + (maybe-updater (rest ...) + (let ((iface (false-if-exception + (resolve-interface 'module))) + (tail result)) + (if iface + (cons (module-ref iface 'updater) tail) + tail)))) + ((_ (updater rest ...) result) + (maybe-updater (rest ...) + (cons updater result))) + ((_ () result) + (reverse result)))) (define-syntax-rule (list-updaters updaters ...) "Expand to '(list UPDATERS ...)' but only the subset of UPDATERS that are @@ -181,11 +182,11 @@ A conditional updater has this form: ((SOME MODULE) => UPDATER) meaning that UPDATER is added to the list if and only if (SOME MODULE) could -be resolved at macro expansion time. +be resolved at run time. This is a way to discard at macro expansion time updaters that depend on unavailable optional dependencies such as Guile-JSON." - (maybe-updater (updaters ...) (list))) + (maybe-updater (updaters ...) '())) (define %updaters ;; List of "updaters" used by default. They are consulted in this order. -- cgit v1.2.3 From 79c8a071e7f391e40b203f4489396f976a5333a7 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 12 Nov 2015 13:31:19 +0800 Subject: tk: Hardcode path to TK_LIBRARY. Fixes . * gnu/packages/patches/tk-find-library.patch: New patch. * gnu-system.am (dist_patch_DATA): Add it. * gnu/packages/tcl.scm (tk)[source]: Add patch. --- gnu-system.am | 1 + gnu/packages/patches/tk-find-library.patch | 29 +++++++++++++++++++++++++++++ gnu/packages/tcl.scm | 3 ++- 3 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/tk-find-library.patch diff --git a/gnu-system.am b/gnu-system.am index e4eb1d7cc9..99e8e7dff4 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -701,6 +701,7 @@ dist_patch_DATA = \ gnu/packages/patches/texi2html-i18n.patch \ gnu/packages/patches/tidy-CVE-2015-5522+5523.patch \ gnu/packages/patches/tinyxml-use-stl.patch \ + gnu/packages/patches/tk-find-library.patch \ gnu/packages/patches/torsocks-dns-test.patch \ gnu/packages/patches/tvtime-gcc41.patch \ gnu/packages/patches/tvtime-pngoutput.patch \ diff --git a/gnu/packages/patches/tk-find-library.patch b/gnu/packages/patches/tk-find-library.patch new file mode 100644 index 0000000000..70911bf0d2 --- /dev/null +++ b/gnu/packages/patches/tk-find-library.patch @@ -0,0 +1,29 @@ +This patch hard-codes the Tk library directory during package initialization. + +See . + +diff --git a/generic/tkWindow.c b/generic/tkWindow.c +index b5cbbab..96b5501 100644 +--- a/generic/tkWindow.c ++++ b/generic/tkWindow.c +@@ -988,6 +988,7 @@ TkCreateMainWindow( + + Tcl_SetVar2(interp, "tk_patchLevel", NULL, TK_PATCH_LEVEL, TCL_GLOBAL_ONLY); + Tcl_SetVar2(interp, "tk_version", NULL, TK_VERSION, TCL_GLOBAL_ONLY); ++ Tcl_SetVar2(interp, "tk_library", NULL, TK_LIBRARY, TCL_GLOBAL_ONLY); + + tsdPtr->numMainWindows++; + return tkwin; +diff --git a/unix/Makefile.in b/unix/Makefile.in +index f21fdbb..c61b0df 100644 +--- a/unix/Makefile.in ++++ b/unix/Makefile.in +@@ -1029,7 +1029,7 @@ tkVisual.o: $(GENERIC_DIR)/tkVisual.c + $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkVisual.c + + tkWindow.o: $(GENERIC_DIR)/tkWindow.c +- $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkWindow.c ++ $(CC) -c $(CC_SWITCHES) -DTK_LIBRARY=\"${TK_LIBRARY}\" $(GENERIC_DIR)/tkWindow.c + + tkButton.o: $(GENERIC_DIR)/tkButton.c + $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkButton.c diff --git a/gnu/packages/tcl.scm b/gnu/packages/tcl.scm index 5b55cccbde..c18b8b5112 100644 --- a/gnu/packages/tcl.scm +++ b/gnu/packages/tcl.scm @@ -140,7 +140,8 @@ X11 GUIs.") version "/tk" version "-src.tar.gz")) (sha256 (base32 - "1h96vp15zl5xz0d4qp6wjyrchqmrmdm3q5k22wkw9jaxbvw9vy88")))) + "1h96vp15zl5xz0d4qp6wjyrchqmrmdm3q5k22wkw9jaxbvw9vy88")) + (patches (list (search-patch "tk-find-library.patch"))))) (build-system gnu-build-system) (arguments '(#:phases (modify-phases %standard-phases -- cgit v1.2.3 From f8e7fdc4165afa8c54638bcc8c40da91bf7c9618 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 13 Nov 2015 23:17:15 +0100 Subject: gnu: tcl: Produce 'tclIndex' files deterministically. * gnu/packages/patches/tcl-mkindex-deterministic.patch: New patch. * gnu/packages/tcl.scm (tcl)[source]: Use it. * gnu-system.am (dist_patch_DATA): Add it. --- gnu-system.am | 1 + .../patches/tcl-mkindex-deterministic.patch | 29 ++++++++++++++++++++++ gnu/packages/tcl.scm | 16 ++++++------ 3 files changed, 38 insertions(+), 8 deletions(-) create mode 100644 gnu/packages/patches/tcl-mkindex-deterministic.patch diff --git a/gnu-system.am b/gnu-system.am index 99e8e7dff4..1fdbd00731 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -696,6 +696,7 @@ dist_patch_DATA = \ gnu/packages/patches/synfig-build-fix.patch \ gnu/packages/patches/tar-d_ino_in_dirent-fix.patch \ gnu/packages/patches/tar-skip-unreliable-tests.patch \ + gnu/packages/patches/tcl-mkindex-deterministic.patch \ gnu/packages/patches/tcsh-fix-autotest.patch \ gnu/packages/patches/texi2html-document-encoding.patch \ gnu/packages/patches/texi2html-i18n.patch \ diff --git a/gnu/packages/patches/tcl-mkindex-deterministic.patch b/gnu/packages/patches/tcl-mkindex-deterministic.patch new file mode 100644 index 0000000000..2fcef6a4f7 --- /dev/null +++ b/gnu/packages/patches/tcl-mkindex-deterministic.patch @@ -0,0 +1,29 @@ +This patch ensures that the 'tclIndex' files generated by 'auto_mkindex' +are sorted in a deterministic fashion. + +Fixes a non-determinism issue reported +at . + +--- tcl8.6.4/library/auto.tcl 2015-02-26 17:57:28.000000000 +0100 ++++ tcl8.6.4/library/auto.tcl 2015-11-13 23:18:34.964831717 +0100 +@@ -207,6 +207,9 @@ proc auto_mkindex {dir args} { + set args *.tcl + } + ++ # Keep file names sorted in a determistic order. ++ set args [lsort -ascii $args] ++ + auto_mkindex_parser::init + foreach file [glob -- {*}$args] { + try { +@@ -241,6 +244,10 @@ proc auto_mkindex_old {dir args} { + if {![llength $args]} { + set args *.tcl + } ++ ++ # Keep file names sorted in a determistic order. ++ set args [lsort -ascii $args] ++ + foreach file [glob -- {*}$args] { + set f "" + set error [catch { diff --git a/gnu/packages/tcl.scm b/gnu/packages/tcl.scm index c18b8b5112..6f6838c039 100644 --- a/gnu/packages/tcl.scm +++ b/gnu/packages/tcl.scm @@ -35,14 +35,14 @@ (package (name "tcl") (version "8.6.4") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://sourceforge/tcl/Tcl/" - version "/tcl" version "-src.tar.gz")) - (sha256 - (base32 - "13cwa4bc85ylf5gfj9vk182lvgy60qni3f7gbxghq78wk16djvly")))) + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/tcl/Tcl/" + version "/tcl" version "-src.tar.gz")) + (sha256 + (base32 + "13cwa4bc85ylf5gfj9vk182lvgy60qni3f7gbxghq78wk16djvly")) + (patches (list (search-patch "tcl-mkindex-deterministic.patch"))))) (build-system gnu-build-system) (arguments '(#:phases (alist-cons-before -- cgit v1.2.3 From dedc8320701b3f5d23ccc213c1c0381e00b33785 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sat, 14 Nov 2015 00:08:35 +0100 Subject: gnu: python-2: Honor 'SOURCE_DATE_EPOCH'. * gnu/packages/patches/python-2.7-source-date-epoch.patch: New file. * gnu/packages/python.scm (python-2)[source]: Use it. [arguments]: Set SOURCE_DATE_EPOCH in 'patch-lib-shells' phase. * guix/build/python-build-system.scm (set-SOURCE-DATE-EPOCH): New procedure. (%standard-phases): Add it. * gnu-system.am (dist_patch_DATA): Add patch. --- gnu-system.am | 1 + .../patches/python-2.7-source-date-epoch.patch | 33 ++++++++++++++++++++++ gnu/packages/python.scm | 9 +++++- guix/build/python-build-system.scm | 7 +++++ 4 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/python-2.7-source-date-epoch.patch diff --git a/gnu-system.am b/gnu-system.am index 1fdbd00731..c7a17a42e9 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -670,6 +670,7 @@ dist_patch_DATA = \ gnu/packages/patches/pybugz-stty.patch \ gnu/packages/patches/pyqt-configure.patch \ gnu/packages/patches/python-2.7-search-paths.patch \ + gnu/packages/patches/python-2.7-source-date-epoch.patch \ gnu/packages/patches/python-3-search-paths.patch \ gnu/packages/patches/python-disable-ssl-test.patch \ gnu/packages/patches/python-fix-tests.patch \ diff --git a/gnu/packages/patches/python-2.7-source-date-epoch.patch b/gnu/packages/patches/python-2.7-source-date-epoch.patch new file mode 100644 index 0000000000..be1f8e010e --- /dev/null +++ b/gnu/packages/patches/python-2.7-source-date-epoch.patch @@ -0,0 +1,33 @@ +Honor the 'SOURCE_DATE_EPOCH' environment variable to allow for +determinitic builds. + +--- a/Lib/py_compile.py ++++ b/Lib/py_compile.py +@@ -105,7 +105,10 @@ def compile(file, cfile=None, dfile=None, doraise=False): + """ + with open(file, 'U') as f: + try: +- timestamp = long(os.fstat(f.fileno()).st_mtime) ++ if 'SOURCE_DATE_EPOCH' in os.environ: ++ timestamp = long(os.environ['SOURCE_DATE_EPOCH']) ++ else: ++ timestamp = long(os.fstat(f.fileno()).st_mtime) + except AttributeError: + timestamp = long(os.stat(file).st_mtime) + codestring = f.read() +diff --git a/Python/import.c b/Python/import.c +index e47ce63..7eecf9c 100644 +--- a/Python/import.c ++++ b/Python/import.c +@@ -945,6 +945,11 @@ write_compiled_module(PyCodeObject *co, char *cpathname, struct stat *srcstat, t + /* Now write the true mtime (as a 32-bit field) */ + fseek(fp, 4L, 0); + assert(mtime <= 0xFFFFFFFF); ++ if (Py_GETENV("SOURCE_DATE_EPOCH") != NULL) { ++ const char *epoch = Py_GETENV("SOURCE_DATE_EPOCH"); ++ mtime = atoi(epoch); ++ } ++ + PyMarshal_WriteLongToFile((long)mtime, fp, Py_MARSHAL_VERSION); + fflush(fp); + fclose(fp); diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 001d00e9be..07725c727a 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -92,7 +92,9 @@ (sha256 (base32 "1h7zbrf9pkj29hlm18b10548ch9757f75m64l47sy75rh43p7lqw")) - (patches (list (search-patch "python-2.7-search-paths.patch"))))) + (patches (map search-patch + '("python-2.7-search-paths.patch" + "python-2.7-source-date-epoch.patch"))))) (build-system gnu-build-system) (arguments `(#:tests? #f @@ -158,6 +160,11 @@ "Lib/distutils/tests/test_spawn.py" "Lib/test/test_subprocess.py")) (("/bin/sh") (which "sh"))) + + ;; Use zero as the timestamp in .pyc files so that builds are + ;; deterministic. TODO: Remove it when this variable is set in + ;; gnu-build-system.scm. + (setenv "SOURCE_DATE_EPOCH" "0") #t)) (add-before 'check 'pre-check diff --git a/guix/build/python-build-system.scm b/guix/build/python-build-system.scm index 1ae42c00b4..6775cc4396 100644 --- a/guix/build/python-build-system.scm +++ b/guix/build/python-build-system.scm @@ -136,11 +136,18 @@ installed with setuptools." #t)) #t)) +(define* (set-SOURCE-DATE-EPOCH #:rest _) + "Set the 'SOURCE_DATE_EPOCH' environment variable." + ;; Use zero as the timestamp in .pyc files so that builds are deterministic. + ;; TODO: Remove it when this variable is set in GNU:%STANDARD-PHASES. + (setenv "SOURCE_DATE_EPOCH" "0")) + (define %standard-phases ;; 'configure' and 'build' phases are not needed. Everything is done during ;; 'install'. (modify-phases gnu:%standard-phases (add-after 'unpack 'ensure-no-mtimes-pre-1980 ensure-no-mtimes-pre-1980) + (add-after 'unpack 'set-SOURCE-DATE-EPOCH set-SOURCE-DATE-EPOCH) (delete 'configure) (replace 'install install) (replace 'check check) -- cgit v1.2.3 From a665996f58764a0c6e805016915225f911294989 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sat, 14 Nov 2015 16:52:17 +0100 Subject: gnu: python: Set SOURCE_DATE_EPOCH to 1 instead of 0. * gnu/packages/python.scm (python-2)[arguments]: Set SOURCE_DATE_EPOCH to 1 to match what the daemon does. * guix/build/python-build-system.scm (set-SOURCE-DATE-EPOCH): Likewise. --- gnu/packages/python.scm | 2 +- guix/build/python-build-system.scm | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 07725c727a..7f7fa388a1 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -164,7 +164,7 @@ ;; Use zero as the timestamp in .pyc files so that builds are ;; deterministic. TODO: Remove it when this variable is set in ;; gnu-build-system.scm. - (setenv "SOURCE_DATE_EPOCH" "0") + (setenv "SOURCE_DATE_EPOCH" "1") #t)) (add-before 'check 'pre-check diff --git a/guix/build/python-build-system.scm b/guix/build/python-build-system.scm index 6775cc4396..8025b7fec6 100644 --- a/guix/build/python-build-system.scm +++ b/guix/build/python-build-system.scm @@ -140,7 +140,7 @@ installed with setuptools." "Set the 'SOURCE_DATE_EPOCH' environment variable." ;; Use zero as the timestamp in .pyc files so that builds are deterministic. ;; TODO: Remove it when this variable is set in GNU:%STANDARD-PHASES. - (setenv "SOURCE_DATE_EPOCH" "0")) + (setenv "SOURCE_DATE_EPOCH" "1")) (define %standard-phases ;; 'configure' and 'build' phases are not needed. Everything is done during -- cgit v1.2.3 From 9820a6d4a0fb82cd97f62ada764af658a4a3e71d Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 15 Nov 2015 00:25:55 +0100 Subject: gnu: python: Make 'sys.version' deterministic. * gnu/packages/patches/python-2-deterministic-build-info.patch, gnu/packages/patches/python-3-deterministic-build-info.patch: New files. * gnu/packages/python.scm (python-2, python): Use them. * gnu-system.am (dist_patch_DATA): Add them. --- gnu-system.am | 2 ++ .../patches/python-2-deterministic-build-info.patch | 17 +++++++++++++++++ .../patches/python-3-deterministic-build-info.patch | 17 +++++++++++++++++ gnu/packages/python.scm | 2 ++ 4 files changed, 38 insertions(+) create mode 100644 gnu/packages/patches/python-2-deterministic-build-info.patch create mode 100644 gnu/packages/patches/python-3-deterministic-build-info.patch diff --git a/gnu-system.am b/gnu-system.am index c7a17a42e9..71b914442f 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -669,8 +669,10 @@ dist_patch_DATA = \ gnu/packages/patches/pybugz-encode-error.patch \ gnu/packages/patches/pybugz-stty.patch \ gnu/packages/patches/pyqt-configure.patch \ + gnu/packages/patches/python-2-deterministic-build-info.patch \ gnu/packages/patches/python-2.7-search-paths.patch \ gnu/packages/patches/python-2.7-source-date-epoch.patch \ + gnu/packages/patches/python-3-deterministic-build-info.patch \ gnu/packages/patches/python-3-search-paths.patch \ gnu/packages/patches/python-disable-ssl-test.patch \ gnu/packages/patches/python-fix-tests.patch \ diff --git a/gnu/packages/patches/python-2-deterministic-build-info.patch b/gnu/packages/patches/python-2-deterministic-build-info.patch new file mode 100644 index 0000000000..25a079fe90 --- /dev/null +++ b/gnu/packages/patches/python-2-deterministic-build-info.patch @@ -0,0 +1,17 @@ +Always provide the same date and time in 'Py_GetBuildInfo'. +This is the information shown at the REPL and in 'sys.version'. +We cannot pass it in CPPFLAGS due to whitespace in the DATE string. + +--- a/Modules/getbuildinfo.c ++++ b/Modules/getbuildinfo.c +@@ -4,6 +4,10 @@ + #include + #endif + ++/* Deterministic date and time. */ ++#define DATE "Jan 1 1970" ++#define TIME "00:00:01" ++ + #ifndef DATE + #ifdef __DATE__ + #define DATE __DATE__ diff --git a/gnu/packages/patches/python-3-deterministic-build-info.patch b/gnu/packages/patches/python-3-deterministic-build-info.patch new file mode 100644 index 0000000000..22c372a0cf --- /dev/null +++ b/gnu/packages/patches/python-3-deterministic-build-info.patch @@ -0,0 +1,17 @@ +Always provide the same date and time in 'Py_GetBuildInfo'. +This is the information shown at the REPL and in 'sys.version'. +We cannot pass it in CPPFLAGS due to whitespace in the DATE string. + +--- Modules/getbuildinfo.c ++++ Modules/getbuildinfo.c +@@ -4,6 +4,10 @@ + #include + #endif + ++/* Deterministic date and time. */ ++#define DATE "Jan 1 1970" ++#define TIME "00:00:01" ++ + #ifndef DATE + #ifdef __DATE__ + #define DATE __DATE__ diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 7f7fa388a1..fa8f203828 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -94,6 +94,7 @@ "1h7zbrf9pkj29hlm18b10548ch9757f75m64l47sy75rh43p7lqw")) (patches (map search-patch '("python-2.7-search-paths.patch" + "python-2-deterministic-build-info.patch" "python-2.7-source-date-epoch.patch"))))) (build-system gnu-build-system) (arguments @@ -223,6 +224,7 @@ data types.") '("python-fix-tests.patch" ;; XXX Try removing this patch for python > 3.4.3 "python-disable-ssl-test.patch" + "python-3-deterministic-build-info.patch" "python-3-search-paths.patch"))) (patch-flags '("-p0")) (sha256 -- cgit v1.2.3 From c5a05e31437d640647b5aa1dd70917149bb3f1a3 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 15 Nov 2015 00:27:15 +0100 Subject: gnu: python: Factorize configure flags with minimal variants. * gnu/packages/python.scm (python2-minimal, python-minimal)[arguments]: Reuse the inherited configure flags, and just add --without-system-ffi. --- gnu/packages/python.scm | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index fa8f203828..fd3e6b312b 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -247,10 +247,8 @@ data types.") (name "python-minimal") (arguments (substitute-keyword-arguments (package-arguments python-2) - ((#:configure-flags _) - `(list "--enable-shared" - (string-append "LDFLAGS=-Wl,-rpath=" - (assoc-ref %outputs "out") "/lib"))))) + ((#:configure-flags cf) + `(append ,cf '("--without-system-ffi"))))) (inputs '()))) ;none of the optional dependencies (define-public python-minimal @@ -258,10 +256,8 @@ data types.") (name "python-minimal") (arguments (substitute-keyword-arguments (package-arguments python) - ((#:configure-flags _) - `(list "--enable-shared" - (string-append "LDFLAGS=-Wl,-rpath=" - (assoc-ref %outputs "out") "/lib"))))) + ((#:configure-flags cf) + `(append ,cf '("--without-system-ffi"))))) ;; OpenSSL is a mandatory dependency of Python 3.x, for urllib; ;; zlib is required by 'zipimport', used by pip. -- cgit v1.2.3 From 5b4e2791ef898a5fd43388b8020377b5d7bda771 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 15 Nov 2015 17:51:12 +0100 Subject: gnu: python: Do not record configure flags. This reduces the number of run-time dependencies of python-2 from 25 to 15, corresponding only to ~4 MiB. * gnu/packages/python.scm (python-2)[arguments]: Add 'do-not-record-configure-flags' phase. --- gnu/packages/python.scm | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index fd3e6b312b..6cae1324a0 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -167,6 +167,22 @@ ;; gnu-build-system.scm. (setenv "SOURCE_DATE_EPOCH" "1") #t)) + (add-before 'configure 'do-not-record-configure-flags + (lambda* (#:key configure-flags #:allow-other-keys) + ;; Remove configure flags from the installed '_sysconfigdata.py' + ;; and 'Makefile' so we don't end up keeping references to the + ;; build tools. + ;; + ;; Preserve at least '--with-system-ffi' since otherwise the + ;; thing tries to build libffi, fails, and we end up with a + ;; Python that lacks ctypes. + (substitute* "configure" + (("^CONFIG_ARGS=.*$") + (format #f "CONFIG_ARGS='~a'\n" + (if (member "--with-system-ffi" configure-flags) + "--with-system-ffi" + "")))) + #t)) (add-before 'check 'pre-check (lambda _ -- cgit v1.2.3 From d2cc9c7cfd5e66853a66d706186a69a0c044ef34 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 15 Nov 2015 22:15:41 +0100 Subject: gnu: python: Clarify and shorten the list of built-time modules. * gnu/packages/python.scm (python-2)[arguments]: Make the #:modules list shorter. --- gnu/packages/python.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 6cae1324a0..3d4ad98a09 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -146,8 +146,8 @@ (string-append "LDFLAGS=-Wl,-rpath=" (assoc-ref %outputs "out") "/lib")) - #:modules ((ice-9 ftw) - ,@%gnu-build-system-modules) + #:modules ((ice-9 ftw) (ice-9 match) + (guix build utils) (guix build gnu-build-system)) #:phases (modify-phases %standard-phases (add-before -- cgit v1.2.3 From 02f0c3b28e37e9bee3d65724da7eab7225286a1f Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 15 Nov 2015 22:27:45 +0100 Subject: gnu: python: Move tkinter to "tk" output. * gnu/packages/python.scm (python-2)[outputs]: New field. [arguments]: Add 'move-tk-inter' phase. (python2-minimal, python-minimal, wrap-python3)[outputs]: New field. --- gnu/packages/python.scm | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 3d4ad98a09..39d0751f6a 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -96,6 +96,8 @@ '("python-2.7-search-paths.patch" "python-2-deterministic-build-info.patch" "python-2.7-source-date-epoch.patch"))))) + (outputs '("out" + "tk")) ;tkinter; adds 50 MiB to the closure (build-system gnu-build-system) (arguments `(#:tests? #f @@ -200,7 +202,28 @@ (ftw "." (lambda (file stat flag) (utime file circa-1980 circa-1980) #t)) - #t)))))) + #t))) + (add-after 'install 'move-tk-inter + (lambda* (#:key outputs #:allow-other-keys) + ;; When Tkinter support is built move it to a separate output so + ;; that the main output doesn't contain a reference to Tcl/Tk. + (let ((out (assoc-ref outputs "out")) + (tk (assoc-ref outputs "tk"))) + (when tk + (match (find-files out "tkinter.*\\.so") + ((tkinter.so) + ;; The .so is in OUT/lib/pythonX.Y/lib-dynload, but we + ;; want it under TK/lib/pythonX.Y/site-packages. + (let* ((len (string-length out)) + (target (string-append + tk "/" + (string-drop + (dirname (dirname tkinter.so)) + len) + "/site-packages"))) + (install-file tkinter.so target) + (delete-file tkinter.so))))) + #t)))))) (inputs `(("bzip2" ,bzip2) ("gdbm" ,gdbm) @@ -261,6 +284,7 @@ data types.") (define-public python2-minimal (package (inherit python-2) (name "python-minimal") + (outputs '("out")) (arguments (substitute-keyword-arguments (package-arguments python-2) ((#:configure-flags cf) @@ -270,6 +294,7 @@ data types.") (define-public python-minimal (package (inherit python) (name "python-minimal") + (outputs '("out")) (arguments (substitute-keyword-arguments (package-arguments python) ((#:configure-flags cf) @@ -285,6 +310,7 @@ data types.") (name name) (source #f) (build-system trivial-build-system) + (outputs '("out")) (propagated-inputs `(("python" ,python))) (arguments `(#:modules ((guix build utils)) -- cgit v1.2.3 From dbd3a91f54a5f04f08c2280744c0eda668c78771 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 30 Nov 2015 10:41:19 +0200 Subject: gnu: xorriso: Update to 1.4.2. * gnu/packages/cdrom.scm (xorriso): Update to 1.4.2. --- gnu/packages/cdrom.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/cdrom.scm b/gnu/packages/cdrom.scm index 9a216f789d..fec1fc9632 100644 --- a/gnu/packages/cdrom.scm +++ b/gnu/packages/cdrom.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2013, 2014 Andreas Enge ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer ;;; Copyright © 2015 Paul van der Walt +;;; Copyright © 2015 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -125,14 +126,14 @@ libcdio.") (define-public xorriso (package (name "xorriso") - (version "1.4.0") + (version "1.4.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/xorriso/xorriso-" version ".tar.gz")) (sha256 (base32 - "0mhfxn2idkrw1i65a5y4gnb1fig85zpnszb9ax7w4a2v062y1l8b")))) + "1cq4a0904lnz6nygbgarnlq49cz4qnfdyvz90s3nfk5as7gbwhr8")))) (build-system gnu-build-system) (inputs `(("acl" ,acl) -- cgit v1.2.3 From 0149354d212b20a9d0b7c849708ba9e03c085764 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 9 Nov 2015 14:46:56 +0100 Subject: gnu: Add cereal. * gnu/packages/serialization.scm: New file. * gnu-system.am (GNU_SYSTEM_MODULES): Add it. --- gnu-system.am | 1 + gnu/packages/serialization.scm | 74 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 75 insertions(+) create mode 100644 gnu/packages/serialization.scm diff --git a/gnu-system.am b/gnu-system.am index 71b914442f..4e068536a1 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -288,6 +288,7 @@ GNU_SYSTEM_MODULES = \ gnu/packages/scribus.scm \ gnu/packages/sdl.scm \ gnu/packages/search.scm \ + gnu/packages/serialization.scm \ gnu/packages/serveez.scm \ gnu/packages/shishi.scm \ gnu/packages/skarnet.scm \ diff --git a/gnu/packages/serialization.scm b/gnu/packages/serialization.scm new file mode 100644 index 0000000000..b03e27cb95 --- /dev/null +++ b/gnu/packages/serialization.scm @@ -0,0 +1,74 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2015 Ricardo Wurmus +;;; +;;; 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 serialization) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system cmake) + #:use-module (gnu packages) + #:use-module (gnu packages doxygen)) + +(define-public cereal + (package + (name "cereal") + (version "1.1.2") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/USCiLab/cereal/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "13bvsfzvm7yyp97k20iznq2j14dj3qiczvpq7g8897njw46psq25")))) + (build-system cmake-build-system) + (arguments + `(;; The only included tests are portability tests requiring + ;; cross-compilation and boost. Since we are building cereal on more + ;; platforms anyway, there is no compelling reason to build the tests. + #:tests? #f + #:out-of-source? #f + #:phases + (modify-phases %standard-phases + (delete 'configure) + (replace 'build + (lambda _ + (substitute* "doc/doxygen.in" + (("@CMAKE_CURRENT_SOURCE_DIR@") ".")) + (zero? (system* "doxygen" "doc/doxygen.in")))) + ;; There is no "install" target, so we have to provide our own + ;; "install" phase. + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (doc (string-append out "/share/cereal/docs")) + (include (string-append out "/include/cereal"))) + (mkdir-p doc) + (mkdir-p include) + (copy-recursively "include/cereal" include) + (copy-recursively "doc/html" doc)) + #t))))) + (native-inputs + `(("doxygen" ,doxygen))) + (home-page "http://uscilab.github.io/cereal/") + (synopsis "C++11 library for serialization") + (description + "Cereal is a header-only C++11 serialization library. Cereal takes +arbitrary data types and reversibly turns them into different representations, +such as compact binary encodings, XML, or JSON.") + (license license:bsd-3))) -- cgit v1.2.3 From b0cf606f756416f6e1323fb2c7bd38989ad2f2bd Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 10 Nov 2015 15:41:04 +0100 Subject: gnu: Add sparsehash. * gnu/packages/crypto.scm (sparsehash): New variable. --- gnu/packages/crypto.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm index d3dbd28aac..08af95f8eb 100644 --- a/gnu/packages/crypto.scm +++ b/gnu/packages/crypto.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 David Thompson +;;; Copyright © 2015 Ricardo Wurmus ;;; ;;; This file is part of GNU Guix. ;;; @@ -42,3 +43,28 @@ communication, encryption, decryption, signatures, etc.") (license isc) (home-page "http://libsodium.org"))) + +(define-public sparsehash + (package + (name "sparsehash") + (version "2.0.3") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/sparsehash/sparsehash/" + "archive/sparsehash-" version ".tar.gz")) + (sha256 + (base32 + "133szz0ldwch0kd91l0sa57qsnl020njn622szd9cxrjqyjqds85")))) + (build-system gnu-build-system) + (synopsis "Memory-efficient hashtable implementations") + (description + "This library contains several hash-map implementations, similar in API +to SGI's @code{hash_map} class, but with different performance +characteristics. @code{sparse_hash_map} uses very little space overhead, 1-2 +bits per entry. @code{dense_hash_map} is very fast, particulary on lookup. +@code{sparse_hash_set} and @code{dense_hash_set} are the set versions of these +routines. All these implementation use a hashtable with internal quadratic +probing. This method is space-efficient -- there is no pointer overhead -- +and time-efficient for good hash functions.") + (home-page "https://github.com/sparsehash/sparsehash") + (license bsd-3))) -- cgit v1.2.3 From a84fa2ad42e906d7c64a74f537c43b410a24692c Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 24 Nov 2015 16:48:42 +0100 Subject: gnu: Add ruby-simplecov. * gnu/packages/ruby.scm (ruby-simplecov): New variable. --- gnu/packages/ruby.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 4a33c3c6f7..4265435d2b 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -852,6 +852,33 @@ the SimpleCov code coverage tool for Ruby version 1.9 and above.") (home-page "https://github.com/colszowka/simplecov-html") (license license:expat))) +(define-public ruby-simplecov + (package + (name "ruby-simplecov") + (version "0.10.0") + (source (origin + (method url-fetch) + (uri (rubygems-uri "simplecov" version)) + (sha256 + (base32 + "1q2iq2vgrdvvla5y907gkmqx6ry2qvnvc7a90hlcbwgp1w0sv6z4")))) + (build-system ruby-build-system) + ;; Simplecov depends on rubocop for code style checking at build time. + ;; Rubocop needs simplecov at build time. + (arguments `(#:tests? #f)) + (propagated-inputs + `(("ruby-json" ,ruby-json) + ("ruby-docile" ,ruby-docile) + ("ruby-simplecov-html" ,ruby-simplecov-html))) + (native-inputs + `(("bundler" ,bundler))) + (synopsis "Code coverage framework for Ruby") + (description "SimpleCov is a code coverage framework for Ruby with a +powerful configuration library and automatic merging of coverage across test +suites.") + (home-page "http://github.com/colszowka/simplecov") + (license license:expat))) + (define-public ruby-useragent (package (name "ruby-useragent") -- cgit v1.2.3 From fe1ddad54ac430ddf684c5d5fff9dffb9ec7bcb3 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 24 Nov 2015 16:50:37 +0100 Subject: gnu: Add ruby-atoulme-saikuro. * gnu/packages/ruby.scm (ruby-atoulme-saikuro): New variable. --- gnu/packages/ruby.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 4265435d2b..1aa03972d1 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -518,6 +518,32 @@ script.") (home-page "http://rubyforge.org/projects/antwrap/") (license license:expat))) +(define-public ruby-atoulme-saikuro + (package + (name "ruby-atoulme-saikuro") + (version "1.2.1") + (source (origin + (method url-fetch) + (uri (rubygems-uri "atoulme-Saikuro" version)) + (sha256 + (base32 + "0kvd2nsxffbza61d3q4j94wrbnbv50r1zy3a7q26f6k706fw1f19")))) + (build-system ruby-build-system) + ;; FIXME: There are no unit tests. The tests are demonstrations of the + ;; "saikuro" tool. + (arguments `(#:tests? #f)) + (synopsis "Cyclomatic complexity analyzer") + (description "Saikuro is a Ruby cyclomatic complexity analyzer. When +given Ruby source code Saikuro will generate a report listing the cyclomatic +complexity of each method found. In addition, Saikuro counts the number of +lines per method and can generate a listing of the number of tokens on each +line of code.") + (home-page "http://www.github.com/atoulme/Saikuro") + ;; File headers contain the BSD-3 license and the README.rdoc says that + ;; "Saikuro uses the BSD license", but the LICENSE file contains the text + ;; of the Expat license. + (license license:bsd-3))) + (define-public ruby-orderedhash (package (name "ruby-orderedhash") -- cgit v1.2.3 From 2f9e0b68e1d4098fe8259ea5113c160b7008c5e2 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 24 Nov 2015 16:51:19 +0100 Subject: gnu: Add ruby-ci-reporter. * gnu/packages/ruby.scm (ruby-ci-reporter): New variable. --- gnu/packages/ruby.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 1aa03972d1..a01eefc2ed 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -544,6 +544,33 @@ line of code.") ;; of the Expat license. (license license:bsd-3))) +(define-public ruby-ci-reporter + (package + (name "ruby-ci-reporter") + (version "2.0.0") + (source (origin + (method url-fetch) + (uri (rubygems-uri "ci_reporter" version)) + (sha256 + (base32 + "17fm20jmw3ajdryhkkxpjahcfx7bgswqzxrskivlkns2718ayyyg")))) + (build-system ruby-build-system) + (arguments + `(#:test-target "rspec")) + (propagated-inputs + `(("ruby-builder" ,ruby-builder))) + (native-inputs + `(("bundler" ,bundler) + ("ruby-rspec" ,ruby-rspec))) + (synopsis "Generate XML reports of runs test") + (description + "@code{CI::Reporter} is an add-on to Ruby testing frameworks that allows +you to generate XML reports of your test runs. The resulting files can be +read by a continuous integration system that understands Ant's JUnit report +format.") + (home-page "https://github.com/nicksieger/ci_reporter") + (license license:expat))) + (define-public ruby-orderedhash (package (name "ruby-orderedhash") -- cgit v1.2.3 From a75bdfcec340cbb9d240b542e09ffb3d32ea658d Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 24 Nov 2015 16:52:10 +0100 Subject: gnu: Add ruby-pry-editline. * gnu/packages/ruby.scm (ruby-pry-editline): New variable. --- gnu/packages/ruby.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index a01eefc2ed..d0f6fe971d 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -1809,6 +1809,27 @@ kernel subsystem for monitoring changes to files and directories.") (home-page "https://github.com/nex3/rb-inotify") (license license:expat))) +(define-public ruby-pry-editline + (package + (name "ruby-pry-editline") + (version "1.1.2") + (source (origin + (method url-fetch) + (uri (rubygems-uri "pry-editline" version)) + (sha256 + (base32 + "1pjxyvdxvw41xw3yyl18pwzix8hbvn6lgics7qcfhjfsf1zs8x1z")))) + (build-system ruby-build-system) + (arguments `(#:tests? #f)) ; no tests included + (native-inputs + `(("bundler" ,bundler))) + (synopsis "Open the current REPL line in an editor") + (description + "This gem provides a plugin for the Ruby REPL to enable opening the +current line in an external editor.") + (home-page "https://github.com/tpope/pry-editline") + (license license:expat))) + (define-public ruby-json (package (name "ruby-json") -- cgit v1.2.3 From d3b20a02c8c6527cf600e1a89b0c6c7319cea9f5 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 24 Nov 2015 16:52:53 +0100 Subject: gnu: Add ruby-sdoc. * gnu/packages/ruby.scm (ruby-sdoc): New variable. --- gnu/packages/ruby.scm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index d0f6fe971d..7e02d417d2 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -1830,6 +1830,38 @@ current line in an external editor.") (home-page "https://github.com/tpope/pry-editline") (license license:expat))) +(define-public ruby-sdoc + (package + (name "ruby-sdoc") + (version "0.4.1") + (source (origin + (method url-fetch) + (uri (rubygems-uri "sdoc" version)) + (sha256 + (base32 + "16xyfair1j4irfkd6sxvmdcak957z71lwkvhglrznfpkalfnqyqp")))) + (build-system ruby-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'build 'relax-minitest-requirement + (lambda _ + (substitute* "sdoc.gemspec" + ((", \\[\"~> 4\\.0\"\\]") + ", [\">= 4.0\"]")) + #t))))) + (propagated-inputs + `(("ruby-json" ,ruby-json))) + (native-inputs + `(("bundler" ,bundler) + ("ruby-minitest" ,ruby-minitest))) + (synopsis "Generate searchable RDoc documentation") + (description + "SDoc is an RDoc documentation generator to build searchable HTML +documentation for Ruby code.") + (home-page "http://github.com/voloko/sdoc") + (license license:expat))) + (define-public ruby-json (package (name "ruby-json") -- cgit v1.2.3 From 70b002aa1d721b207879a3e4a0fa33e7f302d723 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 24 Nov 2015 16:54:09 +0100 Subject: gnu: Add ruby-tins. * gnu/packages/ruby.scm (ruby-tins): New variable. --- gnu/packages/ruby.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 7e02d417d2..c51a5f08e2 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -1862,6 +1862,36 @@ documentation for Ruby code.") (home-page "http://github.com/voloko/sdoc") (license license:expat))) +(define-public ruby-tins + (package + (name "ruby-tins") + (version "1.7.0") + (source (origin + (method url-fetch) + (uri (rubygems-uri "tins" version)) + (sha256 + (base32 + "1060h8dgnjl9az0sv1b74yrni8d4mh3x858wq6yfbfdf5dxrfl0a")))) + (build-system ruby-build-system) + ;; This gem needs gem-hadar at development time, but gem-hadar needs tins + ;; at runtime. To avoid the dependency on gem-hadar we disable rebuilding + ;; the gemspec. + (arguments + `(#:tests? #f ; there are no tests + #:phases + (modify-phases %standard-phases + (replace 'build + (lambda _ + ;; "lib/spruz" is a symlink. Leaving it in the gemspec file + ;; causes an error. + (substitute* "tins.gemspec" + (("\"lib/spruz\", ") "")) + (zero? (system* "gem" "build" "tins.gemspec"))))))) + (synopsis "Assorted tools for Ruby") + (description "Tins is a Ruby library providing assorted tools.") + (home-page "https://github.com/flori/tins") + (license license:expat))) + (define-public ruby-json (package (name "ruby-json") -- cgit v1.2.3 From a9ee11d5ab61d6dd64113d71c5a9c8511c1d050d Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 27 Nov 2015 10:57:03 +0100 Subject: gnu: openssh: Use modify-phases syntax. * gnu/packages/ssh.scm (openssh)[arguments]: Use modify-phases syntax. --- gnu/packages/ssh.scm | 39 +++++++++++++++++++-------------------- 1 file changed, 19 insertions(+), 20 deletions(-) diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm index 2f4f8a28a9..26729ea909 100644 --- a/gnu/packages/ssh.scm +++ b/gnu/packages/ssh.scm @@ -129,26 +129,25 @@ a server that supports the SSH-2 protocol.") (arguments `(#:test-target "tests" #:phases - (alist-cons-after - 'configure 'reset-/var/empty - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (substitute* "Makefile" - (("PRIVSEP_PATH=/var/empty") - (string-append "PRIVSEP_PATH=" out "/var/empty"))))) - (alist-cons-before - 'check 'patch-tests - (lambda _ - ;; remove 't-exec' regress target which requires user 'sshd' - (substitute* "regress/Makefile" - (("^(REGRESS_TARGETS=.*) t-exec(.*)" all pre post) - (string-append pre post)))) - (alist-replace - 'install - (lambda* (#:key (make-flags '()) #:allow-other-keys) - ;; install without host keys and system configuration files - (zero? (apply system* "make" "install-nosysconf" make-flags))) - %standard-phases))))) + (modify-phases %standard-phases + (add-after 'configure 'reset-/var/empty + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (substitute* "Makefile" + (("PRIVSEP_PATH=/var/empty") + (string-append "PRIVSEP_PATH=" out "/var/empty"))) + #t))) + (add-before 'check 'patch-tests + (lambda _ + ;; remove 't-exec' regress target which requires user 'sshd' + (substitute* "regress/Makefile" + (("^(REGRESS_TARGETS=.*) t-exec(.*)" all pre post) + (string-append pre post))) + #t)) + (replace 'install + (lambda* (#:key (make-flags '()) #:allow-other-keys) + ;; install without host keys and system configuration files + (zero? (apply system* "make" "install-nosysconf" make-flags))))))) (synopsis "Client and server for the secure shell (ssh) protocol") (description "The SSH2 protocol implemented in OpenSSH is standardised by the -- cgit v1.2.3 From 36f26211bbb2c4dffe33427d4e65d5225a586a5b Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 27 Nov 2015 11:35:50 +0100 Subject: gnu: openssh: Install ssh-copy-id. * gnu/packages/ssh.scm (openssh)[arguments]: Install "ssh-copy-id" and documentation. Fixes . Reported by Florian Paul Schmidt . --- gnu/packages/ssh.scm | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm index 26729ea909..5c222a22ad 100644 --- a/gnu/packages/ssh.scm +++ b/gnu/packages/ssh.scm @@ -145,9 +145,19 @@ a server that supports the SSH-2 protocol.") (string-append pre post))) #t)) (replace 'install - (lambda* (#:key (make-flags '()) #:allow-other-keys) + (lambda* (#:key outputs (make-flags '()) #:allow-other-keys) ;; install without host keys and system configuration files - (zero? (apply system* "make" "install-nosysconf" make-flags))))))) + (and (zero? (apply system* "make" "install-nosysconf" make-flags)) + (begin + (install-file "contrib/ssh-copy-id" + (string-append (assoc-ref outputs "out") + "/bin/")) + (chmod (string-append (assoc-ref outputs "out") + "/bin/ssh-copy-id") #o555) + (install-file "contrib/ssh-copy-id.1" + (string-append (assoc-ref outputs "out") + "/share/man/man1/")) + #t))))))) (synopsis "Client and server for the secure shell (ssh) protocol") (description "The SSH2 protocol implemented in OpenSSH is standardised by the -- cgit v1.2.3 From 1c0059da41b4c0c0525ca75c5631f04495126814 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 30 Nov 2015 17:42:53 +0200 Subject: gnu: python2-pycrypto: Use python2. * gnu/packages/python.scm (python2-pycrypto)[inputs]: Force building with python2. --- gnu/packages/python.scm | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 39d0751f6a..d69c722de3 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -826,7 +826,13 @@ etc.). The package is structured to make adding new modules easy.") (license public-domain))) (define-public python2-pycrypto - (package-with-python2 python-pycrypto)) + (let ((pycrypto (package-with-python2 python-pycrypto))) + (package (inherit pycrypto) + (inputs + `(("python" ,python-2) + ,@(alist-delete + "python" + (package-inputs pycrypto))))))) (define-public python-keyring (package -- cgit v1.2.3 From 44e30a7647ebe08c1b7a18666f3d66bd385ce86f Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 30 Nov 2015 20:04:57 +0200 Subject: gnu: python2-keyring: Use python2-pycrypto. * gnu/packages/python.scm (python2-keyring)[inputs]: Force building with python2-pycrypto. --- gnu/packages/python.scm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index d69c722de3..cd19462fa2 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -875,7 +875,10 @@ password storage.") (license x11))) (define-public python2-keyring - (package-with-python2 python-keyring)) + (let ((keyring (package-with-python2 python-keyring))) + (package (inherit keyring) + (inputs + `(("python2-pycrypto" ,python2-pycrypto)))))) (define-public python-six (package -- cgit v1.2.3 From 5466700fa2429b08fe61214121f25927553d1fd6 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 30 Nov 2015 23:11:35 +0200 Subject: gnu: parallel: Update to 20151122. * gnu/packages/parallel.scm (parallel): Update to 20151122. --- gnu/packages/parallel.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/parallel.scm b/gnu/packages/parallel.scm index 812fac9ec4..25e77d8023 100644 --- a/gnu/packages/parallel.scm +++ b/gnu/packages/parallel.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013,2014 Eric Bavier ;;; Copyright © 2015 Mark H Weaver +;;; Copyright © 2015 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -28,7 +29,7 @@ (define-public parallel (package (name "parallel") - (version "20151022") + (version "20151122") (source (origin (method url-fetch) @@ -36,7 +37,7 @@ version ".tar.bz2")) (sha256 (base32 - "07cyq3lapbbxf27b47wv1yjqsz48jidqr595r1pq77ajzy4i7zl4")))) + "0phn9dlkqlq3cq468ypxbbn78bsjcin743pyvf8ip4qg6jz662jm")))) (build-system gnu-build-system) (inputs `(("perl" ,perl))) (home-page "http://www.gnu.org/software/parallel/") -- cgit v1.2.3 From ccd20fcb7dd52008409d26e9da9c8454a4b60767 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 22 Nov 2015 23:27:21 +0200 Subject: gnu: python-pbr: Update to 1.8.1. * gnu/packages/openstack.scm (python-pbr): Update to 1.8.1. --- gnu/packages/openstack.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm index daec050922..1ff32f256a 100644 --- a/gnu/packages/openstack.scm +++ b/gnu/packages/openstack.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 Cyril Roelandt +;;; Copyright © 2015 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -243,7 +244,7 @@ tested on Python version 3.2, 2.7 and 2.6.") (define-public python-pbr (package (name "python-pbr") - (version "1.6.0") + (version "1.8.1") (source (origin (method url-fetch) @@ -253,7 +254,7 @@ tested on Python version 3.2, 2.7 and 2.6.") ".tar.gz")) (sha256 (base32 - "1lg1klrczvzfan89y3bl9ykrknl3nb01vvai37fkww24apzyibjf")))) + "0jcny36cf3s8ar5r4a575npz080hndnrfs4np1fqhv0ym4k7c4p2")))) (build-system python-build-system) (arguments `(#:tests? #f)) ;; Most tests seem to use the Internet. -- cgit v1.2.3 From 0993f9426742bdd7d866bd3afe3bce3658bbe401 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 30 Nov 2015 09:54:07 +0100 Subject: guix package: Remove unnecessary use of (%store). * guix/scripts/package.scm (delete-matching-generations): Use STORE instead of (%store). --- guix/scripts/package.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm index b1bce7020c..750d2afe47 100644 --- a/guix/scripts/package.scm +++ b/guix/scripts/package.scm @@ -110,7 +110,7 @@ denote ranges as interpreted by 'matching-derivations'." (raise (condition (&profile-not-found-error (profile profile))))) ((string-null? pattern) - (delete-generations (%store) profile + (delete-generations store profile (delv current (profile-generations profile)))) ;; Do not delete the zeroth generation. ((equal? 0 (string->number pattern)) @@ -131,7 +131,7 @@ denote ranges as interpreted by 'matching-derivations'." (let ((numbers (delv current numbers))) (when (null-list? numbers) (leave (_ "no matching generation~%"))) - (delete-generations (%store) profile numbers)))) + (delete-generations store profile numbers)))) (else (leave (_ "invalid syntax: ~a~%") pattern))))) -- cgit v1.2.3 From 2cc10077f31912cc112e81d4d46e79b1c79b1261 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 30 Nov 2015 09:56:28 +0100 Subject: guix package: Move a couple of procedures out of sight. * guix/scripts/package.scm (ensure-default-profile, process-query): New procedures, moved from... (guix-package): ... here. --- guix/scripts/package.scm | 305 +++++++++++++++++++++++------------------------ 1 file changed, 152 insertions(+), 153 deletions(-) diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm index 750d2afe47..cdb3b3acb6 100644 --- a/guix/scripts/package.scm +++ b/guix/scripts/package.scm @@ -94,6 +94,53 @@ indirectly, or PROFILE." %user-profile-directory profile)) +(define (ensure-default-profile) + "Ensure the default profile symlink and directory exist and are writable." + + (define (rtfm) + (format (current-error-port) + (_ "Try \"info '(guix) Invoking guix package'\" for \ +more information.~%")) + (exit 1)) + + ;; Create ~/.guix-profile if it doesn't exist yet. + (when (and %user-profile-directory + %current-profile + (not (false-if-exception + (lstat %user-profile-directory)))) + (symlink %current-profile %user-profile-directory)) + + (let ((s (stat %profile-directory #f))) + ;; Attempt to create /…/profiles/per-user/$USER if needed. + (unless (and s (eq? 'directory (stat:type s))) + (catch 'system-error + (lambda () + (mkdir-p %profile-directory)) + (lambda args + ;; Often, we cannot create %PROFILE-DIRECTORY because its + ;; parent directory is root-owned and we're running + ;; unprivileged. + (format (current-error-port) + (_ "error: while creating directory `~a': ~a~%") + %profile-directory + (strerror (system-error-errno args))) + (format (current-error-port) + (_ "Please create the `~a' directory, with you as the owner.~%") + %profile-directory) + (rtfm)))) + + ;; Bail out if it's not owned by the user. + (unless (or (not s) (= (stat:uid s) (getuid))) + (format (current-error-port) + (_ "error: directory `~a' is not owned by you~%") + %profile-directory) + (format (current-error-port) + (_ "Please change the owner of `~a' to user ~s.~%") + %profile-directory (or (getenv "USER") + (getenv "LOGNAME") + (getuid))) + (rtfm)))) + (define (delete-generations store profile generations) "Delete GENERATIONS from PROFILE. GENERATIONS is a list of generation numbers." @@ -534,6 +581,111 @@ doesn't need it." (add-indirect-root store absolute)) +(define (process-query opts) + "Process any query specified by OPTS. Return #t when a query was actually +processed, #f otherwise." + (let* ((profiles (match (filter-map (match-lambda + (('profile . p) p) + (_ #f)) + opts) + (() (list %current-profile)) + (lst lst))) + (profile (match profiles + ((head tail ...) head)))) + (match (assoc-ref opts 'query) + (('list-generations pattern) + (define (list-generation number) + (unless (zero? number) + (display-generation profile number) + (display-profile-content profile number) + (newline))) + + (cond ((not (file-exists? profile)) ; XXX: race condition + (raise (condition (&profile-not-found-error + (profile profile))))) + ((string-null? pattern) + (for-each list-generation (profile-generations profile))) + ((matching-generations pattern profile) + => + (lambda (numbers) + (if (null-list? numbers) + (exit 1) + (leave-on-EPIPE + (for-each list-generation numbers))))) + (else + (leave (_ "invalid syntax: ~a~%") + pattern))) + #t) + + (('list-installed regexp) + (let* ((regexp (and regexp (make-regexp* regexp))) + (manifest (profile-manifest profile)) + (installed (manifest-entries manifest))) + (leave-on-EPIPE + (for-each (match-lambda + (($ name version output path _) + (when (or (not regexp) + (regexp-exec regexp name)) + (format #t "~a\t~a\t~a\t~a~%" + name (or version "?") output path)))) + + ;; Show most recently installed packages last. + (reverse installed))) + #t)) + + (('list-available regexp) + (let* ((regexp (and regexp (make-regexp* regexp))) + (available (fold-packages + (lambda (p r) + (let ((n (package-name p))) + (if (supported-package? p) + (if regexp + (if (regexp-exec regexp n) + (cons p r) + r) + (cons p r)) + r))) + '()))) + (leave-on-EPIPE + (for-each (lambda (p) + (format #t "~a\t~a\t~a\t~a~%" + (package-name p) + (package-version p) + (string-join (package-outputs p) ",") + (location->string (package-location p)))) + (sort available + (lambda (p1 p2) + (stringrecutils <> (current-output-port)) + (find-packages-by-description regexp))) + #t)) + + (('show requested-name) + (let-values (((name version) + (package-name->name+version requested-name))) + (leave-on-EPIPE + (for-each (cute package->recutils <> (current-output-port)) + (find-packages-by-name name version))) + #t)) + + (('search-paths kind) + (let* ((manifests (map profile-manifest profiles)) + (entries (append-map manifest-entries manifests)) + (profiles (map user-friendly-profile profiles)) + (settings (search-path-environment-variables entries profiles + (const #f) + #:kind kind))) + (format #t "~{~a~%~}" settings) + #t)) + + (_ #f)))) + ;;; ;;; Entry point. @@ -546,54 +698,6 @@ doesn't need it." (arg-handler arg result) (leave (_ "~A: extraneous argument~%") arg))) - (define (ensure-default-profile) - ;; Ensure the default profile symlink and directory exist and are - ;; writable. - - (define (rtfm) - (format (current-error-port) - (_ "Try \"info '(guix) Invoking guix package'\" for \ -more information.~%")) - (exit 1)) - - ;; Create ~/.guix-profile if it doesn't exist yet. - (when (and %user-profile-directory - %current-profile - (not (false-if-exception - (lstat %user-profile-directory)))) - (symlink %current-profile %user-profile-directory)) - - (let ((s (stat %profile-directory #f))) - ;; Attempt to create /…/profiles/per-user/$USER if needed. - (unless (and s (eq? 'directory (stat:type s))) - (catch 'system-error - (lambda () - (mkdir-p %profile-directory)) - (lambda args - ;; Often, we cannot create %PROFILE-DIRECTORY because its - ;; parent directory is root-owned and we're running - ;; unprivileged. - (format (current-error-port) - (_ "error: while creating directory `~a': ~a~%") - %profile-directory - (strerror (system-error-errno args))) - (format (current-error-port) - (_ "Please create the `~a' directory, with you as the owner.~%") - %profile-directory) - (rtfm)))) - - ;; Bail out if it's not owned by the user. - (unless (or (not s) (= (stat:uid s) (getuid))) - (format (current-error-port) - (_ "error: directory `~a' is not owned by you~%") - %profile-directory) - (format (current-error-port) - (_ "Please change the owner of `~a' to user ~s.~%") - %profile-directory (or (getenv "USER") - (getenv "LOGNAME") - (getuid))) - (rtfm)))) - (define (process-actions opts) ;; Process any install/remove/upgrade action from OPTS. @@ -703,111 +807,6 @@ more information.~%")) #:dry-run? dry-run?) (build-and-use-profile new)))))) - (define (process-query opts) - ;; Process any query specified by OPTS. Return #t when a query was - ;; actually processed, #f otherwise. - (let* ((profiles (match (filter-map (match-lambda - (('profile . p) p) - (_ #f)) - opts) - (() (list %current-profile)) - (lst lst))) - (profile (match profiles - ((head tail ...) head)))) - (match (assoc-ref opts 'query) - (('list-generations pattern) - (define (list-generation number) - (unless (zero? number) - (display-generation profile number) - (display-profile-content profile number) - (newline))) - - (cond ((not (file-exists? profile)) ; XXX: race condition - (raise (condition (&profile-not-found-error - (profile profile))))) - ((string-null? pattern) - (for-each list-generation (profile-generations profile))) - ((matching-generations pattern profile) - => - (lambda (numbers) - (if (null-list? numbers) - (exit 1) - (leave-on-EPIPE - (for-each list-generation numbers))))) - (else - (leave (_ "invalid syntax: ~a~%") - pattern))) - #t) - - (('list-installed regexp) - (let* ((regexp (and regexp (make-regexp* regexp))) - (manifest (profile-manifest profile)) - (installed (manifest-entries manifest))) - (leave-on-EPIPE - (for-each (match-lambda - (($ name version output path _) - (when (or (not regexp) - (regexp-exec regexp name)) - (format #t "~a\t~a\t~a\t~a~%" - name (or version "?") output path)))) - - ;; Show most recently installed packages last. - (reverse installed))) - #t)) - - (('list-available regexp) - (let* ((regexp (and regexp (make-regexp* regexp))) - (available (fold-packages - (lambda (p r) - (let ((n (package-name p))) - (if (supported-package? p) - (if regexp - (if (regexp-exec regexp n) - (cons p r) - r) - (cons p r)) - r))) - '()))) - (leave-on-EPIPE - (for-each (lambda (p) - (format #t "~a\t~a\t~a\t~a~%" - (package-name p) - (package-version p) - (string-join (package-outputs p) ",") - (location->string (package-location p)))) - (sort available - (lambda (p1 p2) - (stringrecutils <> (current-output-port)) - (find-packages-by-description regexp))) - #t)) - - (('show requested-name) - (let-values (((name version) - (package-name->name+version requested-name))) - (leave-on-EPIPE - (for-each (cute package->recutils <> (current-output-port)) - (find-packages-by-name name version))) - #t)) - - (('search-paths kind) - (let* ((manifests (map profile-manifest profiles)) - (entries (append-map manifest-entries manifests)) - (profiles (map user-friendly-profile profiles)) - (settings (search-path-environment-variables entries profiles - (const #f) - #:kind kind))) - (format #t "~{~a~%~}" settings) - #t)) - - (_ #f)))) - (let ((opts (parse-command-line args %options (list %default-options #f) #:argument-handler handle-argument))) (with-error-handling -- cgit v1.2.3 From d1ac5c077522b93414d2ecb1320216046af2f233 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 30 Nov 2015 10:09:33 +0100 Subject: guix package: Move 'build-and-use-profile' out of sight. * guix/scripts/package.scm (build-and-use-profile): New procedure. Adapted and moved from... (guix-package)[process-actions]: ... here. Adjust call sites. --- guix/scripts/package.scm | 101 +++++++++++++++++++++++++---------------------- 1 file changed, 54 insertions(+), 47 deletions(-) diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm index cdb3b3acb6..12a57efdab 100644 --- a/guix/scripts/package.scm +++ b/guix/scripts/package.scm @@ -182,6 +182,49 @@ denote ranges as interpreted by 'matching-derivations'." (else (leave (_ "invalid syntax: ~a~%") pattern))))) +(define* (build-and-use-profile store profile manifest + #:key + bootstrap? use-substitutes? + dry-run?) + "Build a new generation of PROFILE, a file name, using the packages +specified in MANIFEST, a manifest object." + (when (equal? profile %current-profile) + (ensure-default-profile)) + + (let* ((prof-drv (run-with-store store + (profile-derivation manifest + #:hooks (if bootstrap? + '() + %default-profile-hooks)))) + (prof (derivation->output-path prof-drv))) + (show-what-to-build store (list prof-drv) + #:use-substitutes? use-substitutes? + #:dry-run? dry-run?) + + (cond + (dry-run? #t) + ((and (file-exists? profile) + (and=> (readlink* profile) (cut string=? prof <>))) + (format (current-error-port) (_ "nothing to be done~%"))) + (else + (let* ((number (generation-number profile)) + + ;; Always use NUMBER + 1 for the new profile, possibly + ;; overwriting a "previous future generation". + (name (generation-file-name profile (+ 1 number)))) + (and (build-derivations store (list prof-drv)) + (let* ((entries (manifest-entries manifest)) + (count (length entries))) + (switch-symlinks name prof) + (switch-symlinks profile name) + (unless (string=? profile %current-profile) + (register-gc-root store name)) + (format #t (N_ "~a package in profile~%" + "~a packages in profile~%" + count) + count) + (display-search-paths entries (list profile))))))))) + ;;; ;;; Package specifications. @@ -702,52 +745,10 @@ processed, #f otherwise." ;; Process any install/remove/upgrade action from OPTS. (define dry-run? (assoc-ref opts 'dry-run?)) + (define bootstrap? (assoc-ref opts 'bootstrap?)) + (define substitutes? (assoc-ref opts 'substitutes?)) (define profile (or (assoc-ref opts 'profile) %current-profile)) - (define (build-and-use-profile manifest) - (let* ((bootstrap? (assoc-ref opts 'bootstrap?))) - - (when (equal? profile %current-profile) - (ensure-default-profile)) - - (let* ((prof-drv (run-with-store (%store) - (profile-derivation - manifest - #:hooks (if bootstrap? - '() - %default-profile-hooks)))) - (prof (derivation->output-path prof-drv))) - (show-what-to-build (%store) (list prof-drv) - #:use-substitutes? - (assoc-ref opts 'substitutes?) - #:dry-run? dry-run?) - - (cond - (dry-run? #t) - ((and (file-exists? profile) - (and=> (readlink* profile) (cut string=? prof <>))) - (format (current-error-port) (_ "nothing to be done~%"))) - (else - (let* ((number (generation-number profile)) - - ;; Always use NUMBER + 1 for the new profile, - ;; possibly overwriting a "previous future - ;; generation". - (name (generation-file-name profile - (+ 1 number)))) - (and (build-derivations (%store) (list prof-drv)) - (let* ((entries (manifest-entries manifest)) - (count (length entries))) - (switch-symlinks name prof) - (switch-symlinks profile name) - (unless (string=? profile %current-profile) - (register-gc-root (%store) name)) - (format #t (N_ "~a package in profile~%" - "~a packages in profile~%" - count) - count) - (display-search-paths entries (list profile)))))))))) - ;; First roll back if asked to. (cond ((and (assoc-ref opts 'roll-back?) (not dry-run?)) @@ -787,12 +788,15 @@ processed, #f otherwise." (user-module (make-user-module '((guix profiles) (gnu)))) (manifest (load* file-name user-module))) - (if (assoc-ref opts 'dry-run?) + (if dry-run? (format #t (_ "would install new manifest from '~a' with ~d entries~%") file-name (length (manifest-entries manifest))) (format #t (_ "installing new manifest from '~a' with ~d entries~%") file-name (length (manifest-entries manifest)))) - (build-and-use-profile manifest))) + (build-and-use-profile (%store) profile manifest + #:bootstrap? bootstrap? + #:use-substitutes? substitutes? + #:dry-run? dry-run?))) (else (let* ((manifest (profile-manifest profile)) (install (options->installable opts manifest)) @@ -805,7 +809,10 @@ processed, #f otherwise." (unless (and (null? install) (null? remove)) (show-manifest-transaction (%store) manifest transaction #:dry-run? dry-run?) - (build-and-use-profile new)))))) + (build-and-use-profile (%store) profile new + #:bootstrap? bootstrap? + #:use-substitutes? substitutes? + #:dry-run? dry-run?)))))) (let ((opts (parse-command-line args %options (list %default-options #f) #:argument-handler handle-argument))) -- cgit v1.2.3 From 50dc193e27dc77a57a6d101dd62b3f4fc0edfeec Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 30 Nov 2015 14:02:10 +0100 Subject: nls: Update 'de' translation. --- po/guix/de.po | 1590 ++++++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 1243 insertions(+), 347 deletions(-) diff --git a/po/guix/de.po b/po/guix/de.po index 4a3c90e4cf..1e3105236e 100644 --- a/po/guix/de.po +++ b/po/guix/de.po @@ -1,14 +1,14 @@ # German translation of guix. # Copyright (C) 2014 Free Software Foundation, Inc. # This file is distributed under the same license as the guix package. -# Mario Blättermann , 2014. +# Mario Blättermann , 2014, 2015. # msgid "" msgstr "" -"Project-Id-Version: guix 0.8\n" +"Project-Id-Version: guix 0.9.0\n" "Report-Msgid-Bugs-To: ludo@gnu.org\n" -"POT-Creation-Date: 2014-11-09 22:32+0100\n" -"PO-Revision-Date: 2014-11-10 20:50+0100\n" +"POT-Creation-Date: 2015-10-28 16:31+0100\n" +"PO-Revision-Date: 2015-11-29 16:01+0100\n" "Last-Translator: Mario Blättermann \n" "Language-Team: German \n" "Language: de\n" @@ -16,181 +16,294 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Poedit 1.5.4\n" +"X-Generator: Poedit 1.8.5\n" -#: gnu/packages.scm:120 +#: gnu/packages.scm:80 +#, scheme-format +msgid "~a: patch not found" +msgstr "~a: Patch nicht gefunden" + +#: gnu/packages.scm:91 +#, scheme-format +msgid "could not find bootstrap binary '~a' for system '~a'" +msgstr "" + +#: gnu/packages.scm:143 #, scheme-format msgid "cannot access `~a': ~a~%" msgstr "Zugriff auf »~a« nicht möglich: ~a~%" -#: gnu/packages.scm:350 +#: gnu/packages.scm:388 #, scheme-format msgid "looking for the latest release of GNU ~a..." msgstr "Nach der letzten Veröffentlichung von GNU ~a wird gesucht …" -#: gnu/packages.scm:354 +#: gnu/packages.scm:395 #, scheme-format msgid "~a: note: using ~a but ~a is available upstream~%" msgstr "" -#: gnu/packages.scm:376 guix/scripts/package.scm:305 +#: gnu/packages.scm:417 gnu/packages.scm:452 #, scheme-format msgid "ambiguous package specification `~a'~%" msgstr "Nicht eindeutige Paketangabe »~a«~%" -#: gnu/packages.scm:377 guix/scripts/package.scm:307 +#: gnu/packages.scm:418 gnu/packages.scm:454 #, scheme-format msgid "choosing ~a from ~a~%" msgstr "" -#: gnu/packages.scm:383 +#: gnu/packages.scm:424 #, scheme-format msgid "~A: package not found for version ~a~%" msgstr "~A: Paket nicht gefunden für Version ~a~%" -#: gnu/packages.scm:385 +#: gnu/packages.scm:426 #, scheme-format msgid "~A: unknown package~%" msgstr "~A: unbekanntes Paket~%" -#: guix/scripts/build.scm:65 +#: gnu/packages.scm:442 +#, scheme-format +msgid "package `~a' lacks output `~a'~%" +msgstr "" + +#: gnu/packages.scm:459 +#, scheme-format +msgid "~a: package not found~%" +msgstr "~a: Paket nicht gefunden~%" + +#: gnu/services.scm:376 +#, scheme-format +msgid "no target of type '~a' for service ~s" +msgstr "" + +#: gnu/services.scm:387 gnu/services.scm:447 +#, scheme-format +msgid "more than one target service of type '~a'" +msgstr "" + +#: gnu/services.scm:437 +#, scheme-format +msgid "service of type '~a' not found" +msgstr "Dienst des Typs »~a« wurde nicht gefunden" + +#: gnu/system.scm:547 +#, scheme-format +msgid "using a string for file '~a' is deprecated; use 'plain-file' instead~%" +msgstr "" + +#: gnu/system.scm:563 +#, scheme-format +msgid "using a monadic value for '~a' is deprecated; use 'plain-file' instead~%" +msgstr "" + +#: gnu/system.scm:646 +msgid "system locale lacks a definition" +msgstr "" + +#: gnu/services/dmd.scm:131 +#, scheme-format +msgid "service '~a' provided more than once" +msgstr "" + +#: gnu/system/shadow.scm:213 +#, scheme-format +msgid "supplementary group '~a' of user '~a' is undeclared" +msgstr "" + +#: gnu/system/shadow.scm:223 +#, scheme-format +msgid "primary group '~a' of user '~a' is undeclared" +msgstr "" + +#: guix/scripts.scm:52 +#, scheme-format +msgid "invalid argument: ~a~%" +msgstr "Ungültiges Argument: ~a~%" + +#: guix/scripts.scm:78 guix/scripts/download.scm:97 guix/scripts/gc.scm:157 +#: guix/scripts/import/cran.scm:72 guix/scripts/import/elpa.scm:77 +#: guix/scripts/pull.scm:219 guix/scripts/lint.scm:792 +#: guix/scripts/publish.scm:355 +#, scheme-format +msgid "~A: unrecognized option~%" +msgstr "~A: nicht erkannte Option~%" + +#: guix/scripts/build.scm:107 #, scheme-format msgid "failed to create GC root `~a': ~a~%" msgstr "" -#: guix/scripts/build.scm:102 +#: guix/scripts/build.scm:151 msgid "" "\n" " -L, --load-path=DIR prepend DIR to the package module search path" msgstr "" -#: guix/scripts/build.scm:104 +#: guix/scripts/build.scm:153 msgid "" "\n" " -K, --keep-failed keep build tree of failed builds" msgstr "" -#: guix/scripts/build.scm:106 +#: guix/scripts/build.scm:155 msgid "" "\n" " -n, --dry-run do not build the derivations" msgstr "" +"\n" +" -n, --dry-run die Ableitungen nicht erstellen" -#: guix/scripts/build.scm:108 +#: guix/scripts/build.scm:157 msgid "" "\n" " --fallback fall back to building when the substituter fails" msgstr "" -#: guix/scripts/build.scm:110 +#: guix/scripts/build.scm:159 msgid "" "\n" " --no-substitutes build instead of resorting to pre-built substitutes" msgstr "" -#: guix/scripts/build.scm:112 +#: guix/scripts/build.scm:161 guix/scripts/size.scm:215 +msgid "" +"\n" +" --substitute-urls=URLS\n" +" fetch substitute from URLS if they are authorized" +msgstr "" + +#: guix/scripts/build.scm:164 msgid "" "\n" " --no-build-hook do not attempt to offload builds via the build hook" msgstr "" -#: guix/scripts/build.scm:114 +#: guix/scripts/build.scm:166 msgid "" "\n" " --max-silent-time=SECONDS\n" " mark the build as failed after SECONDS of silence" msgstr "" -#: guix/scripts/build.scm:117 +#: guix/scripts/build.scm:169 msgid "" "\n" " --timeout=SECONDS mark the build as failed after SECONDS of activity" msgstr "" -#: guix/scripts/build.scm:119 +#: guix/scripts/build.scm:171 msgid "" "\n" " --verbosity=LEVEL use the given verbosity LEVEL" msgstr "" +"\n" +" --verbosity=STUFE die angegebene Ausführlichkeitsstufe verwenden" -#: guix/scripts/build.scm:121 +#: guix/scripts/build.scm:173 msgid "" "\n" " -c, --cores=N allow the use of up to N CPU cores for the build" msgstr "" +"\n" +" -c, --cores=N bis zu N Prozessorkerne für die Erstellung nutzen" + +#: guix/scripts/build.scm:175 +msgid "" +"\n" +" -M, --max-jobs=N allow at most N build jobs" +msgstr "" -#: guix/scripts/build.scm:195 +#: guix/scripts/build.scm:261 guix/scripts/build.scm:268 #, scheme-format -msgid "~a: not a number~%" -msgstr "~a: keine Zahl~%" +msgid "not a number: '~a' option argument: ~a~%" +msgstr "" -#: guix/scripts/build.scm:213 +#: guix/scripts/build.scm:287 msgid "" "Usage: guix build [OPTION]... PACKAGE-OR-DERIVATION...\n" "Build the given PACKAGE-OR-DERIVATION and return their output paths.\n" msgstr "" -#: guix/scripts/build.scm:215 +#: guix/scripts/build.scm:289 msgid "" "\n" " -e, --expression=EXPR build the package or derivation EXPR evaluates to" msgstr "" -#: guix/scripts/build.scm:217 +#: guix/scripts/build.scm:291 +msgid "" +"\n" +" -f, --file=FILE build the package or derivation that the code within\n" +" FILE evaluates to" +msgstr "" + +#: guix/scripts/build.scm:294 msgid "" "\n" " -S, --source build the packages' source derivations" msgstr "" -#: guix/scripts/build.scm:219 +#: guix/scripts/build.scm:296 +msgid "" +"\n" +" --sources[=TYPE] build source derivations; TYPE may optionally be one\n" +" of \"package\", \"all\" (default), or \"transitive\"" +msgstr "" + +#: guix/scripts/build.scm:299 msgid "" "\n" " -s, --system=SYSTEM attempt to build for SYSTEM--e.g., \"i686-linux\"" msgstr "" -#: guix/scripts/build.scm:221 +#: guix/scripts/build.scm:301 msgid "" "\n" " --target=TRIPLET cross-build for TRIPLET--e.g., \"armel-linux-gnu\"" msgstr "" -#: guix/scripts/build.scm:223 +#: guix/scripts/build.scm:303 msgid "" "\n" " --with-source=SOURCE\n" " use SOURCE when building the corresponding package" msgstr "" -#: guix/scripts/build.scm:226 +#: guix/scripts/build.scm:306 msgid "" "\n" " --no-grafts do not graft packages" msgstr "" -#: guix/scripts/build.scm:228 +#: guix/scripts/build.scm:308 msgid "" "\n" " -d, --derivations return the derivation paths of the given packages" msgstr "" -#: guix/scripts/build.scm:230 +#: guix/scripts/build.scm:310 msgid "" "\n" " -r, --root=FILE make FILE a symlink to the result, and register it\n" " as a garbage collector root" msgstr "" -#: guix/scripts/build.scm:233 +#: guix/scripts/build.scm:313 msgid "" "\n" " --log-file return the log file names for the given derivations" msgstr "" -#: guix/scripts/build.scm:238 guix/scripts/download.scm:53 -#: guix/scripts/package.scm:451 guix/scripts/gc.scm:58 -#: guix/scripts/hash.scm:55 guix/scripts/pull.scm:81 -#: guix/scripts/substitute-binary.scm:560 guix/scripts/system.scm:371 -#: guix/scripts/lint.scm:262 +#: guix/scripts/build.scm:318 guix/scripts/download.scm:54 +#: guix/scripts/package.scm:292 guix/scripts/gc.scm:70 +#: guix/scripts/hash.scm:56 guix/scripts/import.scm:91 +#: guix/scripts/import/cran.scm:44 guix/scripts/pull.scm:83 +#: guix/scripts/substitute.scm:752 guix/scripts/system.scm:556 +#: guix/scripts/lint.scm:741 guix/scripts/publish.scm:63 +#: guix/scripts/edit.scm:43 guix/scripts/size.scm:223 +#: guix/scripts/graph.scm:398 guix/scripts/challenge.scm:181 msgid "" "\n" " -h, --help display this help and exit" @@ -198,11 +311,14 @@ msgstr "" "\n" " -h, --help diese Hilfe anzeigen und beenden" -#: guix/scripts/build.scm:240 guix/scripts/download.scm:55 -#: guix/scripts/package.scm:453 guix/scripts/gc.scm:60 -#: guix/scripts/hash.scm:57 guix/scripts/pull.scm:83 -#: guix/scripts/substitute-binary.scm:562 guix/scripts/system.scm:373 -#: guix/scripts/lint.scm:266 +#: guix/scripts/build.scm:320 guix/scripts/download.scm:56 +#: guix/scripts/package.scm:294 guix/scripts/gc.scm:72 +#: guix/scripts/hash.scm:58 guix/scripts/import.scm:93 +#: guix/scripts/import/cran.scm:46 guix/scripts/pull.scm:85 +#: guix/scripts/substitute.scm:754 guix/scripts/system.scm:558 +#: guix/scripts/lint.scm:745 guix/scripts/publish.scm:65 +#: guix/scripts/edit.scm:45 guix/scripts/size.scm:225 +#: guix/scripts/graph.scm:400 guix/scripts/challenge.scm:183 msgid "" "\n" " -V, --version display version information and exit" @@ -210,25 +326,24 @@ msgstr "" "\n" " -V, --version Versionsinformation anzeigen und beenden" -#: guix/scripts/build.scm:366 +#: guix/scripts/build.scm:347 #, scheme-format -msgid "sources do not match any package:~{ ~a~}~%" +msgid "" +"invalid argument: '~a' option argument: ~a, ~\n" +"must be one of 'package', 'all', or 'transitive'~%" msgstr "" -#: guix/scripts/build.scm:395 guix/scripts/download.scm:96 -#: guix/scripts/package.scm:673 guix/scripts/gc.scm:122 -#: guix/scripts/pull.scm:213 guix/scripts/system.scm:426 -#: guix/scripts/lint.scm:313 +#: guix/scripts/build.scm:478 #, scheme-format -msgid "~A: unrecognized option~%" -msgstr "~A: nicht erkannte Option~%" +msgid "sources do not match any package:~{ ~a~}~%" +msgstr "" -#: guix/scripts/build.scm:423 +#: guix/scripts/build.scm:536 #, scheme-format msgid "no build log for '~a'~%" msgstr "Kein Erstellungsprotokoll für »~a«~%" -#: guix/scripts/download.scm:44 +#: guix/scripts/download.scm:45 msgid "" "Usage: guix download [OPTION] URL\n" "Download the file at URL, add it to the store, and print its store path\n" @@ -238,7 +353,7 @@ msgid "" "('hex' and 'hexadecimal' can be used as well).\n" msgstr "" -#: guix/scripts/download.scm:50 guix/scripts/hash.scm:50 +#: guix/scripts/download.scm:51 guix/scripts/hash.scm:51 msgid "" "\n" " -f, --format=FMT write the hash in the given format" @@ -246,142 +361,153 @@ msgstr "" "\n" " -f, --format=FORMAT die Prüfsumme im angegebenen Format schreiben" -#: guix/scripts/download.scm:73 guix/scripts/hash.scm:75 +#: guix/scripts/download.scm:74 guix/scripts/hash.scm:76 #, scheme-format msgid "unsupported hash format: ~a~%" msgstr "Nicht unterstütztes Prüfsummenformat: ~a~%" -#: guix/scripts/download.scm:106 +#: guix/scripts/download.scm:107 #, scheme-format msgid "~a: failed to parse URI~%" msgstr "~a: URI~% konnte nicht verarbeitet werden" -#: guix/scripts/download.scm:117 +#: guix/scripts/download.scm:118 #, scheme-format msgid "~a: download failed~%" msgstr "~a: Herunterladen fehlgeschlagen~%" -#: guix/scripts/package.scm:97 +#: guix/scripts/package.scm:128 #, scheme-format -msgid "failed to build the empty profile~%" -msgstr "Leeres Profil konnte nicht erstellt werden~%" - -#: guix/scripts/package.scm:113 -#, scheme-format -msgid "switching from generation ~a to ~a~%" +msgid "not removing generation ~a, which is current~%" msgstr "" -#: guix/scripts/package.scm:132 -#, scheme-format -msgid "nothing to do: already at the empty profile~%" -msgstr "Nichts zu tun: bereits im leeren Profil~%" - -#: guix/scripts/package.scm:144 -#, scheme-format -msgid "deleting ~a~%" -msgstr "~a wird gelöscht~%" - -#: guix/scripts/package.scm:295 +#: guix/scripts/package.scm:135 #, scheme-format -msgid "package `~a' lacks output `~a'~%" -msgstr "" +msgid "no matching generation~%" +msgstr "Keine passende Generation%" -#: guix/scripts/package.scm:312 +#: guix/scripts/package.scm:138 guix/scripts/package.scm:734 +#: guix/scripts/system.scm:396 #, scheme-format -msgid "~a: package not found~%" -msgstr "~a: Paket nicht gefunden~%" +msgid "invalid syntax: ~a~%" +msgstr "Unzulässige Syntax: ~a~%" -#: guix/scripts/package.scm:390 +#: guix/scripts/package.scm:219 #, scheme-format msgid "The following environment variable definitions may be needed:~%" msgstr "Die Definition folgender Umgebungsvariablen könnte nötig sein:~%" -#: guix/scripts/package.scm:406 +#: guix/scripts/package.scm:235 msgid "" -"Usage: guix package [OPTION]... PACKAGES...\n" -"Install, remove, or upgrade PACKAGES in a single transaction.\n" +"Usage: guix package [OPTION]...\n" +"Install, remove, or upgrade packages in a single transaction.\n" msgstr "" -"Aufruf: guix package [OPTION] … PAKETE …\n" +"Aufruf: guix package [OPTION]...\n" "Pakete in einer einzigen Transaktion installieren,\n" "entfernen oder aktualisieren.\n" -#: guix/scripts/package.scm:408 +#: guix/scripts/package.scm:237 msgid "" "\n" -" -i, --install=PACKAGE install PACKAGE" +" -i, --install PACKAGE ...\n" +" install PACKAGEs" msgstr "" "\n" -" -i, --install=PAKET PAKET installieren" +" -i, --install=PAKET PAKET oder PAKETE installieren" -#: guix/scripts/package.scm:410 +#: guix/scripts/package.scm:240 msgid "" "\n" " -e, --install-from-expression=EXP\n" " install the package EXP evaluates to" msgstr "" -#: guix/scripts/package.scm:413 +#: guix/scripts/package.scm:243 +msgid "" +"\n" +" -f, --install-from-file=FILE\n" +" install the package that the code within FILE\n" +" evaluates to" +msgstr "" + +#: guix/scripts/package.scm:247 msgid "" "\n" -" -r, --remove=PACKAGE remove PACKAGE" +" -r, --remove PACKAGE ...\n" +" remove PACKAGEs" msgstr "" "\n" -" -r, --remove=PAKET PAKET entfernen" +" -r, --remove=PAKET PAKET oder PAKETE entfernen" -#: guix/scripts/package.scm:415 +#: guix/scripts/package.scm:250 msgid "" "\n" " -u, --upgrade[=REGEXP] upgrade all the installed packages matching REGEXP" msgstr "" -#: guix/scripts/package.scm:417 +#: guix/scripts/package.scm:252 +msgid "" +"\n" +" -m, --manifest=FILE create a new profile generation with the manifest\n" +" from FILE" +msgstr "" + +#: guix/scripts/package.scm:255 +msgid "" +"\n" +" --do-not-upgrade[=REGEXP] do not upgrade any packages matching REGEXP" +msgstr "" + +#: guix/scripts/package.scm:257 msgid "" "\n" " --roll-back roll back to the previous generation" msgstr "" -#: guix/scripts/package.scm:419 +#: guix/scripts/package.scm:259 msgid "" "\n" -" --search-paths display needed environment variable definitions" +" --search-paths[=KIND]\n" +" display needed environment variable definitions" msgstr "" "\n" -" --search-paths benötigte Definitionen von Umgebungsvariablen anzeigen" +" --search-paths[=ART]\n" +" benötigte Definitionen von Umgebungsvariablen anzeigen" -#: guix/scripts/package.scm:421 +#: guix/scripts/package.scm:262 msgid "" "\n" " -l, --list-generations[=PATTERN]\n" " list generations matching PATTERN" msgstr "" -#: guix/scripts/package.scm:424 +#: guix/scripts/package.scm:265 msgid "" "\n" " -d, --delete-generations[=PATTERN]\n" " delete generations matching PATTERN" msgstr "" -#: guix/scripts/package.scm:427 +#: guix/scripts/package.scm:268 msgid "" "\n" " -S, --switch-generation=PATTERN\n" " switch to a generation matching PATTERN" msgstr "" -#: guix/scripts/package.scm:430 +#: guix/scripts/package.scm:271 msgid "" "\n" " -p, --profile=PROFILE use PROFILE instead of the user's default profile" msgstr "" -#: guix/scripts/package.scm:433 +#: guix/scripts/package.scm:274 msgid "" "\n" " --bootstrap use the bootstrap Guile to build the profile" msgstr "" -#: guix/scripts/package.scm:435 guix/scripts/pull.scm:74 +#: guix/scripts/package.scm:276 guix/scripts/pull.scm:76 msgid "" "\n" " --verbose produce verbose output" @@ -389,97 +515,97 @@ msgstr "" "\n" " --verbose ausführliche Ausgaben anzeigen" -#: guix/scripts/package.scm:438 +#: guix/scripts/package.scm:279 msgid "" "\n" " -s, --search=REGEXP search in synopsis and description using REGEXP" msgstr "" -#: guix/scripts/package.scm:440 +#: guix/scripts/package.scm:281 msgid "" "\n" " -I, --list-installed[=REGEXP]\n" " list installed packages matching REGEXP" msgstr "" -#: guix/scripts/package.scm:443 +#: guix/scripts/package.scm:284 msgid "" "\n" " -A, --list-available[=REGEXP]\n" " list available packages matching REGEXP" msgstr "" -#: guix/scripts/package.scm:446 +#: guix/scripts/package.scm:287 msgid "" "\n" -" --show=PACKAGE show details about PACKAGE" +" --show=PACKAGE show details about PACKAGE" msgstr "" "\n" -" --show=PAKET Details zu PAKET anzeigen" +" --show=PAKET Details zu PAKET anzeigen" + +#: guix/scripts/package.scm:380 +#, scheme-format +msgid "~a: unsupported kind of search path~%" +msgstr "" -#: guix/scripts/package.scm:677 +#: guix/scripts/package.scm:550 guix/scripts/publish.scm:357 #, scheme-format msgid "~A: extraneous argument~%" msgstr "" -#: guix/scripts/package.scm:687 +#: guix/scripts/package.scm:558 #, scheme-format msgid "Try \"info '(guix) Invoking guix package'\" for more information.~%" msgstr "" -#: guix/scripts/package.scm:709 +#: guix/scripts/package.scm:580 #, scheme-format msgid "error: while creating directory `~a': ~a~%" msgstr "Fehler beim Anlegen des Verzeichnisses »~a«: ~a~%" -#: guix/scripts/package.scm:713 +#: guix/scripts/package.scm:584 #, scheme-format msgid "Please create the `~a' directory, with you as the owner.~%" msgstr "Bitte legen Sie das Verzeichnis »~a« mit Ihnen als Eigentümer an.~%" -#: guix/scripts/package.scm:720 +#: guix/scripts/package.scm:591 #, scheme-format msgid "error: directory `~a' is not owned by you~%" msgstr "Fehler: Das Verzeichnis »~a« gehört Ihnen nicht~%" -#: guix/scripts/package.scm:723 +#: guix/scripts/package.scm:594 #, scheme-format msgid "Please change the owner of `~a' to user ~s.~%" msgstr "Bitte ändern Sie den Eigentümer von »~a« in Benutzer ~s.~%" -#: guix/scripts/package.scm:756 -#, scheme-format -msgid "cannot switch to generation '~a'~%" -msgstr "Zu Generation »~a« kann nicht gewechselt werden~%" - -#: guix/scripts/package.scm:788 guix/scripts/package.scm:889 -#, scheme-format -msgid "invalid syntax: ~a~%" -msgstr "Unzulässige Syntax: ~a~%" - -#: guix/scripts/package.scm:825 +#: guix/scripts/package.scm:628 #, scheme-format msgid "nothing to be done~%" msgstr "Nichts zu tun~%" -#: guix/scripts/package.scm:840 +#: guix/scripts/package.scm:644 #, scheme-format msgid "~a package in profile~%" msgid_plural "~a packages in profile~%" msgstr[0] "~a Paket im Profil~%" msgstr[1] "~a Pakete im Profil~%" -#: guix/scripts/package.scm:855 +#: guix/scripts/package.scm:668 #, scheme-format -msgid "Generation ~a\t~a" -msgstr "Generation ~a\t~a" +msgid "cannot switch to generation '~a'~%" +msgstr "Zu Generation »~a« kann nicht gewechselt werden~%" -#: guix/scripts/package.scm:862 +#: guix/scripts/package.scm:690 #, scheme-format -msgid "~a\t(current)~%" -msgstr "~a\t(aktuell)~%" +msgid "would install new manifest from '~a' with ~d entries~%" +msgstr "" -#: guix/scripts/gc.scm:39 +#: guix/scripts/package.scm:692 +#, scheme-format +msgid "installing new manifest from '~a' with ~d entries~%" +msgstr "" + +#: guix/scripts/gc.scm:40 msgid "" "Usage: guix gc [OPTION]... PATHS...\n" "Invoke the garbage collector.\n" @@ -487,14 +613,14 @@ msgstr "" "Aufruf: guix gc [OPTION] … PFADE …\n" "Ruft den Müllsammler auf.\n" -#: guix/scripts/gc.scm:41 +#: guix/scripts/gc.scm:42 msgid "" "\n" " -C, --collect-garbage[=MIN]\n" " collect at least MIN bytes of garbage" msgstr "" -#: guix/scripts/gc.scm:44 +#: guix/scripts/gc.scm:45 msgid "" "\n" " -d, --delete attempt to delete PATHS" @@ -502,42 +628,68 @@ msgstr "" "\n" " -d, --delete versuchen, PFADE zu löschen" -#: guix/scripts/gc.scm:46 +#: guix/scripts/gc.scm:47 +msgid "" +"\n" +" --optimize optimize the store by deduplicating identical files" +msgstr "" + +#: guix/scripts/gc.scm:49 msgid "" "\n" " --list-dead list dead paths" msgstr "" -#: guix/scripts/gc.scm:48 +#: guix/scripts/gc.scm:51 msgid "" "\n" " --list-live list live paths" msgstr "" -#: guix/scripts/gc.scm:51 +#: guix/scripts/gc.scm:54 msgid "" "\n" " --references list the references of PATHS" msgstr "" -#: guix/scripts/gc.scm:53 +#: guix/scripts/gc.scm:56 msgid "" "\n" " -R, --requisites list the requisites of PATHS" msgstr "" -#: guix/scripts/gc.scm:55 +#: guix/scripts/gc.scm:58 msgid "" "\n" " --referrers list the referrers of PATHS" msgstr "" -#: guix/scripts/gc.scm:84 +#: guix/scripts/gc.scm:61 +msgid "" +"\n" +" --verify[=OPTS] verify the integrity of the store; OPTS is a\n" +" comma-separated combination of 'repair' and\n" +" 'contents'" +msgstr "" + +#: guix/scripts/gc.scm:65 +msgid "" +"\n" +" --list-failures list cached build failures" +msgstr "" + +#: guix/scripts/gc.scm:67 +msgid "" +"\n" +" --clear-failures remove PATHS from the set of cached failures" +msgstr "" + +#: guix/scripts/gc.scm:96 #, scheme-format msgid "invalid amount of storage: ~a~%" msgstr "Ungültiger Speicher-Wert: ~a~%" -#: guix/scripts/hash.scm:45 +#: guix/scripts/hash.scm:46 msgid "" "Usage: guix hash [OPTION] FILE\n" "Return the cryptographic hash of FILE.\n" @@ -546,7 +698,7 @@ msgid "" "and 'hexadecimal' can be used as well).\n" msgstr "" -#: guix/scripts/hash.scm:52 +#: guix/scripts/hash.scm:53 msgid "" "\n" " -r, --recursive compute the hash on FILE recursively" @@ -554,169 +706,245 @@ msgstr "" "\n" " -r, --recursive errechnet die Prüfsumme der DATEI rekursiv" -#: guix/scripts/hash.scm:103 +#: guix/scripts/hash.scm:104 #, scheme-format msgid "unrecognized option: ~a~%" msgstr "Nicht erkannte Option: ~a~%" -#: guix/scripts/hash.scm:134 guix/ui.scm:252 +#: guix/scripts/hash.scm:135 guix/ui.scm:458 #, scheme-format msgid "~a~%" msgstr "~a~%" -#: guix/scripts/hash.scm:137 +#: guix/scripts/hash.scm:138 guix/scripts/system.scm:685 #, scheme-format msgid "wrong number of arguments~%" msgstr "Falsche Argumentanzahl~%" -#: guix/scripts/pull.scm:72 +#: guix/scripts/import.scm:85 +msgid "" +"Usage: guix import IMPORTER ARGS ...\n" +"Run IMPORTER with ARGS.\n" +msgstr "" +"Aufruf: guix import IMPORTER ARGUMENTE ...\n" +"IMPORTER mit ARGUMENTEN ausführen.\n" + +#: guix/scripts/import.scm:88 +msgid "IMPORTER must be one of the importers listed below:\n" +msgstr "IMPORTER muss einer der unten aufgelisteten Importer sein:\n" + +#: guix/scripts/import.scm:102 +#, scheme-format +msgid "guix import: missing importer name~%" +msgstr "guix import: Importer-Name fehlt~%" + +#: guix/scripts/import.scm:113 +#, scheme-format +msgid "guix import: invalid importer~%" +msgstr "" + +#: guix/scripts/import/cran.scm:42 +msgid "" +"Usage: guix import cran PACKAGE-NAME\n" +"Import and convert the CRAN package for PACKAGE-NAME.\n" +msgstr "" + +#: guix/scripts/import/cran.scm:87 +#, scheme-format +msgid "failed to download description for package '~a'~%" +msgstr "Beschreibung für Paket »~a« konnte nicht geladen werden~%" + +#: guix/scripts/import/cran.scm:91 guix/scripts/import/elpa.scm:95 +#, scheme-format +msgid "too few arguments~%" +msgstr "Zu wenige Argumente~%" + +#: guix/scripts/import/cran.scm:93 guix/scripts/import/elpa.scm:97 +#, scheme-format +msgid "too many arguments~%" +msgstr "Zu viele Argumente~%" + +#: guix/scripts/import/elpa.scm:41 +msgid "" +"Usage: guix import elpa PACKAGE-NAME\n" +"Import the latest package named PACKAGE-NAME from an ELPA repository.\n" +msgstr "" + +#: guix/scripts/import/elpa.scm:43 +msgid "" +"\n" +" -a, --archive=ARCHIVE specify the archive repository" +msgstr "" + +#: guix/scripts/import/elpa.scm:45 +msgid "" +"\n" +" -h, --help display this help and exit" +msgstr "" +"\n" +" -h, --help diese Hilfe anzeigen und beenden" + +#: guix/scripts/import/elpa.scm:47 +msgid "" +"\n" +" -V, --version display version information and exit" +msgstr "" +"\n" +" -V, --version Versionsinformation anzeigen und beenden" + +#: guix/scripts/import/elpa.scm:92 +#, scheme-format +msgid "failed to download package '~a'~%" +msgstr "Paket »~a« konnte nicht heruntergeladen werden~%" + +#: guix/scripts/pull.scm:74 msgid "" "Usage: guix pull [OPTION]...\n" "Download and deploy the latest version of Guix.\n" msgstr "" -#: guix/scripts/pull.scm:76 +#: guix/scripts/pull.scm:78 msgid "" "\n" " --url=URL download the Guix tarball from URL" msgstr "" -#: guix/scripts/pull.scm:78 +#: guix/scripts/pull.scm:80 msgid "" "\n" " --bootstrap use the bootstrap Guile to build the new Guix" msgstr "" -#: guix/scripts/pull.scm:132 +#: guix/scripts/pull.scm:134 msgid "tarball did not produce a single source directory" msgstr "Entpacken des Tar-Archiv erzeugte kein einzelnes Quellverzeichnis" -#: guix/scripts/pull.scm:150 +#: guix/scripts/pull.scm:152 #, scheme-format msgid "unpacking '~a'...~%" msgstr "»~a« wird entpackt …~%" -#: guix/scripts/pull.scm:159 +#: guix/scripts/pull.scm:161 msgid "failed to unpack source code" msgstr "Quellcode konnte nicht entpackt werden" -#: guix/scripts/pull.scm:200 +#: guix/scripts/pull.scm:204 +msgid "Guix already up to date\n" +msgstr "Guix ist bereits aktuell\n" + +#: guix/scripts/pull.scm:209 #, scheme-format msgid "updated ~a successfully deployed under `~a'~%" msgstr "" -#: guix/scripts/pull.scm:203 +#: guix/scripts/pull.scm:212 #, scheme-format msgid "failed to update Guix, check the build log~%" msgstr "Guix konnte nicht aktualisiert werden, schauen Sie in das Build-Protokoll~%" -#: guix/scripts/pull.scm:205 -msgid "Guix already up to date\n" -msgstr "Guix ist bereits aktuell\n" - -#: guix/scripts/pull.scm:215 +#: guix/scripts/pull.scm:221 #, scheme-format msgid "~A: unexpected argument~%" msgstr "~A: unerwartetes Argument~%" -#: guix/scripts/pull.scm:224 +#: guix/scripts/pull.scm:230 msgid "failed to download up-to-date source, exiting\n" msgstr "Aktueller Quellcode konnte nicht heruntergeladen werden, Abbruch\n" -#: guix/scripts/substitute-binary.scm:80 +#: guix/scripts/substitute.scm:103 #, scheme-format msgid "authentication and authorization of substitutes disabled!~%" msgstr "" -#: guix/scripts/substitute-binary.scm:163 +#: guix/scripts/substitute.scm:179 #, scheme-format msgid "download from '~a' failed: ~a, ~s~%" msgstr "Herunterladen von »~a« ist fehlgeschlagen: ~a, ~s~%" -#: guix/scripts/substitute-binary.scm:178 +#: guix/scripts/substitute.scm:191 #, scheme-format -msgid "while fetching ~a: server is unresponsive~%" -msgstr "Beim Holen von ~a: Server antwortet nicht~%" +msgid "while fetching ~a: server is somewhat slow~%" +msgstr "Beim Holen von ~a: Server ist etwas langsam~%" -#: guix/scripts/substitute-binary.scm:180 +#: guix/scripts/substitute.scm:193 #, scheme-format msgid "try `--no-substitutes' if the problem persists~%" msgstr "Versuchen Sie »--no-substitutes«, falls das Problem weiter besteht~%" -#: guix/scripts/substitute-binary.scm:244 +#: guix/scripts/substitute.scm:266 #, scheme-format -msgid "signature version must be a number: ~a~%" -msgstr "Signaturversion muss eine Zahl sein: ~a~%" +msgid "signature version must be a number: ~s~%" +msgstr "Signaturversion muss eine Zahl sein: ~s~%" -#: guix/scripts/substitute-binary.scm:248 +#: guix/scripts/substitute.scm:270 #, scheme-format msgid "unsupported signature version: ~a~%" msgstr "Signaturversion wird nicht unterstützt: ~a~%" -#: guix/scripts/substitute-binary.scm:256 +#: guix/scripts/substitute.scm:278 #, scheme-format msgid "signature is not a valid s-expression: ~s~%" msgstr "" -#: guix/scripts/substitute-binary.scm:260 +#: guix/scripts/substitute.scm:282 #, scheme-format msgid "invalid format of the signature field: ~a~%" msgstr "Unzulässiges Format des Signaturfeldes: ~a~%" -#: guix/scripts/substitute-binary.scm:295 +#: guix/scripts/substitute.scm:317 #, scheme-format msgid "invalid signature for '~a'~%" msgstr "Ungültige Signatur für »~a«~%" -#: guix/scripts/substitute-binary.scm:297 +#: guix/scripts/substitute.scm:319 #, scheme-format msgid "hash mismatch for '~a'~%" msgstr "Prüfsummenfehler für »~a«~%" -#: guix/scripts/substitute-binary.scm:299 +#: guix/scripts/substitute.scm:321 #, scheme-format msgid "'~a' is signed with an unauthorized key~%" msgstr "" -#: guix/scripts/substitute-binary.scm:301 +#: guix/scripts/substitute.scm:323 #, scheme-format msgid "signature on '~a' is corrupt~%" msgstr "Signature von »~a« ist beschädigt~%" -#: guix/scripts/substitute-binary.scm:338 +#: guix/scripts/substitute.scm:361 #, scheme-format msgid "substitute at '~a' lacks a signature~%" msgstr "" -#: guix/scripts/substitute-binary.scm:526 +#: guix/scripts/substitute.scm:537 #, scheme-format -msgid "Downloading, please wait...~%" -msgstr "Wird heruntergeladen, bitte warten …~%" +msgid "updating list of substitutes from '~a'... ~5,1f%" +msgstr "" -#: guix/scripts/substitute-binary.scm:528 +#: guix/scripts/substitute.scm:591 #, scheme-format -msgid "(Please consider upgrading Guile to get proper progress report.)~%" +msgid "~s: unsupported server URI scheme~%" msgstr "" -#: guix/scripts/substitute-binary.scm:541 +#: guix/scripts/substitute.scm:733 #, scheme-format msgid "host name lookup error: ~a~%" msgstr "Fehler beim Nachschlagen des Rechnernamens: ~a~%" -#: guix/scripts/substitute-binary.scm:550 +#: guix/scripts/substitute.scm:742 msgid "" -"Usage: guix substitute-binary [OPTION]...\n" +"Usage: guix substitute [OPTION]...\n" "Internal tool to substitute a pre-built binary to a local build.\n" msgstr "" -#: guix/scripts/substitute-binary.scm:552 +#: guix/scripts/substitute.scm:744 msgid "" "\n" " --query report on the availability of substitutes for the\n" " store file names passed on the standard input" msgstr "" -#: guix/scripts/substitute-binary.scm:555 +#: guix/scripts/substitute.scm:747 msgid "" "\n" " --substitute STORE-FILE DESTINATION\n" @@ -724,21 +952,11 @@ msgid "" " DESTINATION" msgstr "" -#: guix/scripts/substitute-binary.scm:600 +#: guix/scripts/substitute.scm:872 msgid "ACL for archive imports seems to be uninitialized, substitutes may be unavailable\n" msgstr "" -#: guix/scripts/substitute-binary.scm:634 -#, scheme-format -msgid "these substitute URLs will not be used:~{ ~a~}~%" -msgstr "" - -#: guix/scripts/substitute-binary.scm:660 -#, scheme-format -msgid "failed to look up host '~a' (~a), substituter disabled~%" -msgstr "" - -#: guix/scripts/substitute-binary.scm:767 +#: guix/scripts/substitute.scm:954 #, scheme-format msgid "~a: unrecognized options~%" msgstr "~a: nicht erkannte Optionen~%" @@ -763,7 +981,7 @@ msgstr "Fehler: nicht autorisierter öffentlicher Schlüssel: ~a~%" msgid "error: corrupt signature data: ~a~%" msgstr "Fehler: Signaturdaten beschädigt: ~a~%" -#: guix/scripts/authenticate.scm:126 +#: guix/scripts/authenticate.scm:120 msgid "" "Usage: guix authenticate OPTION...\n" "Sign or verify the signature on the given file. This tool is meant to\n" @@ -773,94 +991,143 @@ msgstr "" "Angegebene Datei signieren oder die Signatur überprüfen. Dieses Werkzeug\n" "ist dafür bestimmt, intern von »guix-daemon« aufgerufen zu werden.\n" -#: guix/scripts/authenticate.scm:132 +#: guix/scripts/authenticate.scm:126 msgid "wrong arguments" msgstr "Falsche Argumente" -#: guix/scripts/system.scm:74 -#, scheme-format -msgid "failed to open operating system file '~a': ~a~%" -msgstr "Betriebssystemdatei »~a« konnte nicht geöffnet werden: ~a~%" - -#: guix/scripts/system.scm:78 guix/ui.scm:258 -#, scheme-format -msgid "~a: ~a~%" -msgstr "~a: ~a~%" - -#: guix/scripts/system.scm:81 -#, scheme-format -msgid "failed to load operating system file '~a': ~s~%" -msgstr "Betriebssystemdatei »~a« konnte nicht geladen werden: ~s~%" - -#: guix/scripts/system.scm:116 +#: guix/scripts/system.scm:105 #, scheme-format msgid "failed to register '~a' under '~a'~%" msgstr "»~a« konnte nicht unter »~a« registriert werden~%" -#: guix/scripts/system.scm:144 +#: guix/scripts/system.scm:137 +#, scheme-format +msgid "failed to install GRUB on device '~a'~%" +msgstr "GRUB konnte nicht auf Gerät »~a« installiert werden~%" + +#: guix/scripts/system.scm:155 #, scheme-format msgid "initializing the current root file system~%" msgstr "Aktuelles Wurzeldateisystem wird initialisiert~%" -#: guix/scripts/system.scm:162 guix/scripts/system.scm:325 +#: guix/scripts/system.scm:169 #, scheme-format -msgid "failed to install GRUB on device '~a'~%" -msgstr "GRUB konnte nicht auf Gerät »~a« installiert werden~%" +msgid "not running as 'root', so the ownership of '~a' may be incorrect!~%" +msgstr "" + +#: guix/scripts/system.scm:219 +#, scheme-format +msgid "unrecognized boot parameters for '~a'~%" +msgstr "Nicht erkannte Startparameter für »~a«~%" -#: guix/scripts/system.scm:197 +#: guix/scripts/system.scm:254 #, scheme-format msgid "activating system...~%" msgstr "System wird aktiviert …~%" -#: guix/scripts/system.scm:239 +#: guix/scripts/system.scm:338 +msgid "the DAG of services" +msgstr "" + +#: guix/scripts/system.scm:351 +msgid "the dependency graph of dmd services" +msgstr "" + +#: guix/scripts/system.scm:369 #, scheme-format -msgid "unrecognized boot parameters for '~a'~%" -msgstr "Nicht erkannte Startparameter für »~a«~%" +msgid " file name: ~a~%" +msgstr " Dateiname: ~a~%" + +#: guix/scripts/system.scm:370 +#, scheme-format +msgid " canonical file name: ~a~%" +msgstr "" + +#. TRANSLATORS: Please preserve the two-space indentation. +#: guix/scripts/system.scm:374 +#, scheme-format +msgid " label: ~a~%" +msgstr " Label: ~a~%" + +#: guix/scripts/system.scm:375 +#, scheme-format +msgid " root device: ~a~%" +msgstr " Root-Gerät: ~a~%" + +#: guix/scripts/system.scm:376 +#, scheme-format +msgid " kernel: ~a~%" +msgstr " Kernel: ~a~%" -#: guix/scripts/system.scm:330 +#: guix/scripts/system.scm:476 #, scheme-format msgid "initializing operating system under '~a'...~%" msgstr "Betriebssystem unter »~a« wird initialisiert …~%" -#: guix/scripts/system.scm:346 +#: guix/scripts/system.scm:515 msgid "" -"Usage: guix system [OPTION] ACTION FILE\n" +"Usage: guix system [OPTION] ACTION [FILE]\n" "Build the operating system declared in FILE according to ACTION.\n" msgstr "" -"Aufruf: guix system [OPTION] AKTION DATEI\n" +"Aufruf: guix system [OPTION] AKTION [DATEI]\n" "Das in DATEI deklarierte Betriebssystem entsprechend der AKTION erstellen.\n" -#: guix/scripts/system.scm:349 +#: guix/scripts/system.scm:518 msgid "The valid values for ACTION are:\n" msgstr "Die gültigen Werte für AKTION sind:\n" -#: guix/scripts/system.scm:350 -msgid " - 'reconfigure', switch to a new operating system configuration\n" -msgstr " - »reconfigure«, zur neuen Betriebssystemkonfiguration wechseln\n" +#: guix/scripts/system.scm:520 +msgid " reconfigure switch to a new operating system configuration\n" +msgstr " reconfigure zur neuen Betriebssystemkonfiguration wechseln\n" + +#: guix/scripts/system.scm:522 +msgid " list-generations list the system generations\n" +msgstr "" + +#: guix/scripts/system.scm:524 +msgid " build build the operating system without installing anything\n" +msgstr " build das Betriebssystem erstellen, ohne etwas zu installieren\n" + +#: guix/scripts/system.scm:526 +msgid " vm build a virtual machine image that shares the host's store\n" +msgstr "" +" vm ein Image für eine virtuelle Maschine erstellen, das den\n" +" Speicher des Rechners nutzt\n" + +#: guix/scripts/system.scm:528 +msgid " vm-image build a freestanding virtual machine image\n" +msgstr " vm-image ein unabhängiges Image für eine virtuelle Maschine erstellen\n" + +#: guix/scripts/system.scm:530 +msgid " disk-image build a disk image, suitable for a USB stick\n" +msgstr " disk-image ein Disk-Image für einen USB-Stick erstellen\n" -#: guix/scripts/system.scm:352 -msgid " - 'build', build the operating system without installing anything\n" -msgstr " - »build«, das Betriebssystem erstellen, ohne etwas zu installieren\n" +#: guix/scripts/system.scm:532 +msgid " init initialize a root file system to run GNU\n" +msgstr " init ein Wurzeldateisystem initialisieren, um GNU auszuführen.\n" -#: guix/scripts/system.scm:354 -msgid " - 'vm', build a virtual machine image that shares the host's store\n" +#: guix/scripts/system.scm:534 +msgid " extension-graph emit the service extension graph in Dot format\n" msgstr "" -" - »vm«, ein Image für eine virtuelle Maschine erstellen, das den\n" -" Speicher des Rechners nutzt\n" -#: guix/scripts/system.scm:356 -msgid " - 'vm-image', build a freestanding virtual machine image\n" -msgstr " - »vm-image«, ein unabhängiges Image für eine virtuelle Maschine erstellen\n" +#: guix/scripts/system.scm:536 +msgid " dmd-graph emit the graph of dmd services in Dot format\n" +msgstr "" -#: guix/scripts/system.scm:358 -msgid " - 'disk-image', build a disk image, suitable for a USB stick\n" -msgstr " - »disk-image«, ein Disk-Image für einen USB-Stick erstellen\n" +#: guix/scripts/system.scm:540 +msgid "" +"\n" +" -d, --derivation return the derivation of the given system" +msgstr "" -#: guix/scripts/system.scm:360 -msgid " - 'init', initialize a root file system to run GNU.\n" -msgstr " - »init«, ein Wurzeldateisystem initialisieren, um GNU auszuführen.\n" +#: guix/scripts/system.scm:542 +msgid "" +"\n" +" --on-error=STRATEGY\n" +" apply STRATEGY when an error occurs while reading FILE" +msgstr "" -#: guix/scripts/system.scm:364 +#: guix/scripts/system.scm:545 msgid "" "\n" " --image-size=SIZE for 'vm-image', produce an image of SIZE" @@ -868,7 +1135,7 @@ msgstr "" "\n" " --image-size=GRÖSSE für »vm-image«, ein Image der GRÖSSE erstellen" -#: guix/scripts/system.scm:366 +#: guix/scripts/system.scm:547 msgid "" "\n" " --no-grub for 'init', do not install GRUB" @@ -876,7 +1143,19 @@ msgstr "" "\n" " --no-grub für »init«, GRUB nicht installieren" -#: guix/scripts/system.scm:368 +#: guix/scripts/system.scm:549 +msgid "" +"\n" +" --share=SPEC for 'vm', share host file system according to SPEC" +msgstr "" + +#: guix/scripts/system.scm:551 +msgid "" +"\n" +" --expose=SPEC for 'vm', expose host file system according to SPEC" +msgstr "" + +#: guix/scripts/system.scm:553 msgid "" "\n" " --full-boot for 'vm', make a full boot sequence" @@ -884,112 +1163,564 @@ msgstr "" "\n" " --full-boot für »vm«, vollständige Boot-Sequenz" -#: guix/scripts/system.scm:434 +#: guix/scripts/system.scm:637 +#, scheme-format +msgid "no configuration file specified~%" +msgstr "Keine Konfigurationsdatei angegeben~%" + +#: guix/scripts/system.scm:700 #, scheme-format msgid "~a: unknown action~%" msgstr "~a: unbekannte Aktion~%" -#: guix/scripts/system.scm:451 +#: guix/scripts/system.scm:715 #, scheme-format msgid "wrong number of arguments for action '~a'~%" msgstr "Falsche Anzahl an Argumenten für Aktion »~a«~%" -#: guix/scripts/system.scm:471 +#: guix/scripts/system.scm:720 #, scheme-format -msgid "no configuration file specified~%" -msgstr "Keine Konfigurationsdatei angegeben~%" +msgid "guix system: missing command name~%" +msgstr "guix system: Befehlsname fehlt~%" -#: guix/scripts/lint.scm:51 +#: guix/scripts/system.scm:722 #, scheme-format -msgid "~a: ~a: ~a~%" -msgstr "~a: ~a: ~a~%" +msgid "Try 'guix system --help' for more information.~%" +msgstr "Rufen Sie »guix system --help« auf, um weitere Informationen zu erhalten.~%" -#: guix/scripts/lint.scm:72 +#: guix/scripts/lint.scm:124 #, scheme-format msgid "Available checkers:~%" msgstr "Verfügbare Prüfer:~%" -#: guix/scripts/lint.scm:226 -msgid "Validate package descriptions" -msgstr "Paketbeschreibungen überprüfen" +#: guix/scripts/lint.scm:144 +msgid "description should not be empty" +msgstr "" -#: guix/scripts/lint.scm:230 +#: guix/scripts/lint.scm:154 +msgid "Texinfo markup in description is invalid" +msgstr "" + +#: guix/scripts/lint.scm:162 +msgid "description should start with an upper-case letter or digit" +msgstr "" + +#: guix/scripts/lint.scm:178 +#, scheme-format +msgid "" +"sentences in description should be followed ~\n" +"by two spaces; possible infraction~p at ~{~a~^, ~}" +msgstr "" + +#: guix/scripts/lint.scm:202 +msgid "pkg-config should probably be a native input" +msgstr "" + +#: guix/scripts/lint.scm:217 +msgid "synopsis should not be empty" +msgstr "" + +#: guix/scripts/lint.scm:225 +msgid "no period allowed at the end of the synopsis" +msgstr "Am Ende der Zusammenfassung darf kein Punkt gesetzt werden" + +#: guix/scripts/lint.scm:237 +msgid "no article allowed at the beginning of the synopsis" +msgstr "Am Beginn der Zusammenfassung darf kein Punkt stehen" + +#: guix/scripts/lint.scm:244 +msgid "synopsis should be less than 80 characters long" +msgstr "Zusammenfassung sollte nicht länger als 80 Zeichen sein" + +#: guix/scripts/lint.scm:250 +msgid "synopsis should start with an upper-case letter or digit" +msgstr "Zusammenfassung sollte mit einem Großbuchstaben oder einer Zahl beginnen" + +#: guix/scripts/lint.scm:257 +msgid "synopsis should not start with the package name" +msgstr "Zusammenfassung sollte nicht mit dem Paketnamen beginnen" + +#: guix/scripts/lint.scm:348 guix/scripts/lint.scm:360 +#, scheme-format +msgid "URI ~a not reachable: ~a (~s)" +msgstr "" + +#: guix/scripts/lint.scm:367 +#, scheme-format +msgid "URI ~a domain not found: ~a" +msgstr "URI-Domain ~a nicht gefunden: ~a" + +#: guix/scripts/lint.scm:375 +#, scheme-format +msgid "URI ~a unreachable: ~a" +msgstr "URI ~a ist nicht erreichbar: ~a" + +#: guix/scripts/lint.scm:401 +msgid "invalid value for home page" +msgstr "Ungültiger Wert für Homepage" + +#: guix/scripts/lint.scm:404 +#, scheme-format +msgid "invalid home page URL: ~s" +msgstr "Ungültige URL für Homepage: ~s" + +#: guix/scripts/lint.scm:429 +msgid "file names of patches should start with the package name" +msgstr "Dateinamen oder Patches sollten mit dem Paketnamen beginnen" + +#: guix/scripts/lint.scm:467 +#, scheme-format +msgid "~a: ~a: proposed synopsis: ~s~%" +msgstr "~a: ~a: vorgeschlagene Zusammenfassung: ~s~%" + +#: guix/scripts/lint.scm:479 +#, scheme-format +msgid "~a: ~a: proposed description:~% \"~a\"~%" +msgstr "~a: ~a: vorgeschlagene Beschreibung:~% \"~a\"~%" + +#: guix/scripts/lint.scm:516 +msgid "all the source URIs are unreachable:" +msgstr "Alle Quell-URIs sind nicht erreichbar:" + +#: guix/scripts/lint.scm:539 +msgid "the source file name should contain the package name" +msgstr "Der Name der Quelldatei sollte den Paketnamen enthalten" + +#: guix/scripts/lint.scm:548 guix/scripts/lint.scm:552 +#, scheme-format +msgid "failed to create derivation: ~a" +msgstr "Ableitung konnte nicht erstellt werden: ~a" + +#: guix/scripts/lint.scm:558 +#, scheme-format +msgid "failed to create derivation: ~s~%" +msgstr "Ableitung konnte nicht erstellt werden: ~s~%" + +#: guix/scripts/lint.scm:568 +msgid "invalid license field" +msgstr "Ungültiges Lizenz-Feld" + +#: guix/scripts/lint.scm:582 +#, scheme-format +msgid "tabulation on line ~a, column ~a" +msgstr "Tabulator in Zeile ~a, Spalte ~a" + +#: guix/scripts/lint.scm:591 +#, scheme-format +msgid "trailing white space on line ~a" +msgstr "Führende Leerzeichen in Zeile ~a" + +#: guix/scripts/lint.scm:601 +#, scheme-format +msgid "line ~a is way too long (~a characters)" +msgstr "Zeile ~a ist viel zu lang (~a Zeichen)" + +#: guix/scripts/lint.scm:612 +#, scheme-format +msgid "line ~a: parentheses feel lonely, move to the previous or next line" +msgstr "" + +#: guix/scripts/lint.scm:667 +msgid "Validate package descriptions" +msgstr "Paketbeschreibungen überprüfen" + +#: guix/scripts/lint.scm:671 +msgid "Validate synopsis & description of GNU packages" +msgstr "GNU-Paketzusammenfassung und -beschreibungen überprüfen" + +#: guix/scripts/lint.scm:675 msgid "Identify inputs that should be native inputs" msgstr "Eingaben prüfen, die native Eingaben sein sollten" -#: guix/scripts/lint.scm:234 -msgid "Validate filenames of patches" -msgstr "Dateinamen der Patches überprüfen" +#: guix/scripts/lint.scm:679 +msgid "Validate file names and availability of patches" +msgstr "Dateinamen und Verfügbarkeit der Patches überprüfen" + +#: guix/scripts/lint.scm:683 +msgid "Validate home-page URLs" +msgstr "Homepage-URLs überprüfen" + +#. TRANSLATORS: is the name of a data type and must not be +#. translated. +#: guix/scripts/lint.scm:689 +msgid "Make sure the 'license' field is a or a list thereof" +msgstr "" -#: guix/scripts/lint.scm:238 -msgid "Validate package synopsis" +#: guix/scripts/lint.scm:694 +msgid "Validate source URLs" +msgstr "Quell-URLs überprüfen" + +#: guix/scripts/lint.scm:698 +msgid "Validate file names of sources" +msgstr "Dateinamen der Quellen überprüfen" + +#: guix/scripts/lint.scm:702 +msgid "Report failure to compile a package to a derivation" +msgstr "" + +#: guix/scripts/lint.scm:706 +msgid "Validate package synopses" msgstr "Paketzusammenfassungen überprüfen" -#: guix/scripts/lint.scm:257 +#: guix/scripts/lint.scm:710 +msgid "Look for formatting issues in the source" +msgstr "Nach Formatierungsfehlern in der Quelle schauen" + +#: guix/scripts/lint.scm:735 msgid "" "Usage: guix lint [OPTION]... [PACKAGE]...\n" -"Run a set of checkers on the specified package; if none is specified, run the checkers on all packages.\n" +"Run a set of checkers on the specified package; if none is specified,\n" +"run the checkers on all packages.\n" msgstr "" +"Aufruf: guix lint [OPTION]... [PAKET]...\n" +"Eine Reihe von Überprüfungen auf das angegebene Paket anwenden.\n" +"Falls keine angegeben sind, werden alle verfügbaren Überprüfungen\n" +"mit allen Paketen ausgeführt.\n" -#: guix/scripts/lint.scm:259 +#: guix/scripts/lint.scm:738 msgid "" "\n" " -c, --checkers=CHECKER1,CHECKER2...\n" -" only run the specificed checkers" +" only run the specified checkers" msgstr "" "\n" " -c, --checkers=PRÜFER1,PRÜFER2 …\n" " nur die angegebenen Prüfer aufrufen" -#: guix/scripts/lint.scm:264 +#: guix/scripts/lint.scm:743 msgid "" "\n" " -l, --list-checkers display the list of available lint checkers" msgstr "" +"\n" +" -l, --list-checkers Liste der verfügbaren Überprüfungen anzeigen" + +#: guix/scripts/lint.scm:763 +#, scheme-format +msgid "~a: invalid checker~%" +msgstr "~a: unzulässiger Prüfer~%" + +#: guix/scripts/publish.scm:52 +#, scheme-format +msgid "" +"Usage: guix publish [OPTION]...\n" +"Publish ~a over HTTP.\n" +msgstr "" +"Aufruf: guix publish [OPTION]...\n" +"~a über HTTP bereitstellen.\n" + +#: guix/scripts/publish.scm:54 +msgid "" +"\n" +" -p, --port=PORT listen on PORT" +msgstr "" +"\n" +" -p, --port=PORT an PORT lauschen" + +#: guix/scripts/publish.scm:56 +msgid "" +"\n" +" --listen=HOST listen on the network interface for HOST" +msgstr "" + +#: guix/scripts/publish.scm:58 +msgid "" +"\n" +" -u, --user=USER change privileges to USER as soon as possible" +msgstr "" + +#: guix/scripts/publish.scm:60 +msgid "" +"\n" +" -r, --repl[=PORT] spawn REPL server on PORT" +msgstr "" + +#: guix/scripts/publish.scm:76 +#, scheme-format +msgid "lookup of host '~a' failed: ~a~%" +msgstr "Suche nach Host »~a« ist fehlgeschlagen: ~a~%" + +#: guix/scripts/publish.scm:100 +#, scheme-format +msgid "lookup of host '~a' returned nothing" +msgstr "Suche nach Host »~a« lieferte kein Ergebnis" + +#: guix/scripts/publish.scm:343 +#, scheme-format +msgid "user '~a' not found: ~a~%" +msgstr "Benutzer »~a« nicht gefunden: ~a~%" + +#: guix/scripts/publish.scm:378 +#, scheme-format +msgid "server running as root; consider using the '--user' option!~%" +msgstr "" + +#: guix/scripts/publish.scm:380 +#, scheme-format +msgid "publishing ~a on ~a, port ~d~%" +msgstr "~a wird auf ~a bereitgestellt, Port ~d~%" + +#: guix/scripts/edit.scm:40 +msgid "" +"Usage: guix edit PACKAGE...\n" +"Start $EDITOR to edit the definitions of PACKAGE...\n" +msgstr "" + +#: guix/scripts/edit.scm:58 +#, scheme-format +msgid "file '~a' not found in search path ~s~%" +msgstr "Datei »~a« im Suchpfad ~s nicht gefunden~%" + +#: guix/scripts/edit.scm:70 +#, scheme-format +msgid "source location of package '~a' is unknown~%" +msgstr "Quellort des Pakets »~a« ist unbekannt~%" + +#: guix/scripts/size.scm:75 +#, scheme-format +msgid "no available substitute information for '~a'~%" +msgstr "" + +#: guix/scripts/size.scm:83 +msgid "store item" +msgstr "" + +#: guix/scripts/size.scm:83 +msgid "total" +msgstr "" + +#: guix/scripts/size.scm:83 +msgid "self" +msgstr "" + +#. TRANSLATORS: This is the title of a graph, meaning that the graph +#. represents a profile of the store (the "store" being the place where +#. packages are stored.) +#: guix/scripts/size.scm:204 +msgid "store profile" +msgstr "" + +#: guix/scripts/size.scm:213 +msgid "" +"Usage: guix size [OPTION]... PACKAGE\n" +"Report the size of PACKAGE and its dependencies.\n" +msgstr "" +"Aufruf: guix size [OPTION] … PAKET …\n" +"Größe des PAKETs und seiner Abhängigkeiten ermitteln.\n" + +#: guix/scripts/size.scm:218 +msgid "" +"\n" +" -s, --system=SYSTEM consider packages for SYSTEM--e.g., \"i686-linux\"" +msgstr "" + +#: guix/scripts/size.scm:220 +msgid "" +"\n" +" -m, --map-file=FILE write to FILE a graphical map of disk usage" +msgstr "" +"\n" +" -m, --map-file=DATEI eine grafische Darstellung des Plattenplatzverbrauchs\n" +" in DATEI schreiben" + +#: guix/scripts/size.scm:274 +msgid "missing store item argument\n" +msgstr "" + +#: guix/scripts/size.scm:292 +msgid "too many arguments\n" +msgstr "Zu wenige Argumente\n" + +#: guix/scripts/graph.scm:105 +msgid "the DAG of packages, excluding implicit inputs" +msgstr "" + +#: guix/scripts/graph.scm:155 +msgid "the DAG of packages, including implicit inputs" +msgstr "" + +#: guix/scripts/graph.scm:179 +msgid "same as 'bag', but without the bootstrap nodes" +msgstr "" + +#: guix/scripts/graph.scm:222 +msgid "the DAG of derivations" +msgstr "" + +#: guix/scripts/graph.scm:246 +#, scheme-format +msgid "references for '~a' are not known~%" +msgstr "" + +#: guix/scripts/graph.scm:253 +msgid "the DAG of run-time dependencies (store references)" +msgstr "" + +#: guix/scripts/graph.scm:282 +#, scheme-format +msgid "~a: unknown node type~%" +msgstr "~a: unbekannter Node-Typ~%" + +#: guix/scripts/graph.scm:286 +msgid "The available node types are:\n" +msgstr "Die gültigen Node-Typen sind:\n" + +#. TRANSLATORS: Here 'dot' is the name of a program; it must not be +#. translated. +#: guix/scripts/graph.scm:389 +msgid "" +"Usage: guix graph PACKAGE...\n" +"Emit a Graphviz (dot) representation of the dependencies of PACKAGE...\n" +msgstr "" + +#: guix/scripts/graph.scm:391 +msgid "" +"\n" +" -t, --type=TYPE represent nodes of the given TYPE" +msgstr "" -#: guix/scripts/lint.scm:283 +#: guix/scripts/graph.scm:393 +msgid "" +"\n" +" --list-types list the available graph types" +msgstr "" +"\n" +" --list-types verfügbare Diagrammtypen auflisten" + +#: guix/scripts/graph.scm:395 +msgid "" +"\n" +" -e, --expression=EXPR consider the package EXPR evaluates to" +msgstr "" + +#: guix/scripts/challenge.scm:104 #, scheme-format -msgid "~a: invalid checker" -msgstr "~a: unzulässiger Prüfer" +msgid "~a: no substitute at '~a'~%" +msgstr "" + +#: guix/scripts/challenge.scm:120 +#, scheme-format +msgid "no substitutes for '~a'~%" +msgstr "" + +#: guix/scripts/challenge.scm:137 guix/scripts/challenge.scm:157 +#, scheme-format +msgid "no local build for '~a'~%" +msgstr "" + +#: guix/scripts/challenge.scm:154 +#, scheme-format +msgid "~a contents differ:~%" +msgstr "" + +#: guix/scripts/challenge.scm:156 +#, scheme-format +msgid " local hash: ~a~%" +msgstr " lokale Prüfsumme: ~a~%" + +#: guix/scripts/challenge.scm:161 +#, scheme-format +msgid " ~50a: ~a~%" +msgstr " ~50a: ~a~%" + +#: guix/scripts/challenge.scm:165 +#, scheme-format +msgid " ~50a: unavailable~%" +msgstr " ~50a: nicht verfügbar~%" + +#: guix/scripts/challenge.scm:175 +msgid "" +"Usage: guix challenge [PACKAGE...]\n" +"Challenge the substitutes for PACKAGE... provided by one or more servers.\n" +msgstr "" + +#: guix/scripts/challenge.scm:177 +msgid "" +"\n" +" --substitute-urls=URLS\n" +" compare build results with those at URLS" +msgstr "" + +#: guix/gnu-maintenance.scm:418 +msgid "Updater for GNU packages" +msgstr "Aktualisierungswerkzeug für GNU-Pakete" -#: guix/gnu-maintenance.scm:373 +#: guix/upstream.scm:156 #, scheme-format msgid "signature verification failed for `~a'~%" msgstr "Verifizierung der Signatur fehlgeschlagen für »~a«~%" -#: guix/gnu-maintenance.scm:375 +#: guix/upstream.scm:158 #, scheme-format msgid "(could be because the public key is not in your keyring)~%" msgstr "(vielleicht befindet sich Ihr öffentlicher Schlüssel nicht im Schlüsselbund)~%" -#: guix/gnu-maintenance.scm:450 +#: guix/upstream.scm:190 +msgid "gz" +msgstr "gz" + +#: guix/upstream.scm:253 #, scheme-format msgid "~a: could not locate source file" msgstr "~a: Quelldatei konnte nicht gefunden werden" -#: guix/gnu-maintenance.scm:455 +#: guix/upstream.scm:258 #, scheme-format msgid "~a: ~a: no `version' field in source; skipping~%" msgstr "~a: ~a: kein »version«-Feld in der Quelle; wird übersprungen~%" -#: guix/ui.scm:135 +#: guix/ui.scm:234 +msgid "entering debugger; type ',bt' for a backtrace\n" +msgstr "" + +#: guix/ui.scm:250 guix/ui.scm:267 +#, scheme-format +msgid "failed to load '~a': ~a~%" +msgstr "»~a« konnte nicht geladen werden: ~a~%" + +#: guix/ui.scm:253 +#, scheme-format +msgid "~a: error: ~a~%" +msgstr "~a: Fehler: ~a~%" + +#: guix/ui.scm:256 guix/ui.scm:510 +#, scheme-format +msgid "exception thrown: ~s~%" +msgstr "" + +#: guix/ui.scm:258 guix/ui.scm:276 +#, scheme-format +msgid "failed to load '~a':~%" +msgstr "»~a« konnte nicht geladen werden:~%" + +#: guix/ui.scm:270 +#, scheme-format +msgid "~a: warning: ~a~%" +msgstr "~a: Warnung: ~a~%" + +#: guix/ui.scm:273 +#, scheme-format +msgid "failed to load '~a': exception thrown: ~s~%" +msgstr "" + +#: guix/ui.scm:285 #, scheme-format msgid "failed to install locale: ~a~%" msgstr "Locale konnte nicht installiert werden: ~a~%" -#: guix/ui.scm:154 +#: guix/ui.scm:304 msgid "" -"Copyright (C) 2014 the Guix authors\n" +"Copyright (C) 2015 the Guix authors\n" "License GPLv3+: GNU GPL version 3 or later \n" "This is free software: you are free to change and redistribute it.\n" "There is NO WARRANTY, to the extent permitted by law.\n" msgstr "" -"Copyright (C) 2014 Die Guix-Autoren\n" +"Copyright (C) 2015 Die Guix-Autoren\n" "Lizenz GPLv3+: GNU GPL Version 3 oder neuer \n" "Dies ist freie Software: Sie können Sie ändern und weitergeben.\n" "Es gibt keine Garantie, soweit gesetzlich zulässig.\n" -#: guix/ui.scm:162 +#: guix/ui.scm:312 #, scheme-format msgid "" "\n" @@ -998,7 +1729,7 @@ msgstr "" "\n" "Melden Sie Fehler an: ~a." -#: guix/ui.scm:164 +#: guix/ui.scm:314 #, scheme-format msgid "" "\n" @@ -1007,7 +1738,7 @@ msgstr "" "\n" "~a Homepage: <~a>" -#: guix/ui.scm:166 +#: guix/ui.scm:316 msgid "" "\n" "General help using GNU software: " @@ -1015,160 +1746,219 @@ msgstr "" "\n" "Allgemeine Hilfe zu GNU-Software: " -#: guix/ui.scm:173 +#: guix/ui.scm:361 +#, scheme-format +msgid "'~a' is not a valid regular expression: ~a~%" +msgstr "»~a« ist kein gültiger regulärer Ausdruck: ~a~%" + +#: guix/ui.scm:367 #, scheme-format msgid "~a: invalid number~%" msgstr "~a: ungültige Zahl~%" -#: guix/ui.scm:190 +#: guix/ui.scm:384 #, scheme-format msgid "invalid number: ~a~%" msgstr "Ungültige Zahl: ~a~%" -#: guix/ui.scm:213 +#: guix/ui.scm:407 #, scheme-format msgid "unknown unit: ~a~%" msgstr "Unbekannte Einheit: ~a~%" -#: guix/ui.scm:224 +#: guix/ui.scm:418 #, scheme-format msgid "~a:~a:~a: package `~a' has an invalid input: ~s~%" msgstr "" -#: guix/ui.scm:231 +#: guix/ui.scm:425 #, scheme-format msgid "~a: ~a: build system `~a' does not support cross builds~%" msgstr "" -#: guix/ui.scm:236 +#: guix/ui.scm:430 #, scheme-format msgid "profile '~a' does not exist~%" msgstr "Profil »~a« existiert nicht~%" -#: guix/ui.scm:239 +#: guix/ui.scm:433 #, scheme-format msgid "generation ~a of profile '~a' does not exist~%" msgstr "Generation ~a des Profils »~a« existiert nicht~%" -#: guix/ui.scm:243 +#: guix/ui.scm:440 +#, scheme-format +msgid "corrupt input while restoring '~a' from ~s~%" +msgstr "Beschädigte Eingabe, während »~a« aus »~s« wiederhergestellt wurde~%" + +#: guix/ui.scm:442 +#, scheme-format +msgid "corrupt input while restoring archive from ~s~%" +msgstr "Beschädigte Eingabe, während das Archiv aus »~s« wiederhergestellt wurde~%" + +#: guix/ui.scm:445 #, scheme-format msgid "failed to connect to `~a': ~a~%" msgstr "Verbindung zu »~a« fehlgeschlagen: ~a~%" -#: guix/ui.scm:248 +#: guix/ui.scm:450 #, scheme-format msgid "build failed: ~a~%" msgstr "Erstellung fehlgeschlagen: ~a~%" -#: guix/ui.scm:277 +#: guix/ui.scm:453 +#, scheme-format +msgid "reference to invalid output '~a' of derivation '~a'~%" +msgstr "" + +#: guix/ui.scm:464 +#, scheme-format +msgid "~a: ~a~%" +msgstr "~a: ~a~%" + +#: guix/ui.scm:499 #, scheme-format msgid "failed to read expression ~s: ~s~%" msgstr "Ausdruck ~s konnte nicht gelesen werden: ~s~%" -#: guix/ui.scm:283 +#: guix/ui.scm:505 +#, scheme-format +msgid "failed to evaluate expression '~a':~%" +msgstr "Ausdruck »~a« kann nicht ausgewertet werden:~%" + +#: guix/ui.scm:508 #, scheme-format -msgid "failed to evaluate expression `~a': ~s~%" -msgstr "Ausdruck »~a« kann nicht ausgewertet werden: ~s~%" +msgid "syntax error: ~a~%" +msgstr "Syntaxfehler: ~a~%" -#: guix/ui.scm:292 +#: guix/ui.scm:522 #, scheme-format msgid "expression ~s does not evaluate to a package~%" -msgstr "" +msgstr "Ausdruck ~s ergibt kein Paket~%" -#: guix/ui.scm:339 +#: guix/ui.scm:582 #, scheme-format msgid "~:[The following derivation would be built:~%~{ ~a~%~}~;~]" msgid_plural "~:[The following derivations would be built:~%~{ ~a~%~}~;~]" msgstr[0] "" msgstr[1] "" -#: guix/ui.scm:344 +#: guix/ui.scm:587 #, scheme-format msgid "~:[The following file would be downloaded:~%~{ ~a~%~}~;~]" msgid_plural "~:[The following files would be downloaded:~%~{ ~a~%~}~;~]" msgstr[0] "" msgstr[1] "" -#: guix/ui.scm:350 +#: guix/ui.scm:593 #, scheme-format msgid "~:[The following derivation will be built:~%~{ ~a~%~}~;~]" msgid_plural "~:[The following derivations will be built:~%~{ ~a~%~}~;~]" msgstr[0] "" msgstr[1] "" -#: guix/ui.scm:355 +#: guix/ui.scm:598 #, scheme-format msgid "~:[The following file will be downloaded:~%~{ ~a~%~}~;~]" msgid_plural "~:[The following files will be downloaded:~%~{ ~a~%~}~;~]" msgstr[0] "~:[Die folgende Datei wird heruntergeladen:~%~{ ~a~%~}~;~]" msgstr[1] "~:[Die folgenden Dateien werden heruntergeladen:~%~{ ~a~%~}~;~]" -#: guix/ui.scm:407 +#: guix/ui.scm:653 #, scheme-format msgid "The following package would be removed:~%~{~a~%~}~%" msgid_plural "The following packages would be removed:~%~{~a~%~}~%" msgstr[0] "Das folgende Paket würde entfernt werden:~%~{~a~%~}~%" msgstr[1] "Die folgenden Pakete würden entfernt werden:~%~{~a~%~}~%" -#: guix/ui.scm:412 +#: guix/ui.scm:658 #, scheme-format msgid "The following package will be removed:~%~{~a~%~}~%" msgid_plural "The following packages will be removed:~%~{~a~%~}~%" msgstr[0] "Das folgende Paket würde entfernt werden:~%~{~a~%~}~%" msgstr[1] "Die folgenden Pakete würden entfernt werden:~%~{~a~%~}~%" -#: guix/ui.scm:425 +#: guix/ui.scm:671 +#, scheme-format +msgid "The following package would be downgraded:~%~{~a~%~}~%" +msgid_plural "The following packages would be downgraded:~%~{~a~%~}~%" +msgstr[0] "Die Version des folgenden Pakets würde heruntergestuft werden:~%~{~a~%~}~%" +msgstr[1] "Die Version der folgenden Pakete würde heruntergestuft werden:~%~{~a~%~}~%" + +#: guix/ui.scm:676 +#, scheme-format +msgid "The following package will be downgraded:~%~{~a~%~}~%" +msgid_plural "The following packages will be downgraded:~%~{~a~%~}~%" +msgstr[0] "Die Version des folgenden Pakets wird heruntergestuft:~%~{~a~%~}~%" +msgstr[1] "Die Version der folgenden Pakete wird heruntergestuft:~%~{~a~%~}~%" + +#: guix/ui.scm:689 #, scheme-format msgid "The following package would be upgraded:~%~{~a~%~}~%" msgid_plural "The following packages would be upgraded:~%~{~a~%~}~%" msgstr[0] "Das folgende Paket würde aktualisiert werden:~%~{~a~%~}~%" msgstr[1] "Die folgenden Pakete würden aktualisiert werden:~%~{~a~%~}~%" -#: guix/ui.scm:430 +#: guix/ui.scm:694 #, scheme-format msgid "The following package will be upgraded:~%~{~a~%~}~%" msgid_plural "The following packages will be upgraded:~%~{~a~%~}~%" msgstr[0] "Das folgende Paket wird aktualisiert:~%~{~a~%~}~%" msgstr[1] "Die folgenden Pakete werden aktualisiert:~%~{~a~%~}~%" -#: guix/ui.scm:441 +#: guix/ui.scm:705 #, scheme-format msgid "The following package would be installed:~%~{~a~%~}~%" msgid_plural "The following packages would be installed:~%~{~a~%~}~%" msgstr[0] "Das folgende Paket würde installiert werden:~%~{~a~%~}~%" msgstr[1] "Die folgenden Pakete würden installiert werden:~%~{~a~%~}~%" -#: guix/ui.scm:446 +#: guix/ui.scm:710 #, scheme-format msgid "The following package will be installed:~%~{~a~%~}~%" msgid_plural "The following packages will be installed:~%~{~a~%~}~%" msgstr[0] "Das folgende Paket wird installiert:~%~{~a~%~}~%" msgstr[1] "Die folgenden Pakete werden installiert:~%~{~a~%~}~%" -#: guix/ui.scm:463 +#: guix/ui.scm:727 msgid "" msgstr "" -#: guix/ui.scm:489 +#: guix/ui.scm:746 #, scheme-format msgid "failed to create configuration directory `~a': ~a~%" msgstr "Konfigurationsverzeichnis »~a« konnte nicht angelegt werden: ~a~%" -#: guix/ui.scm:589 guix/ui.scm:603 +#: guix/ui.scm:865 guix/ui.scm:879 msgid "unknown" msgstr "unbekannt" -#: guix/ui.scm:712 +#: guix/ui.scm:1029 #, scheme-format -msgid "invalid argument: ~a~%" -msgstr "Ungültiges Argument: ~a~%" +msgid "Generation ~a\t~a" +msgstr "Generation ~a\t~a" -#: guix/ui.scm:717 +#: guix/ui.scm:1036 +#, scheme-format +msgid "~a\t(current)~%" +msgstr "~a\t(aktuell)~%" + +#: guix/ui.scm:1053 +#, scheme-format +msgid "switched from generation ~a to ~a~%" +msgstr "Von Generation »~a« zu »~a« gewechselt~%" + +#: guix/ui.scm:1069 +#, scheme-format +msgid "deleting ~a~%" +msgstr "~a wird gelöscht~%" + +#: guix/ui.scm:1117 #, scheme-format msgid "Try `guix --help' for more information.~%" msgstr "Rufen Sie »guix --help« auf, um weitere Informationen zu erhalten.~%" -#: guix/ui.scm:747 +#: guix/ui.scm:1144 msgid "" "Usage: guix COMMAND ARGS...\n" "Run COMMAND with ARGS.\n" @@ -1176,41 +1966,31 @@ msgstr "" "Aufruf: guix BEFEHL ARGUMENTE …\n" "BEFEHL mit ARGUMENTEN ausführen.\n" -#: guix/ui.scm:750 +#: guix/ui.scm:1147 msgid "COMMAND must be one of the sub-commands listed below:\n" msgstr "BEFEHL muss einer der unten aufgelisteten Unterbefehle sein:\n" -#: guix/ui.scm:770 +#: guix/ui.scm:1167 #, scheme-format msgid "guix: ~a: command not found~%" msgstr "guix: ~a: Befehl nicht gefunden~%" -#: guix/ui.scm:788 +#: guix/ui.scm:1184 #, scheme-format msgid "guix: missing command name~%" msgstr "guix: Befehlsname fehlt~%" -#: guix/ui.scm:796 +#: guix/ui.scm:1192 #, scheme-format msgid "guix: unrecognized option '~a'~%" msgstr "guix: nicht erkannte Option »~a«~%" -#: guix/http-client.scm:217 -#, scheme-format -msgid "using Guile ~a, which does not support ~s encoding~%" -msgstr "Guile ~a wird verwendet, welches die Zeichenkodierung ~s nicht unterstützt~%" - -#: guix/http-client.scm:220 -#, scheme-format -msgid "download failed; use a newer Guile~%" -msgstr "Herunterladen fehlgeschlagen, verwenden Sie ein neueres Guile~%" - -#: guix/http-client.scm:232 +#: guix/http-client.scm:228 #, scheme-format msgid "following redirection to `~a'...~%" msgstr "Weiterleitung zu »~a« wird gefolgt …~%" -#: guix/http-client.scm:241 +#: guix/http-client.scm:237 msgid "download failed" msgstr "Herunterladen fehlgeschlagen" @@ -1243,18 +2023,134 @@ msgstr "" msgid "importing file or directory '~a'...~%" msgstr "Datei oder Verzeichnis »~a« wird importiert …~%" -#: guix/nar.scm:220 +#: guix/nar.scm:222 #, scheme-format msgid "found valid signature for '~a'~%" msgstr "Gültige Signatur für »~a« gefunden~%" -#: guix/nar.scm:227 +#: guix/nar.scm:229 msgid "imported file lacks a signature" msgstr "Der importierten Datei fehlt eine Signatur" -#: guix/nar.scm:266 +#: guix/nar.scm:268 msgid "invalid inter-file archive mark" msgstr "" -#~ msgid "unsupported file type" -#~ msgstr "Nicht unterstützter Dateityp" +#: nix/nix-daemon/guix-daemon.cc:61 +msgid "guix-daemon -- perform derivation builds and store accesses" +msgstr "" + +#: nix/nix-daemon/guix-daemon.cc:63 +msgid "This program is a daemon meant to run in the background. It serves requests sent over a Unix-domain socket. It accesses the store, and builds derivations on behalf of its clients." +msgstr "" + +#: nix/nix-daemon/guix-daemon.cc:86 +msgid "SYSTEM" +msgstr "SYSTEM" + +#: nix/nix-daemon/guix-daemon.cc:87 +msgid "assume SYSTEM as the current system type" +msgstr "SYSTEM als aktuellen Systemtyp annehmen" + +#: nix/nix-daemon/guix-daemon.cc:88 nix/nix-daemon/guix-daemon.cc:91 +msgid "N" +msgstr "N" + +#: nix/nix-daemon/guix-daemon.cc:89 +msgid "use N CPU cores to build each derivation; 0 means as many as available" +msgstr "" + +#: nix/nix-daemon/guix-daemon.cc:92 +msgid "allow at most N build jobs" +msgstr "" + +#: nix/nix-daemon/guix-daemon.cc:94 +msgid "disable chroot builds" +msgstr "" + +#: nix/nix-daemon/guix-daemon.cc:95 +msgid "DIR" +msgstr "VERZ" + +#: nix/nix-daemon/guix-daemon.cc:96 +msgid "add DIR to the build chroot" +msgstr "" + +#: nix/nix-daemon/guix-daemon.cc:97 +msgid "GROUP" +msgstr "GRUPPE" + +#: nix/nix-daemon/guix-daemon.cc:98 +msgid "perform builds as a user of GROUP" +msgstr "" + +#: nix/nix-daemon/guix-daemon.cc:100 +msgid "do not use substitutes" +msgstr "" + +#: nix/nix-daemon/guix-daemon.cc:101 +msgid "URLS" +msgstr "URLS" + +#: nix/nix-daemon/guix-daemon.cc:102 +msgid "use URLS as the default list of substitute providers" +msgstr "" + +#: nix/nix-daemon/guix-daemon.cc:104 +msgid "do not use the 'build hook'" +msgstr "" + +#: nix/nix-daemon/guix-daemon.cc:106 +msgid "cache build failures" +msgstr "" + +#: nix/nix-daemon/guix-daemon.cc:108 +msgid "do not keep build logs" +msgstr "Erstellungsprotokolle nicht behalten" + +#: nix/nix-daemon/guix-daemon.cc:110 +msgid "disable compression of the build logs" +msgstr "" + +#: nix/nix-daemon/guix-daemon.cc:115 +msgid "disable automatic file \"deduplication\" in the store" +msgstr "" + +#: nix/nix-daemon/guix-daemon.cc:125 +msgid "impersonate Linux 2.6" +msgstr "" + +#: nix/nix-daemon/guix-daemon.cc:129 +msgid "tell whether the GC must keep outputs of live derivations" +msgstr "" + +#: nix/nix-daemon/guix-daemon.cc:132 +msgid "tell whether the GC must keep derivations corresponding to live outputs" +msgstr "" + +#: nix/nix-daemon/guix-daemon.cc:135 +msgid "SOCKET" +msgstr "SOCKET" + +#: nix/nix-daemon/guix-daemon.cc:136 +msgid "listen for connections on SOCKET" +msgstr "" + +#: nix/nix-daemon/guix-daemon.cc:138 +msgid "produce debugging output" +msgstr "" + +#: nix/nix-daemon/guix-daemon.cc:205 nix/nix-daemon/guix-daemon.cc:381 +#, c-format +msgid "error: %s\n" +msgstr "Fehler: %s\n" + +#: nix/nix-daemon/guix-daemon.cc:266 +#, c-format +msgid "error: libgcrypt version mismatch\n" +msgstr "Fehler: libgcrypt-Version passt nicht\n" + +#: nix/nix-daemon/guix-daemon.cc:357 +#, c-format +msgid "warning: daemon is running as root, so using `--build-users-group' is highly recommended\n" +msgstr "" -- cgit v1.2.3 From 590558953b4fb514b8157a48a89bae3af3121fa0 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 30 Nov 2015 13:46:31 +0100 Subject: guix package: Formalize the list of actions. * guix/scripts/package.scm (roll-back-action, switch-generation-action) (delete-generations-action, manifest-action): New procedures. (%actions): New variable. * guix/scripts/package.scm (guix-package)[process-action]: Rewrite to traverse %ACTIONS. --- guix/scripts/package.scm | 145 ++++++++++++++++++++++++++--------------------- 1 file changed, 81 insertions(+), 64 deletions(-) diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm index 12a57efdab..6cf0b02ac3 100644 --- a/guix/scripts/package.scm +++ b/guix/scripts/package.scm @@ -624,6 +624,11 @@ doesn't need it." (add-indirect-root store absolute)) + +;;; +;;; Queries and actions. +;;; + (define (process-query opts) "Process any query specified by OPTS. Return #t when a query was actually processed, #f otherwise." @@ -729,6 +734,58 @@ processed, #f otherwise." (_ #f)))) + +(define* (roll-back-action store profile arg opts + #:key dry-run?) + "Roll back PROFILE to its previous generation." + (unless dry-run? + (roll-back* store profile))) + +(define* (switch-generation-action store profile spec opts + #:key dry-run?) + "Switch PROFILE to the generation specified by SPEC." + (unless dry-run? + (let* ((number (string->number spec)) + (number (and number + (case (string-ref spec 0) + ((#\+ #\-) + (relative-generation profile number)) + (else number))))) + (if number + (switch-to-generation* profile number) + (leave (_ "cannot switch to generation '~a'~%") spec))))) + +(define* (delete-generations-action store profile pattern opts + #:key dry-run?) + "Delete PROFILE's generations that match PATTERN." + (unless dry-run? + (delete-matching-generations store profile pattern))) + +(define* (manifest-action store profile file opts + #:key dry-run?) + "Change PROFILE to contain the packages specified in FILE." + (let* ((user-module (make-user-module '((guix profiles) (gnu)))) + (manifest (load* file user-module)) + (bootstrap? (assoc-ref opts 'bootstrap?)) + (substitutes? (assoc-ref opts 'substitutes?))) + (if dry-run? + (format #t (_ "would install new manifest from '~a' with ~d entries~%") + file (length (manifest-entries manifest))) + (format #t (_ "installing new manifest from '~a' with ~d entries~%") + file (length (manifest-entries manifest)))) + (build-and-use-profile store profile manifest + #:bootstrap? bootstrap? + #:use-substitutes? substitutes? + #:dry-run? dry-run?))) + +(define %actions + ;; List of actions that may be processed. The car of each pair is the + ;; action's symbol in the option list; the cdr is the action's procedure. + `((roll-back? . ,roll-back-action) + (switch-generation . ,switch-generation-action) + (delete-generations . ,delete-generations-action) + (manifest . ,manifest-action))) + ;;; ;;; Entry point. @@ -749,70 +806,30 @@ processed, #f otherwise." (define substitutes? (assoc-ref opts 'substitutes?)) (define profile (or (assoc-ref opts 'profile) %current-profile)) - ;; First roll back if asked to. - (cond ((and (assoc-ref opts 'roll-back?) - (not dry-run?)) - (roll-back* (%store) profile) - (process-actions (alist-delete 'roll-back? opts))) - ((and (assoc-ref opts 'switch-generation) - (not dry-run?)) - (for-each - (match-lambda - (('switch-generation . pattern) - (let* ((number (string->number pattern)) - (number (and number - (case (string-ref pattern 0) - ((#\+ #\-) - (relative-generation profile number)) - (else number))))) - (if number - (switch-to-generation* profile number) - (leave (_ "cannot switch to generation '~a'~%") - pattern))) - (process-actions (alist-delete 'switch-generation opts))) - (_ #f)) - opts)) - ((and (assoc-ref opts 'delete-generations) - (not dry-run?)) - (for-each - (match-lambda - (('delete-generations . pattern) - (delete-matching-generations (%store) profile pattern) - - (process-actions - (alist-delete 'delete-generations opts))) - (_ #f)) - opts)) - ((assoc-ref opts 'manifest) - (let* ((file-name (assoc-ref opts 'manifest)) - (user-module (make-user-module '((guix profiles) - (gnu)))) - (manifest (load* file-name user-module))) - (if dry-run? - (format #t (_ "would install new manifest from '~a' with ~d entries~%") - file-name (length (manifest-entries manifest))) - (format #t (_ "installing new manifest from '~a' with ~d entries~%") - file-name (length (manifest-entries manifest)))) - (build-and-use-profile (%store) profile manifest - #:bootstrap? bootstrap? - #:use-substitutes? substitutes? - #:dry-run? dry-run?))) - (else - (let* ((manifest (profile-manifest profile)) - (install (options->installable opts manifest)) - (remove (options->removable opts manifest)) - (transaction (manifest-transaction (install install) - (remove remove))) - (new (manifest-perform-transaction - manifest transaction))) - - (unless (and (null? install) (null? remove)) - (show-manifest-transaction (%store) manifest transaction - #:dry-run? dry-run?) - (build-and-use-profile (%store) profile new - #:bootstrap? bootstrap? - #:use-substitutes? substitutes? - #:dry-run? dry-run?)))))) + ;; First, process roll-backs, generation removals, etc. + (for-each (match-lambda + ((key . arg) + (and=> (assoc-ref %actions key) + (lambda (proc) + (proc (%store) profile arg opts + #:dry-run? dry-run?))))) + opts) + + ;; Then, process normal package installation/removal/upgrade. + (let* ((manifest (profile-manifest profile)) + (install (options->installable opts manifest)) + (remove (options->removable opts manifest)) + (transaction (manifest-transaction (install install) + (remove remove))) + (new (manifest-perform-transaction manifest transaction))) + + (unless (and (null? install) (null? remove)) + (show-manifest-transaction (%store) manifest transaction + #:dry-run? dry-run?) + (build-and-use-profile (%store) profile new + #:bootstrap? bootstrap? + #:use-substitutes? substitutes? + #:dry-run? dry-run?)))) (let ((opts (parse-command-line args %options (list %default-options #f) #:argument-handler handle-argument))) -- cgit v1.2.3 From dfdb15d9c2badaebfd6a047b303b687ff251256a Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 30 Nov 2015 20:54:25 +0200 Subject: build: Fix detection of ARM systems. Reported by Andreas Enge . This fixes a regression introduced in 968ae903. * m4/guix.m4 (GUIX_SYSTEM_TYPE): Add extra square braquets around armv[7-9] pattern. --- m4/guix.m4 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/m4/guix.m4 b/m4/guix.m4 index 8e1cfa037c..1e5985b30b 100644 --- a/m4/guix.m4 +++ b/m4/guix.m4 @@ -51,7 +51,7 @@ AC_DEFUN([GUIX_SYSTEM_TYPE], [ machine_name="i686";; amd64) machine_name="x86_64";; - arm|armv[7-9]*) + arm|armv[[7-9]]*) # Here we want to exclude CPUs such as "armv6l". On ARMv7 # machines, we normally get "armv7l". However, in Guix, we # configure with --build=arm-unknown-linux-gnueabihf, leading -- cgit v1.2.3 From 6e370175065732313c1badd10fc7e3d22de41bec Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 30 Nov 2015 21:18:11 +0200 Subject: guix package: Move 'process-actions' out of sight. * guix/scripts/package.scm (process-actions): New procedure, moved from... (guix-package): ... here. Adjust accordingly. --- guix/scripts/package.scm | 68 ++++++++++++++++++++++++------------------------ 1 file changed, 34 insertions(+), 34 deletions(-) diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm index 6cf0b02ac3..5f65ed949d 100644 --- a/guix/scripts/package.scm +++ b/guix/scripts/package.scm @@ -786,6 +786,39 @@ processed, #f otherwise." (delete-generations . ,delete-generations-action) (manifest . ,manifest-action))) +(define (process-actions store opts) + "Process any install/remove/upgrade action from OPTS." + + (define dry-run? (assoc-ref opts 'dry-run?)) + (define bootstrap? (assoc-ref opts 'bootstrap?)) + (define substitutes? (assoc-ref opts 'substitutes?)) + (define profile (or (assoc-ref opts 'profile) %current-profile)) + + ;; First, process roll-backs, generation removals, etc. + (for-each (match-lambda + ((key . arg) + (and=> (assoc-ref %actions key) + (lambda (proc) + (proc store profile arg opts + #:dry-run? dry-run?))))) + opts) + + ;; Then, process normal package installation/removal/upgrade. + (let* ((manifest (profile-manifest profile)) + (install (options->installable opts manifest)) + (remove (options->removable opts manifest)) + (transaction (manifest-transaction (install install) + (remove remove))) + (new (manifest-perform-transaction manifest transaction))) + + (unless (and (null? install) (null? remove)) + (show-manifest-transaction store manifest transaction + #:dry-run? dry-run?) + (build-and-use-profile store profile new + #:bootstrap? bootstrap? + #:use-substitutes? substitutes? + #:dry-run? dry-run?)))) + ;;; ;;; Entry point. @@ -798,39 +831,6 @@ processed, #f otherwise." (arg-handler arg result) (leave (_ "~A: extraneous argument~%") arg))) - (define (process-actions opts) - ;; Process any install/remove/upgrade action from OPTS. - - (define dry-run? (assoc-ref opts 'dry-run?)) - (define bootstrap? (assoc-ref opts 'bootstrap?)) - (define substitutes? (assoc-ref opts 'substitutes?)) - (define profile (or (assoc-ref opts 'profile) %current-profile)) - - ;; First, process roll-backs, generation removals, etc. - (for-each (match-lambda - ((key . arg) - (and=> (assoc-ref %actions key) - (lambda (proc) - (proc (%store) profile arg opts - #:dry-run? dry-run?))))) - opts) - - ;; Then, process normal package installation/removal/upgrade. - (let* ((manifest (profile-manifest profile)) - (install (options->installable opts manifest)) - (remove (options->removable opts manifest)) - (transaction (manifest-transaction (install install) - (remove remove))) - (new (manifest-perform-transaction manifest transaction))) - - (unless (and (null? install) (null? remove)) - (show-manifest-transaction (%store) manifest transaction - #:dry-run? dry-run?) - (build-and-use-profile (%store) profile new - #:bootstrap? bootstrap? - #:use-substitutes? substitutes? - #:dry-run? dry-run?)))) - (let ((opts (parse-command-line args %options (list %default-options #f) #:argument-handler handle-argument))) (with-error-handling @@ -844,4 +844,4 @@ processed, #f otherwise." (if (assoc-ref opts 'bootstrap?) %bootstrap-guile (canonical-package guile-2.0))))) - (process-actions opts))))))) + (process-actions (%store) opts))))))) -- cgit v1.2.3 From 27b91d7851859c1c82e891fafc4a326b71fbf88d Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 30 Nov 2015 22:00:39 +0200 Subject: guix package: Refactor 'options->installable'. * guix/scripts/package.scm (options->upgrade-predicate) (store-item->manifest-entry): New procedures. * guix/scripts/package.scm (options->installable): Use them. Remove the 'packages-to-upgrade' and 'packages-to-install' variables by getting rid of a level of indirection. --- guix/scripts/package.scm | 119 +++++++++++++++++++++-------------------------- 1 file changed, 54 insertions(+), 65 deletions(-) diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm index 5f65ed949d..c62daee9a7 100644 --- a/guix/scripts/package.scm +++ b/guix/scripts/package.scm @@ -510,87 +510,76 @@ kind of search path~%") %standard-build-options)) -(define (options->installable opts manifest) - "Given MANIFEST, the current manifest, and OPTS, the result of 'args-fold', -return the new list of manifest entries." - (define (package->manifest-entry* package output) - (check-package-freshness package) - ;; When given a package via `-e', install the first of its - ;; outputs (XXX). - (package->manifest-entry package output)) - +(define (options->upgrade-predicate opts) + "Return a predicate based on the upgrade/do-not-upgrade regexps in OPTS +that, given a package name, returns true if the package is a candidate for +upgrading, #f otherwise." (define upgrade-regexps (filter-map (match-lambda - (('upgrade . regexp) - (make-regexp* (or regexp ""))) - (_ #f)) + (('upgrade . regexp) + (make-regexp* (or regexp ""))) + (_ #f)) opts)) (define do-not-upgrade-regexps (filter-map (match-lambda - (('do-not-upgrade . regexp) - (make-regexp* regexp)) - (_ #f)) + (('do-not-upgrade . regexp) + (make-regexp* regexp)) + (_ #f)) opts)) - (define packages-to-upgrade - (match upgrade-regexps - (() - '()) - ((_ ...) - (filter-map (match-lambda - (($ name version output path _) - (and (any (cut regexp-exec <> name) - upgrade-regexps) - (not (any (cut regexp-exec <> name) - do-not-upgrade-regexps)) - (upgradeable? name version path) - (let ((output (or output "out"))) - (call-with-values - (lambda () - (specification->package+output name output)) - list)))) - (_ #f)) - (manifest-entries manifest))))) + (lambda (name) + (and (any (cut regexp-exec <> name) upgrade-regexps) + (not (any (cut regexp-exec <> name) do-not-upgrade-regexps))))) + +(define (store-item->manifest-entry item) + "Return a manifest entry for ITEM, a \"/gnu/store/...\" file name." + (let-values (((name version) + (package-name->name+version (store-path-package-name item)))) + (manifest-entry + (name name) + (version version) + (output #f) + (item item)))) + +(define (options->installable opts manifest) + "Given MANIFEST, the current manifest, and OPTS, the result of 'args-fold', +return the new list of manifest entries." + (define (package->manifest-entry* package output) + (check-package-freshness package) + (package->manifest-entry package output)) + + (define upgrade? + (options->upgrade-predicate opts)) (define to-upgrade - (map (match-lambda - ((package output) - (package->manifest-entry* package output))) - packages-to-upgrade)) + (filter-map (match-lambda + (($ name version output path _) + (and (upgrade? name) + (upgradeable? name version path) + (let ((output (or output "out"))) + (call-with-values + (lambda () + (specification->package+output name output)) + package->manifest-entry*)))) + (_ #f)) + (manifest-entries manifest))) - (define packages-to-install + (define to-install (filter-map (match-lambda - (('install . (? package? p)) - (list p "out")) - (('install . (? string? spec)) - (and (not (store-path? spec)) + (('install . (? package? p)) + ;; When given a package via `-e', install the first of its + ;; outputs (XXX). + (package->manifest-entry* p "out")) + (('install . (? string? spec)) + (if (store-path? spec) + (store-item->manifest-entry spec) (let-values (((package output) (specification->package+output spec))) - (and package (list package output))))) - (_ #f)) + (package->manifest-entry* package output)))) + (_ #f)) opts)) - (define to-install - (append (map (match-lambda - ((package output) - (package->manifest-entry* package output))) - packages-to-install) - (filter-map (match-lambda - (('install . (? package?)) - #f) - (('install . (? store-path? path)) - (let-values (((name version) - (package-name->name+version - (store-path-package-name path)))) - (manifest-entry - (name name) - (version version) - (output #f) - (item path)))) - (_ #f)) - opts))) - (append to-upgrade to-install)) (define (options->removable options manifest) -- cgit v1.2.3 From 64ec0e291209ea6c0fb98204e7b546479c6ab737 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 30 Nov 2015 23:07:35 +0200 Subject: guix build: Modularize transformation handling. * guix/scripts/build.scm (options/resolve-packages): Remove. (options->things-to-build, transform-package-source): New procedure. (%transformations): New variable. (options->transformation): New procedure. (options->derivations): Rewrite to use 'options->things-to-build' and 'options->transformation'. --- guix/scripts/build.scm | 207 ++++++++++++++++++++++++++----------------------- 1 file changed, 111 insertions(+), 96 deletions(-) diff --git a/guix/scripts/build.scm b/guix/scripts/build.scm index b415403473..192ed5cd45 100644 --- a/guix/scripts/build.scm +++ b/guix/scripts/build.scm @@ -383,9 +383,40 @@ must be one of 'package', 'all', or 'transitive'~%") %standard-build-options)) +(define (options->things-to-build opts) + "Read the arguments from OPTS and return a list of high-level objects to +build---packages, gexps, derivations, and so on." + (define ensure-list + (match-lambda + ((x ...) x) + (x (list x)))) + + (append-map (match-lambda + (('argument . (? string? spec)) + (cond ((derivation-path? spec) + (list (call-with-input-file spec read-derivation))) + ((store-path? spec) + ;; Nothing to do; maybe for --log-file. + '()) + (else + (list (specification->package spec))))) + (('file . file) + (ensure-list (load* file (make-user-module '())))) + (('expression . str) + (ensure-list (read/eval str))) + (('argument . (? derivation? drv)) + drv) + (('argument . (? derivation-path? drv)) + (list )) + (_ '())) + opts)) + (define (options->derivations store opts) "Given OPTS, the result of 'args-fold', return a list of derivations to build." + (define transform + (options->transformation opts)) + (define package->derivation (match (assoc-ref opts 'target) (#f package-derivation) @@ -393,106 +424,90 @@ build." (cut package-cross-derivation <> <> triplet <>)))) (define src (assoc-ref opts 'source)) - (define sys (assoc-ref opts 'system)) + (define system (assoc-ref opts 'system)) (define graft? (assoc-ref opts 'graft?)) (parameterize ((%graft? graft?)) - (let ((opts (options/with-source store - (options/resolve-packages store opts)))) - (concatenate - (filter-map (match-lambda - (('argument . (? package? p)) - (match src - (#f - (list (package->derivation store p sys))) - (#t - (let ((s (package-source p))) - (list (package-source-derivation store s)))) - (proc - (map (cut package-source-derivation store <>) - (proc p))))) - (('argument . (? derivation? drv)) - (list drv)) - (('argument . (? derivation-path? drv)) - (list (call-with-input-file drv read-derivation))) - (('argument . (? store-path?)) - ;; Nothing to do; maybe for --log-file. - #f) - (_ #f)) - opts))))) - -(define (options/resolve-packages store opts) - "Return OPTS with package specification strings replaced by actual -packages." - (define system - (or (assoc-ref opts 'system) (%current-system))) - - (define (object->argument obj) - (match obj - ((? package? p) - `(argument . ,p)) - ((? procedure? proc) - (let ((drv (run-with-store store - (mbegin %store-monad - (set-guile-for-build (default-guile)) - (proc)) - #:system system))) - `(argument . ,drv))) - ((? gexp? gexp) - (let ((drv (run-with-store store - (mbegin %store-monad - (set-guile-for-build (default-guile)) - (gexp->derivation "gexp" gexp - #:system system))))) - `(argument . ,drv))))) - - (map (match-lambda - (('argument . (? string? spec)) - (if (store-path? spec) - `(argument . ,spec) - `(argument . ,(specification->package spec)))) - (('file . file) - (object->argument (load* file (make-user-module '())))) - (('expression . str) - (object->argument (read/eval str))) - (opt opt)) - opts)) - -(define (options/with-source store opts) - "Process with 'with-source' options in OPTS, replacing the relevant package -arguments with packages that use the specified source." + (append-map (match-lambda + ((? package? p) + (match src + (#f + (list (package->derivation store p system))) + (#t + (let ((s (package-source p))) + (list (package-source-derivation store s)))) + (proc + (map (cut package-source-derivation store <>) + (proc p))))) + ((? derivation? drv) + (list drv)) + ((? procedure? proc) + (list (run-with-store store + (mbegin %store-monad + (set-guile-for-build (default-guile)) + (proc)) + #:system system))) + ((? gexp? gexp) + (list (run-with-store store + (mbegin %store-monad + (set-guile-for-build (default-guile)) + (gexp->derivation "gexp" gexp + #:system system)))))) + (transform store (options->things-to-build opts))))) + +(define (transform-package-source sources) + "Return a transformation procedure that uses replaces package sources with +the matching URIs given in SOURCES." (define new-sources - (filter-map (match-lambda - (('with-source . uri) - (cons (package-name->name+version (basename uri)) - uri)) - (_ #f)) - opts)) - - (let loop ((opts opts) - (sources new-sources) - (result '())) - (match opts - (() - (unless (null? sources) - (warning (_ "sources do not match any package:~{ ~a~}~%") - (match sources - (((name . uri) ...) - uri)))) - (reverse result)) - ((('argument . (? package? p)) tail ...) - (let ((source (assoc-ref sources (package-name p)))) - (loop tail - (alist-delete (package-name p) sources) - (alist-cons 'argument - (if source - (package-with-source store p source) - p) - result)))) - ((('with-source . _) tail ...) - (loop tail sources result)) - ((head tail ...) - (loop tail sources (cons head result)))))) + (map (lambda (uri) + (cons (package-name->name+version (basename uri)) + uri)) + sources)) + + (lambda (store packages) + (let loop ((packages packages) + (sources new-sources) + (result '())) + (match packages + (() + (unless (null? sources) + (warning (_ "sources do not match any package:~{ ~a~}~%") + (match sources + (((name . uri) ...) + uri)))) + (reverse result)) + (((? package? p) tail ...) + (let ((source (assoc-ref sources (package-name p)))) + (loop tail + (alist-delete (package-name p) sources) + (cons (if source + (package-with-source store p source) + p) + result)))) + ((thing tail ...) + (loop tail sources result)))))) + +(define %transformations + ;; Transformations that can be applied to things to build. The car is the + ;; key used in the option alist, and the cdr is the transformation + ;; procedure; it is called with two arguments: the store, and a list of + ;; things to build. + `((with-source . ,transform-package-source))) + +(define (options->transformation opts) + "Return a procedure that, when passed a list of things to build (packages, +derivations, etc.), applies the transformations specified by OPTS." + (apply compose + (map (match-lambda + ((key . transform) + (let ((args (filter-map (match-lambda + ((k . arg) + (and (eq? k key) arg))) + opts))) + (if (null? args) + (lambda (store things) things) + (transform args))))) + %transformations))) (define (show-build-log store file urls) "Show the build log for FILE, falling back to remote logs from URLS if -- cgit v1.2.3 From df372f96a37b80f16aa8c851228ccf0008da84c0 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 1 Dec 2015 10:26:06 +0200 Subject: gnu: enlightenment: Update to 0.20.0. * gnu/packages/enlightenment.scm (enlightenment): Update to 0.20.0. [arguments]: Add '--enable-mount-eeze' to configure-flags. --- gnu/packages/enlightenment.scm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gnu/packages/enlightenment.scm b/gnu/packages/enlightenment.scm index d28a29ce45..6224a2a527 100644 --- a/gnu/packages/enlightenment.scm +++ b/gnu/packages/enlightenment.scm @@ -271,7 +271,7 @@ Libraries with some extra bells and whistles.") (define-public enlightenment (package (name "enlightenment") - (version "0.19.13") + (version "0.20.0") (source (origin (method url-fetch) (uri @@ -279,8 +279,10 @@ Libraries with some extra bells and whistles.") name "/" name "-" version ".tar.xz")) (sha256 (base32 - "1kl9r3amvgrb283b7d9wn5p4aqz9v9ba9xz25cdyfa28fkmfdayd")))) + "0mwiim0nv640v3af7qxc5ajfk702qkl5c1cnqlhz6rqzr5yjapxv")))) (build-system gnu-build-system) + (arguments + `(#:configure-flags '("--enable-mount-eeze"))) (native-inputs `(("pkg-config" ,pkg-config))) (inputs -- cgit v1.2.3 From d4e817b1dbb7d59b3115ce7836c505fa5a40f90b Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 1 Dec 2015 14:02:48 +0200 Subject: gnu: python-mox3: Update to 0.12.0. * gnu/packages/openstack.scm (python-mox3): Update to 0.12.0. [source]: Change uri to pypi format. --- gnu/packages/openstack.scm | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm index 1ff32f256a..a0bb1c6f0f 100644 --- a/gnu/packages/openstack.scm +++ b/gnu/packages/openstack.scm @@ -138,17 +138,14 @@ guidelines}.") (define-public python-mox3 (package (name "python-mox3") - (version "0.8.0") + (version "0.12.0") (source (origin (method url-fetch) - (uri (string-append - "https://pypi.python.org/packages/source/m/mox3/mox3-" - version - ".tar.gz")) + (uri (pypi-uri "mox3" version)) (sha256 (base32 - "1dwj9lkifdqvrcympqa47bj55l0n0j9jhzv2gj03h0dpzg6mgfkj")))) + "1pwz98q098cb8xxf8yryq21nvklc7hla880bsrq4y3j6bprw3iaj")))) (build-system python-build-system) (inputs `(("python-fixtures" ,python-fixtures) -- cgit v1.2.3 From 56c7ead2f855a52e95dc8a340285b89c76224dfc Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 1 Dec 2015 14:37:16 +0200 Subject: gnu: python-debtcollector: Update to 1.0.0. * gnu/packages/openstack.scm (python-debtcollector): Update to 1.0.0. [source]: Change uri to pypi format. --- gnu/packages/openstack.scm | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm index a0bb1c6f0f..aa5910d146 100644 --- a/gnu/packages/openstack.scm +++ b/gnu/packages/openstack.scm @@ -69,16 +69,14 @@ all the files it generates a report.") (define-public python-debtcollector (package (name "python-debtcollector") - (version "0.5.0") + (version "1.0.0") (source (origin (method url-fetch) - (uri (string-append - "https://pypi.python.org/packages/source/d/debtcollector/" - "debtcollector-" version ".tar.gz")) + (uri (pypi-uri "debtcollector" version)) (sha256 (base32 - "0amlcg5f98lk2mfzdg44slh1nsi2y4ds123g5d57376fjk2b3njd")))) + "0g4dfskaiy47rhsh4gh66l5vmdsrgq0qk68pl3ix1cj3ffvfndzv")))) (build-system python-build-system) (propagated-inputs `(("python-six" ,python-six) -- cgit v1.2.3 From a5ff52f8a65381f5b516adcf1ef0629f7539882f Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 1 Dec 2015 14:47:18 +0200 Subject: gnu: python-os-client-config: Update to 1.12.0. * gnu/packages/openstack.scm (python-os-client-config): Update to 1.12.0. [source]: Change uri to pypi format. --- gnu/packages/openstack.scm | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm index aa5910d146..5c0692728d 100644 --- a/gnu/packages/openstack.scm +++ b/gnu/packages/openstack.scm @@ -163,17 +163,14 @@ tested on Python version 3.2, 2.7 and 2.6.") (define-public python-os-client-config (package (name "python-os-client-config") - (version "1.4.0") + (version "1.12.0") (source (origin (method url-fetch) - (uri (string-append - "https://pypi.python.org/packages/source/o/os-client-config/os-client-config-" - version - ".tar.gz")) + (uri (pypi-uri "os-client-config" version)) (sha256 (base32 - "14png6ml3zbbilh8bihav24f8vig9lyijwynnjcvazdxxrzvwq9j")))) + "1vjn7667pswnmpqv6ngwyqm2xn46w90hi5b4pv2grwfz751cn1lf")))) (build-system python-build-system) (arguments `(#:tests? #f)) ;; Circular dependency with python-oslotest -- cgit v1.2.3 From bd52842d3d6e2450a909a6f4dc775ee03bb0c6dc Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 1 Dec 2015 15:01:42 +0200 Subject: gnu: python-requests-mock: Update to 0.7.0. * gnu/packages/openstack.scm (python-requests-mock): Update to 0.7.0. [source]: Change uri to pypi format. --- gnu/packages/openstack.scm | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm index 5c0692728d..6911ca59f3 100644 --- a/gnu/packages/openstack.scm +++ b/gnu/packages/openstack.scm @@ -278,16 +278,14 @@ and sensible default behaviors into your setuptools run.") (define-public python-requests-mock (package (name "python-requests-mock") - (version "0.6.0") + (version "0.7.0") (source (origin (method url-fetch) - (uri (string-append - "https://pypi.python.org/packages/source/r/requests-mock/" - "requests-mock-" version ".tar.gz")) + (uri (pypi-uri "requests-mock" version)) (sha256 (base32 - "0gmd88c224y53b1ai8cfsrcxm9kw3gdqzysclmnaqspg7zjhxwd1")))) + "0s6mrpiv2w0km39qvl1pq2d56xblnm57p369qdp5j1a55ncica7f")))) (build-system python-build-system) (propagated-inputs `(("python-requests" ,python-requests) -- cgit v1.2.3 From 2d531d4efd8262a4d0ab0a1b2a225512c8890bec Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 1 Dec 2015 15:11:56 +0200 Subject: gnu: python-stevedore: Update to 1.9.0. * gnu/packages/openstack.scm (python-stevedore): Update to 1.9.0. [source]: Change uri to pypi format. --- gnu/packages/openstack.scm | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm index 6911ca59f3..88d6def6a1 100644 --- a/gnu/packages/openstack.scm +++ b/gnu/packages/openstack.scm @@ -307,17 +307,14 @@ portions of your testing code.") (define-public python-stevedore (package (name "python-stevedore") - (version "1.7.0") + (version "1.9.0") (source (origin (method url-fetch) - (uri (string-append - "https://pypi.python.org/packages/source/s/stevedore/stevedore-" - version - ".tar.gz")) + (uri (pypi-uri "stevedore" version)) (sha256 (base32 - "149pjc0c3z6khjisn4yil3f94qjnzwafz093wc8rrzbw828qdkv8")))) + "01pcrdqsb6ca7hmqwm11b3baj6ml8yz9pxawrgvxb3j9824906fc")))) (build-system python-build-system) (propagated-inputs `(("python-six" ,python-six))) -- cgit v1.2.3 From 3bc810a89b35a6469539ec1efa301b96a54a0a81 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 1 Dec 2015 15:16:48 +0200 Subject: gnu: python-tempest-lib: Update to 0.11.0. * gnu/packages/openstack.scm (python-tempest-lib): Update to 0.11.0. --- gnu/packages/openstack.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm index 88d6def6a1..065a70d7f6 100644 --- a/gnu/packages/openstack.scm +++ b/gnu/packages/openstack.scm @@ -345,14 +345,14 @@ extensions.") (define-public python-tempest-lib (package (name "python-tempest-lib") - (version "0.9.0") + (version "0.11.0") (source (origin (method url-fetch) (uri (pypi-uri "tempest-lib" version)) (sha256 (base32 - "1s32rpxw86p41ip9nr7zbqxd60mw1cqz2isirby36rh4vl68bfhx")))) + "1q4wpqcg0yv99mr5gc43wsfirlqdjz90npyghy3mn5f6lby2yikg")))) (build-system python-build-system) (arguments `(#:phases -- cgit v1.2.3 From e9af5adfd513fb3b775c692d1e5cab4c9f07551c Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 1 Dec 2015 17:33:29 +0200 Subject: gnu: python-oslo.context: Update to 1.0.0. * gnu/packages/openstack.scm (python-oslo.context): Update to 1.0.0. [source]: Change uri to pypi format. --- gnu/packages/openstack.scm | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm index 065a70d7f6..d6a1b7320b 100644 --- a/gnu/packages/openstack.scm +++ b/gnu/packages/openstack.scm @@ -428,16 +428,14 @@ common features used in Tempest.") (define-public python-oslo.context (package (name "python-oslo.context") - (version "0.6.0") + (version "1.0.0") (source (origin (method url-fetch) - (uri (string-append - "https://pypi.python.org/packages/source/o/oslo.context/" - "oslo.context-" version ".tar.gz")) + (uri (pypi-uri "oslo.context" version)) (sha256 (base32 - "16wr9qrkc3lb94ssb14qid4liza66x316fvzjw0izg67h1a0fm86")))) + "0kvha0rs9295njyl2z6n6zm5dapi5mrl5zwjm0m6ldqrvccyf8c3")))) (build-system python-build-system) (inputs `(("python-babel" ,python-babel) -- cgit v1.2.3 From 5788b4b6d1b4ec94db4fb51ac08a797c85bdd92c Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 1 Dec 2015 18:14:56 +0200 Subject: gnu: python-oslo.i18n: Update to 3.0.0. * gnu/packages/openstack.scm (python-oslo.i18n): Update to 3.0.0. [source]: Change uri to pypi format. --- gnu/packages/openstack.scm | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm index d6a1b7320b..3797c1d63c 100644 --- a/gnu/packages/openstack.scm +++ b/gnu/packages/openstack.scm @@ -457,17 +457,14 @@ pipeline and used by various modules such as logging.") (define-public python-oslo.i18n (package (name "python-oslo.i18n") - (version "2.5.0") + (version "3.0.0") (source (origin (method url-fetch) - (uri (string-append - "https://pypi.python.org/packages/source/o/oslo.i18n/oslo.i18n-" - version - ".tar.gz")) + (uri (pypi-uri "oslo.i18n" version)) (sha256 (base32 - "1kg72mqldlri3x0bhxai7j979czrd7mf8s3iflvvv0x9kn9ah4cw")))) + "0bpb1c20sm8my650gl824nzaip83bfn8hr91s65k5ncmyh8hb6pl")))) (build-system python-build-system) (propagated-inputs `(("python-babel" ,python-babel) -- cgit v1.2.3 From 278c0efd0a362e04dfd691e7cc627cf738b55ecd Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 1 Dec 2015 19:13:25 +0200 Subject: gnu: python-oslo.serialization: Update to 2.0.0. * gnu/packages/openstack.scm (python-oslo.serialization): Update to 2.0.0. [source]: Change uri to pypi format. --- gnu/packages/openstack.scm | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm index 3797c1d63c..ddd09b929e 100644 --- a/gnu/packages/openstack.scm +++ b/gnu/packages/openstack.scm @@ -532,16 +532,14 @@ handlers and support for context specific logging (like resource id’s etc).") (define-public python-oslo.serialization (package (name "python-oslo.serialization") - (version "1.9.0") + (version "2.0.0") (source (origin (method url-fetch) - (uri (string-append - "https://pypi.python.org/packages/source/o/oslo.serialization/" - "oslo.serialization-" version ".tar.gz")) + (uri (pypi-uri "oslo.serialization" version)) (sha256 (base32 - "00qaxg155s61ylh4fqc7m5fh0gijf33khhai9xvcsc9k106i3c9c")))) + "1hnkc69sa4r1qhx6hdwlrk2ng7wypgwr063iq5r815a0bv0qr1ad")))) (build-system python-build-system) (propagated-inputs `(("python-iso8601" ,python-iso8601) -- cgit v1.2.3 From 94ce6b495992a3924b1930953bd6dfe41ef6ab62 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 1 Dec 2015 19:52:08 +0200 Subject: gnu: python-oslo.utils: Update to 3.0.0. * gnu/packages/openstack.scm (python-oslo.utils): Update to 3.0.0. [source]: Change uri to pypi format. --- gnu/packages/openstack.scm | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm index ddd09b929e..2578292fd0 100644 --- a/gnu/packages/openstack.scm +++ b/gnu/packages/openstack.scm @@ -637,17 +637,14 @@ and better support for mocking results.") (define-public python-oslo.utils (package (name "python-oslo.utils") - (version "2.5.0") + (version "3.0.0") (source (origin (method url-fetch) - (uri (string-append - "https://pypi.python.org/packages/source/o/oslo.utils/oslo.utils-" - version - ".tar.gz")) + (uri (pypi-uri "oslo.utils" version)) (sha256 (base32 - "11b073gblhzkxhi1j6sqk3apq2ll8xhi9h9g9kxzx9dycqdq0qp0")) + "1c4jrbvfs4hs37fics8frqlyhmsv7v92ncv2cpbm0av9x0ic6pnj")) (snippet '(begin ;; FIXME: setuptools fails to import this file during the test -- cgit v1.2.3 From b850a6d82d83bc2b529435c72ea8724c7995c61e Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 1 Dec 2015 20:55:06 +0200 Subject: gnu: python-babel: Update to 2.1.1. * gnu/packages/python.scm (python-babel): Update to 2.1.1. [source]: Change uri to pypi format. --- gnu/packages/python.scm | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index cd19462fa2..2901951091 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -597,15 +597,14 @@ using Python 2.4 or higher and provides access to the Olson timezone database.") (define-public python-babel (package (name "python-babel") - (version "1.3") + (version "2.1.1") (source (origin (method url-fetch) - (uri (string-append "https://pypi.python.org/packages/source/B/Babel/Babel-" - version ".tar.gz")) + (uri (pypi-uri "Babel" version)) (sha256 (base32 - "0bnin777lc53nxd1hp3apq410jj5wx92n08h7h4izpl4f4sx00lz")))) + "0j2jgfzj1a2m39pm2qc36fzr7a6p5ybwndi0xdzhi2p8zw7dbdkz")))) (build-system python-build-system) (inputs `(("python-pytz" ,python-pytz) -- cgit v1.2.3 From b6ab89efb2442f1537bf931541310e0da768916f Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 1 Dec 2015 21:10:55 +0200 Subject: gnu: python-six: Update to 1.10.0. * gnu/packages/python.scm (python-six): Update to 1.10.0. [source]: Change uri to pypi format. --- gnu/packages/python.scm | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 2901951091..d8d7d0c9ba 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -882,15 +882,14 @@ password storage.") (define-public python-six (package (name "python-six") - (version "1.9.0") + (version "1.10.0") (source (origin (method url-fetch) - (uri (string-append "https://pypi.python.org/packages/source/s/" - "six/six-" version ".tar.gz")) + (uri (pypi-uri "six" version)) (sha256 (base32 - "1mci5i8mjqmljmv33h0q3d4djc13zk1kfmb3fbvd3yy43x0m4h72")))) + "0snmb8xffb3vsma0z67i0h0w2g2dy0p3gsgh9gi4i0kgc5l8spqh")))) (build-system python-build-system) (inputs `(("python-setuptools" ,python-setuptools))) -- cgit v1.2.3 From 85dce718cb8acaffa8f961a5784588936147debd Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 1 Dec 2015 23:15:19 +0100 Subject: import: pypi: Updater silently ignores packages without source. Reported by Andreas Enge at . * guix/import/pypi.scm (&missing-source-error): New error type. (latest-source-release): Raise it instead of using 'error'. (pypi->guix-package): Guard against it and use 'leave' to report the error. (latest-release): Guard against it and return #f when caught. --- guix/import/pypi.scm | 55 ++++++++++++++++++++++++++++++++-------------------- 1 file changed, 34 insertions(+), 21 deletions(-) diff --git a/guix/import/pypi.scm b/guix/import/pypi.scm index 7ca0cc991e..d54bb9fbba 100644 --- a/guix/import/pypi.scm +++ b/guix/import/pypi.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 David Thompson ;;; Copyright © 2015 Cyril Roelandt +;;; Copyright © 2015 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -25,6 +26,8 @@ #:use-module ((ice-9 rdelim) #:select (read-line)) #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) + #:use-module (srfi srfi-34) + #:use-module (srfi srfi-35) #:use-module (rnrs bytevectors) #:use-module (json) #:use-module (web uri) @@ -54,6 +57,11 @@ or #f on failure." (json-fetch (string-append "https://pypi.python.org/pypi/" name "/json"))))))) +;; For packages found on PyPI that lack a source distribution. +(define-condition-type &missing-source-error &error + missing-source-error? + (package missing-source-error-package)) + (define (latest-source-release pypi-package) "Return the latest source release for PYPI-PACKAGE." (let ((releases (assoc-ref* pypi-package "releases" @@ -61,9 +69,8 @@ or #f on failure." (or (find (lambda (release) (string=? "sdist" (assoc-ref release "packagetype"))) releases) - (error "No source release found for pypi package: " - (assoc-ref* pypi-package "info" "name") - (assoc-ref* pypi-package "info" "version"))))) + (raise (condition (&missing-source-error + (package pypi-package))))))) (define (python->package-name name) "Given the NAME of a package on PyPI, return a Guix-compliant name for the @@ -203,15 +210,20 @@ VERSION, SOURCE-URL, HOME-PAGE, SYNOPSIS, DESCRIPTION, and LICENSE." `package' s-expression corresponding to that package, or #f on failure." (let ((package (pypi-fetch package-name))) (and package - (let ((name (assoc-ref* package "info" "name")) - (version (assoc-ref* package "info" "version")) - (release (assoc-ref (latest-source-release package) "url")) - (synopsis (assoc-ref* package "info" "summary")) - (description (assoc-ref* package "info" "summary")) - (home-page (assoc-ref* package "info" "home_page")) - (license (string->license (assoc-ref* package "info" "license")))) - (make-pypi-sexp name version release home-page synopsis - description license))))) + (guard (c ((missing-source-error? c) + (let ((package (missing-source-error-package c))) + (leave (_ "no source release for pypi package ~a ~a~%") + (assoc-ref* package "info" "name") + (assoc-ref* package "info" "version"))))) + (let ((name (assoc-ref* package "info" "name")) + (version (assoc-ref* package "info" "version")) + (release (assoc-ref (latest-source-release package) "url")) + (synopsis (assoc-ref* package "info" "summary")) + (description (assoc-ref* package "info" "summary")) + (home-page (assoc-ref* package "info" "home_page")) + (license (string->license (assoc-ref* package "info" "license")))) + (make-pypi-sexp name version release home-page synopsis + description license)))))) (define (pypi-package? package) "Return true if PACKAGE is a Python package from PyPI." @@ -230,15 +242,16 @@ VERSION, SOURCE-URL, HOME-PAGE, SYNOPSIS, DESCRIPTION, and LICENSE." (define (latest-release guix-package) "Return an for the latest release of GUIX-PACKAGE." - (let* ((pypi-name (guix-package->pypi-name - (specification->package guix-package))) - (metadata (pypi-fetch pypi-name)) - (version (assoc-ref* metadata "info" "version")) - (url (assoc-ref (latest-source-release metadata) "url"))) - (upstream-source - (package guix-package) - (version version) - (urls (list url))))) + (guard (c ((missing-source-error? c) #f)) + (let* ((pypi-name (guix-package->pypi-name + (specification->package guix-package))) + (metadata (pypi-fetch pypi-name)) + (version (assoc-ref* metadata "info" "version")) + (url (assoc-ref (latest-source-release metadata) "url"))) + (upstream-source + (package guix-package) + (version version) + (urls (list url)))))) (define %pypi-updater (upstream-updater -- cgit v1.2.3 From 59eef6f284ce2930acec49319a0d3e836fcf7c9f Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 2 Dec 2015 13:27:53 +0200 Subject: gnu: libbluray: Update to 0.9.2. * gnu/packages/video.scm (libbluray): Update to 0.9.2. --- gnu/packages/video.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index f4c15790b1..e5b9994241 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -831,7 +831,7 @@ YouTube.com and a few more sites.") (define-public libbluray (package (name "libbluray") - (version "0.9.0") + (version "0.9.2") (source (origin (method url-fetch) (uri (string-append "http://download.videolan.org/videolan/" @@ -839,7 +839,7 @@ YouTube.com and a few more sites.") name "-" version ".tar.bz2")) (sha256 (base32 - "0kb9znxk6610vi0fjhqxn4z5i98nvxlsz1f8dakj99rg42livdl4")))) + "1sp71j4agcsg17g6b85cqz78pn5vknl5pl39rvr6mkib5ps99jgg")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--disable-bdjava"))) (native-inputs `(("pkg-config" ,pkg-config))) -- cgit v1.2.3 From 214ed6a39b05069b47a8d13a9f2c7f4243dddb40 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 2 Dec 2015 13:31:06 +0200 Subject: gnu: opus: Update to 1.1.1. * gnu/packages/xiph.scm (opus): Update to 1.1.1. --- gnu/packages/xiph.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/xiph.scm b/gnu/packages/xiph.scm index 705ebe1d73..6de0a2defb 100644 --- a/gnu/packages/xiph.scm +++ b/gnu/packages/xiph.scm @@ -5,6 +5,7 @@ ;;; Copyright © 2014 Sree Harsha Totakura ;;; Copyright © 2014 Mark H Weaver ;;; Copyright © 2015 Paul van der Walt +;;; Copyright © 2015 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -290,7 +291,7 @@ ogginfo, to obtain information (tags, bitrate, length, etc.) about (define opus (package (name "opus") - (version "1.1") + (version "1.1.1") (source (origin (method url-fetch) (uri (string-append @@ -298,7 +299,7 @@ ogginfo, to obtain information (tags, bitrate, length, etc.) about ".tar.gz")) (sha256 (base32 - "158xprn2086arvdib3vbbygz7z6jqkw2nci7nlywzzwallap0wmr")))) + "07iplfwim26b6k1bqjyciaqvihps9rk5gi8385axa83ppmbgz14v")))) (build-system gnu-build-system) (synopsis "Versatile audio codec") (description -- cgit v1.2.3 From 1bbc659fd2012fbe33b53783c838e84833c74496 Mon Sep 17 00:00:00 2001 From: Federico Beffa Date: Tue, 1 Dec 2015 17:20:59 +0100 Subject: gnu: python-matplotlib: Add 'TkAgg' backend and update to version '1.4.3'. * gnu/packages/python.scm (python-matplotlib, python2-matplotlib): Do it. * gnu/packages/patches/matplotlib-setupext-tk.patch: New file. * gnu-system.am (dist_patch_DATA): Add the new patch. --- gnu-system.am | 1 + gnu/packages/patches/matplotlib-setupext-tk.patch | 34 +++++++++++++++++++++++ gnu/packages/python.scm | 24 ++++++++++------ 3 files changed, 50 insertions(+), 9 deletions(-) create mode 100644 gnu/packages/patches/matplotlib-setupext-tk.patch diff --git a/gnu-system.am b/gnu-system.am index 4e068536a1..ee7fcc185b 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -611,6 +611,7 @@ dist_patch_DATA = \ gnu/packages/patches/make-impure-dirs.patch \ gnu/packages/patches/mars-install.patch \ gnu/packages/patches/mars-sfml-2.3.patch \ + gnu/packages/patches/matplotlib-setupext-tk.patch \ gnu/packages/patches/maxima-defsystem-mkdir.patch \ gnu/packages/patches/mc-fix-ncurses-build.patch \ gnu/packages/patches/mcron-install.patch \ diff --git a/gnu/packages/patches/matplotlib-setupext-tk.patch b/gnu/packages/patches/matplotlib-setupext-tk.patch new file mode 100644 index 0000000000..37c3d686e0 --- /dev/null +++ b/gnu/packages/patches/matplotlib-setupext-tk.patch @@ -0,0 +1,34 @@ +Use 'pkg-config' instead of heuristics to find 'tk' flags. + +--- matplotlib-1.4.3/setupext.py.orig 2015-12-01 14:21:19.554417453 +0100 ++++ matplotlib-1.4.3/setupext.py 2015-12-02 10:39:47.282363530 +0100 +@@ -1457,7 +1457,7 @@ + p = subprocess.Popen( + '. %s ; eval echo ${%s}' % (file, varname), + shell=True, +- executable="/bin/sh", ++ executable="sh", + stdout=subprocess.PIPE) + result = p.communicate()[0] + return result.decode('ascii') +@@ -1601,8 +1601,19 @@ + # of distros. + + # Query Tcl/Tk system for library paths and version string ++ def getoutput(s): ++ ret = os.popen(s).read().strip() ++ return ret + try: +- tcl_lib_dir, tk_lib_dir, tk_ver = self.query_tcltk() ++ pkg_config_libs = getoutput('pkg-config --libs-only-L tk').split() ++ # drop '-L' part of strings ++ pkg_config_libs = [s[2:] for s in pkg_config_libs] ++ pkg_config_ver = getoutput('pkg-config --modversion tk') ++ tk_ver = re.match(r"(\d+.\d+)[\d.]*", pkg_config_ver).group(1) ++ tcl_lib_dir = next(s for s in pkg_config_libs ++ if re.match(r".*-tcl-.*", s)) + '/tcl' + tk_ver ++ tk_lib_dir = next(s for s in pkg_config_libs ++ if re.match(r".*-tk-.*", s)) + '/tk' + tk_ver + except: + tk_ver = '' + result = self.hardcoded_tcl_config() diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index d8d7d0c9ba..f033cb1a79 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -3182,7 +3182,7 @@ transcendental functions).") (define-public python-matplotlib (package (name "python-matplotlib") - (version "1.4.2") + (version "1.4.3") (source (origin (method url-fetch) @@ -3190,13 +3190,15 @@ transcendental functions).") "/matplotlib-" version ".tar.gz")) (sha256 (base32 - "0m6v9nwdldlwk22gcd339zg6mny5m301fxgks7z8sb8m9wawg8qp")))) + "1dn05cvd0g984lzhh72wa0z93psgwshbbg93fkab6slx5m3l95av")) + (patches (list (search-patch "matplotlib-setupext-tk.patch"))))) (build-system python-build-system) (outputs '("out" "doc")) (propagated-inputs ; the following packages are all needed at run time `(("python-pyparsing" ,python-pyparsing) ("python-pygobject" ,python-pygobject) ("gobject-introspection" ,gobject-introspection) + ("python-tkinter" ,python "tk") ;; The 'gtk+' package (and 'gdk-pixbuf', 'atk' and 'pango' propagated ;; from 'gtk+') provides the required 'typelib' files used by ;; 'gobject-introspection'. The location of these files is set with the @@ -3231,7 +3233,8 @@ transcendental functions).") ;; FIXME: Add backends when available. ;("python-wxpython" ,python-wxpython) ;("python-pyqt" ,python-pyqt) - )) + ("tcl" ,tcl) + ("tk" ,tk))) (native-inputs `(("pkg-config" ,pkg-config) ("texlive" ,texlive) @@ -3250,8 +3253,12 @@ transcendental functions).") (setenv "HOME" (getcwd)) (call-with-output-file "setup.cfg" (lambda (port) - (format port "[rc_options]~% -backend = GTK3Agg~%"))))) + (format port "[directories]~% +basedirlist = ~a,~a~% +[rc_options]~% +backend = TkAgg~%" + (assoc-ref inputs "tcl") + (assoc-ref inputs "tk")))))) (alist-cons-after 'install 'install-doc (lambda* (#:key outputs #:allow-other-keys) @@ -3295,10 +3302,9 @@ toolkits.") (propagated-inputs `(("python2-pycairo" ,python2-pycairo) ("python2-pygobject-2" ,python2-pygobject-2) - ,@(alist-delete "python-pycairo" - (alist-delete "python-pygobject" - (package-propagated-inputs - matplotlib)))))))) + ("python2-tkinter" ,python-2 "tk") + ,@(fold alist-delete (package-propagated-inputs matplotlib) + '("python-pycairo" "python-pygobject" "python-tkinter"))))))) (define-public python2-pysnptools (package -- cgit v1.2.3 From 5d26e542ee624e764f9f273e45ea6f0fc718ecf7 Mon Sep 17 00:00:00 2001 From: Federico Beffa Date: Tue, 1 Dec 2015 17:41:32 +0100 Subject: gnu: python-ipython: Don't use the bootstrap version of 'python-numpy'. * gnu/packages/python.scm (python-ipython): Do it. --- gnu/packages/python.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index f033cb1a79..513910e5f6 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -4146,7 +4146,7 @@ without using the configuration machinery.") `(("readline" ,readline) ("which" ,which) ("python-matplotlib" ,python-matplotlib) - ("python-numpy" ,python-numpy-bootstrap) + ("python-numpy" ,python-numpy) ("python-numpydoc" ,python-numpydoc) ("python-jinja2" ,python-jinja2) ("python-mistune" ,python-mistune) -- cgit v1.2.3 From 18b3151613e90eb7b4e0d174069ccc9fbe99b721 Mon Sep 17 00:00:00 2001 From: Federico Beffa Date: Tue, 1 Dec 2015 22:03:48 +0100 Subject: gnu: python-matplotlib: Adjust path to figures in 'info' file. * gnu/packages/python.scm (python-matplotlib): Do it. --- gnu/packages/python.scm | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 513910e5f6..45222e9984 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -3276,13 +3276,23 @@ backend = TkAgg~%" ;; The doc recommends to run the 'html' target twice. (system* "python" "make.py" "html") (system* "python" "make.py" "html") + (copy-recursively "build/html" html) (system* "python" "make.py" "latex") (system* "python" "make.py" "texinfo") + (symlink (string-append html "/_images") + (string-append info "/matplotlib-figures")) + (with-directory-excursion "build/texinfo" + (substitute* "matplotlib.texi" + (("@image\\{([^,]*)" all file) + (string-append "@image{matplotlib-figures/" file))) + (symlink (string-append html "/_images") + "./matplotlib-figures") + (system* "makeinfo" "--no-split" + "-o" "matplotlib.info" "matplotlib.texi")) (copy-file "build/texinfo/matplotlib.info" (string-append info "/matplotlib.info")) (copy-file "build/latex/Matplotlib.pdf" - (string-append doc "/Matplotlib.pdf")) - (copy-recursively "build/html" html)))) + (string-append doc "/Matplotlib.pdf"))))) %standard-phases)))) (home-page "http://matplotlib.org") (synopsis "2D plotting library for Python") -- cgit v1.2.3 From 538684d0c42fdedfbd660840d3e66c783c9006ef Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Mon, 24 Aug 2015 11:13:31 +0200 Subject: daemon: Prevent .chroot from being GC'ed when using LocalStore::buildDerivation() Fixes #616. --- nix/libstore/build.cc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/nix/libstore/build.cc b/nix/libstore/build.cc index efe1ab2b17..ab33f57265 100644 --- a/nix/libstore/build.cc +++ b/nix/libstore/build.cc @@ -882,6 +882,10 @@ DerivationGoal::DerivationGoal(const Path & drvPath, const StringSet & wantedOut state = &DerivationGoal::init; name = (format("building of `%1%'") % drvPath).str(); trace("created"); + + /* Prevent the .chroot directory from being + garbage-collected. (See isActiveTempFile() in gc.cc.) */ + worker.store.addTempRoot(drvPath); } -- cgit v1.2.3 From 60c7c364f81309adb6e22e2cbf250669916b7d11 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Wed, 2 Sep 2015 14:54:12 +0200 Subject: daemon: Filter build-chroot-dirs entries that conflict with derivation outputs. Fixes https://github.com/NixOS/nixpkgs/issues/9504. Note that this means we may have a non-functional /bin/sh in the chroot while rebuilding Bash or one of its dependencies. Ideally those packages don't rely on /bin/sh though. --- nix/libstore/build.cc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/nix/libstore/build.cc b/nix/libstore/build.cc index ab33f57265..64678a5594 100644 --- a/nix/libstore/build.cc +++ b/nix/libstore/build.cc @@ -1870,13 +1870,13 @@ void DerivationGoal::startBuilder() } } - /* If we're repairing or checking, it's possible that we're + /* If we're repairing, checking or rebuilding part of a + multiple-outputs derivation, it's possible that we're rebuilding a path that is in settings.dirsInChroot (typically the dependencies of /bin/sh). Throw them out. */ - if (buildMode != bmNormal) - foreach (DerivationOutputs::iterator, i, drv.outputs) - dirsInChroot.erase(i->second.path); + for (auto & i : drv.outputs) + dirsInChroot.erase(i.second.path); #else throw Error("chroot builds are not supported on this platform"); -- cgit v1.2.3 From 79aa1a83054af1600ba235ddf305337b5df78271 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Wed, 2 Dec 2015 16:51:00 +0200 Subject: daemon: int2String -> std::to_string. --- nix/libutil/archive.cc | 2 +- nix/libutil/util.cc | 2 +- nix/libutil/util.hh | 7 ------- nix/nix-daemon/nix-daemon.cc | 18 +++++++++--------- 4 files changed, 11 insertions(+), 18 deletions(-) diff --git a/nix/libutil/archive.cc b/nix/libutil/archive.cc index 6856ea0f28..4e3d99356a 100644 --- a/nix/libutil/archive.cc +++ b/nix/libutil/archive.cc @@ -256,7 +256,7 @@ static void parse(ParseSink & sink, Source & source, const Path & path) if (i != names.end()) { printMsg(lvlDebug, format("case collision between `%1%' and `%2%'") % i->first % name); name += caseHackSuffix; - name += int2String(++i->second); + name += std::to_string(++i->second); } else names[name] = 0; } diff --git a/nix/libutil/util.cc b/nix/libutil/util.cc index 14026ab829..c07754487e 100644 --- a/nix/libutil/util.cc +++ b/nix/libutil/util.cc @@ -433,7 +433,7 @@ Nest::~Nest() static string escVerbosity(Verbosity level) { - return int2String((int) level); + return std::to_string((int) level); } diff --git a/nix/libutil/util.hh b/nix/libutil/util.hh index 24e16ba36a..8fa1efbf37 100644 --- a/nix/libutil/util.hh +++ b/nix/libutil/util.hh @@ -337,13 +337,6 @@ template bool string2Int(const string & s, N & n) return str && str.get() == EOF; } -template string int2String(N n) -{ - std::ostringstream str; - str << n; - return str.str(); -} - /* Return true iff `s' ends in `suffix'. */ bool hasSuffix(const string & s, const string & suffix); diff --git a/nix/nix-daemon/nix-daemon.cc b/nix/nix-daemon/nix-daemon.cc index 10159db62e..bd9eebe0a9 100644 --- a/nix/nix-daemon/nix-daemon.cc +++ b/nix/nix-daemon/nix-daemon.cc @@ -441,8 +441,8 @@ static void performOp(bool trusted, unsigned int clientVersion, startWork(); TunnelSource source(from); - /* Unlike Nix, always require a signature, even for "trusted" - users. */ + /* Unlike Nix, always require a signature, even for "trusted" + users. */ Paths paths = store->importPaths(true, source); stopWork(); writeStrings(paths, to); @@ -538,8 +538,8 @@ static void performOp(bool trusted, unsigned int clientVersion, settings.keepGoing = readInt(from) != 0; settings.set("build-fallback", readInt(from) ? "true" : "false"); verbosity = (Verbosity) readInt(from); - settings.set("build-max-jobs", int2String(readInt(from))); - settings.set("build-max-silent-time", int2String(readInt(from))); + settings.set("build-max-jobs", std::to_string(readInt(from))); + settings.set("build-max-silent-time", std::to_string(readInt(from))); if (GET_PROTOCOL_MINOR(clientVersion) >= 2) settings.useBuildHook = readInt(from) != 0; if (GET_PROTOCOL_MINOR(clientVersion) >= 4) { @@ -548,7 +548,7 @@ static void performOp(bool trusted, unsigned int clientVersion, settings.printBuildTrace = readInt(from) != 0; } if (GET_PROTOCOL_MINOR(clientVersion) >= 6) - settings.set("build-cores", int2String(readInt(from))); + settings.set("build-cores", std::to_string(readInt(from))); if (GET_PROTOCOL_MINOR(clientVersion) >= 10) settings.set("build-use-substitutes", readInt(from) ? "true" : "false"); if (GET_PROTOCOL_MINOR(clientVersion) >= 12) { @@ -819,7 +819,7 @@ static void daemonLoop() /* Handle socket-based activation by systemd. */ if (getEnv("LISTEN_FDS") != "") { - if (getEnv("LISTEN_PID") != int2String(getpid()) || getEnv("LISTEN_FDS") != "1") + if (getEnv("LISTEN_PID") != std::to_string(getpid()) || getEnv("LISTEN_FDS") != "1") throw Error("unexpected systemd environment variables"); fdSocket = SD_LISTEN_FDS_START; } @@ -906,10 +906,10 @@ static void daemonLoop() clientPid = cred.pid; struct passwd * pw = getpwuid(cred.uid); - string user = pw ? pw->pw_name : int2String(cred.uid); + string user = pw ? pw->pw_name : std::to_string(cred.uid); struct group * gr = getgrgid(cred.gid); - string group = gr ? gr->gr_name : int2String(cred.gid); + string group = gr ? gr->gr_name : std::to_string(cred.gid); Strings trustedUsers = settings.get("trusted-users", Strings({"root"})); Strings allowedUsers = settings.get("allowed-users", Strings({"*"})); @@ -937,7 +937,7 @@ static void daemonLoop() /* For debugging, stuff the pid into argv[1]. */ if (clientPid != -1 && argvSaved[1]) { - string processName = int2String(clientPid); + string processName = std::to_string(clientPid); strncpy(argvSaved[1], processName.c_str(), strlen(argvSaved[1])); } -- cgit v1.2.3 From 29d3242e5c428d3b0e8dc9db1c81cd4053e5271c Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Wed, 4 Nov 2015 16:31:06 +0100 Subject: daemon: Support SHA-512 hashes. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes #679. Note: on x86_64, SHA-512 is considerably faster than SHA-256 (198 MB/s versus 131 MB/s). Co-authored-by: Ludovic Courtès --- daemon.am | 3 ++- nix/libutil/hash.cc | 8 ++++++++ nix/libutil/hash.hh | 5 +++-- nix/libutil/sha512.h | 35 +++++++++++++++++++++++++++++++++++ 4 files changed, 48 insertions(+), 3 deletions(-) create mode 100644 nix/libutil/sha512.h diff --git a/daemon.am b/daemon.am index f75eef2e98..ca272a9cb6 100644 --- a/daemon.am +++ b/daemon.am @@ -69,7 +69,8 @@ libutil_headers = \ nix/libutil/gcrypt-hash.hh \ nix/libutil/md5.h \ nix/libutil/sha1.h \ - nix/libutil/sha256.h + nix/libutil/sha256.h \ + nix/libutil/sha512.h libutil_a_CPPFLAGS = \ -I$(top_builddir)/nix \ diff --git a/nix/libutil/hash.cc b/nix/libutil/hash.cc index 2da00a53de..ea69aa64f9 100644 --- a/nix/libutil/hash.cc +++ b/nix/libutil/hash.cc @@ -11,6 +11,7 @@ extern "C" { #include "md5.h" #include "sha1.h" #include "sha256.h" +#include "sha512.h" } #endif @@ -40,6 +41,7 @@ Hash::Hash(HashType type) if (type == htMD5) hashSize = md5HashSize; else if (type == htSHA1) hashSize = sha1HashSize; else if (type == htSHA256) hashSize = sha256HashSize; + else if (type == htSHA512) hashSize = sha512HashSize; else throw Error("unknown hash type"); assert(hashSize <= maxHashSize); memset(hash, 0, maxHashSize); @@ -199,6 +201,7 @@ struct Ctx MD5_CTX md5; SHA_CTX sha1; SHA256_CTX sha256; + SHA512_CTX sha512; }; @@ -207,6 +210,7 @@ static void start(HashType ht, Ctx & ctx) if (ht == htMD5) MD5_Init(&ctx.md5); else if (ht == htSHA1) SHA1_Init(&ctx.sha1); else if (ht == htSHA256) SHA256_Init(&ctx.sha256); + else if (ht == htSHA512) SHA512_Init(&ctx.sha512); } @@ -216,6 +220,7 @@ static void update(HashType ht, Ctx & ctx, if (ht == htMD5) MD5_Update(&ctx.md5, bytes, len); else if (ht == htSHA1) SHA1_Update(&ctx.sha1, bytes, len); else if (ht == htSHA256) SHA256_Update(&ctx.sha256, bytes, len); + else if (ht == htSHA512) SHA512_Update(&ctx.sha512, bytes, len); } @@ -224,6 +229,7 @@ static void finish(HashType ht, Ctx & ctx, unsigned char * hash) if (ht == htMD5) MD5_Final(hash, &ctx.md5); else if (ht == htSHA1) SHA1_Final(hash, &ctx.sha1); else if (ht == htSHA256) SHA256_Final(hash, &ctx.sha256); + else if (ht == htSHA512) SHA512_Final(hash, &ctx.sha512); } @@ -321,6 +327,7 @@ HashType parseHashType(const string & s) if (s == "md5") return htMD5; else if (s == "sha1") return htSHA1; else if (s == "sha256") return htSHA256; + else if (s == "sha512") return htSHA512; else return htUnknown; } @@ -330,6 +337,7 @@ string printHashType(HashType ht) if (ht == htMD5) return "md5"; else if (ht == htSHA1) return "sha1"; else if (ht == htSHA256) return "sha256"; + else if (ht == htSHA512) return "sha512"; else throw Error("cannot print unknown hash type"); } diff --git a/nix/libutil/hash.hh b/nix/libutil/hash.hh index 8f099c4f07..6b5e47cd8a 100644 --- a/nix/libutil/hash.hh +++ b/nix/libutil/hash.hh @@ -7,19 +7,20 @@ namespace nix { -typedef enum { htUnknown, htMD5, htSHA1, htSHA256 } HashType; +typedef enum { htUnknown, htMD5, htSHA1, htSHA256, htSHA512 } HashType; const int md5HashSize = 16; const int sha1HashSize = 20; const int sha256HashSize = 32; +const int sha512HashSize = 64; extern const string base32Chars; struct Hash { - static const unsigned int maxHashSize = 32; + static const unsigned int maxHashSize = 64; unsigned int hashSize; unsigned char hash[maxHashSize]; diff --git a/nix/libutil/sha512.h b/nix/libutil/sha512.h new file mode 100644 index 0000000000..d2abab4c5f --- /dev/null +++ b/nix/libutil/sha512.h @@ -0,0 +1,35 @@ +/* GNU Guix --- Functional package management for GNU + Copyright (C) 2012, 2015 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 . */ + +#include + +#define SHA512_CTX guix_hash_context + +static inline void +SHA512_Init (struct SHA512_CTX *ctx) +{ + guix_hash_init (ctx, GCRY_MD_SHA512); +} + +#define SHA512_Update guix_hash_update + +static inline void +SHA512_Final (void *resbuf, struct SHA512_CTX *ctx) +{ + guix_hash_final (resbuf, ctx, GCRY_MD_SHA512); +} -- cgit v1.2.3 From 14fb686a21d786afa699a38d20929a88be6e541d Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Mon, 9 Nov 2015 17:16:28 +0100 Subject: daemon: Fix namespace issue. --- nix/libutil/util.hh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nix/libutil/util.hh b/nix/libutil/util.hh index 8fa1efbf37..e84d64d10a 100644 --- a/nix/libutil/util.hh +++ b/nix/libutil/util.hh @@ -153,8 +153,8 @@ void printMsg_(Verbosity level, const FormatOrString & fs); #define printMsg(level, f) \ do { \ - if (level <= verbosity) { \ - printMsg_(level, (f)); \ + if (level <= nix::verbosity) { \ + nix::printMsg_(level, (f)); \ } \ } while (0) -- cgit v1.2.3 From e134baae774eaa78e7ae8c3d87db50170f023536 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Mon, 9 Nov 2015 20:48:09 +0100 Subject: daemon: optimizePath: Detect some .links corruptions. If automatic store optimisation is enabled, and a hard-linked file in the store gets corrupted, then the corresponding .links entry will also be corrupted. In that case, trying to repair with --repair or --repair-path won't work, because the new "good" file will be replaced by a hard link to the corrupted file. We can catch most of these cases by doing a sanity-check on the file sizes. --- nix/libstore/optimise-store.cc | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/nix/libstore/optimise-store.cc b/nix/libstore/optimise-store.cc index c62b8e451b..d7508b025e 100644 --- a/nix/libstore/optimise-store.cc +++ b/nix/libstore/optimise-store.cc @@ -120,7 +120,7 @@ void LocalStore::optimisePath_(OptimiseStats & stats, const Path & path, InodeHa return; } - /* This can still happen on top-level files */ + /* This can still happen on top-level files. */ if (st.st_nlink > 1 && inodeHash.count(st.st_ino)) { printMsg(lvlDebug, format("`%1%' is already linked, with %2% other file(s).") % path % (st.st_nlink - 2)); return; @@ -141,6 +141,7 @@ void LocalStore::optimisePath_(OptimiseStats & stats, const Path & path, InodeHa /* Check if this is a known hash. */ Path linkPath = linksDir + "/" + printHash32(hash); + retry: if (!pathExists(linkPath)) { /* Nope, create a hard link in the links directory. */ if (link(path.c_str(), linkPath.c_str()) == 0) { @@ -164,7 +165,13 @@ void LocalStore::optimisePath_(OptimiseStats & stats, const Path & path, InodeHa return; } - printMsg(lvlTalkative, format("linking `%1%' to `%2%'") % path % linkPath); + if (st.st_size != stLink.st_size) { + printMsg(lvlError, format("removing corrupted link ‘%1%’") % linkPath); + unlink(linkPath.c_str()); + goto retry; + } + + printMsg(lvlTalkative, format("linking ‘%1%’ to ‘%2%’") % path % linkPath); /* Make the containing directory writable, but only if it's not the store itself (we don't want or need to mess with its -- cgit v1.2.3 From 708d9070006fd46ffe4c2c3cf64154ea4430202a Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 2 Dec 2015 18:43:51 +0200 Subject: daemon: Add 'buildMode' parameter to 'buildPaths' RPC. * nix/libstore/worker-protocol.hh (PROTOCOL_VERSION): Bump to 0x10f. * nix/libstore/remote-store.cc (RemoteStore::buildPaths): Send the BUILDMODE when the daemon supports it. Reject invalid values of BUILDMODE for old daemons. * nix/nix-daemon/nix-daemon.cc (performOp) : Read the build mode when the client supports it. --- nix/libstore/remote-store.cc | 11 +++++++++-- nix/libstore/worker-protocol.hh | 2 +- nix/nix-daemon/nix-daemon.cc | 11 ++++++++++- 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/nix/libstore/remote-store.cc b/nix/libstore/remote-store.cc index 0539bbe127..324ef5eb30 100644 --- a/nix/libstore/remote-store.cc +++ b/nix/libstore/remote-store.cc @@ -462,11 +462,18 @@ Paths RemoteStore::importPaths(bool requireSignature, Source & source) void RemoteStore::buildPaths(const PathSet & drvPaths, BuildMode buildMode) { - if (buildMode != bmNormal) throw Error("repairing or checking is not supported when building through the Nix daemon"); openConnection(); writeInt(wopBuildPaths, to); - if (GET_PROTOCOL_MINOR(daemonVersion) >= 13) + if (GET_PROTOCOL_MINOR(daemonVersion) >= 13) { writeStrings(drvPaths, to); + if (GET_PROTOCOL_MINOR(daemonVersion) >= 15) { + writeInt(buildMode, to); + } + /* Old daemons did not take a 'buildMode' parameter, so we need to + validate it here on the client side. */ + else if (buildMode != bmNormal) throw Error("repairing or checking \ +is not supported when building through the Nix daemon"); + } else { /* For backwards compatibility with old daemons, strip output identifiers. */ diff --git a/nix/libstore/worker-protocol.hh b/nix/libstore/worker-protocol.hh index d037d7402e..7b7be4a8a0 100644 --- a/nix/libstore/worker-protocol.hh +++ b/nix/libstore/worker-protocol.hh @@ -6,7 +6,7 @@ namespace nix { #define WORKER_MAGIC_1 0x6e697863 #define WORKER_MAGIC_2 0x6478696f -#define PROTOCOL_VERSION 0x10e +#define PROTOCOL_VERSION 0x10f #define GET_PROTOCOL_MAJOR(x) ((x) & 0xff00) #define GET_PROTOCOL_MINOR(x) ((x) & 0x00ff) diff --git a/nix/nix-daemon/nix-daemon.cc b/nix/nix-daemon/nix-daemon.cc index bd9eebe0a9..c1e697bcac 100644 --- a/nix/nix-daemon/nix-daemon.cc +++ b/nix/nix-daemon/nix-daemon.cc @@ -451,8 +451,17 @@ static void performOp(bool trusted, unsigned int clientVersion, case wopBuildPaths: { PathSet drvs = readStorePaths(from); + BuildMode mode = bmNormal; + if (GET_PROTOCOL_MINOR(clientVersion) >= 15) { + mode = (BuildMode)readInt(from); + + /* Repairing is not atomic, so disallowed for "untrusted" + clients. */ + if (mode == bmRepair && !trusted) + throw Error("repairing is not supported when building through the Nix daemon"); + } startWork(); - store->buildPaths(drvs); + store->buildPaths(drvs, mode); stopWork(); writeInt(1, to); break; -- cgit v1.2.3 From 7e006b68990d45cae28f86d884b298c5f6221ad5 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 2 Dec 2015 20:01:54 +0200 Subject: gnu: freeipmpi: Update to 1.5.1. * gnu/packages/freeipmi.scm (freeipmi): Update to 1.5.1. --- gnu/packages/freeipmi.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/freeipmi.scm b/gnu/packages/freeipmi.scm index 6e2610409d..6cbad6b1b6 100644 --- a/gnu/packages/freeipmi.scm +++ b/gnu/packages/freeipmi.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013 Ludovic Courtès +;;; Copyright © 2015 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -27,14 +28,14 @@ (define-public freeipmi (package (name "freeipmi") - (version "1.4.11") + (version "1.5.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/freeipmi/freeipmi-" version ".tar.gz")) (sha256 (base32 - "0bkghpbj1zkxcgmx2crg0mf97y6dhnxdqvdk5mkw1pyqdxncwq3l")))) + "0lhjxlha4j5rx11d81y1rgp9j18rlpxsjc0flsmj6bm60awmm627")))) (build-system gnu-build-system) (inputs `(("readline" ,readline) ("libgcrypt" ,libgcrypt))) -- cgit v1.2.3 From 084e41c1ac0ba3d37426ef71ecf6e7dab0c1ffdb Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Wed, 2 Dec 2015 21:56:14 -0500 Subject: gnu: ffmpeg: Update to 2.8.3 [fixes CVE-2015-{8216,8217,8218,8219}]. * gnu/packages/video.scm (ffmpeg): Update to 2.8.3. --- gnu/packages/video.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index e5b9994241..80b21e0294 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -373,14 +373,14 @@ standards (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/VMW3).") (define-public ffmpeg (package (name "ffmpeg") - (version "2.8") + (version "2.8.3") (source (origin (method url-fetch) (uri (string-append "https://ffmpeg.org/releases/ffmpeg-" version ".tar.xz")) (sha256 (base32 - "10l1iwc01k1algk2v4vzsrahdvqjmjfi3qazm2cwism0d8hsfg4r")))) + "0jkhyv68aa7h3hf905ganwqbrflams3hs74in7ygxdfkcqw2xqhq")))) (build-system gnu-build-system) (inputs `(("fontconfig" ,fontconfig) -- cgit v1.2.3 From 5587253a8786beca5b270ac72cc68802b72b7539 Mon Sep 17 00:00:00 2001 From: Federico Beffa Date: Thu, 3 Dec 2015 08:38:44 +0100 Subject: gnu: python2-ipython: Use custom 'python2-numpy'. * gnu/packages/python.scm (python2-ipython): Do it. --- gnu/packages/python.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 45222e9984..71853dc721 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -4246,8 +4246,9 @@ computing.") (inputs `(("python2-mock" ,python2-mock) ("python2-matplotlib" ,python2-matplotlib) - ,@(alist-delete "python-matplotlib" - (package-inputs ipython))))))) + ("python2-numpy" ,python2-numpy) + ,@(fold alist-delete (package-inputs ipython) + '("python-matplotlib" "python-numpy"))))))) (define-public python-isodate (package -- cgit v1.2.3 From 3cbe7d5e52714410cf8b8ca58bfd37ff5ba525b8 Mon Sep 17 00:00:00 2001 From: Federico Beffa Date: Thu, 3 Dec 2015 08:52:46 +0100 Subject: gnu: python2-pandas: Use custom 'python2-numpy'. * gnu/packages/python.scm (python2-pandas): Do it. --- gnu/packages/python.scm | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 71853dc721..655d97db18 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -1016,7 +1016,12 @@ doing practical, real world data analysis in Python.") (license bsd-3))) (define-public python2-pandas - (package-with-python2 python-pandas)) + (let ((pandas (package-with-python2 python-pandas))) + (package (inherit pandas) + (propagated-inputs + `(("python2-numpy" ,python2-numpy) + ,@(alist-delete "python-numpy" + (package-propagated-inputs pandas))))))) (define-public python-tzlocal (package -- cgit v1.2.3 From d9bc0bf8fa3f305c49b1ea630ca10abff50b2149 Mon Sep 17 00:00:00 2001 From: Federico Beffa Date: Thu, 3 Dec 2015 09:11:58 +0100 Subject: gnu: python2-scikit-image: Use custom 'python2-' packages. * gnu/packages/python.scm (python2-scikit-image): Use customized 'python2-' versions of 'matplotlib', 'numpy' and 'scipy'. --- gnu/packages/python.scm | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 655d97db18..1cbbf20bb6 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -2791,7 +2791,11 @@ mining and data analysis.") ,@(package-native-inputs scikit-image))) (propagated-inputs `(("python2-pytz" ,python2-pytz) - ,@(package-propagated-inputs scikit-image)))))) + ("python2-matplotlib" ,python2-matplotlib) + ("python2-numpy" ,python2-numpy) + ("python2-scipy" ,python2-scipy) + ,@(fold alist-delete (package-propagated-inputs scikit-image) + '("python-matplotlib" "python-numpy" "python-scipy"))))))) (define-public python-redis (package -- cgit v1.2.3 From f673552c137a4119f799a1ef3dbfe48304127fe9 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 2 Dec 2015 22:03:04 +0200 Subject: gnu: vapoursynth: Update to 28. * gnu/packages/video.scm (vapoursynth): Update to 28. --- gnu/packages/video.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 80b21e0294..ee6b6540e4 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -1100,15 +1100,16 @@ capabilities.") (define-public vapoursynth (package (name "vapoursynth") - (version "26") + (version "28") (source (origin (method url-fetch) (uri (string-append "https://github.com/vapoursynth/vapoursynth/archive/R" version ".tar.gz")) + (file-name (string-append name "-" version)) (sha256 (base32 - "1qbg5kg0kgrxldd0ckn1s7vy7vx2ig8nqzv6djp38fxccpzw3x9k")))) + "0pnrawcg1j65i46yim0z447lglq1af5zgx0lkqf1x5xl1bfwc0v7")))) (build-system gnu-build-system) (native-inputs `(("autoconf" ,autoconf) -- cgit v1.2.3 From 877a6466a6393b25c5542e1593e56343bd467b50 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 2 Dec 2015 22:32:58 +0200 Subject: gnu: xmlto: Update to 0.0.28. * gnu/packages/xml.scm (xmlto): Update to 0.0.28. --- gnu/packages/xml.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm index e28eddd5a8..6f0c4fce7e 100644 --- a/gnu/packages/xml.scm +++ b/gnu/packages/xml.scm @@ -5,6 +5,7 @@ ;;; Copyright © 2015 Sou Bunnbu ;;; Copyright © 2015 Ricardo Wurmus ;;; Copyright © 2015 Mark H Weaver +;;; Copyright © 2015 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -432,7 +433,7 @@ parsing/saving.") (define-public xmlto (package (name "xmlto") - (version "0.0.25") + (version "0.0.28") (source (origin (method url-fetch) @@ -441,7 +442,7 @@ parsing/saving.") version ".tar.bz2")) (sha256 (base32 - "0dp5nxq491gymq806za0dk4hngfmq65ysrqbn0ypajqbbl6vf71n")))) + "0xhj8b2pwp4vhl9y16v3dpxpsakkflfamr191mprzsspg4xdyc0i")))) (build-system gnu-build-system) (arguments ;; Make sure the reference to util-linux's 'getopt' is kept in 'xmlto'. -- cgit v1.2.3 From dfbddf81befc0ae2a98c7db6b055b65af9cf9ff6 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 3 Dec 2015 05:16:04 +0200 Subject: gnu: libass: Update to 0.13.1. * gnu/packages/video.scm (libass): Update to 0.13.1. --- gnu/packages/video.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index ee6b6540e4..928e9ef2c9 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -225,7 +225,7 @@ H.264 (MPEG-4 AVC) video streams.") (define-public libass (package (name "libass") - (version "0.12.1") + (version "0.13.1") (source (origin (method url-fetch) (uri (string-append @@ -233,7 +233,7 @@ H.264 (MPEG-4 AVC) video streams.") version "/libass-" version ".tar.xz")) (sha256 (base32 - "1mwj2nk9g6cq6f8m1hf0ijg1299rghhy9naahqq43sc2whblb1l7")))) + "1rrz6is2blx8jqyydcz71y2f5f948blgx14jzi3an756fqc6p8sa")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) -- cgit v1.2.3 From eccd0b57a1f05b3caca28604f4d2c06556e2fe05 Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Wed, 2 Dec 2015 22:50:55 +0300 Subject: gnu: emacs-pdf-tools: Update to 0.70. * gnu/packages/emacs.scm (emacs-pdf-tools): Update to 0.70. --- gnu/packages/emacs.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 67f1ea20ef..84c5c44d27 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -911,7 +911,7 @@ single buffer.") (define-public emacs-pdf-tools (package (name "emacs-pdf-tools") - (version "0.60") + (version "0.70") (source (origin (method url-fetch) (uri (string-append @@ -920,7 +920,7 @@ single buffer.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1y8k5n2jbyaxby0j6f4m9xbm0ddpmbkrfj6rp6ll5sb97lcg3vrx")))) + "1m0api6wiawswyk46bdsyk6r5rg3b86a4paar6nassm6x6c6vr77")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; there are no tests -- cgit v1.2.3 From fae2a30f135cd0a80bdafff591a713f6c3989700 Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Wed, 2 Dec 2015 22:51:44 +0300 Subject: gnu: emacs-dash: Update to 2.12.1. * gnu/packages/emacs.scm (emacs-dash): Update to 2.12.1. --- gnu/packages/emacs.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 84c5c44d27..e8b9ed68d4 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -980,7 +980,7 @@ and stored in memory.") (define-public emacs-dash (package (name "emacs-dash") - (version "2.11.0") + (version "2.12.1") (source (origin (method url-fetch) (uri (string-append @@ -989,7 +989,7 @@ and stored in memory.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1piwcwilkxcbjxx832mhb7q3pz1fgwp203r581bpqcw6kd5x726q")))) + "082jl7mp4x063bpj5ad2pc5125k0d6p7rb89gcj7ny3lma9h2ij1")))) (build-system emacs-build-system) (arguments `(#:phases -- cgit v1.2.3 From 509a0c2700dbaaa3e060c1f794ba5a58f0e8bd31 Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Wed, 2 Dec 2015 22:52:39 +0300 Subject: gnu: magit: Update to 2.3.1. * gnu/packages/emacs.scm (magit): Update to 2.3.1. --- gnu/packages/emacs.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index e8b9ed68d4..402089831c 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -316,7 +316,7 @@ configuration files, such as .gitattributes, .gitignore, and .git/config.") (define-public magit (package (name "magit") - (version "2.3.0") + (version "2.3.1") (source (origin (method url-fetch) (uri (string-append @@ -324,7 +324,7 @@ configuration files, such as .gitattributes, .gitignore, and .git/config.") version "/" name "-" version ".tar.gz")) (sha256 (base32 - "0bi0vqp9802f00vnii3x80iqycji20bw4pjysy6al0d86mkggjx5")))) + "1wnx034adkwhbsydd10il2099hpzz351kp39sri8s1yd43f795gf")))) (build-system gnu-build-system) (native-inputs `(("texinfo" ,texinfo) ("emacs" ,emacs-no-x))) -- cgit v1.2.3 From c181b870f1e72b30931f3cefd0ee6a010e2ae762 Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Wed, 2 Dec 2015 22:53:24 +0300 Subject: gnu: paredit: Update to 24. * gnu/packages/emacs.scm (paredit): Update to 24. --- gnu/packages/emacs.scm | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 402089831c..947ddcb798 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -226,13 +226,14 @@ metadata.") (define-public paredit (package (name "paredit") - (version "23") + (version "24") (source (origin - (method url-fetch) - (uri (string-append "http://mumble.net/~campbell/emacs/paredit-" - version ".el")) - (sha256 - (base32 "1np882jzvxckljx3cjz4absyzmc5hw65cs21sjmbic82163m9lf8")))) + (method url-fetch) + (uri (string-append "http://mumble.net/~campbell/emacs/paredit-" + version ".el")) + (sha256 + (base32 + "0pp3n8q6kc70blqsaw0zlzp6bc327dpgdrjr0cnh7hqg1lras7ka")))) (build-system trivial-build-system) (inputs `(("emacs" ,emacs-no-x))) (arguments -- cgit v1.2.3 From d1e08856e05bbef43c5940a33472437d4e830e53 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 3 Dec 2015 12:41:28 +0200 Subject: gnu: openssh: Update to 7.1p1. * gnu/packages/ssh.scm (openssh): Update to 7.1p1. --- gnu/packages/ssh.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm index 5c222a22ad..cb8570a74b 100644 --- a/gnu/packages/ssh.scm +++ b/gnu/packages/ssh.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013, 2014 Andreas Enge ;;; Copyright © 2014, 2015 Mark H Weaver +;;; Copyright © 2015 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -110,7 +111,7 @@ a server that supports the SSH-2 protocol.") (define-public openssh (package (name "openssh") - (version "7.0p1") + (version "7.1p1") (source (origin (method url-fetch) (uri (let ((tail (string-append name "-" version ".tar.gz"))) @@ -121,7 +122,7 @@ a server that supports the SSH-2 protocol.") (string-append "http://ftp2.fr.openbsd.org/pub/OpenBSD/OpenSSH/portable/" tail)))) (sha256 (base32 - "1rc52jyc5v5b8j9kvasrnz9vnj9b0i7fw4nqac8wix0r794k4ngx")))) + "0a44mnr8bvw41zg83xh4sb55d8nds29j95gxvxk5qg863lnns2pw")))) (build-system gnu-build-system) (inputs `(("groff" ,groff) ("openssl" ,openssl) -- cgit v1.2.3 From dab8ebd92583781c8ed6e216396771fe4390470e Mon Sep 17 00:00:00 2001 From: Federico Beffa Date: Thu, 3 Dec 2015 11:06:30 +0100 Subject: gnu: python2-seaborn: Use custom 'python2-' packages. * gnu/packages/python.scm (python2-seaborn): Use customized 'python2-' versions of 'matplotlib', 'pandas' and 'scipy'. --- gnu/packages/python.scm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 1cbbf20bb6..3385393f1b 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -4701,7 +4701,9 @@ and statistical routines from scipy and statsmodels.") (package (inherit seaborn) (propagated-inputs `(("python2-pytz" ,python2-pytz) - ,@(package-propagated-inputs seaborn)))))) + ("python2-pandas" ,python2-pandas) + ("python2-matplotlib" ,python2-matplotlib) + ("python2-scipy" ,python2-scipy)))))) (define-public python-sympy (package -- cgit v1.2.3 From df7393b93c3c1ad764702266016a3b640fd7fa93 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 3 Dec 2015 18:32:09 +0200 Subject: gnu: Add findnewest. * gnu/packages/version-control.scm (findnewest): New variable. --- gnu/packages/version-control.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index b1326634a7..a9ebd66d42 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -36,6 +36,7 @@ #:use-module (guix build-system trivial) #:use-module (guix build utils) #:use-module (gnu packages apr) + #:use-module (gnu packages autotools) #:use-module (gnu packages asciidoc) #:use-module (gnu packages base) #:use-module (gnu packages bison) @@ -925,3 +926,30 @@ any project with more than one developer, is one of Aegis's major functions.") a history browser. It can also stage hunks for commit, or colorize the output of the 'git' command.") (license gpl2+))) + +(define-public findnewest + (package + (name "findnewest") + (version "0.2") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/0-wiz-0/findnewest/archive/findnewest-" + version ".tar.gz")) + (sha256 + (base32 + "0zlflad568y203yc5ynf1nxi2szn2pmbf1lvz6yk77kjyrpw7zxg")))) + (build-system gnu-build-system) + (arguments + '(#:phases (modify-phases %standard-phases + (add-before 'configure 'bootstrap + (lambda _ + (zero? (system* "autoreconf" "-vfi"))))))) + (native-inputs `(("autoconf" ,autoconf) + ("automake" ,automake))) + (home-page "https://github.com/0-wiz-0/findnewest/releases") + (synopsis "Print the modification time of the latest file") + (description + "Recursively find the newest file in a file tree and print its +modification time.") + (license bsd-2))) -- cgit v1.2.3 From d203d3d4cb3d83beaadaaef6c279c3d84ac142f7 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 3 Dec 2015 18:53:01 +0200 Subject: store: Update to the new daemon protocol. * guix/store.scm (%protocol-version): Set minor to 14. (open-connection): Add 'cpu-affinity' parameter and honor it. --- guix/store.scm | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/guix/store.scm b/guix/store.scm index 8413d1f452..89f5df052a 100644 --- a/guix/store.scm +++ b/guix/store.scm @@ -129,7 +129,7 @@ direct-store-path log-file)) -(define %protocol-version #x10c) +(define %protocol-version #x10e) (define %worker-magic-1 #x6e697863) ; "nixc" (define %worker-magic-2 #x6478696f) ; "dxio" @@ -328,11 +328,13 @@ (status nix-protocol-error-status)) (define* (open-connection #:optional (file (%daemon-socket-file)) - #:key (reserve-space? #t)) + #:key (reserve-space? #t) cpu-affinity) "Connect to the daemon over the Unix-domain socket at FILE. When -RESERVE-SPACE? is true, instruct it to reserve a little bit of extra -space on the file system so that the garbage collector can still -operate, should the disk become full. Return a server object." +RESERVE-SPACE? is true, instruct it to reserve a little bit of extra space on +the file system so that the garbage collector can still operate, should the +disk become full. When CPU-AFFINITY is true, it must be an integer +corresponding to an OS-level CPU number to which the daemon's worker process +for this connection will be pinned. Return a server object." (let ((s (with-fluids ((%default-port-encoding #f)) ;; This trick allows use of the `scm_c_read' optimization. (socket PF_UNIX SOCK_STREAM 0))) @@ -355,8 +357,12 @@ operate, should the disk become full. Return a server object." (protocol-major v)) (begin (write-int %protocol-version s) - (if (>= (protocol-minor v) 11) - (write-int (if reserve-space? 1 0) s)) + (when (>= (protocol-minor v) 14) + (write-int (if cpu-affinity 1 0) s) + (when cpu-affinity + (write-int cpu-affinity s))) + (when (>= (protocol-minor v) 11) + (write-int (if reserve-space? 1 0) s)) (let ((s (%make-nix-server s (protocol-major v) (protocol-minor v) -- cgit v1.2.3 From 07e70f4846521c1fa5319b25f23eea171a03fccd Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 3 Dec 2015 19:08:35 +0200 Subject: store: Add mode parameter to 'build-paths'. * guix/store.scm (%protocol-version): Set minor to 15. (build-mode): New enumerate type. (build-things): Add 'mode' parameter; pass it to the RPC. * tests/store.scm ("build-things, check mode"): New check. --- guix/store.scm | 20 ++++++++++++++++---- tests/store.scm | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+), 4 deletions(-) diff --git a/guix/store.scm b/guix/store.scm index 89f5df052a..1818187155 100644 --- a/guix/store.scm +++ b/guix/store.scm @@ -53,6 +53,7 @@ nix-protocol-error-status hash-algo + build-mode open-connection close-connection @@ -129,7 +130,7 @@ direct-store-path log-file)) -(define %protocol-version #x10e) +(define %protocol-version #x10f) (define %worker-magic-1 #x6e697863) ; "nixc" (define %worker-magic-2 #x6478696f) ; "dxio" @@ -188,6 +189,12 @@ (sha1 2) (sha256 3)) +(define-enumerate-type build-mode + ;; store-api.hh + (normal 0) + (repair 1) + (check 2)) + (define-enumerate-type gc-action ;; store-api.hh (return-live 0) @@ -637,12 +644,17 @@ bits are kept. HASH-ALGO must be a string such as \"sha256\"." (hash-set! cache args path) path)))))) -(define-operation (build-things (string-list things)) - "Build THINGS, a list of store items which may be either '.drv' files or +(define build-things + (let ((build (operation (build-things (string-list things) + (integer mode)) + "Do it!" + boolean))) + (lambda* (store things #:optional (mode (build-mode normal))) + "Build THINGS, a list of store items which may be either '.drv' files or outputs, and return when the worker is done building them. Elements of THINGS that are not derivations can only be substituted and not built locally. Return #t on success." - boolean) + (build store things mode)))) (define-operation (add-temp-root (store-path path)) "Make PATH a temporary root for the duration of the current session. diff --git a/tests/store.scm b/tests/store.scm index 60d1085f99..72abf2c694 100644 --- a/tests/store.scm +++ b/tests/store.scm @@ -756,6 +756,41 @@ ;; Delete the corrupt item to leave the store in a clean state. (delete-paths s (list file))))))) +(test-assert "build-things, check mode" + (with-store store + (call-with-temporary-output-file + (lambda (entropy entropy-port) + (write (random-text) entropy-port) + (force-output entropy-port) + (let* ((drv (build-expression->derivation + store "non-deterministic" + `(begin + (use-modules (rnrs io ports)) + (let ((out (assoc-ref %outputs "out"))) + (call-with-output-file out + (lambda (port) + (display (call-with-input-file ,entropy + get-string-all) + port))) + #t)) + #:guile-for-build + (package-derivation store %bootstrap-guile (%current-system)))) + (file (derivation->output-path drv))) + (and (build-things store (list (derivation-file-name drv))) + (begin + (write (random-text) entropy-port) + (force-output entropy-port) + (guard (c ((nix-protocol-error? c) + (pk 'determinism-exception c) + (and (not (zero? (nix-protocol-error-status c))) + (string-contains (nix-protocol-error-message c) + "deterministic")))) + ;; This one will produce a different result. Since we're in + ;; 'check' mode, this must fail. + (build-things store (list (derivation-file-name drv)) + (build-mode check)) + #f)))))))) + (test-equal "store-lower" "Lowered." (let* ((add (store-lower text-file)) -- cgit v1.2.3 From 2734cbb89598dbd212d598800bef5a1e649f71f7 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 4 Dec 2015 11:32:50 +0200 Subject: store: 'build-things' now supports older daemon protocols. This is a followup to d203d3d. * guix/store.scm (build-things): Add 'build/old'. Use it when STORE's minor version is less than 15. --- guix/store.scm | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/guix/store.scm b/guix/store.scm index 1818187155..98ccbd1004 100644 --- a/guix/store.scm +++ b/guix/store.scm @@ -648,13 +648,22 @@ bits are kept. HASH-ALGO must be a string such as \"sha256\"." (let ((build (operation (build-things (string-list things) (integer mode)) "Do it!" - boolean))) + boolean)) + (build/old (operation (build-things (string-list things)) + "Do it!" + boolean))) (lambda* (store things #:optional (mode (build-mode normal))) "Build THINGS, a list of store items which may be either '.drv' files or outputs, and return when the worker is done building them. Elements of THINGS that are not derivations can only be substituted and not built locally. Return #t on success." - (build store things mode)))) + (if (>= (nix-server-minor-version store) 15) + (build store things mode) + (if (= mode (build-mode normal)) + (build/old store things) + (raise (condition (&nix-protocol-error + (message "unsupported build mode") + (status 1))))))))) (define-operation (add-temp-root (store-path path)) "Make PATH a temporary root for the duration of the current session. -- cgit v1.2.3 From b9fa245fcd962a5ae9039ca395e7347718f4cb42 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Fri, 4 Dec 2015 15:50:08 -0500 Subject: gnu: icecat: Update to 38.4.0-gnu1. * gnu/packages/patches/icecat-CVE-2015-4513-pt01.patch, gnu/packages/patches/icecat-CVE-2015-4513-pt02.patch, gnu/packages/patches/icecat-CVE-2015-4513-pt03.patch, gnu/packages/patches/icecat-CVE-2015-4513-pt04.patch, gnu/packages/patches/icecat-CVE-2015-4513-pt05.patch, gnu/packages/patches/icecat-CVE-2015-4513-pt06.patch, gnu/packages/patches/icecat-CVE-2015-4513-pt07.patch, gnu/packages/patches/icecat-CVE-2015-4513-pt08.patch, gnu/packages/patches/icecat-CVE-2015-4513-pt09.patch, gnu/packages/patches/icecat-CVE-2015-4513-pt10.patch, gnu/packages/patches/icecat-CVE-2015-4513-pt11.patch, gnu/packages/patches/icecat-CVE-2015-7188.patch, gnu/packages/patches/icecat-CVE-2015-7189.patch, gnu/packages/patches/icecat-CVE-2015-7193.patch, gnu/packages/patches/icecat-CVE-2015-7194.patch, gnu/packages/patches/icecat-CVE-2015-7196.patch, gnu/packages/patches/icecat-CVE-2015-7197.patch, gnu/packages/patches/icecat-CVE-2015-7198.patch, gnu/packages/patches/icecat-CVE-2015-7199.patch: Delete files. * gnu-system.am (dist_patch_DATA): Remove them. * gnu/packages/gnuzilla.scm (icecat): Update to 38.4.0-gnu1. Remove the obsolete patches. --- gnu-system.am | 19 - gnu/packages/gnuzilla.scm | 25 +- .../patches/icecat-CVE-2015-4513-pt01.patch | 36 -- .../patches/icecat-CVE-2015-4513-pt02.patch | 103 ----- .../patches/icecat-CVE-2015-4513-pt03.patch | 48 --- .../patches/icecat-CVE-2015-4513-pt04.patch | 50 --- .../patches/icecat-CVE-2015-4513-pt05.patch | 25 -- .../patches/icecat-CVE-2015-4513-pt06.patch | 461 --------------------- .../patches/icecat-CVE-2015-4513-pt07.patch | 93 ----- .../patches/icecat-CVE-2015-4513-pt08.patch | 41 -- .../patches/icecat-CVE-2015-4513-pt09.patch | 65 --- .../patches/icecat-CVE-2015-4513-pt10.patch | 110 ----- .../patches/icecat-CVE-2015-4513-pt11.patch | 42 -- gnu/packages/patches/icecat-CVE-2015-7188.patch | 143 ------- gnu/packages/patches/icecat-CVE-2015-7189.patch | 143 ------- gnu/packages/patches/icecat-CVE-2015-7193.patch | 397 ------------------ gnu/packages/patches/icecat-CVE-2015-7194.patch | 32 -- gnu/packages/patches/icecat-CVE-2015-7196.patch | 27 -- gnu/packages/patches/icecat-CVE-2015-7197.patch | 70 ---- gnu/packages/patches/icecat-CVE-2015-7198.patch | 27 -- gnu/packages/patches/icecat-CVE-2015-7199.patch | 84 ---- 21 files changed, 3 insertions(+), 2038 deletions(-) delete mode 100644 gnu/packages/patches/icecat-CVE-2015-4513-pt01.patch delete mode 100644 gnu/packages/patches/icecat-CVE-2015-4513-pt02.patch delete mode 100644 gnu/packages/patches/icecat-CVE-2015-4513-pt03.patch delete mode 100644 gnu/packages/patches/icecat-CVE-2015-4513-pt04.patch delete mode 100644 gnu/packages/patches/icecat-CVE-2015-4513-pt05.patch delete mode 100644 gnu/packages/patches/icecat-CVE-2015-4513-pt06.patch delete mode 100644 gnu/packages/patches/icecat-CVE-2015-4513-pt07.patch delete mode 100644 gnu/packages/patches/icecat-CVE-2015-4513-pt08.patch delete mode 100644 gnu/packages/patches/icecat-CVE-2015-4513-pt09.patch delete mode 100644 gnu/packages/patches/icecat-CVE-2015-4513-pt10.patch delete mode 100644 gnu/packages/patches/icecat-CVE-2015-4513-pt11.patch delete mode 100644 gnu/packages/patches/icecat-CVE-2015-7188.patch delete mode 100644 gnu/packages/patches/icecat-CVE-2015-7189.patch delete mode 100644 gnu/packages/patches/icecat-CVE-2015-7193.patch delete mode 100644 gnu/packages/patches/icecat-CVE-2015-7194.patch delete mode 100644 gnu/packages/patches/icecat-CVE-2015-7196.patch delete mode 100644 gnu/packages/patches/icecat-CVE-2015-7197.patch delete mode 100644 gnu/packages/patches/icecat-CVE-2015-7198.patch delete mode 100644 gnu/packages/patches/icecat-CVE-2015-7199.patch diff --git a/gnu-system.am b/gnu-system.am index ee7fcc185b..ae3b3d24d6 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -510,25 +510,6 @@ dist_patch_DATA = \ gnu/packages/patches/hop-linker-flags.patch \ gnu/packages/patches/hydra-automake-1.15.patch \ gnu/packages/patches/hydra-disable-darcs-test.patch \ - gnu/packages/patches/icecat-CVE-2015-4513-pt01.patch \ - gnu/packages/patches/icecat-CVE-2015-4513-pt02.patch \ - gnu/packages/patches/icecat-CVE-2015-4513-pt03.patch \ - gnu/packages/patches/icecat-CVE-2015-4513-pt04.patch \ - gnu/packages/patches/icecat-CVE-2015-4513-pt05.patch \ - gnu/packages/patches/icecat-CVE-2015-4513-pt06.patch \ - gnu/packages/patches/icecat-CVE-2015-4513-pt07.patch \ - gnu/packages/patches/icecat-CVE-2015-4513-pt08.patch \ - gnu/packages/patches/icecat-CVE-2015-4513-pt09.patch \ - gnu/packages/patches/icecat-CVE-2015-4513-pt10.patch \ - gnu/packages/patches/icecat-CVE-2015-4513-pt11.patch \ - gnu/packages/patches/icecat-CVE-2015-7188.patch \ - gnu/packages/patches/icecat-CVE-2015-7189.patch \ - gnu/packages/patches/icecat-CVE-2015-7193.patch \ - gnu/packages/patches/icecat-CVE-2015-7194.patch \ - gnu/packages/patches/icecat-CVE-2015-7196.patch \ - gnu/packages/patches/icecat-CVE-2015-7197.patch \ - gnu/packages/patches/icecat-CVE-2015-7198.patch \ - gnu/packages/patches/icecat-CVE-2015-7199.patch \ gnu/packages/patches/icecat-avoid-bundled-includes.patch \ gnu/packages/patches/icecat-freetype-2.6.patch \ gnu/packages/patches/icu4c-CVE-2014-6585.patch \ diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index f32c947f3c..6d134a89c7 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -266,7 +266,7 @@ standards.") (define-public icecat (package (name "icecat") - (version "38.3.0-gnu1") + (version "38.4.0-gnu1") (source (origin (method url-fetch) @@ -275,28 +275,9 @@ standards.") name "-" version ".tar.bz2")) (sha256 (base32 - "0vm6f7f1i5vkq2713mgzjdfnm8rpz9l0q8sv4s123vsam0j9gzh8")) + "0rcaa19rfgclwd2qvcz8798m57jjzra6kaxg5dniysajvx7qndfp")) (patches (map search-patch '("icecat-avoid-bundled-includes.patch" - "icecat-freetype-2.6.patch" - "icecat-CVE-2015-4513-pt01.patch" - "icecat-CVE-2015-4513-pt02.patch" - "icecat-CVE-2015-4513-pt03.patch" - "icecat-CVE-2015-4513-pt04.patch" - "icecat-CVE-2015-4513-pt05.patch" - "icecat-CVE-2015-4513-pt06.patch" - "icecat-CVE-2015-4513-pt07.patch" - "icecat-CVE-2015-4513-pt08.patch" - "icecat-CVE-2015-4513-pt09.patch" - "icecat-CVE-2015-4513-pt10.patch" - "icecat-CVE-2015-4513-pt11.patch" - "icecat-CVE-2015-7188.patch" - "icecat-CVE-2015-7189.patch" - "icecat-CVE-2015-7193.patch" - "icecat-CVE-2015-7194.patch" - "icecat-CVE-2015-7196.patch" - "icecat-CVE-2015-7197.patch" - "icecat-CVE-2015-7198.patch" - "icecat-CVE-2015-7199.patch"))) + "icecat-freetype-2.6.patch"))) (modules '((guix build utils))) (snippet '(begin diff --git a/gnu/packages/patches/icecat-CVE-2015-4513-pt01.patch b/gnu/packages/patches/icecat-CVE-2015-4513-pt01.patch deleted file mode 100644 index f003e3cf68..0000000000 --- a/gnu/packages/patches/icecat-CVE-2015-4513-pt01.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 3df141cb85a530d7ddc3a7555d44235e49341837 Mon Sep 17 00:00:00 2001 -From: Karl Tomlinson -Date: Sat, 19 Sep 2015 00:51:03 +1200 -Subject: [PATCH] Bug 1206564 - skip copying of listeners. r=roc, a=sylvestre - ---HG-- -extra : source : ddd169d6bd65771a6811a3bb223a4a385b101690 ---- - widget/gtk/nsWindow.cpp | 11 +++++------ - 1 file changed, 5 insertions(+), 6 deletions(-) - -diff --git a/widget/gtk/nsWindow.cpp b/widget/gtk/nsWindow.cpp -index dd1895b..d8e8e42 100644 ---- a/widget/gtk/nsWindow.cpp -+++ b/widget/gtk/nsWindow.cpp -@@ -461,12 +461,11 @@ nsWindow::DispatchDeactivateEvent(void) - void - nsWindow::DispatchResized(int32_t aWidth, int32_t aHeight) - { -- nsIWidgetListener *listeners[] = -- { mWidgetListener, mAttachedWidgetListener }; -- for (size_t i = 0; i < ArrayLength(listeners); ++i) { -- if (listeners[i]) { -- listeners[i]->WindowResized(this, aWidth, aHeight); -- } -+ if (mWidgetListener) { -+ mWidgetListener->WindowResized(this, aWidth, aHeight); -+ } -+ if (mAttachedWidgetListener) { -+ mAttachedWidgetListener->WindowResized(this, aWidth, aHeight); - } - } - --- -2.5.0 - diff --git a/gnu/packages/patches/icecat-CVE-2015-4513-pt02.patch b/gnu/packages/patches/icecat-CVE-2015-4513-pt02.patch deleted file mode 100644 index 9a77ed908b..0000000000 --- a/gnu/packages/patches/icecat-CVE-2015-4513-pt02.patch +++ /dev/null @@ -1,103 +0,0 @@ -From d463cb5f0374bfc7c62ae5f1c89edd3ca35084e5 Mon Sep 17 00:00:00 2001 -From: Olli Pettay -Date: Thu, 24 Sep 2015 03:53:31 +0300 -Subject: [PATCH] Bug 1204669 - optimize out hashtable lookups caused by extra - GetPrototypeBinding call, r=bz,waldo, a=al - ---HG-- -extra : source : 91657db26f49f885f2338cb8c9302cdf18999f1f ---- - dom/xbl/nsXBLPrototypeBinding.h | 9 +++++++-- - dom/xbl/nsXBLService.cpp | 6 +++--- - mfbt/WeakPtr.h | 8 +++++++- - 3 files changed, 17 insertions(+), 6 deletions(-) - -diff --git a/dom/xbl/nsXBLPrototypeBinding.h b/dom/xbl/nsXBLPrototypeBinding.h -index be2cb5a..1aaa07f 100644 ---- a/dom/xbl/nsXBLPrototypeBinding.h -+++ b/dom/xbl/nsXBLPrototypeBinding.h -@@ -17,6 +17,7 @@ - #include "nsXBLProtoImplMethod.h" - #include "nsXBLPrototypeHandler.h" - #include "nsXBLPrototypeResources.h" -+#include "mozilla/WeakPtr.h" - - class nsIAtom; - class nsIContent; -@@ -35,9 +36,12 @@ class CSSStyleSheet; - // Instances of this class are owned by the nsXBLDocumentInfo object returned - // by XBLDocumentInfo(). Consumers who want to refcount things should refcount - // that. --class nsXBLPrototypeBinding final -+class nsXBLPrototypeBinding final : -+ public mozilla::SupportsWeakPtr - { - public: -+ MOZ_DECLARE_WEAKREFERENCE_TYPENAME(nsXBLPrototypeBinding) -+ - nsIContent* GetBindingElement() const { return mBinding; } - void SetBindingElement(nsIContent* aElement); - -@@ -289,7 +293,8 @@ protected: - nsXBLProtoImpl* mImplementation; // Our prototype implementation (includes methods, properties, fields, - // the constructor, and the destructor). - -- nsXBLPrototypeBinding* mBaseBinding; // Weak. The docinfo will own our base binding. -+ // Weak. The docinfo will own our base binding. -+ mozilla::WeakPtr mBaseBinding; - bool mInheritStyle; - bool mCheckedBaseProto; - bool mKeyHandlersRegistered; -diff --git a/dom/xbl/nsXBLService.cpp b/dom/xbl/nsXBLService.cpp -index 2204520..978c6fc 100644 ---- a/dom/xbl/nsXBLService.cpp -+++ b/dom/xbl/nsXBLService.cpp -@@ -732,7 +732,8 @@ nsXBLService::GetBinding(nsIContent* aBoundElement, nsIURI* aURI, - if (!docInfo) - return NS_ERROR_FAILURE; - -- nsXBLPrototypeBinding* protoBinding = docInfo->GetPrototypeBinding(ref); -+ WeakPtr protoBinding = -+ docInfo->GetPrototypeBinding(ref); - - if (!protoBinding) { - #ifdef DEBUG -@@ -783,7 +784,7 @@ nsXBLService::GetBinding(nsIContent* aBoundElement, nsIURI* aURI, - NS_ENSURE_SUCCESS(rv, rv); - - nsCOMPtr baseBindingURI; -- nsXBLPrototypeBinding* baseProto = protoBinding->GetBasePrototype(); -+ WeakPtr baseProto = protoBinding->GetBasePrototype(); - if (baseProto) { - baseBindingURI = baseProto->BindingURI(); - } -@@ -828,7 +829,6 @@ nsXBLService::GetBinding(nsIContent* aBoundElement, nsIURI* aURI, - - if (!aPeekOnly) { - // Make a new binding -- protoBinding = docInfo->GetPrototypeBinding(ref); - NS_ENSURE_STATE(protoBinding); - nsXBLBinding *newBinding = new nsXBLBinding(protoBinding); - -diff --git a/mfbt/WeakPtr.h b/mfbt/WeakPtr.h -index 6e5de43..22ba20e 100644 ---- a/mfbt/WeakPtr.h -+++ b/mfbt/WeakPtr.h -@@ -172,7 +172,13 @@ public: - - WeakPtr& operator=(T* aOther) - { -- return *this = aOther->SelfReferencingWeakPtr(); -+ if (aOther) { -+ *this = aOther->SelfReferencingWeakPtr(); -+ } else if (!mRef || mRef->get()) { -+ // Ensure that mRef is dereferenceable in the uninitialized state. -+ mRef = new WeakReference(nullptr); -+ } -+ return *this; - } - - MOZ_IMPLICIT WeakPtr(T* aOther) --- -2.5.0 - diff --git a/gnu/packages/patches/icecat-CVE-2015-4513-pt03.patch b/gnu/packages/patches/icecat-CVE-2015-4513-pt03.patch deleted file mode 100644 index 4f86629068..0000000000 --- a/gnu/packages/patches/icecat-CVE-2015-4513-pt03.patch +++ /dev/null @@ -1,48 +0,0 @@ -From 88312d4d167aba886fdbd563afcfd5cc96a9d813 Mon Sep 17 00:00:00 2001 -From: Boris Zbarsky -Date: Fri, 11 Sep 2015 21:59:43 -0400 -Subject: [PATCH] Bug 1191942 - Make sure to not schedule - requestAnimationFrame callbacks if animations are paused. r=roc, a=ritu - ---HG-- -extra : source : ed8a6af1508ac68a28d017e26935e7a12dbda864 -extra : intermediate-source : 254e3cb723ed279f68b0c88ad30dc35b6a93ce84 ---- - dom/base/nsDocument.cpp | 7 ++++--- - 1 file changed, 4 insertions(+), 3 deletions(-) - -diff --git a/dom/base/nsDocument.cpp b/dom/base/nsDocument.cpp -index 47f611e..087501c 100644 ---- a/dom/base/nsDocument.cpp -+++ b/dom/base/nsDocument.cpp -@@ -3928,7 +3928,7 @@ void - nsDocument::DeleteShell() - { - mExternalResourceMap.HideViewers(); -- if (IsEventHandlingEnabled()) { -+ if (IsEventHandlingEnabled() && !AnimationsPaused()) { - RevokeAnimationFrameNotifications(); - } - -@@ -4687,7 +4687,7 @@ nsDocument::SetScriptGlobalObject(nsIScriptGlobalObject *aScriptGlobalObject) - // our layout history state now. - mLayoutHistoryState = GetLayoutHistoryState(); - -- if (mPresShell && !EventHandlingSuppressed()) { -+ if (mPresShell && !EventHandlingSuppressed() && !AnimationsPaused()) { - RevokeAnimationFrameNotifications(); - } - -@@ -10276,7 +10276,8 @@ nsIDocument::ScheduleFrameRequestCallback(const FrameRequestCallbackHolder& aCal - DebugOnly request = - mFrameRequestCallbacks.AppendElement(FrameRequest(aCallback, newHandle)); - NS_ASSERTION(request, "This is supposed to be infallible!"); -- if (!alreadyRegistered && mPresShell && IsEventHandlingEnabled()) { -+ if (!alreadyRegistered && mPresShell && IsEventHandlingEnabled() && -+ !AnimationsPaused()) { - mPresShell->GetPresContext()->RefreshDriver()-> - ScheduleFrameRequestCallbacks(this); - } --- -2.5.0 - diff --git a/gnu/packages/patches/icecat-CVE-2015-4513-pt04.patch b/gnu/packages/patches/icecat-CVE-2015-4513-pt04.patch deleted file mode 100644 index f6f3cd3585..0000000000 --- a/gnu/packages/patches/icecat-CVE-2015-4513-pt04.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 97bd3ada2a0ac6eff0e03e6eec8d2012af3bb57d Mon Sep 17 00:00:00 2001 -From: Jan de Mooij -Date: Mon, 28 Sep 2015 13:30:42 +0200 -Subject: [PATCH] Bug 1205707 part 1 - Clean up some is-TypedArrayObject code - in Ion. r=Waldo, a=sylvestre - ---- - js/src/jit/MCallOptimize.cpp | 19 +++++++++++++++++-- - 1 file changed, 17 insertions(+), 2 deletions(-) - -diff --git a/js/src/jit/MCallOptimize.cpp b/js/src/jit/MCallOptimize.cpp -index 7fdede8..2c6a533 100644 ---- a/js/src/jit/MCallOptimize.cpp -+++ b/js/src/jit/MCallOptimize.cpp -@@ -2122,6 +2122,19 @@ IonBuilder::inlineIsTypedArray(CallInfo& callInfo) - return InliningStatus_Inlined; - } - -+static bool -+IsTypedArrayObject(CompilerConstraintList* constraints, MDefinition* def) -+{ -+ MOZ_ASSERT(def->type() == MIRType_Object); -+ -+ TemporaryTypeSet* types = def->resultTypeSet(); -+ if (!types) -+ return false; -+ -+ return types->forAllClasses(constraints, IsTypedArrayClass) == -+ TemporaryTypeSet::ForAllResult::ALL_TRUE; -+} -+ - IonBuilder::InliningStatus - IonBuilder::inlineTypedArrayLength(CallInfo& callInfo) - { -@@ -2132,8 +2145,10 @@ IonBuilder::inlineTypedArrayLength(CallInfo& callInfo) - if (getInlineReturnType() != MIRType_Int32) - return InliningStatus_NotInlined; - -- // We assume that when calling this function we always -- // have a TypedArray. The native asserts that as well. -+ // Note that the argument we see here is not necessarily a typed array. -+ // If it's not, this call should be unreachable though. -+ if (!IsTypedArrayObject(constraints(), callInfo.getArg(0))) -+ return InliningStatus_NotInlined; - - MInstruction* length = addTypedArrayLength(callInfo.getArg(0)); - current->push(length); --- -2.5.0 - diff --git a/gnu/packages/patches/icecat-CVE-2015-4513-pt05.patch b/gnu/packages/patches/icecat-CVE-2015-4513-pt05.patch deleted file mode 100644 index b25f2231a7..0000000000 --- a/gnu/packages/patches/icecat-CVE-2015-4513-pt05.patch +++ /dev/null @@ -1,25 +0,0 @@ -From d91a58cb0094d0421439a915be0b4879a45d20d4 Mon Sep 17 00:00:00 2001 -From: Brian Hackett -Date: Mon, 12 Oct 2015 17:15:12 -0600 -Subject: [PATCH] Bug 1209471 - Fix group used for Array.concat result, - r=jandem. a=al - ---- - js/src/jsarray.cpp | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/js/src/jsarray.cpp b/js/src/jsarray.cpp -index 3d574d5..b4ff057 100644 ---- a/js/src/jsarray.cpp -+++ b/js/src/jsarray.cpp -@@ -2661,6 +2661,7 @@ js::array_concat(JSContext* cx, unsigned argc, Value* vp) - narr = NewDenseEmptyArray(cx); - if (!narr) - return false; -+ TryReuseArrayGroup(aobj, narr); - args.rval().setObject(*narr); - length = 0; - } --- -2.5.0 - diff --git a/gnu/packages/patches/icecat-CVE-2015-4513-pt06.patch b/gnu/packages/patches/icecat-CVE-2015-4513-pt06.patch deleted file mode 100644 index 33dbf68f2c..0000000000 --- a/gnu/packages/patches/icecat-CVE-2015-4513-pt06.patch +++ /dev/null @@ -1,461 +0,0 @@ -From 13b2b587c183e85618868752e05ec46bd5a0af86 Mon Sep 17 00:00:00 2001 -From: Jon Coppeard -Date: Tue, 13 Oct 2015 11:09:12 +0200 -Subject: [PATCH] Bug 1208665 - r=Waldo a=abillings a=sylvestre - ---- - js/public/Utility.h | 49 +++++++++++++++++++++++++++++++++++++-------- - js/src/ds/LifoAlloc.h | 13 ++++++------ - js/src/jit/FixedList.h | 10 +++++---- - js/src/jit/JitAllocPolicy.h | 19 ++++++++++-------- - js/src/jit/LIR.cpp | 3 +-- - js/src/jit/MIRGenerator.h | 7 ++++--- - js/src/jit/MIRGraph.cpp | 2 +- - js/src/jsalloc.h | 14 ++++++++++--- - js/src/vm/MallocProvider.h | 39 ++++++++++++++++-------------------- - js/src/vm/Runtime.h | 10 +++++---- - 10 files changed, 105 insertions(+), 61 deletions(-) - -diff --git a/js/public/Utility.h b/js/public/Utility.h -index 40b5d90..6b750c3 100644 ---- a/js/public/Utility.h -+++ b/js/public/Utility.h -@@ -217,6 +217,36 @@ static inline char* js_strdup(const char* s) - - JS_DECLARE_NEW_METHODS(js_new, js_malloc, static MOZ_ALWAYS_INLINE) - -+namespace js { -+ -+/* -+ * Calculate the number of bytes needed to allocate |numElems| contiguous -+ * instances of type |T|. Return false if the calculation overflowed. -+ */ -+template -+MOZ_WARN_UNUSED_RESULT inline bool -+CalculateAllocSize(size_t numElems, size_t* bytesOut) -+{ -+ *bytesOut = numElems * sizeof(T); -+ return (numElems & mozilla::tl::MulOverflowMask::value) == 0; -+} -+ -+/* -+ * Calculate the number of bytes needed to allocate a single instance of type -+ * |T| followed by |numExtra| contiguous instances of type |Extra|. Return -+ * false if the calculation overflowed. -+ */ -+template -+MOZ_WARN_UNUSED_RESULT inline bool -+CalculateAllocSizeWithExtra(size_t numExtra, size_t* bytesOut) -+{ -+ *bytesOut = sizeof(T) + numExtra * sizeof(Extra); -+ return (numExtra & mozilla::tl::MulOverflowMask::value) == 0 && -+ *bytesOut >= sizeof(T); -+} -+ -+} /* namespace js */ -+ - template - static MOZ_ALWAYS_INLINE void - js_delete(T* p) -@@ -242,32 +272,34 @@ template - static MOZ_ALWAYS_INLINE T* - js_pod_malloc() - { -- return (T*)js_malloc(sizeof(T)); -+ return static_cast(js_malloc(sizeof(T))); - } - - template - static MOZ_ALWAYS_INLINE T* - js_pod_calloc() - { -- return (T*)js_calloc(sizeof(T)); -+ return static_cast(js_calloc(sizeof(T))); - } - - template - static MOZ_ALWAYS_INLINE T* - js_pod_malloc(size_t numElems) - { -- if (MOZ_UNLIKELY(numElems & mozilla::tl::MulOverflowMask::value)) -+ size_t bytes; -+ if (MOZ_UNLIKELY(!js::CalculateAllocSize(numElems, &bytes))) - return nullptr; -- return (T*)js_malloc(numElems * sizeof(T)); -+ return static_cast(js_malloc(bytes)); - } - - template - static MOZ_ALWAYS_INLINE T* - js_pod_calloc(size_t numElems) - { -- if (MOZ_UNLIKELY(numElems & mozilla::tl::MulOverflowMask::value)) -+ size_t bytes; -+ if (MOZ_UNLIKELY(!js::CalculateAllocSize(numElems, &bytes))) - return nullptr; -- return (T*)js_calloc(numElems * sizeof(T)); -+ return static_cast(js_calloc(bytes)); - } - - template -@@ -275,9 +307,10 @@ static MOZ_ALWAYS_INLINE T* - js_pod_realloc(T* prior, size_t oldSize, size_t newSize) - { - MOZ_ASSERT(!(oldSize & mozilla::tl::MulOverflowMask::value)); -- if (MOZ_UNLIKELY(newSize & mozilla::tl::MulOverflowMask::value)) -+ size_t bytes; -+ if (MOZ_UNLIKELY(!js::CalculateAllocSize(newSize, &bytes))) - return nullptr; -- return (T*)js_realloc(prior, newSize * sizeof(T)); -+ return static_cast(js_realloc(prior, bytes)); - } - - namespace js { -diff --git a/js/src/ds/LifoAlloc.h b/js/src/ds/LifoAlloc.h -index 9dc68c1..35cdc72 100644 ---- a/js/src/ds/LifoAlloc.h -+++ b/js/src/ds/LifoAlloc.h -@@ -310,9 +310,10 @@ class LifoAlloc - // The caller is responsible for initialization. - template - T* newArrayUninitialized(size_t count) { -- if (MOZ_UNLIKELY(count & mozilla::tl::MulOverflowMask::value)) -+ size_t bytes; -+ if (MOZ_UNLIKELY(!CalculateAllocSize(count, &bytes))) - return nullptr; -- return static_cast(alloc(sizeof(T) * count)); -+ return static_cast(alloc(bytes)); - } - - class Mark { -@@ -527,16 +528,16 @@ class LifoAllocPolicy - {} - template - T* pod_malloc(size_t numElems) { -- if (MOZ_UNLIKELY(numElems & mozilla::tl::MulOverflowMask::value)) -+ size_t bytes; -+ if (MOZ_UNLIKELY(!CalculateAllocSize(numElems, &bytes))) - return nullptr; -- size_t bytes = numElems * sizeof(T); - void* p = fb == Fallible ? alloc_.alloc(bytes) : alloc_.allocInfallible(bytes); - return static_cast(p); - } - template - T* pod_calloc(size_t numElems) { - T* p = pod_malloc(numElems); -- if (fb == Fallible && !p) -+ if (MOZ_UNLIKELY(!p)) - return nullptr; - memset(p, 0, numElems * sizeof(T)); - return p; -@@ -544,7 +545,7 @@ class LifoAllocPolicy - template - T* pod_realloc(T* p, size_t oldSize, size_t newSize) { - T* n = pod_malloc(newSize); -- if (fb == Fallible && !n) -+ if (MOZ_UNLIKELY(!n)) - return nullptr; - MOZ_ASSERT(!(oldSize & mozilla::tl::MulOverflowMask::value)); - memcpy(n, p, Min(oldSize * sizeof(T), newSize * sizeof(T))); -diff --git a/js/src/jit/FixedList.h b/js/src/jit/FixedList.h -index 9cea3a8..b6b37bb 100644 ---- a/js/src/jit/FixedList.h -+++ b/js/src/jit/FixedList.h -@@ -37,9 +37,10 @@ class FixedList - if (length == 0) - return true; - -- if (MOZ_UNLIKELY(length & mozilla::tl::MulOverflowMask::value)) -+ size_t bytes; -+ if (MOZ_UNLIKELY(!CalculateAllocSize(length, &bytes))) - return false; -- list_ = (T*)alloc.allocate(length * sizeof(T)); -+ list_ = (T*)alloc.allocate(bytes); - return list_ != nullptr; - } - -@@ -60,9 +61,10 @@ class FixedList - size_t newlength = length_ + num; - if (newlength < length_) - return false; -- if (MOZ_UNLIKELY(newlength & mozilla::tl::MulOverflowMask::value)) -+ size_t bytes; -+ if (MOZ_UNLIKELY(!CalculateAllocSize(newlength, &bytes))) - return false; -- T* list = (T*)alloc.allocate((length_ + num) * sizeof(T)); -+ T* list = (T*)alloc.allocate(bytes); - if (MOZ_UNLIKELY(!list)) - return false; - -diff --git a/js/src/jit/JitAllocPolicy.h b/js/src/jit/JitAllocPolicy.h -index 4bbd1a3..fca4b3f 100644 ---- a/js/src/jit/JitAllocPolicy.h -+++ b/js/src/jit/JitAllocPolicy.h -@@ -48,12 +48,13 @@ class TempAllocator - return p; - } - -- template -- void* allocateArray(size_t n) -+ template -+ T* allocateArray(size_t n) - { -- if (MOZ_UNLIKELY(n & mozilla::tl::MulOverflowMask::value)) -+ size_t bytes; -+ if (MOZ_UNLIKELY(!CalculateAllocSize(n, &bytes))) - return nullptr; -- void* p = lifoScope_.alloc().alloc(n * ElemSize); -+ T* p = static_cast(lifoScope_.alloc().alloc(bytes)); - if (MOZ_UNLIKELY(!ensureBallast())) - return nullptr; - return p; -@@ -79,9 +80,10 @@ class JitAllocPolicy - {} - template - T* pod_malloc(size_t numElems) { -- if (MOZ_UNLIKELY(numElems & mozilla::tl::MulOverflowMask::value)) -+ size_t bytes; -+ if (MOZ_UNLIKELY(!CalculateAllocSize(numElems, &bytes))) - return nullptr; -- return static_cast(alloc_.allocate(numElems * sizeof(T))); -+ return static_cast(alloc_.allocate(bytes)); - } - template - T* pod_calloc(size_t numElems) { -@@ -112,9 +114,10 @@ class OldJitAllocPolicy - {} - template - T* pod_malloc(size_t numElems) { -- if (MOZ_UNLIKELY(numElems & mozilla::tl::MulOverflowMask::value)) -+ size_t bytes; -+ if (MOZ_UNLIKELY(!CalculateAllocSize(numElems, &bytes))) - return nullptr; -- return static_cast(GetJitContext()->temp->allocate(numElems * sizeof(T))); -+ return static_cast(GetJitContext()->temp->allocate(bytes)); - } - void free_(void* p) { - } -diff --git a/js/src/jit/LIR.cpp b/js/src/jit/LIR.cpp -index 70a3fc0..a76e742 100644 ---- a/js/src/jit/LIR.cpp -+++ b/js/src/jit/LIR.cpp -@@ -105,8 +105,7 @@ LBlock::init(TempAllocator& alloc) - - int numPhis = (phi->type() == MIRType_Value) ? BOX_PIECES : 1; - for (int i = 0; i < numPhis; i++) { -- void* array = alloc.allocateArray(numPreds); -- LAllocation* inputs = static_cast(array); -+ LAllocation* inputs = alloc.allocateArray(numPreds); - if (!inputs) - return false; - -diff --git a/js/src/jit/MIRGenerator.h b/js/src/jit/MIRGenerator.h -index 01de27d..5e6b9ef 100644 ---- a/js/src/jit/MIRGenerator.h -+++ b/js/src/jit/MIRGenerator.h -@@ -60,10 +60,11 @@ class MIRGenerator - } - - template -- T * allocate(size_t count = 1) { -- if (count & mozilla::tl::MulOverflowMask::value) -+ T* allocate(size_t count = 1) { -+ size_t bytes; -+ if (MOZ_UNLIKELY(!CalculateAllocSize(count, &bytes))) - return nullptr; -- return reinterpret_cast(alloc().allocate(sizeof(T) * count)); -+ return static_cast(alloc().allocate(bytes)); - } - - // Set an error state and prints a message. Returns false so errors can be -diff --git a/js/src/jit/MIRGraph.cpp b/js/src/jit/MIRGraph.cpp -index 5d000dca..4c5cf8e 100644 ---- a/js/src/jit/MIRGraph.cpp -+++ b/js/src/jit/MIRGraph.cpp -@@ -297,7 +297,7 @@ MBasicBlock::NewAsmJS(MIRGraph& graph, CompileInfo& info, MBasicBlock* pred, Kin - size_t nphis = block->stackPosition_; - - TempAllocator& alloc = graph.alloc(); -- MPhi* phis = (MPhi*)alloc.allocateArray(nphis); -+ MPhi* phis = alloc.allocateArray(nphis); - if (!phis) - return nullptr; - -diff --git a/js/src/jsalloc.h b/js/src/jsalloc.h -index ce11ade..e20fa5f2 100644 ---- a/js/src/jsalloc.h -+++ b/js/src/jsalloc.h -@@ -53,6 +53,14 @@ class TempAllocPolicy - */ - JS_FRIEND_API(void*) onOutOfMemory(void* p, size_t nbytes); - -+ template -+ T* onOutOfMemoryTyped(void* p, size_t numElems) { -+ size_t bytes; -+ if (MOZ_UNLIKELY(!CalculateAllocSize(numElems, &bytes))) -+ return nullptr; -+ return static_cast(onOutOfMemory(p, bytes)); -+ } -+ - public: - MOZ_IMPLICIT TempAllocPolicy(JSContext* cx) : cx_((ContextFriendFields*) cx) {} // :( - MOZ_IMPLICIT TempAllocPolicy(ContextFriendFields* cx) : cx_(cx) {} -@@ -61,7 +69,7 @@ class TempAllocPolicy - T* pod_malloc(size_t numElems) { - T* p = js_pod_malloc(numElems); - if (MOZ_UNLIKELY(!p)) -- p = static_cast(onOutOfMemory(nullptr, numElems * sizeof(T))); -+ p = onOutOfMemoryTyped(nullptr, numElems); - return p; - } - -@@ -69,7 +77,7 @@ class TempAllocPolicy - T* pod_calloc(size_t numElems) { - T* p = js_pod_calloc(numElems); - if (MOZ_UNLIKELY(!p)) -- p = static_cast(onOutOfMemory(reinterpret_cast(1), numElems * sizeof(T))); -+ p = onOutOfMemoryTyped(reinterpret_cast(1), numElems); - return p; - } - -@@ -77,7 +85,7 @@ class TempAllocPolicy - T* pod_realloc(T* prior, size_t oldSize, size_t newSize) { - T* p2 = js_pod_realloc(prior, oldSize, newSize); - if (MOZ_UNLIKELY(!p2)) -- p2 = static_cast(onOutOfMemory(p2, newSize * sizeof(T))); -+ p2 = onOutOfMemoryTyped(p2, newSize); - return p2; - } - -diff --git a/js/src/vm/MallocProvider.h b/js/src/vm/MallocProvider.h -index 1ea4ce2..f334eb1 100644 ---- a/js/src/vm/MallocProvider.h -+++ b/js/src/vm/MallocProvider.h -@@ -64,30 +64,27 @@ struct MallocProvider - client()->updateMallocCounter(numElems * sizeof(T)); - return p; - } -- if (numElems & mozilla::tl::MulOverflowMask::value) { -+ size_t bytes; -+ if (MOZ_UNLIKELY(!CalculateAllocSize(numElems, &bytes))) { - client()->reportAllocationOverflow(); - return nullptr; - } -- return (T*)client()->onOutOfMemory(nullptr, numElems * sizeof(T)); -+ return static_cast(client()->onOutOfMemory(nullptr, bytes)); - } - - template - T* pod_malloc_with_extra(size_t numExtra) { -- if (MOZ_UNLIKELY(numExtra & mozilla::tl::MulOverflowMask::value)) { -+ size_t bytes; -+ if (MOZ_UNLIKELY((!CalculateAllocSizeWithExtra(numExtra, &bytes)))) { - client()->reportAllocationOverflow(); - return nullptr; - } -- size_t bytes = sizeof(T) + numExtra * sizeof(U); -- if (MOZ_UNLIKELY(bytes < sizeof(T))) { -- client()->reportAllocationOverflow(); -- return nullptr; -- } -- T* p = reinterpret_cast(js_pod_malloc(bytes)); -+ T* p = static_cast(js_malloc(bytes)); - if (MOZ_LIKELY(p)) { - client()->updateMallocCounter(bytes); - return p; - } -- return (T*)client()->onOutOfMemory(nullptr, bytes); -+ return static_cast(client()->onOutOfMemory(nullptr, bytes)); - } - - template -@@ -108,30 +105,27 @@ struct MallocProvider - client()->updateMallocCounter(numElems * sizeof(T)); - return p; - } -- if (numElems & mozilla::tl::MulOverflowMask::value) { -+ size_t bytes; -+ if (MOZ_UNLIKELY(!CalculateAllocSize(numElems, &bytes))) { - client()->reportAllocationOverflow(); - return nullptr; - } -- return (T*)client()->onOutOfMemory(nullptr, numElems * sizeof(T)); -+ return static_cast(client()->onOutOfMemory(nullptr, bytes)); - } - - template - T* pod_calloc_with_extra(size_t numExtra) { -- if (MOZ_UNLIKELY(numExtra & mozilla::tl::MulOverflowMask::value)) { -- client()->reportAllocationOverflow(); -- return nullptr; -- } -- size_t bytes = sizeof(T) + numExtra * sizeof(U); -- if (MOZ_UNLIKELY(bytes < sizeof(T))) { -+ size_t bytes; -+ if (MOZ_UNLIKELY((!CalculateAllocSizeWithExtra(numExtra, &bytes)))) { - client()->reportAllocationOverflow(); - return nullptr; - } -- T* p = reinterpret_cast(js_pod_calloc(bytes)); -+ T* p = static_cast(js_calloc(bytes)); - if (MOZ_LIKELY(p)) { - client()->updateMallocCounter(bytes); - return p; - } -- return (T*)client()->onOutOfMemory(nullptr, bytes); -+ return static_cast(client()->onOutOfMemory(nullptr, bytes)); - } - - template -@@ -151,11 +145,12 @@ struct MallocProvider - client()->updateMallocCounter((newSize - oldSize) * sizeof(T)); - return p; - } -- if (newSize & mozilla::tl::MulOverflowMask::value) { -+ size_t bytes; -+ if (MOZ_UNLIKELY(!CalculateAllocSize(newSize, &bytes))) { - client()->reportAllocationOverflow(); - return nullptr; - } -- return (T*)client()->onOutOfMemory(prior, newSize * sizeof(T)); -+ return static_cast(client()->onOutOfMemory(prior, bytes)); - } - - JS_DECLARE_NEW_METHODS(new_, pod_malloc, MOZ_ALWAYS_INLINE) -diff --git a/js/src/vm/Runtime.h b/js/src/vm/Runtime.h -index 90771d6..24c34d3 100644 ---- a/js/src/vm/Runtime.h -+++ b/js/src/vm/Runtime.h -@@ -1354,11 +1354,12 @@ struct JSRuntime : public JS::shadow::Runtime, - T* p = pod_calloc(numElems); - if (MOZ_LIKELY(!!p)) - return p; -- if (numElems & mozilla::tl::MulOverflowMask::value) { -+ size_t bytes; -+ if (MOZ_UNLIKELY(!js::CalculateAllocSize(numElems, &bytes))) { - reportAllocationOverflow(); - return nullptr; - } -- return (T*)onOutOfMemoryCanGC(reinterpret_cast(1), numElems * sizeof(T)); -+ return static_cast(onOutOfMemoryCanGC(reinterpret_cast(1), bytes)); - } - - template -@@ -1366,11 +1367,12 @@ struct JSRuntime : public JS::shadow::Runtime, - T* p2 = pod_realloc(p, oldSize, newSize); - if (MOZ_LIKELY(!!p2)) - return p2; -- if (newSize & mozilla::tl::MulOverflowMask::value) { -+ size_t bytes; -+ if (MOZ_UNLIKELY(!js::CalculateAllocSize(newSize, &bytes))) { - reportAllocationOverflow(); - return nullptr; - } -- return (T*)onOutOfMemoryCanGC(p, newSize * sizeof(T)); -+ return static_cast(onOutOfMemoryCanGC(p, bytes)); - } - - /* --- -2.5.0 - diff --git a/gnu/packages/patches/icecat-CVE-2015-4513-pt07.patch b/gnu/packages/patches/icecat-CVE-2015-4513-pt07.patch deleted file mode 100644 index 042188ee9c..0000000000 --- a/gnu/packages/patches/icecat-CVE-2015-4513-pt07.patch +++ /dev/null @@ -1,93 +0,0 @@ -From 182bcb255e28b536e2d2a1208fde3324a994dbc1 Mon Sep 17 00:00:00 2001 -From: Benjamin Bouvier -Date: Tue, 13 Oct 2015 19:22:47 +0200 -Subject: [PATCH] Bug 1107011: Propagate recovered on bailout flags when - converting float32 to doubles; r=nbp, a=ritu, a=abillings - ---HG-- -extra : commitid : 51QGWZ84Mqx -extra : amend_source : 48bf9cd43b37c95d61dd4d11b184c307e84a56b5 -extra : histedit_source : ae510534e698e680103f508e0029d75f03f4e6e0%2C1d8eb51e63dd3a52898892976f50747cc3907e65 ---- - js/src/jit-test/tests/ion/bug1107011-1.js | 17 +++++++++++++++++ - js/src/jit-test/tests/ion/bug1107011-2.js | 12 ++++++++++++ - js/src/jit/TypePolicy.cpp | 2 ++ - js/src/jit/ValueNumbering.cpp | 6 ++++++ - 4 files changed, 37 insertions(+) - create mode 100644 js/src/jit-test/tests/ion/bug1107011-1.js - create mode 100644 js/src/jit-test/tests/ion/bug1107011-2.js - -diff --git a/js/src/jit-test/tests/ion/bug1107011-1.js b/js/src/jit-test/tests/ion/bug1107011-1.js -new file mode 100644 -index 0000000..458d7dd ---- /dev/null -+++ b/js/src/jit-test/tests/ion/bug1107011-1.js -@@ -0,0 +1,17 @@ -+var f32 = new Float32Array(32); -+function f(n) { -+ var x; -+ if (n > 10000) { -+ x = 4.5; -+ } else { -+ x = f32[0]; -+ } -+ f32[0] = (function() { -+ for(var f=0;f<4;++f) { -+ x=1; -+ } -+ })() < x; -+} -+for (var n = 0; n < 100; n++) -+ f(n); -+ -diff --git a/js/src/jit-test/tests/ion/bug1107011-2.js b/js/src/jit-test/tests/ion/bug1107011-2.js -new file mode 100644 -index 0000000..d59685e ---- /dev/null -+++ b/js/src/jit-test/tests/ion/bug1107011-2.js -@@ -0,0 +1,12 @@ -+function foo() { -+ var x = 0, y = 0, a = new Float32Array(1); -+ function bar() { -+ x = y; -+ y = a[0]; -+ } -+ for (var i = 0; i < 1000; i++) { -+ bar(); -+ } -+} -+for (var i=0; i < 50; i++) -+ foo(); -diff --git a/js/src/jit/TypePolicy.cpp b/js/src/jit/TypePolicy.cpp -index 4cea638..2510d50 100644 ---- a/js/src/jit/TypePolicy.cpp -+++ b/js/src/jit/TypePolicy.cpp -@@ -22,6 +22,8 @@ EnsureOperandNotFloat32(TempAllocator& alloc, MInstruction* def, unsigned op) - if (in->type() == MIRType_Float32) { - MToDouble* replace = MToDouble::New(alloc, in); - def->block()->insertBefore(def, replace); -+ if (def->isRecoveredOnBailout()) -+ replace->setRecoveredOnBailout(); - def->replaceOperand(op, replace); - } - } -diff --git a/js/src/jit/ValueNumbering.cpp b/js/src/jit/ValueNumbering.cpp -index da3e692..eb367e1 100644 ---- a/js/src/jit/ValueNumbering.cpp -+++ b/js/src/jit/ValueNumbering.cpp -@@ -726,6 +726,12 @@ ValueNumberer::visitDefinition(MDefinition* def) - return true; - } - -+ // Skip optimizations on instructions which are recovered on bailout, to -+ // avoid mixing instructions which are recovered on bailouts with -+ // instructions which are not. -+ if (def->isRecoveredOnBailout()) -+ return true; -+ - // If this instruction has a dependency() into an unreachable block, we'll - // need to update AliasAnalysis. - MInstruction* dep = def->dependency(); --- -2.5.0 - diff --git a/gnu/packages/patches/icecat-CVE-2015-4513-pt08.patch b/gnu/packages/patches/icecat-CVE-2015-4513-pt08.patch deleted file mode 100644 index 6a16b07497..0000000000 --- a/gnu/packages/patches/icecat-CVE-2015-4513-pt08.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 544bc596ac085ee1adc0b3d7ea793bc37d747ce2 Mon Sep 17 00:00:00 2001 -From: Carsten Book -Date: Mon, 19 Oct 2015 08:49:46 +0200 -Subject: [PATCH] Bug 1213979 - h2 paket formats. r=hurley, a=al - ---HG-- -extra : source : 551a28778624d4aff67b698952b1b3e011fc21f7 -extra : intermediate-source : ed67ac61d1c0e4a23888abe3abd3f4636757e038 ---- - netwerk/protocol/http/Http2Stream.cpp | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/netwerk/protocol/http/Http2Stream.cpp b/netwerk/protocol/http/Http2Stream.cpp -index 38fc025..340eccf 100644 ---- a/netwerk/protocol/http/Http2Stream.cpp -+++ b/netwerk/protocol/http/Http2Stream.cpp -@@ -629,9 +629,9 @@ Http2Stream::AdjustInitialWindow() - return; - } - -- uint8_t *packet = mTxInlineFrame.get() + mTxInlineFrameUsed; - EnsureBuffer(mTxInlineFrame, mTxInlineFrameUsed + Http2Session::kFrameHeaderBytes + 4, - mTxInlineFrameUsed, mTxInlineFrameSize); -+ uint8_t *packet = mTxInlineFrame.get() + mTxInlineFrameUsed; - mTxInlineFrameUsed += Http2Session::kFrameHeaderBytes + 4; - - mSession->CreateFrameHeader(packet, 4, -@@ -661,9 +661,9 @@ Http2Stream::AdjustPushedPriority() - if (mPushSource->RecvdFin() || mPushSource->RecvdReset()) - return; - -- uint8_t *packet = mTxInlineFrame.get() + mTxInlineFrameUsed; - EnsureBuffer(mTxInlineFrame, mTxInlineFrameUsed + Http2Session::kFrameHeaderBytes + 5, - mTxInlineFrameUsed, mTxInlineFrameSize); -+ uint8_t *packet = mTxInlineFrame.get() + mTxInlineFrameUsed; - mTxInlineFrameUsed += Http2Session::kFrameHeaderBytes + 5; - - mSession->CreateFrameHeader(packet, 5, --- -2.5.0 - diff --git a/gnu/packages/patches/icecat-CVE-2015-4513-pt09.patch b/gnu/packages/patches/icecat-CVE-2015-4513-pt09.patch deleted file mode 100644 index 687eb0af76..0000000000 --- a/gnu/packages/patches/icecat-CVE-2015-4513-pt09.patch +++ /dev/null @@ -1,65 +0,0 @@ -From ef6298177a8390c01f5084ba89a808015a0b9473 Mon Sep 17 00:00:00 2001 -From: Gerald Squelart -Date: Thu, 22 Oct 2015 10:00:12 +0200 -Subject: [PATCH] Bug 1204580 - Check box ranges for overflow - r=rillian, a=al - ---- - media/libstagefright/binding/Box.cpp | 21 +++++++++++++++++++-- - 1 file changed, 19 insertions(+), 2 deletions(-) - -diff --git a/media/libstagefright/binding/Box.cpp b/media/libstagefright/binding/Box.cpp -index 71c79ed..2558be0 100644 ---- a/media/libstagefright/binding/Box.cpp -+++ b/media/libstagefright/binding/Box.cpp -@@ -40,6 +40,11 @@ Box::Box(BoxContext* aContext, uint64_t aOffset, const Box* aParent) - : mContext(aContext), mParent(aParent) - { - uint8_t header[8]; -+ -+ if (aOffset > INT64_MAX - sizeof(header)) { -+ return; -+ } -+ - MediaByteRange headerRange(aOffset, aOffset + sizeof(header)); - if (mParent && !mParent->mRange.Contains(headerRange)) { - return; -@@ -67,11 +72,14 @@ Box::Box(BoxContext* aContext, uint64_t aOffset, const Box* aParent) - uint64_t size = BigEndian::readUint32(header); - if (size == 1) { - uint8_t bigLength[8]; -+ if (aOffset > INT64_MAX - sizeof(header) - sizeof(bigLength)) { -+ return; -+ } - MediaByteRange bigLengthRange(headerRange.mEnd, - headerRange.mEnd + sizeof(bigLength)); - if ((mParent && !mParent->mRange.Contains(bigLengthRange)) || - !byteRange->Contains(bigLengthRange) || -- !mContext->mSource->CachedReadAt(aOffset, bigLength, -+ !mContext->mSource->CachedReadAt(aOffset + sizeof(header), bigLength, - sizeof(bigLength), &bytes) || - bytes != sizeof(bigLength)) { - return; -@@ -82,10 +90,19 @@ Box::Box(BoxContext* aContext, uint64_t aOffset, const Box* aParent) - mBodyOffset = headerRange.mEnd; - } - -+ if (size > INT64_MAX) { -+ return; -+ } -+ int64_t end = static_cast(aOffset) + static_cast(size); -+ if (end < static_cast(aOffset)) { -+ // Overflowed. -+ return; -+ } -+ - mType = BigEndian::readUint32(&header[4]); - mChildOffset = mBodyOffset + BoxOffset(mType); - -- MediaByteRange boxRange(aOffset, aOffset + size); -+ MediaByteRange boxRange(aOffset, end); - if (mChildOffset > boxRange.mEnd || - (mParent && !mParent->mRange.Contains(boxRange)) || - !byteRange->Contains(boxRange)) { --- -2.5.0 - diff --git a/gnu/packages/patches/icecat-CVE-2015-4513-pt10.patch b/gnu/packages/patches/icecat-CVE-2015-4513-pt10.patch deleted file mode 100644 index 43dd17786f..0000000000 --- a/gnu/packages/patches/icecat-CVE-2015-4513-pt10.patch +++ /dev/null @@ -1,110 +0,0 @@ -From 7b6c571182661cfffa0987c1a88a2cb5a3230bcd Mon Sep 17 00:00:00 2001 -From: Georg Fritzsche -Date: Tue, 18 Aug 2015 19:21:40 +0200 -Subject: [PATCH] Bug 1193038 - Purposely leak StatisticsReport object and - suppress the leak report. r=glandium,mccr8,njn, a=lizzard - ---HG-- -extra : source : 346b9ee524d1a704ea953ef16237f3d0c7ee56d1 -extra : intermediate-source : 48b17faad125691454ebba9bdef0a5def9128f11 ---- - build/valgrind/cross-architecture.sup | 9 +++++++++ - toolkit/xre/nsAppRunner.cpp | 22 +++++++++++++++------- - 2 files changed, 24 insertions(+), 7 deletions(-) - -diff --git a/build/valgrind/cross-architecture.sup b/build/valgrind/cross-architecture.sup -index 9215d3b..1e9d7ab 100644 ---- a/build/valgrind/cross-architecture.sup -+++ b/build/valgrind/cross-architecture.sup -@@ -34,6 +34,15 @@ - fun:_ZN13CrashReporter14SetupExtraDataEP7nsIFileRK19nsACString_internal - ... - } -+{ -+ We purposely leak the StatisticsReporter object -+ Memcheck:Leak -+ fun:malloc -+ fun:moz_xmalloc -+ fun:operator new -+ fun:_Z21XRE_CreateStatsObjectv -+ ... -+} - - #################################### - # Leaks in third party libraries # -diff --git a/toolkit/xre/nsAppRunner.cpp b/toolkit/xre/nsAppRunner.cpp -index 5334a05..037aeac 100644 ---- a/toolkit/xre/nsAppRunner.cpp -+++ b/toolkit/xre/nsAppRunner.cpp -@@ -20,6 +20,7 @@ - #include "mozilla/Poison.h" - #include "mozilla/Preferences.h" - #include "mozilla/Telemetry.h" -+#include "mozilla/MemoryChecking.h" - - #include "nsAppRunner.h" - #include "mozilla/AppData.h" -@@ -3004,7 +3005,6 @@ public: - - ~XREMain() { - mScopedXPCOM = nullptr; -- mStatisticsRecorder = nullptr; - mAppData = nullptr; - } - -@@ -3023,7 +3023,6 @@ public: - #endif - - UniquePtr mScopedXPCOM; -- UniquePtr mStatisticsRecorder; - nsAutoPtr mAppData; - - nsXREDirProvider mDirProvider; -@@ -4268,10 +4267,6 @@ XREMain::XRE_main(int argc, char* argv[], const nsXREAppData* aAppData) - - NS_ENSURE_TRUE(aAppData, 2); - -- // A initializer to initialize histogram collection, a chromium -- // thing used by Telemetry. -- mStatisticsRecorder = MakeUnique(); -- - mAppData = new ScopedAppData(aAppData); - if (!mAppData) - return 1; -@@ -4345,7 +4340,6 @@ XREMain::XRE_main(int argc, char* argv[], const nsXREAppData* aAppData) - } - - mScopedXPCOM = nullptr; -- mStatisticsRecorder = nullptr; - - // unlock the profile after ScopedXPCOMStartup object (xpcom) - // has gone out of scope. see bug #386739 for more details -@@ -4531,11 +4525,25 @@ XRE_StopLateWriteChecks(void) { - mozilla::StopLateWriteChecks(); - } - -+// Separate stub function to let us specifically suppress it in Valgrind -+void -+XRE_CreateStatsObject() -+{ -+ // A initializer to initialize histogram collection, a chromium -+ // thing used by Telemetry (and effectively a global; it's all static). -+ // Note: purposely leaked -+ base::StatisticsRecorder* statistics_recorder = new base::StatisticsRecorder(); -+ MOZ_LSAN_INTENTIONALLY_LEAK_OBJECT(statistics_recorder); -+ unused << statistics_recorder; -+} -+ - int - XRE_main(int argc, char* argv[], const nsXREAppData* aAppData, uint32_t aFlags) - { - #if !defined(MOZ_METRO) || !defined(XP_WIN) - XREMain main; -+ -+ XRE_CreateStatsObject(); - int result = main.XRE_main(argc, argv, aAppData); - mozilla::RecordShutdownEndTimeStamp(); - return result; --- -2.5.0 - diff --git a/gnu/packages/patches/icecat-CVE-2015-4513-pt11.patch b/gnu/packages/patches/icecat-CVE-2015-4513-pt11.patch deleted file mode 100644 index c4b326b9ed..0000000000 --- a/gnu/packages/patches/icecat-CVE-2015-4513-pt11.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 72185a2795d4627203970e3c17fd9b3a6944edc6 Mon Sep 17 00:00:00 2001 -From: "Nicolas B. Pierron" -Date: Thu, 15 Oct 2015 10:57:39 +0200 -Subject: [PATCH] Bug 1204700 - ARM: Use a different scratch register for - store32. r=sstangl, a=lizzard - ---HG-- -extra : commitid : 8itRSfm5tEh -extra : source : ebafbc7c1a870499159cdd2ee91573f1b52c728a ---- - js/src/jit/arm/MacroAssembler-arm.cpp | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/js/src/jit/arm/MacroAssembler-arm.cpp b/js/src/jit/arm/MacroAssembler-arm.cpp -index 7b8c06e..c8030bb 100644 ---- a/js/src/jit/arm/MacroAssembler-arm.cpp -+++ b/js/src/jit/arm/MacroAssembler-arm.cpp -@@ -2487,8 +2487,8 @@ MacroAssemblerARMCompat::store32(Imm32 src, const Address& address) - void - MacroAssemblerARMCompat::store32(Imm32 imm, const BaseIndex& dest) - { -- ma_mov(imm, secondScratchReg_); -- store32(secondScratchReg_, dest); -+ ma_mov(imm, ScratchRegister); -+ store32(ScratchRegister, dest); - } - - void -@@ -2498,8 +2498,8 @@ MacroAssemblerARMCompat::store32(Register src, const BaseIndex& dest) - uint32_t scale = Imm32::ShiftOf(dest.scale).value; - - if (dest.offset != 0) { -- ma_add(base, Imm32(dest.offset), ScratchRegister); -- base = ScratchRegister; -+ ma_add(base, Imm32(dest.offset), secondScratchReg_); -+ base = secondScratchReg_; - } - ma_str(src, DTRAddr(base, DtrRegImmShift(dest.index, LSL, scale))); - } --- -2.5.0 - diff --git a/gnu/packages/patches/icecat-CVE-2015-7188.patch b/gnu/packages/patches/icecat-CVE-2015-7188.patch deleted file mode 100644 index 15e26e3a6e..0000000000 --- a/gnu/packages/patches/icecat-CVE-2015-7188.patch +++ /dev/null @@ -1,143 +0,0 @@ -From 23e5bd6ffab4b6fa17a92d0bc58fbd185e9a7e6e Mon Sep 17 00:00:00 2001 -From: Valentin Gosu -Date: Tue, 13 Oct 2015 11:10:26 +0200 -Subject: [PATCH] Bug 1199430 - Reject hostnames containing @. r=mcmanus, a=al - ---- - docshell/test/unit/test_nsDefaultURIFixup_info.js | 16 ++++++------ - netwerk/base/nsStandardURL.cpp | 30 ++++++++++++++--------- - netwerk/base/nsStandardURL.h | 2 +- - 3 files changed, 27 insertions(+), 21 deletions(-) - -diff --git a/docshell/test/unit/test_nsDefaultURIFixup_info.js b/docshell/test/unit/test_nsDefaultURIFixup_info.js -index b178ea9..dbb55c6 100644 ---- a/docshell/test/unit/test_nsDefaultURIFixup_info.js -+++ b/docshell/test/unit/test_nsDefaultURIFixup_info.js -@@ -199,12 +199,10 @@ let testcases = [ { - protocolChange: true - }, { - input: "[::1][100", -- fixedURI: "http://[::1][100/", -- alternateURI: "http://[::1][100/", -+ fixedURI: null, -+ alternateURI: null, - keywordLookup: true, -- protocolChange: true, -- affectedByWhitelist: true, -- affectedByDNSForSingleHosts: true, -+ protocolChange: true - }, { - input: "[::1]]", - keywordLookup: true, -@@ -514,15 +512,15 @@ if (Services.appinfo.OS.toLowerCase().startsWith("win")) { - input: "//mozilla", - fixedURI: "file:////mozilla", - protocolChange: true, -- }); -+ }); // \ is an invalid character in the hostname until bug 652186 is implemented - testcases.push({ - input: "mozilla\\", -- fixedURI: "http://mozilla\\/", -- alternateURI: "http://www.mozilla/", -+ // fixedURI: "http://mozilla\\/", -+ // alternateURI: "http://www.mozilla/", - keywordLookup: true, - protocolChange: true, - affectedByWhitelist: true, -- affectedByDNSForSingleHosts: true, -+ // affectedByDNSForSingleHosts: true, - }); - } - -diff --git a/netwerk/base/nsStandardURL.cpp b/netwerk/base/nsStandardURL.cpp -index f5f516f..cff90fc 100644 ---- a/netwerk/base/nsStandardURL.cpp -+++ b/netwerk/base/nsStandardURL.cpp -@@ -427,14 +427,16 @@ nsStandardURL::NormalizeIDN(const nsCSubstring &host, nsCString &result) - } - - bool --nsStandardURL::ValidIPv6orHostname(const char *host) -+nsStandardURL::ValidIPv6orHostname(const char *host, uint32_t length) - { -- if (!host || !*host) { -- // Should not be NULL or empty string -+ if (!host) { - return false; - } - -- int32_t length = strlen(host); -+ if (length != strlen(host)) { -+ // Embedded null -+ return false; -+ } - - bool openBracket = host[0] == '['; - bool closeBracket = host[length - 1] == ']'; -@@ -448,8 +450,9 @@ nsStandardURL::ValidIPv6orHostname(const char *host) - return false; - } - -- if (PL_strchr(host, ':')) { -- // Hostnames should not contain a colon -+ const char *end = host + length; -+ if (end != net_FindCharInSet(host, end, "\t\n\v\f\r #/:?@[\\]")) { -+ // % is allowed because we don't do hostname percent decoding yet. - return false; - } - -@@ -587,6 +590,11 @@ nsStandardURL::BuildNormalizedSpec(const char *spec) - approxLen += encHost.Length(); - else - approxLen += mHost.mLen; -+ -+ if ((useEncHost && !ValidIPv6orHostname(encHost.BeginReading(), encHost.Length())) || -+ (!useEncHost && !ValidIPv6orHostname(tempHost.BeginReading(), tempHost.Length()))) { -+ return NS_ERROR_MALFORMED_URI; -+ } - } - - // -@@ -1580,14 +1588,10 @@ nsStandardURL::SetHost(const nsACString &input) - if (strchr(host, ' ')) - return NS_ERROR_MALFORMED_URI; - -- if (!ValidIPv6orHostname(host)) { -- return NS_ERROR_MALFORMED_URI; -- } -- - InvalidateCache(); - mHostEncoding = eEncoding_ASCII; - -- int32_t len; -+ uint32_t len; - nsAutoCString hostBuf; - if (NormalizeIDN(flat, hostBuf)) { - host = hostBuf.get(); -@@ -1596,6 +1600,10 @@ nsStandardURL::SetHost(const nsACString &input) - else - len = flat.Length(); - -+ if (!ValidIPv6orHostname(host, len)) { -+ return NS_ERROR_MALFORMED_URI; -+ } -+ - if (mHost.mLen < 0) { - int port_length = 0; - if (mPort != -1) { -diff --git a/netwerk/base/nsStandardURL.h b/netwerk/base/nsStandardURL.h -index 179a618..c56426e 100644 ---- a/netwerk/base/nsStandardURL.h -+++ b/netwerk/base/nsStandardURL.h -@@ -173,7 +173,7 @@ private: - void Clear(); - void InvalidateCache(bool invalidateCachedFile = true); - -- bool ValidIPv6orHostname(const char *host); -+ bool ValidIPv6orHostname(const char *host, uint32_t aLen); - bool NormalizeIDN(const nsCSubstring &host, nsCString &result); - void CoalescePath(netCoalesceFlags coalesceFlag, char *path); - --- -2.5.0 - diff --git a/gnu/packages/patches/icecat-CVE-2015-7189.patch b/gnu/packages/patches/icecat-CVE-2015-7189.patch deleted file mode 100644 index 329d1b6f1f..0000000000 --- a/gnu/packages/patches/icecat-CVE-2015-7189.patch +++ /dev/null @@ -1,143 +0,0 @@ -From 377e1cefec0fcf230caafb97b4414c835d27c7fe Mon Sep 17 00:00:00 2001 -From: Milan Sreckovic -Date: Fri, 2 Oct 2015 09:18:26 +0200 -Subject: [PATCH] Bug 1205900 - Compare context and canvas element sizes before - extracting the data. r=gwright, a=al - ---HG-- -extra : source : f6c99c8baa9b0b6a34d6791e5d4031a2de8f2087 ---- - dom/canvas/CanvasRenderingContext2D.cpp | 2 -- - dom/canvas/CanvasRenderingContext2D.h | 7 +++---- - dom/canvas/WebGLContext.cpp | 2 -- - dom/canvas/WebGLContext.h | 3 +-- - dom/canvas/nsICanvasRenderingContextInternal.h | 8 +++----- - dom/html/HTMLCanvasElement.cpp | 13 +++++++------ - 6 files changed, 14 insertions(+), 21 deletions(-) - -diff --git a/dom/canvas/CanvasRenderingContext2D.cpp b/dom/canvas/CanvasRenderingContext2D.cpp -index d9eaf99..a06fbce 100644 ---- a/dom/canvas/CanvasRenderingContext2D.cpp -+++ b/dom/canvas/CanvasRenderingContext2D.cpp -@@ -1418,7 +1418,6 @@ CanvasRenderingContext2D::EnsureTarget(RenderingMode aRenderingMode) - return mode; - } - --#ifdef DEBUG - int32_t - CanvasRenderingContext2D::GetWidth() const - { -@@ -1430,7 +1429,6 @@ CanvasRenderingContext2D::GetHeight() const - { - return mHeight; - } --#endif - - NS_IMETHODIMP - CanvasRenderingContext2D::SetDimensions(int32_t width, int32_t height) -diff --git a/dom/canvas/CanvasRenderingContext2D.h b/dom/canvas/CanvasRenderingContext2D.h -index af29c78..e853987 100644 ---- a/dom/canvas/CanvasRenderingContext2D.h -+++ b/dom/canvas/CanvasRenderingContext2D.h -@@ -481,10 +481,9 @@ public: - - nsresult Redraw(); - --#ifdef DEBUG -- virtual int32_t GetWidth() const override; -- virtual int32_t GetHeight() const override; --#endif -+ virtual int32_t GetWidth() const override; -+ virtual int32_t GetHeight() const override; -+ - // nsICanvasRenderingContextInternal - /** - * Gets the pres shell from either the canvas element or the doc shell -diff --git a/dom/canvas/WebGLContext.cpp b/dom/canvas/WebGLContext.cpp -index 1c22c27..f2a620a 100644 ---- a/dom/canvas/WebGLContext.cpp -+++ b/dom/canvas/WebGLContext.cpp -@@ -463,7 +463,6 @@ WebGLContext::SetContextOptions(JSContext* cx, JS::Handle options) - return NS_OK; - } - --#ifdef DEBUG - int32_t - WebGLContext::GetWidth() const - { -@@ -475,7 +474,6 @@ WebGLContext::GetHeight() const - { - return mHeight; - } --#endif - - /* So there are a number of points of failure here. We might fail based - * on EGL vs. WGL, or we might fail to alloc a too-large size, or we -diff --git a/dom/canvas/WebGLContext.h b/dom/canvas/WebGLContext.h -index 63c4091..210f341 100644 ---- a/dom/canvas/WebGLContext.h -+++ b/dom/canvas/WebGLContext.h -@@ -202,10 +202,9 @@ public: - NS_DECL_NSIDOMWEBGLRENDERINGCONTEXT - - // nsICanvasRenderingContextInternal --#ifdef DEBUG - virtual int32_t GetWidth() const override; - virtual int32_t GetHeight() const override; --#endif -+ - NS_IMETHOD SetDimensions(int32_t width, int32_t height) override; - NS_IMETHOD InitializeWithSurface(nsIDocShell*, gfxASurface*, int32_t, - int32_t) override -diff --git a/dom/canvas/nsICanvasRenderingContextInternal.h b/dom/canvas/nsICanvasRenderingContextInternal.h -index 3b1120f..fb1ef7c 100644 ---- a/dom/canvas/nsICanvasRenderingContextInternal.h -+++ b/dom/canvas/nsICanvasRenderingContextInternal.h -@@ -81,11 +81,9 @@ public: - return mCanvasElement; - } - --#ifdef DEBUG -- // Useful for testing -- virtual int32_t GetWidth() const = 0; -- virtual int32_t GetHeight() const = 0; --#endif -+ // Dimensions of the canvas, in pixels. -+ virtual int32_t GetWidth() const = 0; -+ virtual int32_t GetHeight() const = 0; - - // Sets the dimensions of the canvas, in pixels. Called - // whenever the size of the element changes. -diff --git a/dom/html/HTMLCanvasElement.cpp b/dom/html/HTMLCanvasElement.cpp -index f326662..68649f5 100644 ---- a/dom/html/HTMLCanvasElement.cpp -+++ b/dom/html/HTMLCanvasElement.cpp -@@ -526,18 +526,19 @@ HTMLCanvasElement::ToBlob(JSContext* aCx, - return; - } - --#ifdef DEBUG - if (mCurrentContext) { - // We disallow canvases of width or height zero, and set them to 1, so - // we will have a discrepancy with the sizes of the canvas and the context. - // That discrepancy is OK, the rest are not. - nsIntSize elementSize = GetWidthHeight(); -- MOZ_ASSERT(elementSize.width == mCurrentContext->GetWidth() || -- (elementSize.width == 0 && mCurrentContext->GetWidth() == 1)); -- MOZ_ASSERT(elementSize.height == mCurrentContext->GetHeight() || -- (elementSize.height == 0 && mCurrentContext->GetHeight() == 1)); -+ if ((elementSize.width != mCurrentContext->GetWidth() && -+ (elementSize.width != 0 || mCurrentContext->GetWidth() != 1)) || -+ (elementSize.height != mCurrentContext->GetHeight() && -+ (elementSize.height != 0 || mCurrentContext->GetHeight() != 1))) { -+ aRv.Throw(NS_ERROR_FAILURE); -+ return; -+ } - } --#endif - - uint8_t* imageBuffer = nullptr; - int32_t format = 0; --- -2.5.0 - diff --git a/gnu/packages/patches/icecat-CVE-2015-7193.patch b/gnu/packages/patches/icecat-CVE-2015-7193.patch deleted file mode 100644 index 798799de9f..0000000000 --- a/gnu/packages/patches/icecat-CVE-2015-7193.patch +++ /dev/null @@ -1,397 +0,0 @@ -From d135e3b3c48811c577e1632a41c5c50bc55c035c Mon Sep 17 00:00:00 2001 -From: Ehsan Akhgari -Date: Tue, 20 Oct 2015 11:40:12 +0200 -Subject: [PATCH] Bug 1210302 - Add a NS_ParseRequestContentType API; ba=al, - r=mcmanus, r=sicking, a=al - ---HG-- -extra : amend_source : d93021b626709b03f6499029dc3d1813cccba386 ---- - docshell/base/nsDocShell.cpp | 2 +- - dom/base/Navigator.cpp | 4 +-- - dom/base/nsContentUtils.cpp | 2 +- - dom/html/nsHTMLDocument.cpp | 2 +- - dom/manifest/ManifestProcessor.jsm | 6 ++-- - netwerk/base/moz.build | 1 + - netwerk/base/nsINetUtil_ESR_38.idl | 14 +++++++++ - netwerk/base/nsIOService.cpp | 12 ++++++++ - netwerk/base/nsIOService.h | 3 ++ - netwerk/base/nsNetUtil.h | 21 +++++++++++++ - netwerk/base/nsURLHelper.cpp | 60 +++++++++++++++++++++++++++++++++++--- - netwerk/base/nsURLHelper.h | 32 +++++++++++++++----- - 12 files changed, 139 insertions(+), 20 deletions(-) - create mode 100644 netwerk/base/nsINetUtil_ESR_38.idl - -diff --git a/docshell/base/nsDocShell.cpp b/docshell/base/nsDocShell.cpp -index bcc205c..4fc7c34 100644 ---- a/docshell/base/nsDocShell.cpp -+++ b/docshell/base/nsDocShell.cpp -@@ -13519,7 +13519,7 @@ nsDocShell::OnLinkClickSync(nsIContent* aContent, - anchor->GetType(typeHint); - NS_ConvertUTF16toUTF8 utf8Hint(typeHint); - nsAutoCString type, dummy; -- NS_ParseContentType(utf8Hint, type, dummy); -+ NS_ParseRequestContentType(utf8Hint, type, dummy); - CopyUTF8toUTF16(type, typeHint); - } - -diff --git a/dom/base/Navigator.cpp b/dom/base/Navigator.cpp -index f4ea502..7288420 100644 ---- a/dom/base/Navigator.cpp -+++ b/dom/base/Navigator.cpp -@@ -1221,9 +1221,9 @@ Navigator::SendBeacon(const nsAString& aUrl, - rv = secMan->CheckSameOriginURI(documentURI, uri, false); - bool crossOrigin = NS_FAILED(rv); - nsAutoCString contentType, parsedCharset; -- rv = NS_ParseContentType(mimeType, contentType, parsedCharset); -+ rv = NS_ParseRequestContentType(mimeType, contentType, parsedCharset); - if (crossOrigin && -- contentType.Length() > 0 && -+ mimeType.Length() > 0 && - !contentType.Equals(APPLICATION_WWW_FORM_URLENCODED) && - !contentType.Equals(MULTIPART_FORM_DATA) && - !contentType.Equals(TEXT_PLAIN)) { -diff --git a/dom/base/nsContentUtils.cpp b/dom/base/nsContentUtils.cpp -index 5e8dbd6..686f7bf 100644 ---- a/dom/base/nsContentUtils.cpp -+++ b/dom/base/nsContentUtils.cpp -@@ -7001,7 +7001,7 @@ nsContentUtils::IsAllowedNonCorsContentType(const nsACString& aHeaderValue) - nsAutoCString contentType; - nsAutoCString unused; - -- nsresult rv = NS_ParseContentType(aHeaderValue, contentType, unused); -+ nsresult rv = NS_ParseRequestContentType(aHeaderValue, contentType, unused); - if (NS_FAILED(rv)) { - return false; - } -diff --git a/dom/html/nsHTMLDocument.cpp b/dom/html/nsHTMLDocument.cpp -index 7481109..d195792 100644 ---- a/dom/html/nsHTMLDocument.cpp -+++ b/dom/html/nsHTMLDocument.cpp -@@ -1422,7 +1422,7 @@ nsHTMLDocument::Open(JSContext* cx, - nsAutoString type; - nsContentUtils::ASCIIToLower(aType, type); - nsAutoCString actualType, dummy; -- NS_ParseContentType(NS_ConvertUTF16toUTF8(type), actualType, dummy); -+ NS_ParseRequestContentType(NS_ConvertUTF16toUTF8(type), actualType, dummy); - if (!actualType.EqualsLiteral("text/html") && - !type.EqualsLiteral("replace")) { - contentType.AssignLiteral("text/plain"); -diff --git a/dom/manifest/ManifestProcessor.jsm b/dom/manifest/ManifestProcessor.jsm -index b6df920..f16881a 100644 ---- a/dom/manifest/ManifestProcessor.jsm -+++ b/dom/manifest/ManifestProcessor.jsm -@@ -31,7 +31,7 @@ const imports = {}; - Cu.import('resource://gre/modules/Services.jsm', imports); - Cu.importGlobalProperties(['URL']); - const securityManager = imports.Services.scriptSecurityManager; --const netutil = Cc['@mozilla.org/network/util;1'].getService(Ci.nsINetUtil); -+const netutil = Cc['@mozilla.org/network/util;1'].getService(Ci.nsINetUtil_ESR_38); - const defaultDisplayMode = 'browser'; - const displayModes = new Set([ - 'fullscreen', -@@ -258,7 +258,7 @@ this.ManifestProcessor.prototype.process = function({ - }; - let value = extractValue(obj), - isParsable = (typeof value === 'string' && value.length > 0); -- value = (isParsable) ? netutil.parseContentType(value.trim(), charset, hadCharset) : undefined; -+ value = (isParsable) ? netutil.parseRequestContentType(value.trim(), charset, hadCharset) : undefined; - return (value === '') ? undefined : value; - } - -@@ -354,4 +354,4 @@ this.ManifestProcessor.prototype.process = function({ - }; - processedManifest.scope = processScopeMember(manifest, manifestURL, docURL, processedManifest.start_url); - return processedManifest; --}; -\ No newline at end of file -+}; -diff --git a/netwerk/base/moz.build b/netwerk/base/moz.build -index 877365b..deedf76 100644 ---- a/netwerk/base/moz.build -+++ b/netwerk/base/moz.build -@@ -59,6 +59,7 @@ XPIDL_SOURCES += [ - 'nsINestedURI.idl', - 'nsINetAddr.idl', - 'nsINetUtil.idl', -+ 'nsINetUtil_ESR_38.idl', - 'nsINetworkInterceptController.idl', - 'nsINetworkLinkService.idl', - 'nsINetworkPredictor.idl', -diff --git a/netwerk/base/nsINetUtil_ESR_38.idl b/netwerk/base/nsINetUtil_ESR_38.idl -new file mode 100644 -index 0000000..7ef40e9 ---- /dev/null -+++ b/netwerk/base/nsINetUtil_ESR_38.idl -@@ -0,0 +1,14 @@ -+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -+/* This Source Code Form is subject to the terms of the Mozilla Public -+ * License, v. 2.0. If a copy of the MPL was not distributed with this -+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -+ -+#include "nsISupports.idl" -+ -+[scriptable, uuid(e82f2b9d-8bac-48bb-ade7-26a7cd4fb894)] -+interface nsINetUtil_ESR_38 : nsISupports -+{ -+ AUTF8String parseRequestContentType(in AUTF8String aTypeHeader, -+ out AUTF8String aCharset, -+ out boolean aHadCharset); -+}; -diff --git a/netwerk/base/nsIOService.cpp b/netwerk/base/nsIOService.cpp -index 83db86f..9a17e8b 100644 ---- a/netwerk/base/nsIOService.cpp -+++ b/netwerk/base/nsIOService.cpp -@@ -321,6 +321,7 @@ NS_IMPL_ISUPPORTS(nsIOService, - nsIIOService, - nsIIOService2, - nsINetUtil, -+ nsINetUtil_ESR_38, - nsISpeculativeConnect, - nsIObserver, - nsISupportsWeakReference) -@@ -1280,6 +1281,17 @@ nsIOService::Observe(nsISupports *subject, - - // nsINetUtil interface - NS_IMETHODIMP -+nsIOService::ParseRequestContentType(const nsACString &aTypeHeader, -+ nsACString &aCharset, -+ bool *aHadCharset, -+ nsACString &aContentType) -+{ -+ net_ParseRequestContentType(aTypeHeader, aContentType, aCharset, aHadCharset); -+ return NS_OK; -+} -+ -+// nsINetUtil interface -+NS_IMETHODIMP - nsIOService::ParseContentType(const nsACString &aTypeHeader, - nsACString &aCharset, - bool *aHadCharset, -diff --git a/netwerk/base/nsIOService.h b/netwerk/base/nsIOService.h -index acd501c..b125709 100644 ---- a/netwerk/base/nsIOService.h -+++ b/netwerk/base/nsIOService.h -@@ -14,6 +14,7 @@ - #include "nsIObserver.h" - #include "nsWeakReference.h" - #include "nsINetUtil.h" -+#include "nsINetUtil_ESR_38.h" - #include "nsIChannelEventSink.h" - #include "nsCategoryCache.h" - #include "nsISpeculativeConnect.h" -@@ -47,6 +48,7 @@ namespace net { - class nsIOService final : public nsIIOService2 - , public nsIObserver - , public nsINetUtil -+ , public nsINetUtil_ESR_38 - , public nsISpeculativeConnect - , public nsSupportsWeakReference - { -@@ -56,6 +58,7 @@ public: - NS_DECL_NSIIOSERVICE2 - NS_DECL_NSIOBSERVER - NS_DECL_NSINETUTIL -+ NS_DECL_NSINETUTIL_ESR_38 - NS_DECL_NSISPECULATIVECONNECT - - // Gets the singleton instance of the IO Service, creating it as needed -diff --git a/netwerk/base/nsNetUtil.h b/netwerk/base/nsNetUtil.h -index ec69716..df8874c 100644 ---- a/netwerk/base/nsNetUtil.h -+++ b/netwerk/base/nsNetUtil.h -@@ -56,6 +56,7 @@ - #include "nsISyncStreamListener.h" - #include "nsInterfaceRequestorAgg.h" - #include "nsINetUtil.h" -+#include "nsINetUtil_ESR_38.h" - #include "nsIURIWithPrincipal.h" - #include "nsIAuthPrompt.h" - #include "nsIAuthPrompt2.h" -@@ -1228,6 +1229,26 @@ NS_GetReferrerFromChannel(nsIChannel *channel, - } - - inline nsresult -+NS_ParseRequestContentType(const nsACString &rawContentType, -+ nsCString &contentType, -+ nsCString &contentCharset) -+{ -+ // contentCharset is left untouched if not present in rawContentType -+ nsresult rv; -+ nsCOMPtr util = do_GetNetUtil(&rv); -+ NS_ENSURE_SUCCESS(rv, rv); -+ nsCOMPtr utilESR38 = do_QueryInterface(util, &rv); -+ NS_ENSURE_SUCCESS(rv, rv); -+ nsCString charset; -+ bool hadCharset; -+ rv = utilESR38->ParseRequestContentType(rawContentType, charset, &hadCharset, -+ contentType); -+ if (NS_SUCCEEDED(rv) && hadCharset) -+ contentCharset = charset; -+ return rv; -+} -+ -+inline nsresult - NS_ParseContentType(const nsACString &rawContentType, - nsCString &contentType, - nsCString &contentCharset) -diff --git a/netwerk/base/nsURLHelper.cpp b/netwerk/base/nsURLHelper.cpp -index 10ea849..cdb2120 100644 ---- a/netwerk/base/nsURLHelper.cpp -+++ b/netwerk/base/nsURLHelper.cpp -@@ -803,7 +803,8 @@ net_ParseMediaType(const nsACString &aMediaTypeStr, - int32_t aOffset, - bool *aHadCharset, - int32_t *aCharsetStart, -- int32_t *aCharsetEnd) -+ int32_t *aCharsetEnd, -+ bool aStrict) - { - const nsCString& flatStr = PromiseFlatCString(aMediaTypeStr); - const char* start = flatStr.get(); -@@ -820,6 +821,8 @@ net_ParseMediaType(const nsACString &aMediaTypeStr, - int32_t charsetParamStart = 0; - int32_t charsetParamEnd = 0; - -+ uint32_t consumed = typeEnd - type; -+ - // Iterate over parameters - bool typeHasCharset = false; - uint32_t paramStart = flatStr.FindChar(';', typeEnd - start); -@@ -843,6 +846,7 @@ net_ParseMediaType(const nsACString &aMediaTypeStr, - charsetParamEnd = curParamEnd; - } - -+ consumed = curParamEnd; - curParamStart = curParamEnd + 1; - } while (curParamStart < flatStr.Length()); - } -@@ -872,8 +876,10 @@ net_ParseMediaType(const nsACString &aMediaTypeStr, - // some servers give junk after the charset parameter, which may - // include a comma, so this check makes us a bit more tolerant. - -- if (type != typeEnd && strncmp(type, "*/*", typeEnd - type) != 0 && -- memchr(type, '/', typeEnd - type) != nullptr) { -+ if (type != typeEnd && -+ memchr(type, '/', typeEnd - type) != nullptr && -+ (aStrict ? (net_FindCharNotInSet(start + consumed, end, HTTP_LWS) == end) : -+ (strncmp(type, "*/*", typeEnd - type) != 0))) { - // Common case here is that aContentType is empty - bool eq = !aContentType.IsEmpty() && - aContentType.Equals(Substring(type, typeEnd), -@@ -980,13 +986,59 @@ net_ParseContentType(const nsACString &aHeaderStr, - net_ParseMediaType(Substring(flatStr, curTypeStart, - curTypeEnd - curTypeStart), - aContentType, aContentCharset, curTypeStart, -- aHadCharset, aCharsetStart, aCharsetEnd); -+ aHadCharset, aCharsetStart, aCharsetEnd, false); - - // And let's move on to the next media-type - curTypeStart = curTypeEnd + 1; - } while (curTypeStart < flatStr.Length()); - } - -+void -+net_ParseRequestContentType(const nsACString &aHeaderStr, -+ nsACString &aContentType, -+ nsACString &aContentCharset, -+ bool *aHadCharset) -+{ -+ // -+ // Augmented BNF (from RFC 7231 section 3.1.1.1): -+ // -+ // media-type = type "/" subtype *( OWS ";" OWS parameter ) -+ // type = token -+ // subtype = token -+ // parameter = token "=" ( token / quoted-string ) -+ // -+ // Examples: -+ // -+ // text/html -+ // text/html; charset=ISO-8859-1 -+ // text/html; charset="ISO-8859-1" -+ // application/octet-stream -+ // -+ -+ aContentType.Truncate(); -+ aContentCharset.Truncate(); -+ *aHadCharset = false; -+ const nsCString& flatStr = PromiseFlatCString(aHeaderStr); -+ -+ // At this point curTypeEnd points to the spot where the media-type -+ // starting at curTypeEnd ends. Time to parse that! -+ nsAutoCString contentType, contentCharset; -+ bool hadCharset = false; -+ int32_t dummy1, dummy2; -+ uint32_t typeEnd = net_FindMediaDelimiter(flatStr, 0, ','); -+ if (typeEnd != flatStr.Length()) { -+ // We have some stuff left at the end, so this is not a valid -+ // request Content-Type header. -+ return; -+ } -+ net_ParseMediaType(flatStr, contentType, contentCharset, 0, -+ &hadCharset, &dummy1, &dummy2, true); -+ -+ aContentType = contentType; -+ aContentCharset = contentCharset; -+ *aHadCharset = hadCharset; -+} -+ - bool - net_IsValidHostName(const nsCSubstring &host) - { -diff --git a/netwerk/base/nsURLHelper.h b/netwerk/base/nsURLHelper.h -index 816a3c5..21e17be 100644 ---- a/netwerk/base/nsURLHelper.h -+++ b/netwerk/base/nsURLHelper.h -@@ -172,11 +172,27 @@ char * net_RFindCharNotInSet(const char *str, const char *end, const char *set); - * specified), aHadCharset is set to false. Otherwise, it's set to - * true. Note that aContentCharset can be empty even if aHadCharset - * is true. -+ * -+ * This parsing is suitable for HTTP request. Use net_ParseContentType -+ * for parsing this header in HTTP responses. -+ */ -+void net_ParseRequestContentType(const nsACString &aHeaderStr, -+ nsACString &aContentType, -+ nsACString &aContentCharset, -+ bool* aHadCharset); -+ -+/** -+ * Parses a content-type header and returns the content type and -+ * charset (if any). aCharset is not modified if no charset is -+ * specified in anywhere in aHeaderStr. In that case (no charset -+ * specified), aHadCharset is set to false. Otherwise, it's set to -+ * true. Note that aContentCharset can be empty even if aHadCharset -+ * is true. - */ - void net_ParseContentType(const nsACString &aHeaderStr, -- nsACString &aContentType, -- nsACString &aContentCharset, -- bool* aHadCharset); -+ nsACString &aContentType, -+ nsACString &aContentCharset, -+ bool* aHadCharset); - /** - * As above, but also returns the start and end indexes for the charset - * parameter in aHeaderStr. These are indices for the entire parameter, NOT -@@ -187,11 +203,11 @@ void net_ParseContentType(const nsACString &aHeaderStr, - * *aCharsetStart is nonnegative; this corresponds to charset="". - */ - void net_ParseContentType(const nsACString &aHeaderStr, -- nsACString &aContentType, -- nsACString &aContentCharset, -- bool *aHadCharset, -- int32_t *aCharsetStart, -- int32_t *aCharsetEnd); -+ nsACString &aContentType, -+ nsACString &aContentCharset, -+ bool *aHadCharset, -+ int32_t *aCharsetStart, -+ int32_t *aCharsetEnd); - - /* inline versions */ - --- -2.5.0 - diff --git a/gnu/packages/patches/icecat-CVE-2015-7194.patch b/gnu/packages/patches/icecat-CVE-2015-7194.patch deleted file mode 100644 index 481da06a7f..0000000000 --- a/gnu/packages/patches/icecat-CVE-2015-7194.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 382a08fa0b21d46c44c46af39041324f304a9dfa Mon Sep 17 00:00:00 2001 -From: Aaron Klotz -Date: Tue, 13 Oct 2015 12:20:25 -0600 -Subject: [PATCH] Bug 1211262: Ensure that STORED entries in ZIP are considered - corrupt if compressed and uncompressed sizes differ; r=mwu, a=ritu - ---HG-- -extra : source : 673d9f45b802f1fd1ffaaeae19d433622fe68a5e -extra : intermediate-source : db9d3e806685d72a2891830ffbc42ef3cde559ae ---- - modules/libjar/nsZipArchive.cpp | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/modules/libjar/nsZipArchive.cpp b/modules/libjar/nsZipArchive.cpp -index bb1e21b..eaf22ac 100644 ---- a/modules/libjar/nsZipArchive.cpp -+++ b/modules/libjar/nsZipArchive.cpp -@@ -828,8 +828,10 @@ MOZ_WIN_MEM_TRY_BEGIN - // -- check if there is enough source data in the file - if (!offset || - mFd->mLen < aItem->Size() || -- offset > mFd->mLen - aItem->Size()) -+ offset > mFd->mLen - aItem->Size() || -+ (aItem->Compression() == STORED && aItem->Size() != aItem->RealSize())) { - return nullptr; -+ } - - return mFd->mFileData + offset; - MOZ_WIN_MEM_TRY_CATCH(return nullptr) --- -2.5.0 - diff --git a/gnu/packages/patches/icecat-CVE-2015-7196.patch b/gnu/packages/patches/icecat-CVE-2015-7196.patch deleted file mode 100644 index 6114ebf505..0000000000 --- a/gnu/packages/patches/icecat-CVE-2015-7196.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 3ed5c713015536b49dc88d3d4a36b60833ccd09a Mon Sep 17 00:00:00 2001 -From: Jan de Mooij -Date: Tue, 25 Aug 2015 13:11:41 +0200 -Subject: [PATCH] Bug 1140616 - Crash when _releaseobject is called on the - wrong thread. r=bsmedberg, a=sledru, a=lizzard - ---HG-- -extra : source : 6a513309283d06f56cebee8528cfcf134a74f3c4 ---- - dom/plugins/base/nsNPAPIPlugin.cpp | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/dom/plugins/base/nsNPAPIPlugin.cpp b/dom/plugins/base/nsNPAPIPlugin.cpp -index f0d07fa..9cd2e05 100644 ---- a/dom/plugins/base/nsNPAPIPlugin.cpp -+++ b/dom/plugins/base/nsNPAPIPlugin.cpp -@@ -1413,6 +1413,7 @@ _releaseobject(NPObject* npobj) - { - if (!NS_IsMainThread()) { - NPN_PLUGIN_LOG(PLUGIN_LOG_ALWAYS,("NPN_releaseobject called from the wrong thread\n")); -+ MOZ_CRASH("NPN_releaseobject called from the wrong thread"); - } - if (!npobj) - return; --- -2.5.0 - diff --git a/gnu/packages/patches/icecat-CVE-2015-7197.patch b/gnu/packages/patches/icecat-CVE-2015-7197.patch deleted file mode 100644 index 1763341ff7..0000000000 --- a/gnu/packages/patches/icecat-CVE-2015-7197.patch +++ /dev/null @@ -1,70 +0,0 @@ -From a522e727bff0fb69cb0d34c2d2ad89168d15158d Mon Sep 17 00:00:00 2001 -From: Ehsan Akhgari -Date: Sat, 12 Sep 2015 17:38:51 -0400 -Subject: [PATCH] Bug 1204269 - Use the worker private in order to determine - the origin of the entry settings object for workers; r=smaug a=me - ---- - dom/base/WebSocket.cpp | 46 ++++++++++++++++++++++++++-------------------- - 1 file changed, 26 insertions(+), 20 deletions(-) - -diff --git a/dom/base/WebSocket.cpp b/dom/base/WebSocket.cpp -index ea91232..26b94d0 100644 ---- a/dom/base/WebSocket.cpp -+++ b/dom/base/WebSocket.cpp -@@ -1503,26 +1503,32 @@ WebSocketImpl::Init(JSContext* aCx, - !Preferences::GetBool("network.websocket.allowInsecureFromHTTPS", - false)) { - // Confirmed we are opening plain ws:// and want to prevent this from a -- // secure context (e.g. https). Check the principal's uri to determine if -- // we were loaded from https. -- nsCOMPtr globalObject(GetEntryGlobal()); -- if (globalObject) { -- nsCOMPtr principal(globalObject->PrincipalOrNull()); -- if (principal) { -- nsCOMPtr uri; -- principal->GetURI(getter_AddRefs(uri)); -- if (uri) { -- bool originIsHttps = false; -- aRv = uri->SchemeIs("https", &originIsHttps); -- if (NS_WARN_IF(aRv.Failed())) { -- return; -- } -- -- if (originIsHttps) { -- aRv.Throw(NS_ERROR_DOM_SECURITY_ERR); -- return; -- } -- } -+ // secure context (e.g. https). -+ nsCOMPtr principal; -+ nsCOMPtr originURI; -+ if (mWorkerPrivate) { -+ // For workers, retrieve the URI from the WorkerPrivate -+ principal = mWorkerPrivate->GetPrincipal(); -+ } else { -+ // Check the principal's uri to determine if we were loaded from https. -+ nsCOMPtr globalObject(GetEntryGlobal()); -+ if (globalObject) { -+ principal = globalObject->PrincipalOrNull(); -+ } -+ } -+ -+ if (principal) { -+ principal->GetURI(getter_AddRefs(originURI)); -+ } -+ if (originURI) { -+ bool originIsHttps = false; -+ aRv = originURI->SchemeIs("https", &originIsHttps); -+ if (NS_WARN_IF(aRv.Failed())) { -+ return; -+ } -+ if (originIsHttps) { -+ aRv.Throw(NS_ERROR_DOM_SECURITY_ERR); -+ return; - } - } - } --- -2.5.0 - diff --git a/gnu/packages/patches/icecat-CVE-2015-7198.patch b/gnu/packages/patches/icecat-CVE-2015-7198.patch deleted file mode 100644 index 2e127897bc..0000000000 --- a/gnu/packages/patches/icecat-CVE-2015-7198.patch +++ /dev/null @@ -1,27 +0,0 @@ -From cc2a334ee16e99d376fcb49203239abf9eb2c148 Mon Sep 17 00:00:00 2001 -From: Jeff Gilbert -Date: Wed, 7 Oct 2015 13:27:37 -0700 -Subject: [PATCH] Bug 1188010 - Use MOZ_RELEASE_ASSERT when failure means - overflow. - r=kamidphish, a=abillings - ---- - dom/canvas/WebGLTexture.cpp | 3 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) - -diff --git a/dom/canvas/WebGLTexture.cpp b/dom/canvas/WebGLTexture.cpp -index 60afc45..d6a6ccd 100644 ---- a/dom/canvas/WebGLTexture.cpp -+++ b/dom/canvas/WebGLTexture.cpp -@@ -651,8 +651,7 @@ WebGLTexture::EnsureNoUninitializedImageData(TexImageTarget imageTarget, - imageInfo.mDepth, - bytespertexel, - mContext->mPixelStoreUnpackAlignment); -- MOZ_ASSERT(checked_byteLength.isValid()); // Should have been checked -- // earlier. -+ MOZ_RELEASE_ASSERT(checked_byteLength.isValid()); // Should have been checked earlier. - - // Infallible for now. - UniquePtr zeros((uint8_t*)moz_xcalloc(1, --- -2.5.0 - diff --git a/gnu/packages/patches/icecat-CVE-2015-7199.patch b/gnu/packages/patches/icecat-CVE-2015-7199.patch deleted file mode 100644 index d6b830b8a0..0000000000 --- a/gnu/packages/patches/icecat-CVE-2015-7199.patch +++ /dev/null @@ -1,84 +0,0 @@ -From 04741232fa561a4c299f31a5b5fb4603da79d2c5 Mon Sep 17 00:00:00 2001 -From: Robert Longson -Date: Tue, 6 Oct 2015 13:19:03 +0100 -Subject: [PATCH] Bug 1204061 - check return values from some methods - r=dholbert, a=sylvestre - ---HG-- -extra : source : f4c2f277aeae7bf8b05c6b01d1e140cd51b693b4 ---- - dom/svg/SVGPathSegListSMILType.cpp | 23 +++++++++++------------ - 1 file changed, 11 insertions(+), 12 deletions(-) - -diff --git a/dom/svg/SVGPathSegListSMILType.cpp b/dom/svg/SVGPathSegListSMILType.cpp -index f8b67d0..6df0f53 100644 ---- a/dom/svg/SVGPathSegListSMILType.cpp -+++ b/dom/svg/SVGPathSegListSMILType.cpp -@@ -232,7 +232,7 @@ AddWeightedPathSegs(double aCoeff1, - * identity, in which case we'll grow it to the right - * size. Also allowed to be the same list as aList1. - */ --static void -+static nsresult - AddWeightedPathSegLists(double aCoeff1, const SVGPathDataAndInfo& aList1, - double aCoeff2, const SVGPathDataAndInfo& aList2, - SVGPathDataAndInfo& aResult) -@@ -263,8 +263,9 @@ AddWeightedPathSegLists(double aCoeff1, const SVGPathDataAndInfo& aList1, - // because in that case, we will have already set iter1 to nullptr above, to - // record that our first operand is an identity value.) - if (aResult.IsIdentity()) { -- DebugOnly success = aResult.SetLength(aList2.Length()); -- MOZ_ASSERT(success, "infallible nsTArray::SetLength should succeed"); -+ if (!aResult.SetLength(aList2.Length())) { -+ return NS_ERROR_OUT_OF_MEMORY; -+ } - aResult.SetElement(aList2.Element()); // propagate target element info! - } - -@@ -280,6 +281,7 @@ AddWeightedPathSegLists(double aCoeff1, const SVGPathDataAndInfo& aList1, - iter2 == end2 && - resultIter == aResult.end(), - "Very, very bad - path data corrupt"); -+ return NS_OK; - } - - static void -@@ -429,9 +431,7 @@ SVGPathSegListSMILType::Add(nsSMILValue& aDest, - } - } - -- AddWeightedPathSegLists(1.0, dest, aCount, valueToAdd, dest); -- -- return NS_OK; -+ return AddWeightedPathSegLists(1.0, dest, aCount, valueToAdd, dest); - } - - nsresult -@@ -482,8 +482,9 @@ SVGPathSegListSMILType::Interpolate(const nsSMILValue& aStartVal, - if (check == eRequiresConversion) { - // Can't convert |start| in-place, since it's const. Instead, we copy it - // into |result|, converting the types as we go, and use that as our start. -- DebugOnly success = result.SetLength(end.Length()); -- MOZ_ASSERT(success, "infallible nsTArray::SetLength should succeed"); -+ if (!result.SetLength(end.Length())) { -+ return NS_ERROR_OUT_OF_MEMORY; -+ } - result.SetElement(end.Element()); // propagate target element info! - - ConvertAllPathSegmentData(start.begin(), start.end(), -@@ -492,10 +493,8 @@ SVGPathSegListSMILType::Interpolate(const nsSMILValue& aStartVal, - startListToUse = &result; - } - -- AddWeightedPathSegLists(1.0 - aUnitDistance, *startListToUse, -- aUnitDistance, end, result); -- -- return NS_OK; -+ return AddWeightedPathSegLists(1.0 - aUnitDistance, *startListToUse, -+ aUnitDistance, end, result); - } - - } // namespace mozilla --- -2.5.0 - -- cgit v1.2.3 From 4bddf74ef23a515635e3b5787ade3cb39deaf17d Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 4 Dec 2015 15:53:31 +0100 Subject: profiles: Silence GTK+ icon theme union. Suggested by Ricardo Wurmus . * guix/profiles.scm (gtk-icon-themes)[build]: Pass 'union-build' a #:log-port argument. --- guix/profiles.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/guix/profiles.scm b/guix/profiles.scm index e8bd564efa..154c8a105f 100644 --- a/guix/profiles.scm +++ b/guix/profiles.scm @@ -658,7 +658,8 @@ creates the GTK+ 'icon-theme.cache' file for each theme." ;; Union all the icons. (mkdir-p (string-append #$output "/share")) - (union-build destdir icondirs) + (union-build destdir icondirs + #:log-port (%make-void-port "w")) ;; Update the 'icon-theme.cache' file for each icon theme. (for-each -- cgit v1.2.3 From 2aacd9179ca618fe4f3d568caf2052a47b17cbe6 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 4 Dec 2015 15:57:03 +0100 Subject: profiles: Silence GTK+ icon cache creation. Suggested by Ricardo Wurmus . * guix/profiles.scm (gtk-icon-themes)[build]: Pass --quiet to 'gtk-update-icon-cache'. --- guix/profiles.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/guix/profiles.scm b/guix/profiles.scm index 154c8a105f..c222f4115d 100644 --- a/guix/profiles.scm +++ b/guix/profiles.scm @@ -669,7 +669,7 @@ creates the GTK+ 'icon-theme.cache' file for each theme." ;; "abiword_48.png". Ignore these. (when (file-is-directory? dir) (ensure-writable-directory dir) - (system* update-icon-cache "-t" dir)))) + (system* update-icon-cache "-t" dir "--quiet")))) (scandir destdir (negate (cut member <> '("." "..")))))))) ;; Don't run the hook when there's nothing to do. -- cgit v1.2.3 From e10964efd26fdbc3f8b2b5c3a0d359916df1b914 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Wed, 2 Dec 2015 19:59:29 +0800 Subject: services: Add 'session-environment-service'. * gnu/services/base.scm (session-environment-service): New procedure. (session-environment-service-type): New variable. (environment-variables->environment-file): New procedure. --- gnu/services/base.scm | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/gnu/services/base.scm b/gnu/services/base.scm index c242c7dbb8..a86e8e04c7 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2013, 2014, 2015 Ludovic Courtès ;;; Copyright © 2015 Alex Kost ;;; Copyright © 2015 Mark H Weaver +;;; Copyright © 2015 Sou Bunnbu ;;; ;;; This file is part of GNU Guix. ;;; @@ -48,6 +49,8 @@ device-mapping-service swap-service user-processes-service + session-environment-service + session-environment-service-type host-name-service console-keymap-service console-font-service @@ -366,6 +369,39 @@ stopped before 'kill' is called." (service user-processes-service-type (list file-systems grace-delay))) + +;;; +;;; System-wide environment variables. +;;; + +(define (environment-variables->environment-file vars) + "Return a file for pam_env(8) that contains environment variables VARS." + (apply mixed-text-file "environment" + (append-map (match-lambda + ((key . value) + (list key "=" value "\n"))) + vars))) + +(define session-environment-service-type + (service-type + (name 'session-environment) + (extensions + (list (service-extension + etc-service-type + (lambda (vars) + (list `("environment" + ,(environment-variables->environment-file vars))))))) + (compose concatenate) + (extend append))) + +(define (session-environment-service vars) + "Return a service that builds the @file{/etc/environment}, which can be read +by PAM-aware applications to set environment variables for sessions. + +VARS should be an association list in which both the keys and the values are +strings or string-valued gexps." + (service session-environment-service-type vars)) + ;;; ;;; Console & co. -- cgit v1.2.3 From af9908ff56fc9263c5f343c23002ac11300e195e Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Wed, 2 Dec 2015 21:28:35 +0800 Subject: system: pam: Honor /etc/environment. * gnu/system/pam.scm (unix-pam-service): Add pam_env module to the session group. --- gnu/system/pam.scm | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/gnu/system/pam.scm b/gnu/system/pam.scm index d8470f02a3..99d94a1a81 100644 --- a/gnu/system/pam.scm +++ b/gnu/system/pam.scm @@ -128,7 +128,10 @@ dumped in /etc/pam.d/NAME, where NAME is the name of SERVICE." (define unix-pam-service (let ((unix (pam-entry (control "required") - (module "pam_unix.so")))) + (module "pam_unix.so"))) + (env (pam-entry ; to honor /etc/environment. + (control "required") + (module "pam_env.so")))) (lambda* (name #:key allow-empty-passwords? motd) "Return a standard Unix-style PAM service for NAME. When ALLOW-EMPTY-PASSWORDS? is true, allow empty passwords. When MOTD is true, it @@ -150,13 +153,13 @@ should be a file-like object used as the message-of-the-day." ;; Store SHA-512 encrypted passwords in /etc/shadow. (arguments '("sha512" "shadow"))))) (session (if motd - (list unix + (list env unix (pam-entry (control "optional") (module "pam_motd.so") (arguments (list #~(string-append "motd=" #$motd))))) - (list unix)))))))) + (list env unix)))))))) (define (rootok-pam-service command) "Return a PAM service for COMMAND such that 'root' does not need to -- cgit v1.2.3 From 6bad7524a6dba18f700893953584ad8865b18729 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Wed, 2 Dec 2015 21:14:02 +0800 Subject: system: Add /etc/environment. * gnu/system.scm: (operating-system-environment-variables): New procedure. Adapted and moved environment variables from /etc/profile. (operating-system-etc-service): Adjust accordingly. (essential-services): Add an instance of SESSION-ENVIRONMENT-SERVICE-TYPE. --- gnu/system.scm | 39 ++++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/gnu/system.scm b/gnu/system.scm index 2755d85b23..ff981d95a2 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -299,6 +299,8 @@ a container or that of a \"bare metal\" system." (operating-system-groups os)) (operating-system-skeletons os)) (operating-system-etc-service os) + (session-environment-service + (operating-system-environment-variables os)) host-name procs root-fs unmount (service setuid-program-service-type (operating-system-setuid-programs os)) @@ -417,18 +419,6 @@ directory." ;; Startup file for POSIX-compliant login shells, which set system-wide ;; environment variables. (profile (mixed-text-file "profile" "\ -export LANG=\"" (operating-system-locale os) "\" -export TZ=\"" (operating-system-timezone os) "\" -export TZDIR=\"" tzdata "/share/zoneinfo\" - -# Tell 'modprobe' & co. where to look for modules. -export LINUX_MODULE_DIRECTORY=/run/booted-system/kernel/lib/modules - -# These variables are honored by OpenSSL (libssl) and Git. -export SSL_CERT_DIR=/etc/ssl/certs -export SSL_CERT_FILE=\"$SSL_CERT_DIR/ca-certificates.crt\" -export GIT_SSL_CAINFO=\"$SSL_CERT_FILE\" - # Crucial variables that could be missing in the profiles' 'etc/profile' # because they would require combining both profiles. # FIXME: See . @@ -458,13 +448,6 @@ else export PATH=\"$HOME/.guix-profile/bin:$PATH\" fi -# Append the directory of 'site-start.el' to the search path. -export EMACSLOADPATH=:/etc/emacs - -# By default, applications that use D-Bus, such as Emacs, abort at startup -# when /etc/machine-id is missing. Make sure these warnings are non-fatal. -export DBUS_FATAL_WARNINGS=0 - # Allow Aspell to find dictionaries installed in the user profile. export ASPELL_CONF=\"dict-dir $HOME/.guix-profile/lib/aspell\" @@ -561,6 +544,24 @@ use 'plain-file' instead~%") (fold-services (operating-system-services os) #:target-type etc-service-type))) +(define (operating-system-environment-variables os) + "Return the environment variables of OS for +@var{session-environment-service-type}, to be used in @file{/etc/environment}." + `(("LANG" . ,(operating-system-locale os)) + ("TZ" . ,(operating-system-timezone os)) + ("TZDIR" . ,#~(string-append #$tzdata "/share/zoneinfo")) + ;; Tell 'modprobe' & co. where to look for modules. + ("LINUX_MODULE_DIRECTORY" . "/run/booted-system/kernel/lib/modules") + ;; These variables are honored by OpenSSL (libssl) and Git. + ("SSL_CERT_DIR" . "/etc/ssl/certs") + ("SSL_CERT_FILE" . "/etc/ssl/certs/ca-certificates.crt") + ("GIT_SSL_CAINFO" . "/etc/ssl/certs/ca-certificates.crt") + ;; Append the directory of 'site-start.el' to the search path. + ("EMACSLOADPATH" . ":/etc/emacs") + ;; By default, applications that use D-Bus, such as Emacs, abort at startup + ;; when /etc/machine-id is missing. Make sure these warnings are non-fatal. + ("DBUS_FATAL_WARNINGS" . "0"))) + (define %setuid-programs ;; Default set of setuid-root programs. (let ((shadow (@ (gnu packages admin) shadow))) -- cgit v1.2.3 From 2fc5f186801ab8e989b6d8e97f37455af96969fd Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 8 Nov 2015 21:58:16 -0500 Subject: gnu: Add python-zope-event. * gnu/packages/python.scm (python-zope-event, python2-zope-event): New variables. --- gnu/packages/python.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 3385393f1b..25f5c6eeeb 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -10,6 +10,7 @@ ;;; Copyright © 2015 Ricardo Wurmus ;;; Copyright © 2015 Christopher Allan Webber ;;; Copyright © 2015 Eric Dvorsak +;;; Copyright © 2015 David Thompson ;;; Copyright © 2015 Leo Famulari ;;; Copyright © 2015 Ben Woodcroft ;;; Copyright © 2015 Erik Edrosa @@ -6006,3 +6007,29 @@ automatically detect a wide range of file encodings.") (define-public python2-chardet (package-with-python2 python-chardet)) + +(define-public python-zope-event + (package + (name "python-zope-event") + (version "4.1.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://pypi.python.org/packages/source/z" + "/zope.event/zope.event-" version ".tar.gz")) + (sha256 + (base32 + "11p75zpfz3ffhz21nzx9wb23xs993ck5s6hkjcvhswwizni5jynw")))) + (build-system python-build-system) + (inputs + `(("python-setuptools" ,python-setuptools))) + (home-page "http://pypi.python.org/pypi/zope.event") + (synopsis "Event publishing system for Python") + (description "Zope.event provides an event publishing API, intended for +use by applications which are unaware of any subscribers to their events. It +is a simple event-dispatching system on which more sophisticated event +dispatching systems can be built.") + (license zpl2.1))) + +(define-public python2-zope-event + (package-with-python2 python-zope-event)) -- cgit v1.2.3 From 97abe268ab54c2aa6aad9b9e068ace9f8ab87988 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 8 Nov 2015 21:59:08 -0500 Subject: gnu: Add python-zope-interface. * gnu/packages/python.scm (python-zope-interface, python2-zope-interface): New variables. --- gnu/packages/python.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 25f5c6eeeb..fbefd9598f 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -6033,3 +6033,29 @@ dispatching systems can be built.") (define-public python2-zope-event (package-with-python2 python-zope-event)) + +(define-public python-zope-interface + (package + (name "python-zope-interface") + (version "4.1.3") + (source + (origin + (method url-fetch) + (uri (string-append "https://pypi.python.org/packages/source/z" + "/zope.interface/zope.interface-" version ".tar.gz")) + (sha256 + (base32 + "0ks8h73b2g4bkad821qbv0wzjppdrwys33i7ka45ik3wxjg1l8if")))) + (build-system python-build-system) + (propagated-inputs + `(("python-zope-event" ,python-zope-event))) + (home-page "https://github.com/zopefoundation/zope.interface") + (synopsis "Python implementation of the \"design by contract\" +methodology") + (description "Zope.interface provides an implementation of \"object +interfaces\" for Python. Interfaces are a mechanism for labeling objects as +conforming to a given API or contract.") + (license zpl2.1))) + +(define-public python2-zope-interface + (package-with-python2 python-zope-interface)) -- cgit v1.2.3 From 81f2373cd4f3a6c4992573d9cacd0ff57b63ffd2 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 8 Nov 2015 22:00:40 -0500 Subject: gnu: Add python-zope-exceptions. * gnu/packages/python.scm (python-zope-exceptions, python2-zope-exceptions): New variables. --- gnu/packages/python.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index fbefd9598f..0aabe083ea 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -6059,3 +6059,30 @@ conforming to a given API or contract.") (define-public python2-zope-interface (package-with-python2 python-zope-interface)) + +(define-public python-zope-exceptions + (package + (name "python-zope-exceptions") + (version "4.0.8") + (source + (origin + (method url-fetch) + (uri (string-append "https://pypi.python.org/packages/source/z" + "/zope.exceptions/zope.exceptions-" + version ".tar.gz")) + (sha256 + (base32 + "0zwxaaa66sqxg5k7zcrvs0fbg9ym1njnxnr28dfmchzhwjvwnfzl")))) + (build-system python-build-system) + (arguments + '(#:tests? #f)) ; circular dependency with zope.testrunner + (propagated-inputs + `(("python-zope-interface" ,python-zope-interface))) + (home-page "http://cheeseshop.python.org/pypi/zope.exceptions") + (synopsis "Zope exceptions") + (description "Zope.exceptions provides general-purpose exception types +that have uses outside of the Zope framework.") + (license zpl2.1))) + +(define-public python2-zope-exceptions + (package-with-python2 python-zope-exceptions)) -- cgit v1.2.3 From 900e3c0e0e87e2da7e5297e39bbc8119b7209937 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 8 Nov 2015 22:01:16 -0500 Subject: gnu: Add python-zope-testing. * gnu/packages/python.scm (python-zope-testing, python2-zope-testing): New variables. --- gnu/packages/python.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 0aabe083ea..3dd50ff389 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -6086,3 +6086,29 @@ that have uses outside of the Zope framework.") (define-public python2-zope-exceptions (package-with-python2 python-zope-exceptions)) + +(define-public python-zope-testing + (package + (name "python-zope-testing") + (version "4.5.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://pypi.python.org/packages/source/z" + "/zope.testing/zope.testing-" version ".tar.gz")) + (sha256 + (base32 + "1yvglxhzvhl45mndvn9gskx2ph30zz1bz7rrlyfs62fv2pvih90s")))) + (build-system python-build-system) + (native-inputs + `(("python-zope-exceptions" ,python-zope-exceptions))) + (propagated-inputs + `(("python-zope-interface" ,python-zope-interface))) + (home-page "http://pypi.python.org/pypi/zope.testing") + (synopsis "Zope testing helpers") + (description "Zope.testing provides a number of testing utilities for HTML +forms, HTTP servers, regular expressions, and more.") + (license zpl2.1))) + +(define-public python2-zope-testing + (package-with-python2 python-zope-testing)) -- cgit v1.2.3 From 01614c4feaaf1ff942b08e9054bd3acf9399cae8 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 8 Nov 2015 22:01:51 -0500 Subject: gnu: Add python-zope-testrunner. * gnu/packages/python.scm (python-zope-testrunner, python2-zope-testrunner): New variables. --- gnu/packages/python.scm | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 3dd50ff389..1c9f9a6577 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -6112,3 +6112,39 @@ forms, HTTP servers, regular expressions, and more.") (define-public python2-zope-testing (package-with-python2 python-zope-testing)) + +(define-public python-zope-testrunner + (package + (name "python-zope-testrunner") + (version "4.4.9") + (source + (origin + (method url-fetch) + (uri (string-append "https://pypi.python.org/packages/source/z" + "/zope.testrunner/zope.testrunner-" + version ".zip")) + (sha256 + (base32 + "1r7iqknhh55y45f64mz5hghgvzx34h1i11k350s0avx6q8gznja1")))) + (build-system python-build-system) + (native-inputs + `(("python-six" ,python-six) + ("python-zope-exceptions" ,python-zope-exceptions) + ("python-zope-testing" ,python-zope-testing) + ("unzip" ,unzip))) + (propagated-inputs + `(("python-zope-interface" ,python-zope-interface))) + (home-page "http://pypi.python.org/pypi/zope.testrunner") + (synopsis "Zope testrunner script") + (description "Zope.testrunner provides a script for running Python +tests.") + (license zpl2.1))) + +(define-public python2-zope-testrunner + (let ((base (package-with-python2 python-zope-testrunner))) + (package + (inherit base) + (native-inputs + (append (package-native-inputs base) + `(("python2-subunit" ,python2-subunit) + ("python2-mimeparse" ,python2-mimeparse))))))) -- cgit v1.2.3 From 6a5c710c40c147c90af61afc3a8d693844d0f83e Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 8 Nov 2015 22:02:34 -0500 Subject: gnu: Add python-zope-i18nmessageid. * gnu/packages/python.scm (python-zope-i18nmessageid, python2-zope-i18nmessageid): New variables. --- gnu/packages/python.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 1c9f9a6577..4707a5c032 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -6148,3 +6148,29 @@ tests.") (append (package-native-inputs base) `(("python2-subunit" ,python2-subunit) ("python2-mimeparse" ,python2-mimeparse))))))) + +(define-public python-zope-i18nmessageid + (package + (name "python-zope-i18nmessageid") + (version "4.0.3") + (source + (origin + (method url-fetch) + (uri (string-append + "https://pypi.python.org/packages/source/z" + "/zope.i18nmessageid/zope.i18nmessageid-" + version ".tar.gz")) + (sha256 + (base32 + "1rslyph0klk58dmjjy4j0jxy21k03azksixc3x2xhqbkv97cmzml")))) + (build-system python-build-system) + (inputs + `(("python-setuptools" ,python-setuptools))) + (home-page "http://pypi.python.org/pypi/zope.i18nmessageid") + (synopsis "Message identifiers for internationalization") + (description "Zope.i18nmessageid provides facilities for declaring +internationalized messages within program source text.") + (license zpl2.1))) + +(define-public python2-zope-i18nmessageid + (package-with-python2 python-zope-i18nmessageid)) -- cgit v1.2.3 From 71fb09f32633bdf36151a10ea25b68409587f25f Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 8 Nov 2015 22:03:22 -0500 Subject: gnu: Add python-zope-schema. * gnu/packages/python.scm (python-zope-schema, python2-zope-schema): New variables. --- gnu/packages/python.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 4707a5c032..81c10fb008 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -6174,3 +6174,30 @@ internationalized messages within program source text.") (define-public python2-zope-i18nmessageid (package-with-python2 python-zope-i18nmessageid)) + +(define-public python-zope-schema + (package + (name "python-zope-schema") + (version "4.4.2") + (source + (origin + (method url-fetch) + (uri (string-append "https://pypi.python.org/packages/source/z" + "/zope.schema/zope.schema-" version ".tar.gz")) + (sha256 + (base32 + "1p943jdxb587dh7php4vx04qvn7b2877hr4qs5zyckvp5afhhank")))) + (build-system python-build-system) + (propagated-inputs + `(("python-zope-event" ,python-zope-event) + ("python-zope-interface" ,python-zope-interface))) + (native-inputs + `(("python-zope-testing" ,python-zope-testing))) + (home-page "http://pypi.python.org/pypi/zope.schema") + (synopsis "Zope data schemas") + (description "Zope.scheme provides extensions to zope.interface for +defining data schemas.") + (license zpl2.1))) + +(define-public python2-zope-schema + (package-with-python2 python-zope-schema)) -- cgit v1.2.3 From fbac9b178ea9b7273b7fc8bf99db8ad786ba8669 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 8 Nov 2015 22:03:53 -0500 Subject: gnu: Add python-zope-configuration. * gnu/packages/python.scm (python-zope-configuration, python2-zope-configuration): New variables. --- gnu/packages/python.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 81c10fb008..0be8e6f6e1 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -6201,3 +6201,28 @@ defining data schemas.") (define-public python2-zope-schema (package-with-python2 python-zope-schema)) + +(define-public python-zope-configuration + (package + (name "python-zope-configuration") + (version "4.0.3") + (source (origin + (method url-fetch) + (uri (string-append "https://pypi.python.org/packages/source/z" + "/zope.configuration/zope.configuration-" + version ".tar.gz")) + (sha256 + (base32 + "1x9dfqypgympnlm25p9m43xh4qv3p7d75vksv9pzqibrb4cggw5n")))) + (build-system python-build-system) + (propagated-inputs + `(("python-zope-i18nmessageid" ,python-zope-i18nmessageid) + ("python-zope-schema" ,python-zope-schema))) + (home-page "http://pypi.python.org/pypi/zope.configuration") + (synopsis "Zope Configuration Markup Language") + (description "Zope.configuration implements ZCML, the Zope Configuration +Markup Language.") + (license zpl2.1))) + +(define-public python2-zope-configuration + (package-with-python2 python-zope-configuration)) -- cgit v1.2.3 From 2ad520866f44e8c441810dbcce7f60923ee1e37b Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 8 Nov 2015 22:04:23 -0500 Subject: gnu: Add python-zope-proxy. * gnu/packages/python.scm (python-zope-proxy, python2-zope-proxy): New variables. --- gnu/packages/python.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 0be8e6f6e1..afba511c6c 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -6226,3 +6226,30 @@ Markup Language.") (define-public python2-zope-configuration (package-with-python2 python-zope-configuration)) + +(define-public python-zope-proxy + (package + (name "python-zope-proxy") + (version "4.1.6") + (source + (origin + (method url-fetch) + (uri (string-append "https://pypi.python.org/packages/source/z" + "/zope.proxy/zope.proxy-" version ".tar.gz")) + (sha256 + (base32 + "0pqwwmvm1prhwv1ziv9lp8iirz7xkwb6n2kyj36p2h0ppyyhjnm4")))) + (build-system python-build-system) + (propagated-inputs + `(("python-zope-interface" ,python-zope-interface))) + (home-page "http://pypi.python.org/pypi/zope.proxy") + (synopsis "Generic, transparent proxies") + (description "Zope.proxy provides generic, transparent proxies for Python. +Proxies are special objects which serve as mostly-transparent wrappers around +another object, intervening in the apparent behavior of the wrapped object +only when necessary to apply the policy (e.g., access checking, location +brokering, etc.) for which the proxy is responsible.") + (license zpl2.1))) + +(define-public python2-zope-proxy + (package-with-python2 python-zope-proxy)) -- cgit v1.2.3 From f404b5ea6e52ed14640d42e84858fc16a9b42091 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 8 Nov 2015 22:04:51 -0500 Subject: gnu: Add python-zope-location. * gnu/packages/python.scm (python-zope-location, python2-zope-location): New variables. --- gnu/packages/python.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index afba511c6c..9ba4388e7c 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -6253,3 +6253,28 @@ brokering, etc.) for which the proxy is responsible.") (define-public python2-zope-proxy (package-with-python2 python-zope-proxy)) + +(define-public python-zope-location + (package + (name "python-zope-location") + (version "4.0.3") + (source + (origin + (method url-fetch) + (uri (string-append "https://pypi.python.org/packages/source/z" + "/zope.location/zope.location-" version ".tar.gz")) + (sha256 + (base32 + "1nj9da4ksiyv3h8n2vpzwd0pb03mdsh7zy87hfpx72b6p2zcwg74")))) + (build-system python-build-system) + (native-inputs + `(("python-zope-proxy" ,python-zope-proxy) + ("python-zope-schema" ,python-zope-schema))) + (home-page "http://pypi.python.org/pypi/zope.location/") + (synopsis "Zope location library") + (description "Zope.location implements the concept of \"locations\" in +Zope3, which are are special objects that have a structural location.") + (license zpl2.1))) + +(define-public python2-zope-location + (package-with-python2 python-zope-location)) -- cgit v1.2.3 From d4b77f3662fd903be432a268f5076191cd0da777 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 8 Nov 2015 22:05:29 -0500 Subject: gnu: Add python-zope-security. * gnu/packages/python.scm (python-zope-security, python2-zope-security): New variables. --- gnu/packages/python.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 9ba4388e7c..41ac5becd4 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -6278,3 +6278,33 @@ Zope3, which are are special objects that have a structural location.") (define-public python2-zope-location (package-with-python2 python-zope-location)) + +(define-public python-zope-security + (package + (name "python-zope-security") + (version "4.0.3") + (source + (origin + (method url-fetch) + (uri (string-append "https://pypi.python.org/packages/source/z" + "/zope.security/zope.security-" version ".tar.gz")) + (sha256 + (base32 + "14zmf684amc0x32kq05yxnhfqd1cmyhafkw05gn81rn90zjv6ssy")))) + (build-system python-build-system) + (propagated-inputs + `(("python-zope-i18nmessageid" ,python-zope-i18nmessageid) + ("python-zope-component" ,python-zope-component) + ("python-zope-location" ,python-zope-location) + ("python-zope-proxy" ,python-zope-proxy) + ("python-zope-schema" ,python-zope-schema) + ("python-zope-testrunner" ,python-zope-testrunner) + ("python-zope-testing" ,python-zope-testing))) + (home-page "http://pypi.python.org/pypi/zope.security") + (synopsis "Zope security framework") + (description "Zope.security provides a generic mechanism to implement +security policies on Python objects.") + (license zpl2.1))) + +(define-public python2-zope-security + (package-with-python2 python-zope-security)) -- cgit v1.2.3 From a6b61b271b4abd3ad3c31504d170d5e8f9536cb2 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 8 Nov 2015 22:05:59 -0500 Subject: gnu: Add python-zope-component. * gnu/packages/python.scm (python-zope-component, python2-zope-component): New variables. --- gnu/packages/python.scm | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 41ac5becd4..d6b43fdae5 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -6308,3 +6308,36 @@ security policies on Python objects.") (define-public python2-zope-security (package-with-python2 python-zope-security)) + +(define-public python-zope-component + (package + (name "python-zope-component") + (version "4.2.2") + (source + (origin + (method url-fetch) + (uri (string-append "https://pypi.python.org/packages/source/z" + "/zope.component/zope.component-" version ".tar.gz")) + (sha256 + (base32 + "06pqr8m5jv12xjyy5b59hh9anl61cxkzhw9mka33r3nxalmi2b18")))) + (build-system python-build-system) + (arguments + ;; Skip tests due to circular dependency with python-zope-security. + '(#:tests? #f)) + (native-inputs + `(("python-zope-testing" ,python-zope-testing))) + (propagated-inputs + `(("python-zope-event" ,python-zope-event) + ("python-zope-interface" ,python-zope-interface) + ("python-zope-i18nmessageid" ,python-zope-i18nmessageid) + ("python-zope-configuration" ,python-zope-configuration))) + (home-page "https://github.com/zopefoundation/zope.component") + (synopsis "Zope Component Architecture") + (description "Zope.component represents the core of the Zope Component +Architecture. Together with the zope.interface package, it provides +facilities for defining, registering and looking up components.") + (license zpl2.1))) + +(define-public python2-zope-component + (package-with-python2 python-zope-component)) -- cgit v1.2.3 From 3859ac12d6a5648d8cfc7d521218c0d582b6d4c5 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 8 Nov 2015 03:28:34 -0500 Subject: gnu: Add python-pyrfc3339. * gnu/packages/python.scm (python-pyrfc3339, python2-pyrfc3339): New variables. --- gnu/packages/python.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index d6b43fdae5..6923724488 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -6341,3 +6341,30 @@ facilities for defining, registering and looking up components.") (define-public python2-zope-component (package-with-python2 python-zope-component)) + +(define-public python-pyrfc3339 + (package + (name "python-pyrfc3339") + (version "0.2") + (source + (origin + (method url-fetch) + (uri (string-append "https://pypi.python.org/packages/source/p/" + "pyRFC3339/pyRFC3339-" version ".tar.gz")) + (sha256 + (base32 + "1pp648xsjaw9h1xq2mgwzda5wis2ypjmzxlksc1a8grnrdmzy155")))) + (build-system python-build-system) + (propagated-inputs + `(("python-pytz" ,python-pytz))) + (native-inputs + `(("python-nose" ,python-nose) + ("python-setuptools" ,python-setuptools))) + (home-page "https://github.com/kurtraschke/pyRFC3339") + (synopsis "Python timestamp library") + (description "Python library for generating and parsing RFC 3339-compliant +timestamps.") + (license license:expat))) + +(define-public python2-pyrfc3339 + (package-with-python2 python-pyrfc3339)) -- cgit v1.2.3 From 5eea20051877044fd4d2fa2ea075d5f66824f123 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 8 Nov 2015 04:00:02 -0500 Subject: gnu: Add python-werkzeug. * gnu/packages/python.scm (python-werkzeug, python2-werkzeug): New variables. --- gnu/packages/python.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 6923724488..d2d6b91138 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -6368,3 +6368,31 @@ timestamps.") (define-public python2-pyrfc3339 (package-with-python2 python-pyrfc3339)) + +(define-public python-werkzeug + (package + (name "python-werkzeug") + (version "0.11.2") + (source + (origin + (method url-fetch) + (uri (string-append "https://pypi.python.org/packages/source/W/Werkzeug" + "/Werkzeug-" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1gzwn1lkl90f3l1nzzxr7vjhm21qk8f837i8rvny5a209fcrhkzb")))) + (build-system python-build-system) + (native-inputs + `(("python-pytest" ,python-pytest))) + (home-page "http://werkzeug.pocoo.org/") + (synopsis "Utilities for WSGI applications") + (description "One of the most advanced WSGI utility modules. It includes a +powerful debugger, full-featured request and response objects, HTTP utilities to +handle entity tags, cache control headers, HTTP dates, cookie handling, file +uploads, a powerful URL routing system and a bunch of community-contributed +addon modules.") + (license x11))) + +(define-public python2-werkzeug + (package-with-python2 python-werkzeug)) -- cgit v1.2.3 From 99fffa8ae08264b1c41ddaa9e7f745dcb621b398 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 8 Nov 2015 15:38:55 -0500 Subject: gnu: Add python-configobj. * gnu/packages/python.scm (python-configobj, python2-configobj): New variables. * gnu/packages/patches/python-configobj-setuptools.patch: New file. * gnu-system.am (dist_patch_DATA): Add it. --- gnu-system.am | 1 + .../patches/python-configobj-setuptools.patch | 30 ++++++++++++++++++++++ gnu/packages/python.scm | 30 ++++++++++++++++++++++ 3 files changed, 61 insertions(+) create mode 100644 gnu/packages/patches/python-configobj-setuptools.patch diff --git a/gnu-system.am b/gnu-system.am index ae3b3d24d6..00cf38f319 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -660,6 +660,7 @@ dist_patch_DATA = \ gnu/packages/patches/python-disable-ssl-test.patch \ gnu/packages/patches/python-fix-tests.patch \ gnu/packages/patches/python2-rdflib-drop-sparqlwrapper.patch \ + gnu/packages/patches/python-configobj-setuptools.patch \ gnu/packages/patches/python2-pygobject-2-gi-info-type-error-domain.patch \ gnu/packages/patches/qemu-CVE-2015-6855.patch \ gnu/packages/patches/qt4-ldflags.patch \ diff --git a/gnu/packages/patches/python-configobj-setuptools.patch b/gnu/packages/patches/python-configobj-setuptools.patch new file mode 100644 index 0000000000..3f207ffd74 --- /dev/null +++ b/gnu/packages/patches/python-configobj-setuptools.patch @@ -0,0 +1,30 @@ +From 16fbc38f13e435b4e3e1a37d706e64e05bad4691 Mon Sep 17 00:00:00 2001 +From: Leo Famulari +Date: Tue, 10 Nov 2015 23:09:24 -0500 +Subject: [PATCH] patch build to use setuptools + +--- + setup.py | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +diff --git a/setup.py b/setup.py +index c6d57a6..27bf260 100644 +--- a/setup.py ++++ b/setup.py +@@ -12,7 +12,12 @@ + # http://opensource.org/licenses/BSD-3-Clause + import os + import sys +-from distutils.core import setup ++ ++try: ++ from setuptools import setup ++except ImportError: ++ from distutils.core import setup ++ + # a simple import wouldn't work if we moved towards a package with __init__ + from _version import __version__ + +-- +2.6.2 + diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index d2d6b91138..4e69e74b9d 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -6396,3 +6396,33 @@ addon modules.") (define-public python2-werkzeug (package-with-python2 python-werkzeug)) + +(define-public python-configobj + (package + (name "python-configobj") + (version "5.0.6") + (source (origin + (method url-fetch) + (uri (string-append + "https://pypi.python.org/packages/source/c/configobj/" + "configobj-" version ".tar.gz")) + (sha256 + (base32 + "00h9rcmws03xvdlfni11yb60bz3kxfvsj6dg6nrpzj71f03nbxd2")) + ;; Patch setup.py so it looks for python-setuptools, which is + ;; required to parse the keyword 'install_requires' in setup.py. + (patches (list (search-patch "python-configobj-setuptools.patch"))))) + (build-system python-build-system) + (native-inputs + `(("python-setuptools" ,python-setuptools) + ("python-six" ,python-six))) + (synopsis "Config file reading, writing and validation") + (description "ConfigObj is a simple but powerful config file reader and +writer: an ini file round tripper. Its main feature is that it is very easy to +use, with a straightforward programmer’s interface and a simple syntax for +config files.") + (home-page "https://github.com/DiffSK/configobj") + (license bsd-3))) + +(define-public python2-configobj + (package-with-python2 python-configobj)) -- cgit v1.2.3 From 44298269baae6cb8bbaa19e504f391c74cf5729b Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Tue, 24 Nov 2015 00:01:38 -0500 Subject: gnu: Add dialog. * gnu/packages/python.scm (dialog): New variable. --- gnu/packages/ncurses.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/ncurses.scm b/gnu/packages/ncurses.scm index 2b0d442664..b7fbfc982d 100644 --- a/gnu/packages/ncurses.scm +++ b/gnu/packages/ncurses.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès ;;; Copyright © 2014 Mark H Weaver +;;; Copyright © 2015 Leo Famulari ;;; ;;; This file is part of GNU Guix. ;;; @@ -110,3 +111,27 @@ implement user interfaces for command-line applications. The accompanying ncursesw library provides wide character support.") (license x11) (home-page "http://www.gnu.org/software/ncurses/")))) + +(define-public dialog + (package + (name "dialog") + (version "1.2-20150920") + (source (origin + (method url-fetch) + (uri (string-append + "http://invisible-mirror.net/archives/dialog/dialog-" + version ".tgz")) + (sha256 + (base32 + "01ccd585c241nkj02n0zdbx8jqhylgcfpcmmshynh0c7fv2ixrn4")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f)) ; no test suite + (inputs + `(("ncurses" ,ncurses))) + (synopsis "Curses widgets") + (description "Dialog is a script-interpreter which provides a set of +curses widgets, such as dialog boxes.") + (home-page "http://invisible-island.net/dialog/dialog.html") + ;; Includes the gpl3 file "config.sub" from Automake. + (license (list lgpl2.1 gpl3)))) -- cgit v1.2.3 From b5f218be26d8a4f683bcece76ac10314cb58b326 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Mon, 23 Nov 2015 23:46:09 -0500 Subject: gnu: Add python2-pythondialog. * gnu/packages/python.scm (python2-pythondialog): New variable. --- gnu/packages/python.scm | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 4e69e74b9d..05de9939fb 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -6342,6 +6342,43 @@ facilities for defining, registering and looking up components.") (define-public python2-zope-component (package-with-python2 python-zope-component)) +(define-public python2-pythondialog + (package + (name "python2-pythondialog") + (version "3.3.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://pypi.python.org/packages/source/p/" + "python2-pythondialog/python2-pythondialog-" + version ".tar.gz")) + (sha256 + (base32 + "1yhkagsh99bfi592ymczf8rnw8rk6n9hdqy3dd98m3yrx8zmjvry")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-path + (lambda* (#:key inputs #:allow-other-keys) + (let* ((dialog (assoc-ref inputs "dialog"))) + ;; Since this library really wants to grovel the search path, we + ;; must hardcode dialog's store path into it. + (substitute* "dialog.py" + (("os.getenv\\(\"PATH\", \":/bin:/usr/bin\"\\)") + (string-append "os.getenv(\"PATH\") + \":" dialog "/bin\""))) + #t)))) + #:python ,python-2 + #:tests? #f)) ; no test suite + (propagated-inputs + `(("dialog" ,dialog))) + (home-page "http://pythondialog.sourceforge.net/") + (synopsis "Python interface to the UNIX dialog utility") + (description "A Python wrapper for the dialog utility. Its purpose is to +provide an easy to use, pythonic and comprehensive Python interface to dialog. +This allows one to make simple text-mode user interfaces on Unix-like systems") + (license lgpl2.1))) + (define-public python-pyrfc3339 (package (name "python-pyrfc3339") -- cgit v1.2.3 From 79e8a2916dac8bea5fcaabf257ed86d2bfd5daff Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 8 Nov 2015 22:47:48 -0500 Subject: gnu: Add python-configargparse. * gnu/packages/python.scm (python-configargparse, python2-configargparse): New variables. --- gnu/packages/python.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 05de9939fb..ff37b865a9 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -6463,3 +6463,29 @@ config files.") (define-public python2-configobj (package-with-python2 python-configobj)) + +(define-public python-configargparse + (package + (name "python-configargparse") + (version "0.10.0") + (source (origin + (method url-fetch) + (uri (string-append + "https://pypi.python.org/packages/source/C/ConfigArgParse/" + "ConfigArgParse-" version ".tar.gz")) + (sha256 + (base32 + "19wh919gbdbzxzpagg52q3lm62yicm95ddlcx77dyjc1slyshl1v")))) + (build-system python-build-system) + (arguments + ;; FIXME: Bug in test suite filed upstream: + ;; https://github.com/bw2/ConfigArgParse/issues/32 + '(#:tests? #f)) + (synopsis "Replacement for argparse") + (description "A drop-in replacement for argparse that allows options to also +be set via config files and/or environment variables.") + (home-page "https://github.com/bw2/ConfigArgParse") + (license license:expat))) + +(define-public python2-configargparse + (package-with-python2 python-configargparse)) -- cgit v1.2.3 From ab41f9799f962a4c7f90aa82deb11fda4ad03167 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Mon, 9 Nov 2015 04:49:59 -0500 Subject: gnu: Add python-ndg-httpsclient. * gnu/packages/python.scm (python-ndg-httpsclient, python2-ndg-httpsclient): New variables. --- gnu/packages/python.scm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index ff37b865a9..4d0c23d1ee 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -6489,3 +6489,35 @@ be set via config files and/or environment variables.") (define-public python2-configargparse (package-with-python2 python-configargparse)) + +(define-public python-ndg-httpsclient + (package + (name "python-ndg-httpsclient") + (version "0.4.0") + (source (origin + (method url-fetch) + (uri (string-append + "https://pypi.python.org/packages/source/n/ndg-httpsclient/" + "ndg_httpsclient-" version ".tar.gz")) + (sha256 + (base32 + "0x32ibixm3vv5m9xfk83xsqm8xcqw4dd0khbh6qbri6rxgymbhg8")))) + (build-system python-build-system) + (propagated-inputs + `(("python-pyopenssl" ,python-pyopenssl))) + (synopsis "HTTPS support for Python's httplib and urllib2") + (description "This is a HTTPS client implementation for httplib and urllib2 +based on PyOpenSSL. PyOpenSSL provides a more fully featured SSL implementation +over the default provided with Python and importantly enables full verification +of the SSL peer.") + (home-page "https://github.com/cedadev/ndg_httpsclient/") + (license bsd-3))) + +;; python2-openssl requires special care, so package-with-python2 is +;; insufficient. +(define-public python2-ndg-httpsclient + (package (inherit python-ndg-httpsclient) + (name "python2-ndg-httpsclient") + (arguments `(#:python ,python-2)) + (propagated-inputs + `(("python2-pyopenssl" ,python2-pyopenssl))))) -- cgit v1.2.3 From 4df1e30da894e7f0216479fef71ddfd4fcfc91e8 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 11 Nov 2015 04:29:49 -0500 Subject: gnu: python-parsedatetime: Update to 1.5. * gnu/packages/python.scm (python-parsedatetime): Update to 1.5. [arguments]: Enable tests. --- gnu/packages/python.scm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 4d0c23d1ee..10b3c21e34 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -961,7 +961,7 @@ datetime module, available in Python 2.3+.") (define-public python-parsedatetime (package (name "python-parsedatetime") - (version "1.2") + (version "1.5") (source (origin (method url-fetch) @@ -969,11 +969,10 @@ datetime module, available in Python 2.3+.") "parsedatetime/parsedatetime-" version ".tar.gz")) (sha256 (base32 - "1zcj0pzxvpl4j2ma9awmpkfxldybi2kjaahjjpmgfbg5cxwcjsqv")))) + "1as0mm4ql3z0324nc9bys2s1ngh507i317p16b79rx86wlmvx9ix")))) (build-system python-build-system) (native-inputs `(("python-setuptools" ,python-setuptools))) - (arguments `(#:tests? #f)) ;no test target (home-page "http://github.com/bear/parsedatetime/") (synopsis "Parse human-readable date/time text") -- cgit v1.2.3 From 38b8f9b21b9629c13523b085154471836c309ae5 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 11 Nov 2015 04:30:47 -0500 Subject: gnu: Add python2-parsedatetime. * gnu/packages/python.scm (python2-parsedatetime): New variable. --- gnu/packages/python.scm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 10b3c21e34..7d54516206 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -980,6 +980,9 @@ datetime module, available in Python 2.3+.") "Parse human-readable date/time text.") (license asl2.0))) +(define-public python2-parsedatetime + (package-with-python2 python-parsedatetime)) + (define-public python-pandas (package (name "python-pandas") -- cgit v1.2.3 From 7890e3baf36b6ba3a8d29cd5d088736fd68f4cf4 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Mon, 23 Nov 2015 23:10:12 -0500 Subject: gnu: Add acme. * gnu/packages/tls.scm (acme): New variable. --- gnu/packages/tls.scm | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index 1a0eeb2708..14df8dbdf4 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2014, 2015 Mark H Weaver ;;; Copyright © 2014 Ian Denhardt ;;; Copyright © 2013, 2015 Andreas Enge +;;; Copyright © 2015 Leo Famulari ;;; ;;; This file is part of GNU Guix. ;;; @@ -26,14 +27,17 @@ #:use-module (guix utils) #:use-module (guix build-system gnu) #:use-module (guix build-system perl) + #:use-module (guix build-system python) #:use-module (gnu packages compression) #:use-module (gnu packages) #:use-module (gnu packages guile) #:use-module (gnu packages libffi) #:use-module (gnu packages libidn) + #:use-module (gnu packages ncurses) #:use-module (gnu packages nettle) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages python) #:use-module (gnu packages texinfo) #:use-module (gnu packages base)) @@ -320,6 +324,39 @@ security, and applying best practice development processes.") "file://COPYING" "See COPYING in the distribution."))))) +(define-public acme + (package + (name "acme") + (version "0.1.0") + (source (origin + (method url-fetch) + (uri (string-append "https://pypi.python.org/packages/source/a/acme/acme-" + version ".tar.gz")) + (sha256 + (base32 + "0fj0m04zzdxx23vazl00ilqyl3jxqq9c9p4x61pfz1zps7nbzsy3")))) + (build-system python-build-system) + (arguments + `(#:python ,python-2)) + ;; TODO: Add optional inputs for testing and building documentation. + (native-inputs + `(("python2-mock" ,python2-mock) + ("python2-setuptools" ,python2-setuptools))) + (propagated-inputs + `(("python2-ndg-httpsclient" ,python2-ndg-httpsclient) + ("python2-werkzeug" ,python2-werkzeug) + ("python2-six" ,python2-six) + ("python2-requests" ,python2-requests) + ("python2-pytz" ,python2-pytz) + ("python2-pyrfc3339" ,python2-pyrfc3339) + ("python2-pyasn1" ,python2-pyasn1) + ("python2-cryptography" ,python2-cryptography) + ("python2-pyopenssl" ,python2-pyopenssl))) + (home-page "https://github.com/letsencrypt/letsencrypt") + (synopsis "ACME protocol implementation in Python") + (description "ACME protocol implementation in Python") + (license license:asl2.0))) + (define-public perl-net-ssleay (package (name "perl-net-ssleay") -- cgit v1.2.3 From 9fd0838b2844bb66dfc05b21b768b3e53680980f Mon Sep 17 00:00:00 2001 From: David Thompson Date: Fri, 4 Dec 2015 10:13:26 -0500 Subject: gnu: Add letsencrypt. * gnu/packages/tls.scm (letsencrypt): New variable. --- gnu/packages/tls.scm | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index 14df8dbdf4..fc0b6e8f5a 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2014, 2015 Mark H Weaver ;;; Copyright © 2014 Ian Denhardt ;;; Copyright © 2013, 2015 Andreas Enge +;;; Copyright © 2015 David Thompson ;;; Copyright © 2015 Leo Famulari ;;; ;;; This file is part of GNU Guix. @@ -357,6 +358,45 @@ security, and applying best practice development processes.") (description "ACME protocol implementation in Python") (license license:asl2.0))) +(define-public letsencrypt + (package + (name "letsencrypt") + (version "0.1.0") + (source (origin + (method url-fetch) + (uri (string-append "https://pypi.python.org/packages/source/l/" + "letsencrypt/letsencrypt-" version ".tar.gz")) + (sha256 + (base32 + "1zb96xz32k6ai41h5m1l22qi47y71dq69dcmbz7vfm6jfrhjgxl1")))) + (build-system python-build-system) + (arguments + `(#:python ,python-2)) + ;; TODO: Add optional inputs for testing building documentation. + (native-inputs + `(("python2-nose" ,python2-nose) + ("python2-mock" ,python2-mock))) + (propagated-inputs + `(("acme" ,acme) + ("python2-zope-interface" ,python2-zope-interface) + ("python2-pythondialog" ,python2-pythondialog) + ("python2-pyrfc3339" ,python2-pyrfc3339) + ("python2-pyopenssl" ,python2-pyopenssl) + ("python2-configobj" ,python2-configobj) + ("python2-configargparse" ,python2-configargparse) + ("python2-zope-component" ,python2-zope-component) + ("python2-parsedatetime" ,python2-parsedatetime) + ("python2-six" ,python2-six) + ("python2-psutil" ,python2-psutil) + ("python2-requests" ,python2-requests) + ("python2-pytz" ,python2-pytz))) + (synopsis "Let's Encrypt client") + (description "Tool to automatically receive and install X.509 certificates +to enable TLS on servers. The client will interoperate with the Let’s Encrypt CA which +will be issuing browser-trusted certificates for free.") + (home-page "https://letsencrypt.org/") + (license license:asl2.0))) + (define-public perl-net-ssleay (package (name "perl-net-ssleay") -- cgit v1.2.3 From e2e3600fe8a189d820f097e231f4099a850315b1 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sat, 5 Dec 2015 22:14:20 +0100 Subject: gnu: pius: Update to 2.2.1. * gnu/packages/gnupg.scm (pius): Update to 2.2.1. Change URL to github.com. [arguments]: Update pattern for 'gpg' command. --- gnu/packages/gnupg.scm | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index ad653aaca9..e42319b09b 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm @@ -371,14 +371,15 @@ and signature functionality from Python programs.") (define-public pius (package (name "pius") - (version "2.1.1") + (version "2.2.1") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/pgpius/pius/" - version "/pius-" - version ".tar.bz2")) - (sha256 (base32 - "0ry3kc3x1qjmvb581ja2z2v32r1rl1g8rhfj7iqvs8nzq4ca512i")))) + (uri (string-append + "https://github.com/jaymzh/pius/releases/download/v" + version "/pius-" version ".tar.bz2")) + (sha256 + (base32 + "003dwpamq0c7w8q9zpgi4h03rs8rwjm0czkn9s60m91p6aql5f42")))) (build-system python-build-system) (inputs `(("perl" ,perl) ;for 'pius-party-worksheet' ("gpg" ,gnupg-2.0))) ;2.1 fails to talk to gpg-agent 2.0 @@ -393,7 +394,7 @@ and signature functionality from Python programs.") (let* ((gpg (string-append (assoc-ref inputs "gpg") "/bin/gpg2"))) (substitute* "libpius/constants.py" - (("/usr/bin/gpg") gpg)))))))) + (("/usr/bin/gpg2") gpg)))))))) (synopsis "Programs to simplify GnuPG key signing") (description "Pius (PGP Individual UID Signer) helps attendees of PGP keysigning -- cgit v1.2.3 From 957b73382b31622943db3d066dfedd706b6f19c4 Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Wed, 25 Nov 2015 13:25:00 +0300 Subject: emacs: Fix 'guix-apply-manifest'. * emacs/guix-base.el (guix-apply-manifest): Use 'guix-command' instead of 'guix-package' to prevent REPL exit if 'leave' happens. Expand profile and manifest file names, as relative file names lead to an error. --- emacs/guix-base.el | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/emacs/guix-base.el b/emacs/guix-base.el index 14ea3d4458..a2bd5bf7f2 100644 --- a/emacs/guix-base.el +++ b/emacs/guix-base.el @@ -1087,9 +1087,10 @@ FILE. With a prefix argument, also prompt for PROFILE." file profile))) (guix-eval-in-repl (guix-make-guile-expression - 'guix-package - (concat "--profile=" profile) - (concat "--manifest=" file)) + 'guix-command + "package" + (concat "--profile=" (expand-file-name profile)) + (concat "--manifest=" (expand-file-name file))) operation-buffer))) -- cgit v1.2.3 From c67e344f21fda2bf5a2a377a34d4749a1c7e7c9c Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Wed, 25 Nov 2015 13:29:36 +0300 Subject: emacs: Fix 'guix-pull'. * emacs/guix-base.el (guix-pull): Handle prefix argument when it is run interactively. Use 'guix-command' instead of 'guix-pull' to prevent REPL exit if 'leave' happens. --- emacs/guix-base.el | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/emacs/guix-base.el b/emacs/guix-base.el index a2bd5bf7f2..d9c70aae9e 100644 --- a/emacs/guix-base.el +++ b/emacs/guix-base.el @@ -1186,10 +1186,11 @@ The function is called with a single argument - a command line string." (defun guix-pull (&optional verbose) "Run Guix pull operation. If VERBOSE is non-nil (with prefix argument), produce verbose output." - (interactive) + (interactive "P") (let ((args (and verbose '("--verbose")))) (guix-eval-in-repl - (apply #'guix-make-guile-expression 'guix-pull args) + (apply #'guix-make-guile-expression + 'guix-command "pull" args) nil 'pull))) (provide 'guix-base) -- cgit v1.2.3 From a65f0075244cb0c2422e13419a3094baf0ae6f24 Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Fri, 27 Nov 2015 16:07:20 +0300 Subject: emacs: 'guix-emacs-load-autoloads' takes a profile. * emacs/guix-emacs.el (guix-emacs-load-autoloads): Use 'profile' as an optional argument. (guix-emacs-load-autoloads-maybe): Adjust accordingly. * emacs/guix-init.el: Likewise. --- emacs/guix-emacs.el | 36 ++++++++++++++++++++---------------- emacs/guix-init.el | 2 +- 2 files changed, 21 insertions(+), 17 deletions(-) diff --git a/emacs/guix-emacs.el b/emacs/guix-emacs.el index 0e3e8c211c..6515b3dc30 100644 --- a/emacs/guix-emacs.el +++ b/emacs/guix-emacs.el @@ -74,29 +74,33 @@ Return nil if there are no emacs packages installed in PROFILE." nil))) ;;;###autoload -(defun guix-emacs-load-autoloads (&optional all) - "Load autoloads for Emacs packages installed in a user profile. -Add autoloads directories to `load-path'. -If ALL is nil, activate only those packages that were installed -after the last activation, otherwise activate all Emacs packages -installed in `guix-user-profile'." - (interactive "P") - (let* ((autoloads (guix-emacs-find-autoloads)) - (files (if all - autoloads - (cl-nset-difference autoloads guix-emacs-autoloads - :test #'string=)))) - (dolist (file files) - (cl-pushnew (file-name-directory file) load-path +(defun guix-emacs-load-autoloads (&optional profile) + "Load autoloads for Emacs packages installed in PROFILE. +If PROFILE is nil, use `guix-user-profile'. +Add autoloads directories to `load-path'." + (interactive (list (guix-profile-prompt))) + (let* ((autoloads (guix-emacs-find-autoloads profile)) + (new-autoloads (cl-nset-difference autoloads + guix-emacs-autoloads + :test #'string=))) + (dolist (file new-autoloads) + (cl-pushnew (directory-file-name (file-name-directory file)) + load-path :test #'string=) (load file 'noerror)) - (setq guix-emacs-autoloads autoloads))) + (setq guix-emacs-autoloads + (append new-autoloads guix-emacs-autoloads)))) (defun guix-emacs-load-autoloads-maybe () "Load autoloads for Emacs packages if needed. See `guix-emacs-activate-after-operation' for details." (and guix-emacs-activate-after-operation - (guix-emacs-load-autoloads))) + ;; FIXME Since a user can work with a non-current profile (using + ;; C-u before `guix-search-by-name' and other commands), emacs + ;; packages can be installed to another profile, and the + ;; following code will not work (i.e., the autoloads for this + ;; profile will not be loaded). + (guix-emacs-load-autoloads guix-current-profile))) (provide 'guix-emacs) diff --git a/emacs/guix-init.el b/emacs/guix-init.el index 1612dee83f..1da607034f 100644 --- a/emacs/guix-init.el +++ b/emacs/guix-init.el @@ -12,7 +12,7 @@ avoid loading autoloads of Emacs packages installed in (add-to-list 'load-path (guix-emacs-directory)) (when guix-package-enable-at-startup - (guix-emacs-load-autoloads 'all)) + (guix-emacs-load-autoloads)) (add-hook 'scheme-mode-hook 'guix-devel-activate-mode-maybe) (add-hook 'shell-mode-hook 'guix-build-log-minor-mode-activate-maybe) -- cgit v1.2.3 From 9ff175655c90af938a93eee601ae2a88071b134b Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Tue, 1 Dec 2015 21:35:57 +0300 Subject: emacs: Complete --profile in 'guix package' popup. * emacs/guix-command.el (guix-command-improve-package-argument): Use 'guix-read-file-name' to complete --profile option. --- emacs/guix-command.el | 1 + 1 file changed, 1 insertion(+) diff --git a/emacs/guix-command.el b/emacs/guix-command.el index 2cb44de114..7e924d80f0 100644 --- a/emacs/guix-command.el +++ b/emacs/guix-command.el @@ -239,6 +239,7 @@ to be modified." :switch? nil :option? t) ("--install-from-file" :fun guix-read-file-name) ("--manifest" :fun guix-read-file-name) + ("--profile" :fun guix-read-file-name) ("--do-not-upgrade" :char ?U) ("--roll-back" :char ?R) ("--show" :char ?w :fun guix-read-package-name))) -- cgit v1.2.3 From f5688801b29cf7f442b62de5cf53bdbf5afe186b Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Sat, 5 Dec 2015 23:51:43 +0300 Subject: emacs: info: Show a message after copying button label. * emacs/guix-info.el (guix-info-button-copy-label): Use 'guix-copy-as-kill' to display a message with what was killed. --- emacs/guix-info.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/emacs/guix-info.el b/emacs/guix-info.el index 260c7680f5..9dd6afa2e0 100644 --- a/emacs/guix-info.el +++ b/emacs/guix-info.el @@ -374,7 +374,7 @@ If POS is nil, use the current point position." (interactive) (let ((button (button-at (or pos (point))))) (when button - (kill-new (button-label button))))) + (guix-copy-as-kill (button-label button))))) (defun guix-info-insert-action-button (label action &optional message &rest properties) -- cgit v1.2.3 From 7edf242967c5ba6ae32e9c6c70335ad10c9dd2be Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Sat, 5 Dec 2015 23:24:59 +0300 Subject: gnu: manaplus: Update to 1.5.12.5. * gnu/packages/games.scm (manaplus): Update to 1.5.12.5. --- gnu/packages/games.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 8e12ffd8cf..f7a7636a86 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -1180,7 +1180,7 @@ is programmed in Haskell.") (define-public manaplus (package (name "manaplus") - (version "1.5.10.24") + (version "1.5.12.5") (source (origin (method url-fetch) (uri (string-append @@ -1188,7 +1188,7 @@ is programmed in Haskell.") version "/manaplus-" version ".tar.xz")) (sha256 (base32 - "1bjxdyicli1pq65a6l4m84ksqwn9i90xa7yly9sfcrwq5mm1zimb")))) + "0kmd743q40v82221wj8b09n30lqiwl7096v3m7ki3ynsgszkm326")))) (build-system gnu-build-system) (arguments '(#:configure-flags -- cgit v1.2.3 From ff21fa8b63f0fa43cfb8138e77649dca263c71bf Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 6 Dec 2015 15:57:33 +0200 Subject: gnu: gdb: Update to 7.10.1. * gnu/packages/gdb.scm (gdb): Update to 7.10.1. --- gnu/packages/gdb.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gdb.scm b/gnu/packages/gdb.scm index f17b398048..81d6a8950d 100644 --- a/gnu/packages/gdb.scm +++ b/gnu/packages/gdb.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013, 2014, 2015 Ludovic Courtès ;;; Copyright © 2015 Mark H Weaver +;;; Copyright © 2015 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -36,14 +37,14 @@ (define-public gdb (package (name "gdb") - (version "7.10") + (version "7.10.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/gdb/gdb-" version ".tar.xz")) (sha256 (base32 - "1a08c9svaihqmz2mm44il1gwa810gmwkckns8b0y0v3qz52amgby")))) + "1mfnjcwnwm5cg4rc9pncs9v356a0bz6ymjyac56mbj6784yjzir5")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; FIXME "make check" fails on single-processor systems. -- cgit v1.2.3 From 2f52ad7413aabecb7ef7b210d6d958b8aface9d4 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 6 Dec 2015 16:49:41 +0200 Subject: gnu: nano: Update to 2.5.0. * gnu/packages/nano.scm (nano): Update to 2.5.0. --- gnu/packages/nano.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/nano.scm b/gnu/packages/nano.scm index 5e94db6909..f58f3d9328 100644 --- a/gnu/packages/nano.scm +++ b/gnu/packages/nano.scm @@ -28,7 +28,7 @@ (define-public nano (package (name "nano") - (version "2.4.3") + (version "2.5.0") (source (origin (method url-fetch) @@ -36,7 +36,7 @@ version ".tar.gz")) (sha256 (base32 - "1wk82xh9px17ry8nvpa2qmzar4pcmm3w15a09y76f9k05c3jgmij")))) + "1vl9bim56k1b4zwc3icxp46w6pn6gb042j1h4jlz1jklxxpkwcpz")))) (build-system gnu-build-system) (inputs `(("gettext" ,gnu-gettext) -- cgit v1.2.3 From b16dbd1311c9bd1346dcf0d490f25455e12b04cf Mon Sep 17 00:00:00 2001 From: Mathieu Lirzin Date: Sat, 21 Nov 2015 14:37:54 +0100 Subject: edit: Allow command line arguments in $VISUAL and $EDITOR. * guix/scripts/edit.scm (guix-edit): Fix the assumption that %editor is a one word command. --- guix/scripts/edit.scm | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/guix/scripts/edit.scm b/guix/scripts/edit.scm index 73a5bb78d2..660bd57985 100644 --- a/guix/scripts/edit.scm +++ b/guix/scripts/edit.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 Ludovic Courtès +;;; Copyright © 2015 Mathieu Lirzin ;;; ;;; This file is part of GNU Guix. ;;; @@ -83,8 +84,11 @@ line." (catch 'system-error (lambda () - (apply execlp (%editor) (%editor) - (append-map package->location-specification packages))) + (let ((file-names (append-map package->location-specification + packages))) + ;; Use `system' instead of `exec' in order to sanely handle + ;; possible command line arguments in %EDITOR. + (exit (system (string-join (cons (%editor) file-names)))))) (lambda args (let ((errno (system-error-errno args))) (leave (_ "failed to launch '~a': ~a~%") -- cgit v1.2.3 From cd08fe4259f72815a4b096b2a5ce325e9b445da4 Mon Sep 17 00:00:00 2001 From: Mathieu Lirzin Date: Sat, 21 Nov 2015 15:05:07 +0100 Subject: edit: Don't assume that an emacs daemon is running. * guix/scripts/edit.scm (%editor): Use Emacs as a default value. --- guix/scripts/edit.scm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/guix/scripts/edit.scm b/guix/scripts/edit.scm index 660bd57985..ce3ac4146d 100644 --- a/guix/scripts/edit.scm +++ b/guix/scripts/edit.scm @@ -49,8 +49,10 @@ Start $VISUAL or $EDITOR to edit the definitions of PACKAGE...\n")) (show-bug-report-information)) (define %editor - (make-parameter (or (getenv "VISUAL") (getenv "EDITOR") - "emacsclient"))) + ;; XXX: It would be better to default to something more likely to be + ;; pre-installed on an average GNU system. Since Nano is not suited for + ;; editing Scheme, Emacs is used instead. + (make-parameter (or (getenv "VISUAL") (getenv "EDITOR") "emacs"))) (define (search-path* path file) "Like 'search-path' but exit if FILE is not found." -- cgit v1.2.3 From d4fe27fe2c6ae70a8dc0c0a314816326b235e503 Mon Sep 17 00:00:00 2001 From: Mathieu Lirzin Date: Mon, 23 Nov 2015 10:44:53 +0100 Subject: gnu: Move pkg-config to native inputs. * gnu/packages/xiph.scm (ao)[native-inputs]: Move pkg-config from inputs. * gnu/packages/xorg.scm (xf86-video-geode)[native-inputs]: Likewise. --- gnu/packages/xiph.scm | 8 +++++--- gnu/packages/xorg.scm | 4 ++-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/gnu/packages/xiph.scm b/gnu/packages/xiph.scm index 6de0a2defb..3e4d6687ea 100644 --- a/gnu/packages/xiph.scm +++ b/gnu/packages/xiph.scm @@ -166,9 +166,11 @@ stereo encoding, and voice activity detection.") ;; XXX: Should back-ends be pushed to different outputs? For instance, ;; "out" would include only the ALSA back-end, while "pulse" would ;; contain 'lib/ao/plugins-4/libpulse.*'. - (inputs `(("pkg-config" ,pkg-config) - ("alsa-lib" ,alsa-lib) - ("pulseaudio" ,pulseaudio))) + (inputs + `(("alsa-lib" ,alsa-lib) + ("pulseaudio" ,pulseaudio))) + (native-inputs + `(("pkg-config" ,pkg-config))) (synopsis "Cross platform audio library") (description "Libao is a cross-platform audio library that allows programs to diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index 54c15dd8ff..42422a3c56 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -2710,8 +2710,8 @@ framebuffer device.") "19y13xl7yfrgyis92rmxi0ld95ajgr5il0n9j1dridwzw9aizz1q")) (patches (list (search-patch "xf86-video-geode-glibc-2.20.patch"))))) (build-system gnu-build-system) - (inputs `(("pkg-config" ,pkg-config) - ("xorg-server" ,xorg-server))) + (inputs `(("xorg-server" ,xorg-server))) + (native-inputs `(("pkg-config" ,pkg-config))) (supported-systems ;; This driver is only supported on i686 systems. (filter (lambda (system) (string-prefix? "i686-" system)) -- cgit v1.2.3 From b682a77669d0df37bf180f3467fd1c24e45e8332 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 6 Dec 2015 19:06:41 +0200 Subject: gnu: libassuan: Update to 2.4.2. * gnu/packages/gnupg.scm (libassuan): Update to 2.4.2. --- gnu/packages/gnupg.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index e42319b09b..5a7f17bd0c 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2014 Eric Bavier ;;; Copyright © 2014, 2015 Mark H Weaver ;;; Copyright © 2015 Paul van der Walt +;;; Copyright © 2015 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -110,7 +111,7 @@ generation.") (define-public libassuan (package (name "libassuan") - (version "2.4.0") + (version "2.4.2") (source (origin (method url-fetch) @@ -118,7 +119,7 @@ generation.") version ".tar.bz2")) (sha256 (base32 - "08l4261r56kv7w9qyq021s905bplh2m8h52qlkq46m7w8y9y932d")))) + "086bbcdnvs48qq5g4iac7dpk76j0q3jrp16mchdvyx0b720xq1mv")))) (build-system gnu-build-system) (propagated-inputs `(("libgpg-error" ,libgpg-error) ("pth" ,pth))) -- cgit v1.2.3 From 7b40296fc0ad166b6331c07bee902944189e9595 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 6 Dec 2015 20:18:35 +0200 Subject: gnu: gnupg-2.0: Update to 2.0.29. * gnu/packages/gnupg.scm (gnupg-2.0): Update to 2.0.29. [inputs]: Add adns. --- gnu/packages/gnupg.scm | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index 5a7f17bd0c..ef3c4897c2 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm @@ -23,6 +23,7 @@ (define-module (gnu packages gnupg) #:use-module ((guix licenses) #:prefix license:) + #:use-module (gnu packages adns) #:use-module (gnu packages curl) #:use-module (gnu packages openldap) #:use-module (gnu packages perl) @@ -238,17 +239,18 @@ libskba (working with X.509 certificates and CMS data).") (define-public gnupg-2.0 (package (inherit gnupg) - (version "2.0.28") + (version "2.0.29") (source (origin (method url-fetch) (uri (string-append "mirror://gnupg/gnupg/gnupg-" version ".tar.bz2")) (sha256 (base32 - "0k2k399fnhfhhr4dvm8d6vs4ihq6gg06191lzfwikzaqmgj2w2ff")))) + "1jaakn0mi6pi2b3g3imxj3qzxw2zg0ifxs30baq2b157dcw6pvb8")))) (native-inputs '()) (inputs - `(("bzip2" ,bzip2) + `(("adns" ,adns) + ("bzip2" ,bzip2) ("curl" ,curl) ("libassuan" ,libassuan) ("libgcrypt" ,libgcrypt) -- cgit v1.2.3 From b65249cc2b9c549d98538889368157e47d6900e4 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 6 Dec 2015 19:25:22 +0200 Subject: gnu: gnupg: Update to 2.1.10. * gnu/packages/gnupg.scm (gnupg): Update to 2.1.10. [inputs]: Add adns. --- gnu/packages/gnupg.scm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index ef3c4897c2..d382b86c94 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm @@ -195,19 +195,20 @@ compatible to GNU Pth.") (define-public gnupg (package (name "gnupg") - (version "2.1.9") + (version "2.1.10") (source (origin (method url-fetch) (uri (string-append "mirror://gnupg/gnupg/gnupg-" version ".tar.bz2")) (sha256 (base32 - "1dpp555glln6fldk72ad7lkrn8h3cr2bg714z5kfn2qrawx67dqw")))) + "1ybcsazjm21i2ys1wh49cz4azmqz7ghx5rb6hm4gm93i2zc5igck")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) (inputs - `(("bzip2" ,bzip2) + `(("adns" ,adns) + ("bzip2" ,bzip2) ("curl" ,curl) ("gnutls" ,gnutls) ("libassuan" ,libassuan) -- cgit v1.2.3 From 231dd02337030b64d6b4922496280f94f230af96 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 6 Dec 2015 21:24:27 +0200 Subject: gnu: gpgme: Update to 1.6.0. * gnu/packages/gnupg.scm (gpgme): Update to 1.6.0. --- gnu/packages/gnupg.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index d382b86c94..d578408066 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm @@ -298,7 +298,7 @@ libskba (working with X.509 certificates and CMS data).") (define-public gpgme (package (name "gpgme") - (version "1.5.5") + (version "1.6.0") (source (origin (method url-fetch) @@ -306,7 +306,7 @@ libskba (working with X.509 certificates and CMS data).") ".tar.bz2")) (sha256 (base32 - "01y28fkq52wwf4p470wscaxd2vgzl615irmafx3mj3380x8ksg8b")))) + "17892sclz3yg45wbyqqrzzpq3l0icbnfl28f101b3062g8cy97dh")))) (build-system gnu-build-system) (propagated-inputs ;; Needs to be propagated because gpgme.h includes gpg-error.h. -- cgit v1.2.3 From d1d75c6a6701cd40394fbc7cf149047f4ca172f8 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 6 Dec 2015 21:39:50 +0200 Subject: gnu: pinentry: Update to 0.9.6. * gnu/packages/gnupg.scm (pinentry): Update to 0.9.6. [inputs]: Add libsecret. --- gnu/packages/gnupg.scm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index d578408066..af01749545 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm @@ -33,6 +33,7 @@ #:use-module (gnu packages compression) #:use-module (gnu packages gtk) #:use-module (gnu packages glib) + #:use-module (gnu packages gnome) #:use-module (gnu packages pkg-config) #:use-module (gnu packages ncurses) #:use-module (gnu packages tls) @@ -515,18 +516,19 @@ including tools for signing keys, keyring analysis, and party preparation. (define-public pinentry (package (name "pinentry") - (version "0.9.5") + (version "0.9.6") (source (origin (method url-fetch) (uri (string-append "mirror://gnupg/pinentry/pinentry-" version ".tar.bz2")) (sha256 (base32 - "1338hj1h3sh34897120y30x12b64wyj3xjzzk5asm2hdzhxgsmva")))) + "0rhyw1vk28kgasjp22myf7m2q8kycw82d65pr9kgh93z17lj849a")))) (build-system gnu-build-system) (inputs `(("ncurses" ,ncurses) ("libassuan" ,libassuan) + ("libsecret" ,libsecret "out") ("gtk+" ,gtk+-2) ("glib" ,glib))) (native-inputs -- cgit v1.2.3 From 07ab3b8eccc3b35faa010d0916d346caa0d3e62c Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 6 Dec 2015 22:11:02 +0200 Subject: gnu: gajim: Update to 0.16.4. * gnu/packages/messaging.scm (gajim): Update to 0.16.4. --- gnu/packages/messaging.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index 731acb54c6..140108987b 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer ;;; Copyright © 2015 Andreas Enge ;;; Copyright © 2015 Ricardo Wurmus +;;; Copyright © 2015 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -424,7 +425,7 @@ was initially a fork of xmpppy, but is using non-blocking sockets.") (define-public gajim (package (name "gajim") - (version "0.16.3") + (version "0.16.4") (source (origin (method url-fetch) (uri (string-append "https://gajim.org/downloads/" @@ -432,7 +433,7 @@ was initially a fork of xmpppy, but is using non-blocking sockets.") "/gajim-" version ".tar.bz2")) (sha256 (base32 - "05a59hf9wna6n9fi0a4bhz1hifqj21bwb4ff9rd0my23rdwmij51")))) + "0zyfs7q1qg8iqszr8l1gb18gqla6zrrfsgpmbxblpi9maqxas5i1")))) (build-system gnu-build-system) (arguments `(#:phases -- cgit v1.2.3 From 1872f1bb798d399a9fb7affc375af1581fabf5a2 Mon Sep 17 00:00:00 2001 From: Kyle Meyer Date: Sat, 5 Dec 2015 02:11:31 -0500 Subject: gnu: Add python-docopt. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/python.scm (python-docopt, python2-docopt): New variables. Signed-off-by: Ludovic Courtès --- gnu/packages/python.scm | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 7d54516206..056775ec40 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -15,6 +15,7 @@ ;;; Copyright © 2015 Ben Woodcroft ;;; Copyright © 2015 Erik Edrosa ;;; Copyright © 2015 Efraim Flashner +;;; Copyright © 2015 Kyle Meyer ;;; ;;; This file is part of GNU Guix. ;;; @@ -6010,6 +6011,41 @@ automatically detect a wide range of file encodings.") (define-public python2-chardet (package-with-python2 python-chardet)) +(define-public python-docopt + (package + (name "python-docopt") + (version "0.6.2") + (source + (origin + (method url-fetch) + ;; The release on PyPI does not include tests. + (uri (string-append + "https://github.com/docopt/docopt/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "16bf890xbdz3m30rsv2qacklh2rdn1zrfspfnwzx9g7vwz8yw4r1")))) + (build-system python-build-system) + (native-inputs + `(("python-pytest" ,python-pytest) + ("python-setuptools" ,python-setuptools))) + (arguments + `(#:phases (alist-replace + 'check + (lambda _ (zero? (system* "py.test"))) + %standard-phases))) + (home-page "http://docopt.org") + (synopsis "Command-line interface description language for Python") + (description "This library allows the user to define a command-line +interface from a program's help message rather than specifying it +programatically with command-line parsers like @code{getopt} and +@code{argparse}.") + (license license:expat))) + +(define-public python2-docopt + (package-with-python2 python-docopt)) + (define-public python-zope-event (package (name "python-zope-event") -- cgit v1.2.3 From e92b8599f7159996a0d45badd54357f36a97f86f Mon Sep 17 00:00:00 2001 From: Kyle Meyer Date: Tue, 1 Dec 2015 12:29:12 -0500 Subject: gnu: Add myrepos. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/version-control.scm (myrepos): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/version-control.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index a9ebd66d42..6861e35bec 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2014, 2015 Mark H Weaver ;;; Copyright © 2014 Eric Bavier ;;; Copyright © 2015 Efraim Flashner +;;; Copyright © 2015 Kyle Meyer ;;; ;;; This file is part of GNU Guix. ;;; @@ -953,3 +954,32 @@ output of the 'git' command.") "Recursively find the newest file in a file tree and print its modification time.") (license bsd-2))) + +(define-public myrepos + (package + (name "myrepos") + (version "1.20151022") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/joeyh/myrepos/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "0c93lqsngpsxsca7nygk4qhidr40ijgih86q81x1mfcwbs0gbds8")))) + (build-system gnu-build-system) + (inputs + `(("perl" ,perl))) + (arguments + `(#:test-target "test" + #:phases (alist-delete 'configure %standard-phases) + #:make-flags (list (string-append "PREFIX=" %output)))) + (home-page "http://myrepos.branchable.com/") + (synopsis "Multiple repository management tool") + (description + "Myrepos provides the @code{mr} command, which maps an operation (e.g., +fetching updates) over a collection of version control repositories. It +supports a large number of version control systems: Git, Subversion, +Mercurial, Bazaar, Darcs, CVS, Fossil, and Veracity.") + (license gpl2+))) -- cgit v1.2.3 From 91726b6a3b1b0f1d87d0fb76f55173f8662724a4 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 6 Dec 2015 23:02:32 +0100 Subject: nls: Add Polish translation. --- po/guix/LINGUAS | 1 + po/guix/pl.po | 2088 +++++++++++ po/packages/LINGUAS | 1 + po/packages/pl.po | 10013 ++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 12103 insertions(+) create mode 100644 po/guix/pl.po create mode 100644 po/packages/pl.po diff --git a/po/guix/LINGUAS b/po/guix/LINGUAS index b271fd3ad5..dbf5afe726 100644 --- a/po/guix/LINGUAS +++ b/po/guix/LINGUAS @@ -8,6 +8,7 @@ en@quot eo fr hu +pl pt_BR sr vi diff --git a/po/guix/pl.po b/po/guix/pl.po new file mode 100644 index 0000000000..71c7fc3c00 --- /dev/null +++ b/po/guix/pl.po @@ -0,0 +1,2088 @@ +# GNU Guix package manager. +# Copyright (C) 2015 Free Software Foundation, Inc. +# This file is distributed under the same license as the guix package. +# Daniel Koć , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: guix 0.9.0\n" +"Report-Msgid-Bugs-To: ludo@gnu.org\n" +"POT-Creation-Date: 2015-10-28 16:31+0100\n" +"PO-Revision-Date: 2015-12-05 18:58+0100\n" +"Last-Translator: Daniel Koć \n" +"Language-Team: Polish \n" +"Language: pl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Poedit 1.8.4\n" + +#: gnu/packages.scm:80 +#, scheme-format +msgid "~a: patch not found" +msgstr "" + +#: gnu/packages.scm:91 +#, scheme-format +msgid "could not find bootstrap binary '~a' for system '~a'" +msgstr "" + +#: gnu/packages.scm:143 +#, scheme-format +msgid "cannot access `~a': ~a~%" +msgstr "" + +#: gnu/packages.scm:388 +#, scheme-format +msgid "looking for the latest release of GNU ~a..." +msgstr "" + +#: gnu/packages.scm:395 +#, scheme-format +msgid "~a: note: using ~a but ~a is available upstream~%" +msgstr "" + +#: gnu/packages.scm:417 gnu/packages.scm:452 +#, scheme-format +msgid "ambiguous package specification `~a'~%" +msgstr "" + +#: gnu/packages.scm:418 gnu/packages.scm:454 +#, scheme-format +msgid "choosing ~a from ~a~%" +msgstr "" + +#: gnu/packages.scm:424 +#, scheme-format +msgid "~A: package not found for version ~a~%" +msgstr "" + +#: gnu/packages.scm:426 +#, scheme-format +msgid "~A: unknown package~%" +msgstr "" + +#: gnu/packages.scm:442 +#, scheme-format +msgid "package `~a' lacks output `~a'~%" +msgstr "" + +#: gnu/packages.scm:459 +#, scheme-format +msgid "~a: package not found~%" +msgstr "" + +#: gnu/services.scm:376 +#, scheme-format +msgid "no target of type '~a' for service ~s" +msgstr "" + +#: gnu/services.scm:387 gnu/services.scm:447 +#, scheme-format +msgid "more than one target service of type '~a'" +msgstr "" + +#: gnu/services.scm:437 +#, scheme-format +msgid "service of type '~a' not found" +msgstr "" + +#: gnu/system.scm:547 +#, scheme-format +msgid "using a string for file '~a' is deprecated; use 'plain-file' instead~%" +msgstr "" + +#: gnu/system.scm:563 +#, scheme-format +msgid "using a monadic value for '~a' is deprecated; use 'plain-file' instead~%" +msgstr "" + +#: gnu/system.scm:646 +msgid "system locale lacks a definition" +msgstr "" + +#: gnu/services/dmd.scm:131 +#, scheme-format +msgid "service '~a' provided more than once" +msgstr "" + +#: gnu/system/shadow.scm:213 +#, scheme-format +msgid "supplementary group '~a' of user '~a' is undeclared" +msgstr "" + +#: gnu/system/shadow.scm:223 +#, scheme-format +msgid "primary group '~a' of user '~a' is undeclared" +msgstr "" + +#: guix/scripts.scm:52 +#, scheme-format +msgid "invalid argument: ~a~%" +msgstr "" + +#: guix/scripts.scm:78 guix/scripts/download.scm:97 guix/scripts/gc.scm:157 +#: guix/scripts/import/cran.scm:72 guix/scripts/import/elpa.scm:77 +#: guix/scripts/pull.scm:219 guix/scripts/lint.scm:792 +#: guix/scripts/publish.scm:355 +#, scheme-format +msgid "~A: unrecognized option~%" +msgstr "" + +#: guix/scripts/build.scm:107 +#, scheme-format +msgid "failed to create GC root `~a': ~a~%" +msgstr "" + +#: guix/scripts/build.scm:151 +msgid "" +"\n" +" -L, --load-path=DIR prepend DIR to the package module search path" +msgstr "" + +#: guix/scripts/build.scm:153 +msgid "" +"\n" +" -K, --keep-failed keep build tree of failed builds" +msgstr "" + +#: guix/scripts/build.scm:155 +msgid "" +"\n" +" -n, --dry-run do not build the derivations" +msgstr "" + +#: guix/scripts/build.scm:157 +msgid "" +"\n" +" --fallback fall back to building when the substituter fails" +msgstr "" + +#: guix/scripts/build.scm:159 +msgid "" +"\n" +" --no-substitutes build instead of resorting to pre-built substitutes" +msgstr "" + +#: guix/scripts/build.scm:161 guix/scripts/size.scm:215 +msgid "" +"\n" +" --substitute-urls=URLS\n" +" fetch substitute from URLS if they are authorized" +msgstr "" + +#: guix/scripts/build.scm:164 +msgid "" +"\n" +" --no-build-hook do not attempt to offload builds via the build hook" +msgstr "" + +#: guix/scripts/build.scm:166 +msgid "" +"\n" +" --max-silent-time=SECONDS\n" +" mark the build as failed after SECONDS of silence" +msgstr "" + +#: guix/scripts/build.scm:169 +msgid "" +"\n" +" --timeout=SECONDS mark the build as failed after SECONDS of activity" +msgstr "" + +#: guix/scripts/build.scm:171 +msgid "" +"\n" +" --verbosity=LEVEL use the given verbosity LEVEL" +msgstr "" + +#: guix/scripts/build.scm:173 +msgid "" +"\n" +" -c, --cores=N allow the use of up to N CPU cores for the build" +msgstr "" + +#: guix/scripts/build.scm:175 +msgid "" +"\n" +" -M, --max-jobs=N allow at most N build jobs" +msgstr "" + +#: guix/scripts/build.scm:261 guix/scripts/build.scm:268 +#, scheme-format +msgid "not a number: '~a' option argument: ~a~%" +msgstr "" + +#: guix/scripts/build.scm:287 +msgid "" +"Usage: guix build [OPTION]... PACKAGE-OR-DERIVATION...\n" +"Build the given PACKAGE-OR-DERIVATION and return their output paths.\n" +msgstr "" + +#: guix/scripts/build.scm:289 +msgid "" +"\n" +" -e, --expression=EXPR build the package or derivation EXPR evaluates to" +msgstr "" + +#: guix/scripts/build.scm:291 +msgid "" +"\n" +" -f, --file=FILE build the package or derivation that the code within\n" +" FILE evaluates to" +msgstr "" + +#: guix/scripts/build.scm:294 +msgid "" +"\n" +" -S, --source build the packages' source derivations" +msgstr "" + +#: guix/scripts/build.scm:296 +msgid "" +"\n" +" --sources[=TYPE] build source derivations; TYPE may optionally be one\n" +" of \"package\", \"all\" (default), or \"transitive\"" +msgstr "" + +#: guix/scripts/build.scm:299 +msgid "" +"\n" +" -s, --system=SYSTEM attempt to build for SYSTEM--e.g., \"i686-linux\"" +msgstr "" + +#: guix/scripts/build.scm:301 +msgid "" +"\n" +" --target=TRIPLET cross-build for TRIPLET--e.g., \"armel-linux-gnu\"" +msgstr "" + +#: guix/scripts/build.scm:303 +msgid "" +"\n" +" --with-source=SOURCE\n" +" use SOURCE when building the corresponding package" +msgstr "" + +#: guix/scripts/build.scm:306 +msgid "" +"\n" +" --no-grafts do not graft packages" +msgstr "" + +#: guix/scripts/build.scm:308 +msgid "" +"\n" +" -d, --derivations return the derivation paths of the given packages" +msgstr "" + +#: guix/scripts/build.scm:310 +msgid "" +"\n" +" -r, --root=FILE make FILE a symlink to the result, and register it\n" +" as a garbage collector root" +msgstr "" + +#: guix/scripts/build.scm:313 +msgid "" +"\n" +" --log-file return the log file names for the given derivations" +msgstr "" + +#: guix/scripts/build.scm:318 guix/scripts/download.scm:54 +#: guix/scripts/package.scm:292 guix/scripts/gc.scm:70 +#: guix/scripts/hash.scm:56 guix/scripts/import.scm:91 +#: guix/scripts/import/cran.scm:44 guix/scripts/pull.scm:83 +#: guix/scripts/substitute.scm:752 guix/scripts/system.scm:556 +#: guix/scripts/lint.scm:741 guix/scripts/publish.scm:63 +#: guix/scripts/edit.scm:43 guix/scripts/size.scm:223 +#: guix/scripts/graph.scm:398 guix/scripts/challenge.scm:181 +msgid "" +"\n" +" -h, --help display this help and exit" +msgstr "" + +#: guix/scripts/build.scm:320 guix/scripts/download.scm:56 +#: guix/scripts/package.scm:294 guix/scripts/gc.scm:72 +#: guix/scripts/hash.scm:58 guix/scripts/import.scm:93 +#: guix/scripts/import/cran.scm:46 guix/scripts/pull.scm:85 +#: guix/scripts/substitute.scm:754 guix/scripts/system.scm:558 +#: guix/scripts/lint.scm:745 guix/scripts/publish.scm:65 +#: guix/scripts/edit.scm:45 guix/scripts/size.scm:225 +#: guix/scripts/graph.scm:400 guix/scripts/challenge.scm:183 +msgid "" +"\n" +" -V, --version display version information and exit" +msgstr "" + +#: guix/scripts/build.scm:347 +#, scheme-format +msgid "" +"invalid argument: '~a' option argument: ~a, ~\n" +"must be one of 'package', 'all', or 'transitive'~%" +msgstr "" + +#: guix/scripts/build.scm:478 +#, scheme-format +msgid "sources do not match any package:~{ ~a~}~%" +msgstr "" + +#: guix/scripts/build.scm:536 +#, scheme-format +msgid "no build log for '~a'~%" +msgstr "" + +#: guix/scripts/download.scm:45 +msgid "" +"Usage: guix download [OPTION] URL\n" +"Download the file at URL, add it to the store, and print its store path\n" +"and the hash of its contents.\n" +"\n" +"Supported formats: 'nix-base32' (default), 'base32', and 'base16'\n" +"('hex' and 'hexadecimal' can be used as well).\n" +msgstr "" + +#: guix/scripts/download.scm:51 guix/scripts/hash.scm:51 +msgid "" +"\n" +" -f, --format=FMT write the hash in the given format" +msgstr "" + +#: guix/scripts/download.scm:74 guix/scripts/hash.scm:76 +#, scheme-format +msgid "unsupported hash format: ~a~%" +msgstr "" + +#: guix/scripts/download.scm:107 +#, scheme-format +msgid "~a: failed to parse URI~%" +msgstr "" + +#: guix/scripts/download.scm:118 +#, scheme-format +msgid "~a: download failed~%" +msgstr "" + +#: guix/scripts/package.scm:128 +#, scheme-format +msgid "not removing generation ~a, which is current~%" +msgstr "" + +#: guix/scripts/package.scm:135 +#, scheme-format +msgid "no matching generation~%" +msgstr "" + +#: guix/scripts/package.scm:138 guix/scripts/package.scm:734 +#: guix/scripts/system.scm:396 +#, scheme-format +msgid "invalid syntax: ~a~%" +msgstr "" + +#: guix/scripts/package.scm:219 +#, scheme-format +msgid "The following environment variable definitions may be needed:~%" +msgstr "" + +#: guix/scripts/package.scm:235 +msgid "" +"Usage: guix package [OPTION]...\n" +"Install, remove, or upgrade packages in a single transaction.\n" +msgstr "" + +#: guix/scripts/package.scm:237 +msgid "" +"\n" +" -i, --install PACKAGE ...\n" +" install PACKAGEs" +msgstr "" + +#: guix/scripts/package.scm:240 +msgid "" +"\n" +" -e, --install-from-expression=EXP\n" +" install the package EXP evaluates to" +msgstr "" + +#: guix/scripts/package.scm:243 +msgid "" +"\n" +" -f, --install-from-file=FILE\n" +" install the package that the code within FILE\n" +" evaluates to" +msgstr "" + +#: guix/scripts/package.scm:247 +msgid "" +"\n" +" -r, --remove PACKAGE ...\n" +" remove PACKAGEs" +msgstr "" + +#: guix/scripts/package.scm:250 +msgid "" +"\n" +" -u, --upgrade[=REGEXP] upgrade all the installed packages matching REGEXP" +msgstr "" + +#: guix/scripts/package.scm:252 +msgid "" +"\n" +" -m, --manifest=FILE create a new profile generation with the manifest\n" +" from FILE" +msgstr "" + +#: guix/scripts/package.scm:255 +msgid "" +"\n" +" --do-not-upgrade[=REGEXP] do not upgrade any packages matching REGEXP" +msgstr "" + +#: guix/scripts/package.scm:257 +msgid "" +"\n" +" --roll-back roll back to the previous generation" +msgstr "" + +#: guix/scripts/package.scm:259 +msgid "" +"\n" +" --search-paths[=KIND]\n" +" display needed environment variable definitions" +msgstr "" + +#: guix/scripts/package.scm:262 +msgid "" +"\n" +" -l, --list-generations[=PATTERN]\n" +" list generations matching PATTERN" +msgstr "" + +#: guix/scripts/package.scm:265 +msgid "" +"\n" +" -d, --delete-generations[=PATTERN]\n" +" delete generations matching PATTERN" +msgstr "" + +#: guix/scripts/package.scm:268 +msgid "" +"\n" +" -S, --switch-generation=PATTERN\n" +" switch to a generation matching PATTERN" +msgstr "" + +#: guix/scripts/package.scm:271 +msgid "" +"\n" +" -p, --profile=PROFILE use PROFILE instead of the user's default profile" +msgstr "" + +#: guix/scripts/package.scm:274 +msgid "" +"\n" +" --bootstrap use the bootstrap Guile to build the profile" +msgstr "" + +#: guix/scripts/package.scm:276 guix/scripts/pull.scm:76 +msgid "" +"\n" +" --verbose produce verbose output" +msgstr "" + +#: guix/scripts/package.scm:279 +msgid "" +"\n" +" -s, --search=REGEXP search in synopsis and description using REGEXP" +msgstr "" + +#: guix/scripts/package.scm:281 +msgid "" +"\n" +" -I, --list-installed[=REGEXP]\n" +" list installed packages matching REGEXP" +msgstr "" + +#: guix/scripts/package.scm:284 +msgid "" +"\n" +" -A, --list-available[=REGEXP]\n" +" list available packages matching REGEXP" +msgstr "" + +#: guix/scripts/package.scm:287 +msgid "" +"\n" +" --show=PACKAGE show details about PACKAGE" +msgstr "" + +#: guix/scripts/package.scm:380 +#, scheme-format +msgid "~a: unsupported kind of search path~%" +msgstr "" + +#: guix/scripts/package.scm:550 guix/scripts/publish.scm:357 +#, scheme-format +msgid "~A: extraneous argument~%" +msgstr "" + +#: guix/scripts/package.scm:558 +#, scheme-format +msgid "Try \"info '(guix) Invoking guix package'\" for more information.~%" +msgstr "" + +#: guix/scripts/package.scm:580 +#, scheme-format +msgid "error: while creating directory `~a': ~a~%" +msgstr "" + +#: guix/scripts/package.scm:584 +#, scheme-format +msgid "Please create the `~a' directory, with you as the owner.~%" +msgstr "" + +#: guix/scripts/package.scm:591 +#, scheme-format +msgid "error: directory `~a' is not owned by you~%" +msgstr "" + +#: guix/scripts/package.scm:594 +#, scheme-format +msgid "Please change the owner of `~a' to user ~s.~%" +msgstr "" + +#: guix/scripts/package.scm:628 +#, scheme-format +msgid "nothing to be done~%" +msgstr "" + +#: guix/scripts/package.scm:644 +#, scheme-format +msgid "~a package in profile~%" +msgid_plural "~a packages in profile~%" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: guix/scripts/package.scm:668 +#, scheme-format +msgid "cannot switch to generation '~a'~%" +msgstr "" + +#: guix/scripts/package.scm:690 +#, scheme-format +msgid "would install new manifest from '~a' with ~d entries~%" +msgstr "" + +#: guix/scripts/package.scm:692 +#, scheme-format +msgid "installing new manifest from '~a' with ~d entries~%" +msgstr "" + +#: guix/scripts/gc.scm:40 +msgid "" +"Usage: guix gc [OPTION]... PATHS...\n" +"Invoke the garbage collector.\n" +msgstr "" + +#: guix/scripts/gc.scm:42 +msgid "" +"\n" +" -C, --collect-garbage[=MIN]\n" +" collect at least MIN bytes of garbage" +msgstr "" + +#: guix/scripts/gc.scm:45 +msgid "" +"\n" +" -d, --delete attempt to delete PATHS" +msgstr "" + +#: guix/scripts/gc.scm:47 +msgid "" +"\n" +" --optimize optimize the store by deduplicating identical files" +msgstr "" + +#: guix/scripts/gc.scm:49 +msgid "" +"\n" +" --list-dead list dead paths" +msgstr "" + +#: guix/scripts/gc.scm:51 +msgid "" +"\n" +" --list-live list live paths" +msgstr "" + +#: guix/scripts/gc.scm:54 +msgid "" +"\n" +" --references list the references of PATHS" +msgstr "" + +#: guix/scripts/gc.scm:56 +msgid "" +"\n" +" -R, --requisites list the requisites of PATHS" +msgstr "" + +#: guix/scripts/gc.scm:58 +msgid "" +"\n" +" --referrers list the referrers of PATHS" +msgstr "" + +#: guix/scripts/gc.scm:61 +msgid "" +"\n" +" --verify[=OPTS] verify the integrity of the store; OPTS is a\n" +" comma-separated combination of 'repair' and\n" +" 'contents'" +msgstr "" + +#: guix/scripts/gc.scm:65 +msgid "" +"\n" +" --list-failures list cached build failures" +msgstr "" + +#: guix/scripts/gc.scm:67 +msgid "" +"\n" +" --clear-failures remove PATHS from the set of cached failures" +msgstr "" + +#: guix/scripts/gc.scm:96 +#, scheme-format +msgid "invalid amount of storage: ~a~%" +msgstr "" + +#: guix/scripts/hash.scm:46 +msgid "" +"Usage: guix hash [OPTION] FILE\n" +"Return the cryptographic hash of FILE.\n" +"\n" +"Supported formats: 'nix-base32' (default), 'base32', and 'base16' ('hex'\n" +"and 'hexadecimal' can be used as well).\n" +msgstr "" + +#: guix/scripts/hash.scm:53 +msgid "" +"\n" +" -r, --recursive compute the hash on FILE recursively" +msgstr "" + +#: guix/scripts/hash.scm:104 +#, scheme-format +msgid "unrecognized option: ~a~%" +msgstr "" + +#: guix/scripts/hash.scm:135 guix/ui.scm:458 +#, scheme-format +msgid "~a~%" +msgstr "" + +#: guix/scripts/hash.scm:138 guix/scripts/system.scm:685 +#, scheme-format +msgid "wrong number of arguments~%" +msgstr "" + +#: guix/scripts/import.scm:85 +msgid "" +"Usage: guix import IMPORTER ARGS ...\n" +"Run IMPORTER with ARGS.\n" +msgstr "" + +#: guix/scripts/import.scm:88 +msgid "IMPORTER must be one of the importers listed below:\n" +msgstr "" + +#: guix/scripts/import.scm:102 +#, scheme-format +msgid "guix import: missing importer name~%" +msgstr "" + +#: guix/scripts/import.scm:113 +#, scheme-format +msgid "guix import: invalid importer~%" +msgstr "" + +#: guix/scripts/import/cran.scm:42 +msgid "" +"Usage: guix import cran PACKAGE-NAME\n" +"Import and convert the CRAN package for PACKAGE-NAME.\n" +msgstr "" + +#: guix/scripts/import/cran.scm:87 +#, scheme-format +msgid "failed to download description for package '~a'~%" +msgstr "" + +#: guix/scripts/import/cran.scm:91 guix/scripts/import/elpa.scm:95 +#, scheme-format +msgid "too few arguments~%" +msgstr "" + +#: guix/scripts/import/cran.scm:93 guix/scripts/import/elpa.scm:97 +#, scheme-format +msgid "too many arguments~%" +msgstr "" + +#: guix/scripts/import/elpa.scm:41 +msgid "" +"Usage: guix import elpa PACKAGE-NAME\n" +"Import the latest package named PACKAGE-NAME from an ELPA repository.\n" +msgstr "" + +#: guix/scripts/import/elpa.scm:43 +msgid "" +"\n" +" -a, --archive=ARCHIVE specify the archive repository" +msgstr "" + +#: guix/scripts/import/elpa.scm:45 +msgid "" +"\n" +" -h, --help display this help and exit" +msgstr "" + +#: guix/scripts/import/elpa.scm:47 +msgid "" +"\n" +" -V, --version display version information and exit" +msgstr "" + +#: guix/scripts/import/elpa.scm:92 +#, scheme-format +msgid "failed to download package '~a'~%" +msgstr "" + +#: guix/scripts/pull.scm:74 +msgid "" +"Usage: guix pull [OPTION]...\n" +"Download and deploy the latest version of Guix.\n" +msgstr "" + +#: guix/scripts/pull.scm:78 +msgid "" +"\n" +" --url=URL download the Guix tarball from URL" +msgstr "" + +#: guix/scripts/pull.scm:80 +msgid "" +"\n" +" --bootstrap use the bootstrap Guile to build the new Guix" +msgstr "" + +#: guix/scripts/pull.scm:134 +msgid "tarball did not produce a single source directory" +msgstr "" + +#: guix/scripts/pull.scm:152 +#, scheme-format +msgid "unpacking '~a'...~%" +msgstr "" + +#: guix/scripts/pull.scm:161 +msgid "failed to unpack source code" +msgstr "" + +#: guix/scripts/pull.scm:204 +msgid "Guix already up to date\n" +msgstr "" + +#: guix/scripts/pull.scm:209 +#, scheme-format +msgid "updated ~a successfully deployed under `~a'~%" +msgstr "" + +#: guix/scripts/pull.scm:212 +#, scheme-format +msgid "failed to update Guix, check the build log~%" +msgstr "" + +#: guix/scripts/pull.scm:221 +#, scheme-format +msgid "~A: unexpected argument~%" +msgstr "" + +#: guix/scripts/pull.scm:230 +msgid "failed to download up-to-date source, exiting\n" +msgstr "" + +#: guix/scripts/substitute.scm:103 +#, scheme-format +msgid "authentication and authorization of substitutes disabled!~%" +msgstr "" + +#: guix/scripts/substitute.scm:179 +#, scheme-format +msgid "download from '~a' failed: ~a, ~s~%" +msgstr "" + +#: guix/scripts/substitute.scm:191 +#, scheme-format +msgid "while fetching ~a: server is somewhat slow~%" +msgstr "" + +#: guix/scripts/substitute.scm:193 +#, scheme-format +msgid "try `--no-substitutes' if the problem persists~%" +msgstr "" + +#: guix/scripts/substitute.scm:266 +#, scheme-format +msgid "signature version must be a number: ~s~%" +msgstr "" + +#: guix/scripts/substitute.scm:270 +#, scheme-format +msgid "unsupported signature version: ~a~%" +msgstr "" + +#: guix/scripts/substitute.scm:278 +#, scheme-format +msgid "signature is not a valid s-expression: ~s~%" +msgstr "" + +#: guix/scripts/substitute.scm:282 +#, scheme-format +msgid "invalid format of the signature field: ~a~%" +msgstr "" + +#: guix/scripts/substitute.scm:317 +#, scheme-format +msgid "invalid signature for '~a'~%" +msgstr "" + +#: guix/scripts/substitute.scm:319 +#, scheme-format +msgid "hash mismatch for '~a'~%" +msgstr "" + +#: guix/scripts/substitute.scm:321 +#, scheme-format +msgid "'~a' is signed with an unauthorized key~%" +msgstr "" + +#: guix/scripts/substitute.scm:323 +#, scheme-format +msgid "signature on '~a' is corrupt~%" +msgstr "" + +#: guix/scripts/substitute.scm:361 +#, scheme-format +msgid "substitute at '~a' lacks a signature~%" +msgstr "" + +#: guix/scripts/substitute.scm:537 +#, scheme-format +msgid "updating list of substitutes from '~a'... ~5,1f%" +msgstr "" + +#: guix/scripts/substitute.scm:591 +#, scheme-format +msgid "~s: unsupported server URI scheme~%" +msgstr "" + +#: guix/scripts/substitute.scm:733 +#, scheme-format +msgid "host name lookup error: ~a~%" +msgstr "" + +#: guix/scripts/substitute.scm:742 +msgid "" +"Usage: guix substitute [OPTION]...\n" +"Internal tool to substitute a pre-built binary to a local build.\n" +msgstr "" + +#: guix/scripts/substitute.scm:744 +msgid "" +"\n" +" --query report on the availability of substitutes for the\n" +" store file names passed on the standard input" +msgstr "" + +#: guix/scripts/substitute.scm:747 +msgid "" +"\n" +" --substitute STORE-FILE DESTINATION\n" +" download STORE-FILE and store it as a Nar in file\n" +" DESTINATION" +msgstr "" + +#: guix/scripts/substitute.scm:872 +msgid "ACL for archive imports seems to be uninitialized, substitutes may be unavailable\n" +msgstr "" + +#: guix/scripts/substitute.scm:954 +#, scheme-format +msgid "~a: unrecognized options~%" +msgstr "" + +#: guix/scripts/authenticate.scm:58 +#, scheme-format +msgid "cannot find public key for secret key '~a'~%" +msgstr "" + +#: guix/scripts/authenticate.scm:78 +#, scheme-format +msgid "error: invalid signature: ~a~%" +msgstr "" + +#: guix/scripts/authenticate.scm:80 +#, scheme-format +msgid "error: unauthorized public key: ~a~%" +msgstr "" + +#: guix/scripts/authenticate.scm:82 +#, scheme-format +msgid "error: corrupt signature data: ~a~%" +msgstr "" + +#: guix/scripts/authenticate.scm:120 +msgid "" +"Usage: guix authenticate OPTION...\n" +"Sign or verify the signature on the given file. This tool is meant to\n" +"be used internally by 'guix-daemon'.\n" +msgstr "" + +#: guix/scripts/authenticate.scm:126 +msgid "wrong arguments" +msgstr "" + +#: guix/scripts/system.scm:105 +#, scheme-format +msgid "failed to register '~a' under '~a'~%" +msgstr "" + +#: guix/scripts/system.scm:137 +#, scheme-format +msgid "failed to install GRUB on device '~a'~%" +msgstr "" + +#: guix/scripts/system.scm:155 +#, scheme-format +msgid "initializing the current root file system~%" +msgstr "" + +#: guix/scripts/system.scm:169 +#, scheme-format +msgid "not running as 'root', so the ownership of '~a' may be incorrect!~%" +msgstr "" + +#: guix/scripts/system.scm:219 +#, scheme-format +msgid "unrecognized boot parameters for '~a'~%" +msgstr "" + +#: guix/scripts/system.scm:254 +#, scheme-format +msgid "activating system...~%" +msgstr "" + +#: guix/scripts/system.scm:338 +msgid "the DAG of services" +msgstr "" + +#: guix/scripts/system.scm:351 +msgid "the dependency graph of dmd services" +msgstr "" + +#: guix/scripts/system.scm:369 +#, scheme-format +msgid " file name: ~a~%" +msgstr "" + +#: guix/scripts/system.scm:370 +#, scheme-format +msgid " canonical file name: ~a~%" +msgstr "" + +#. TRANSLATORS: Please preserve the two-space indentation. +#: guix/scripts/system.scm:374 +#, scheme-format +msgid " label: ~a~%" +msgstr "" + +#: guix/scripts/system.scm:375 +#, scheme-format +msgid " root device: ~a~%" +msgstr "" + +#: guix/scripts/system.scm:376 +#, scheme-format +msgid " kernel: ~a~%" +msgstr "" + +#: guix/scripts/system.scm:476 +#, scheme-format +msgid "initializing operating system under '~a'...~%" +msgstr "" + +#: guix/scripts/system.scm:515 +msgid "" +"Usage: guix system [OPTION] ACTION [FILE]\n" +"Build the operating system declared in FILE according to ACTION.\n" +msgstr "" + +#: guix/scripts/system.scm:518 +msgid "The valid values for ACTION are:\n" +msgstr "" + +#: guix/scripts/system.scm:520 +msgid " reconfigure switch to a new operating system configuration\n" +msgstr "" + +#: guix/scripts/system.scm:522 +msgid " list-generations list the system generations\n" +msgstr "" + +#: guix/scripts/system.scm:524 +msgid " build build the operating system without installing anything\n" +msgstr "" + +#: guix/scripts/system.scm:526 +msgid " vm build a virtual machine image that shares the host's store\n" +msgstr "" + +#: guix/scripts/system.scm:528 +msgid " vm-image build a freestanding virtual machine image\n" +msgstr "" + +#: guix/scripts/system.scm:530 +msgid " disk-image build a disk image, suitable for a USB stick\n" +msgstr "" + +#: guix/scripts/system.scm:532 +msgid " init initialize a root file system to run GNU\n" +msgstr "" + +#: guix/scripts/system.scm:534 +msgid " extension-graph emit the service extension graph in Dot format\n" +msgstr "" + +#: guix/scripts/system.scm:536 +msgid " dmd-graph emit the graph of dmd services in Dot format\n" +msgstr "" + +#: guix/scripts/system.scm:540 +msgid "" +"\n" +" -d, --derivation return the derivation of the given system" +msgstr "" + +#: guix/scripts/system.scm:542 +msgid "" +"\n" +" --on-error=STRATEGY\n" +" apply STRATEGY when an error occurs while reading FILE" +msgstr "" + +#: guix/scripts/system.scm:545 +msgid "" +"\n" +" --image-size=SIZE for 'vm-image', produce an image of SIZE" +msgstr "" + +#: guix/scripts/system.scm:547 +msgid "" +"\n" +" --no-grub for 'init', do not install GRUB" +msgstr "" + +#: guix/scripts/system.scm:549 +msgid "" +"\n" +" --share=SPEC for 'vm', share host file system according to SPEC" +msgstr "" + +#: guix/scripts/system.scm:551 +msgid "" +"\n" +" --expose=SPEC for 'vm', expose host file system according to SPEC" +msgstr "" + +#: guix/scripts/system.scm:553 +msgid "" +"\n" +" --full-boot for 'vm', make a full boot sequence" +msgstr "" + +#: guix/scripts/system.scm:637 +#, scheme-format +msgid "no configuration file specified~%" +msgstr "" + +#: guix/scripts/system.scm:700 +#, scheme-format +msgid "~a: unknown action~%" +msgstr "" + +#: guix/scripts/system.scm:715 +#, scheme-format +msgid "wrong number of arguments for action '~a'~%" +msgstr "" + +#: guix/scripts/system.scm:720 +#, scheme-format +msgid "guix system: missing command name~%" +msgstr "" + +#: guix/scripts/system.scm:722 +#, scheme-format +msgid "Try 'guix system --help' for more information.~%" +msgstr "Wpisz 'guix system --help' aby uzyskać więcej informacji.~%" + +#: guix/scripts/lint.scm:124 +#, scheme-format +msgid "Available checkers:~%" +msgstr "" + +#: guix/scripts/lint.scm:144 +msgid "description should not be empty" +msgstr "" + +#: guix/scripts/lint.scm:154 +msgid "Texinfo markup in description is invalid" +msgstr "" + +#: guix/scripts/lint.scm:162 +msgid "description should start with an upper-case letter or digit" +msgstr "" + +#: guix/scripts/lint.scm:178 +#, scheme-format +msgid "" +"sentences in description should be followed ~\n" +"by two spaces; possible infraction~p at ~{~a~^, ~}" +msgstr "" + +#: guix/scripts/lint.scm:202 +msgid "pkg-config should probably be a native input" +msgstr "" + +#: guix/scripts/lint.scm:217 +msgid "synopsis should not be empty" +msgstr "" + +#: guix/scripts/lint.scm:225 +msgid "no period allowed at the end of the synopsis" +msgstr "" + +#: guix/scripts/lint.scm:237 +msgid "no article allowed at the beginning of the synopsis" +msgstr "" + +#: guix/scripts/lint.scm:244 +msgid "synopsis should be less than 80 characters long" +msgstr "" + +#: guix/scripts/lint.scm:250 +msgid "synopsis should start with an upper-case letter or digit" +msgstr "" + +#: guix/scripts/lint.scm:257 +msgid "synopsis should not start with the package name" +msgstr "" + +#: guix/scripts/lint.scm:348 guix/scripts/lint.scm:360 +#, scheme-format +msgid "URI ~a not reachable: ~a (~s)" +msgstr "" + +#: guix/scripts/lint.scm:367 +#, scheme-format +msgid "URI ~a domain not found: ~a" +msgstr "" + +#: guix/scripts/lint.scm:375 +#, scheme-format +msgid "URI ~a unreachable: ~a" +msgstr "" + +#: guix/scripts/lint.scm:401 +msgid "invalid value for home page" +msgstr "" + +#: guix/scripts/lint.scm:404 +#, scheme-format +msgid "invalid home page URL: ~s" +msgstr "" + +#: guix/scripts/lint.scm:429 +msgid "file names of patches should start with the package name" +msgstr "" + +#: guix/scripts/lint.scm:467 +#, scheme-format +msgid "~a: ~a: proposed synopsis: ~s~%" +msgstr "" + +#: guix/scripts/lint.scm:479 +#, scheme-format +msgid "~a: ~a: proposed description:~% \"~a\"~%" +msgstr "" + +#: guix/scripts/lint.scm:516 +msgid "all the source URIs are unreachable:" +msgstr "" + +#: guix/scripts/lint.scm:539 +msgid "the source file name should contain the package name" +msgstr "" + +#: guix/scripts/lint.scm:548 guix/scripts/lint.scm:552 +#, scheme-format +msgid "failed to create derivation: ~a" +msgstr "" + +#: guix/scripts/lint.scm:558 +#, scheme-format +msgid "failed to create derivation: ~s~%" +msgstr "" + +#: guix/scripts/lint.scm:568 +msgid "invalid license field" +msgstr "" + +#: guix/scripts/lint.scm:582 +#, scheme-format +msgid "tabulation on line ~a, column ~a" +msgstr "" + +#: guix/scripts/lint.scm:591 +#, scheme-format +msgid "trailing white space on line ~a" +msgstr "" + +#: guix/scripts/lint.scm:601 +#, scheme-format +msgid "line ~a is way too long (~a characters)" +msgstr "" + +#: guix/scripts/lint.scm:612 +#, scheme-format +msgid "line ~a: parentheses feel lonely, move to the previous or next line" +msgstr "" + +#: guix/scripts/lint.scm:667 +msgid "Validate package descriptions" +msgstr "" + +#: guix/scripts/lint.scm:671 +msgid "Validate synopsis & description of GNU packages" +msgstr "" + +#: guix/scripts/lint.scm:675 +msgid "Identify inputs that should be native inputs" +msgstr "" + +#: guix/scripts/lint.scm:679 +msgid "Validate file names and availability of patches" +msgstr "" + +#: guix/scripts/lint.scm:683 +msgid "Validate home-page URLs" +msgstr "" + +#. TRANSLATORS: is the name of a data type and must not be +#. translated. +#: guix/scripts/lint.scm:689 +msgid "Make sure the 'license' field is a or a list thereof" +msgstr "" + +#: guix/scripts/lint.scm:694 +msgid "Validate source URLs" +msgstr "" + +#: guix/scripts/lint.scm:698 +msgid "Validate file names of sources" +msgstr "" + +#: guix/scripts/lint.scm:702 +msgid "Report failure to compile a package to a derivation" +msgstr "" + +#: guix/scripts/lint.scm:706 +msgid "Validate package synopses" +msgstr "" + +#: guix/scripts/lint.scm:710 +msgid "Look for formatting issues in the source" +msgstr "" + +#: guix/scripts/lint.scm:735 +msgid "" +"Usage: guix lint [OPTION]... [PACKAGE]...\n" +"Run a set of checkers on the specified package; if none is specified,\n" +"run the checkers on all packages.\n" +msgstr "" + +#: guix/scripts/lint.scm:738 +msgid "" +"\n" +" -c, --checkers=CHECKER1,CHECKER2...\n" +" only run the specified checkers" +msgstr "" + +#: guix/scripts/lint.scm:743 +msgid "" +"\n" +" -l, --list-checkers display the list of available lint checkers" +msgstr "" + +#: guix/scripts/lint.scm:763 +#, scheme-format +msgid "~a: invalid checker~%" +msgstr "" + +#: guix/scripts/publish.scm:52 +#, scheme-format +msgid "" +"Usage: guix publish [OPTION]...\n" +"Publish ~a over HTTP.\n" +msgstr "" + +#: guix/scripts/publish.scm:54 +msgid "" +"\n" +" -p, --port=PORT listen on PORT" +msgstr "" + +#: guix/scripts/publish.scm:56 +msgid "" +"\n" +" --listen=HOST listen on the network interface for HOST" +msgstr "" + +#: guix/scripts/publish.scm:58 +msgid "" +"\n" +" -u, --user=USER change privileges to USER as soon as possible" +msgstr "" + +#: guix/scripts/publish.scm:60 +msgid "" +"\n" +" -r, --repl[=PORT] spawn REPL server on PORT" +msgstr "" + +#: guix/scripts/publish.scm:76 +#, scheme-format +msgid "lookup of host '~a' failed: ~a~%" +msgstr "" + +#: guix/scripts/publish.scm:100 +#, scheme-format +msgid "lookup of host '~a' returned nothing" +msgstr "" + +#: guix/scripts/publish.scm:343 +#, scheme-format +msgid "user '~a' not found: ~a~%" +msgstr "" + +#: guix/scripts/publish.scm:378 +#, scheme-format +msgid "server running as root; consider using the '--user' option!~%" +msgstr "" + +#: guix/scripts/publish.scm:380 +#, scheme-format +msgid "publishing ~a on ~a, port ~d~%" +msgstr "" + +#: guix/scripts/edit.scm:40 +msgid "" +"Usage: guix edit PACKAGE...\n" +"Start $EDITOR to edit the definitions of PACKAGE...\n" +msgstr "" + +#: guix/scripts/edit.scm:58 +#, scheme-format +msgid "file '~a' not found in search path ~s~%" +msgstr "" + +#: guix/scripts/edit.scm:70 +#, scheme-format +msgid "source location of package '~a' is unknown~%" +msgstr "" + +#: guix/scripts/size.scm:75 +#, scheme-format +msgid "no available substitute information for '~a'~%" +msgstr "" + +#: guix/scripts/size.scm:83 +msgid "store item" +msgstr "" + +#: guix/scripts/size.scm:83 +msgid "total" +msgstr "" + +#: guix/scripts/size.scm:83 +msgid "self" +msgstr "" + +#. TRANSLATORS: This is the title of a graph, meaning that the graph +#. represents a profile of the store (the "store" being the place where +#. packages are stored.) +#: guix/scripts/size.scm:204 +msgid "store profile" +msgstr "" + +#: guix/scripts/size.scm:213 +msgid "" +"Usage: guix size [OPTION]... PACKAGE\n" +"Report the size of PACKAGE and its dependencies.\n" +msgstr "" + +#: guix/scripts/size.scm:218 +msgid "" +"\n" +" -s, --system=SYSTEM consider packages for SYSTEM--e.g., \"i686-linux\"" +msgstr "" + +#: guix/scripts/size.scm:220 +msgid "" +"\n" +" -m, --map-file=FILE write to FILE a graphical map of disk usage" +msgstr "" + +#: guix/scripts/size.scm:274 +msgid "missing store item argument\n" +msgstr "" + +#: guix/scripts/size.scm:292 +msgid "too many arguments\n" +msgstr "" + +#: guix/scripts/graph.scm:105 +msgid "the DAG of packages, excluding implicit inputs" +msgstr "" + +#: guix/scripts/graph.scm:155 +msgid "the DAG of packages, including implicit inputs" +msgstr "" + +#: guix/scripts/graph.scm:179 +msgid "same as 'bag', but without the bootstrap nodes" +msgstr "" + +#: guix/scripts/graph.scm:222 +msgid "the DAG of derivations" +msgstr "" + +#: guix/scripts/graph.scm:246 +#, scheme-format +msgid "references for '~a' are not known~%" +msgstr "" + +#: guix/scripts/graph.scm:253 +msgid "the DAG of run-time dependencies (store references)" +msgstr "" + +#: guix/scripts/graph.scm:282 +#, scheme-format +msgid "~a: unknown node type~%" +msgstr "" + +#: guix/scripts/graph.scm:286 +msgid "The available node types are:\n" +msgstr "" + +#. TRANSLATORS: Here 'dot' is the name of a program; it must not be +#. translated. +#: guix/scripts/graph.scm:389 +msgid "" +"Usage: guix graph PACKAGE...\n" +"Emit a Graphviz (dot) representation of the dependencies of PACKAGE...\n" +msgstr "" + +#: guix/scripts/graph.scm:391 +msgid "" +"\n" +" -t, --type=TYPE represent nodes of the given TYPE" +msgstr "" + +#: guix/scripts/graph.scm:393 +msgid "" +"\n" +" --list-types list the available graph types" +msgstr "" + +#: guix/scripts/graph.scm:395 +msgid "" +"\n" +" -e, --expression=EXPR consider the package EXPR evaluates to" +msgstr "" + +#: guix/scripts/challenge.scm:104 +#, scheme-format +msgid "~a: no substitute at '~a'~%" +msgstr "" + +#: guix/scripts/challenge.scm:120 +#, scheme-format +msgid "no substitutes for '~a'~%" +msgstr "" + +#: guix/scripts/challenge.scm:137 guix/scripts/challenge.scm:157 +#, scheme-format +msgid "no local build for '~a'~%" +msgstr "" + +#: guix/scripts/challenge.scm:154 +#, scheme-format +msgid "~a contents differ:~%" +msgstr "" + +#: guix/scripts/challenge.scm:156 +#, scheme-format +msgid " local hash: ~a~%" +msgstr "" + +#: guix/scripts/challenge.scm:161 +#, scheme-format +msgid " ~50a: ~a~%" +msgstr "" + +#: guix/scripts/challenge.scm:165 +#, scheme-format +msgid " ~50a: unavailable~%" +msgstr "" + +#: guix/scripts/challenge.scm:175 +msgid "" +"Usage: guix challenge [PACKAGE...]\n" +"Challenge the substitutes for PACKAGE... provided by one or more servers.\n" +msgstr "" + +#: guix/scripts/challenge.scm:177 +msgid "" +"\n" +" --substitute-urls=URLS\n" +" compare build results with those at URLS" +msgstr "" + +#: guix/gnu-maintenance.scm:418 +msgid "Updater for GNU packages" +msgstr "" + +#: guix/upstream.scm:156 +#, scheme-format +msgid "signature verification failed for `~a'~%" +msgstr "" + +#: guix/upstream.scm:158 +#, scheme-format +msgid "(could be because the public key is not in your keyring)~%" +msgstr "" + +#: guix/upstream.scm:190 +msgid "gz" +msgstr "" + +#: guix/upstream.scm:253 +#, scheme-format +msgid "~a: could not locate source file" +msgstr "" + +#: guix/upstream.scm:258 +#, scheme-format +msgid "~a: ~a: no `version' field in source; skipping~%" +msgstr "" + +#: guix/ui.scm:234 +msgid "entering debugger; type ',bt' for a backtrace\n" +msgstr "" + +#: guix/ui.scm:250 guix/ui.scm:267 +#, scheme-format +msgid "failed to load '~a': ~a~%" +msgstr "" + +#: guix/ui.scm:253 +#, scheme-format +msgid "~a: error: ~a~%" +msgstr "" + +#: guix/ui.scm:256 guix/ui.scm:510 +#, scheme-format +msgid "exception thrown: ~s~%" +msgstr "" + +#: guix/ui.scm:258 guix/ui.scm:276 +#, scheme-format +msgid "failed to load '~a':~%" +msgstr "" + +#: guix/ui.scm:270 +#, scheme-format +msgid "~a: warning: ~a~%" +msgstr "~a: ostrzeżenie: ~a~%" + +#: guix/ui.scm:273 +#, scheme-format +msgid "failed to load '~a': exception thrown: ~s~%" +msgstr "" + +#: guix/ui.scm:285 +#, scheme-format +msgid "failed to install locale: ~a~%" +msgstr "instalacja tłumaczeń nie powiodła się: ~a~%" + +#: guix/ui.scm:304 +msgid "" +"Copyright (C) 2015 the Guix authors\n" +"License GPLv3+: GNU GPL version 3 or later \n" +"This is free software: you are free to change and redistribute it.\n" +"There is NO WARRANTY, to the extent permitted by law.\n" +msgstr "" + +#: guix/ui.scm:312 +#, scheme-format +msgid "" +"\n" +"Report bugs to: ~a." +msgstr "" + +#: guix/ui.scm:314 +#, scheme-format +msgid "" +"\n" +"~a home page: <~a>" +msgstr "" + +#: guix/ui.scm:316 +msgid "" +"\n" +"General help using GNU software: " +msgstr "" + +#: guix/ui.scm:361 +#, scheme-format +msgid "'~a' is not a valid regular expression: ~a~%" +msgstr "" + +#: guix/ui.scm:367 +#, scheme-format +msgid "~a: invalid number~%" +msgstr "" + +#: guix/ui.scm:384 +#, scheme-format +msgid "invalid number: ~a~%" +msgstr "" + +#: guix/ui.scm:407 +#, scheme-format +msgid "unknown unit: ~a~%" +msgstr "" + +#: guix/ui.scm:418 +#, scheme-format +msgid "~a:~a:~a: package `~a' has an invalid input: ~s~%" +msgstr "" + +#: guix/ui.scm:425 +#, scheme-format +msgid "~a: ~a: build system `~a' does not support cross builds~%" +msgstr "" + +#: guix/ui.scm:430 +#, scheme-format +msgid "profile '~a' does not exist~%" +msgstr "" + +#: guix/ui.scm:433 +#, scheme-format +msgid "generation ~a of profile '~a' does not exist~%" +msgstr "" + +#: guix/ui.scm:440 +#, scheme-format +msgid "corrupt input while restoring '~a' from ~s~%" +msgstr "" + +#: guix/ui.scm:442 +#, scheme-format +msgid "corrupt input while restoring archive from ~s~%" +msgstr "" + +#: guix/ui.scm:445 +#, scheme-format +msgid "failed to connect to `~a': ~a~%" +msgstr "" + +#: guix/ui.scm:450 +#, scheme-format +msgid "build failed: ~a~%" +msgstr "" + +#: guix/ui.scm:453 +#, scheme-format +msgid "reference to invalid output '~a' of derivation '~a'~%" +msgstr "" + +#: guix/ui.scm:464 +#, scheme-format +msgid "~a: ~a~%" +msgstr "" + +#: guix/ui.scm:499 +#, scheme-format +msgid "failed to read expression ~s: ~s~%" +msgstr "" + +#: guix/ui.scm:505 +#, scheme-format +msgid "failed to evaluate expression '~a':~%" +msgstr "" + +#: guix/ui.scm:508 +#, scheme-format +msgid "syntax error: ~a~%" +msgstr "" + +#: guix/ui.scm:522 +#, scheme-format +msgid "expression ~s does not evaluate to a package~%" +msgstr "" + +#: guix/ui.scm:582 +#, scheme-format +msgid "~:[The following derivation would be built:~%~{ ~a~%~}~;~]" +msgid_plural "~:[The following derivations would be built:~%~{ ~a~%~}~;~]" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: guix/ui.scm:587 +#, scheme-format +msgid "~:[The following file would be downloaded:~%~{ ~a~%~}~;~]" +msgid_plural "~:[The following files would be downloaded:~%~{ ~a~%~}~;~]" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: guix/ui.scm:593 +#, scheme-format +msgid "~:[The following derivation will be built:~%~{ ~a~%~}~;~]" +msgid_plural "~:[The following derivations will be built:~%~{ ~a~%~}~;~]" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: guix/ui.scm:598 +#, scheme-format +msgid "~:[The following file will be downloaded:~%~{ ~a~%~}~;~]" +msgid_plural "~:[The following files will be downloaded:~%~{ ~a~%~}~;~]" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: guix/ui.scm:653 +#, scheme-format +msgid "The following package would be removed:~%~{~a~%~}~%" +msgid_plural "The following packages would be removed:~%~{~a~%~}~%" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: guix/ui.scm:658 +#, scheme-format +msgid "The following package will be removed:~%~{~a~%~}~%" +msgid_plural "The following packages will be removed:~%~{~a~%~}~%" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: guix/ui.scm:671 +#, scheme-format +msgid "The following package would be downgraded:~%~{~a~%~}~%" +msgid_plural "The following packages would be downgraded:~%~{~a~%~}~%" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: guix/ui.scm:676 +#, scheme-format +msgid "The following package will be downgraded:~%~{~a~%~}~%" +msgid_plural "The following packages will be downgraded:~%~{~a~%~}~%" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: guix/ui.scm:689 +#, scheme-format +msgid "The following package would be upgraded:~%~{~a~%~}~%" +msgid_plural "The following packages would be upgraded:~%~{~a~%~}~%" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: guix/ui.scm:694 +#, scheme-format +msgid "The following package will be upgraded:~%~{~a~%~}~%" +msgid_plural "The following packages will be upgraded:~%~{~a~%~}~%" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: guix/ui.scm:705 +#, scheme-format +msgid "The following package would be installed:~%~{~a~%~}~%" +msgid_plural "The following packages would be installed:~%~{~a~%~}~%" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: guix/ui.scm:710 +#, scheme-format +msgid "The following package will be installed:~%~{~a~%~}~%" +msgid_plural "The following packages will be installed:~%~{~a~%~}~%" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: guix/ui.scm:727 +msgid "" +msgstr "" + +#: guix/ui.scm:746 +#, scheme-format +msgid "failed to create configuration directory `~a': ~a~%" +msgstr "" + +#: guix/ui.scm:865 guix/ui.scm:879 +msgid "unknown" +msgstr "" + +#: guix/ui.scm:1029 +#, scheme-format +msgid "Generation ~a\t~a" +msgstr "" + +#: guix/ui.scm:1036 +#, scheme-format +msgid "~a\t(current)~%" +msgstr "" + +#: guix/ui.scm:1053 +#, scheme-format +msgid "switched from generation ~a to ~a~%" +msgstr "" + +#: guix/ui.scm:1069 +#, scheme-format +msgid "deleting ~a~%" +msgstr "" + +#: guix/ui.scm:1117 +#, scheme-format +msgid "Try `guix --help' for more information.~%" +msgstr "" + +#: guix/ui.scm:1144 +msgid "" +"Usage: guix COMMAND ARGS...\n" +"Run COMMAND with ARGS.\n" +msgstr "" +"Użycie: guix POLECENIE ARGUMENTY...\n" +"Podaj POLECENIE i jego ARGUMENTY.\n" + +#: guix/ui.scm:1147 +msgid "COMMAND must be one of the sub-commands listed below:\n" +msgstr "" + +#: guix/ui.scm:1167 +#, scheme-format +msgid "guix: ~a: command not found~%" +msgstr "" + +#: guix/ui.scm:1184 +#, scheme-format +msgid "guix: missing command name~%" +msgstr "guix: brakująca nazwa polecenia~%" + +#: guix/ui.scm:1192 +#, scheme-format +msgid "guix: unrecognized option '~a'~%" +msgstr "" + +#: guix/http-client.scm:228 +#, scheme-format +msgid "following redirection to `~a'...~%" +msgstr "" + +#: guix/http-client.scm:237 +msgid "download failed" +msgstr "" + +#: guix/nar.scm:155 +msgid "signature is not a valid s-expression" +msgstr "" + +#: guix/nar.scm:164 +msgid "invalid signature" +msgstr "" + +#: guix/nar.scm:168 +msgid "invalid hash" +msgstr "" + +#: guix/nar.scm:176 +msgid "unauthorized public key" +msgstr "" + +#: guix/nar.scm:181 +msgid "corrupt signature data" +msgstr "" + +#: guix/nar.scm:201 +msgid "corrupt file set archive" +msgstr "" + +#: guix/nar.scm:211 +#, scheme-format +msgid "importing file or directory '~a'...~%" +msgstr "" + +#: guix/nar.scm:222 +#, scheme-format +msgid "found valid signature for '~a'~%" +msgstr "" + +#: guix/nar.scm:229 +msgid "imported file lacks a signature" +msgstr "" + +#: guix/nar.scm:268 +msgid "invalid inter-file archive mark" +msgstr "" + +#: nix/nix-daemon/guix-daemon.cc:61 +msgid "guix-daemon -- perform derivation builds and store accesses" +msgstr "" + +#: nix/nix-daemon/guix-daemon.cc:63 +msgid "This program is a daemon meant to run in the background. It serves requests sent over a Unix-domain socket. It accesses the store, and builds derivations on behalf of its clients." +msgstr "" + +#: nix/nix-daemon/guix-daemon.cc:86 +msgid "SYSTEM" +msgstr "" + +#: nix/nix-daemon/guix-daemon.cc:87 +msgid "assume SYSTEM as the current system type" +msgstr "" + +#: nix/nix-daemon/guix-daemon.cc:88 nix/nix-daemon/guix-daemon.cc:91 +msgid "N" +msgstr "" + +#: nix/nix-daemon/guix-daemon.cc:89 +msgid "use N CPU cores to build each derivation; 0 means as many as available" +msgstr "" + +#: nix/nix-daemon/guix-daemon.cc:92 +msgid "allow at most N build jobs" +msgstr "" + +#: nix/nix-daemon/guix-daemon.cc:94 +msgid "disable chroot builds" +msgstr "" + +#: nix/nix-daemon/guix-daemon.cc:95 +msgid "DIR" +msgstr "" + +#: nix/nix-daemon/guix-daemon.cc:96 +msgid "add DIR to the build chroot" +msgstr "" + +#: nix/nix-daemon/guix-daemon.cc:97 +msgid "GROUP" +msgstr "" + +#: nix/nix-daemon/guix-daemon.cc:98 +msgid "perform builds as a user of GROUP" +msgstr "" + +#: nix/nix-daemon/guix-daemon.cc:100 +msgid "do not use substitutes" +msgstr "" + +#: nix/nix-daemon/guix-daemon.cc:101 +msgid "URLS" +msgstr "" + +#: nix/nix-daemon/guix-daemon.cc:102 +msgid "use URLS as the default list of substitute providers" +msgstr "" + +#: nix/nix-daemon/guix-daemon.cc:104 +msgid "do not use the 'build hook'" +msgstr "" + +#: nix/nix-daemon/guix-daemon.cc:106 +msgid "cache build failures" +msgstr "" + +#: nix/nix-daemon/guix-daemon.cc:108 +msgid "do not keep build logs" +msgstr "" + +#: nix/nix-daemon/guix-daemon.cc:110 +msgid "disable compression of the build logs" +msgstr "" + +#: nix/nix-daemon/guix-daemon.cc:115 +msgid "disable automatic file \"deduplication\" in the store" +msgstr "" + +#: nix/nix-daemon/guix-daemon.cc:125 +msgid "impersonate Linux 2.6" +msgstr "" + +#: nix/nix-daemon/guix-daemon.cc:129 +msgid "tell whether the GC must keep outputs of live derivations" +msgstr "" + +#: nix/nix-daemon/guix-daemon.cc:132 +msgid "tell whether the GC must keep derivations corresponding to live outputs" +msgstr "" + +#: nix/nix-daemon/guix-daemon.cc:135 +msgid "SOCKET" +msgstr "" + +#: nix/nix-daemon/guix-daemon.cc:136 +msgid "listen for connections on SOCKET" +msgstr "" + +#: nix/nix-daemon/guix-daemon.cc:138 +msgid "produce debugging output" +msgstr "" + +#: nix/nix-daemon/guix-daemon.cc:205 nix/nix-daemon/guix-daemon.cc:381 +#, c-format +msgid "error: %s\n" +msgstr "" + +#: nix/nix-daemon/guix-daemon.cc:266 +#, c-format +msgid "error: libgcrypt version mismatch\n" +msgstr "" + +#: nix/nix-daemon/guix-daemon.cc:357 +#, c-format +msgid "warning: daemon is running as root, so using `--build-users-group' is highly recommended\n" +msgstr "" diff --git a/po/packages/LINGUAS b/po/packages/LINGUAS index 169b16046c..ff6709ba4d 100644 --- a/po/packages/LINGUAS +++ b/po/packages/LINGUAS @@ -7,6 +7,7 @@ en@quot eo fr hu +pl pt_BR sr vi diff --git a/po/packages/pl.po b/po/packages/pl.po new file mode 100644 index 0000000000..d9f78ca9eb --- /dev/null +++ b/po/packages/pl.po @@ -0,0 +1,10013 @@ +# GNU Guix package manager application database. +# Copyright (C) 2015 Free Software Foundation, Inc. +# This file is distributed under the same license as the guix package. +# Daniel Koć , 2015. +# +#: gnu/packages/databases.scm:598 +msgid "" +msgstr "" +"Project-Id-Version: guix-packages 0.9.0\n" +"Report-Msgid-Bugs-To: ludo@gnu.org\n" +"POT-Creation-Date: 2015-10-28 16:31+0100\n" +"PO-Revision-Date: 2015-12-05 21:46+0100\n" +"Last-Translator: Daniel Koć \n" +"Language-Team: Polish \n" +"Language: pl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.4\n" + +#: gnu/packages/abiword.scm:101 +msgid "Word processing program" +msgstr "Edytor tekstu" + +#. TRANSLATORS: Dear translator, We would like to inform you that package +#. descriptions may occasionally include Texinfo markup. Texinfo markup +#. looks like "@code{rm -rf}", "@emph{important}", etc. When translating, +#. please leave markup as is. +#: gnu/packages/abiword.scm:110 +msgid "" +"AbiWord is a word processing program. It is rapidly\n" +"becoming a state of the art word processor, with lots of features useful for\n" +"your daily work, personal needs, or for just some good old typing fun." +msgstr "" + +#: gnu/packages/aspell.scm:43 gnu/packages/libreoffice.scm:611 +msgid "Spell checker" +msgstr "Korekta pisowni" + +#: gnu/packages/aspell.scm:45 +msgid "" +"Aspell is a spell-checker which can be used either as a library or as\n" +"a standalone program. Notable features of Aspell include its full support of\n" +"documents written in the UTF-8 encoding and its ability to use multiple\n" +"dictionaries, including personal ones." +msgstr "" + +#: gnu/packages/aspell.scm:85 +msgid "This package provides a dictionary for the GNU Aspell spell checker." +msgstr "" + +#: gnu/packages/audio.scm:92 +msgid "Realtime modular synthesizer and effect processor" +msgstr "" + +#: gnu/packages/audio.scm:94 +msgid "" +"AlsaModularSynth is a digital implementation of a classical analog\n" +"modular synthesizer system. It uses virtual control voltages to control the\n" +"parameters of the modules. The control voltages which control the frequency\n" +"e.g. of the VCO (Voltage Controlled Oscillator) and VCF (Voltage Controlled\n" +"Filter) modules follow the convention of 1V / Octave." +msgstr "" + +#: gnu/packages/audio.scm:131 +msgid "A library for audio labelling" +msgstr "" + +#: gnu/packages/audio.scm:133 +msgid "" +"aubio is a tool designed for the extraction of annotations from audio\n" +"signals. Its features include segmenting a sound file before each of its\n" +"attacks, performing pitch detection, tapping the beat and producing MIDI\n" +"streams from live audio." +msgstr "" + +#: gnu/packages/audio.scm:226 +msgid "Digital audio workstation" +msgstr "Cyfrowa stacja dźwiękowa" + +#: gnu/packages/audio.scm:228 +msgid "" +"Ardour is a multi-channel digital audio workstation, allowing users to\n" +"record, edit, mix and master audio and MIDI projects. It is targeted at audio\n" +"engineers, musicians, soundtrack editors and composers." +msgstr "" + +#: gnu/packages/audio.scm:289 +msgid "Tonewheel organ synthesizer" +msgstr "" + +#: gnu/packages/audio.scm:291 +msgid "" +"AZR-3 is a port of the free VST plugin AZR-3. It is a tonewheel organ\n" +"with drawbars, distortion and rotating speakers. The organ has three\n" +"sections, two polyphonic sections with nine drawbars each and one monophonic\n" +"bass section with five drawbars. A standalone JACK application and LV2\n" +"plugins are provided." +msgstr "" + +#: gnu/packages/audio.scm:329 +msgid "Audio plug-in pack for LV2 and JACK environments" +msgstr "" + +#: gnu/packages/audio.scm:331 +msgid "" +"Calf Studio Gear is an audio plug-in pack for LV2 and JACK environments.\n" +"The suite contains lots of effects (delay, modulation, signal processing,\n" +"filters, equalizers, dynamics, distortion and mastering effects),\n" +"instruments (SF2 player, organ simulator and a monophonic synthesizer) and\n" +"tools (analyzer, mono/stereo tools, crossovers)." +msgstr "" + +#: gnu/packages/audio.scm:367 +msgid "Sound and music computing system" +msgstr "" + +#: gnu/packages/audio.scm:369 +msgid "" +"Csound is a user-programmable and user-extensible sound processing\n" +"language and software synthesizer." +msgstr "" + +#: gnu/packages/audio.scm:412 gnu/packages/audio.scm:1900 +msgid "C++ wrapper around the ALSA API" +msgstr "" + +#: gnu/packages/audio.scm:414 +msgid "" +"clalsadrv is a C++ wrapper around the ALSA API simplifying access to\n" +"ALSA PCM devices." +msgstr "" + +#: gnu/packages/audio.scm:449 +msgid "SoundFont synthesizer" +msgstr "" + +#: gnu/packages/audio.scm:451 +msgid "" +"FluidSynth is a real-time software synthesizer based on the SoundFont 2\n" +"specifications. FluidSynth reads and handles MIDI events from the MIDI input\n" +"device. It is the software analogue of a MIDI synthesizer. FluidSynth can\n" +"also play midifiles using a Soundfont." +msgstr "" + +#: gnu/packages/audio.scm:483 +msgid "MPEG-4 and MPEG-2 AAC decoder" +msgstr "" + +#: gnu/packages/audio.scm:485 +msgid "" +"FAAD2 is an MPEG-4 and MPEG-2 AAC decoder supporting LC, Main, LTP, SBR,\n" +"PS, and DAB+." +msgstr "" + +#: gnu/packages/audio.scm:514 +msgid "Signal processing language" +msgstr "Język przetwarzania sygnałów" + +#: gnu/packages/audio.scm:516 +msgid "Faust is a programming language for realtime audio signal processing." +msgstr "" + +#: gnu/packages/audio.scm:551 +msgid "GUS compatible patches for MIDI players" +msgstr "" + +#: gnu/packages/audio.scm:553 +msgid "" +"FreePats is a project to create a free and open set of GUS compatible\n" +"patches that can be used with softsynths such as Timidity and WildMidi." +msgstr "" + +#: gnu/packages/audio.scm:604 +msgid "Virtual guitar amplifier" +msgstr "" + +#: gnu/packages/audio.scm:605 +msgid "" +"Guitarix is a virtual guitar amplifier running JACK.\n" +"Guitarix takes the signal from your guitar as a mono-signal from your sound\n" +"card. The input is processed by a main amp and a rack-section. Both can be\n" +"routed separately and deliver a processed stereo-signal via JACK. You may\n" +"fill the rack with effects from more than 25 built-in modules including stuff\n" +"from a simple noise gate to modulation effects like flanger, phaser or\n" +"auto-wah." +msgstr "" + +#: gnu/packages/audio.scm:647 +msgid "LV2 convolution reverb" +msgstr "" + +#: gnu/packages/audio.scm:649 +msgid "" +"IR is a low-latency, real-time, high performance signal convolver\n" +"especially for creating reverb effects. It supports impulse responses with 1,\n" +"2 or 4 channels, in any soundfile format supported by libsndfile." +msgstr "" + +#: gnu/packages/audio.scm:679 +msgid "JACK audio connection kit" +msgstr "" + +#: gnu/packages/audio.scm:681 +msgid "" +"JACK is a low-latency audio server. It can connect a number of\n" +"different applications to an audio device, as well as allowing them to share\n" +"audio between themselves. JACK is different from other audio server efforts\n" +"in that it has been designed from the ground up to be suitable for\n" +"professional audio work. This means that it focuses on two key areas:\n" +"synchronous execution of all clients, and low latency operation." +msgstr "" + +#: gnu/packages/audio.scm:760 +msgid "Simple LV2 host for JACK" +msgstr "" + +#: gnu/packages/audio.scm:762 +msgid "" +"Jalv is a simple but fully featured LV2 host for JACK. It runs LV2\n" +"plugins and exposes their ports as JACK ports, essentially making any LV2\n" +"plugin function as a JACK application." +msgstr "" + +#: gnu/packages/audio.scm:798 +msgid "Linux Audio Developer's Simple Plugin API (LADSPA)" +msgstr "" + +#: gnu/packages/audio.scm:800 +msgid "" +"LADSPA is a standard that allows software audio processors and effects\n" +"to be plugged into a wide range of audio synthesis and recording packages." +msgstr "" + +#: gnu/packages/audio.scm:836 +msgid "Audio application session manager" +msgstr "" + +#: gnu/packages/audio.scm:838 +msgid "" +"LASH is a session management system for audio applications. It allows\n" +"you to save and restore audio sessions consisting of multiple interconneced\n" +"applications, restoring program state (i.e. loaded patches) and the\n" +"connections between them." +msgstr "" + +#: gnu/packages/audio.scm:859 +msgid "Bauer stereophonic-to-binaural DSP" +msgstr "" + +#: gnu/packages/audio.scm:861 +msgid "" +"The Bauer stereophonic-to-binaural DSP (bs2b) library and plugins is\n" +"designed to improve headphone listening of stereo audio records. Recommended\n" +"for headphone prolonged listening to disable superstereo fatigue without\n" +"essential distortions." +msgstr "" + +#: gnu/packages/audio.scm:886 +msgid "Implementation of the Open Sound Control protocol" +msgstr "" + +#: gnu/packages/audio.scm:888 +msgid "" +"liblo is a lightweight library that provides an easy to use\n" +"implementation of the Open Sound Control (OSC) protocol." +msgstr "" + +#: gnu/packages/audio.scm:925 +msgid "Library to simplify use of LV2 plugins in applications" +msgstr "" + +#: gnu/packages/audio.scm:927 +msgid "" +"Lilv is a C library to make the use of LV2 plugins as simple as possible\n" +"for applications. Lilv is the successor to SLV2, rewritten to be\n" +"significantly faster and have minimal dependencies." +msgstr "" + +#: gnu/packages/audio.scm:954 +msgid "LV2 audio plugin specification" +msgstr "" + +#: gnu/packages/audio.scm:956 +msgid "" +"LV2 is an open specification for audio plugins and host applications.\n" +"At its core, LV2 is a simple stable interface, accompanied by extensions which\n" +"add functionality to support the needs of increasingly powerful audio\n" +"software." +msgstr "" + +#: gnu/packages/audio.scm:991 +msgid "LV2 port of the mda Piano plugin" +msgstr "" + +#: gnu/packages/audio.scm:992 +msgid "An LV2 port of the mda Piano VSTi." +msgstr "" + +#: gnu/packages/audio.scm:1005 +msgid "LV2 port of the mda EPiano plugin" +msgstr "" + +#: gnu/packages/audio.scm:1006 +msgid "An LV2 port of the mda EPiano VSTi." +msgstr "" + +#: gnu/packages/audio.scm:1035 +msgid "C++ libraries for LV2 plugins" +msgstr "" + +#: gnu/packages/audio.scm:1037 +msgid "" +"The LV2 Toolkit (LVTK) contains libraries that wrap the LV2 C API and\n" +"extensions into easy to use C++ classes. It is the successor of\n" +"lv2-c++-tools." +msgstr "" + +#: gnu/packages/audio.scm:1078 +msgid "3D audio API" +msgstr "" + +#: gnu/packages/audio.scm:1080 +msgid "" +"OpenAL provides capabilities for playing audio in a virtual 3D\n" +"environment. Distance attenuation, doppler shift, and directional sound\n" +"emitters are among the features handled by the API. More advanced effects,\n" +"including air absorption, occlusion, and environmental reverb, are available\n" +"through the EFX extension. It also facilitates streaming audio, multi-channel\n" +"buffers, and audio capture." +msgstr "" + +#: gnu/packages/audio.scm:1114 +msgid "Modular patch bay for audio and MIDI systems" +msgstr "" + +#: gnu/packages/audio.scm:1116 +msgid "" +"Patchage is a modular patch bay for audio and MIDI systems based on JACK\n" +"and ALSA." +msgstr "" + +#: gnu/packages/audio.scm:1141 +msgid "Real-time audio utility library" +msgstr "" + +#: gnu/packages/audio.scm:1143 +msgid "" +"Raul (Real-time Audio Utility Library) is a C++ utility library primarily\n" +"aimed at audio/musical applications." +msgstr "" + +#: gnu/packages/audio.scm:1169 +msgid "Audio time-stretching and pitch-shifting library" +msgstr "" + +#: gnu/packages/audio.scm:1171 +msgid "" +"Rubber Band is a library and utility program that permits changing the\n" +"tempo and pitch of an audio recording independently of one another." +msgstr "" + +#: gnu/packages/audio.scm:1219 +msgid "Cross-platform MIDI library for C++" +msgstr "" + +#: gnu/packages/audio.scm:1221 +msgid "" +"RtMidi is a set of C++ classes (RtMidiIn, RtMidiOut, and API specific\n" +"classes) that provide a common cross-platform API for realtime MIDI\n" +"input/output." +msgstr "" + +#: gnu/packages/audio.scm:1247 +msgid "Library for serialising LV2 atoms to/from RDF" +msgstr "" + +#: gnu/packages/audio.scm:1249 +msgid "" +"Sratom is a library for serialising LV2 atoms to/from RDF, particularly\n" +"the Turtle syntax." +msgstr "" + +#: gnu/packages/audio.scm:1274 +msgid "Library for loading and wrapping LV2 plugin UIs" +msgstr "" + +#: gnu/packages/audio.scm:1276 +msgid "" +"Suil is a lightweight C library for loading and wrapping LV2 plugin UIs.\n" +"\n" +"Suil makes it possible to load a UI of a toolkit in a host using another\n" +"toolkit. The API is designed such that hosts do not need to explicitly\n" +"support specific toolkits – if Suil supports a particular toolkit, then UIs in\n" +"that toolkit will work in all hosts that use Suil automatically.\n" +"\n" +"Suil currently supports every combination of Gtk 2, Qt 4, and X11." +msgstr "" + +#: gnu/packages/audio.scm:1333 +msgid "Software synthesizer for playing MIDI files" +msgstr "" + +#: gnu/packages/audio.scm:1335 +msgid "" +"TiMidity++ is a software synthesizer. It can play MIDI files by\n" +"converting them into PCM waveform data; give it a MIDI data along with digital\n" +"instrument data files, then it synthesizes them in real-time, and plays. It\n" +"can not only play sounds, but also can save the generated waveforms into hard\n" +"disks as various audio file formats." +msgstr "" + +#: gnu/packages/audio.scm:1374 +msgid "Modular and extensible audio processing system" +msgstr "" + +#: gnu/packages/audio.scm:1376 +msgid "" +"Vamp is an audio processing plugin system for plugins that extract\n" +"descriptive information from audio data — typically referred to as audio\n" +"analysis plugins or audio feature extraction plugins." +msgstr "" + +#: gnu/packages/audio.scm:1415 +msgid "Library for time stretching and pitch scaling of audio" +msgstr "" + +#: gnu/packages/audio.scm:1417 +msgid "" +"SBSMS (Subband Sinusoidal Modeling Synthesis) is software for time\n" +"stretching and pitch scaling of audio. This package contains the library." +msgstr "" + +#: gnu/packages/audio.scm:1440 +msgid "Hybrid lossless audio codec" +msgstr "" + +#: gnu/packages/audio.scm:1442 +msgid "" +"WavPack is an audio compression format with lossless, lossy and hybrid\n" +"compression modes. This package contains command-line programs and library to\n" +"encode and decode wavpack files." +msgstr "" + +#: gnu/packages/audio.scm:1461 +msgid "Mod file playing library" +msgstr "" + +#: gnu/packages/audio.scm:1463 +msgid "" +"Libmodplug renders mod music files as raw audio data, for playing or\n" +"conversion. mod, .s3m, .it, .xm, and a number of lesser-known formats are\n" +"supported. Optional features include high-quality resampling, bass expansion,\n" +"surround and reverb." +msgstr "" + +#: gnu/packages/audio.scm:1482 +msgid "Module player library" +msgstr "" + +#: gnu/packages/audio.scm:1484 +msgid "" +"Libxmp is a library that renders module files to PCM data. It supports\n" +"over 90 mainstream and obscure module formats including Protracker (MOD),\n" +"Scream Tracker 3 (S3M), Fast Tracker II (XM), and Impulse Tracker (IT)." +msgstr "" + +#: gnu/packages/audio.scm:1507 +msgid "Extended module player" +msgstr "" + +#: gnu/packages/audio.scm:1509 +msgid "" +"Xmp is a portable module player that plays over 90 mainstream and\n" +"obscure module formats, including Protracker MOD, Fasttracker II XM, Scream\n" +"Tracker 3 S3M and Impulse Tracker IT files." +msgstr "" + +#: gnu/packages/audio.scm:1541 +msgid "Audio processing library for changing tempo, pitch and playback rate" +msgstr "" + +#: gnu/packages/audio.scm:1543 +msgid "" +"SoundTouch is an audio processing library for changing the tempo, pitch\n" +"and playback rates of audio streams or audio files. It is intended for\n" +"application developers writing sound processing tools that require tempo/pitch\n" +"control functionality, or just for playing around with the sound effects." +msgstr "" + +#: gnu/packages/audio.scm:1580 +msgid "Sound processing utility" +msgstr "" + +#: gnu/packages/audio.scm:1582 +msgid "" +"SoX (Sound eXchange) is a command line utility that can convert\n" +"various formats of computer audio files to other formats. It can also\n" +"apply various effects to these sound files, and, as an added bonus, SoX\n" +"can play and record audio files." +msgstr "" + +#: gnu/packages/audio.scm:1605 +msgid "One-dimensional sample-rate conversion library" +msgstr "" + +#: gnu/packages/audio.scm:1607 +msgid "" +"The SoX Resampler library (libsoxr) performs one-dimensional sample-rate\n" +"conversion. It may be used, for example, to resample PCM-encoded audio." +msgstr "" + +#: gnu/packages/audio.scm:1629 +msgid "MPEG Audio Layer 2 (MP2) encoder" +msgstr "" + +#: gnu/packages/audio.scm:1631 +msgid "" +"TwoLAME is an optimised MPEG Audio Layer 2 (MP2) encoder based on\n" +"tooLAME by Mike Cheng, which in turn is based upon the ISO dist10 code and\n" +"portions of LAME." +msgstr "" + +#: gnu/packages/audio.scm:1671 +msgid "Audio I/O library" +msgstr "" + +#: gnu/packages/audio.scm:1673 +msgid "" +"PortAudio is a portable C/C++ audio I/O library providing a simple API\n" +"to record and/or play sound using a callback function or a blocking read/write\n" +"interface." +msgstr "" + +#: gnu/packages/audio.scm:1696 +msgid "Graphical user interface for FluidSynth" +msgstr "" + +#: gnu/packages/audio.scm:1698 +msgid "" +"Qsynth is a GUI front-end application for the FluidSynth SoundFont\n" +"synthesizer written in C++." +msgstr "" + +#: gnu/packages/audio.scm:1736 +msgid "Networked audio system" +msgstr "" + +#: gnu/packages/audio.scm:1738 +msgid "" +"RSound allows you to send audio from an application and transfer it\n" +"directly to a different computer on your LAN network. It is an audio daemon\n" +"with a much different focus than most other audio daemons." +msgstr "" + +#: gnu/packages/audio.scm:1769 +msgid "JACK audio frequency analyzer and display" +msgstr "" + +#: gnu/packages/audio.scm:1771 +msgid "" +"XJackFreak is an audio analysis and equalizing tool for the Jack Audio\n" +"Connection Kit. It can display the FFT of any input, modify it and output the\n" +"result." +msgstr "" + +#: gnu/packages/audio.scm:1812 +msgid "Fast, partitioned convolution engine library" +msgstr "" + +#: gnu/packages/audio.scm:1814 +msgid "" +"Zita convolver is a C++ library providing a real-time convolution\n" +"engine." +msgstr "" + +#: gnu/packages/audio.scm:1854 +msgid "C++ library for resampling audio signals" +msgstr "" + +#: gnu/packages/audio.scm:1856 +msgid "" +"Libzita-resampler is a C++ library for resampling audio signals. It is\n" +"designed to be used within a real-time processing context, to be fast, and to\n" +"provide high-quality sample rate conversion." +msgstr "" + +#: gnu/packages/audio.scm:1902 +msgid "" +"Zita-alsa-pcmi is a C++ wrapper around the ALSA API. It provides easy\n" +"access to ALSA PCM devices, taking care of the many functions required to\n" +"open, initialise and use a hw: device in mmap mode, and providing floating\n" +"point audio data." +msgstr "" + +#: gnu/packages/backup.scm:89 +msgid "Encrypted backup using rsync algorithm" +msgstr "" + +#: gnu/packages/backup.scm:91 +msgid "" +"Duplicity backs up directories by producing encrypted tar-format volumes\n" +"and uploading them to a remote or local file server. Because duplicity uses\n" +"librsync, the incremental archives are space efficient and only record the\n" +"parts of files that have changed since the last backup. Because duplicity\n" +"uses GnuPG to encrypt and/or sign these archives, they will be safe from\n" +"spying and/or modification by the server." +msgstr "" + +#: gnu/packages/backup.scm:125 +msgid "Simple incremental backup tool" +msgstr "" + +#: gnu/packages/backup.scm:127 +msgid "" +"Hdup2 is a backup utility, its aim is to make backup really simple. The\n" +"backup scheduling is done by means of a cron job. It supports an\n" +"include/exclude mechanism, remote backups, encrypted backups and split\n" +"backups (called chunks) to allow easy burning to CD/DVD." +msgstr "" + +#: gnu/packages/backup.scm:181 +msgid "Multi-format archive and compression library" +msgstr "" + +#: gnu/packages/backup.scm:183 +msgid "" +"Libarchive provides a flexible interface for reading and writing\n" +"archives in various formats such as tar and cpio. Libarchive also supports\n" +"reading and writing archives compressed using various compression filters such\n" +"as gzip and bzip2. The library is inherently stream-oriented; readers\n" +"serially iterate through the archive, writers serially add things to the\n" +"archive. In particular, note that there is currently no built-in support for\n" +"random access nor for in-place modification." +msgstr "" + +#: gnu/packages/backup.scm:246 +msgid "Provide a list of files to backup" +msgstr "" + +#: gnu/packages/backup.scm:248 +msgid "" +"Rdup is a utility inspired by rsync and the plan9 way of doing backups.\n" +"Rdup itself does not backup anything, it only print a list of absolute\n" +"file names to standard output. Auxiliary scripts are needed that act on this\n" +"list and implement the backup strategy." +msgstr "" + +#: gnu/packages/backup.scm:278 +msgid "Tar-compatible archiver" +msgstr "" + +#: gnu/packages/backup.scm:280 +msgid "" +"Btar is a tar-compatible archiver which allows arbitrary compression and\n" +"ciphering, redundancy, differential backup, indexed extraction, multicore\n" +"compression, input and output serialisation, and tolerance to partial archive\n" +"errors." +msgstr "" + +#: gnu/packages/backup.scm:308 +msgid "Local/remote mirroring+incremental backup" +msgstr "" + +#: gnu/packages/backup.scm:310 +msgid "" +"Rdiff-backup backs up one directory to another, possibly over a network.\n" +"The target directory ends up a copy of the source directory, but extra reverse\n" +"diffs are stored in a special subdirectory of that target directory, so you\n" +"can still recover files lost some time ago. The idea is to combine the best\n" +"features of a mirror and an incremental backup. Rdiff-backup also preserves\n" +"subdirectories, hard links, dev files, permissions, uid/gid ownership,\n" +"modification times, extended attributes, acls, and resource forks. Also,\n" +"rdiff-backup can operate in a bandwidth efficient manner over a pipe, like\n" +"rsync. Thus you can use rdiff-backup and ssh to securely back a hard drive up\n" +"to a remote location, and only the differences will be transmitted. Finally,\n" +"rdiff-backup is easy to use and settings have sensible defaults." +msgstr "" + +#: gnu/packages/backup.scm:349 +msgid "Deduplicating backup program" +msgstr "" + +#: gnu/packages/backup.scm:350 +msgid "" +"Attic is a deduplicating backup program. The main goal of\n" +"Attic is to provide an efficient and secure way to backup data. The data\n" +"deduplication technique used makes Attic suitable for daily backups since only\n" +"changes are stored." +msgstr "" + +#: gnu/packages/base.scm:65 +msgid "Hello, GNU world: An example GNU package" +msgstr "" + +#: gnu/packages/base.scm:67 +msgid "" +"GNU Hello prints the message \"Hello, world!\" and then exits. It\n" +"serves as an example of standard GNU coding practices. As such, it supports\n" +"command-line arguments, multiple languages, and so on." +msgstr "" + +#: gnu/packages/base.scm:86 +msgid "Print lines matching a pattern" +msgstr "" + +#: gnu/packages/base.scm:88 +msgid "" +"grep is a tool for finding text inside files. Text is found by\n" +"matching a pattern provided by the user in one or many files. The pattern\n" +"may be provided as a basic or extended regular expression, or as fixed\n" +"strings. By default, the matching text is simply printed to the screen,\n" +"however the output can be greatly customized to include, for example, line\n" +"numbers. GNU grep offers many extensions over the standard utility,\n" +"including, for example, recursive directory searching." +msgstr "" + +#: gnu/packages/base.scm:111 +msgid "Stream editor" +msgstr "Edytor ciągów" + +#: gnu/packages/base.scm:126 +msgid "" +"Sed is a non-interactive, text stream editor. It receives a text\n" +"input from a file or from standard input and it then applies a series of text\n" +"editing commands to the stream and prints its output to standard output. It\n" +"is often used for substituting text patterns in a stream. The GNU\n" +"implementation offers several extensions over the standard utility." +msgstr "" + +#: gnu/packages/base.scm:149 +msgid "Managing tar archives" +msgstr "" + +#: gnu/packages/base.scm:151 +msgid "" +"Tar provides the ability to create tar archives, as well as the\n" +"ability to extract, update or list files in an existing archive. It is\n" +"useful for combining many files into one larger file, while maintaining\n" +"directory structure and file information such as permissions and\n" +"creation/modification dates. GNU tar offers many extensions over the\n" +"standard utility." +msgstr "" + +#: gnu/packages/base.scm:174 +msgid "Apply differences to originals, with optional backups" +msgstr "" + +#: gnu/packages/base.scm:176 +msgid "" +"Patch is a program that applies changes to files based on differences\n" +"laid out as by the program \"diff\". The changes may be applied to one or more\n" +"files depending on the contents of the diff file. It accepts several\n" +"different diff formats. It may also be used to revert previously applied\n" +"differences." +msgstr "" + +#: gnu/packages/base.scm:196 +msgid "Comparing and merging files" +msgstr "" + +#: gnu/packages/base.scm:198 +msgid "" +"GNU Diffutils is a package containing tools for finding the\n" +"differences between files. The \"diff\" command is used to show how two files\n" +"differ, while \"cmp\" shows the offsets and line numbers where they differ.\n" +"\"diff3\" allows you to compare three files. Finally, \"sdiff\" offers an\n" +"interactive means to merge two files." +msgstr "" + +#: gnu/packages/base.scm:231 +msgid "Operating on files matching given criteria" +msgstr "" + +#: gnu/packages/base.scm:233 +msgid "" +"Findutils supplies the basic file directory searching utilities of the\n" +"GNU system. It consists of two primary searching utilities: \"find\"\n" +"recursively searches for files in a directory according to given criteria and\n" +"\"locate\" lists files in a database that match a query. Two auxiliary tools\n" +"are included: \"updatedb\" updates the file name database and \"xargs\" may be\n" +"used to apply commands with arbitrarily long arguments." +msgstr "" + +#: gnu/packages/base.scm:297 +msgid "Core GNU utilities (file, text, shell)" +msgstr "Podstawowe narzędzia GNU (file, text, shell)" + +#: gnu/packages/base.scm:299 +msgid "" +"GNU Coreutils includes all of the basic command-line tools that are\n" +"expected in a POSIX system. These provide the basic file, shell and text\n" +"manipulation functions of the GNU system. Most of these tools offer extended\n" +"functionality beyond that which is outlined in the POSIX standard." +msgstr "" + +#: gnu/packages/base.scm:341 +msgid "Remake files automatically" +msgstr "" + +#: gnu/packages/base.scm:343 +msgid "" +"Make is a program that is used to control the production of\n" +"executables or other files from their source files. The process is\n" +"controlled from a Makefile, in which the developer specifies how each file is\n" +"generated from its source. It has powerful dependency resolution and the\n" +"ability to determine when files have to be regenerated after their sources\n" +"change. GNU make offers many powerful extensions over the standard utility." +msgstr "" + +#: gnu/packages/base.scm:388 +msgid "Binary utilities: bfd gas gprof ld" +msgstr "" + +#: gnu/packages/base.scm:390 +msgid "" +"GNU Binutils is a collection of tools for working with binary files.\n" +"Perhaps the most notable are \"ld\", a linker, and \"as\", an assembler.\n" +"Other tools include programs to display binary profiling information, list\n" +"the strings in a binary file, and utilities for working with archives. The\n" +"\"bfd\" library for working with executable and object formats is also\n" +"included." +msgstr "" + +#: gnu/packages/base.scm:455 +msgid "The linker wrapper" +msgstr "" + +#: gnu/packages/base.scm:457 +msgid "" +"The linker wrapper (or 'ld-wrapper') wraps the linker to add any\n" +"missing '-rpath' flags, and to detect any misuse of libraries outside of the\n" +"store." +msgstr "" + +#: gnu/packages/base.scm:625 +msgid "The GNU C Library" +msgstr "" + +#: gnu/packages/base.scm:627 +msgid "" +"Any Unix-like operating system needs a C library: the library which\n" +"defines the \"system calls\" and other basic facilities such as open, malloc,\n" +"printf, exit...\n" +"\n" +"The GNU C library is used as the C library in the GNU system and most systems\n" +"with the Linux kernel." +msgstr "" + +#: gnu/packages/base.scm:643 +msgid "All the locales supported by the GNU C Library" +msgstr "" + +#: gnu/packages/base.scm:645 +msgid "" +"This package provides all the locales supported by the GNU C Library,\n" +"more than 400 in total. To use them set the 'LOCPATH' environment variable to\n" +"the 'share/locale' sub-directory of this package." +msgstr "" + +#: gnu/packages/base.scm:713 +msgid "Small sample of UTF-8 locales" +msgstr "" + +#: gnu/packages/base.scm:715 +msgid "" +"This package provides a small sample of UTF-8 locales mostly useful in\n" +"test environments." +msgstr "" + +#: gnu/packages/base.scm:733 +msgid "Find full path of shell commands" +msgstr "" + +#: gnu/packages/base.scm:735 +msgid "" +"The which program finds the location of executables in PATH, with a\n" +"variety of options. It is an alternative to the shell \"type\" built-in\n" +"command." +msgstr "" + +#: gnu/packages/base.scm:805 +msgid "The GNU C Library (GNU Hurd variant)" +msgstr "" + +#: gnu/packages/base.scm:907 +msgid "Database of current and historical time zones" +msgstr "" + +#: gnu/packages/base.scm:908 +msgid "" +"The Time Zone Database (often called tz or zoneinfo)\n" +"contains code and data that represent the history of local time for many\n" +"representative locations around the globe. It is updated periodically to\n" +"reflect changes made by political bodies to time zone boundaries, UTC offsets,\n" +"and daylight-saving rules." +msgstr "" + +#: gnu/packages/bittorrent.scm:82 +msgid "Fast and easy BitTorrent client" +msgstr "" + +#: gnu/packages/bittorrent.scm:84 +msgid "" +"Transmission is a BitTorrent client that comes with graphical,\n" +"textual, and Web user interfaces. Transmission also has a daemon for\n" +"unattended operations. It supports local peer discovery, full encryption,\n" +"DHT, µTP, PEX and Magnet Links." +msgstr "" + +#: gnu/packages/bittorrent.scm:116 +msgid "BitTorrent library of rtorrent" +msgstr "" + +#: gnu/packages/bittorrent.scm:118 +msgid "" +"LibTorrent is a BitTorrent library used by and developed in parallel\n" +"with the BitTorrent client rtorrent. It is written in C++ with emphasis on\n" +"speed and efficiency." +msgstr "" + +#: gnu/packages/bittorrent.scm:145 +msgid "BitTorrent client with ncurses interface" +msgstr "" + +#: gnu/packages/bittorrent.scm:147 +msgid "" +"rTorrent is a BitTorrent client with an ncurses interface. It supports\n" +"full encryption, DHT, PEX, and Magnet Links. It can also be controlled via\n" +"XML-RPC over SCGI." +msgstr "" + +#: gnu/packages/certs.scm:65 +msgid "Python script to extract .pem data from certificate collection" +msgstr "" + +#: gnu/packages/certs.scm:67 +msgid "" +"certdata2pem.py is a Python script to transform X.509 certificate\n" +"\"source code\" as contained, for example, in the Mozilla sources, into\n" +".pem formatted certificates." +msgstr "" + +#: gnu/packages/certs.scm:124 +msgid "CA certificates from Mozilla" +msgstr "" + +#: gnu/packages/certs.scm:126 +msgid "" +"This package provides certificates for Certification Authorities (CA)\n" +"taken from the NSS package and thus ultimately from the Mozilla project." +msgstr "" + +#: gnu/packages/compression.scm:72 +msgid "Compression library" +msgstr "Biblioteka kompresji" + +#: gnu/packages/compression.scm:74 +msgid "" +"zlib is designed to be a free, general-purpose, legally unencumbered --\n" +"that is, not covered by any patents -- lossless data-compression library for\n" +"use on virtually any computer hardware and operating system. The zlib data\n" +"format is itself portable across platforms. Unlike the LZW compression method\n" +"used in Unix compress(1) and in the GIF image format, the compression method\n" +"currently used in zlib essentially never expands the data. (LZW can double or\n" +"triple the file size in extreme cases.) zlib's memory footprint is also\n" +"independent of the input data and can be reduced, if necessary, at some cost\n" +"in compression." +msgstr "" + +#: gnu/packages/compression.scm:99 +msgid "Replacement for Sun's 'jar' utility" +msgstr "" + +#: gnu/packages/compression.scm:101 +msgid "" +"FastJar is an attempt to create a much faster replacement for Sun's 'jar'\n" +"utility. Instead of being written in Java, FastJar is written in C." +msgstr "" + +#: gnu/packages/compression.scm:119 +msgid "C library for manipulating POSIX tar files" +msgstr "" + +#: gnu/packages/compression.scm:121 +msgid "" +"libtar is a C library for manipulating POSIX tar files. It handles\n" +"adding and extracting files to/from a tar archive." +msgstr "" + +#: gnu/packages/compression.scm:138 +msgid "General file (de)compression (using lzw)" +msgstr "" + +#: gnu/packages/compression.scm:143 +msgid "" +"GNU Gzip provides data compression and decompression utilities; the\n" +"typical extension is \".gz\". Unlike the \"zip\" format, it compresses a single\n" +"file; as a result, it is often used in conjunction with \"tar\", resulting in\n" +"\".tar.gz\" or \".tgz\", etc." +msgstr "" + +#: gnu/packages/compression.scm:219 +msgid "High-quality data compression program" +msgstr "" + +#: gnu/packages/compression.scm:221 +msgid "" +"bzip2 is a freely available, patent free (see below), high-quality data\n" +"compressor. It typically compresses files to within 10% to 15% of the best\n" +"available techniques (the PPM family of statistical compressors), whilst\n" +"being around twice as fast at compression and six times faster at\n" +"decompression." +msgstr "" + +#: gnu/packages/compression.scm:251 +msgid "Parallel bzip2 implementation" +msgstr "Równoległa implementacja bzip2" + +#: gnu/packages/compression.scm:253 +msgid "" +"Pbzip2 is a parallel implementation of the bzip2 block-sorting file\n" +"compressor that uses pthreads and achieves near-linear speedup on SMP machines.\n" +"The output of this version is fully compatible with bzip2 v1.0.2 (i.e. anything\n" +"compressed with pbzip2 can be decompressed with bzip2)." +msgstr "" + +#: gnu/packages/compression.scm:272 +msgid "General-purpose data compression" +msgstr "" + +#: gnu/packages/compression.scm:274 +msgid "" +"XZ Utils is free general-purpose data compression software with high\n" +"compression ratio. XZ Utils were written for POSIX-like systems, but also\n" +"work on some not-so-POSIX systems. XZ Utils are the successor to LZMA Utils.\n" +"\n" +"The core of the XZ Utils compression code is based on LZMA SDK, but it has\n" +"been modified quite a lot to be suitable for XZ Utils. The primary\n" +"compression algorithm is currently LZMA2, which is used inside the .xz\n" +"container format. With typical files, XZ Utils create 30 % smaller output\n" +"than gzip and 15 % smaller output than bzip2." +msgstr "" + +#: gnu/packages/compression.scm:302 +msgid "Data compression library suitable for real-time data de-/compression" +msgstr "" + +#: gnu/packages/compression.scm:304 +msgid "" +"LZO is a data compression library which is suitable for data\n" +"de-/compression in real-time. This means it favours speed over\n" +"compression ratio.\n" +"\n" +"LZO is written in ANSI C. Both the source code and the compressed data\n" +"format are designed to be portable across platforms." +msgstr "" + +#: gnu/packages/compression.scm:327 +msgid "Compress or expand files" +msgstr "" + +#: gnu/packages/compression.scm:329 +msgid "" +"Lzop is a file compressor which is very similar to gzip. Lzop uses the\n" +"LZO data compression library for compression services, and its main advantages\n" +"over gzip are much higher compression and decompression speed (at the cost of\n" +"some compression ratio)." +msgstr "" + +#: gnu/packages/compression.scm:348 +msgid "Lossless data compressor based on the LZMA algorithm" +msgstr "" + +#: gnu/packages/compression.scm:350 +msgid "" +"Lzip is a lossless data compressor with a user interface similar to the\n" +"one of gzip or bzip2. Lzip decompresses almost as fast as gzip and compresses\n" +"more than bzip2, which makes it well suited for software distribution and data\n" +"archiving. Lzip is a clean implementation of the LZMA algorithm." +msgstr "" + +#: gnu/packages/compression.scm:382 +msgid "Archives in shell scripts, uuencode/uudecode" +msgstr "" + +#: gnu/packages/compression.scm:384 +msgid "" +"GNU sharutils is a package for creating and manipulating shell\n" +"archives that can be readily emailed. A shell archive is a file that can be\n" +"processed by a Bourne-type shell to unpack the original collection of files.\n" +"This package is mostly for compatibility and historical interest." +msgstr "" + +#: gnu/packages/compression.scm:415 +msgid "Library for SoundFont decompression" +msgstr "" + +#: gnu/packages/compression.scm:417 +msgid "" +"SfArkLib is a C++ library for decompressing SoundFont files compressed\n" +"with the sfArk algorithm." +msgstr "" + +#: gnu/packages/compression.scm:449 +msgid "Basic sfArk decompressor" +msgstr "" + +#: gnu/packages/compression.scm:450 +msgid "" +"SfArk extractor converts SoundFonts in the compressed legacy\n" +"sfArk file format to the uncompressed sf2 format." +msgstr "" + +#: gnu/packages/compression.scm:467 +msgid "Compression tools for some formats used by Microsoft" +msgstr "" + +#: gnu/packages/compression.scm:469 +msgid "" +"The purpose of libmspack is to provide both compression and\n" +"decompression of some loosely related file formats used by Microsoft." +msgstr "" + +#: gnu/packages/compression.scm:488 +msgid "Low-level interface to bzip2 compression library" +msgstr "" + +#: gnu/packages/compression.scm:489 +msgid "" +"This module provides a Perl interface to the bzip2\n" +"compression library." +msgstr "" + +#: gnu/packages/compression.scm:523 +msgid "Low-level interface to zlib compression library" +msgstr "" + +#: gnu/packages/compression.scm:524 +msgid "" +"This module provides a Perl interface to the zlib\n" +"compression library." +msgstr "" + +#: gnu/packages/compression.scm:545 +msgid "IO Interface to compressed files/buffers" +msgstr "" + +#: gnu/packages/compression.scm:546 +msgid "" +"IO-Compress provides a Perl interface to allow reading and\n" +"writing of compressed data created with the zlib and bzip2 libraries." +msgstr "" + +#: gnu/packages/compression.scm:572 +msgid "Compression algorithm focused on speed" +msgstr "" + +#: gnu/packages/compression.scm:573 +msgid "" +"LZ4 is a lossless compression algorithm, providing\n" +"compression speed at 400 MB/s per core (0.16 Bytes/cycle). It also features an\n" +"extremely fast decoder, with speed in multiple GB/s per core (0.71 Bytes/cycle).\n" +"A high compression derivative, called LZ4_HC, is also provided. It trades CPU\n" +"time for compression ratio." +msgstr "" + +#: gnu/packages/compression.scm:613 +msgid "Tools to create and extract squashfs filesystems" +msgstr "" + +#: gnu/packages/compression.scm:615 +msgid "" +"Squashfs is a highly compressed read-only filesystem for Linux. It uses\n" +"zlib to compress files, inodes, and directories. All blocks are packed to\n" +"minimize the data overhead, and block sizes of between 4K and 1M are supported.\n" +"It is intended to be used for archival use, for live CDs, and for embedded\n" +"systems where low overhead is needed. This package allows you to create and\n" +"extract such filesystems." +msgstr "" + +#: gnu/packages/compression.scm:652 +msgid "Parallel implementation of gzip" +msgstr "" + +#: gnu/packages/compression.scm:654 +msgid "" +"This package provides a parallel implementation of gzip that exploits\n" +"multiple processors and multiple cores when compressing data." +msgstr "" + +#: gnu/packages/databases.scm:97 +msgid "Berkeley database" +msgstr "Baza danych Berkeley" + +#: gnu/packages/databases.scm:99 +msgid "" +"Berkeley DB is an embeddable database allowing developers the choice of\n" +"SQL, Key/Value, XML/XQuery or Java Object storage for their data model." +msgstr "" + +#: gnu/packages/databases.scm:173 +msgid "Fast, easy to use, and popular database" +msgstr "" + +#: gnu/packages/databases.scm:175 +msgid "" +"MySQL is a fast, reliable, and easy to use relational database\n" +"management system that supports the standardized Structured Query\n" +"Language." +msgstr "" + +#: gnu/packages/databases.scm:242 +msgid "SQL database server" +msgstr "" + +#: gnu/packages/databases.scm:244 +msgid "" +"MariaDB is a multi-user and multi-threaded SQL database server, designed\n" +"as a drop-in replacement of MySQL." +msgstr "" + +#: gnu/packages/databases.scm:264 +msgid "Powerful object-relational database system" +msgstr "" + +#: gnu/packages/databases.scm:266 +msgid "" +"PostgreSQL is a powerful object-relational database system. It is fully\n" +"ACID compliant, has full support for foreign keys, joins, views, triggers, and\n" +"stored procedures (in multiple languages). It includes most SQL:2008 data\n" +"types, including INTEGER, NUMERIC, BOOLEAN, CHAR, VARCHAR, DATE, INTERVAL, and\n" +"TIMESTAMP. It also supports storage of binary large objects, including\n" +"pictures, sounds, or video." +msgstr "" + +#: gnu/packages/databases.scm:302 +msgid "Manipulate plain text files as databases" +msgstr "" + +#: gnu/packages/databases.scm:304 +msgid "" +"GNU Recutils is a set of tools and libraries for creating and\n" +"manipulating text-based, human-editable databases. Despite being text-based,\n" +"databases created with Recutils carry all of the expected features such as\n" +"unique fields, primary keys, time stamps and more. Many different field\n" +"types are supported, as is encryption." +msgstr "" + +#: gnu/packages/databases.scm:356 +msgid "The SQLite database management system" +msgstr "" + +#: gnu/packages/databases.scm:358 +msgid "" +"SQLite is a software library that implements a self-contained, serverless,\n" +"zero-configuration, transactional SQL database engine. SQLite is the most\n" +"widely deployed SQL database engine in the world. The source code for SQLite\n" +"is in the public domain." +msgstr "" + +#: gnu/packages/databases.scm:393 +msgid "Trivial database" +msgstr "Baza danych Trivial" + +#: gnu/packages/databases.scm:395 +msgid "" +"TDB is a Trivial Database. In concept, it is very much like GDBM,\n" +"and BSD's DB except that it allows multiple simultaneous writers and uses\n" +"locking internally to keep writers from trampling on each other. TDB is also\n" +"extremely small." +msgstr "" + +#: gnu/packages/databases.scm:414 +msgid "Database independent interface for Perl" +msgstr "" + +#: gnu/packages/databases.scm:415 +msgid "This package provides an database interface for Perl." +msgstr "" + +#: gnu/packages/databases.scm:462 +msgid "Extensible and flexible object <-> relational mapper" +msgstr "" + +#: gnu/packages/databases.scm:463 +msgid "" +"An SQL to OO mapper with an object API inspired by\n" +"Class::DBI (with a compatibility layer as a springboard for porting) and a\n" +"resultset API that allows abstract encapsulation of database operations. It\n" +"aims to make representing queries in your code as perl-ish as possible while\n" +"still providing access to as many of the capabilities of the database as\n" +"possible, including retrieving related records from multiple tables in a\n" +"single query, \"JOIN\", \"LEFT JOIN\", \"COUNT\", \"DISTINCT\", \"GROUP BY\",\n" +"\"ORDER BY\" and \"HAVING\" support." +msgstr "" + +#: gnu/packages/databases.scm:493 +msgid "Cursor with built-in caching support" +msgstr "" + +#: gnu/packages/databases.scm:494 +msgid "" +"DBIx::Class::Cursor::Cached provides a cursor class with\n" +"built-in caching support." +msgstr "" + +#: gnu/packages/databases.scm:514 +msgid "Introspect many-to-many relationships" +msgstr "" + +#: gnu/packages/databases.scm:515 +msgid "" +"Because the many-to-many relationships are not real\n" +"relationships, they can not be introspected with DBIx::Class. Many-to-many\n" +"relationships are actually just a collection of convenience methods installed\n" +"to bridge two relationships. This DBIx::Class component can be used to store\n" +"all relevant information about these non-relationships so they can later be\n" +"introspected and examined." +msgstr "" + +#: gnu/packages/databases.scm:572 +msgid "Create a DBIx::Class::Schema based on a database" +msgstr "" + +#: gnu/packages/databases.scm:573 +msgid "" +"DBIx::Class::Schema::Loader automates the definition of a\n" +"DBIx::Class::Schema by scanning database table definitions and setting up the\n" +"columns, primary keys, unique constraints and relationships." +msgstr "" + +#: gnu/packages/databases.scm:597 +msgid "DBI PostgreSQL interface" +msgstr "" + +#: gnu/packages/databases.scm:616 +msgid "SQlite interface for Perl" +msgstr "" + +#: gnu/packages/databases.scm:617 +msgid "" +"DBD::SQLite is a Perl DBI driver for SQLite, that includes\n" +"the entire thing in the distribution. So in order to get a fast transaction\n" +"capable RDBMS working for your Perl project you simply have to install this\n" +"module, and nothing else." +msgstr "" + +#: gnu/packages/databases.scm:647 +msgid "Generate SQL from Perl data structures" +msgstr "" + +#: gnu/packages/databases.scm:648 +msgid "" +"This module was inspired by the excellent DBIx::Abstract.\n" +"While based on the concepts used by DBIx::Abstract, the concepts used have\n" +"been modified to make the SQL easier to generate from Perl data structures.\n" +"The underlying idea is for this module to do what you mean, based on the data\n" +"structures you provide it, so that you don't have to modify your code every\n" +"time your data changes." +msgstr "" + +#: gnu/packages/databases.scm:677 +msgid "Split SQL code into atomic statements" +msgstr "" + +#: gnu/packages/databases.scm:678 +msgid "" +"This module tries to split any SQL code, even including\n" +"non-standard extensions, into the atomic statements it is composed of." +msgstr "" + +#: gnu/packages/databases.scm:696 +msgid "SQL tokenizer" +msgstr "" + +#: gnu/packages/databases.scm:697 +msgid "" +"SQL::Tokenizer is a tokenizer for SQL queries. It does not\n" +"claim to be a parser or query verifier. It just creates sane tokens from a\n" +"valid SQL query." +msgstr "" + +#: gnu/packages/databases.scm:714 +msgid "Data source abstraction library" +msgstr "" + +#: gnu/packages/databases.scm:715 +msgid "" +"Unixodbc is a library providing an API with which to access\n" +"data sources. Data sources include SQL Servers and any software with an ODBC\n" +"Driver." +msgstr "" + +#: gnu/packages/databases.scm:739 +msgid "In-memory key/value and document store" +msgstr "" + +#: gnu/packages/databases.scm:741 +msgid "" +"UnQLite is an in-process software library which implements a\n" +"self-contained, serverless, zero-configuration, transactional NoSQL\n" +"database engine. UnQLite is a document store database similar to\n" +"MongoDB, Redis, CouchDB, etc. as well as a standard Key/Value store\n" +"similar to BerkeleyDB, LevelDB, etc." +msgstr "" + +#: gnu/packages/databases.scm:768 +msgid "Key-value cache and store" +msgstr "" + +#: gnu/packages/databases.scm:769 +msgid "" +"Redis is an advanced key-value cache and store. Redis\n" +"supports many data structures including strings, hashes, lists, sets, sorted\n" +"sets, bitmaps and hyperloglogs." +msgstr "" + +#: gnu/packages/debug.scm:74 +msgid "Heuristical file minimizer" +msgstr "" + +#: gnu/packages/debug.scm:76 +msgid "" +"Delta assists you in minimizing \"interesting\" files subject to a test\n" +"of their interestingness. A common such situation is when attempting to\n" +"isolate a small failure-inducing substring of a large input that causes your\n" +"program to exhibit a bug." +msgstr "" + +#: gnu/packages/debug.scm:135 +msgid "Reducer for interesting code" +msgstr "" + +#: gnu/packages/debug.scm:137 +msgid "" +"C-Reduce is a tool that takes a large C or C++ program that has a\n" +"property of interest (such as triggering a compiler bug) and automatically\n" +"produces a much smaller C/C++ program that has the same property. It is\n" +"intended for use by people who discover and report bugs in compilers and other\n" +"tools that process C/C++ code." +msgstr "" + +#: gnu/packages/debug.scm:229 +msgid "Security-oriented fuzzer" +msgstr "" + +#: gnu/packages/debug.scm:231 +msgid "" +"American fuzzy lop is a security-oriented fuzzer that employs a novel\n" +"type of compile-time instrumentation and genetic algorithms to automatically\n" +"discover clean, interesting test cases that trigger new internal states in the\n" +"targeted binary. This substantially improves the functional coverage for the\n" +"fuzzed code. The compact synthesized corpora produced by the tool are also\n" +"useful for seeding other, more labor- or resource-intensive testing regimes\n" +"down the road." +msgstr "" + +#: gnu/packages/dejagnu.scm:78 +msgid "GNU software testing framework" +msgstr "" + +#: gnu/packages/dejagnu.scm:80 +msgid "" +"DejaGnu is a framework for testing software. In effect, it serves as\n" +"a front-end for all tests written for a program. Thus, each program can have\n" +"multiple test suites, which are then all managed by a single harness." +msgstr "" + +#: gnu/packages/feh.scm:53 +msgid "Fast and light imlib2-based image viewer" +msgstr "" + +#: gnu/packages/feh.scm:55 +msgid "" +"feh is an X11 image viewer aimed mostly at console users.\n" +"Unlike most other viewers, it does not have a fancy GUI, but simply\n" +"displays images. It can also be used to set the desktop wallpaper.\n" +"It is controlled via commandline arguments and configurable key/mouse\n" +"actions." +msgstr "" + +#: gnu/packages/games.scm:113 +msgid "Backgammon game" +msgstr "" + +#: gnu/packages/games.scm:114 +msgid "" +"The GNU backgammon application can be used for playing, analyzing and\n" +"teaching the game. It has an advanced evaluation engine based on artificial\n" +"neural networks suitable for both beginners and advanced players. In\n" +"addition to a command-line interface, it also features an attractive, 3D\n" +"representation of the playing board." +msgstr "" + +#: gnu/packages/games.scm:143 +msgid "3d Rubik's cube game" +msgstr "Trójwymiarowa kostka Rubika" + +#: gnu/packages/games.scm:145 +msgid "" +"GNUbik is a puzzle game in which you must manipulate a cube to make\n" +"each of its faces have a uniform color. The game is customizable, allowing\n" +"you to set the size of the cube (the default is 3x3) or to change the colors.\n" +"You may even apply photos to the faces instead of colors. The game is\n" +"scriptable with Guile." +msgstr "" + +#: gnu/packages/games.scm:195 +msgid "GNU/Linux port of the indie game \"l'Abbaye des Morts\"" +msgstr "" + +#: gnu/packages/games.scm:196 +msgid "" +"L'Abbaye des Morts is a 2D platform game set in 13th century\n" +"France. The Cathars, who preach about good Christian beliefs, were being\n" +"expelled by the Catholic Church out of the Languedoc region in France. One of\n" +"them, called Jean Raymond, found an old church in which to hide, not knowing\n" +"that beneath its ruins lay buried an ancient evil." +msgstr "" + +#: gnu/packages/games.scm:239 +msgid "Lemmings clone" +msgstr "Klon Lemingów" + +#: gnu/packages/games.scm:241 +msgid "" +"Pingus is a free Lemmings-like puzzle game in which the player takes\n" +"command of a bunch of small animals and has to guide them through levels.\n" +"Since the animals walk on their own, the player can only influence them by\n" +"giving them commands, like build a bridge, dig a hole, or redirect all animals\n" +"in the other direction. Multiple such commands are necessary to reach the\n" +"level's exit. The game is presented in a 2D side view." +msgstr "" + +#: gnu/packages/games.scm:263 +msgid "Convert English text to humorous dialects" +msgstr "" + +#: gnu/packages/games.scm:264 +msgid "" +"The GNU Talk Filters are programs that convert English text\n" +"into stereotyped or otherwise humorous dialects. The filters are provided as\n" +"a C library, so they can easily be integrated into other programs." +msgstr "" + +#: gnu/packages/games.scm:296 +msgid "Simulate the display from \"The Matrix\"" +msgstr "" + +#: gnu/packages/games.scm:297 +msgid "" +"CMatrix simulates the display from \"The Matrix\" and is\n" +"based on the screensaver from the movie's website. It works with terminal\n" +"settings up to 132x300 and can scroll lines all at the same rate or\n" +"asynchronously and at a user-defined speed." +msgstr "" + +#: gnu/packages/games.scm:317 +msgid "Full chess implementation" +msgstr "Pełna implementacja programu szachowego" + +#: gnu/packages/games.scm:318 +msgid "" +"GNU Chess is a chess engine. It allows you to compete\n" +"against the computer in a game of chess, either through the default terminal\n" +"interface or via an external visual interface such as GNU XBoard." +msgstr "" + +#: gnu/packages/games.scm:346 +msgid "Twisted adventures of young pig farmer Dink Smallwood" +msgstr "" + +#: gnu/packages/games.scm:348 +msgid "" +"GNU FreeDink is a free and portable re-implementation of the engine\n" +"for the role-playing game Dink Smallwood. It supports not only the original\n" +"game data files but it also supports user-produced game mods or \"D-Mods\".\n" +"To that extent, it also includes a front-end for managing all of your D-Mods." +msgstr "" + +#: gnu/packages/games.scm:370 +msgid "Game data for GNU Freedink" +msgstr "" + +#: gnu/packages/games.scm:372 +msgid "This package contains the game data of GNU Freedink." +msgstr "" + +#: gnu/packages/games.scm:424 +msgid "Graphical user interface for chess programs" +msgstr "" + +#: gnu/packages/games.scm:425 +msgid "" +"GNU XBoard is a graphical board for all varieties of chess,\n" +"including international chess, xiangqi (Chinese chess), shogi (Japanese chess)\n" +"and Makruk. Several lesser-known variants are also supported. It presents a\n" +"fully interactive graphical interface and it can load and save games in the\n" +"Portable Game Notation." +msgstr "" + +#: gnu/packages/games.scm:478 +msgid "Ball and paddle game" +msgstr "" + +#: gnu/packages/games.scm:479 +msgid "" +"XBoing is a blockout type game where you have a paddle which\n" +"you control to bounce a ball around the game zone destroying blocks with a\n" +"proton ball. Each block carries a different point value. The more blocks you\n" +"destroy, the better your score. The person with the highest score wins." +msgstr "" + +#: gnu/packages/games.scm:511 +msgid "Typing tutor" +msgstr "Nauka pisania" + +#: gnu/packages/games.scm:513 +msgid "" +"GNU Typist is a universal typing tutor. It can be used to learn and\n" +"practice touch-typing. Several tutorials are included; in addition to\n" +"tutorials for the standard QWERTY layout, there are also tutorials for the\n" +"alternative layouts Dvorak and Colemak, as well as for the numpad. Tutorials\n" +"are primarily in English, however some in other languages are provided." +msgstr "" + +#: gnu/packages/games.scm:566 +msgid "3D game engine written in C++" +msgstr "" + +#: gnu/packages/games.scm:568 +msgid "" +"The Irrlicht Engine is a high performance realtime 3D engine written in\n" +"C++. Features include an OpenGL renderer, extensible materials, scene graph\n" +"management, character animation, particle and other special effects, support\n" +"for common mesh file formats, and collision detection." +msgstr "" + +#: gnu/packages/games.scm:620 +msgid "2D space shooter" +msgstr "" + +#: gnu/packages/games.scm:622 +msgid "" +"M.A.R.S. is a 2D space shooter with pretty visual effects and\n" +"attractive physics. Players can battle each other or computer controlled\n" +"enemies in different game modes such as space ball, death match, team death\n" +"match, cannon keep, and grave-itation pit." +msgstr "" + +#: gnu/packages/games.scm:663 +msgid "Main game data for the Minetest game engine" +msgstr "" + +#: gnu/packages/games.scm:665 +msgid "Game data for the Minetest infinite-world block sandox game." +msgstr "" + +#: gnu/packages/games.scm:717 +msgid "Infinite-world block sandbox game" +msgstr "" + +#: gnu/packages/games.scm:719 +msgid "" +"Minetest is a sandbox construction game. Players can create and destroy\n" +"various types of blocks in a three-dimensional open world. This allows\n" +"forming structures in every possible creation, on multiplayer servers or as a\n" +"single player. Mods and texture packs allow players to personalize the game\n" +"in different ways." +msgstr "" + +#: gnu/packages/games.scm:758 +msgid "Curses Implementation of the Glk API" +msgstr "" + +#: gnu/packages/games.scm:760 +msgid "" +"Glk defines a portable API for applications with text UIs. It was\n" +"primarily designed for interactive fiction, but it should be suitable for many\n" +"interactive text utilities, particularly those based on a command line.\n" +"This is an implementation of the Glk library which runs in a terminal window,\n" +"using the curses.h library for screen control." +msgstr "" + +#: gnu/packages/games.scm:797 +msgid "Interpreter for Glulx VM" +msgstr "" + +#: gnu/packages/games.scm:799 +msgid "" +"Glulx is a 32-bit portable virtual machine intended for writing and\n" +"playing interactive fiction. It was designed by Andrew Plotkin to relieve\n" +"some of the restrictions in the venerable Z-machine format. This is the\n" +"reference interpreter, using Glk API." +msgstr "" + +#: gnu/packages/games.scm:835 +msgid "Z-machine interpreter" +msgstr "" + +#: gnu/packages/games.scm:837 +msgid "" +"Fizmo is a console-based Z-machine interpreter. It is used to play\n" +"interactive fiction, also known as text adventures, which were implemented\n" +"either by Infocom or created using the Inform compiler." +msgstr "" + +#: gnu/packages/games.scm:887 +msgid "Reference frontend for the libretro API" +msgstr "" + +#: gnu/packages/games.scm:889 +msgid "" +"Libretro is a simple but powerful development interface that allows for\n" +"the easy creation of emulators, games and multimedia applications that can plug\n" +"straight into any libretro-compatible frontend. RetroArch is the official\n" +"reference frontend for the libretro API, currently used by most as a modular\n" +"multi-system game/emulator system." +msgstr "" + +#: gnu/packages/games.scm:909 +msgid "Play the game of Go" +msgstr "Gra w Go" + +#: gnu/packages/games.scm:911 +msgid "" +"GNU Go is a program that plays the game of Go, in which players\n" +"place stones on a grid to form territory or capture other stones. While\n" +"it can be played directly from the terminal, rendered in ASCII characters,\n" +"it is also possible to play GNU Go with 3rd party graphical interfaces or\n" +"even in Emacs. It supports the standard game storage format (SGF, Smart\n" +"Game Format) and inter-process communication format (GMP, Go Modem\n" +"Protocol)." +msgstr "" + +#: gnu/packages/games.scm:961 +msgid "High speed arctic racing game based on Tux Racer" +msgstr "" + +#: gnu/packages/games.scm:963 +msgid "" +"Extreme Tux Racer, or etracer as it is called for short, is\n" +"a simple OpenGL racing game featuring Tux, the Linux mascot. The goal of the\n" +"game is to slide down a snow- and ice-covered mountain as quickly as possible,\n" +"avoiding the trees and rocks that will slow you down.\n" +"\n" +"Collect herrings and other goodies while sliding down the hill, but avoid fish\n" +"bones.\n" +"\n" +"This game is based on the GPL version of the famous game TuxRacer." +msgstr "" + +#: gnu/packages/games.scm:1001 +msgid "Game of jumping to the next floor, trying not to fall" +msgstr "" + +#: gnu/packages/games.scm:1003 +msgid "" +"GNUjump is a simple, yet addictive game in which you must jump from\n" +"platform to platform to avoid falling, while the platforms drop at faster rates\n" +"the higher you go. The game features multiplayer, unlimited FPS, smooth floor\n" +"falling, themeable graphics and sounds, and replays." +msgstr "" + +#: gnu/packages/games.scm:1044 +msgid "Turn-based strategy game" +msgstr "" + +#: gnu/packages/games.scm:1046 +msgid "" +"The Battle for Wesnoth is a fantasy, turn based tactical strategy game,\n" +"with several single player campaigns, and multiplayer games (both networked and\n" +"local).\n" +"\n" +"Battle for control on a range of maps, using variety of units which have\n" +"advantages and disadvantages against different types of attacks. Units gain\n" +"experience and advance levels, and are carried over from one scenario to the\n" +"next campaign." +msgstr "" + +#: gnu/packages/games.scm:1090 +msgid "x86 emulator with CGA/EGA/VGA/etc. graphics and sound" +msgstr "" + +#: gnu/packages/games.scm:1091 +msgid "" +"DOSBox is a DOS-emulator that uses the SDL library. DOSBox\n" +"also emulates CPU:286/386 realmode/protected mode, Directory\n" +"FileSystem/XMS/EMS, Tandy/Hercules/CGA/EGA/VGA/VESA graphics, a\n" +"SoundBlaster/Gravis Ultra Sound card for excellent sound compatibility with\n" +"older games." +msgstr "" + +#: gnu/packages/games.scm:1136 +msgid "Mouse and keyboard discovery for children" +msgstr "" + +#: gnu/packages/games.scm:1138 +msgid "" +"Gamine is a game designed for young children who are learning to use the\n" +"mouse and keyboard. The child uses the mouse to draw colored dots and lines\n" +"on the screen and keyboard to display letters." +msgstr "" + +#: gnu/packages/games.scm:1169 +msgid "Puzzle game with a cat in lead role" +msgstr "" + +#: gnu/packages/games.scm:1170 +msgid "" +"Project Raincat is a game developed by Carnegie Mellon\n" +"students through GCS during the Fall 2008 semester. Raincat features game\n" +"play inspired from classics Lemmings and The Incredible Machine. The project\n" +"proved to be an excellent learning experience for the programmers. Everything\n" +"is programmed in Haskell." +msgstr "" + +#: gnu/packages/games.scm:1205 +msgid "Client for 'The Mana World' and similar games" +msgstr "" + +#: gnu/packages/games.scm:1207 +msgid "" +"ManaPlus is a 2D MMORPG client for game servers. It is the only\n" +"fully supported client for @uref{http://www.themanaworld.org, The mana\n" +"world}, @uref{http://evolonline.org, Evol Online} and\n" +"@uref{http://landoffire.org, Land of fire}." +msgstr "" + +#: gnu/packages/gcc.scm:303 +msgid "GNU Compiler Collection" +msgstr "Kolekcja kompilatorów GNU" + +#: gnu/packages/gcc.scm:305 +msgid "" +"GCC is the GNU Compiler Collection. It provides compiler front-ends\n" +"for several languages, including C, C++, Objective-C, Fortran, Java, Ada, and\n" +"Go. It also includes runtime support libraries for these languages." +msgstr "" + +#: gnu/packages/gcc.scm:370 +msgid "GNU C++ standard library" +msgstr "Standardowa biblioteka GNU C++" + +#: gnu/packages/gcc.scm:405 +msgid "Collection of subroutines used by various GNU programs" +msgstr "" + +#: gnu/packages/gcc.scm:561 +msgid "GNU libstdc++ documentation" +msgstr "" + +#: gnu/packages/gcc.scm:629 +msgid "Manipulating sets and relations of integer points bounded by linear constraints" +msgstr "" + +#: gnu/packages/gcc.scm:632 +msgid "" +"isl is a library for manipulating sets and relations of integer points\n" +"bounded by linear constraints. Supported operations on sets include\n" +"intersection, union, set difference, emptiness check, convex hull, (integer)\n" +"affine hull, integer projection, computing the lexicographic minimum using\n" +"parametric integer programming, coalescing and parametric vertex\n" +"enumeration. It also includes an ILP solver based on generalized basis\n" +"reduction, transitive closures on maps (which may encode infinite graphs),\n" +"dependence analysis and bounds on piecewise step-polynomials." +msgstr "" + +#: gnu/packages/gcc.scm:664 +msgid "Library to generate code for scanning Z-polyhedra" +msgstr "" + +#: gnu/packages/gcc.scm:666 +msgid "" +"CLooG is a free software library to generate code for scanning\n" +"Z-polyhedra. That is, it finds a code (e.g., in C, FORTRAN...) that\n" +"reaches each integral point of one or more parameterized polyhedra.\n" +"CLooG has been originally written to solve the code generation problem\n" +"for optimizing compilers based on the polytope model. Nevertheless it\n" +"is used now in various area e.g., to build control automata for\n" +"high-level synthesis or to find the best polynomial approximation of a\n" +"function. CLooG may help in any situation where scanning polyhedra\n" +"matters. While the user has full control on generated code quality,\n" +"CLooG is designed to avoid control overhead and to produce a very\n" +"effective code." +msgstr "" + +#: gnu/packages/gcc.scm:721 +msgid "Reference manual for the C programming language" +msgstr "" + +#: gnu/packages/gcc.scm:723 +msgid "" +"This is a reference manual for the C programming language, as\n" +"implemented by the GNU C Compiler (gcc). As a reference, it is not intended\n" +"to be a tutorial of the language. Rather, it outlines all of the constructs\n" +"of the language. Library functions are not included." +msgstr "" + +#: gnu/packages/geeqie.scm:48 +msgid "Library and command-line utility to manage image metadata" +msgstr "" + +#: gnu/packages/geeqie.scm:50 +msgid "" +"Exiv2 is a C++ library and a command line utility to manage image\n" +"metadata. It provides fast and easy read and write access to the Exif, IPTC\n" +"and XMP metadata of images in various formats." +msgstr "" + +#: gnu/packages/geeqie.scm:81 +msgid "Lightweight GTK+ based image viewer" +msgstr "" + +#: gnu/packages/geeqie.scm:83 +msgid "" +"Geeqie is a lightweight GTK+ based image viewer for Unix like operating\n" +"systems. It features: EXIF, IPTC and XMP metadata browsing and editing\n" +"interoperability; easy integration with other software; geeqie works on files\n" +"and directories, there is no need to import images; fast preview for many raw\n" +"image formats; tools for image comparison, sorting and managing photo\n" +"collection. Geeqie was initially based on GQview." +msgstr "" + +#: gnu/packages/gettext.scm:91 +msgid "Tools and documentation for translation" +msgstr "" + +#: gnu/packages/gettext.scm:93 +msgid "" +"GNU Gettext is a package providing a framework for translating the\n" +"textual output of programs into multiple languages. It provides translators\n" +"with the means to create message catalogs, as well as an Emacs mode to work\n" +"with them, and a runtime library to load translated messages from the\n" +"catalogs. Nearly all GNU packages use Gettext." +msgstr "" + +#: gnu/packages/gettext.scm:149 +msgid "Scripts to ease maintenance of translations" +msgstr "" + +#: gnu/packages/gettext.scm:151 +msgid "" +"The po4a (PO for anything) project goal is to ease translations (and\n" +"more interestingly, the maintenance of translations) using gettext tools on\n" +"areas where they were not expected like documentation." +msgstr "" + +#: gnu/packages/gimp.scm:54 +msgid "Image pixel format conversion library" +msgstr "" + +#: gnu/packages/gimp.scm:56 +msgid "" +"Babl is a dynamic, any to any, pixel format translation library.\n" +"It allows converting between different methods of storing pixels known as\n" +"pixel formats that have with different bitdepths and other data\n" +"representations, color models and component permutations.\n" +"\n" +"A vocabulary to formulate new pixel formats from existing primitives is\n" +"provided as well as the framework to add new color models and data types." +msgstr "" + +#: gnu/packages/gimp.scm:111 +msgid "Graph based image processing framework" +msgstr "" + +#: gnu/packages/gimp.scm:112 +msgid "" +"GEGL (Generic Graphics Library) provides infrastructure to\n" +"do demand based cached non destructive image editing on larger than RAM\n" +"buffers." +msgstr "" + +#: gnu/packages/gimp.scm:148 +msgid "GNU Image Manipulation Program" +msgstr "" + +#: gnu/packages/gimp.scm:150 +msgid "" +"GIMP is an application for image manipulation tasks such as photo\n" +"retouching, composition and authoring. It supports all common image formats\n" +"as well as specialized ones. It features a highly customizable interface\n" +"that is extensible via a plugin system." +msgstr "" + +#: gnu/packages/gnome.scm:138 +msgid "CD/DVD burning tool for Gnome" +msgstr "Narzędzie do wypalania płyt CD/DVD pod GNOME" + +#: gnu/packages/gnome.scm:139 +msgid "" +"Brasero is an application to burn CD/DVD for the Gnome\n" +"Desktop. It is designed to be as simple as possible and has some unique\n" +"features to enable users to create their discs easily and quickly." +msgstr "" + +#: gnu/packages/gnome.scm:159 +msgid "Bootstrap GNOME modules built from Git" +msgstr "" + +#: gnu/packages/gnome.scm:160 +msgid "" +"gnome-common contains various files needed to bootstrap\n" +"GNOME modules built from Git. It contains a common \"autogen.sh\" script that\n" +"can be used to configure a source directory checked out from Git and some\n" +"commonly used macros." +msgstr "" + +#: gnu/packages/gnome.scm:198 +msgid "Libgnome-desktop, gnome-about, and desktop-wide documents" +msgstr "" + +#: gnu/packages/gnome.scm:200 +msgid "" +"The libgnome-desktop library provides API shared by several applications\n" +"on the desktop, but that cannot live in the platform for various reasons.\n" +"There is no API or ABI guarantee, although we are doing our best to provide\n" +"stability. Documentation for the API is available with gtk-doc.\n" +"\n" +"The gnome-about program helps find which version of GNOME is installed." +msgstr "" + +#: gnu/packages/gnome.scm:233 +msgid "Documentation utilities for the Gnome project" +msgstr "" + +#: gnu/packages/gnome.scm:235 +msgid "" +"Gnome-doc-utils is a collection of documentation utilities for the\n" +"Gnome project. It includes xml2po tool which makes it easier to translate\n" +"and keep up to date translations of documentation." +msgstr "" + +#: gnu/packages/gnome.scm:277 +msgid "Libraries for displaying certificates and accessing key stores" +msgstr "" + +#: gnu/packages/gnome.scm:279 +msgid "" +"The GCR package contains libraries used for displaying certificates and\n" +"accessing key stores. It also provides the viewer for crypto files on the\n" +"GNOME Desktop." +msgstr "" + +#: gnu/packages/gnome.scm:308 +msgid "Accessing passwords from the GNOME keyring" +msgstr "" + +#: gnu/packages/gnome.scm:310 +msgid "Client library to access passwords from the GNOME keyring." +msgstr "" + +#: gnu/packages/gnome.scm:371 +msgid "Daemon to store passwords and encryption keys" +msgstr "" + +#: gnu/packages/gnome.scm:373 +msgid "" +"gnome-keyring is a program that keeps passwords and other secrets for\n" +"users. It is run as a daemon in the session, similar to ssh-agent, and other\n" +"applications locate it via an environment variable or D-Bus.\n" +"\n" +"The program can manage several keyrings, each with its own master password,\n" +"and there is also a session keyring which is never stored to disk, but\n" +"forgotten when the session ends." +msgstr "" + +#: gnu/packages/gnome.scm:438 +msgid "GNOME's document viewer" +msgstr "Przeglądarka dokumentów GNOME" + +#: gnu/packages/gnome.scm:440 +msgid "" +"Evince is a document viewer for multiple document formats. It\n" +"currently supports PDF, PostScript, DjVu, TIFF and DVI. The goal\n" +"of Evince is to replace the multiple document viewers that exist\n" +"on the GNOME Desktop with a single simple application." +msgstr "" + +#: gnu/packages/gnome.scm:469 +msgid "GNOME settings for various desktop components" +msgstr "" + +#: gnu/packages/gnome.scm:471 +msgid "" +"Gsettings-desktop-schemas contains a collection of GSettings schemas\n" +"for settings shared by various components of the GNOME desktop." +msgstr "" + +#: gnu/packages/gnome.scm:505 +msgid "Utility to implement the Freedesktop Icon Naming Specification" +msgstr "" + +#: gnu/packages/gnome.scm:507 +msgid "" +"To help with the transition to the Freedesktop Icon Naming\n" +"Specification, the icon naming utility maps the icon names used by the\n" +"GNOME and KDE desktops to the icon names proposed in the specification." +msgstr "" + +#: gnu/packages/gnome.scm:529 +msgid "Utilities for working with desktop entries" +msgstr "" + +#: gnu/packages/gnome.scm:531 +msgid "" +"This package contains a few command line utilities for working with\n" +"desktop entries:\n" +"\n" +"desktop-file-validate: validates a desktop file and prints warnings/errors\n" +" about desktop entry specification violations.\n" +"\n" +"desktop-file-install: installs a desktop file to the applications directory,\n" +" optionally munging it a bit in transit.\n" +"\n" +"update-desktop-database: updates the database containing a cache of MIME types\n" +" handled by desktop files." +msgstr "" + +#: gnu/packages/gnome.scm:565 +msgid "GNOME icon theme" +msgstr "Motyw ikon GNOME" + +#: gnu/packages/gnome.scm:567 +msgid "Icons for the GNOME desktop." +msgstr "Ikony dla środowiska GNOME" + +#: gnu/packages/gnome.scm:606 +msgid "Database of common MIME types" +msgstr "" + +#: gnu/packages/gnome.scm:608 +msgid "" +"The shared-mime-info package contains the core database of common types\n" +"and the update-mime-database command used to extend it. It requires glib2 to\n" +"be installed for building the update command. Additionally, it uses intltool\n" +"for translations, though this is only a dependency for the maintainers. This\n" +"database is translated at Transifex." +msgstr "" + +#: gnu/packages/gnome.scm:632 +msgid "Freedesktop icon theme" +msgstr "Motyw ikon Freedesktop" + +#: gnu/packages/gnome.scm:634 +msgid "Freedesktop icon theme." +msgstr "Motyw ikon Freedesktop" + +#: gnu/packages/gnome.scm:661 +msgid "GNOME desktop notification library" +msgstr "" + +#: gnu/packages/gnome.scm:663 +msgid "" +"Libnotify is a library that sends desktop notifications to a\n" +"notification daemon, as defined in the Desktop Notifications spec. These\n" +"notifications can be used to inform the user about an event or display\n" +"some form of information without getting in the user's way." +msgstr "" + +#: gnu/packages/gnome.scm:695 +msgid "GObject plugin system" +msgstr "" + +#: gnu/packages/gnome.scm:697 +msgid "" +"Libpeas is a gobject-based plugins engine, and is targetted at giving\n" +"every application the chance to assume its own extensibility. It also has a\n" +"set of features including, but not limited to: multiple extension points; on\n" +"demand (lazy) programming language support for C, Python and JS; simplicity of\n" +"the API." +msgstr "" + +#: gnu/packages/gnome.scm:726 +msgid "OpenGL extension to GTK+" +msgstr "" + +#: gnu/packages/gnome.scm:727 +msgid "" +"GtkGLExt is an OpenGL extension to GTK+. It provides\n" +"additional GDK objects which support OpenGL rendering in GTK+ and GtkWidget\n" +"API add-ons to make GTK+ widgets OpenGL-capable." +msgstr "" + +#: gnu/packages/gnome.scm:752 +msgid "GTK+ rapid application development tool" +msgstr "" + +#: gnu/packages/gnome.scm:753 +msgid "" +"Glade is a rapid application development (RAD) tool to\n" +"enable quick & easy development of user interfaces for the GTK+ toolkit and\n" +"the GNOME desktop environment." +msgstr "" + +#: gnu/packages/gnome.scm:778 +msgid "CSS2 parsing and manipulation library" +msgstr "" + +#: gnu/packages/gnome.scm:780 +msgid "" +"Libcroco is a standalone CSS2 parsing and manipulation library.\n" +"The parser provides a low level event driven SAC-like API and a CSS object\n" +"model like API. Libcroco provides a CSS2 selection engine and an experimental\n" +"XML/CSS rendering engine." +msgstr "" + +#: gnu/packages/gnome.scm:813 +msgid "GNOME's Structured File Library" +msgstr "" + +#: gnu/packages/gnome.scm:815 +msgid "" +"Libgsf aims to provide an efficient extensible I/O abstraction for\n" +"dealing with different structured file formats." +msgstr "" + +#: gnu/packages/gnome.scm:880 +msgid "Render SVG files using Cairo" +msgstr "" + +#: gnu/packages/gnome.scm:882 +msgid "" +"Librsvg is a C library to render SVG files using the Cairo 2D graphics\n" +"library." +msgstr "" + +#: gnu/packages/gnome.scm:906 +msgid "Create trees of CORBA Interface Definition Language files" +msgstr "" + +#: gnu/packages/gnome.scm:907 +msgid "" +"Libidl is a library for creating trees of CORBA Interface\n" +"Definition Language (idl) files, which is a specification for defining\n" +"portable interfaces. libidl was initially written for orbit (the orb from the\n" +"GNOME project, and the primary means of libidl distribution). However, the\n" +"functionality was designed to be as reusable and portable as possible." +msgstr "" + +#: gnu/packages/gnome.scm:944 +msgid "CORBA 2.4-compliant Object Request Broker" +msgstr "" + +#: gnu/packages/gnome.scm:945 +msgid "" +"ORBit2 is a CORBA 2.4-compliant Object Request Broker (orb)\n" +"featuring mature C, C++ and Python bindings." +msgstr "" + +#: gnu/packages/gnome.scm:991 +msgid "Framework for creating reusable components for use in GNOME applications" +msgstr "" + +#: gnu/packages/gnome.scm:992 +msgid "" +"Bonobo is a framework for creating reusable components for\n" +"use in GNOME applications, built on top of CORBA." +msgstr "" + +#: gnu/packages/gnome.scm:1023 +msgid "Store application preferences" +msgstr "" + +#: gnu/packages/gnome.scm:1024 +msgid "" +"Gconf is a system for storing application preferences. It\n" +"is intended for user preferences; not arbitrary data storage." +msgstr "" + +#: gnu/packages/gnome.scm:1046 +msgid "Base MIME and Application database for GNOME" +msgstr "" + +#: gnu/packages/gnome.scm:1047 +msgid "" +"GNOME Mime Data is a module which contains the base MIME\n" +"and Application database for GNOME. The data stored by this module is\n" +"designed to be accessed through the MIME functions in GnomeVFS." +msgstr "" + +#: gnu/packages/gnome.scm:1091 +msgid "Access files and folders in GNOME applications" +msgstr "" + +#: gnu/packages/gnome.scm:1093 +msgid "" +"GnomeVFS is the core library used to access files and folders in GNOME\n" +"applications. It provides a file system abstraction which allows applications\n" +"to access local and remote files with a single consistent API." +msgstr "" + +#: gnu/packages/gnome.scm:1137 +msgid "Useful routines for building applications" +msgstr "" + +#: gnu/packages/gnome.scm:1138 +msgid "" +"The libgnome library provides a number of useful routines\n" +"for building modern applications, including session management, activation of\n" +"files and URIs, and displaying help." +msgstr "" + +#: gnu/packages/gnome.scm:1161 +msgid "2D drawing library" +msgstr "" + +#: gnu/packages/gnome.scm:1162 +msgid "" +"Libart is a 2D drawing library intended as a\n" +"high-quality vector-based 2D library with antialiasing and alpha composition." +msgstr "" + +#: gnu/packages/gnome.scm:1189 +msgid "Flexible widget for creating interactive structured graphics" +msgstr "" + +#: gnu/packages/gnome.scm:1190 +msgid "" +"The GnomeCanvas widget provides a flexible widget for\n" +"creating interactive structured graphics." +msgstr "" + +#: gnu/packages/gnome.scm:1212 +msgid "C++ bindings to the GNOME Canvas library" +msgstr "" + +#: gnu/packages/gnome.scm:1213 +msgid "C++ bindings to the GNOME Canvas library." +msgstr "" + +#: gnu/packages/gnome.scm:1244 +msgid "Additional widgets for applications" +msgstr "" + +#: gnu/packages/gnome.scm:1245 +msgid "" +"The libgnomeui library provides additional widgets for\n" +"applications. Many of the widgets from libgnomeui have already been\n" +"ported to GTK+." +msgstr "" + +#: gnu/packages/gnome.scm:1271 +msgid "Load glade interfaces and access the glade built widgets" +msgstr "" + +#: gnu/packages/gnome.scm:1272 +msgid "" +"Libglade is a library that provides interfaces for loading\n" +"graphical interfaces described in glade files and for accessing the\n" +"widgets built in the loading process." +msgstr "" + +#: gnu/packages/gnome.scm:1309 gnu/packages/gnome.scm:1341 +msgid "Printing framework for GNOME" +msgstr "" + +#: gnu/packages/gnome.scm:1311 +msgid "" +"GNOME-print was a printing framework for GNOME. It has been deprecated\n" +"since ca. 2006, when GTK+ itself incorporated printing support." +msgstr "" + +#: gnu/packages/gnome.scm:1386 +msgid "Some user interface controls using Bonobo" +msgstr "" + +#: gnu/packages/gnome.scm:1387 +msgid "" +"The Bonobo UI library provides a number of user interface\n" +"controls using the Bonobo component framework." +msgstr "" + +#: gnu/packages/gnome.scm:1411 +msgid "Window Navigator Construction Kit" +msgstr "" + +#: gnu/packages/gnome.scm:1413 +msgid "" +"Libwnck is the Window Navigator Construction Kit, a library for use in\n" +"writing pagers, tasklists, and more generally applications that are dealing\n" +"with window management. It tries hard to respect the Extended Window Manager\n" +"Hints specification (EWMH)." +msgstr "" + +#: gnu/packages/gnome.scm:1460 +msgid "Document-centric objects and utilities" +msgstr "" + +#: gnu/packages/gnome.scm:1461 +msgid "A GLib/GTK+ set of document-centric objects and utilities." +msgstr "" + +#: gnu/packages/gnome.scm:1536 +msgid "Spreadsheet application" +msgstr "Arkusz kalkulacyjny" + +#: gnu/packages/gnome.scm:1538 +msgid "" +"GNUmeric is a GNU spreadsheet application, running under GNOME. It is\n" +"interoperable with other spreadsheet applications. It has a vast array of\n" +"features beyond typical spreadsheet functionality, such as support for linear\n" +"and non-linear solvers, statistical analysis, and telecommunication\n" +"engineering." +msgstr "" + +#: gnu/packages/gnome.scm:1586 +msgid "Default GNOME 3 themes" +msgstr "Domyślne motywy GNOME 3" + +#: gnu/packages/gnome.scm:1588 +msgid "The default GNOME 3 themes (Adwaita and some accessibility themes)." +msgstr "" + +#: gnu/packages/gnome.scm:1619 +msgid "Manage encryption keys and passwords in the GNOME keyring" +msgstr "" + +#: gnu/packages/gnome.scm:1621 +msgid "" +"Seahorse is a GNOME application for managing encryption keys and\n" +"passwords in the GNOME keyring." +msgstr "" + +#: gnu/packages/gnome.scm:1655 gnu/packages/gnome.scm:1791 +msgid "Compiler for the GObject type system" +msgstr "" + +#: gnu/packages/gnome.scm:1657 +msgid "" +"Vala is a programming language that aims to bring modern programming\n" +"language features to GNOME developers without imposing any additional runtime\n" +"requirements and without using a different ABI compared to applications and\n" +"libraries written in C." +msgstr "" + +#: gnu/packages/gnome.scm:1687 +msgid "Virtual Terminal Emulator" +msgstr "" + +#: gnu/packages/gnome.scm:1689 +msgid "" +"VTE is a library (libvte) implementing a terminal emulator widget for\n" +"GTK+, and a minimal sample application (vte) using that. Vte is mainly used in\n" +"gnome-terminal, but can also be used to embed a console/terminal in games,\n" +"editors, IDEs, etc." +msgstr "" + +#: gnu/packages/gnome.scm:1765 +msgid "Low-level GNOME configuration system" +msgstr "" + +#: gnu/packages/gnome.scm:1766 +msgid "" +"Dconf is a low-level configuration system. Its main purpose\n" +"is to provide a backend to GSettings on platforms that don't already have\n" +"configuration storage systems." +msgstr "" + +#: gnu/packages/gnome.scm:1793 +msgid "" +"JSON-GLib is a C library based on GLib providing serialization and\n" +"deserialization support for the JavaScript Object Notation (JSON) format\n" +"described by RFC 4627. It provides parser and generator GObject classes and\n" +"various wrappers for the complex data types employed by JSON, such as arrays\n" +"and objects." +msgstr "" + +#: gnu/packages/gnome.scm:1832 +msgid "High-level API for X Keyboard Extension" +msgstr "" + +#: gnu/packages/gnome.scm:1834 +msgid "" +"LibXklavier is a library providing high-level API for X Keyboard\n" +"Extension known as XKB. This library is intended to support XFree86 and other\n" +"commercial X servers. It is useful for creating XKB-related software (layout\n" +"indicators etc)." +msgstr "" + +#: gnu/packages/gnome.scm:1862 +msgid "Python bindings to librsvg" +msgstr "" + +#: gnu/packages/gnome.scm:1864 +msgid "" +"This packages provides Python bindings to librsvg, the SVG rendering\n" +"library." +msgstr "" + +#: gnu/packages/gnome.scm:1913 +msgid "Network-related GIO modules" +msgstr "" + +#: gnu/packages/gnome.scm:1915 +msgid "" +"This package contains various network related extensions for the GIO\n" +"library." +msgstr "" + +#: gnu/packages/gnome.scm:1946 +msgid "RESTful web api query library" +msgstr "" + +#: gnu/packages/gnome.scm:1948 +msgid "" +"This library was designed to make it easier to access web services that\n" +"claim to be \"RESTful\". It includes convenience wrappers for libsoup and\n" +"libxml to ease remote use of the RESTful API." +msgstr "" + +#: gnu/packages/gnome.scm:2012 +msgid "GLib-based HTTP Library" +msgstr "" + +#: gnu/packages/gnome.scm:2014 +msgid "" +"LibSoup is an HTTP client/server library for GNOME. It uses GObjects\n" +"and the GLib main loop, to integrate well with GNOME applications." +msgstr "" + +#: gnu/packages/gnome.scm:2059 +msgid "GObject bindings for \"Secret Service\" API" +msgstr "" + +#: gnu/packages/gnome.scm:2061 +msgid "" +"Libsecret is a GObject based library for storing and retrieving passwords\n" +"and other secrets. It communicates with the \"Secret Service\" using DBus." +msgstr "" + +#: gnu/packages/gnome.scm:2105 +msgid "Minesweeper game" +msgstr "Gra Saper" + +#: gnu/packages/gnome.scm:2107 +msgid "" +"Mines (previously gnomine) is a puzzle game where you locate mines\n" +"floating in an ocean using only your brain and a little bit of luck." +msgstr "" + +#: gnu/packages/gnome.scm:2151 +msgid "Terminal emulator" +msgstr "Emulator terminala" + +#: gnu/packages/gnome.scm:2153 +msgid "" +"GNOME Terminal is a terminal emulator application for accessing a\n" +"UNIX shell environment which can be used to run programs available on\n" +"your system.\n" +"\n" +"It supports several profiles, multiple tabs and implements several\n" +"keyboard shortcuts." +msgstr "" + +#: gnu/packages/gnome.scm:2218 +msgid "Color management service" +msgstr "" + +#: gnu/packages/gnome.scm:2219 +msgid "" +"Colord is a system service that makes it easy to manage,\n" +"install and generate color profiles to accurately color manage input and\n" +"output devices." +msgstr "" + +#: gnu/packages/gnome.scm:2261 +msgid "Geolocation service" +msgstr "" + +#: gnu/packages/gnome.scm:2262 +msgid "" +"Geoclue is a D-Bus service that provides location\n" +"information. The primary goal of the Geoclue project is to make creating\n" +"location-aware applications as simple as possible, while the secondary goal is\n" +"to ensure that no application can access location information without explicit\n" +"permission from user." +msgstr "" + +#: gnu/packages/gnome.scm:2298 +msgid "Geocoding and reverse-geocoding library" +msgstr "" + +#: gnu/packages/gnome.scm:2300 +msgid "" +"geocode-glib is a convenience library for geocoding (finding longitude,\n" +"and latitude from an address) and reverse geocoding (finding an address from\n" +"coordinates) using the Nominatim service. geocode-glib caches requests for\n" +"faster results and to avoid unnecessary server load." +msgstr "" + +#: gnu/packages/gnome.scm:2347 +msgid "System daemon for managing power devices" +msgstr "" + +#: gnu/packages/gnome.scm:2349 +msgid "" +"UPower is an abstraction for enumerating power devices,\n" +"listening to device events and querying history and statistics. Any\n" +"application or service on the system can access the org.freedesktop.UPower\n" +"service via the system message bus." +msgstr "" + +#: gnu/packages/gnome.scm:2395 +msgid "Location, time zone, and weather library for GNOME" +msgstr "" + +#: gnu/packages/gnome.scm:2397 +msgid "" +"libgweather is a library to access weather information from online\n" +"services for numerous locations." +msgstr "" + +#: gnu/packages/gnome.scm:2449 +msgid "GNOME settings daemon" +msgstr "" + +#: gnu/packages/gnome.scm:2451 +msgid "" +"This package contains the daemon responsible for setting the various\n" +"parameters of a GNOME session and the applications that run under it. It\n" +"handles settings such keyboard layout, shortcuts, and accessibility, clipboard\n" +"settings, themes, mouse settings, and startup of other daemons." +msgstr "" + +#: gnu/packages/gnome.scm:2487 +msgid "Library to parse and save media playlists for GNOME" +msgstr "" + +#: gnu/packages/gnome.scm:2488 +msgid "" +"Totem-pl-parser is a GObjects-based library to parse and save\n" +"playlists in a variety of formats." +msgstr "" + +#: gnu/packages/gnome.scm:2522 +msgid "Solitaire card games" +msgstr "Gry typu pasjans" + +#: gnu/packages/gnome.scm:2524 +msgid "" +"Aisleriot (also known as Solitaire or sol) is a collection of card games\n" +"which are easy to play with the aid of a mouse." +msgstr "" + +#: gnu/packages/gnome.scm:2548 +msgid "API documentation browser for GNOME" +msgstr "" + +#: gnu/packages/gnome.scm:2550 +msgid "" +"Devhelp is an API documentation browser for GTK+ and GNOME. It works\n" +"natively with GTK-Doc (the API reference system developed for GTK+ and used\n" +"throughout GNOME for API documentation)." +msgstr "" + +#: gnu/packages/gnome.scm:2611 +msgid "Object oriented GL/GLES Abstraction/Utility Layer" +msgstr "" + +#: gnu/packages/gnome.scm:2613 +msgid "" +"Cogl is a small library for using 3D graphics hardware to draw pretty\n" +"pictures. The API departs from the flat state machine style of OpenGL and is\n" +"designed to make it easy to write orthogonal components that can render\n" +"without stepping on each others toes." +msgstr "" + +#: gnu/packages/gnome.scm:2668 +msgid "Open GL based interactive canvas library" +msgstr "" + +#: gnu/packages/gnome.scm:2670 gnu/packages/gnome.scm:2698 +msgid "" +"Clutter is an Open GL based interactive canvas library, designed for\n" +"creating fast, mainly 2D single window applications such as media box UIs,\n" +"presentations, kiosk style applications and so on." +msgstr "" + +#: gnu/packages/gnome.scm:2696 +msgid "Open GL based interactive canvas library GTK+ widget" +msgstr "" + +#: gnu/packages/gnome.scm:2726 +msgid "Integration library for using GStreamer with Clutter" +msgstr "" + +#: gnu/packages/gnome.scm:2728 +msgid "" +"Clutter-Gst is an integration library for using GStreamer with Clutter.\n" +"It provides a GStreamer sink to upload frames to GL and an actor that\n" +"implements the ClutterGstPlayer interface using playbin. Clutter is an Open\n" +"GL based interactive canvas library." +msgstr "" + +#: gnu/packages/gnome.scm:2758 +msgid "C library providing a ClutterActor to display maps" +msgstr "" + +#: gnu/packages/gnome.scm:2760 +msgid "" +"libchamplain is a C library providing a ClutterActor to display maps.\n" +"It also provides a Gtk+ widget to display maps in Gtk+ applications. Python\n" +"and Perl bindings are also available. It supports numerous free map sources\n" +"such as OpenStreetMap, OpenCycleMap, OpenAerialMap, and Maps for free." +msgstr "" + +#: gnu/packages/gnome.scm:2791 +msgid "Object mapper from GObjects to SQLite" +msgstr "" + +#: gnu/packages/gnome.scm:2793 +msgid "" +"Gom provides an object mapper from GObjects to SQLite. It helps you\n" +"write applications that need to store structured data as well as make complex\n" +"queries upon that data." +msgstr "" + +#: gnu/packages/gnome.scm:2821 +msgid "Sliding block puzzles" +msgstr "" + +#: gnu/packages/gnome.scm:2823 +msgid "" +"GNOME Klotski is a set of block sliding puzzles. The objective is to move\n" +"the patterned block to the area bordered by green markers. To do so, you will\n" +"need to slide other blocks out of the way. Complete each puzzle in as few moves\n" +"as possible!" +msgstr "" + +#: gnu/packages/gnome.scm:2874 +msgid "Framework for discovering and browsing media" +msgstr "" + +#: gnu/packages/gnome.scm:2876 gnu/packages/gnome.scm:2928 +msgid "" +"Grilo is a framework focused on making media discovery and browsing easy\n" +"for application developers." +msgstr "" + +#: gnu/packages/gnome.scm:2926 +msgid "Plugins for the Grilo media discovery library" +msgstr "" + +#: gnu/packages/gnome.scm:3003 +msgid "Simple media player for GNOME based on GStreamer" +msgstr "" + +#: gnu/packages/gnome.scm:3004 +msgid "" +"Totem is a simple yet featureful media player for GNOME\n" +"which can read a large number of file formats." +msgstr "" + +#: gnu/packages/gnome.scm:3093 +msgid "Music player for GNOME" +msgstr "Odtwarzacz muzyki GNOME" + +#: gnu/packages/gnome.scm:3094 +msgid "" +"Rhythmbox is a music playing application for GNOME. It\n" +"supports playlists, song ratings, and any codecs installed through gstreamer." +msgstr "" + +#: gnu/packages/gnome.scm:3144 +msgid "GNOME image viewer" +msgstr "Przeglądarka obrazów GNOME" + +#: gnu/packages/gnome.scm:3145 +msgid "" +"Eye of GNOME is the GNOME image viewer. It\n" +"supports image conversion, rotation, and slideshows." +msgstr "" + +#: gnu/packages/gnome.scm:3170 +msgid "GObject bindings for libudev" +msgstr "" + +#: gnu/packages/gnome.scm:3172 +msgid "" +"This library provides GObject bindings for libudev. It was originally\n" +"part of udev-extras, then udev, then systemd. It's now a project on its own." +msgstr "" + +#: gnu/packages/gnome.scm:3217 +msgid "Userspace virtual filesystem for GIO" +msgstr "" + +#: gnu/packages/gnome.scm:3219 +msgid "" +"GVFS is a userspace virtual filesystem designed to work with the I/O\n" +"abstraction of GIO. It contains a GIO module that seamlessly adds GVFS support\n" +"to all applications using the GIO API. It also supports exposing the GVFS\n" +"mounts to non-GIO applications using FUSE.\n" +"\n" +"GVFS comes with a set of backends, including trash support, SFTP, SMB, HTTP,\n" +"DAV, and others." +msgstr "" + +#: gnu/packages/gnome.scm:3265 +msgid "A GLib binding for libusb1" +msgstr "" + +#: gnu/packages/gnome.scm:3267 +msgid "" +"GUsb is a GObject wrapper for libusb1 that makes it easy to do\n" +"asynchronous control, bulk and interrupt transfers with proper cancellation\n" +"and integration into a mainloop. This makes it easy to integrate low level\n" +"USB transfers with your high-level application or system daemon." +msgstr "" + +#: gnu/packages/gnome.scm:3304 +msgid "Document and image scanner" +msgstr "" + +#: gnu/packages/gnome.scm:3305 +msgid "" +"Simple Scan is an easy-to-use application, designed to let\n" +"users connect their scanner and quickly have the image/document in an\n" +"appropriate format. Simple Scan is basically a frontend for SANE - which is\n" +"the same backend as XSANE uses. This means that all existing scanners will\n" +"work and the interface is well tested." +msgstr "" + +#: gnu/packages/gnome.scm:3354 +msgid "GNOME web browser" +msgstr "Przeglądarka internetu GNOME" + +#: gnu/packages/gnome.scm:3356 +msgid "" +"Epiphany is a GNOME web browser targeted at non-technical users. Its\n" +"principles are simplicity and standards compliance." +msgstr "" + +#: gnu/packages/gnome.scm:3412 +msgid "D-Bus debugger" +msgstr "" + +#: gnu/packages/gnome.scm:3414 +msgid "" +"D-Feet is a D-Bus debugger, which can be used to inspect D-Bus interfaces\n" +"of running programs and invoke methods on those interfaces." +msgstr "" + +#: gnu/packages/gnome.scm:3436 +msgid "XSL stylesheets for Yelp" +msgstr "" + +#: gnu/packages/gnome.scm:3438 +msgid "" +"Yelp-xsl contains XSL stylesheets that are used by the yelp help browser\n" +"to format Docbook and Mallard documents." +msgstr "" + +#: gnu/packages/gnome.scm:3470 +msgid "GNOME help browser" +msgstr "" + +#: gnu/packages/gnome.scm:3472 +msgid "" +"Yelp is the help viewer in Gnome. It natively views Mallard, DocBook,\n" +"man, info, and HTML documents. It can locate documents according to the\n" +"freedesktop.org help system specification." +msgstr "" + +#: gnu/packages/gnome.scm:3500 +msgid "Yelp documentation tools" +msgstr "" + +#: gnu/packages/gnome.scm:3502 +msgid "" +"Yelp-tools is a collection of scripts and build utilities to help create,\n" +"manage, and publish documentation for Yelp and the web. Most of the heavy\n" +"lifting is done by packages like yelp-xsl and itstool. This package just\n" +"wraps things up in a developer-friendly way." +msgstr "" + +#: gnu/packages/gnome.scm:3539 +msgid "GObject collection library" +msgstr "" + +#: gnu/packages/gnome.scm:3541 +msgid "" +"Libgee is a utility library providing GObject-based interfaces and\n" +"classes for commonly used data structures." +msgstr "" + +#: gnu/packages/gnome.scm:3568 +msgid "GObject wrapper around the Exiv2 photo metadata library" +msgstr "" + +#: gnu/packages/gnome.scm:3570 +msgid "" +"Gexiv2 is a GObject wrapper around the Exiv2 photo metadata library. It\n" +"allows for GNOME applications to easily inspect and update EXIF, IPTC, and XMP\n" +"metadata in photo and video files of various formats." +msgstr "" + +#: gnu/packages/gnome.scm:3622 +msgid "Photo manager for GNOME 3" +msgstr "" + +#: gnu/packages/gnome.scm:3624 +msgid "" +"Shotwell is a digital photo manager designed for the GNOME desktop\n" +"environment. It allows you to import photos from disk or camera, organize\n" +"them by keywords and events, view them in full-window or fullscreen mode, and\n" +"share them with others via social networking and more." +msgstr "" + +#: gnu/packages/gnome.scm:3656 +msgid "Graphical archive manager for GNOME" +msgstr "" + +#: gnu/packages/gnome.scm:3657 +msgid "" +"File Roller is an archive manager for the GNOME desktop\n" +"environment that allows users to view, unpack, and create compressed archives\n" +"such as gzip tarballs." +msgstr "" + +#: gnu/packages/gnuzilla.scm:90 +msgid "Mozilla javascript engine" +msgstr "" + +#: gnu/packages/gnuzilla.scm:91 +msgid "" +"SpiderMonkey is Mozilla's JavaScript engine written\n" +"in C/C++." +msgstr "" + +#: gnu/packages/gnuzilla.scm:123 +msgid "Netscape API for system level and libc-like functions" +msgstr "" + +#: gnu/packages/gnuzilla.scm:124 +msgid "" +"Netscape Portable Runtime (NSPR) provides a\n" +"platform-neutral API for system level and libc-like functions. It is used\n" +"in the Mozilla clients." +msgstr "" + +#: gnu/packages/gnuzilla.scm:219 +msgid "Network Security Services" +msgstr "" + +#: gnu/packages/gnuzilla.scm:221 +msgid "" +"Network Security Services (NSS) is a set of libraries designed to support\n" +"cross-platform development of security-enabled client and server applications.\n" +"Applications built with NSS can support SSL v2 and v3, TLS, PKCS #5, PKCS #7,\n" +"PKCS #11, PKCS #12, S/MIME, X.509 v3 certificates, and other security\n" +"standards." +msgstr "" + +#: gnu/packages/gnuzilla.scm:453 +msgid "Entirely free browser derived from Mozilla Firefox" +msgstr "Całkowicie wolna przeglądarka pochodząca od Firefoksa" + +#: gnu/packages/gnuzilla.scm:455 +msgid "" +"IceCat is the GNU version of the Firefox browser. It is entirely free\n" +"software, which does not recommend non-free plugins and addons. It also\n" +"features built-in privacy-protecting features." +msgstr "" + +#: gnu/packages/gtk.scm:84 +msgid "GNOME accessibility toolkit" +msgstr "" + +#: gnu/packages/gtk.scm:86 +msgid "" +"ATK provides the set of accessibility interfaces that are implemented\n" +"by other toolkits and applications. Using the ATK interfaces, accessibility\n" +"tools have full access to view and control running applications." +msgstr "" + +#: gnu/packages/gtk.scm:125 +msgid "2D graphics library" +msgstr "" + +#: gnu/packages/gtk.scm:127 +msgid "" +"Cairo is a 2D graphics library with support for multiple output devices.\n" +"Currently supported output targets include the X Window System (via both\n" +"Xlib and XCB), Quartz, Win32, image buffers, PostScript, PDF, and SVG file\n" +"output. Experimental backends include OpenGL, BeOS, OS/2, and DirectFB.\n" +"\n" +"Cairo is designed to produce consistent output on all output media while\n" +"taking advantage of display hardware acceleration when available\n" +"eg. through the X Render Extension).\n" +"\n" +"The cairo API provides operations similar to the drawing operators of\n" +"PostScript and PDF. Operations in cairo including stroking and filling cubic\n" +"Bézier splines, transforming and compositing translucent images, and\n" +"antialiased text rendering. All drawing operations can be transformed by any\n" +"affine transformation (scale, rotation, shear, etc.)." +msgstr "" + +#: gnu/packages/gtk.scm:175 +msgid "OpenType text shaping engine" +msgstr "" + +#: gnu/packages/gtk.scm:177 +msgid "HarfBuzz is an OpenType text shaping engine." +msgstr "" + +#: gnu/packages/gtk.scm:208 +msgid "GNOME text and font handling library" +msgstr "" + +#: gnu/packages/gtk.scm:210 +msgid "" +"Pango is the core text and font handling library used in GNOME\n" +"applications. It has extensive support for the different writing systems\n" +"used throughout the world." +msgstr "" + +#: gnu/packages/gtk.scm:236 +msgid "Obsolete pango functions" +msgstr "" + +#: gnu/packages/gtk.scm:237 +msgid "" +"Pangox was a X backend to pango. It is now obsolete and no\n" +"longer provided by recent pango releases. pangox-compat provides the\n" +"functions which were removed." +msgstr "" + +#: gnu/packages/gtk.scm:271 +msgid "GTK+ widget for interactive graph-like environments" +msgstr "" + +#: gnu/packages/gtk.scm:273 +msgid "" +"Ganv is an interactive GTK+ widget for interactive “boxes and lines” or\n" +"graph-like environments, e.g. modular synths or finite state machine\n" +"diagrams." +msgstr "" + +#: gnu/packages/gtk.scm:323 +msgid "Widget that extends the standard GTK+ 2.x 'GtkTextView' widget" +msgstr "" + +#: gnu/packages/gtk.scm:325 +msgid "" +"GtkSourceView is a portable C library that extends the standard GTK+\n" +"framework for multiline text editing with support for configurable syntax\n" +"highlighting, unlimited undo/redo, search and replace, a completion framework,\n" +"printing and other features typical of a source code editor." +msgstr "" + +#: gnu/packages/gtk.scm:374 +msgid "GNOME image loading and manipulation library" +msgstr "" + +#: gnu/packages/gtk.scm:376 +msgid "" +"GdkPixbuf is a library for image loading and manipulation developed\n" +"in the GNOME project." +msgstr "" + +#: gnu/packages/gtk.scm:417 +msgid "Assistive Technology Service Provider Interface, core components" +msgstr "" + +#: gnu/packages/gtk.scm:419 +msgid "" +"The Assistive Technology Service Provider Interface, core components,\n" +"is part of the GNOME accessibility project." +msgstr "" + +#: gnu/packages/gtk.scm:451 +msgid "Assistive Technology Service Provider Interface, ATK bindings" +msgstr "" + +#: gnu/packages/gtk.scm:453 +msgid "" +"The Assistive Technology Service Provider Interface\n" +"is part of the GNOME accessibility project." +msgstr "" + +#: gnu/packages/gtk.scm:505 +msgid "Cross-platform toolkit for creating graphical user interfaces" +msgstr "" + +#: gnu/packages/gtk.scm:507 +msgid "" +"GTK+, or the GIMP Toolkit, is a multi-platform toolkit for creating\n" +"graphical user interfaces. Offering a complete set of widgets, GTK+ is\n" +"suitable for projects ranging from small one-off tools to complete\n" +"application suites." +msgstr "" + +#: gnu/packages/gtk.scm:630 +msgid "Cairo bindings for GNU Guile" +msgstr "" + +#: gnu/packages/gtk.scm:632 +msgid "" +"Guile-Cairo wraps the Cairo graphics library for Guile Scheme.\n" +"Guile-Cairo is complete, wrapping almost all of the Cairo API. It is API\n" +"stable, providing a firm base on which to do graphics work. Finally, and\n" +"importantly, it is pleasant to use. You get a powerful and well-maintained\n" +"graphics library with all of the benefits of Scheme: memory management,\n" +"exceptions, macros, and a dynamic programming environment." +msgstr "" + +#: gnu/packages/gtk.scm:672 +msgid "Render SVG images using Cairo from Guile" +msgstr "" + +#: gnu/packages/gtk.scm:674 +msgid "" +"Guile-RSVG wraps the RSVG library for Guile, allowing you to render SVG\n" +"images onto Cairo surfaces." +msgstr "" + +#: gnu/packages/gtk.scm:718 +msgid "Create SVG or PDF presentations in Guile" +msgstr "" + +#: gnu/packages/gtk.scm:720 +msgid "" +"Guile-Present defines a declarative vocabulary for presentations,\n" +"together with tools to render presentation documents as SVG or PDF.\n" +"Guile-Present can be used to make presentations programmatically, but also\n" +"includes a tools to generate PDF presentations out of Org mode and Texinfo\n" +"documents." +msgstr "" + +#: gnu/packages/gtk.scm:753 +msgid "C++ bindings to the Cairo 2D graphics library" +msgstr "" + +#: gnu/packages/gtk.scm:755 +msgid "" +"Cairomm provides a C++ programming interface to the Cairo 2D graphics\n" +"library." +msgstr "" + +#: gnu/packages/gtk.scm:779 +msgid "C++ interface to the Pango text rendering library" +msgstr "" + +#: gnu/packages/gtk.scm:781 +msgid "" +"Pangomm provides a C++ programming interface to the Pango text rendering\n" +"library." +msgstr "" + +#: gnu/packages/gtk.scm:802 +msgid "C++ interface to the ATK accessibility library" +msgstr "" + +#: gnu/packages/gtk.scm:804 +msgid "" +"ATKmm provides a C++ programming interface to the ATK accessibility\n" +"toolkit." +msgstr "" + +#: gnu/packages/gtk.scm:830 +msgid "C++ interface to the GTK+ graphical user interface library" +msgstr "" + +#: gnu/packages/gtk.scm:832 +msgid "" +"gtkmm is the official C++ interface for the popular GUI library GTK+.\n" +"Highlights include typesafe callbacks, and a comprehensive set of widgets that\n" +"are easily extensible via inheritance. You can create user interfaces either\n" +"in code or with the Glade User Interface designer, using libglademm. There's\n" +"extensive documentation, including API reference and a tutorial." +msgstr "" + +#: gnu/packages/gtk.scm:888 +msgid "Python bindings for cairo" +msgstr "" + +#: gnu/packages/gtk.scm:890 +msgid "Pycairo is a set of Python bindings for the Cairo graphics library." +msgstr "" + +#: gnu/packages/gtk.scm:964 +msgid "Python bindings for GTK+" +msgstr "" + +#: gnu/packages/gtk.scm:966 +msgid "" +"PyGTK allows you to write full featured GTK programs in Python. It is\n" +"targetted at GTK 2.x, and can be used in conjunction with gnome-python to\n" +"write GNOME applications." +msgstr "" + +#: gnu/packages/gtk.scm:997 +msgid "Library for minimalistic gtk+3 user interfaces" +msgstr "" + +#: gnu/packages/gtk.scm:998 +msgid "" +"Girara is a library that implements a user interface that\n" +"focuses on simplicity and minimalism. Currently based on GTK+, a\n" +"cross-platform widget toolkit, it provides an interface that focuses on three\n" +"main components: a so-called view widget that represents the actual\n" +"application, an input bar that is used to execute commands of the\n" +"application and the status bar which provides the user with current\n" +"information." +msgstr "" + +#: gnu/packages/gtk.scm:1041 +msgid "Documentation generator from C source code" +msgstr "" + +#: gnu/packages/gtk.scm:1043 +msgid "" +"GTK-Doc generates API documentation from comments added to C code. It is\n" +"typically used to document the public API of GTK+ and GNOME libraries, but it\n" +"can also be used to document application code." +msgstr "" + +#: gnu/packages/guile.scm:107 gnu/packages/guile.scm:174 +msgid "Scheme implementation intended especially for extensions" +msgstr "" + +#: gnu/packages/guile.scm:109 gnu/packages/guile.scm:176 +msgid "" +"Guile is the GNU Ubiquitous Intelligent Language for Extensions, the\n" +"official extension language of the GNU system. It is an implementation of\n" +"the Scheme language which can be easily embedded in other applications to\n" +"provide a convenient means of extending the functionality of the application\n" +"without requiring the source code to be rewritten." +msgstr "" + +#: gnu/packages/guile.scm:217 +msgid "Snapshot of what will become version 2.2 of GNU Guile" +msgstr "" + +#: gnu/packages/guile.scm:264 +msgid "Framework for building readers for GNU Guile" +msgstr "" + +#: gnu/packages/guile.scm:266 +msgid "" +"Guile-Reader is a simple framework for building readers for GNU Guile.\n" +"\n" +"The idea is to make it easy to build procedures that extend Guile’s read\n" +"procedure. Readers supporting various syntax variants can easily be written,\n" +"possibly by re-using existing “token readers” of a standard Scheme\n" +"readers. For example, it is used to implement Skribilo’s R5RS-derived\n" +"document syntax.\n" +"\n" +"Guile-Reader’s approach is similar to Common Lisp’s “read table”, but\n" +"hopefully more powerful and flexible (for instance, one may instantiate as\n" +"many readers as needed)." +msgstr "" + +#: gnu/packages/guile.scm:311 +msgid "Guile bindings to ncurses" +msgstr "" + +#: gnu/packages/guile.scm:313 +msgid "" +"guile-ncurses provides Guile language bindings for the ncurses\n" +"library." +msgstr "" + +#: gnu/packages/guile.scm:333 +msgid "Run jobs at scheduled times" +msgstr "" + +#: gnu/packages/guile.scm:335 +msgid "" +"GNU Mcron is a complete replacement for Vixie cron. It is used to run\n" +"tasks on a schedule, such as every hour or every Monday. Mcron is written in\n" +"Guile, so its configuration can be written in Scheme; the original cron\n" +"format is also supported." +msgstr "" + +#: gnu/packages/guile.scm:363 +msgid "Collection of useful Guile Scheme modules" +msgstr "" + +#: gnu/packages/guile.scm:365 +msgid "" +"Guile-Lib is intended as an accumulation place for pure-scheme Guile\n" +"modules, allowing for people to cooperate integrating their generic Guile\n" +"modules into a coherent library. Think \"a down-scaled, limited-scope CPAN\n" +"for Guile\"." +msgstr "" + +#: gnu/packages/guile.scm:396 +msgid "JSON module for Guile" +msgstr "" + +#: gnu/packages/guile.scm:398 +msgid "" +"Guile-json supports parsing and building JSON documents according to the\n" +"http:://json.org specification. These are the main features:\n" +"- Strictly complies to http://json.org specification.\n" +"- Build JSON documents programmatically via macros.\n" +"- Unicode support for strings.\n" +"- Allows JSON pretty printing." +msgstr "" + +#: gnu/packages/guile.scm:468 +msgid "MiniKanren declarative logic system, packaged for Guile" +msgstr "" + +#: gnu/packages/guile.scm:470 +msgid "" +"MiniKanren is a relational programming extension to the Scheme\n" +"programming Language, written as a smaller version of Kanren suitable for\n" +"pedagogical purposes. It is featured in the book, The Reasoned Schemer,\n" +"written by Dan Friedman, William Byrd, and Oleg Kiselyov.\n" +"\n" +"This is Ian Price's r6rs packaged version of miniKanren, which deviates\n" +"slightly from miniKanren mainline.\n" +"\n" +"See http://minikanren.org/ for more on miniKanren generally." +msgstr "" + +#: gnu/packages/guile.scm:540 +msgid "Guile bindings to the GDBM library via Guile's FFI" +msgstr "" + +#: gnu/packages/guile.scm:542 +msgid "" +"Guile bindings to the GDBM key-value storage system, using\n" +"Guile's foreign function interface." +msgstr "" + +#: gnu/packages/guile.scm:560 +msgid "Functional static site generator" +msgstr "" + +#: gnu/packages/guile.scm:561 +msgid "" +"Haunt is a static site generator written in Guile\n" +"Scheme. Haunt features a functional build system and an extensible\n" +"interface for reading articles in any format." +msgstr "" + +#: gnu/packages/guile.scm:591 +msgid "Redis client library for Guile" +msgstr "" + +#: gnu/packages/guile.scm:592 +msgid "" +"Guile-redis provides a Scheme interface to the Redis\n" +"key-value cache and store." +msgstr "" + +#: gnu/packages/guile.scm:666 +msgid "wisp is a whitespace to lisp syntax for Guile" +msgstr "" + +#: gnu/packages/guile.scm:667 +msgid "" +"wisp is a syntax for Guile which provides a Python-like\n" +"whitespace-significant language. It may be easier on the eyes for some\n" +"users and in some situations." +msgstr "" + +#: gnu/packages/imagemagick.scm:99 +msgid "Create, edit, compose, or convert bitmap images" +msgstr "" + +#: gnu/packages/imagemagick.scm:101 +msgid "" +"ImageMagick® is a software suite to create, edit, compose, or convert\n" +"bitmap images. It can read and write images in a variety of formats (over 100)\n" +"including DPX, EXR, GIF, JPEG, JPEG-2000, PDF, PhotoCD, PNG, Postscript, SVG,\n" +"and TIFF. Use ImageMagick to resize, flip, mirror, rotate, distort, shear and\n" +"transform images, adjust image colors, apply various special effects, or draw\n" +"text, lines, polygons, ellipses and Bézier curves." +msgstr "" + +#: gnu/packages/imagemagick.scm:145 +msgid "Perl interface to ImageMagick" +msgstr "" + +#: gnu/packages/imagemagick.scm:146 +msgid "" +"This Perl extension allows the reading, manipulation and\n" +"writing of a large number of image file formats using the ImageMagick library.\n" +"Use it to create, edit, compose, or convert bitmap images from within a Perl\n" +"script." +msgstr "" + +#: gnu/packages/image.scm:69 +msgid "Library for handling PNG files" +msgstr "" + +#: gnu/packages/image.scm:71 +msgid "" +"Libpng is the official PNG (Portable Network Graphics) reference\n" +"library. It supports almost all PNG features and is extensible." +msgstr "" + +#: gnu/packages/image.scm:87 +msgid "Library for handling JPEG files" +msgstr "" + +#: gnu/packages/image.scm:89 +msgid "" +"Libjpeg implements JPEG image encoding, decoding, and transcoding.\n" +"JPEG is a standardized compression method for full-color and gray-scale\n" +"images.\n" +"The included programs provide conversion between the JPEG format and\n" +"image files in PBMPLUS PPM/PGM, GIF, BMP, and Targa file formats." +msgstr "" + +#: gnu/packages/image.scm:128 +msgid "Library for handling TIFF files" +msgstr "" + +#: gnu/packages/image.scm:130 +msgid "" +"Libtiff provides support for the Tag Image File Format (TIFF), a format\n" +"used for storing image data.\n" +"Included are a library, libtiff, for reading and writing TIFF and a small\n" +"collection of tools for doing simple manipulations of TIFF images." +msgstr "" + +#: gnu/packages/image.scm:173 +msgid "Library for reading images in the Microsoft WMF format" +msgstr "" + +#: gnu/packages/image.scm:175 +msgid "" +"libwmf is a library for reading vector images in Microsoft's native\n" +"Windows Metafile Format (WMF) and for either (a) displaying them in, e.g., an X\n" +"window; or (b) converting them to more standard/free file formats such as, e.g.,\n" +"the W3C's XML-based Scaleable Vector Graphic (SVG) format." +msgstr "" + +#: gnu/packages/image.scm:233 +msgid "Library and tools for image processing and analysis" +msgstr "" + +#: gnu/packages/image.scm:235 +msgid "" +"Leptonica is a C library and set of command-line tools for efficient\n" +"image processing and image analysis operations. It supports rasterop, affine\n" +"transformations, binary and grayscale morphology, rank order, and convolution,\n" +"seedfill and connected components, image transformations combining changes in\n" +"scale and pixel depth, and pixelwise masking, blending, enhancement, and\n" +"arithmetic ops." +msgstr "" + +#: gnu/packages/image.scm:258 +msgid "Decoder of the JBIG2 image compression format" +msgstr "" + +#: gnu/packages/image.scm:260 +msgid "" +"JBIG2 is designed for lossy or lossless encoding of 'bilevel' (1-bit\n" +"monochrome) images at moderately high resolution, and in particular scanned\n" +"paper documents. In this domain it is very efficient, offering compression\n" +"ratios on the order of 100:1.\n" +"\n" +"This is a decoder only implementation, and currently is in the alpha\n" +"stage, meaning it doesn't completely work yet. However, it is\n" +"maintaining parity with available encoders, so it is useful for real\n" +"work." +msgstr "" + +#: gnu/packages/image.scm:295 +msgid "JPEG 2000 codec" +msgstr "Kodek JPEG 2000" + +#: gnu/packages/image.scm:297 +msgid "" +"The OpenJPEG library is a JPEG 2000 codec written in C. It has\n" +"been developed in order to promote the use of JPEG 2000, the new\n" +"still-image compression standard from the Joint Photographic Experts\n" +"Group (JPEG).\n" +"\n" +"In addition to the basic codec, various other features are under\n" +"development, among them the JP2 and MJ2 (Motion JPEG 2000) file formats,\n" +"an indexing tool useful for the JPIP protocol, JPWL-tools for\n" +"error-resilience, a Java-viewer for j2k-images, ..." +msgstr "" + +#: gnu/packages/image.scm:376 +msgid "Tools and library for working with GIF images" +msgstr "" + +#: gnu/packages/image.scm:378 +msgid "" +"GIFLIB is a library for reading and writing GIF images. It is API and\n" +"ABI compatible with libungif which was in wide use while the LZW compression\n" +"algorithm was patented. Tools are also included to convert, manipulate,\n" +"compose, and analyze GIF images." +msgstr "" + +#: gnu/packages/image.scm:399 +msgid "GIF decompression library" +msgstr "" + +#: gnu/packages/image.scm:401 +msgid "libungif is the old GIF decompression library by the GIFLIB project." +msgstr "" + +#: gnu/packages/image.scm:430 +msgid "Loading, saving, rendering and manipulating image files" +msgstr "" + +#: gnu/packages/image.scm:432 +msgid "" +"Imlib2 is a library that does image file loading and saving as well as\n" +"rendering, manipulation, arbitrary polygon support, etc.\n" +"\n" +"It does ALL of these operations FAST. Imlib2 also tries to be highly\n" +"intelligent about doing them, so writing naive programs can be done easily,\n" +"without sacrificing speed.\n" +"\n" +"This is a complete rewrite over the Imlib 1.x series. The architecture is\n" +"more modular, simple, and flexible." +msgstr "" + +#: gnu/packages/image.scm:460 +msgid "Wrapper library for imlib2" +msgstr "" + +#: gnu/packages/image.scm:462 +msgid "" +"Giblib is a simple library which wraps imlib2's context API, avoiding\n" +"all the context_get/set calls, adds fontstyles to the truetype renderer and\n" +"supplies a generic doubly-linked list and some string functions." +msgstr "" + +#: gnu/packages/image.scm:502 +msgid "Library for handling popular graphics image formats" +msgstr "" + +#: gnu/packages/image.scm:504 +msgid "" +"FreeImage is a library for developers who would like to support popular\n" +"graphics image formats like PNG, BMP, JPEG, TIFF and others." +msgstr "" + +#: gnu/packages/image.scm:554 +msgid "Computer vision library" +msgstr "" + +#: gnu/packages/image.scm:556 +msgid "" +"VIGRA stands for Vision with Generic Algorithms. It is an image\n" +"processing and analysis library that puts its main emphasis on customizable\n" +"algorithms and data structures. It is particularly strong for\n" +"multi-dimensional image processing." +msgstr "" + +#: gnu/packages/image.scm:587 +msgid "Lossless and lossy image compression" +msgstr "" + +#: gnu/packages/image.scm:589 +msgid "" +"WebP is a new image format that provides lossless and lossy compression\n" +"for images. WebP lossless images are 26% smaller in size compared to\n" +"PNGs. WebP lossy images are 25-34% smaller in size compared to JPEG images at\n" +"equivalent SSIM index. WebP supports lossless transparency (also known as\n" +"alpha channel) with just 22% additional bytes. Transparency is also supported\n" +"with lossy compression and typically provides 3x smaller file sizes compared\n" +"to PNG when lossy compression is acceptable for the red/green/blue color\n" +"channels." +msgstr "" + +#: gnu/packages/image.scm:617 +msgid "Library for handling MNG files" +msgstr "" + +#: gnu/packages/image.scm:619 +msgid "Libmng is the MNG (Multiple-image Network Graphics) reference library." +msgstr "" + +#: gnu/packages/inkscape.scm:84 +msgid "Vector graphics editor" +msgstr "Edytor grafiki wektorowej" + +#: gnu/packages/inkscape.scm:85 +msgid "" +"Inkscape is a vector graphics editor. What sets Inkscape\n" +"apart is its use of Scalable Vector Graphics (SVG), an XML-based W3C standard,\n" +"as the native format." +msgstr "" + +#: gnu/packages/jemalloc.scm:47 +msgid "General-purpose scalable concurrent malloc implementation" +msgstr "" + +#: gnu/packages/jemalloc.scm:49 +msgid "" +"This library providing a malloc(3) implementation that emphasizes\n" +"fragmentation avoidance and scalable concurrency support." +msgstr "" + +#: gnu/packages/key-mon.scm:65 +msgid "Show keyboard and mouse status" +msgstr "" + +#: gnu/packages/key-mon.scm:67 +msgid "" +"The key-mon utility displays the current keyboard and mouse status.\n" +"This is useful for teaching and screencasts." +msgstr "" + +#: gnu/packages/less.scm:41 +msgid "Paginator for terminals" +msgstr "" + +#: gnu/packages/less.scm:43 +msgid "" +"GNU less is a pager, a program that allows you to view large amounts\n" +"of text in page-sized chunks. Unlike traditional pagers, it allows both\n" +"backwards and forwards movement through the document. It also does not have\n" +"to read the entire input file before starting, so it starts faster than most\n" +"text editors." +msgstr "" + +#: gnu/packages/lesstif.scm:47 +msgid "Clone of the Motif toolkit for the X window system" +msgstr "" + +#: gnu/packages/lesstif.scm:48 +msgid "Clone of the Motif toolkit for the X window system." +msgstr "" + +#: gnu/packages/libreoffice.scm:85 +msgid "General purpose formula parser and interpreter" +msgstr "" + +#: gnu/packages/libreoffice.scm:86 +msgid "" +"Ixion is a library for calculating the results of formula\n" +"expressions stored in multiple named targets, or \"cells\". The cells can\n" +"be referenced from each other, and the library takes care of resolving\n" +"their dependencies automatically upon calculation." +msgstr "" + +#: gnu/packages/libreoffice.scm:111 +msgid "File import filter library for spreadsheet documents" +msgstr "" + +#: gnu/packages/libreoffice.scm:112 +msgid "" +"Orcus is a library that provides a collection of standalone\n" +"file processing filters. It is currently focused on providing filters for\n" +"spreadsheet documents. The library includes import filters for\n" +"Microsoft Excel 2007 XML, Microsoft Excel 2003 XML, Open Document Spreadsheet,\n" +"Plain Text, Gnumeric XML, Generic XML. It also includes low-level parsers for\n" +"CSV, CSS and XML." +msgstr "" + +#: gnu/packages/libreoffice.scm:143 +msgid "Document importer for office suites" +msgstr "" + +#: gnu/packages/libreoffice.scm:144 +msgid "" +"Librevenge is a base library for writing document import\n" +"filters. It has interfaces for text documents, vector graphics,\n" +"spreadsheets and presentations." +msgstr "" + +#: gnu/packages/libreoffice.scm:169 +msgid "Library for importing WordPerfect documents" +msgstr "" + +#: gnu/packages/libreoffice.scm:170 +msgid "" +"Libwpd is a C++ library designed to help process\n" +"WordPerfect documents. It is most commonly used to import such documents\n" +"into other word processors." +msgstr "" + +#: gnu/packages/libreoffice.scm:202 +msgid "Library for import of reflowable e-book formats" +msgstr "" + +#: gnu/packages/libreoffice.scm:203 +msgid "" +"Libe-book is a library and a set of tools for reading and\n" +"converting various reflowable e-book formats. Currently supported are:\n" +"Broad Band eBook, eReader .pdb, FictionBook v. 2 (including zipped files),\n" +"PalmDoc Ebook, Plucker .pdb, QiOO (mobile format, for java-enabled\n" +"cellphones), TCR (simple compressed text format), TealDoc, zTXT,\n" +"ZVR (simple compressed text format)." +msgstr "" + +#: gnu/packages/libreoffice.scm:232 +msgid "Library and tools for the WordPerfect Graphics format" +msgstr "" + +#: gnu/packages/libreoffice.scm:233 +msgid "" +"The libwpg project provides a library and tools for\n" +"working with graphics in the WPG (WordPerfect Graphics) format." +msgstr "" + +#: gnu/packages/libreoffice.scm:273 +msgid "CMIS client library" +msgstr "" + +#: gnu/packages/libreoffice.scm:274 +msgid "" +"LibCMIS is a C++ client library for the CMIS interface. It\n" +"allows C++ applications to connect to any ECM behaving as a CMIS server such\n" +"as Alfresco or Nuxeo." +msgstr "" + +#: gnu/packages/libreoffice.scm:305 +msgid "Library for parsing the AbiWord format" +msgstr "" + +#: gnu/packages/libreoffice.scm:306 +msgid "" +"Libabw is a library that parses the file format of\n" +"AbiWord documents." +msgstr "" + +#: gnu/packages/libreoffice.scm:336 +msgid "Library for parsing the CorelDRAW format" +msgstr "" + +#: gnu/packages/libreoffice.scm:337 +msgid "" +"Libcdr is a library that parses the file format of\n" +"CorelDRAW documents of all versions." +msgstr "" + +#: gnu/packages/libreoffice.scm:366 +msgid "Library for parsing the Apple Keynote format" +msgstr "" + +#: gnu/packages/libreoffice.scm:367 +msgid "" +"Libetonyek is a library that parses the file format of\n" +"Apple Keynote documents. It currently supports Keynote versions 2 to 5." +msgstr "" + +#: gnu/packages/libreoffice.scm:384 +msgid "Text Categorization library" +msgstr "" + +#: gnu/packages/libreoffice.scm:385 +msgid "" +"Libexttextcat is an N-Gram-Based Text Categorization\n" +"library primarily intended for language guessing." +msgstr "" + +#: gnu/packages/libreoffice.scm:411 +msgid "Library for parsing the FreeHand format" +msgstr "" + +#: gnu/packages/libreoffice.scm:412 +msgid "" +"Libfreehand is a library that parses the file format of\n" +"Aldus/Macromedia/Adobe FreeHand documents." +msgstr "" + +#: gnu/packages/libreoffice.scm:438 +msgid "Library for parsing the Microsoft Publisher format" +msgstr "" + +#: gnu/packages/libreoffice.scm:439 +msgid "" +"Libmspub is a library that parses the file format of\n" +"Microsoft Publisher documents of all versions." +msgstr "" + +#: gnu/packages/libreoffice.scm:467 +msgid "Library for parsing the PageMaker format" +msgstr "" + +#: gnu/packages/libreoffice.scm:468 +msgid "" +"Libpagemaker is a library that parses the file format of\n" +"Aldus/Adobe PageMaker documents. Currently it only understands documents\n" +"created by PageMaker version 6.x and 7." +msgstr "" + +#: gnu/packages/libreoffice.scm:503 +msgid "Library for parsing the Microsoft Visio format" +msgstr "" + +#: gnu/packages/libreoffice.scm:504 +msgid "" +"Libvisio is a library that parses the file format of\n" +"Microsoft Visio documents of all versions." +msgstr "" + +#: gnu/packages/libreoffice.scm:532 +msgid "ODF (Open Document Format) library" +msgstr "" + +#: gnu/packages/libreoffice.scm:533 +msgid "" +"Libodfgen is a library for generating documents in the\n" +"Open Document Format (ODF). It provides generator implementations for all\n" +"document interfaces supported by librevenge:\n" +"text documents, vector drawings, presentations and spreadsheets." +msgstr "" + +#: gnu/packages/libreoffice.scm:563 +msgid "Import library for some old Macintosh text documents" +msgstr "" + +#: gnu/packages/libreoffice.scm:564 +msgid "" +"Libmwaw contains some import filters for old Macintosh\n" +"text documents (MacWrite, ClarisWorks, ... ) and for some graphics and\n" +"spreadsheet documents." +msgstr "" + +#: gnu/packages/libreoffice.scm:593 +msgid "Import library for Microsoft Works text documents" +msgstr "" + +#: gnu/packages/libreoffice.scm:594 +msgid "" +"Libwps is a library for importing files in the Microsoft\n" +"Works word processor file format." +msgstr "" + +#: gnu/packages/libreoffice.scm:612 +msgid "" +"Hunspell is a spell checker and morphological analyzer\n" +"library and program designed for languages with rich morphology and complex\n" +"word compounding or character encoding." +msgstr "" + +#: gnu/packages/libreoffice.scm:633 +msgid "Hyphenation library" +msgstr "Biblioteka dzielenia wyrazów" + +#: gnu/packages/libreoffice.scm:634 +msgid "" +"Hyphen is a hyphenation library using TeX hyphenation\n" +"patterns, which are pre-processed by a perl script." +msgstr "" + +#: gnu/packages/libreoffice.scm:657 +msgid "Thesaurus" +msgstr "" + +#: gnu/packages/libreoffice.scm:658 +msgid "" +"MyThes is a simple thesaurus that uses a structured text\n" +"data file and an index file with binary search to look up words and phrases\n" +"and to return information on pronunciations, meanings and synonyms." +msgstr "" + +#: gnu/packages/libreoffice.scm:822 +msgid "Office suite" +msgstr "Pakiet biurowy" + +#: gnu/packages/libreoffice.scm:823 +msgid "" +"LibreOffice is a comprehensive office suite. It contains\n" +"a number of components: Writer, a word processor; Calc, a spreadsheet\n" +"application; Impress, a presentation engine; Draw, a drawing and\n" +"flowcharting application; Base, a database and database frontend;\n" +"Math for editing mathematics." +msgstr "" + +#: gnu/packages/linux.scm:149 +msgid "GNU Linux-Libre kernel headers" +msgstr "" + +#: gnu/packages/linux.scm:150 +msgid "Headers of the Linux-Libre kernel." +msgstr "" + +#: gnu/packages/linux.scm:181 +msgid "Tools for loading and managing Linux kernel modules" +msgstr "" + +#: gnu/packages/linux.scm:183 +msgid "" +"Tools for loading and managing Linux kernel modules, such as `modprobe',\n" +"`insmod', `lsmod', and more." +msgstr "" + +#: gnu/packages/linux.scm:311 +msgid "100% free redistribution of a cleaned Linux kernel" +msgstr "" + +#: gnu/packages/linux.scm:313 +msgid "" +"GNU Linux-Libre is a free (as in freedom) variant of the Linux kernel.\n" +"It has been modified to remove all non-free binary blobs." +msgstr "" + +#: gnu/packages/linux.scm:356 +msgid "Pluggable authentication modules for Linux" +msgstr "" + +#: gnu/packages/linux.scm:358 +msgid "" +"A *Free* project to implement OSF's RFC 86.0.\n" +"Pluggable authentication modules are small shared object files that can\n" +"be used through the PAM API to perform tasks, like authenticating a user\n" +"at login. Local and dynamic reconfiguration are its key features." +msgstr "" + +#: gnu/packages/linux.scm:385 +msgid "Small utilities that use the proc filesystem" +msgstr "" + +#: gnu/packages/linux.scm:387 +msgid "" +"This PSmisc package is a set of some small useful utilities that\n" +"use the proc filesystem. We're not about changing the world, but\n" +"providing the system administrator with some help in common tasks." +msgstr "" + +#: gnu/packages/linux.scm:449 +msgid "Collection of utilities for the Linux kernel" +msgstr "" + +#: gnu/packages/linux.scm:451 +msgid "Util-linux is a random collection of utilities for the Linux kernel." +msgstr "" + +#: gnu/packages/linux.scm:518 +msgid "Utilities that give information about processes" +msgstr "" + +#: gnu/packages/linux.scm:520 +msgid "" +"Procps is the package that has a bunch of small useful utilities\n" +"that give information about processes using the Linux /proc file system.\n" +"The package includes the programs ps, top, vmstat, w, kill, free,\n" +"slabtop, and skill." +msgstr "" + +#: gnu/packages/linux.scm:545 +msgid "Tools for working with USB devices, such as lsusb" +msgstr "" + +#: gnu/packages/linux.scm:547 +msgid "Tools for working with USB devices, such as lsusb." +msgstr "" + +#: gnu/packages/linux.scm:621 +msgid "Creating and checking ext2/ext3/ext4 file systems" +msgstr "" + +#: gnu/packages/linux.scm:623 +msgid "This package provides tools for manipulating ext2/ext3/ext4 file systems." +msgstr "" + +#: gnu/packages/linux.scm:665 +msgid "Statically-linked fsck.* commands from e2fsprogs" +msgstr "" + +#: gnu/packages/linux.scm:667 +msgid "" +"This package provides statically-linked command of fsck.ext[234] taken\n" +"from the e2fsprogs package. It is meant to be used in initrds." +msgstr "" + +#: gnu/packages/linux.scm:686 +msgid "Recover deleted files from ext2/3/4 partitions" +msgstr "" + +#: gnu/packages/linux.scm:688 +msgid "" +"Extundelete is a set of tools that can recover deleted files from an\n" +"ext3 or ext4 partition." +msgstr "" + +#: gnu/packages/linux.scm:720 +msgid "Zero non-allocated regions in ext2/ext3/ext4 file systems" +msgstr "" + +#: gnu/packages/linux.scm:722 +msgid "" +"The zerofree command scans the free blocks in an ext2 file system and\n" +"fills any non-zero blocks with zeroes. This is a useful way to make disk\n" +"images more compressible." +msgstr "" + +#: gnu/packages/linux.scm:741 +msgid "System call tracer for Linux" +msgstr "" + +#: gnu/packages/linux.scm:743 +msgid "" +"strace is a system call tracer, i.e. a debugging tool which prints out a\n" +"trace of all the system calls made by a another process/program." +msgstr "" + +#: gnu/packages/linux.scm:764 +msgid "Library call tracer for Linux" +msgstr "" + +#: gnu/packages/linux.scm:766 +msgid "" +"ltrace intercepts and records dynamic library calls which are called by\n" +"an executed process and the signals received by that process. It can also\n" +"intercept and print the system calls executed by the program." +msgstr "" + +#: gnu/packages/linux.scm:786 +msgid "The Advanced Linux Sound Architecture libraries" +msgstr "" + +#: gnu/packages/linux.scm:788 gnu/packages/linux.scm:830 +msgid "" +"The Advanced Linux Sound Architecture (ALSA) provides audio and\n" +"MIDI functionality to the Linux-based operating system." +msgstr "" + +#: gnu/packages/linux.scm:828 +msgid "Utilities for the Advanced Linux Sound Architecture (ALSA)" +msgstr "" + +#: gnu/packages/linux.scm:855 +msgid "Program to configure the Linux IP packet filtering rules" +msgstr "" + +#: gnu/packages/linux.scm:857 +msgid "" +"iptables is the userspace command line program used to configure the\n" +"Linux 2.4.x and later IPv4 packet filtering ruleset. It is targeted towards\n" +"system administrators. Since Network Address Translation is also configured\n" +"from the packet filter ruleset, iptables is used for this, too. The iptables\n" +"package also includes ip6tables. ip6tables is used for configuring the IPv6\n" +"packet filter." +msgstr "" + +#: gnu/packages/linux.scm:905 +msgid "Utilities for controlling TCP/IP networking and traffic in Linux" +msgstr "" + +#: gnu/packages/linux.scm:907 +msgid "" +"Iproute2 is a collection of utilities for controlling TCP/IP\n" +"networking and traffic with the Linux kernel.\n" +"\n" +"Most network configuration manuals still refer to ifconfig and route as the\n" +"primary network configuration tools, but ifconfig is known to behave\n" +"inadequately in modern network environments. They should be deprecated, but\n" +"most distros still include them. Most network configuration systems make use\n" +"of ifconfig and thus provide a limited feature set. The /etc/net project aims\n" +"to support most modern network technologies, as it doesn't use ifconfig and\n" +"allows a system administrator to make use of all iproute2 features, including\n" +"traffic control.\n" +"\n" +"iproute2 is usually shipped in a package called iproute or iproute2 and\n" +"consists of several tools, of which the most important are ip and tc. ip\n" +"controls IPv4 and IPv6 configuration and tc stands for traffic control. Both\n" +"tools print detailed usage messages and are accompanied by a set of\n" +"manpages." +msgstr "" + +#: gnu/packages/linux.scm:1015 +msgid "Tools for controlling the network subsystem in Linux" +msgstr "" + +#: gnu/packages/linux.scm:1017 +msgid "" +"This package includes the important tools for controlling the network\n" +"subsystem of the Linux kernel. This includes arp, hostname, ifconfig,\n" +"netstat, rarp and route. Additionally, this package contains utilities\n" +"relating to particular network hardware types (plipconfig, slattach) and\n" +"advanced aspects of IP configuration (iptunnel, ipmaddr)." +msgstr "" + +#: gnu/packages/linux.scm:1054 +msgid "Library for working with POSIX capabilities" +msgstr "" + +#: gnu/packages/linux.scm:1056 +msgid "" +"Libcap2 provides a programming interface to POSIX capabilities on\n" +"Linux-based operating systems." +msgstr "" + +#: gnu/packages/linux.scm:1099 +msgid "Manipulate Ethernet bridges" +msgstr "" + +#: gnu/packages/linux.scm:1101 +msgid "" +"Utilities for Linux's Ethernet bridging facilities. A bridge is a way\n" +"to connect two Ethernet segments together in a protocol independent way.\n" +"Packets are forwarded based on Ethernet address, rather than IP address (like\n" +"a router). Since forwarding is done at Layer 2, all protocols can go\n" +"transparently through a bridge." +msgstr "" + +#: gnu/packages/linux.scm:1123 +msgid "NetLink protocol library suite" +msgstr "" + +#: gnu/packages/linux.scm:1125 +msgid "" +"The libnl suite is a collection of libraries providing APIs to netlink\n" +"protocol based Linux kernel interfaces. Netlink is an IPC mechanism primarily\n" +"between the kernel and user space processes. It was designed to be a more\n" +"flexible successor to ioctl to provide mainly networking related kernel\n" +"configuration and monitoring interfaces." +msgstr "" + +#: gnu/packages/linux.scm:1155 +msgid "Tool for configuring wireless devices" +msgstr "" + +#: gnu/packages/linux.scm:1157 +msgid "" +"iw is a new nl80211 based CLI configuration utility for wireless\n" +"devices. It replaces 'iwconfig', which is deprecated." +msgstr "" + +#: gnu/packages/linux.scm:1183 +msgid "Analyze power consumption on Intel-based laptops" +msgstr "" + +#: gnu/packages/linux.scm:1185 +msgid "" +"PowerTOP is a Linux tool to diagnose issues with power consumption and\n" +"power management. In addition to being a diagnostic tool, PowerTOP also has\n" +"an interactive mode where the user can experiment various power management\n" +"settings for cases where the operating system has not enabled these\n" +"settings." +msgstr "" + +#: gnu/packages/linux.scm:1207 +msgid "Audio mixer for X and the console" +msgstr "" + +#: gnu/packages/linux.scm:1209 +msgid "" +"Aumix adjusts an audio mixer from X, the console, a terminal,\n" +"the command line or a script." +msgstr "" + +#: gnu/packages/linux.scm:1233 +msgid "Displays the IO activity of running processes" +msgstr "" + +#: gnu/packages/linux.scm:1235 +msgid "" +"Iotop is a Python program with a top like user interface to show the\n" +"processes currently causing I/O." +msgstr "" + +#: gnu/packages/linux.scm:1287 +msgid "Support file systems implemented in user space" +msgstr "" + +#: gnu/packages/linux.scm:1289 +msgid "" +"As a consequence of its monolithic design, file system code for Linux\n" +"normally goes into the kernel itself---which is not only a robustness issue,\n" +"but also an impediment to system extensibility. FUSE, for \"file systems in\n" +"user space\", is a kernel module and user-space library that tries to address\n" +"part of this problem by allowing users to run file system implementations as\n" +"user-space processes." +msgstr "" + +#: gnu/packages/linux.scm:1314 +msgid "User-space union file system" +msgstr "" + +#: gnu/packages/linux.scm:1316 +msgid "" +"UnionFS-FUSE is a flexible union file system implementation in user\n" +"space, using the FUSE library. Mounting a union file system allows you to\n" +"\"aggregate\" the contents of several directories into a single mount point.\n" +"UnionFS-FUSE additionally supports copy-on-write." +msgstr "" + +#: gnu/packages/linux.scm:1341 +msgid "User-space union file system (statically linked)" +msgstr "" + +#: gnu/packages/linux.scm:1383 +msgid "Mount remote file systems over SSH" +msgstr "" + +#: gnu/packages/linux.scm:1385 +msgid "" +"This is a file system client based on the SSH File Transfer Protocol.\n" +"Since most SSH servers already support this protocol it is very easy to set\n" +"up: on the server side there's nothing to do; on the client side mounting the\n" +"file system is as easy as logging into the server with an SSH client." +msgstr "" + +#: gnu/packages/linux.scm:1433 +msgid "Tools for non-uniform memory access (NUMA) machines" +msgstr "" + +#: gnu/packages/linux.scm:1435 +msgid "" +"NUMA stands for Non-Uniform Memory Access, in other words a system whose\n" +"memory is not all in one place. The numactl program allows you to run your\n" +"application program on specific CPU's and memory nodes. It does this by\n" +"supplying a NUMA memory policy to the operating system before running your\n" +"program.\n" +"\n" +"The package contains other commands, such as numademo, numastat and memhog.\n" +"The numademo command provides a quick overview of NUMA performance on your\n" +"system." +msgstr "" + +#: gnu/packages/linux.scm:1498 +msgid "Linux keyboard utilities and keyboard maps" +msgstr "" + +#: gnu/packages/linux.scm:1500 +msgid "" +"This package contains keytable files and keyboard utilities compatible\n" +"for systems using the Linux kernel. This includes commands such as\n" +"'loadkeys', 'setfont', 'kbdinfo', and 'chvt'." +msgstr "" + +#: gnu/packages/linux.scm:1519 +msgid "Monitor file accesses" +msgstr "" + +#: gnu/packages/linux.scm:1521 +msgid "" +"The inotify-tools packages provides a C library and command-line tools\n" +"to use Linux' inotify mechanism, which allows file accesses to be monitored." +msgstr "" + +#: gnu/packages/linux.scm:1559 +msgid "Kernel module tools" +msgstr "" + +#: gnu/packages/linux.scm:1560 +msgid "" +"Kmod is a set of tools to handle common tasks with Linux\n" +"kernel modules like insert, remove, list, check properties, resolve\n" +"dependencies and aliases.\n" +"\n" +"These tools are designed on top of libkmod, a library that is shipped with\n" +"kmod. The aim is to be compatible with tools, configurations and indices\n" +"from the module-init-tools project." +msgstr "" + +#: gnu/packages/linux.scm:1631 +msgid "Userspace device management" +msgstr "" + +#: gnu/packages/linux.scm:1632 +msgid "" +"Udev is a daemon which dynamically creates and removes\n" +"device nodes from /dev/, handles hotplug events and loads drivers at boot\n" +"time." +msgstr "" + +#: gnu/packages/linux.scm:1692 +msgid "Logical volume management for Linux" +msgstr "" + +#: gnu/packages/linux.scm:1694 +msgid "" +"LVM2 is the logical volume management tool set for Linux-based systems.\n" +"This package includes the user-space libraries and tools, including the device\n" +"mapper. Kernel components are part of Linux-libre." +msgstr "" + +#: gnu/packages/linux.scm:1730 +msgid "Tools for manipulating Linux Wireless Extensions" +msgstr "" + +#: gnu/packages/linux.scm:1731 +msgid "" +"Wireless Tools are used to manipulate the now-deprecated\n" +"Linux Wireless Extensions; consider using 'iw' instead. The Wireless\n" +"Extension was an interface allowing you to set Wireless LAN specific\n" +"parameters and get the specific stats. It is deprecated in favor the nl80211\n" +"interface." +msgstr "" + +#: gnu/packages/linux.scm:1803 +msgid "Central regulatory domain agent (CRDA) for WiFi" +msgstr "" + +#: gnu/packages/linux.scm:1805 +msgid "" +"The Central Regulatory Domain Agent (CRDA) acts as the udev helper for\n" +"communication between the kernel Linux and user space for regulatory\n" +"compliance." +msgstr "" + +#: gnu/packages/linux.scm:1841 +msgid "Wireless regulatory database" +msgstr "" + +#: gnu/packages/linux.scm:1843 +msgid "" +"This package contains the wireless regulatory database Central\n" +"Regulatory Database Agent (CRDA) daemon. The database contains information on\n" +"country-specific regulations for the wireless spectrum." +msgstr "" + +#: gnu/packages/linux.scm:1914 +msgid "Utilities to read temperature/voltage/fan sensors" +msgstr "" + +#: gnu/packages/linux.scm:1916 +msgid "" +"Lm-sensors is a hardware health monitoring package for Linux. It allows\n" +"you to access information from temperature, voltage, and fan speed sensors.\n" +"It works with most newer systems." +msgstr "" + +#: gnu/packages/linux.scm:1943 +msgid "I2C tools for Linux" +msgstr "" + +#: gnu/packages/linux.scm:1945 +msgid "" +"The i2c-tools package contains a heterogeneous set of I2C tools for\n" +"Linux: a bus probing tool, a chip dumper, register-level SMBus access helpers,\n" +"EEPROM decoding scripts, EEPROM programming tools, and a python module for\n" +"SMBus access." +msgstr "" + +#: gnu/packages/linux.scm:1981 +msgid "Hardware health information viewer" +msgstr "" + +#: gnu/packages/linux.scm:1983 +msgid "" +"Xsensors reads data from the libsensors library regarding hardware\n" +"health such as temperature, voltage and fan speed and displays the information\n" +"in a digital read-out." +msgstr "" + +#: gnu/packages/linux.scm:2031 +msgid "Linux profiling with performance counters" +msgstr "" + +#: gnu/packages/linux.scm:2033 +msgid "" +"perf is a tool suite for profiling using hardware performance counters,\n" +"with support in the Linux kernel. perf can instrument CPU performance\n" +"counters, tracepoints, kprobes, and uprobes (dynamic tracing). It is capable\n" +"of lightweight profiling. This package contains the user-land tools and in\n" +"particular the 'perf' command." +msgstr "" + +#: gnu/packages/linux.scm:2056 +msgid "Simple tool for creating Linux namespace containers" +msgstr "" + +#: gnu/packages/linux.scm:2057 +msgid "" +"pflask is a simple tool for creating Linux namespace\n" +"containers. It can be used for running a command or even booting an OS inside\n" +"an isolated container, created with the help of Linux namespaces. It is\n" +"similar in functionality to chroot, although pflask provides better isolation\n" +"thanks to the use of namespaces." +msgstr "" + +#: gnu/packages/linux.scm:2084 +msgid "Tune hard disk parameters for high performance" +msgstr "" + +#: gnu/packages/linux.scm:2086 +msgid "" +"Get/set device parameters for Linux SATA/IDE drives. It's primary use\n" +"is for enabling irq-unmasking and IDE multiple-mode." +msgstr "" + +#: gnu/packages/linux.scm:2109 +msgid "Tool for enabling and disabling wireless devices" +msgstr "" + +#: gnu/packages/linux.scm:2111 +msgid "" +"rfkill is a simple tool for accessing the rfkill device interface,\n" +"which is used to enable and disable wireless networking devices, typically\n" +"WLAN, Bluetooth and mobile broadband." +msgstr "" + +#: gnu/packages/linux.scm:2130 +msgid "Daemon for delivering ACPI events to user-space programs" +msgstr "" + +#: gnu/packages/linux.scm:2132 +msgid "" +"acpid is designed to notify user-space programs of Advanced\n" +"Configuration and Power Interface (ACPI) events. acpid should be started\n" +"during the system boot, and will run as a background process. When an ACPI\n" +"event is received from the kernel, acpid will examine the list of rules\n" +"specified in /etc/acpi/events and execute the rules that match the event." +msgstr "" + +#: gnu/packages/linux.scm:2154 +msgid "System utilities based on Linux sysfs" +msgstr "" + +#: gnu/packages/linux.scm:2156 +msgid "" +"These are a set of utilities built upon sysfs, a virtual filesystem in\n" +"Linux kernel versions 2.5+ that exposes a system's device tree. The package\n" +"also contains the libsysfs library." +msgstr "" + +#: gnu/packages/linux.scm:2185 +msgid "System utilities based on Linux sysfs (version 1.x)" +msgstr "" + +#: gnu/packages/linux.scm:2208 +msgid "Utilities to get and set CPU frequency on Linux" +msgstr "" + +#: gnu/packages/linux.scm:2210 +msgid "" +"The cpufrequtils suite contains utilities to retrieve CPU frequency\n" +"information, and set the CPU frequency if supported, using the cpufreq\n" +"capabilities of the Linux kernel." +msgstr "" + +#: gnu/packages/linux.scm:2229 +msgid "Interface library for the Linux IEEE1394 drivers" +msgstr "" + +#: gnu/packages/linux.scm:2231 +msgid "" +"Libraw1394 is the only supported interface to the kernel side raw1394 of\n" +"the Linux IEEE-1394 subsystem, which provides direct access to the connected\n" +"1394 buses to user space. Through libraw1394/raw1394, applications can directly\n" +"send to and receive from other nodes without requiring a kernel driver for the\n" +"protocol in question." +msgstr "" + +#: gnu/packages/linux.scm:2255 +msgid "AV/C protocol library for IEEE 1394" +msgstr "" + +#: gnu/packages/linux.scm:2257 +msgid "" +"Libavc1394 is a programming interface to the AV/C specification from\n" +"the 1394 Trade Association. AV/C stands for Audio/Video Control." +msgstr "" + +#: gnu/packages/linux.scm:2279 +msgid "Isochronous streaming media library for IEEE 1394" +msgstr "" + +#: gnu/packages/linux.scm:2281 +msgid "" +"The libiec61883 library provides a higher level API for streaming DV,\n" +"MPEG-2 and audio over Linux IEEE 1394." +msgstr "" + +#: gnu/packages/linux.scm:2321 +msgid "Tool for managing Linux Software RAID arrays" +msgstr "" + +#: gnu/packages/linux.scm:2323 +msgid "" +"mdadm is a tool for managing Linux Software RAID arrays. It can create,\n" +"assemble, report on, and monitor arrays. It can also move spares between raid\n" +"arrays when needed." +msgstr "" + +#: gnu/packages/linux.scm:2350 +msgid "Linux-native asynchronous I/O access library" +msgstr "" + +#: gnu/packages/linux.scm:2352 +msgid "" +"This library enables userspace to use Linux kernel asynchronous I/O\n" +"system calls, important for the performance of databases and other advanced\n" +"applications." +msgstr "" + +#: gnu/packages/linux.scm:2388 +msgid "Linux Bluetooth protocol stack" +msgstr "" + +#: gnu/packages/linux.scm:2390 +msgid "" +"BlueZ provides support for the core Bluetooth layers and protocols. It\n" +"is flexible, efficient and uses a modular implementation." +msgstr "" + +#: gnu/packages/linux.scm:2446 +msgid "Mount exFAT file systems" +msgstr "" + +#: gnu/packages/linux.scm:2448 +msgid "" +"This package provides a FUSE-based file system that provides read and\n" +"write access to exFAT devices." +msgstr "" + +#: gnu/packages/lout.scm:109 +msgid "Document layout system" +msgstr "" + +#: gnu/packages/lout.scm:111 +msgid "" +"The Lout document formatting system reads a high-level description of\n" +"a document similar in style to LaTeX and produces a PostScript or plain text\n" +"output file.\n" +"\n" +"Lout offers an unprecedented range of advanced features, including optimal\n" +"paragraph and page breaking, automatic hyphenation, PostScript EPS file\n" +"inclusion and generation, equation formatting, tables, diagrams, rotation and\n" +"scaling, sorted indexes, bibliographic databases, running headers and\n" +"odd-even pages, automatic cross referencing, multilingual documents including\n" +"hyphenation (most European languages are supported), formatting of computer\n" +"programs, and much more, all ready to use. Furthermore, Lout is easily\n" +"extended with definitions which are very much easier to write than troff of\n" +"TeX macros because Lout is a high-level, purely functional language, the\n" +"outcome of an eight-year research project that went back to the\n" +"beginning." +msgstr "" + +#: gnu/packages/messaging.scm:76 +msgid "Off-the-Record (OTR) Messaging Library and Toolkit" +msgstr "" + +#: gnu/packages/messaging.scm:78 +msgid "" +"OTR allows you to have private conversations over instant messaging by\n" +"providing: (1) Encryption: No one else can read your instant messages. (2)\n" +"Authentication: You are assured the correspondent is who you think it is. (3)\n" +"Deniability: The messages you send do not have digital signatures that are\n" +"checkable by a third party. Anyone can forge messages after a conversation to\n" +"make them look like they came from you. However, during a conversation, your\n" +"correspondent is assured the messages he sees are authentic and\n" +"unmodified. (4) Perfect forward secrecy: If you lose control of your private\n" +"keys, no previous conversation is compromised." +msgstr "" + +#: gnu/packages/messaging.scm:134 +msgid "IRC to instant messaging gateway" +msgstr "" + +#: gnu/packages/messaging.scm:135 +msgid "" +"BitlBee brings IM (instant messaging) to IRC clients, for\n" +"people who have an IRC client running all the time and don't want to run an\n" +"additional IM client. BitlBee currently supports XMPP/Jabber (including\n" +"Google Talk), MSN Messenger, Yahoo! Messenger, AIM and ICQ, and the Twitter\n" +"microblogging network (plus all other Twitter API compatible services like\n" +"identi.ca and status.net)." +msgstr "" + +#: gnu/packages/messaging.scm:168 +msgid "Graphical IRC Client" +msgstr "Graficzny klient IRC" + +#: gnu/packages/messaging.scm:170 +msgid "" +"HexChat lets you connect to multiple IRC networks at once. The main window\n" +"shows the list of currently connected networks and their channels, the current\n" +"conversation and the list of users. It uses colors to differentiate between\n" +"users and to highlight messages. It checks spelling using available\n" +"dictionaries. HexChat can be extended with multiple addons." +msgstr "" + +#: gnu/packages/messaging.scm:236 +msgid "Lightweight Internet Relay Chat server for small networks" +msgstr "" + +#: gnu/packages/messaging.scm:238 +msgid "" +"ngIRCd is a lightweight Internet Relay Chat server for small or private\n" +"networks. It is easy to configure, can cope with dynamic IP addresses, and\n" +"supports IPv6, SSL-protected connections as well as PAM for authentication." +msgstr "" + +#: gnu/packages/messaging.scm:309 +msgid "Graphical multi-protocol instant messaging client" +msgstr "" + +#: gnu/packages/messaging.scm:311 +msgid "" +"Pidgin is a modular instant messaging client that supports many popular\n" +"chat protocols." +msgstr "" + +#: gnu/packages/messaging.scm:349 +msgid "Off-the-Record Messaging plugin for Pidgin" +msgstr "" + +#: gnu/packages/messaging.scm:351 +msgid "" +"Pidgin-OTR is a plugin that adds support for OTR to the Pidgin instant\n" +"messaging client. OTR (Off-the-Record) Messaging allows you to have private\n" +"conversations over instant messaging by providing: (1) Encryption: No one else\n" +"can read your instant messages. (2) Authentication: You are assured the\n" +"correspondent is who you think it is. (3) Deniability: The messages you send\n" +"do not have digital signatures that are checkable by a third party. Anyone\n" +"can forge messages after a conversation to make them look like they came from\n" +"you. However, during a conversation, your correspondent is assured the\n" +"messages he sees are authentic and unmodified. (4) Perfect forward secrecy:\n" +"If you lose control of your private keys, no previous conversation is\n" +"compromised." +msgstr "" + +#: gnu/packages/messaging.scm:391 +msgid "IRC network bouncer" +msgstr "" + +#: gnu/packages/messaging.scm:392 +msgid "" +"ZNC is an IRC network bouncer or BNC. It can detach the\n" +"client from the actual IRC server, and also from selected channels. Multiple\n" +"clients from different locations can connect to a single ZNC account\n" +"simultaneously and therefore appear under the same nickname on IRC." +msgstr "" + +#: gnu/packages/messaging.scm:414 +msgid "Non-blocking Jabber/XMPP module" +msgstr "" + +#: gnu/packages/messaging.scm:416 +msgid "" +"The goal of this python library is to provide a way for Python\n" +"applications to use Jabber/XMPP networks in a non-blocking way. This library\n" +"was initially a fork of xmpppy, but is using non-blocking sockets." +msgstr "" + +#: gnu/packages/messaging.scm:466 +msgid "Jabber (XMPP) client" +msgstr "" + +#: gnu/packages/messaging.scm:467 +msgid "" +"Gajim is a feature-rich and easy to use Jabber/XMPP client.\n" +"Among its features are: a tabbed chat window and single window modes; support\n" +"for group chat (with Multi-User Chat protocol), invitation, chat to group chat\n" +"transformation; audio and video conferences; file transfer; TLS, GPG and\n" +"end-to-end encryption support; XML console." +msgstr "" + +#: gnu/packages/mpd.scm:63 +msgid "Music Player Daemon client library" +msgstr "" + +#: gnu/packages/mpd.scm:64 +msgid "" +"A stable, documented, asynchronous API library for\n" +"interfacing MPD in the C, C++ & Objective C languages." +msgstr "" + +#: gnu/packages/mpd.scm:124 +msgid "Music Player Daemon" +msgstr "" + +#: gnu/packages/mpd.scm:125 +msgid "" +"Music Player Daemon (MPD) is a flexible, powerful,\n" +"server-side application for playing music. Through plugins and libraries it\n" +"can play a variety of sound files while being controlled by its network\n" +"protocol." +msgstr "" + +#: gnu/packages/mpd.scm:148 +msgid "Music Player Daemon client" +msgstr "" + +#: gnu/packages/mpd.scm:149 +msgid "" +"MPC is a minimalist command line interface to MPD, the music\n" +"player daemon." +msgstr "" + +#: gnu/packages/mpd.scm:172 +msgid "Curses Music Player Daemon client" +msgstr "" + +#: gnu/packages/mpd.scm:173 +msgid "" +"ncmpc is a fully featured MPD client, which runs in a\n" +"terminal using ncurses." +msgstr "" + +#: gnu/packages/mpd.scm:211 +msgid "Featureful ncurses based MPD client inspired by ncmpc" +msgstr "" + +#: gnu/packages/mpd.scm:212 +msgid "" +"Ncmpcpp is an mpd client with a UI very similar to ncmpc,\n" +"but it provides new useful features such as support for regular expressions\n" +"for library searches, extended song format, items filtering, the ability to\n" +"sort playlists, and a local filesystem browser." +msgstr "" + +#: gnu/packages/mpd.scm:235 +msgid "MPD client for track scrobbling" +msgstr "" + +#: gnu/packages/mpd.scm:236 +msgid "" +"mpdscribble is a Music Player Daemon client which submits\n" +"information about tracks being played to a scrobbler, such as Libre.FM." +msgstr "" + +#: gnu/packages/netpbm.scm:146 +msgid "Toolkit for manipulation of images" +msgstr "" + +#: gnu/packages/netpbm.scm:148 +msgid "" +"Netpbm is a toolkit for the manipulation of graphic images, including\n" +"the conversion of images between a variety of different formats.\n" +"There are over 300 separate tools in the package including converters for\n" +"about 100 graphics formats." +msgstr "" + +#: gnu/packages/nettle.scm:50 +msgid "C library for low-level cryptographic functionality" +msgstr "" + +#: gnu/packages/nettle.scm:52 +msgid "" +"GNU Nettle is a low-level cryptographic library. It is designed to\n" +"fit in easily in almost any context. It can be easily included in\n" +"cryptographic toolkits for object-oriented languages or in applications\n" +"themselves." +msgstr "" + +#: gnu/packages/networking.scm:52 +msgid "Teredo IPv6 tunneling software" +msgstr "" + +#: gnu/packages/networking.scm:54 +msgid "" +"Miredo is an implementation (client, relay, server) of the Teredo\n" +"specification, which provides IPv6 Internet connectivity to IPv6 enabled hosts\n" +"residing in IPv4-only networks, even when they are behind a NAT device." +msgstr "" + +#: gnu/packages/networking.scm:76 +msgid "Open bidirectional communication channels from the command line" +msgstr "" + +#: gnu/packages/networking.scm:78 +msgid "" +"socat is a relay for bidirectional data transfer between two independent\n" +"data channels---files, pipes, devices, sockets, etc. It can create\n" +"\"listening\" sockets, named pipes, and pseudo terminals.\n" +"\n" +"socat can be used, for instance, as TCP port forwarder, as a shell interface\n" +"to UNIX sockets, IPv6 relay, for redirecting TCP oriented programs to a serial\n" +"line, to logically connect serial lines on different computers, or to\n" +"establish a relatively secure environment (su and chroot) for running client\n" +"or server shell scripts with network connections." +msgstr "" + +#: gnu/packages/networking.scm:102 +msgid "Library for message-based applications" +msgstr "" + +#: gnu/packages/networking.scm:104 +msgid "" +"The 0MQ lightweight messaging kernel is a library which extends the\n" +"standard socket interfaces with features traditionally provided by specialized\n" +"messaging middle-ware products. 0MQ sockets provide an abstraction of\n" +"asynchronous message queues, multiple messaging patterns, message\n" +"filtering (subscriptions), seamless access to multiple transport protocols and\n" +"more." +msgstr "" + +#: gnu/packages/networking.scm:125 +msgid "Library for Neighbor Discovery Protocol" +msgstr "" + +#: gnu/packages/networking.scm:127 +msgid "" +"libndp contains a library which provides a wrapper for IPv6 Neighbor\n" +"Discovery Protocol. It also provides a tool named ndptool for sending and\n" +"receiving NDP messages." +msgstr "" + +#: gnu/packages/networking.scm:145 +msgid "Display or change Ethernet device settings" +msgstr "" + +#: gnu/packages/networking.scm:147 +msgid "" +"ethtool can be used to query and change settings such as speed,\n" +"auto-negotiation and checksum offload on many network devices, especially\n" +"Ethernet devices." +msgstr "" + +#: gnu/packages/networking.scm:183 +msgid "Text based network interface status monitor" +msgstr "" + +#: gnu/packages/networking.scm:185 +msgid "" +"IFStatus is a simple, easy-to-use program for displaying commonly\n" +"needed/wanted real-time traffic statistics of multiple network\n" +"interfaces, with a simple and efficient view on the command line. It is\n" +"intended as a substitute for the PPPStatus and EthStatus projects." +msgstr "" + +#: gnu/packages/pdf.scm:102 +msgid "PDF rendering library" +msgstr "Biblioteka wyświetlania PDF" + +#: gnu/packages/pdf.scm:104 +msgid "Poppler is a PDF rendering library based on the xpdf-3.0 code base." +msgstr "" + +#: gnu/packages/pdf.scm:113 +msgid "Qt4 frontend for the Poppler PDF rendering library" +msgstr "" + +#: gnu/packages/pdf.scm:146 +msgid "Python bindings for Poppler-Qt4" +msgstr "" + +#: gnu/packages/pdf.scm:148 +msgid "" +"This package provides Python bindings for the Qt4 interface of the\n" +"Poppler PDF rendering library." +msgstr "" + +#: gnu/packages/pdf.scm:195 +msgid "Viewer for PDF files based on the Motif toolkit" +msgstr "" + +#: gnu/packages/pdf.scm:197 +msgid "Xpdf is a viewer for Portable Document Format (PDF) files." +msgstr "" + +#: gnu/packages/pdf.scm:227 +msgid "Comic book support for zathura (libarchive backend)" +msgstr "" + +#: gnu/packages/pdf.scm:228 +msgid "" +"The zathura-cb plugin adds comic book support to zathura\n" +"using libarchive." +msgstr "" + +#: gnu/packages/pdf.scm:258 +msgid "PS support for zathura (libspectre backend)" +msgstr "" + +#: gnu/packages/pdf.scm:259 +msgid "" +"The zathura-ps plugin adds PS support to zathura\n" +"using libspectre." +msgstr "" + +#: gnu/packages/pdf.scm:290 +msgid "DjVu support for zathura (DjVuLibre backend)" +msgstr "" + +#: gnu/packages/pdf.scm:291 +msgid "" +"The zathura-djvu plugin adds DjVu support to zathura\n" +"using the DjVuLibre library." +msgstr "" + +#: gnu/packages/pdf.scm:323 +msgid "PDF support for zathura (poppler backend)" +msgstr "" + +#: gnu/packages/pdf.scm:324 +msgid "" +"The zathura-pdf-poppler plugin adds PDF support to zathura\n" +"by using the poppler rendering engine." +msgstr "" + +#: gnu/packages/pdf.scm:362 +msgid "Lightweight keyboard-driven PDF viewer" +msgstr "" + +#: gnu/packages/pdf.scm:363 +msgid "" +"Zathura is a customizable document viewer. It provides a\n" +"minimalistic interface and an interface that mainly focuses on keyboard\n" +"interaction." +msgstr "" + +#: gnu/packages/pdf.scm:402 +msgid "Tools to work with the PDF file format" +msgstr "" + +#: gnu/packages/pdf.scm:404 +msgid "" +"PoDoFo is a C++ library and set of command-line tools to work with the\n" +"PDF file format. It can parse PDF files and load them into memory, and makes\n" +"it easy to modify them and write the changes to disk. It is primarily useful\n" +"for applications that wish to do lower level manipulation of PDF, such as\n" +"extracting content or merging files." +msgstr "" + +#: gnu/packages/pdf.scm:465 +msgid "Lightweight PDF viewer and toolkit" +msgstr "" + +#: gnu/packages/pdf.scm:467 +msgid "" +"MuPDF is a C library that implements a PDF and XPS parsing and\n" +"rendering engine. It is used primarily to render pages into bitmaps,\n" +"but also provides support for other operations such as searching and\n" +"listing the table of contents and hyperlinks.\n" +"\n" +"The library ships with a rudimentary X11 viewer, and a set of command\n" +"line tools for batch rendering (pdfdraw), rewriting files (pdfclean),\n" +"and examining the file structure (pdfshow)." +msgstr "" + +#: gnu/packages/pdf.scm:507 +msgid "Command-line tools and library for transforming PDF files" +msgstr "" + +#: gnu/packages/pdf.scm:509 +msgid "" +"QPDF is a command-line program that does structural, content-preserving\n" +"transformations on PDF files. It could have been called something like\n" +"pdf-to-pdf. It includes support for merging and splitting PDFs and to\n" +"manipulate the list of pages in a PDF file. It is not a PDF viewer or a\n" +"program capable of converting PDF into other formats." +msgstr "" + +#: gnu/packages/pdf.scm:539 +msgid "Notetaking using a stylus" +msgstr "" + +#: gnu/packages/pdf.scm:541 +msgid "" +"Xournal is an application for notetaking, sketching, keeping a journal\n" +"using a stylus." +msgstr "" + +#: gnu/packages/pem.scm:41 +msgid "Personal expenses manager" +msgstr "" + +#: gnu/packages/pem.scm:43 +msgid "" +"GNU Pem is a simple tool for tracking personal income and\n" +"expenses. It operates from the command line and it stores its data\n" +"in a basic text format in your home directory. It can easily print\n" +"reports of your spending on different expenses via a basic search\n" +"feature." +msgstr "" + +#: gnu/packages/perl.scm:100 +msgid "Implementation of the Perl programming language" +msgstr "" + +#: gnu/packages/perl.scm:102 +msgid "" +"Perl 5 is a highly capable, feature-rich programming language with over\n" +"24 years of development." +msgstr "" + +#: gnu/packages/perl.scm:121 +msgid "Module for merging hierarchies using the C3 algorithm" +msgstr "" + +#: gnu/packages/perl.scm:122 +msgid "" +"This module implements the C3 algorithm, which aims to\n" +"provide a sane method resolution order under multiple inheritance." +msgstr "" + +#: gnu/packages/perl.scm:140 +msgid "Compute differences between two files or lists" +msgstr "" + +#: gnu/packages/perl.scm:141 +msgid "" +"This is a module for computing the difference between two\n" +"files, two strings, or any other two lists of things. It uses an intelligent\n" +"algorithm similar to (or identical to) the one used by the Unix \"diff\"\n" +"program. It is guaranteed to find the *smallest possible* set of\n" +"differences." +msgstr "" + +#: gnu/packages/perl.scm:162 +msgid "Use shorter versions of class names" +msgstr "" + +#: gnu/packages/perl.scm:163 +msgid "" +"The alias module loads the class you specify and exports\n" +"into your namespace a subroutine that returns the class name. You can\n" +"explicitly alias the class to another name or, if you prefer, you can do so\n" +"implicitly." +msgstr "" + +#: gnu/packages/perl.scm:185 +msgid "Configuration files and command line parsing" +msgstr "" + +#: gnu/packages/perl.scm:186 +msgid "" +"AppConfig is a bundle of Perl5 modules for reading\n" +"configuration files and parsing command line arguments." +msgstr "" + +#: gnu/packages/perl.scm:204 +msgid "Perl API to zip files" +msgstr "" + +#: gnu/packages/perl.scm:205 gnu/packages/zip.scm:168 +msgid "" +"The Archive::Zip module allows a Perl program to create,\n" +"manipulate, read, and write Zip archive files." +msgstr "" + +#: gnu/packages/perl.scm:224 gnu/packages/perl.scm:3966 +msgid "Establish an ISA relationship with base classes at compile time" +msgstr "" + +#: gnu/packages/perl.scm:225 +msgid "" +"Allows you to both load one or more modules, while setting\n" +"up inheritance from those modules at the same time. Unless you are using the\n" +"fields pragma, consider this module discouraged in favor of the lighter-weight\n" +"parent." +msgstr "" + +#: gnu/packages/perl.scm:250 +msgid "Execute code after a scope finished compilation" +msgstr "" + +#: gnu/packages/perl.scm:251 +msgid "" +"This module allows you to execute code when perl finished\n" +"compiling the surrounding scope." +msgstr "" + +#: gnu/packages/perl.scm:269 +msgid "Benchmarking with statistical confidence" +msgstr "" + +#: gnu/packages/perl.scm:271 +msgid "" +"The Benchmark::Timer class allows you to time portions of code\n" +"conveniently, as well as benchmark code by allowing timings of repeated\n" +"trials. It is perfect for when you need more precise information about the\n" +"running time of portions of your code than the Benchmark module will give you,\n" +"but don't want to go all out and profile your code." +msgstr "" + +#: gnu/packages/perl.scm:296 +msgid "Bit vector library" +msgstr "" + +#: gnu/packages/perl.scm:297 +msgid "" +"Bit::Vector is an efficient C library which allows you to\n" +"handle bit vectors, sets (of integers), \"big integer arithmetic\" and boolean\n" +"matrices, all of arbitrary sizes. The package also includes an\n" +"object-oriented Perl module for accessing the C library from Perl, and\n" +"optionally features overloaded operators for maximum ease of use. The C\n" +"library can nevertheless be used stand-alone, without Perl." +msgstr "" + +#: gnu/packages/perl.scm:319 +msgid "Boolean support for Perl" +msgstr "" + +#: gnu/packages/perl.scm:320 +msgid "" +"This module provides basic Boolean support, by defining two\n" +"special objects: true and false." +msgstr "" + +#: gnu/packages/perl.scm:341 +msgid "Cache interface for Perl" +msgstr "" + +#: gnu/packages/perl.scm:342 +msgid "" +"The Cache modules are designed to assist a developer in\n" +"persisting data for a specified period of time. Often these modules are used\n" +"in web applications to store data locally to save repeated and redundant\n" +"expensive calls to remote machines or databases. People have also been known\n" +"to use Cache::Cache for its straightforward interface in sharing data between\n" +"runs of an application or invocations of a CGI-style script or simply as an\n" +"easy to use abstraction of the filesystem or shared memory." +msgstr "" + +#: gnu/packages/perl.scm:365 +msgid "Shared memory interprocess cache via mmap" +msgstr "" + +#: gnu/packages/perl.scm:366 +msgid "" +"A shared memory cache through an mmap'ed file. It's core is\n" +"written in C for performance. It uses fcntl locking to ensure multiple\n" +"processes can safely access the cache at the same time. It uses a basic LRU\n" +"algorithm to keep the most used entries in the cache." +msgstr "" + +#: gnu/packages/perl.scm:387 +msgid "Capture STDOUT and STDERR from Perl, XS or external programs" +msgstr "" + +#: gnu/packages/perl.scm:389 +msgid "" +"Capture::Tiny provides a simple, portable way to capture almost anything\n" +"sent to STDOUT or STDERR, regardless of whether it comes from Perl, from XS\n" +"code or from an external program. Optionally, output can be teed so that it\n" +"is captured while being passed through to the original file handles." +msgstr "" + +#: gnu/packages/perl.scm:409 +msgid "Executable comments for Perl" +msgstr "" + +#: gnu/packages/perl.scm:410 +msgid "" +"Carp::Assert is intended for a purpose like the ANSI C\n" +"library assert.h." +msgstr "" + +#: gnu/packages/perl.scm:432 +msgid "Convenience wrappers around Carp::Assert" +msgstr "" + +#: gnu/packages/perl.scm:433 +msgid "" +"Carp::Assert::More is a set of handy assertion functions for\n" +"Perl." +msgstr "" + +#: gnu/packages/perl.scm:453 +msgid "Report errors from a \"clan\" of modules" +msgstr "" + +#: gnu/packages/perl.scm:454 +msgid "" +"This module allows errors from a clan (or family) of modules\n" +"to appear to originate from the caller of the clan. This is necessary in\n" +"cases where the clan modules are not classes derived from each other, and thus\n" +"the Carp.pm module doesn't help." +msgstr "" + +#: gnu/packages/perl.scm:478 +msgid "Automated accessor generation" +msgstr "" + +#: gnu/packages/perl.scm:479 +msgid "" +"This module automagically generates accessors/mutators for\n" +"your class." +msgstr "" + +#: gnu/packages/perl.scm:499 +msgid "Faster, but less expandable, chained accessors" +msgstr "" + +#: gnu/packages/perl.scm:500 +msgid "" +"A chained accessor is one that always returns the object\n" +"when called with parameters (to set), and the value of the field when called\n" +"with no arguments. This module subclasses Class::Accessor in order to provide\n" +"the same mk_accessors interface." +msgstr "" + +#: gnu/packages/perl.scm:526 +msgid "Build groups of accessors" +msgstr "" + +#: gnu/packages/perl.scm:527 +msgid "" +"This class lets you build groups of accessors that will call\n" +"different getters and setters." +msgstr "" + +#: gnu/packages/perl.scm:547 +msgid "Pragma to use the C3 method resolution order algorithm" +msgstr "" + +#: gnu/packages/perl.scm:548 +msgid "" +"This is pragma to change Perl 5's standard method resolution\n" +"order from depth-first left-to-right (a.k.a - pre-order) to the more\n" +"sophisticated C3 method resolution order." +msgstr "" + +#: gnu/packages/perl.scm:572 +msgid "Drop-in replacement for NEXT" +msgstr "" + +#: gnu/packages/perl.scm:573 +msgid "" +"This module is intended as a drop-in replacement for NEXT,\n" +"supporting the same interface, but using Class::C3 to do the hard work." +msgstr "" + +#: gnu/packages/perl.scm:597 +msgid "Load mix-ins or components to your C3-based class" +msgstr "" + +#: gnu/packages/perl.scm:598 +msgid "" +"This module will inject base classes to your module using\n" +"the Class::C3 method resolution order." +msgstr "" + +#: gnu/packages/perl.scm:616 +msgid "Inheritable, overridable class data" +msgstr "" + +#: gnu/packages/perl.scm:617 +msgid "" +"Class::Data::Inheritable is for creating accessor/mutators\n" +"to class data. That is, if you want to store something about your class as a\n" +"whole (instead of about a single object). This data is then inherited by your\n" +"subclasses and can be overridden." +msgstr "" + +#: gnu/packages/perl.scm:638 +msgid "Class for easy date and time manipulation" +msgstr "" + +#: gnu/packages/perl.scm:639 +msgid "" +"This module provides a general-purpose date and datetime\n" +"type for perl." +msgstr "" + +#: gnu/packages/perl.scm:657 +msgid "Utility methods for factory classes" +msgstr "" + +#: gnu/packages/perl.scm:658 +msgid "This module exports methods useful for factory classes." +msgstr "" + +#: gnu/packages/perl.scm:675 +msgid "Get information about a class and its structure" +msgstr "" + +#: gnu/packages/perl.scm:676 +msgid "" +"Class::Inspector allows you to get information about a\n" +"loaded class." +msgstr "" + +#: gnu/packages/perl.scm:704 +msgid "Working (require \"Class::Name\") and more" +msgstr "" + +#: gnu/packages/perl.scm:705 +msgid "" +"\"require EXPR\" only accepts Class/Name.pm style module\n" +"names, not Class::Name. For that, this module provides \"load_class\n" +"'Class::Name'\"." +msgstr "" + +#: gnu/packages/perl.scm:728 +msgid "XS implementation of parts of Class::Load" +msgstr "" + +#: gnu/packages/perl.scm:729 +msgid "" +"This module provides an XS implementation for portions of\n" +"Class::Load." +msgstr "" + +#: gnu/packages/perl.scm:748 +msgid "Create generic methods for OO Perl" +msgstr "" + +#: gnu/packages/perl.scm:749 +msgid "" +"This module solves the problem of having to continually\n" +"write accessor methods for your objects that perform standard tasks." +msgstr "" + +#: gnu/packages/perl.scm:770 +msgid "Moose-like method modifiers" +msgstr "" + +#: gnu/packages/perl.scm:771 +msgid "" +"Class::Method::Modifiers provides three modifiers: 'before',\n" +"'around', and 'after'. 'before' and 'after' are run just before and after the\n" +"method they modify, but can not really affect that original method. 'around'\n" +"is run in place of the original method, with a hook to easily call that\n" +"original method." +msgstr "" + +#: gnu/packages/perl.scm:792 +msgid "Implementation of a singleton class for Perl" +msgstr "" + +#: gnu/packages/perl.scm:793 +msgid "" +"This module implements a Singleton class from which other\n" +"classes can be derived. By itself, the Class::Singleton module does very\n" +"little other than manage the instantiation of a single object." +msgstr "" + +#: gnu/packages/perl.scm:812 +msgid "Minimalist class construction" +msgstr "" + +#: gnu/packages/perl.scm:813 +msgid "" +"This module offers a minimalist class construction kit. It\n" +"uses no non-core modules for any recent Perl." +msgstr "" + +#: gnu/packages/perl.scm:833 +msgid "Unload a class" +msgstr "" + +#: gnu/packages/perl.scm:834 +msgid "" +"Class:Unload unloads a given class by clearing out its\n" +"symbol table and removing it from %INC." +msgstr "" + +#: gnu/packages/perl.scm:852 +msgid "Generate fast XS accessors without runtime compilation" +msgstr "" + +#: gnu/packages/perl.scm:853 +msgid "" +"Class::XSAccessor implements fast read, write, and\n" +"read/write accessors in XS. Additionally, it can provide predicates such as\n" +"\"has_foo()\" for testing whether the attribute \"foo\" is defined in the\n" +"object. It only works with objects that are implemented as ordinary hashes.\n" +"Class::XSAccessor::Array implements the same interface for objects that use\n" +"arrays for their internal representation." +msgstr "" + +#: gnu/packages/perl.scm:873 +msgid "Recursively copy Perl datatypes" +msgstr "" + +#: gnu/packages/perl.scm:875 +msgid "" +"This module provides a clone() method which makes recursive copies of\n" +"nested hash, array, scalar and reference types, including tied variables and\n" +"objects." +msgstr "" + +#: gnu/packages/perl.scm:896 +msgid "Sane defaults for Perl programs" +msgstr "" + +#: gnu/packages/perl.scm:897 +msgid "" +"This module implements some sane defaults for Perl programs,\n" +"as defined by two typical specimens of Perl coders." +msgstr "" + +#: gnu/packages/perl.scm:915 +msgid "Load configuration from different file formats" +msgstr "" + +#: gnu/packages/perl.scm:916 +msgid "" +"Config::Any provides a facility for Perl applications and\n" +"libraries to load configuration data from multiple different file formats. It\n" +"supports XML, YAML, JSON, Apache-style configuration, and Perl code." +msgstr "" + +#: gnu/packages/perl.scm:937 +msgid "Module to implement some AutoConf macros in Perl" +msgstr "" + +#: gnu/packages/perl.scm:938 +msgid "" +"Config::AutoConf is intended to provide the same\n" +"opportunities to Perl developers as GNU Autoconf does for Shell developers." +msgstr "" + +#: gnu/packages/perl.scm:956 +msgid "Generic Config Module" +msgstr "" + +#: gnu/packages/perl.scm:957 +msgid "" +"This module opens a config file and parses its contents for\n" +"you. The format of config files supported by Config::General is inspired by\n" +"the well known Apache config format and is 100% compatible with Apache\n" +"configs, but you can also just use simple name/value pairs in your config\n" +"files. In addition to the capabilities of an Apache config file it supports\n" +"some enhancements such as here-documents, C-style comments, and multiline\n" +"options." +msgstr "" + +#: gnu/packages/perl.scm:983 +msgid "Preserve context during subroutine call" +msgstr "" + +#: gnu/packages/perl.scm:984 +msgid "" +"This module runs code after a subroutine call, preserving\n" +"the context the subroutine would have seen if it were the last statement in\n" +"the caller." +msgstr "" + +#: gnu/packages/perl.scm:1005 +msgid "Verify requirements in a CPAN::Meta object" +msgstr "" + +#: gnu/packages/perl.scm:1006 +msgid "" +"This module verifies if requirements described in a\n" +"CPAN::Meta object are present." +msgstr "" + +#: gnu/packages/perl.scm:1026 +msgid "JSON::XS for Cpanel" +msgstr "" + +#: gnu/packages/perl.scm:1027 gnu/packages/perl.scm:2769 +msgid "" +"This module converts Perl data structures to JSON and vice\n" +"versa." +msgstr "" + +#: gnu/packages/perl.scm:1045 +msgid "Random password generator" +msgstr "Generator losowych haseł" + +#: gnu/packages/perl.scm:1046 +msgid "" +"Crypt::RandPasswd provides three functions that can be used\n" +"to generate random passwords, constructed from words, letters, or characters.\n" +"This code is a Perl implementation of the Automated Password Generator\n" +"standard, like the program described in \"A Random Word Generator For\n" +"Pronounceable Passwords\". This code is a re-engineering of the program\n" +"contained in Appendix A of FIPS Publication 181, \"Standard for Automated\n" +"Password Generator\"." +msgstr "" + +#: gnu/packages/perl.scm:1089 +msgid "Library for genomic analysis" +msgstr "" + +#: gnu/packages/perl.scm:1090 +msgid "" +"Chaolin Zhang's Perl Library (czplib) contains assorted\n" +"functions and data structures for processing and analysing genomic and\n" +"bioinformatics data." +msgstr "" + +#: gnu/packages/perl.scm:1109 +msgid "Pretty printing of data structures" +msgstr "" + +#: gnu/packages/perl.scm:1110 +msgid "" +"This module provide functions that takes a list of values as\n" +"their argument and produces a string as its result. The string contains Perl\n" +"code that, when \"eval\"ed, produces a deep copy of the original arguments." +msgstr "" + +#: gnu/packages/perl.scm:1129 +msgid "Concise data dumper" +msgstr "" + +#: gnu/packages/perl.scm:1130 +msgid "" +"Data::Dumper::Concise provides a dumper with Less\n" +"indentation and newlines plus sub deparsing." +msgstr "" + +#: gnu/packages/perl.scm:1152 +msgid "Parse and validate simple name/value option pairs" +msgstr "" + +#: gnu/packages/perl.scm:1154 +msgid "Data::OptList provides a simple syntax for name/value option pairs." +msgstr "" + +#: gnu/packages/perl.scm:1175 +msgid "Help when paging through sets of results" +msgstr "" + +#: gnu/packages/perl.scm:1176 +msgid "" +"When searching through large amounts of data, it is often\n" +"the case that a result set is returned that is larger than we want to display\n" +"on one page. This results in wanting to page through various pages of data.\n" +"The maths behind this is unfortunately fiddly, hence this module." +msgstr "" + +#: gnu/packages/perl.scm:1198 +msgid "Structured tags datastructures" +msgstr "" + +#: gnu/packages/perl.scm:1200 +msgid "" +"This module is for manipulating data as hierarchical tag/value\n" +"pairs (Structured TAGs or Simple Tree AGgregates). These datastructures can\n" +"be represented as nested arrays, which have the advantage of being native to\n" +"Perl." +msgstr "" + +#: gnu/packages/perl.scm:1227 +msgid "N at a time iteration API" +msgstr "" + +#: gnu/packages/perl.scm:1228 +msgid "" +"This module tries to find middle ground between one at a\n" +"time and all at once processing of data sets. The purpose of this module is\n" +"to avoid the overhead of implementing an iterative api when this isn't\n" +"necessary, without breaking forward compatibility in case that becomes\n" +"necessary later on." +msgstr "" + +#: gnu/packages/perl.scm:1253 +msgid "Dynamic generation of nested combinations of variants" +msgstr "" + +#: gnu/packages/perl.scm:1254 +msgid "" +"Data::Tumbler - Dynamic generation of nested combinations of\n" +"variants." +msgstr "" + +#: gnu/packages/perl.scm:1280 +msgid "Visitor style traversal of Perl data structures" +msgstr "" + +#: gnu/packages/perl.scm:1281 +msgid "" +"This module is a simple visitor implementation for Perl\n" +"values. It has a main dispatcher method, visit, which takes a single perl\n" +"value and then calls the methods appropriate for that value. It can\n" +"recursively map (cloning as necessary) or just traverse most structures, with\n" +"support for per-object behavior, circular structures, visiting tied\n" +"structures, and all ref types (hashes, arrays, scalars, code, globs)." +msgstr "" + +#: gnu/packages/perl.scm:1306 +msgid "Gregorian calendar date calculations" +msgstr "" + +#: gnu/packages/perl.scm:1307 +msgid "" +"This package consists of a Perl module for date calculations\n" +"based on the Gregorian calendar, thereby complying with all relevant norms and\n" +"standards: ISO/R 2015-1971, DIN 1355 and, to some extent, ISO 8601 (where\n" +"applicable)." +msgstr "" + +#: gnu/packages/perl.scm:1331 +msgid "XS wrapper for Date::Calc" +msgstr "" + +#: gnu/packages/perl.scm:1332 +msgid "" +"Date::Calc::XS is an XS wrapper and C library plug-in for\n" +"Date::Calc." +msgstr "" + +#: gnu/packages/perl.scm:1355 +msgid "Date manipulation routines" +msgstr "" + +#: gnu/packages/perl.scm:1356 +msgid "" +"Date::Manip is a series of modules for common date/time\n" +"operations, such as comparing two times, determining a date a given amount of\n" +"time from another, or parsing international times." +msgstr "" + +#: gnu/packages/perl.scm:1383 +msgid "Date and time object for Perl" +msgstr "" + +#: gnu/packages/perl.scm:1384 +msgid "" +"DateTime is a class for the representation of date/time\n" +"combinations. It represents the Gregorian calendar, extended backwards in\n" +"time before its creation (in 1582)." +msgstr "" + +#: gnu/packages/perl.scm:1407 +msgid "DateTime set objects" +msgstr "" + +#: gnu/packages/perl.scm:1408 +msgid "" +"The DateTime::Set module provides a date/time sets\n" +"implementation. It allows, for example, the generation of groups of dates,\n" +"like \"every wednesday\", and then find all the dates matching that pattern,\n" +"within a time range." +msgstr "" + +#: gnu/packages/perl.scm:1431 +msgid "DateTime rfc2445 recurrences" +msgstr "" + +#: gnu/packages/perl.scm:1432 +msgid "" +"This module provides convenience methods that let you easily\n" +"create DateTime::Set objects for RFC 2445 style recurrences." +msgstr "" + +#: gnu/packages/perl.scm:1453 +msgid "DateTime::Set extension for basic recurrences" +msgstr "" + +#: gnu/packages/perl.scm:1454 +msgid "" +"This module provides convenience methods that let you easily\n" +"create DateTime::Set objects for various recurrences, such as \"once a month\"\n" +"or \"every day\". You can also create more complicated recurrences, such as\n" +"\"every Monday, Wednesday and Thursday at 10:00 AM and 2:00 PM\"." +msgstr "" + +#: gnu/packages/perl.scm:1479 +msgid "Create DateTime parser classes and objects" +msgstr "" + +#: gnu/packages/perl.scm:1480 +msgid "" +"DateTime::Format::Builder creates DateTime parsers. Many\n" +"string formats of dates and times are simple and just require a basic regular\n" +"expression to extract the relevant information. Builder provides a simple way\n" +"to do this without writing reams of structural code." +msgstr "" + +#: gnu/packages/perl.scm:1506 +msgid "Parse data/time strings" +msgstr "" + +#: gnu/packages/perl.scm:1507 +msgid "" +"DateTime::Format::Flexible attempts to take any string you\n" +"give it and parse it into a DateTime object." +msgstr "" + +#: gnu/packages/perl.scm:1531 +msgid "Parse and format iCal datetime and duration strings" +msgstr "" + +#: gnu/packages/perl.scm:1532 +msgid "" +"This module understands the ICal date/time and duration\n" +"formats, as defined in RFC 2445. It can be used to parse these formats in\n" +"order to create the appropriate objects." +msgstr "" + +#: gnu/packages/perl.scm:1563 +msgid "Machine-readable date/time with natural parsing" +msgstr "" + +#: gnu/packages/perl.scm:1564 +msgid "" +"DateTime::Format::Natural takes a string with a human\n" +"readable date/time and creates a machine readable one by applying natural\n" +"parsing logic." +msgstr "" + +#: gnu/packages/perl.scm:1588 +msgid "Parse and format strp and strf time patterns" +msgstr "" + +#: gnu/packages/perl.scm:1589 +msgid "" +"This module implements most of `strptime(3)`, the POSIX\n" +"function that is the reverse of `strftime(3)`, for `DateTime`. While\n" +"`strftime` takes a `DateTime` and a pattern and returns a string, `strptime`\n" +"takes a string and a pattern and returns the `DateTime` object associated." +msgstr "" + +#: gnu/packages/perl.scm:1612 +msgid "Localization support for DateTime.pm" +msgstr "" + +#: gnu/packages/perl.scm:1613 +msgid "" +"The DateTime::Locale modules provide localization data for\n" +"the DateTime.pm class." +msgstr "" + +#: gnu/packages/perl.scm:1640 +msgid "Time zone object for Perl" +msgstr "" + +#: gnu/packages/perl.scm:1641 +msgid "" +"This class is the base class for all time zone objects. A\n" +"time zone is represented internally as a set of observances, each of which\n" +"describes the offset from GMT for a given time period. Note that without the\n" +"DateTime module, this module does not do much. It's primary interface is\n" +"through a DateTime object, and most users will not need to directly use\n" +"DateTime::TimeZone methods." +msgstr "" + +#: gnu/packages/perl.scm:1671 +msgid "Parse date/time strings" +msgstr "" + +#: gnu/packages/perl.scm:1672 +msgid "" +"DateTimeX::Easy uses a variety of DateTime::Format packages\n" +"to create DateTime objects, with some custom tweaks to smooth out the rough\n" +"edges (mainly concerning timezone detection and selection)." +msgstr "" + +#: gnu/packages/perl.scm:1693 +msgid "Meatier version of caller" +msgstr "" + +#: gnu/packages/perl.scm:1694 +msgid "Devel::Caller provides meatier version of caller." +msgstr "" + +#: gnu/packages/perl.scm:1711 +msgid "Check that a command is available" +msgstr "" + +#: gnu/packages/perl.scm:1712 +msgid "" +"Devel::CheckBin is a perl module that checks whether a\n" +"particular command is available." +msgstr "" + +#: gnu/packages/perl.scm:1732 +msgid "Provides equivalent of ${^GLOBAL_PHASE} eq 'DESTRUCT' for older perls" +msgstr "" + +#: gnu/packages/perl.scm:1733 +msgid "" +"Devel::GlobalDestruction provides a function returning the\n" +"equivalent of \"$@{^GLOBAL_PHASE@} eq 'DESTRUCT'\" for older perls." +msgstr "" + +#: gnu/packages/perl.scm:1753 +msgid "Alias lexical variables" +msgstr "" + +#: gnu/packages/perl.scm:1754 +msgid "" +"Devel::LexAlias provides the ability to alias a lexical\n" +"variable in a subroutines scope to one of your choosing." +msgstr "" + +#: gnu/packages/perl.scm:1776 +msgid "Introspect overloaded operators" +msgstr "" + +#: gnu/packages/perl.scm:1777 +msgid "" +"Devel::OverloadInfo returns information about overloaded\n" +"operators for a given class (or object), including where in the inheritance\n" +"hierarchy the overloads are declared and where the code implementing it is." +msgstr "" + +#: gnu/packages/perl.scm:1804 +msgid "Partial dumping of data structures" +msgstr "" + +#: gnu/packages/perl.scm:1805 +msgid "" +"This module is a data dumper optimized for logging of\n" +"arbitrary parameters." +msgstr "" + +#: gnu/packages/perl.scm:1823 +msgid "Object representing a stack trace" +msgstr "" + +#: gnu/packages/perl.scm:1824 +msgid "" +"The Devel::StackTrace module contains two classes,\n" +"Devel::StackTrace and Devel::StackTrace::Frame. These objects encapsulate the\n" +"information that can be retrieved via Perl's caller() function, as well as\n" +"providing a simple interface to this data." +msgstr "" + +#: gnu/packages/perl.scm:1846 +msgid "Displays stack trace in HTML" +msgstr "" + +#: gnu/packages/perl.scm:1847 +msgid "" +"Devel::StackTrace::AsHTML adds as_html method to\n" +"Devel::StackTrace which displays the stack trace in beautiful HTML, with code\n" +"snippet context and function parameters. If you call it on an instance of\n" +"Devel::StackTrace::WithLexicals, you even get to see the lexical variables of\n" +"each stack frame." +msgstr "" + +#: gnu/packages/perl.scm:1868 +msgid "Dump symbol names or the symbol table" +msgstr "" + +#: gnu/packages/perl.scm:1869 +msgid "Devel::Symdump provides access to the perl symbol table." +msgstr "" + +#: gnu/packages/perl.scm:1886 +msgid "Keyed-Hashing for Message Authentication" +msgstr "" + +#: gnu/packages/perl.scm:1887 +msgid "" +"The Digest::HMAC module follows the common Digest::\n" +"interface for the RFC 2104 HMAC mechanism." +msgstr "" + +#: gnu/packages/perl.scm:1903 +msgid "Perl implementation of the SHA-1 message digest algorithm" +msgstr "" + +#: gnu/packages/perl.scm:1905 +msgid "" +"This package provides 'Digest::SHA1', an implementation of the NIST\n" +"SHA-1 message digest algorithm for use by Perl programs." +msgstr "" + +#: gnu/packages/perl.scm:1927 +msgid "Declare version conflicts for your dist" +msgstr "" + +#: gnu/packages/perl.scm:1928 +msgid "" +"This module allows you to specify conflicting versions of\n" +"modules separately and deal with them after the module is done installing." +msgstr "" + +#: gnu/packages/perl.scm:1945 +msgid "OO-ish Error/Exception handling for Perl" +msgstr "" + +#: gnu/packages/perl.scm:1946 +msgid "" +"The Error package provides two interfaces. Firstly Error\n" +"provides a procedural interface to exception handling. Secondly Error is a\n" +"base class for errors/exceptions that can either be thrown, for subsequent\n" +"catch, or can simply be recorded." +msgstr "" + +#: gnu/packages/perl.scm:1971 +msgid "Safely and cleanly create closures via string eval" +msgstr "" + +#: gnu/packages/perl.scm:1972 +msgid "" +"String eval is often used for dynamic code generation. For\n" +"instance, Moose uses it heavily, to generate inlined versions of accessors and\n" +"constructors, which speeds code up at runtime by a significant amount. String\n" +"eval is not without its issues however - it's difficult to control the scope\n" +"it's used in (which determines which variables are in scope inside the eval),\n" +"and it's easy to miss compilation errors, since eval catches them and sticks\n" +"them in $@@ instead. This module attempts to solve these problems. It\n" +"provides an eval_closure function, which evals a string in a clean\n" +"environment, other than a fixed list of specified variables. Compilation\n" +"errors are rethrown automatically." +msgstr "" + +#: gnu/packages/perl.scm:2001 +msgid "Allows you to declare real exception classes in Perl" +msgstr "" + +#: gnu/packages/perl.scm:2002 +msgid "" +"Exception::Class allows you to declare exception hierarchies\n" +"in your modules in a \"Java-esque\" manner." +msgstr "" + +#: gnu/packages/perl.scm:2018 +msgid "Lightweight exporting of functions and variables" +msgstr "" + +#: gnu/packages/perl.scm:2020 +msgid "" +"Exporter::Lite is an alternative to Exporter, intended to provide a\n" +"lightweight subset of the most commonly-used functionality. It supports\n" +"import(), @@EXPORT and @@EXPORT_OK and not a whole lot else." +msgstr "" + +#: gnu/packages/perl.scm:2041 +msgid "Exporter with the features of Sub::Exporter but only core dependencies" +msgstr "" + +#: gnu/packages/perl.scm:2042 +msgid "" +"Exporter::Tiny supports many of Sub::Exporter's\n" +"external-facing features including renaming imported functions with the `-as`,\n" +"`-prefix` and `-suffix` options; explicit destinations with the `into` option;\n" +"and alternative installers with the `installler` option. But it's written in\n" +"only about 40% as many lines of code and with zero non-core dependencies." +msgstr "" + +#: gnu/packages/perl.scm:2065 +msgid "Build.PL install path logic made easy" +msgstr "" + +#: gnu/packages/perl.scm:2066 +msgid "" +"This module tries to make install path resolution as easy as\n" +"possible." +msgstr "" + +#: gnu/packages/perl.scm:2084 +msgid "Wrapper for perl's configuration" +msgstr "" + +#: gnu/packages/perl.scm:2085 +msgid "" +"ExtUtils::Config is an abstraction around the %Config hash.\n" +"By itself it is not a particularly interesting module by any measure, however\n" +"it ties together a family of modern toolchain modules." +msgstr "" + +#: gnu/packages/perl.scm:2104 +msgid "Various portability utilities for module builders" +msgstr "" + +#: gnu/packages/perl.scm:2105 +msgid "" +"This module provides various portable helper functions for\n" +"module building modules." +msgstr "" + +#: gnu/packages/perl.scm:2133 +msgid "Watch for changes to files" +msgstr "" + +#: gnu/packages/perl.scm:2134 +msgid "" +"This module provides a class to monitor a directory for\n" +"changes made to any file." +msgstr "" + +#: gnu/packages/perl.scm:2152 +msgid "Recursively copy files and directories" +msgstr "" + +#: gnu/packages/perl.scm:2153 +msgid "" +"This module has 3 functions: one to copy files only, one to\n" +"copy directories only, and one to do either depending on the argument's\n" +"type." +msgstr "" + +#: gnu/packages/perl.scm:2175 +msgid "Alternative interface to File::Find" +msgstr "" + +#: gnu/packages/perl.scm:2176 +msgid "" +"File::Find::Rule is a friendlier interface to File::Find.\n" +"It allows you to build rules which specify the desired files and\n" +"directories." +msgstr "" + +#: gnu/packages/perl.scm:2199 +msgid "Common rules for searching for Perl things" +msgstr "" + +#: gnu/packages/perl.scm:2200 +msgid "" +"File::Find::Rule::Perl provides methods for finding various\n" +"types Perl-related files, or replicating search queries run on a distribution\n" +"in various parts of the CPAN ecosystem." +msgstr "" + +#: gnu/packages/perl.scm:2223 +msgid "Find your home and other directories on any platform" +msgstr "" + +#: gnu/packages/perl.scm:2224 +msgid "" +"File::HomeDir is a module for locating the directories that\n" +"are \"owned\" by a user (typically your user) and to solve the various issues\n" +"that arise trying to find them consistently across a wide variety of\n" +"platforms." +msgstr "" + +#: gnu/packages/perl.scm:2251 +msgid "" +"Perl extension for crawling directory trees and compiling\n" +"lists of files" +msgstr "" + +#: gnu/packages/perl.scm:2254 +msgid "" +"The File::List module crawls the directory tree starting at the\n" +"provided base directory and can return files (and/or directories if desired)\n" +"matching a regular expression." +msgstr "" + +#: gnu/packages/perl.scm:2273 +msgid "Remove files and directories in Perl" +msgstr "" + +#: gnu/packages/perl.scm:2274 +msgid "" +"File::Remove::remove removes files and directories. It acts\n" +"like /bin/rm, for the most part. Although \"unlink\" can be given a list of\n" +"files, it will not remove directories; this module remedies that. It also\n" +"accepts wildcards, * and ?, as arguments for file names." +msgstr "" + +#: gnu/packages/perl.scm:2298 +msgid "Locate per-dist and per-module shared files" +msgstr "" + +#: gnu/packages/perl.scm:2299 +msgid "" +"The intent of File::ShareDir is to provide a companion to\n" +"Class::Inspector and File::HomeDir. Quite often you want or need your Perl\n" +"module to have access to a large amount of read-only data that is stored on\n" +"the file-system at run-time. Once the files have been installed to the\n" +"correct directory, you can use File::ShareDir to find your files again after\n" +"the installation." +msgstr "" + +#: gnu/packages/perl.scm:2321 +msgid "Install shared files" +msgstr "" + +#: gnu/packages/perl.scm:2322 +msgid "" +"File::ShareDir::Install allows you to install read-only data\n" +"files from a distribution. It is a companion module to File::ShareDir, which\n" +"allows you to locate these files after installation." +msgstr "" + +#: gnu/packages/perl.scm:2341 +msgid "Reading/Writing/Modifying of complete files" +msgstr "" + +#: gnu/packages/perl.scm:2342 +msgid "" +"File::Slurp provides subroutines to read or write entire\n" +"files with a simple call. It also has a subroutine for reading the list of\n" +"file names in a directory." +msgstr "" + +#: gnu/packages/perl.scm:2363 +msgid "Return name and handle of a temporary file safely" +msgstr "" + +#: gnu/packages/perl.scm:2364 +msgid "" +"File::Temp can be used to create and open temporary files in\n" +"a safe way." +msgstr "" + +#: gnu/packages/perl.scm:2381 +msgid "Portable implementation of the `which' utility" +msgstr "" + +#: gnu/packages/perl.scm:2383 +msgid "" +"File::Which was created to be able to get the paths to executable\n" +"programs on systems under which the `which' program wasn't implemented in the\n" +"shell." +msgstr "" + +#: gnu/packages/perl.scm:2410 +msgid "Getopt::Long, but simpler and more powerful" +msgstr "" + +#: gnu/packages/perl.scm:2411 +msgid "" +"Getopt::Long::Descriptive is yet another Getopt library.\n" +"It's built atop Getopt::Long, and gets a lot of its features, but tries to\n" +"avoid making you think about its huge array of options. It also provides\n" +"usage (help) messages, data validation, and a few other useful features." +msgstr "" + +#: gnu/packages/perl.scm:2429 +msgid "Table-driven argument parsing for Perl" +msgstr "" + +#: gnu/packages/perl.scm:2431 +msgid "" +"Getopt::Tabular is a Perl 5 module for table-driven argument parsing,\n" +"vaguely inspired by John Ousterhout's Tk_ParseArgv." +msgstr "" + +#: gnu/packages/perl.scm:2451 +msgid "Merge arbitrarily deep hashes into a single hash" +msgstr "" + +#: gnu/packages/perl.scm:2452 +msgid "" +"Hash::Merge merges two arbitrarily deep hashes into a single\n" +"hash. That is, at any level, it will add non-conflicting key-value pairs from\n" +"one hash to the other, and follows a set of specific rules when there are key\n" +"value conflicts. The hash is followed recursively, so that deeply nested\n" +"hashes that are at the same level will be merged when the parent hashes are\n" +"merged." +msgstr "" + +#: gnu/packages/perl.scm:2474 +msgid "Store multiple values per key" +msgstr "" + +#: gnu/packages/perl.scm:2475 +msgid "" +"Hash::MultiValue is an object (and a plain hash reference)\n" +"that may contain multiple values per key, inspired by MultiDict of WebOb." +msgstr "" + +#: gnu/packages/perl.scm:2495 +msgid "Import packages into other packages" +msgstr "" + +#: gnu/packages/perl.scm:2496 +msgid "" +"Writing exporters is a pain. Some use Exporter, some use\n" +"Sub::Exporter, some use Moose::Exporter, some use Exporter::Declare ... and\n" +"some things are pragmas. Exporting on someone else's behalf is harder. The\n" +"exporters don't provide a consistent API for this, and pragmas need to have\n" +"their import method called directly, since they effect the current unit of\n" +"compilation. Import::Into provides global methods to make this painless." +msgstr "" + +#: gnu/packages/perl.scm:2518 +msgid "Use modules in inc/ if newer than installed" +msgstr "" + +#: gnu/packages/perl.scm:2519 +msgid "" +"The inc::latest module helps bootstrap configure-time\n" +"dependencies for CPAN distributions. These dependencies get bundled into the\n" +"inc directory within a distribution and are used by Makefile.PL or Build.PL." +msgstr "" + +#: gnu/packages/perl.scm:2538 +msgid "Utilities for interactive I/O" +msgstr "" + +#: gnu/packages/perl.scm:2539 +msgid "" +"This module provides three utility subroutines that make it\n" +"easier to develop interactive applications: is_interactive(), interactive(),\n" +"and busy()." +msgstr "" + +#: gnu/packages/perl.scm:2558 +msgid "Emulate file interface for in-core strings" +msgstr "" + +#: gnu/packages/perl.scm:2559 +msgid "" +"IO::String is an IO::File (and IO::Handle) compatible class\n" +"that reads or writes data from in-core strings." +msgstr "" + +#: gnu/packages/perl.scm:2577 +msgid "IO:: interface for reading/writing an array of lines" +msgstr "" + +#: gnu/packages/perl.scm:2578 +msgid "" +"This toolkit primarily provides modules for performing both\n" +"traditional and object-oriented i/o) on things *other* than normal\n" +"filehandles; in particular, IO::Scalar, IO::ScalarArray, and IO::Lines." +msgstr "" + +#: gnu/packages/perl.scm:2596 +msgid "Perl interface to pseudo ttys" +msgstr "" + +#: gnu/packages/perl.scm:2598 +msgid "" +"This package provides the 'IO::Pty' and 'IO::Tty' Perl interfaces to\n" +"pseudo ttys." +msgstr "" + +#: gnu/packages/perl.scm:2626 +msgid "Run system() and background procs w/ piping, redirs, ptys" +msgstr "" + +#: gnu/packages/perl.scm:2627 +msgid "" +"IPC::Run allows you run and interact with child processes\n" +"using files, pipes, and pseudo-ttys. Both system()-style and scripted usages\n" +"are supported and may be mixed. Likewise, functional and OO API styles are\n" +"both supported and may be mixed." +msgstr "" + +#: gnu/packages/perl.scm:2645 +msgid "Run a subprocess with input/output redirection" +msgstr "" + +#: gnu/packages/perl.scm:2647 +msgid "" +"The IPC::Run3 module allows you to run a subprocess and redirect stdin,\n" +"stdout, and/or stderr to files and perl data structures. It aims to satisfy\n" +"99% of the need for using system, qx, and open3 with a simple, extremely\n" +"Perlish API and none of the bloat and rarely used features of IPC::Run." +msgstr "" + +#: gnu/packages/perl.scm:2671 +msgid "Lightweight interface to shared memory" +msgstr "" + +#: gnu/packages/perl.scm:2672 +msgid "" +"IPC::ShareLite provides a simple interface to shared memory,\n" +"allowing data to be efficiently communicated between processes." +msgstr "" + +#: gnu/packages/perl.scm:2692 +msgid "JSON encoder/decoder for Perl" +msgstr "" + +#: gnu/packages/perl.scm:2693 +msgid "" +"This module converts Perl data structures to JSON and vice\n" +"versa using either JSON::XS or JSON::PP." +msgstr "" + +#: gnu/packages/perl.scm:2718 +msgid "Wrapper for Perl JSON classes" +msgstr "" + +#: gnu/packages/perl.scm:2720 +msgid "" +"This module tries to provide a coherent API to bring together the\n" +"various JSON modules currently on CPAN. This module will allow you to code to\n" +"any JSON API and have it work regardless of which JSON module is actually\n" +"installed." +msgstr "" + +#: gnu/packages/perl.scm:2744 +msgid "Cpanel::JSON::XS with fallback" +msgstr "" + +#: gnu/packages/perl.scm:2745 +msgid "" +"This module first checks to see if either Cpanel::JSON::XS\n" +"or JSON::XS is already loaded, in which case it uses that module. Otherwise\n" +"it tries to load Cpanel::JSON::XS, then JSON::XS, then JSON::PP in order, and\n" +"either uses the first module it finds or throws an error." +msgstr "" + +#: gnu/packages/perl.scm:2768 +msgid "JSON serialising/deserialising for Perl" +msgstr "" + +#: gnu/packages/perl.scm:2792 +msgid "Combination of List::Util and List::MoreUtils" +msgstr "" + +#: gnu/packages/perl.scm:2793 +msgid "" +"This module exports all of the functions that either\n" +"List::Util or List::MoreUtils defines, with preference to List::Util." +msgstr "" + +#: gnu/packages/perl.scm:2817 +msgid "Provide the stuff missing in List::Util" +msgstr "" + +#: gnu/packages/perl.scm:2818 +msgid "" +"List::MoreUtils provides some trivial but commonly needed\n" +"functionality on lists which is not going to go into List::Util." +msgstr "" + +#: gnu/packages/perl.scm:2836 +msgid "Expiry plug-in for Memoize that adds LRU cache expiration" +msgstr "" + +#: gnu/packages/perl.scm:2837 +msgid "" +"This module implements an expiry policy for Memoize that\n" +"follows LRU semantics, that is, the last n results, where n is specified as\n" +"the argument to the CACHESIZE parameter, will be cached." +msgstr "" + +#: gnu/packages/perl.scm:2856 +msgid "Definition of MIME types" +msgstr "Definicja typów MIME" + +#: gnu/packages/perl.scm:2857 +msgid "" +"This module provides a list of known mime-types, combined\n" +"from various sources. For instance, it contains all IANA types and the\n" +"knowledge of Apache." +msgstr "" + +#: gnu/packages/perl.scm:2886 +msgid "Tiny replacement for Module::Build" +msgstr "" + +#: gnu/packages/perl.scm:2887 +msgid "" +"Many Perl distributions use a Build.PL file instead of a\n" +"Makefile.PL file to drive distribution configuration, build, test and\n" +"installation. Traditionally, Build.PL uses Module::Build as the underlying\n" +"build system. This module provides a simple, lightweight, drop-in\n" +"replacement. Whereas Module::Build has over 6,700 lines of code; this module\n" +"has less than 120, yet supports the features needed by most distributions." +msgstr "" + +#: gnu/packages/perl.scm:2909 +msgid "Find and use installed modules in a (sub)category" +msgstr "" + +#: gnu/packages/perl.scm:2910 +msgid "" +"Module::Find lets you find and use modules in categories.\n" +"This can be useful for auto-detecting driver or plugin modules. You can\n" +"differentiate between looking in the category itself or in all\n" +"subcategories." +msgstr "" + +#: gnu/packages/perl.scm:2936 +msgid "Loads alternate underlying implementations for a module" +msgstr "" + +#: gnu/packages/perl.scm:2937 +msgid "" +"This module abstracts out the process of choosing one of\n" +"several underlying implementations for a module. This can be used to provide\n" +"XS and pure Perl implementations of a module, or it could be used to load an\n" +"implementation for a given OS or any other case of needing to provide multiple\n" +"implementations." +msgstr "" + +#: gnu/packages/perl.scm:2975 +msgid "Standalone, extensible Perl module installer" +msgstr "" + +#: gnu/packages/perl.scm:2976 +msgid "" +"Module::Install is a package for writing installers for\n" +"CPAN (or CPAN-like) distributions that are clean, simple, minimalist, act in a\n" +"strictly correct manner with ExtUtils::MakeMaker, and will run on any Perl\n" +"installation version 5.005 or newer." +msgstr "" + +#: gnu/packages/perl.scm:2996 +msgid "Perl runtime module handling" +msgstr "" + +#: gnu/packages/perl.scm:2997 +msgid "" +"The functions exported by this module deal with runtime\n" +"handling of Perl modules, which are normally handled at compile time." +msgstr "" + +#: gnu/packages/perl.scm:3018 +msgid "Provide information on conflicts for Module::Runtime" +msgstr "" + +#: gnu/packages/perl.scm:3019 +msgid "" +"This module provides conflicts checking for Module::Runtime,\n" +"which had a recent release that broke some versions of Moose. It is called\n" +"from Moose::Conflicts and moose-outdated." +msgstr "" + +#: gnu/packages/perl.scm:3040 +msgid "Recursively scan Perl code for dependencies" +msgstr "" + +#: gnu/packages/perl.scm:3041 +msgid "" +"Module::ScanDeps is a module to recursively scan Perl\n" +"programs for dependencies." +msgstr "" + +#: gnu/packages/perl.scm:3061 +msgid "Module name tools and transformations" +msgstr "" + +#: gnu/packages/perl.scm:3062 +msgid "" +"This module provides a few useful functions for manipulating\n" +"module names. Its main aim is to centralise some of the functions commonly\n" +"used by modules that manipulate other modules in some way, like converting\n" +"module names to relative paths." +msgstr "" + +#: gnu/packages/perl.scm:3092 +msgid "Minimalist Object Orientation (with Moose compatibility)" +msgstr "" + +#: gnu/packages/perl.scm:3093 +msgid "" +"Moo is an extremely light-weight Object Orientation system.\n" +"It allows one to concisely define objects and roles with a convenient syntax\n" +"that avoids the details of Perl's object system. Moo contains a subset of\n" +"Moose and is optimised for rapid startup." +msgstr "" + +#: gnu/packages/perl.scm:3169 +msgid "Postmodern object system for Perl 5" +msgstr "" + +#: gnu/packages/perl.scm:3171 +msgid "" +"Moose is a complete object system for Perl 5. It provides keywords for\n" +"attribute declaration, object construction, inheritance, and maybe more. With\n" +"Moose, you define your class declaratively, without needing to know about\n" +"blessed hashrefs, accessor methods, and so on. You can concentrate on the\n" +"logical structure of your classes, focusing on \"what\" rather than \"how\".\n" +"A class definition with Moose reads like a list of very concise English\n" +"sentences." +msgstr "" + +#: gnu/packages/perl.scm:3199 +msgid "Emulate Class::Accessor::Fast behavior using Moose attributes" +msgstr "" + +#: gnu/packages/perl.scm:3200 +msgid "" +"This module attempts to emulate the behavior of\n" +"Class::Accessor::Fast as accurately as possible using the Moose attribute\n" +"system. The public API of Class::Accessor::Fast is wholly supported, but the\n" +"private methods are not." +msgstr "" + +#: gnu/packages/perl.scm:3231 +msgid "Moose role for processing command line options" +msgstr "" + +#: gnu/packages/perl.scm:3232 +msgid "" +"This is a Moose role which provides an alternate constructor\n" +"for creating objects using parameters passed in from the command line." +msgstr "" + +#: gnu/packages/perl.scm:3253 +msgid "Mark overload code symbols as methods" +msgstr "" + +#: gnu/packages/perl.scm:3254 +msgid "" +"MooseX::MarkAsMethods allows one to easily mark certain\n" +"functions as Moose methods. This will allow other packages such as\n" +"namespace::autoclean to operate without blowing away your overloads. After\n" +"using MooseX::MarkAsMethods your overloads will be recognized by Class::MOP as\n" +"being methods, and class extension as well as composition from roles with\n" +"overloads will \"just work\"." +msgstr "" + +#: gnu/packages/perl.scm:3284 +msgid "Code attribute introspection" +msgstr "" + +#: gnu/packages/perl.scm:3285 +msgid "" +"This module allows code attributes of methods to be\n" +"introspected using Moose meta method objects." +msgstr "" + +#: gnu/packages/perl.scm:3311 +msgid "Subclassing of non-Moose classes" +msgstr "" + +#: gnu/packages/perl.scm:3312 +msgid "" +"MooseX::NonMoose allows for easily subclassing non-Moose\n" +"classes with Moose, taking care of the details connected with doing this, such\n" +"as setting up proper inheritance from Moose::Object and installing (and\n" +"inlining, at make_immutable time) a constructor that makes sure things like\n" +"BUILD methods are called. It tries to be as non-intrusive as possible." +msgstr "" + +#: gnu/packages/perl.scm:3341 +msgid "Extension of Params::Validate using Moose's types" +msgstr "" + +#: gnu/packages/perl.scm:3342 +msgid "" +"This module fills a gap in Moose by adding method parameter\n" +"validation to Moose." +msgstr "" + +#: gnu/packages/perl.scm:3363 +msgid "Apply roles to a related Perl class" +msgstr "" + +#: gnu/packages/perl.scm:3364 +msgid "" +"This module applies roles to make a subclass instead of\n" +"manually setting up a subclass." +msgstr "" + +#: gnu/packages/perl.scm:3390 +msgid "Moose roles with composition parameters" +msgstr "" + +#: gnu/packages/perl.scm:3391 +msgid "" +"Because Moose roles serve many different masters, they\n" +"usually provide only the least common denominator of functionality. To\n" +"empower roles further, more configurability than -alias and -excludes is\n" +"required. Perhaps your role needs to know which method to call when it is\n" +"done processing, or what default value to use for its url attribute.\n" +"Parameterized roles offer a solution to these (and other) kinds of problems." +msgstr "" + +#: gnu/packages/perl.scm:3417 +msgid "Roles which support overloading" +msgstr "" + +#: gnu/packages/perl.scm:3418 +msgid "" +"MooseX::Role::WithOverloading allows you to write a\n" +"Moose::Role which defines overloaded operators and allows those overload\n" +"methods to be composed into the classes/roles/instances it's compiled to,\n" +"where plain Moose::Roles would lose the overloading." +msgstr "" + +#: gnu/packages/perl.scm:3440 +msgid "Name your accessors foo() and set_foo()" +msgstr "" + +#: gnu/packages/perl.scm:3441 +msgid "" +"This module does not provide any methods. Simply loading it\n" +"changes the default naming policy for the loading class so that accessors are\n" +"separated into get and set methods. The get methods have the same name as the\n" +"accessor, while set methods are prefixed with \"_set_\"." +msgstr "" + +#: gnu/packages/perl.scm:3467 +msgid "Strict object constructors for Moose" +msgstr "" + +#: gnu/packages/perl.scm:3468 +msgid "" +"Simply loading this module makes your constructors\n" +"\"strict\". If your constructor is called with an attribute init argument\n" +"that your class does not declare, then it calls Moose->throw_error()." +msgstr "" + +#: gnu/packages/perl.scm:3496 +msgid "Trait loading and resolution for Moose" +msgstr "" + +#: gnu/packages/perl.scm:3497 +msgid "" +"Adds support on top of MooseX::Traits for class precedence\n" +"search for traits and some extra attributes." +msgstr "" + +#: gnu/packages/perl.scm:3522 +msgid "Organise your Moose types in libraries" +msgstr "" + +#: gnu/packages/perl.scm:3523 +msgid "" +"This package lets you declare types using short names, but\n" +"behind the scenes it namespaces all your type declarations, effectively\n" +"prevent name clashes between packages." +msgstr "" + +#: gnu/packages/perl.scm:3554 +msgid "DateTime related constraints and coercions for Moose" +msgstr "" + +#: gnu/packages/perl.scm:3555 +msgid "" +"This module packages several Moose::Util::TypeConstraints\n" +"with coercions, designed to work with the DateTime suite of objects." +msgstr "" + +#: gnu/packages/perl.scm:3587 +msgid "Extensions to MooseX::Types::DateTime" +msgstr "" + +#: gnu/packages/perl.scm:3588 +msgid "" +"This module builds on MooseX::Types::DateTime to add\n" +"additional custom types and coercions. Since it builds on an existing type,\n" +"all coercions and constraints are inherited." +msgstr "" + +#: gnu/packages/perl.scm:3617 +msgid "ClassName type constraints for Moose" +msgstr "" + +#: gnu/packages/perl.scm:3618 +msgid "" +"MooseX::Types::LoadableClass provides a ClassName type\n" +"constraint with coercion to load the class." +msgstr "" + +#: gnu/packages/perl.scm:3642 +msgid "Moosish types and type builder" +msgstr "" + +#: gnu/packages/perl.scm:3643 +msgid "" +"MooX::Types::MooseLike provides a possibility to build your\n" +"own set of Moose-like types. These custom types can then be used to describe\n" +"fields in Moo-based classes." +msgstr "" + +#: gnu/packages/perl.scm:3662 +msgid "MRO interface compatibility for Perls < 5.9.5" +msgstr "" + +#: gnu/packages/perl.scm:3663 +msgid "" +"The \"mro\" namespace provides several utilities for dealing\n" +"with method resolution order and method caching in general in Perl 5.9.5 and\n" +"higher. This module provides those interfaces for earlier versions of\n" +"Perl (back to 5.6.0)." +msgstr "" + +#: gnu/packages/perl.scm:3689 +msgid "Keep imports out of your namespace" +msgstr "" + +#: gnu/packages/perl.scm:3690 +msgid "" +"The namespace::autoclean pragma will remove all imported\n" +"symbols at the end of the current package's compile cycle. Functions called\n" +"in the package itself will still be bound by their name, but they won't show\n" +"up as methods on your class or instances. It is very similar to\n" +"namespace::clean, except it will clean all imported functions, no matter if\n" +"you imported them before or after you used the pragma. It will also not touch\n" +"anything that looks like a method." +msgstr "" + +#: gnu/packages/perl.scm:3716 +msgid "Keep imports and functions out of your namespace" +msgstr "" + +#: gnu/packages/perl.scm:3717 +msgid "" +"The namespace::clean pragma will remove all previously\n" +"declared or imported symbols at the end of the current package's compile\n" +"cycle. Functions called in the package itself will still be bound by their\n" +"name, but they won't show up as methods on your class or instances." +msgstr "" + +#: gnu/packages/perl.scm:3737 +msgid "Numeric comparisons" +msgstr "" + +#: gnu/packages/perl.scm:3738 +msgid "" +"Number::Compare compiles a simple comparison to an anonymous\n" +"subroutine, which you can call with a value to be tested against." +msgstr "" + +#: gnu/packages/perl.scm:3756 +msgid "Generate cryptographic signatures for objects" +msgstr "" + +#: gnu/packages/perl.scm:3757 +msgid "" +"Object::Signature is an abstract base class that you can\n" +"inherit from in order to allow your objects to generate unique cryptographic\n" +"signatures." +msgstr "" + +#: gnu/packages/perl.scm:3779 +msgid "Anonymous packages" +msgstr "" + +#: gnu/packages/perl.scm:3780 +msgid "" +"This module allows for anonymous packages that are\n" +"independent of the main namespace and only available through an object\n" +"instance, not by name." +msgstr "" + +#: gnu/packages/perl.scm:3808 +msgid "Manage deprecation warnings for your distribution" +msgstr "" + +#: gnu/packages/perl.scm:3809 +msgid "" +"This module allows you to manage a set of deprecations for\n" +"one or more modules." +msgstr "" + +#: gnu/packages/perl.scm:3836 +msgid "Routines for manipulating stashes" +msgstr "" + +#: gnu/packages/perl.scm:3837 +msgid "" +"Manipulating stashes (Perl's symbol tables) is occasionally\n" +"necessary, but incredibly messy, and easy to get wrong. This module hides all\n" +"of that behind a simple API." +msgstr "" + +#: gnu/packages/perl.scm:3860 +msgid "Faster implementation of the Package::Stash API" +msgstr "" + +#: gnu/packages/perl.scm:3861 +msgid "" +"This is a backend for Package::Stash, which provides the\n" +"functionality in a way that's less buggy and much faster. It will be used by\n" +"default if it's installed, and should be preferred in all environments with a\n" +"compiler." +msgstr "" + +#: gnu/packages/perl.scm:3881 +msgid "Play with other peoples' lexical variables" +msgstr "" + +#: gnu/packages/perl.scm:3882 +msgid "" +"PadWalker is a module which allows you to inspect (and even\n" +"change) lexical variables in any subroutine which called you. It will only\n" +"show those variables which are in scope at the point of the call. PadWalker\n" +"is particularly useful for debugging." +msgstr "" + +#: gnu/packages/perl.scm:3903 +msgid "Simple, compact and correct param-checking functions" +msgstr "" + +#: gnu/packages/perl.scm:3905 +msgid "" +"Params::Util provides a basic set of importable functions that makes\n" +"checking parameters easier." +msgstr "" + +#: gnu/packages/perl.scm:3928 +msgid "Validate method/function parameters" +msgstr "" + +#: gnu/packages/perl.scm:3929 +msgid "" +"The Params::Validate module allows you to validate method or\n" +"function call parameters to an arbitrary level of specificity." +msgstr "" + +#: gnu/packages/perl.scm:3947 +msgid "Create and manipulate PAR distributions" +msgstr "" + +#: gnu/packages/perl.scm:3948 +msgid "" +"PAR::Dist is a toolkit to create and manipulate PAR\n" +"distributions." +msgstr "" + +#: gnu/packages/perl.scm:3967 +msgid "" +"Allows you to both load one or more modules, while setting\n" +"up inheritance from those modules at the same time." +msgstr "" + +#: gnu/packages/perl.scm:3985 +msgid "Path specification manipulation" +msgstr "" + +#: gnu/packages/perl.scm:3986 +msgid "" +"Path::Class is a module for manipulation of file and\n" +"directory specifications in a cross-platform manner." +msgstr "" + +#: gnu/packages/perl.scm:4006 +msgid "Check for comprehensive documentation of a module" +msgstr "" + +#: gnu/packages/perl.scm:4007 +msgid "" +"This module provides a mechanism for determining if the pod\n" +"for a given module is comprehensive." +msgstr "" + +#: gnu/packages/perl.scm:4024 +msgid "Parsing library for text in Pod format" +msgstr "" + +#: gnu/packages/perl.scm:4025 +msgid "" +"Pod::Simple is a Perl library for parsing text in\n" +"the Pod (plain old documentation) markup language that is typically\n" +"used for writing documentation for Perl and for Perl modules." +msgstr "" + +#: gnu/packages/perl.scm:4045 +msgid "GNU C library compatible strftime for loggers and servers" +msgstr "" + +#: gnu/packages/perl.scm:4046 +msgid "" +"POSIX::strftime::Compiler provides GNU C library compatible\n" +"strftime(3). But this module is not affected by the system locale. This\n" +"feature is useful when you want to write loggers, servers, and portable\n" +"applications." +msgstr "" + +#: gnu/packages/perl.scm:4064 +msgid "Information about the currently running perl" +msgstr "" + +#: gnu/packages/perl.scm:4066 +msgid "" +"Probe::Perl provides methods for obtaining information about the\n" +"currently running perl interpreter. It originally began life as code in the\n" +"Module::Build project, but has been externalized here for general use." +msgstr "" + +#: gnu/packages/perl.scm:4087 +msgid "Create read-only scalars, arrays, hashes" +msgstr "" + +#: gnu/packages/perl.scm:4088 +msgid "" +"This module provides a facility for creating non-modifiable\n" +"variables in Perl. This is useful for configuration files, headers, etc. It\n" +"can also be useful as a development and debugging tool for catching updates to\n" +"variables that should not be changed." +msgstr "" + +#: gnu/packages/perl.scm:4106 +msgid "Provide commonly requested regular expressions" +msgstr "" + +#: gnu/packages/perl.scm:4108 +msgid "" +"This module exports a single hash (`%RE') that stores or generates\n" +"commonly needed regular expressions. Patterns currently provided include:\n" +"balanced parentheses and brackets, delimited text (with escapes), integers and\n" +"floating-point numbers in any base (up to 36), comments in 44 languages,\n" +"offensive language, lists of any pattern, IPv4 addresses, URIs, and Zip\n" +"codes." +msgstr "" + +#: gnu/packages/perl.scm:4138 +msgid "Roles, as a slice of Moose" +msgstr "" + +#: gnu/packages/perl.scm:4139 +msgid "Role::Tiny is a minimalist role composition tool." +msgstr "" + +#: gnu/packages/perl.scm:4156 +msgid "Call isa, can, does, and DOES safely" +msgstr "" + +#: gnu/packages/perl.scm:4157 +msgid "" +"This module allows you to call isa, can, does, and DOES\n" +"safely on things that may not be objects." +msgstr "" + +#: gnu/packages/perl.scm:4175 +msgid "Lexically-scoped resource management" +msgstr "" + +#: gnu/packages/perl.scm:4176 +msgid "" +"This module provides a convenient way to perform cleanup or\n" +"other forms of resource management at the end of a scope. It is particularly\n" +"useful when dealing with exceptions: the Scope::Guard constructor takes a\n" +"reference to a subroutine that is guaranteed to be called even if the thread\n" +"of execution is aborted prematurely. This effectively allows lexically-scoped\n" +"\"promises\" to be made that are automatically honoured by perl's garbage\n" +"collector." +msgstr "" + +#: gnu/packages/perl.scm:4199 +msgid "Infinite sets" +msgstr "" + +#: gnu/packages/perl.scm:4200 +msgid "Set::Infinite is a set theory module for infinite sets." +msgstr "" + +#: gnu/packages/perl.scm:4220 +msgid "Unordered collections of Perl Objects" +msgstr "" + +#: gnu/packages/perl.scm:4221 +msgid "" +"Set::Object provides efficient sets, unordered collections\n" +"of Perl objects without duplicates for scalars and references." +msgstr "" + +#: gnu/packages/perl.scm:4239 +msgid "Set operations for Perl" +msgstr "" + +#: gnu/packages/perl.scm:4240 +msgid "" +"The first priority of Set::Scalar is to be a convenient\n" +"interface to sets (as in: unordered collections of Perl scalars). While not\n" +"designed to be slow or big, neither has it been designed to be fast or\n" +"compact." +msgstr "" + +#: gnu/packages/perl.scm:4260 +msgid "Spiffy Perl Interface Framework For You" +msgstr "" + +#: gnu/packages/perl.scm:4261 +msgid "" +"Spiffy is a framework and methodology for doing object\n" +"oriented (OO) programming in Perl. Spiffy combines the best parts of\n" +"Exporter.pm, base.pm, mixin.pm and SUPER.pm into one magic foundation class.\n" +"It attempts to fix all the nits and warts of traditional Perl OO, in a clean,\n" +"straightforward and (perhaps someday) standard way. Spiffy borrows ideas from\n" +"other OO languages like Python, Ruby, Java and Perl 6." +msgstr "" + +#: gnu/packages/perl.scm:4283 +msgid "Temporary buffer to save bytes" +msgstr "" + +#: gnu/packages/perl.scm:4284 +msgid "" +"Stream::Buffered is a buffer class to store arbitrary length\n" +"of byte strings and then get a seekable filehandle once everything is\n" +"buffered. It uses PerlIO and/or temporary file to save the buffer depending\n" +"on the length of the size." +msgstr "" + +#: gnu/packages/perl.scm:4304 +msgid "Turn on strict and make all warnings fatal" +msgstr "" + +#: gnu/packages/perl.scm:4305 +msgid "" +"Strictures turns on strict and make all warnings fatal when\n" +"run from within a source-controlled directory." +msgstr "" + +#: gnu/packages/perl.scm:4323 +msgid "Camelcase and de-camelcase" +msgstr "" + +#: gnu/packages/perl.scm:4324 +msgid "" +"This module may be used to convert from under_score text to\n" +"CamelCase and back again." +msgstr "" + +#: gnu/packages/perl.scm:4344 +msgid "Rewrite strings based on a set of known prefixes" +msgstr "" + +#: gnu/packages/perl.scm:4345 +msgid "" +"This module allows you to rewrite strings based on a set of\n" +"known prefixes." +msgstr "" + +#: gnu/packages/perl.scm:4367 +msgid "Sophisticated exporter for custom-built routines" +msgstr "" + +#: gnu/packages/perl.scm:4369 +msgid "" +"Sub::Exporter provides a sophisticated alternative to Exporter.pm for\n" +"custom-built routines." +msgstr "" + +#: gnu/packages/perl.scm:4388 +msgid "Only use Sub::Exporter if you need it" +msgstr "" + +#: gnu/packages/perl.scm:4389 +msgid "" +"Sub::Exporter is an incredibly powerful module, but with\n" +"that power comes great responsibility, as well as some runtime penalties.\n" +"This module is a \"Sub::Exporter\" wrapper that will let your users just use\n" +"Exporter if all they are doing is picking exports, but use \"Sub::Exporter\"\n" +"if your users try to use \"Sub::Exporter\"'s more advanced features, like\n" +"renaming exports, if they try to use them." +msgstr "" + +#: gnu/packages/perl.scm:4411 +msgid "Retrieve names of code references" +msgstr "" + +#: gnu/packages/perl.scm:4412 +msgid "" +"Sub::Identify allows you to retrieve the real name of code\n" +"references." +msgstr "" + +#: gnu/packages/perl.scm:4431 +msgid "Install subroutines into packages easily" +msgstr "" + +#: gnu/packages/perl.scm:4433 +msgid "" +"Sub::Install makes it easy to install subroutines into packages without\n" +"the unsightly mess of C or typeglobs lying about where just anyone\n" +"can see them." +msgstr "" + +#: gnu/packages/perl.scm:4454 +msgid "(Re)name a sub" +msgstr "" + +#: gnu/packages/perl.scm:4455 +msgid "" +"Assigns a new name to referenced sub. If package\n" +"specification is omitted in the name, then the current package is used. The\n" +"return value is the sub." +msgstr "" + +#: gnu/packages/perl.scm:4474 +msgid "Apparently run a function in a higher stack frame" +msgstr "" + +#: gnu/packages/perl.scm:4475 +msgid "" +"Like Tcl's uplevel() function, but not quite so dangerous.\n" +"The idea is just to fool caller(). All the really naughty bits of Tcl's\n" +"uplevel() are avoided." +msgstr "" + +#: gnu/packages/perl.scm:4494 +msgid "Perl extension for generating SVG documents" +msgstr "" + +#: gnu/packages/perl.scm:4495 +msgid "" +"SVG is a Perl module which generates a nested data structure\n" +"containing the DOM representation of an SVG (Scalable Vector Graphics) image.\n" +"Using SVG, you can generate SVG objects, embed other SVG instances into it,\n" +"access the DOM object, create and access Javascript, and generate SMIL\n" +"animation content." +msgstr "" + +#: gnu/packages/perl.scm:4514 +msgid "Perl extension for getting CPU information" +msgstr "" + +#: gnu/packages/perl.scm:4516 +msgid "" +"In responce to a post on perlmonks.org, a module for counting the number\n" +"of CPU's on a system. Support has now also been added for type of CPU and\n" +"clock speed." +msgstr "" + +#: gnu/packages/perl.scm:4538 +msgid "Get full hostname in Perl" +msgstr "" + +#: gnu/packages/perl.scm:4539 +msgid "" +"Sys::Hostname::Long tries very hard to get the full hostname\n" +"of a system." +msgstr "" + +#: gnu/packages/perl.scm:4557 +msgid "Ensure that a platform has weaken support" +msgstr "" + +#: gnu/packages/perl.scm:4558 +msgid "" +"One recurring problem in modules that use Scalar::Util's\n" +"weaken function is that it is not present in the pure-perl variant. If\n" +"Scalar::Util is not available at all, it will issue a normal dependency on the\n" +"module. However, if Scalar::Util is relatively new ( it is >= 1.19 ) and the\n" +"module does not have weaken, the install will bail out altogether with a long\n" +"error encouraging the user to seek support." +msgstr "" + +#: gnu/packages/perl.scm:4583 +msgid "Template processing system for Perl" +msgstr "" + +#: gnu/packages/perl.scm:4584 +msgid "" +"The Template Toolkit is a collection of modules which\n" +"implement an extensible template processing system. It was originally\n" +"designed and remains primarily useful for generating dynamic web content, but\n" +"it can be used equally well for processing any other kind of text based\n" +"documents: HTML, XML, POD, PostScript, LaTeX, and so on." +msgstr "" + +#: gnu/packages/perl.scm:4607 +msgid "Profiling for Template Toolkit" +msgstr "" + +#: gnu/packages/perl.scm:4608 +msgid "" +"Template::Timer provides inline profiling of the template\n" +"processing in Perl code." +msgstr "" + +#: gnu/packages/perl.scm:4626 +msgid "Detect encoding of the current terminal" +msgstr "" + +#: gnu/packages/perl.scm:4627 +msgid "" +"Term::Encoding is a simple module to detect the encoding of\n" +"the current terminal expects in various ways." +msgstr "" + +#: gnu/packages/perl.scm:4651 +msgid "Progress meter on a standard terminal" +msgstr "" + +#: gnu/packages/perl.scm:4652 +msgid "" +"Term::ProgressBar provides a simple progress bar on the\n" +"terminal, to let the user know that something is happening, roughly how much\n" +"stuff has been done, and maybe an estimate at how long remains." +msgstr "" + +#: gnu/packages/perl.scm:4675 +msgid "Progress meter if run interactively" +msgstr "" + +#: gnu/packages/perl.scm:4676 +msgid "" +"Term::ProgressBar is a wonderful module for showing progress\n" +"bars on the terminal. This module acts very much like that module when it is\n" +"run interactively. However, when it is not run interactively (for example, as\n" +"a cron job) then it does not show the progress bar." +msgstr "" + +#: gnu/packages/perl.scm:4698 +msgid "Simple progress bars" +msgstr "" + +#: gnu/packages/perl.scm:4699 +msgid "" +"Term::ProgressBar::Simple tells you how much work has been\n" +"done, how much is left to do, and estimate how long it will take." +msgstr "" + +#: gnu/packages/perl.scm:4717 +msgid "Simple terminal control" +msgstr "" + +#: gnu/packages/perl.scm:4718 +msgid "" +"This module, ReadKey, provides ioctl control for terminals\n" +"so the input modes can be changed (thus allowing reads of a single character\n" +"at a time), and also provides non-blocking reads of stdin, as well as several\n" +"other terminal related features, including retrieval/modification of the\n" +"screen size, and retrieval/modification of the control characters." +msgstr "" + +#: gnu/packages/perl.scm:4745 +msgid "Data-driven testing framework for Perl" +msgstr "" + +#: gnu/packages/perl.scm:4746 +msgid "" +"Test::Base gives a way to trivially write your own test\n" +"framework base class. It concentrates on offering reusable data driven\n" +"patterns, so that you can write tests with a minimum of code." +msgstr "" + +#: gnu/packages/perl.scm:4777 +msgid "Check for uncleaned imports" +msgstr "" + +#: gnu/packages/perl.scm:4778 +msgid "" +"This module lets you check your module's namespaces for\n" +"imported functions you might have forgotten to remove with\n" +"namespace::autoclean or namespace::clean and are therefore available to be\n" +"called as methods, which usually isn't want you want." +msgstr "" + +#: gnu/packages/perl.scm:4798 +msgid "Flexible deep comparison for the Test::Builder framework" +msgstr "" + +#: gnu/packages/perl.scm:4800 +msgid "" +"Test::Deep compares two structures by going through each level, ensuring\n" +"that the values match, that arrays and hashes have the same elements and that\n" +"references are blessed into the correct class. It also handles circular data\n" +"structures without getting caught in an infinite loop." +msgstr "" + +#: gnu/packages/perl.scm:4825 +msgid "Test strings and data structures and show differences" +msgstr "" + +#: gnu/packages/perl.scm:4826 +msgid "" +"This module exports three test functions and four diff-style\n" +"functions." +msgstr "" + +#: gnu/packages/perl.scm:4847 +msgid "Perl extension for maintaining test directories" +msgstr "" + +#: gnu/packages/perl.scm:4848 +msgid "" +"Testing code can involve making sure that files are created\n" +"and deleted as expected. Doing this manually can be error prone, as it's easy\n" +"to forget a file, or miss that some unexpected file was added. This module\n" +"simplifies maintaining test directories by tracking their status as they are\n" +"modified or tested with this API, making it simple to test both individual\n" +"files, as well as to verify that there are no missing or unknown files." +msgstr "" + +#: gnu/packages/perl.scm:4874 +msgid "Test exception based code" +msgstr "" + +#: gnu/packages/perl.scm:4875 +msgid "" +"This module provides a few convenience methods for testing\n" +"exception based code. It is built with Test::Builder and plays happily with\n" +"Test::More and friends." +msgstr "" + +#: gnu/packages/perl.scm:4895 +msgid "Simple helpers for testing code with exceptions" +msgstr "" + +#: gnu/packages/perl.scm:4896 +msgid "" +"Test::Fatal is an alternative to the popular\n" +"Test::Exception. It does much less, but should allow greater flexibility in\n" +"testing exception-throwing code with about the same amount of typing." +msgstr "" + +#: gnu/packages/perl.scm:4926 +msgid "Run Perl standard test scripts with statistics" +msgstr "" + +#: gnu/packages/perl.scm:4927 +msgid "" +"Simple test harness which allows tests to be run and results\n" +"automatically aggregated and output to STDOUT." +msgstr "" + +#: gnu/packages/perl.scm:4945 +msgid "Traces memory leaks in Perl" +msgstr "" + +#: gnu/packages/perl.scm:4946 +msgid "" +"Test::LeakTrace provides several functions that trace memory\n" +"leaks. This module scans arenas, the memory allocation system, so it can\n" +"detect any leaked SVs in given blocks." +msgstr "" + +#: gnu/packages/perl.scm:4965 +msgid "Tests strings for equality, with more helpful failures" +msgstr "" + +#: gnu/packages/perl.scm:4966 +msgid "" +"This module provides some drop-in replacements for the\n" +"string comparison functions of Test::More, but which are more suitable when\n" +"you test against long strings." +msgstr "" + +#: gnu/packages/perl.scm:4993 +msgid "Emulate troublesome interfaces in Perl" +msgstr "" + +#: gnu/packages/perl.scm:4994 +msgid "" +"Test::MockObject allows you to create objects that conform\n" +"to particular interfaces with very little code. You don't have to reimplement\n" +"the behavior, just the input and the output." +msgstr "" + +#: gnu/packages/perl.scm:5013 +msgid "Replaces actual time with simulated time" +msgstr "" + +#: gnu/packages/perl.scm:5014 +msgid "" +"This module was created to enable test suites to test code\n" +"at specific points in time. Specifically it overrides localtime, gmtime and\n" +"time at compile time and then relies on the user supplying a mock time via\n" +"set_relative_time, set_absolute_time or set_fixed_time to alter future calls\n" +"to gmtime,time or localtime." +msgstr "" + +#: gnu/packages/perl.scm:5041 +msgid "Most commonly needed test functions and features" +msgstr "" + +#: gnu/packages/perl.scm:5042 +msgid "" +"This module provides the most commonly used testing\n" +"functions, along with automatically turning on strict and warning and gives a\n" +"bit more fine-grained control over test suites." +msgstr "" + +#: gnu/packages/perl.scm:5060 +msgid "Ensure no warnings are produced while testing" +msgstr "" + +#: gnu/packages/perl.scm:5062 +msgid "" +"This modules causes any warnings during testing to be captured and\n" +"stored. It automatically adds an extra test that will run when your script\n" +"ends to check that there were no warnings. If there were any warnings, the\n" +"test will fail and output diagnostics of where, when and what the warning was,\n" +"including a stack trace of what was going on when it occurred." +msgstr "" + +#: gnu/packages/perl.scm:5087 +msgid "Utilities to test STDOUT and STDERR messages" +msgstr "" + +#: gnu/packages/perl.scm:5089 +msgid "" +"Test::Output provides a simple interface for testing output sent to\n" +"STDOUT or STDERR. A number of different utilities are included to try and be\n" +"as flexible as possible to the tester." +msgstr "" + +#: gnu/packages/perl.scm:5110 +msgid "Check for POD errors in files" +msgstr "" + +#: gnu/packages/perl.scm:5111 +msgid "" +"Check POD files for errors or warnings in a test file, using\n" +"Pod::Simple to do the heavy lifting." +msgstr "" + +#: gnu/packages/perl.scm:5131 +msgid "Check for pod coverage" +msgstr "" + +#: gnu/packages/perl.scm:5132 +msgid "" +"This module adds a test to your Perl distribution which\n" +"checks for pod coverage of all appropriate files." +msgstr "" + +#: gnu/packages/perl.scm:5150 +msgid "Checks to see if the module can be loaded" +msgstr "" + +#: gnu/packages/perl.scm:5151 +msgid "" +"Test::Requires checks to see if the module can be loaded.\n" +"If this fails, then rather than failing tests this skips all tests." +msgstr "" + +#: gnu/packages/perl.scm:5170 +msgid "Basic cross-platform tests for scripts" +msgstr "" + +#: gnu/packages/perl.scm:5172 +msgid "" +"The intent of the Test::Script module is to provide a series of basic\n" +"tests for 80% of the testing you will need to do for scripts in the script (or\n" +"bin as is also commonly used) paths of your Perl distribution." +msgstr "" + +#: gnu/packages/perl.scm:5195 +msgid "Fork test in Perl" +msgstr "" + +#: gnu/packages/perl.scm:5196 +msgid "" +"Test::SharedFork is a utility module for Test::Builder. It\n" +"makes fork(2) safe to use in test cases." +msgstr "" + +#: gnu/packages/perl.scm:5212 +msgid "Basic utilities for writing tests" +msgstr "" + +#: gnu/packages/perl.scm:5214 +msgid "Test::Simple contains basic utilities for writing tests." +msgstr "" + +#: gnu/packages/perl.scm:5231 +msgid "Simplify running Test::Builder tests" +msgstr "" + +#: gnu/packages/perl.scm:5233 +msgid "" +"Test::Tester allows testing of test modules based on Test::Builder with\n" +"a minimum of effort." +msgstr "" + +#: gnu/packages/perl.scm:5257 +msgid "Trap exit codes, exceptions, output, etc." +msgstr "" + +#: gnu/packages/perl.scm:5258 +msgid "" +"This module is primarily (but not exclusively) for use in\n" +"test scripts: A block eval configurable and extensible but by default trapping\n" +"STDOUT, STDERR, warnings, exceptions, would-be exit codes, and return values\n" +"from boxed blocks of test code." +msgstr "" + +#: gnu/packages/perl.scm:5278 +msgid "UTF-8 testing in Perl" +msgstr "" + +#: gnu/packages/perl.scm:5279 +msgid "" +"This module is a collection of tests useful for dealing with\n" +"UTF-8 strings in Perl. This module has two types of tests: The validity tests\n" +"check if a string is valid and not corrupt, whereas the characteristics tests\n" +"will check that string has a given set of characteristics." +msgstr "" + +#: gnu/packages/perl.scm:5301 +msgid "Perl extension to test methods for warnings" +msgstr "" + +#: gnu/packages/perl.scm:5302 +msgid "" +"This module provides a few convenience methods for testing\n" +"warning based code." +msgstr "" + +#: gnu/packages/perl.scm:5320 +msgid "Test for warnings and the lack of them" +msgstr "" + +#: gnu/packages/perl.scm:5321 +msgid "" +"This module is intended to be used as a drop-in replacement\n" +"for Test::NoWarnings. It also adds an extra test, but runs this test before\n" +"done_testing calculates the test count, rather than after. It does this by\n" +"hooking into done_testing as well as via an END block. You can declare a\n" +"plan, or not, and things will still Just Work." +msgstr "" + +#: gnu/packages/perl.scm:5342 +msgid "Test fallback behaviour in absence of modules" +msgstr "" + +#: gnu/packages/perl.scm:5343 +msgid "" +"This module allows you to deliberately hide modules from a\n" +"program even though they are installed. This is mostly useful for testing\n" +"modules that have a fallback when a certain dependency module is not\n" +"installed." +msgstr "" + +#: gnu/packages/perl.scm:5369 +msgid "Dynamic generation of tests" +msgstr "" + +#: gnu/packages/perl.scm:5370 +msgid "" +"The Test::WriteVariants module provides for the dynamic\n" +"generation of tests in nested combinations of contexts." +msgstr "" + +#: gnu/packages/perl.scm:5390 +msgid "Testing module for YAML implementations" +msgstr "" + +#: gnu/packages/perl.scm:5391 +msgid "" +"Test::YAML is a subclass of Test::Base with YAML specific\n" +"support." +msgstr "" + +#: gnu/packages/perl.scm:5409 +msgid "Align text" +msgstr "" + +#: gnu/packages/perl.scm:5410 +msgid "" +"Text::Aligner exports a single function, align(), which is\n" +"used to justify strings to various alignment styles." +msgstr "" + +#: gnu/packages/perl.scm:5428 +msgid "Extract delimited text sequences from strings" +msgstr "" + +#: gnu/packages/perl.scm:5429 +msgid "" +"The Text::Balanced module can be used to extract delimited\n" +"text sequences from strings." +msgstr "" + +#: gnu/packages/perl.scm:5447 +msgid "Manipulate comma-separated values" +msgstr "" + +#: gnu/packages/perl.scm:5448 +msgid "" +"Text::CSV provides facilities for the composition and\n" +"decomposition of comma-separated values. An instance of the Text::CSV class\n" +"can combine fields into a CSV string and parse a CSV string into fields." +msgstr "" + +#: gnu/packages/perl.scm:5469 +msgid "Perform diffs on files and record sets" +msgstr "" + +#: gnu/packages/perl.scm:5470 +msgid "" +"Text::Diff provides a basic set of services akin to the GNU\n" +"diff utility. It is not anywhere near as feature complete as GNU diff, but it\n" +"is better integrated with Perl and available on all platforms. It is often\n" +"faster than shelling out to a system's diff executable for small files, and\n" +"generally slower on larger files." +msgstr "" + +#: gnu/packages/perl.scm:5491 +msgid "Match globbing patterns against text" +msgstr "" + +#: gnu/packages/perl.scm:5492 +msgid "" +"Text::Glob implements glob(3) style matching that can be\n" +"used to match against text, rather than fetching names from a filesystem. If\n" +"you want to do full file globbing use the File::Glob module instead." +msgstr "" + +#: gnu/packages/perl.scm:5511 +msgid "Simple ASCII tables" +msgstr "" + +#: gnu/packages/perl.scm:5512 +msgid "Text::SimpleTable draws simple ASCII tables." +msgstr "" + +#: gnu/packages/perl.scm:5531 +msgid "Organize Data in Tables" +msgstr "" + +#: gnu/packages/perl.scm:5532 +msgid "Text::Table renders plaintext tables." +msgstr "" + +#: gnu/packages/perl.scm:5549 +msgid "Provide plain ASCII transliterations of Unicode text" +msgstr "" + +#: gnu/packages/perl.scm:5550 +msgid "" +"Text::Unidecode provides a function, unidecode(...) that\n" +"takes Unicode data and tries to represent it in US-ASCII characters (i.e., the\n" +"universally displayable characters between 0x00 and 0x7F). The representation\n" +"is almost always an attempt at transliteration-- i.e., conveying, in Roman\n" +"letters, the pronunciation expressed by the text in some other writing\n" +"system." +msgstr "" + +#: gnu/packages/perl.scm:5578 +msgid "Role for classes that can be thrown" +msgstr "" + +#: gnu/packages/perl.scm:5579 +msgid "" +"Throwable is a role for classes that are meant to be thrown\n" +"as exceptions to standard program flow." +msgstr "" + +#: gnu/packages/perl.scm:5597 +msgid "Ordered associative arrays for Perl" +msgstr "" + +#: gnu/packages/perl.scm:5598 +msgid "" +"This Perl module implements Perl hashes that preserve the\n" +"order in which the hash elements were added. The order is not affected when\n" +"values corresponding to existing keys in the IxHash are changed. The elements\n" +"can also be set to any arbitrary supplied order. The familiar perl array\n" +"operations can also be performed on the IxHash." +msgstr "" + +#: gnu/packages/perl.scm:5621 +msgid "Tie to an existing Perl object" +msgstr "" + +#: gnu/packages/perl.scm:5622 +msgid "" +"This class provides a tie constructor that returns the\n" +"object it was given as it's first argument. This way side effects of calling\n" +"$object->TIEHASH are avoided." +msgstr "" + +#: gnu/packages/perl.scm:5644 +msgid "English expression of durations" +msgstr "" + +#: gnu/packages/perl.scm:5645 +msgid "" +"This module provides functions for expressing durations in\n" +"rounded or exact terms." +msgstr "" + +#: gnu/packages/perl.scm:5667 +msgid "Parse time duration strings" +msgstr "" + +#: gnu/packages/perl.scm:5668 +msgid "" +"Time::Duration::Parse is a module to parse human readable\n" +"duration strings like \"2 minutes\" and \"3 seconds\" to seconds." +msgstr "" + +#: gnu/packages/perl.scm:5686 +msgid "Efficiently compute time from local and GMT time" +msgstr "" + +#: gnu/packages/perl.scm:5687 +msgid "" +"This module provides functions that are the inverse of\n" +"built-in perl functions localtime() and gmtime(). They accept a date as a\n" +"six-element array, and return the corresponding time(2) value in seconds since\n" +"the system epoch." +msgstr "" + +#: gnu/packages/perl.scm:5707 +msgid "Date parsing/formatting subroutines" +msgstr "" + +#: gnu/packages/perl.scm:5708 +msgid "" +"This module provides routines for parsing date string into\n" +"time values and formatting dates into ASCII strings." +msgstr "" + +#: gnu/packages/perl.scm:5728 +msgid "Shift and scale time" +msgstr "" + +#: gnu/packages/perl.scm:5729 +msgid "" +"This module allows you to speed up your sleep(), alarm(),\n" +"and time() calls." +msgstr "" + +#: gnu/packages/perl.scm:5752 +msgid "Simple tree object" +msgstr "" + +#: gnu/packages/perl.scm:5753 +msgid "" +"This module in a fully object-oriented implementation of a\n" +"simple n-ary tree." +msgstr "" + +#: gnu/packages/perl.scm:5776 +msgid "Factory object for dispensing Visitor objects" +msgstr "" + +#: gnu/packages/perl.scm:5777 +msgid "" +"This module is a factory for dispensing\n" +"Tree::Simple::Visitor::* objects." +msgstr "" + +#: gnu/packages/perl.scm:5795 +msgid "Minimal try/catch with proper preservation of $@" +msgstr "" + +#: gnu/packages/perl.scm:5796 +msgid "" +"This module provides bare bones try/catch/finally statements\n" +"that are designed to minimize common mistakes with eval blocks, and nothing\n" +"else." +msgstr "" + +#: gnu/packages/perl.scm:5817 +msgid "Data types for common serialisation formats" +msgstr "" + +#: gnu/packages/perl.scm:5818 +msgid "" +"This module provides some extra datatypes that are used by\n" +"common serialisation formats such as JSON or CBOR." +msgstr "" + +#: gnu/packages/perl.scm:5836 +msgid "UNIVERSAL::can() reimplementation" +msgstr "" + +#: gnu/packages/perl.scm:5837 +msgid "" +"This module attempts to work around people calling\n" +"UNIVERSAL::can() as a function, which it is not." +msgstr "" + +#: gnu/packages/perl.scm:5857 +msgid "UNIVERSAL::isa() reimplementation" +msgstr "" + +#: gnu/packages/perl.scm:5858 +msgid "" +"This module attempts to recover from people calling\n" +"UNIVERSAL::isa as a function." +msgstr "" + +#: gnu/packages/perl.scm:5876 +msgid "Associate user-defined magic to variables from Perl" +msgstr "" + +#: gnu/packages/perl.scm:5877 +msgid "" +"Magic is Perl's way of enhancing variables. This mechanism\n" +"lets the user add extra data to any variable and hook syntactical\n" +"operations (such as access, assignment or destruction) that can be applied to\n" +"it. With this module, you can add your own magic to any variable without\n" +"having to write a single line of XS." +msgstr "" + +#: gnu/packages/perl.scm:5900 +msgid "YAML for Perl" +msgstr "" + +#: gnu/packages/perl.scm:5901 +msgid "" +"The YAML.pm module implements a YAML Loader and Dumper based\n" +"on the YAML 1.0 specification." +msgstr "" + +#: gnu/packages/perl.scm:5924 +msgid "Read/Write YAML files" +msgstr "" + +#: gnu/packages/perl.scm:5925 +msgid "" +"YAML::Tiny is a perl class for reading and writing\n" +"YAML-style files, written with as little code as possible, reducing load time\n" +"and memory overhead." +msgstr "" + +#: gnu/packages/perl.scm:5952 +msgid "Distribution metadata for a CPAN dist" +msgstr "" + +#: gnu/packages/perl.scm:5953 +msgid "" +"Software distributions released to the CPAN include a\n" +"META.json or, for older distributions, META.yml, which describes the\n" +"distribution, its contents, and the requirements for building and installing\n" +"the distribution. The data structure stored in the META.json file is\n" +"described in CPAN::Meta::Spec. CPAN::Meta provides a simple class to\n" +"represent this distribution metadata (or distmeta), along with some helpful\n" +"methods for interrogating that data." +msgstr "" + +#: gnu/packages/perl.scm:5976 +msgid "Set of version requirements for a CPAN dist" +msgstr "" + +#: gnu/packages/perl.scm:5977 +msgid "" +"A CPAN::Meta::Requirements object models a set of version\n" +"constraints like those specified in the META.yml or META.json files in CPAN\n" +"distributions, and as defined by CPAN::Meta::Spec. It can be built up by\n" +"adding more and more constraints, and will reduce them to the simplest\n" +"representation." +msgstr "" + +#: gnu/packages/perl.scm:6000 +msgid "Read and write a subset of YAML for CPAN Meta files" +msgstr "" + +#: gnu/packages/perl.scm:6001 +msgid "" +"This module implements a subset of the YAML specification\n" +"for use in reading and writing CPAN metadata files like META.yml and\n" +"MYMETA.yml." +msgstr "" + +#: gnu/packages/perl.scm:6022 +msgid "Build and install Perl modules" +msgstr "" + +#: gnu/packages/perl.scm:6023 +msgid "" +"\"Module::Build\" is a system for building, testing, and\n" +"installing Perl modules. It is meant to be an alternative to\n" +"\"ExtUtils::MakeMaker\". Developers may alter the behavior of the module\n" +"through subclassing in a much more straightforward way than with\n" +"\"MakeMaker\". It also does not require a \"make\" on your system - most of\n" +"the \"Module::Build\" code is pure-perl and written in a cross-platform way." +msgstr "" + +#: gnu/packages/perl.scm:6047 +msgid "Parse META.yml and META.json CPAN metadata files" +msgstr "" + +#: gnu/packages/perl.scm:6048 +msgid "" +"Parse::CPAN::Meta is a parser for META.json and META.yml\n" +"files, using JSON::PP and/or CPAN::Meta::YAML." +msgstr "" + +#: gnu/packages/perl.scm:6066 +msgid "Common Scalar and List utility subroutines" +msgstr "" + +#: gnu/packages/perl.scm:6067 +msgid "" +"This package contains a selection of subroutines that people\n" +"have expressed would be nice to have in the perl core, but the usage would not\n" +"really be high enough to warrant the use of a keyword, and the size so small\n" +"such that being individual extensions would be wasteful." +msgstr "" + +#: gnu/packages/photo.scm:61 +msgid "Raw image decoder" +msgstr "" + +#: gnu/packages/photo.scm:63 +msgid "" +"LibRaw is a library for reading RAW files obtained from digital photo\n" +"cameras (CRW/CR2, NEF, RAF, DNG, and others)." +msgstr "" + +#: gnu/packages/photo.scm:80 +msgid "Read and manipulate EXIF data in digital photographs" +msgstr "" + +#: gnu/packages/photo.scm:82 +msgid "" +"The libexif C library allows applications to read, edit, and save EXIF\n" +"data as produced by digital cameras." +msgstr "" + +#: gnu/packages/photo.scm:107 +msgid "Accessing digital cameras" +msgstr "" + +#: gnu/packages/photo.scm:109 +msgid "" +"This is the library backend for gphoto2. It contains the code for PTP,\n" +"MTP, and other vendor specific protocols for controlling and transferring data\n" +"from digital cameras." +msgstr "" + +#: gnu/packages/photo.scm:150 +msgid "Command-line tools to access digital cameras" +msgstr "" + +#: gnu/packages/photo.scm:152 +msgid "" +"Gphoto2 is a set of command line utilities for manipulating a large\n" +"number of different digital cameras. Through libgphoto2, it supports PTP,\n" +"MTP, and much more." +msgstr "" + +#: gnu/packages/photo.scm:186 +msgid "Program and Perl library to manipulate EXIF tags" +msgstr "" + +#: gnu/packages/photo.scm:188 +msgid "" +"This package provides the 'exiftool' command and the 'Image::ExifTool'\n" +"Perl library to manipulate EXIF tags of digital images." +msgstr "" + +#: gnu/packages/photo.scm:211 +msgid "Library for panoramic images" +msgstr "" + +#: gnu/packages/photo.scm:213 +msgid "" +"The libpano13 package contains the backend library written by the\n" +"Panorama Tools project for building panoramic images from a set of\n" +"overlapping images, as well as some command line tools." +msgstr "" + +#: gnu/packages/photo.scm:255 +msgid "Tools for combining and blending images" +msgstr "" + +#: gnu/packages/photo.scm:257 +msgid "" +"Enblend blends away the seams in a panoramic image mosaic using a\n" +"multi-resolution spline. Enfuse merges different exposures of the same\n" +"scene to produce an image that looks much like a tone-mapped image." +msgstr "" + +#: gnu/packages/qemu.scm:119 +msgid "Machine emulator and virtualizer (without GUI)" +msgstr "" + +#: gnu/packages/qemu.scm:121 +msgid "" +"QEMU is a generic machine emulator and virtualizer.\n" +"\n" +"When used as a machine emulator, QEMU can run OSes and programs made for one\n" +"machine (e.g. an ARM board) on a different machine---e.g., your own PC. By\n" +"using dynamic translation, it achieves very good performance.\n" +"\n" +"When used as a virtualizer, QEMU achieves near native performances by\n" +"executing the guest code directly on the host CPU. QEMU supports\n" +"virtualization when executing under the Xen hypervisor or using\n" +"the KVM kernel module in Linux. When using KVM, QEMU can virtualize x86,\n" +"server and embedded PowerPC, and S390 guests." +msgstr "" + +#: gnu/packages/qemu.scm:143 +msgid "Machine emulator and virtualizer" +msgstr "" + +#: gnu/packages/ratpoison.scm:85 +msgid "Simple mouse-free tiling window manager" +msgstr "" + +#: gnu/packages/ratpoison.scm:87 +msgid "" +"Ratpoison is a simple window manager with no fat library\n" +"dependencies, no fancy graphics, no window decorations, and no\n" +"rodent dependence. It is largely modelled after GNU Screen which\n" +"has done wonders in the virtual terminal market.\n" +"\n" +"The screen can be split into non-overlapping frames. All windows\n" +"are kept maximized inside their frames to take full advantage of\n" +"your precious screen real estate.\n" +"\n" +"All interaction with the window manager is done through keystrokes.\n" +"Ratpoison has a prefix map to minimize the key clobbering that\n" +"cripples Emacs and other quality pieces of software." +msgstr "" + +#: gnu/packages/readline.scm:68 +msgid "Edit command lines while typing, with history support" +msgstr "" + +#: gnu/packages/readline.scm:70 +msgid "" +"The GNU readline library allows users to edit command lines as they\n" +"are typed in. It can maintain a searchable history of previously entered\n" +"commands, letting you easily recall, edit and re-enter past commands. It\n" +"features both Emacs-like and vi-like keybindings, making its usage\n" +"comfortable for anyone." +msgstr "" + +#: gnu/packages/scanner.scm:70 +msgid "Raster image scanner library and drivers" +msgstr "" + +#: gnu/packages/scanner.scm:71 +msgid "" +"SANE stands for \"Scanner Access Now Easy\" and is an API\n" +"proving access to any raster image scanner hardware (flatbed scanner,\n" +"hand-held scanner, video- and still-cameras, frame-grabbers, etc.). The\n" +"package contains the library and drivers." +msgstr "" + +#: gnu/packages/scheme.scm:132 +msgid "A Scheme implementation with integrated editor and debugger" +msgstr "" + +#: gnu/packages/scheme.scm:134 +msgid "" +"GNU/MIT Scheme is an implementation of the Scheme programming\n" +"language. It provides an interpreter, a compiler and a debugger. It also\n" +"features an integrated Emacs-like editor and a large runtime library." +msgstr "" + +#: gnu/packages/scheme.scm:217 +msgid "Efficient Scheme compiler" +msgstr "" + +#: gnu/packages/scheme.scm:219 +msgid "" +"Bigloo is a Scheme implementation devoted to one goal: enabling\n" +"Scheme based programming style where C(++) is usually\n" +"required. Bigloo attempts to make Scheme practical by offering\n" +"features usually presented by traditional programming languages\n" +"but not offered by Scheme and functional programming. Bigloo\n" +"compiles Scheme modules. It delivers small and fast stand alone\n" +"binary executables. Bigloo enables full connections between\n" +"Scheme and C programs and between Scheme and Java programs." +msgstr "" + +#: gnu/packages/scheme.scm:262 +msgid "Multi-tier programming language for the Web 2.0" +msgstr "" + +#: gnu/packages/scheme.scm:264 +msgid "" +"HOP is a multi-tier programming language for the Web 2.0 and the\n" +"so-called diffuse Web. It is designed for programming interactive web\n" +"applications in many fields such as multimedia (web galleries, music players,\n" +"...), ubiquitous and house automation (SmartPhones, personal appliance),\n" +"mashups, office (web agendas, mail clients, ...), etc." +msgstr "" + +#: gnu/packages/scheme.scm:304 +msgid "R5RS Scheme implementation that compiles native code via C" +msgstr "" + +#: gnu/packages/scheme.scm:306 +msgid "" +"CHICKEN is a compiler for the Scheme programming language. CHICKEN\n" +"produces portable and efficient C, supports almost all of the R5RS Scheme\n" +"language standard, and includes many enhancements and extensions." +msgstr "" + +#: gnu/packages/scheme.scm:325 +msgid "Scheme implementation using a bytecode interpreter" +msgstr "" + +#: gnu/packages/scheme.scm:327 +msgid "" +"Scheme 48 is an implementation of Scheme based on a byte-code\n" +"interpreter and is designed to be used as a testbed for experiments in\n" +"implementation techniques and as an expository tool." +msgstr "" + +#: gnu/packages/scheme.scm:403 +msgid "Implementation of Scheme and related languages" +msgstr "" + +#: gnu/packages/scheme.scm:405 +msgid "" +"Racket is an implementation of the Scheme programming language (R5RS and\n" +"R6RS) and related languages, such as Typed Racket. It features a compiler and\n" +"a virtual machine with just-in-time native compilation, as well as a large set\n" +"of libraries." +msgstr "" + +#: gnu/packages/scheme.scm:443 +msgid "Efficient Scheme interpreter and compiler" +msgstr "" + +#: gnu/packages/scheme.scm:445 +msgid "" +"Gambit consists of two main programs: gsi, the Gambit Scheme\n" +"interpreter, and gsc, the Gambit Scheme compiler. The interpreter contains\n" +"the complete execution and debugging environment. The compiler is the\n" +"interpreter extended with the capability of generating executable files. The\n" +"compiler can produce standalone executables or compiled modules which can be\n" +"loaded at run time. Interpreted code and compiled code can be freely\n" +"mixed." +msgstr "" + +#: gnu/packages/scheme.scm:482 +msgid "Small embeddable Scheme implementation" +msgstr "" + +#: gnu/packages/scheme.scm:484 +msgid "" +"Chibi-Scheme is a very small library with no external dependencies\n" +"intended for use as an extension and scripting language in C programs. In\n" +"addition to support for lightweight VM-based threads, each VM itself runs in\n" +"an isolated heap allowing multiple VMs to run simultaneously in different OS\n" +"threads." +msgstr "" + +#: gnu/packages/scheme.scm:660 +msgid "Scmutils library for MIT Scheme" +msgstr "" + +#: gnu/packages/scheme.scm:661 +msgid "" +"The Scmutils system is an integrated library of\n" +"procedures, embedded in the programming language Scheme, and intended to\n" +"support teaching and research in mathematical physics and electrical\n" +"engineering." +msgstr "" + +#: gnu/packages/search.scm:52 +msgid "Search Engine Library" +msgstr "" + +#: gnu/packages/search.scm:54 +msgid "" +"Xapian is a highly adaptable toolkit which allows developers to easily\n" +"add advanced indexing and search facilities to their own applications. It\n" +"supports the Probabilistic Information Retrieval model and also supports a\n" +"rich set of boolean query operators." +msgstr "" + +#: gnu/packages/search.scm:97 +msgid "Tool for Obsessive Compulsive Classifiers" +msgstr "" + +#: gnu/packages/search.scm:99 +msgid "" +"libtocc is the engine of the Tocc project, a tag-based file management\n" +"system. The goal of Tocc is to provide a better system for classifying files\n" +"that is more flexible than classic file systems that are based on a tree of\n" +"files and directories." +msgstr "" + +#: gnu/packages/search.scm:121 +msgid "Command-line interface to libtocc" +msgstr "" + +#: gnu/packages/search.scm:123 +msgid "" +"Tocc is a tag-based file management system. This package contains the\n" +"command line tool for interacting with libtocc." +msgstr "" + +#: gnu/packages/search.scm:141 +msgid "Finding text and HTML files that match boolean expressions" +msgstr "" + +#: gnu/packages/search.scm:143 +msgid "" +"GNU Bool is a utility to perform text searches on files using Boolean\n" +"expressions. For example, a search for \"hello AND world\" would return a\n" +"file containing the phrase \"Hello, world!\". It supports both AND and OR\n" +"statements, as well as the NEAR statement to search for the occurrence of\n" +"words in close proximity to each other. It handles context gracefully,\n" +"accounting for new lines and paragraph changes. It also has robust support\n" +"for parsing HTML files." +msgstr "" + +#: gnu/packages/serveez.scm:51 +msgid "Framework for implementing IP-based servers" +msgstr "" + +#: gnu/packages/serveez.scm:53 +msgid "" +"GNU Serveez is a server framework providing the routines necessary to\n" +"easily implement IP-based servers in your application. It\n" +"demonstrates aspects of network programming in a portable manner,\n" +"making it convenient for both simplifying the process of adding a\n" +"server to your application or for learning about how network services\n" +"work. Several example servers are provided already, such as an HTTP\n" +"server and an IRC server." +msgstr "" + +#: gnu/packages/telephony.scm:50 +msgid "(u)Common C++ framework for threaded applications" +msgstr "" + +#: gnu/packages/telephony.scm:51 +msgid "" +"GNU Common C++ is an portable, optimized class framework for\n" +"threaded applications, supporting concurrent synchronization, inter-process\n" +"communications via sockets, and various methods for data handling, such as\n" +"serialization and XML parsing. It includes the uCommon C++ library, a smaller\n" +"reimplementation." +msgstr "" + +#: gnu/packages/telephony.scm:70 +msgid "Common C++ framework for threaded applications" +msgstr "" + +#: gnu/packages/telephony.scm:71 +msgid "" +"GNU uCommon C++ is meant as a very light-weight C++ library\n" +"to facilitate using C++ design patterns even for very deeply embedded\n" +"applications, such as for systems using uclibc along with posix threading\n" +"support." +msgstr "" + +#: gnu/packages/telephony.scm:92 +msgid "Implementation of RTP (real-time transport protocol)" +msgstr "" + +#: gnu/packages/telephony.scm:93 +msgid "" +"GNU ccRTP is an implementation of RTP, the real-time transport\n" +"protocol from the IETF. It is suitable both for high capacity servers and\n" +"personal client applications. It is flexible in its design, allowing it to\n" +"function as a framework for the framework, rather than just being a\n" +"packet-manipulation library." +msgstr "" + +#: gnu/packages/telephony.scm:113 +msgid "Library implementing SIP (RFC-3261)" +msgstr "" + +#: gnu/packages/telephony.scm:114 +msgid "" +"GNU oSIP is an implementation of the SIP protocol. It is\n" +"used to provide multimedia and telecom software developers with an interface\n" +"to initiate and control SIP sessions." +msgstr "" + +#: gnu/packages/telephony.scm:134 +msgid "Sip abstraction library" +msgstr "" + +#: gnu/packages/telephony.scm:135 +msgid "" +"EXosip is a library that hides the complexity of using the\n" +"SIP protocol for multimedia session establishment. This protocol is mainly to\n" +"be used by VoIP telephony applications (endpoints or conference server) but\n" +"might be also useful for any application that wish to establish sessions like\n" +"multiplayer games." +msgstr "" + +#: gnu/packages/telephony.scm:178 +msgid "Secure peer-to-peer VoIP server for the SIP protocol" +msgstr "" + +#: gnu/packages/telephony.scm:179 +msgid "" +"GNU SIP Witch is a peer-to-peer Voice-over-IP server that\n" +"uses the SIP protocol. Calls can be made from behind NAT firewalls and\n" +"without the need for a service provider. Its peer-to-peer design ensures that\n" +"there is no central point for media intercept or capture and thus it can be\n" +"used to construct a secure telephone system that operates over the public\n" +"internet." +msgstr "" + +#: gnu/packages/telephony.scm:204 +msgid "Secure RTP (SRTP) Reference Implementation" +msgstr "" + +#: gnu/packages/telephony.scm:205 +msgid "" +"This package provides an implementation of the Secure\n" +"Real-time Transport Protocol (SRTP), the Universal Security Transform (UST),\n" +"and a supporting cryptographic kernel." +msgstr "" + +#: gnu/packages/texinfo.scm:56 +msgid "The GNU documentation format" +msgstr "" + +#: gnu/packages/texinfo.scm:58 +msgid "" +"Texinfo is the official documentation format of the GNU project. It\n" +"uses a single source file using explicit commands to produce a final document\n" +"in any of several supported output formats, such as HTML or PDF. This\n" +"package includes both the tools necessary to produce Info documents from\n" +"their source and the command-line Info reader. The emphasis of the language\n" +"is on expressing the content semantically, avoiding physical markup commands." +msgstr "" + +#: gnu/packages/texinfo.scm:116 +msgid "Convert Texinfo to HTML" +msgstr "Konwersja Texinfo do HTML" + +#: gnu/packages/texinfo.scm:118 +msgid "" +"Texi2HTML is a Perl script which converts Texinfo source files to HTML\n" +"output. It now supports many advanced features, such as internationalization\n" +"and extremely configurable output formats.\n" +"\n" +"Development of Texi2HTML moved to the GNU Texinfo repository in 2010, since it\n" +"was meant to replace the makeinfo implementation in GNU Texinfo. The route\n" +"forward for authors is, in most cases, to alter manuals and build processes as\n" +"necessary to use the new features of the makeinfo/texi2any implementation of\n" +"GNU Texinfo. The Texi2HTML maintainers (one of whom is the principal author\n" +"of the GNU Texinfo implementation) do not intend to make further releases of\n" +"Texi2HTML." +msgstr "" + +#: gnu/packages/texlive.scm:156 gnu/packages/texlive.scm:216 +#: gnu/packages/texlive.scm:274 +msgid "TeX Live, a package of the TeX typesetting system" +msgstr "" + +#: gnu/packages/texlive.scm:158 +msgid "" +"TeX Live provides a comprehensive TeX document production system.\n" +"It includes all the major TeX-related programs, macro packages, and fonts\n" +"that are free software, including support for many languages around the\n" +"world.\n" +"\n" +"This package contains the binaries." +msgstr "" + +#: gnu/packages/texlive.scm:218 +msgid "" +"TeX Live provides a comprehensive TeX document production system.\n" +"It includes all the major TeX-related programs, macro packages, and fonts\n" +"that are free software, including support for many languages around the\n" +"world.\n" +"\n" +"This package contains the complete tree of texmf-dist data." +msgstr "" + +#: gnu/packages/texlive.scm:276 +msgid "" +"TeX Live provides a comprehensive TeX document production system.\n" +"It includes all the major TeX-related programs, macro packages, and fonts\n" +"that are free software, including support for many languages around the\n" +"world.\n" +"\n" +"This package contains the complete TeX Live distribution." +msgstr "" + +#: gnu/packages/texlive.scm:305 +msgid "Wrapper for LaTeX and friends" +msgstr "" + +#: gnu/packages/texlive.scm:307 +msgid "" +"Rubber is a program whose purpose is to handle all tasks related to the\n" +"compilation of LaTeX documents. This includes compiling the document itself,\n" +"of course, enough times so that all references are defined, and running BibTeX\n" +"to manage bibliographic references. Automatic execution of dvips to produce\n" +"PostScript documents is also included, as well as usage of pdfLaTeX to produce\n" +"PDF documents." +msgstr "" + +#: gnu/packages/textutils.scm:58 +msgid "Text encoding converter" +msgstr "" + +#: gnu/packages/textutils.scm:59 +msgid "" +"The Recode library converts files between character sets and\n" +"usages. It recognises or produces over 200 different character sets (or about\n" +"300 if combined with an iconv library) and transliterates files between almost\n" +"any pair. When exact transliteration are not possible, it gets rid of\n" +"offending characters or falls back on approximations. The recode program is a\n" +"handy front-end to the library." +msgstr "" + +#: gnu/packages/textutils.scm:86 +msgid "Text encoding detection tool" +msgstr "" + +#: gnu/packages/textutils.scm:87 +msgid "" +"Enca (Extremely Naive Charset Analyser) consists of libenca,\n" +"an encoding detection library, and enca, a command line frontend, integrating\n" +"libenca and several charset conversion libraries and tools." +msgstr "" + +#: gnu/packages/textutils.scm:122 +msgid "C library for processing UTF-8 Unicode data" +msgstr "" + +#: gnu/packages/textutils.scm:123 +msgid "" +"utf8proc is a small C library that provides Unicode\n" +"normalization, case-folding, and other operations for data in the UTF-8\n" +"encoding, supporting Unicode version 7.0." +msgstr "" + +#: gnu/packages/textutils.scm:152 +msgid "Gordon's text utils library" +msgstr "" + +#: gnu/packages/textutils.scm:154 +msgid "" +"libgtextutils is a text utilities library used by the fastx toolkit from\n" +"the Hannon Lab." +msgstr "" + +#: gnu/packages/textutils.scm:175 +msgid "C++ hash functions for strings" +msgstr "" + +#: gnu/packages/textutils.scm:177 +msgid "" +"CityHash provides hash functions for strings. The functions mix the\n" +"input bits thoroughly but are not suitable for cryptography." +msgstr "" + +#: gnu/packages/version-control.scm:97 +msgid "Version control system supporting both distributed and centralized workflows" +msgstr "" + +#: gnu/packages/version-control.scm:99 +msgid "" +"GNU Bazaar is a version control system that allows you to record\n" +"changes to project files over time. It supports both a distributed workflow\n" +"as well as the classic centralized workflow." +msgstr "" + +#: gnu/packages/version-control.scm:258 +msgid "Distributed version control system" +msgstr "Rozproszony system kontroli wersji" + +#: gnu/packages/version-control.scm:260 +msgid "" +"Git is a free distributed version control system designed to handle\n" +"everything from small to very large projects with speed and efficiency." +msgstr "" + +#: gnu/packages/version-control.scm:305 +msgid "Man pages of the Git version control system" +msgstr "" + +#: gnu/packages/version-control.scm:307 +msgid "" +"This package provides the man pages of the Git version control system.\n" +"This is the documentation displayed when using the '--help' option of a 'git'\n" +"command." +msgstr "" + +#: gnu/packages/version-control.scm:344 +msgid "Command-line flags library for shell scripts" +msgstr "" + +#: gnu/packages/version-control.scm:346 +msgid "" +"Shell Flags (shFlags) is a library written to greatly simplify the\n" +"handling of command-line flags in Bourne based Unix shell scripts (bash, dash,\n" +"ksh, sh, zsh). Most shell scripts use getopt for flags processing, but the\n" +"different versions of getopt on various OSes make writing portable shell\n" +"scripts difficult. shFlags instead provides an API that doesn't change across\n" +"shell and OS versions so the script writer can be confident that the script\n" +"will work." +msgstr "" + +#: gnu/packages/version-control.scm:389 +msgid "Git extensions for Vincent Driessen's branching model" +msgstr "" + +#: gnu/packages/version-control.scm:391 +msgid "" +"Vincent Driessen's branching model is a git branching and release\n" +"management strategy that helps developers keep track of features, hotfixes,\n" +"and releases in bigger software projects. The git-flow library of git\n" +"subcommands helps automate some parts of the flow to make working with it a\n" +"lot easier." +msgstr "" + +#: gnu/packages/version-control.scm:426 +msgid "Run a command over a sequence of commits" +msgstr "" + +#: gnu/packages/version-control.scm:428 +msgid "" +"git-test-sequence is similar to an automated git bisect except it’s\n" +"linear. It will test every change between two points in the DAG. It will\n" +"also walk each side of a merge and test those changes individually." +msgstr "" + +#: gnu/packages/version-control.scm:486 +msgid "Git access control layer" +msgstr "" + +#: gnu/packages/version-control.scm:488 +msgid "" +"Gitolite is an access control layer on top of Git, providing fine access\n" +"control to Git repositories." +msgstr "" + +#: gnu/packages/version-control.scm:512 +msgid "Decentralized version control system" +msgstr "" + +#: gnu/packages/version-control.scm:514 +msgid "" +"Mercurial is a free, distributed source control management tool.\n" +"It efficiently handles projects of any size\n" +"and offers an easy and intuitive interface." +msgstr "" + +#: gnu/packages/version-control.scm:548 +msgid "HTTP and WebDAV client library" +msgstr "" + +#: gnu/packages/version-control.scm:549 +msgid "" +"Neon is an HTTP and WebDAV client library, with a\n" +"C interface. Features:\n" +"High-level wrappers for common HTTP and WebDAV operations (GET, MOVE,\n" +"DELETE, etc.);\n" +"low-level interface to the HTTP request/response engine, allowing the use\n" +"of arbitrary HTTP methods, headers, etc.;\n" +"authentication support including Basic and Digest support, along with\n" +"GSSAPI-based Negotiate on Unix, and SSPI-based Negotiate/NTLM on Win32;\n" +"SSL/TLS support using OpenSSL or GnuTLS, exposing an abstraction layer for\n" +"verifying server certificates, handling client certificates, and examining\n" +"certificate properties, smartcard-based client certificates are also\n" +"supported via a PKCS#11 wrapper interface;\n" +"abstract interface to parsing XML using libxml2 or expat, and wrappers for\n" +"simplifying handling XML HTTP response bodies;\n" +"WebDAV metadata support, wrappers for PROPFIND and PROPPATCH to simplify\n" +"property manipulation." +msgstr "" + +#: gnu/packages/version-control.scm:628 +msgid "Revision control system" +msgstr "System kontroli wersji" + +#: gnu/packages/version-control.scm:630 +msgid "" +"Subversion exists to be universally recognized and adopted as a\n" +"centralized version control system characterized by its\n" +"reliability as a safe haven for valuable data; the simplicity of its model and\n" +"usage; and its ability to support the needs of a wide variety of users and\n" +"projects, from individuals to large-scale enterprise operations." +msgstr "" + +#: gnu/packages/version-control.scm:651 +msgid "Per-file local revision control system" +msgstr "" + +#: gnu/packages/version-control.scm:653 +msgid "" +"RCS is the original Revision Control System. It works on a\n" +"file-by-file basis, in contrast to subsequent version control systems such as\n" +"CVS, Subversion, and Git. This can make it suitable for system\n" +"administration files, for example, which are often inherently local to one\n" +"machine." +msgstr "" + +#: gnu/packages/version-control.scm:679 +msgid "Historical centralized version control system" +msgstr "" + +#: gnu/packages/version-control.scm:681 +msgid "" +"CVS is a version control system, an important component of Source\n" +"Configuration Management (SCM). Using it, you can record the history of\n" +"sources files, and documents. It fills a similar role to the free software\n" +"RCS, PRCS, and Aegis packages." +msgstr "" + +#: gnu/packages/version-control.scm:714 +msgid "Export an RCS or CVS history as a fast-import stream" +msgstr "" + +#: gnu/packages/version-control.scm:715 +msgid "" +"This program analyzes a collection of RCS files in a CVS\n" +"repository (or outside of one) and, when possible, emits an equivalent history\n" +"in the form of a fast-import stream. Not all possible histories can be\n" +"rendered this way; the program tries to emit useful warnings when it can't.\n" +"\n" +"The program can also produce a visualization of the resulting commit directed\n" +"acyclic graph (DAG) in the input format of @uref{http://www.graphviz.org,\n" +"Graphviz}. The package also includes @command{cvssync}, a tool for mirroring\n" +"masters from remote CVS hosts." +msgstr "" + +#: gnu/packages/version-control.scm:742 +msgid "Version-control-agnostic ChangeLog diff and commit tool" +msgstr "" + +#: gnu/packages/version-control.scm:744 +msgid "" +"The vc-dwim package contains two tools, \"vc-dwim\" and \"vc-chlog\".\n" +"vc-dwim is a tool that simplifies the task of maintaining a ChangeLog and\n" +"using version control at the same time, for example by printing a reminder\n" +"when a file change has been described in the ChangeLog but the file has not\n" +"been added to the VC. vc-chlog scans changed files and generates\n" +"standards-compliant ChangeLog entries based on the changes that it detects." +msgstr "" + +#: gnu/packages/version-control.scm:766 +msgid "Make histograms from the output of 'diff'" +msgstr "" + +#: gnu/packages/version-control.scm:768 +msgid "" +"Diffstat reads the output of 'diff' and displays a histogram of the\n" +"insertions, deletions, and modifications per-file. It is useful for reviewing\n" +"large, complex patch files." +msgstr "" + +#: gnu/packages/version-control.scm:809 +msgid "File-based version control like SCCS" +msgstr "" + +#: gnu/packages/version-control.scm:810 +msgid "" +"GNU CSSC provides a replacement for the legacy Unix source\n" +"code control system SCCS. This allows old code still under that system to be\n" +"accessed and migrated on modern systems." +msgstr "" + +#: gnu/packages/version-control.scm:891 +msgid "Project change supervisor" +msgstr "" + +#: gnu/packages/version-control.scm:892 +msgid "" +"Aegis is a project change supervisor, and performs some of\n" +"the Software Configuration Management needed in a CASE environment. Aegis\n" +"provides a framework within which a team of developers may work on many\n" +"changes to a program independently, and Aegis coordinates integrating these\n" +"changes back into the master source of the program, with as little disruption\n" +"as possible. Resolution of contention for source files, a major headache for\n" +"any project with more than one developer, is one of Aegis's major functions." +msgstr "" + +#: gnu/packages/version-control.scm:919 +msgid "Ncurses-based text user interface for Git" +msgstr "" + +#: gnu/packages/version-control.scm:921 +msgid "" +"Tig is an ncurses text user interface for Git, primarily intended as\n" +"a history browser. It can also stage hunks for commit, or colorize the\n" +"output of the 'git' command." +msgstr "" + +#: gnu/packages/webkit.scm:121 +msgid "Web content engine for GTK+" +msgstr "" + +#: gnu/packages/webkit.scm:123 +msgid "" +"WebKitGTK+ is a full-featured port of the WebKit rendering engine,\n" +"suitable for projects requiring any kind of web integration, from hybrid\n" +"HTML/CSS applications to full-fledged web browsers." +msgstr "" + +#: gnu/packages/web.scm:88 +msgid "Featureful HTTP server" +msgstr "" + +#: gnu/packages/web.scm:90 +msgid "" +"The Apache HTTP Server Project is a collaborative software development\n" +"effort aimed at creating a robust, commercial-grade, featureful, and\n" +"freely-available source code implementation of an HTTP (Web) server. The\n" +"project is jointly managed by a group of volunteers located around the world,\n" +"using the Internet and the Web to communicate, plan, and develop the server\n" +"and its related documentation." +msgstr "" + +#: gnu/packages/web.scm:168 +msgid "HTTP and reverse proxy server" +msgstr "" + +#: gnu/packages/web.scm:170 +msgid "" +"Nginx (\"engine X\") is a high-performance web and reverse proxy server\n" +"created by Igor Sysoev. It can be used both as a standalone web server\n" +"and as a proxy to reduce the load on back-end HTTP or mail servers." +msgstr "" + +#: gnu/packages/web.scm:206 +msgid "PSGI/Plack web server" +msgstr "" + +#: gnu/packages/web.scm:207 +msgid "" +"Starman is a PSGI perl web server that has unique features\n" +"such as high performance, preforking, signal support, superdaemon awareness,\n" +"and UNIX socket support." +msgstr "" + +#: gnu/packages/web.scm:226 +msgid "JSON C library" +msgstr "" + +#: gnu/packages/web.scm:228 +msgid "" +"Jansson is a C library for encoding, decoding and manipulating JSON\n" +"data." +msgstr "" + +#: gnu/packages/web.scm:259 +msgid "JSON implementation in C" +msgstr "" + +#: gnu/packages/web.scm:261 +msgid "" +"JSON-C implements a reference counting object model that allows you to\n" +"easily construct JSON objects in C, output them as JSON formatted strings and\n" +"parse JSON formatted strings back into the C representation of JSON objects." +msgstr "" + +#: gnu/packages/web.scm:287 +msgid "JSON parser/generator for C++ with both SAX/DOM style API" +msgstr "" + +#: gnu/packages/web.scm:289 +msgid "" +"RapidJSON is a fast JSON parser/generator for C++ with both SAX/DOM\n" +"style API." +msgstr "" + +#: gnu/packages/web.scm:307 +msgid "C library for parsing JSON" +msgstr "" + +#: gnu/packages/web.scm:309 +msgid "" +"Yet Another JSON Library (YAJL) is a small event-driven (SAX-style) JSON\n" +"parser written in ANSI C and a small validating JSON generator." +msgstr "" + +#: gnu/packages/web.scm:339 +msgid "WebSockets library written in C" +msgstr "" + +#: gnu/packages/web.scm:341 +msgid "" +"Libwebsockets is a library that allows C programs to establish client\n" +"and server WebSockets connections---a protocol layered above HTTP that allows\n" +"for efficient socket-like bidirectional reliable communication channels." +msgstr "" + +#: gnu/packages/web.scm:376 +msgid "C library for the Publix Suffix List" +msgstr "" + +#: gnu/packages/web.scm:378 +msgid "" +"A \"public suffix\" is a domain name under which Internet users can\n" +"directly register own names.\n" +"\n" +"Browsers and other web clients can use it to avoid privacy-leaking\n" +"\"supercookies\", avoid privacy-leaking \"super domain\" certificates, domain\n" +"highlighting parts of the domain in a user interface, and sorting domain lists\n" +"by site.\n" +"\n" +"Libpsl has built-in PSL data for fast access, allows to load PSL data from\n" +"files, checks if a given domain is a public suffix, provides immediate cookie\n" +"domain verification, finds the longest public part of a given domain, finds\n" +"the shortest private part of a given domain, works with international\n" +"domains (UTF-8 and IDNA2008 Punycode), is thread-safe, and handles IDNA2008\n" +"UTS#46." +msgstr "" + +#: gnu/packages/web.scm:424 +msgid "HTML validator and tidier" +msgstr "" + +#: gnu/packages/web.scm:425 +msgid "" +"HTML Tidy is a command-line tool and C library that can be\n" +"used to validate and fix HTML data." +msgstr "" + +#: gnu/packages/web.scm:465 +msgid "Light-weight HTTP/HTTPS proxy daemon" +msgstr "" + +#: gnu/packages/web.scm:466 +msgid "" +"Tinyproxy is a light-weight HTTP/HTTPS proxy\n" +"daemon. Designed from the ground up to be fast and yet small, it is an ideal\n" +"solution for use cases such as embedded deployments where a full featured HTTP\n" +"proxy is required, but the system resources for a larger proxy are\n" +"unavailable." +msgstr "" + +#: gnu/packages/web.scm:499 +msgid "Small caching web proxy" +msgstr "" + +#: gnu/packages/web.scm:501 +msgid "" +"Polipo is a small caching web proxy (web cache, HTTP proxy, and proxy\n" +"server). It was primarily designed to be used by one person or a small group\n" +"of people." +msgstr "" + +#: gnu/packages/web.scm:521 +msgid "YAML 1.1 parser and emitter written in C" +msgstr "" + +#: gnu/packages/web.scm:523 +msgid "LibYAML is a YAML 1.1 parser and emitter written in C." +msgstr "" + +#: gnu/packages/web.scm:539 gnu/packages/web.scm:572 gnu/packages/web.scm:594 +msgid "Media stream URL parser" +msgstr "" + +#: gnu/packages/web.scm:540 +msgid "" +"This package contains support scripts called by libquvi to\n" +"parse media stream properties." +msgstr "" + +#: gnu/packages/web.scm:573 +msgid "" +"libquvi is a library with a C API for parsing media stream\n" +"URLs and extracting their actual media files." +msgstr "" + +#: gnu/packages/web.scm:595 +msgid "" +"quvi is a command-line-tool suite to extract media files\n" +"from streaming URLs. It is a command-line wrapper for the libquvi library." +msgstr "" + +#: gnu/packages/web.scm:658 +msgid "High-performance asynchronous HTTP client library" +msgstr "" + +#: gnu/packages/web.scm:660 +msgid "" +"serf is a C-based HTTP client library built upon the Apache Portable\n" +"Runtime (APR) library. It multiplexes connections, running the read/write\n" +"communication asynchronously. Memory copies and transformations are kept to a\n" +"minimum to provide high performance operation." +msgstr "" + +#: gnu/packages/web.scm:715 +msgid "CSS pre-processor" +msgstr "" + +#: gnu/packages/web.scm:716 +msgid "" +"SassC is a compiler written in C for the CSS pre-processor\n" +"language known as SASS." +msgstr "" + +#: gnu/packages/web.scm:744 +msgid "Compile a log format string to perl-code" +msgstr "" + +#: gnu/packages/web.scm:745 +msgid "" +"This module provides methods to compile a log format string\n" +"to perl-code, for faster generation of access_log lines." +msgstr "" + +#: gnu/packages/web.scm:766 +msgid "SASL authentication framework" +msgstr "" + +#: gnu/packages/web.scm:767 +msgid "Authen::SASL provides an SASL authentication framework." +msgstr "" + +#: gnu/packages/web.scm:791 +msgid "Sensible default Catalyst action" +msgstr "" + +#: gnu/packages/web.scm:792 +msgid "" +"This Catalyst action implements a sensible default end\n" +"action, which will forward to the first available view." +msgstr "" + +#: gnu/packages/web.scm:820 +msgid "Automated REST Method Dispatching" +msgstr "" + +#: gnu/packages/web.scm:821 +msgid "" +"This Action handles doing automatic method dispatching for\n" +"REST requests. It takes a normal Catalyst action, and changes the dispatch to\n" +"append an underscore and method name. First it will try dispatching to an\n" +"action with the generated name, and failing that it will try to dispatch to a\n" +"regular method." +msgstr "" + +#: gnu/packages/web.scm:857 +msgid "Storage class for Catalyst authentication using DBIx::Class" +msgstr "" + +#: gnu/packages/web.scm:858 +msgid "" +"The Catalyst::Authentication::Store::DBIx::Class class\n" +"provides access to authentication information stored in a database via\n" +"DBIx::Class." +msgstr "" + +#: gnu/packages/web.scm:882 +msgid "Create only one instance of Moose component per context" +msgstr "" + +#: gnu/packages/web.scm:883 +msgid "" +"Catalyst::Component::InstancePerContext returns a new\n" +"instance of a component on each request." +msgstr "" + +#: gnu/packages/web.scm:920 +msgid "Catalyst Development Tools" +msgstr "" + +#: gnu/packages/web.scm:921 +msgid "" +"The Catalyst-Devel distribution includes a variety of\n" +"modules useful for the development of Catalyst applications, but not required\n" +"to run them. Catalyst-Devel includes the Catalyst::Helper system, which\n" +"autogenerates scripts and tests; Module::Install::Catalyst, a Module::Install\n" +"extension for Catalyst; and requirements for a variety of development-related\n" +"modules." +msgstr "" + +#: gnu/packages/web.scm:950 +msgid "Regex DispatchType for Catalyst" +msgstr "" + +#: gnu/packages/web.scm:951 +msgid "" +"Dispatch type managing path-matching behaviour using\n" +"regexes. Regex dispatch types have been deprecated and removed from Catalyst\n" +"core. It is recommend that you use Chained methods or other techniques\n" +"instead. As part of the refactoring, the dispatch priority of Regex vs Regexp\n" +"vs LocalRegex vs LocalRegexp may have changed. Priority is now influenced by\n" +"when the dispatch type is first seen in your application." +msgstr "" + +#: gnu/packages/web.scm:999 +msgid "DBIx::Class::Schema Model Class" +msgstr "" + +#: gnu/packages/web.scm:1000 +msgid "" +"This is a Catalyst Model for DBIx::Class::Schema-based\n" +"Models." +msgstr "" + +#: gnu/packages/web.scm:1024 +msgid "Request logging from within Catalyst" +msgstr "" + +#: gnu/packages/web.scm:1025 +msgid "" +"This Catalyst plugin enables you to create \"access logs\"\n" +"from within a Catalyst application instead of requiring a webserver to do it\n" +"for you. It will work even with Catalyst debug logging turned off." +msgstr "" + +#: gnu/packages/web.scm:1057 +msgid "Infrastructure plugin for the Catalyst authentication framework" +msgstr "" + +#: gnu/packages/web.scm:1058 +msgid "" +"The authentication plugin provides generic user support for\n" +"Catalyst apps. It is the basis for both authentication (checking the user is\n" +"who they claim to be), and authorization (allowing the user to do what the\n" +"system authorises them to do)." +msgstr "" + +#: gnu/packages/web.scm:1088 +msgid "Role-based authorization for Catalyst" +msgstr "" + +#: gnu/packages/web.scm:1089 +msgid "" +"Catalyst::Plugin::Authorization::Roles provides role-based\n" +"authorization for Catalyst based on Catalyst::Plugin::Authentication." +msgstr "" + +#: gnu/packages/web.scm:1112 +msgid "Captchas for Catalyst" +msgstr "" + +#: gnu/packages/web.scm:1113 +msgid "" +"This plugin creates and validates Captcha images for\n" +"Catalyst." +msgstr "" + +#: gnu/packages/web.scm:1139 +msgid "Load config files of various types" +msgstr "" + +#: gnu/packages/web.scm:1140 +msgid "" +"This module will attempt to load find and load configuration\n" +"files of various types. Currently it supports YAML, JSON, XML, INI and Perl\n" +"formats." +msgstr "" + +#: gnu/packages/web.scm:1170 +msgid "Catalyst generic session plugin" +msgstr "" + +#: gnu/packages/web.scm:1171 +msgid "" +"This plugin links the two pieces required for session\n" +"management in web applications together: the state, and the store." +msgstr "" + +#: gnu/packages/web.scm:1197 +msgid "Maintain session IDs using cookies" +msgstr "" + +#: gnu/packages/web.scm:1198 +msgid "" +"In order for Catalyst::Plugin::Session to work, the session\n" +"ID needs to be stored on the client, and the session data needs to be stored\n" +"on the server. This plugin stores the session ID on the client using the\n" +"cookie mechanism." +msgstr "" + +#: gnu/packages/web.scm:1228 +msgid "FastMmap session storage backend" +msgstr "" + +#: gnu/packages/web.scm:1229 +msgid "" +"Catalyst::Plugin::Session::Store::FastMmap is a fast session\n" +"storage plugin for Catalyst that uses an mmap'ed file to act as a shared\n" +"memory interprocess cache. It is based on Cache::FastMmap." +msgstr "" + +#: gnu/packages/web.scm:1252 +msgid "Stack trace on the Catalyst debug screen" +msgstr "" + +#: gnu/packages/web.scm:1253 +msgid "" +"This plugin enhances the standard Catalyst debug screen by\n" +"including a stack trace of your application up to the point where the error\n" +"occurred. Each stack frame is displayed along with the package name, line\n" +"number, file name, and code context surrounding the line number." +msgstr "" + +#: gnu/packages/web.scm:1279 +msgid "Simple serving of static pages" +msgstr "" + +#: gnu/packages/web.scm:1280 +msgid "" +"The Static::Simple plugin is designed to make serving static\n" +"content in your application during development quick and easy, without\n" +"requiring a single line of code from you. This plugin detects static files by\n" +"looking at the file extension in the URL (such as .css or .png or .js). The\n" +"plugin uses the lightweight MIME::Types module to map file extensions to\n" +"IANA-registered MIME types, and will serve your static files with the correct\n" +"MIME type directly to the browser, without being processed through Catalyst." +msgstr "" + +#: gnu/packages/web.scm:1346 +msgid "The Catalyst Framework Runtime" +msgstr "" + +#: gnu/packages/web.scm:1347 +msgid "" +"Catalyst is a modern framework for making web applications.\n" +"It is designed to make it easy to manage the various tasks you need to do to\n" +"run an application on the web, either by doing them itself, or by letting you\n" +"\"plug in\" existing Perl modules that do what you need." +msgstr "" + +#: gnu/packages/web.scm:1377 +msgid "Replace request base with value passed by HTTP proxy" +msgstr "" + +#: gnu/packages/web.scm:1378 +msgid "" +"This module is a Moose::Role which allows you more\n" +"flexibility in your application's deployment configurations when deployed\n" +"behind a proxy. Using this module, the request base ($c->req->base) is\n" +"replaced with the contents of the X-Request-Base header." +msgstr "" + +#: gnu/packages/web.scm:1404 +msgid "Download data in many formats" +msgstr "" + +#: gnu/packages/web.scm:1405 +msgid "" +"The purpose of this module is to provide a method for\n" +"downloading data into many supportable formats. For example, downloading a\n" +"table based report in a variety of formats (CSV, HTML, etc.)." +msgstr "" + +#: gnu/packages/web.scm:1430 +msgid "Catalyst JSON view" +msgstr "" + +#: gnu/packages/web.scm:1431 +msgid "" +"Catalyst::View::JSON is a Catalyst View handler that returns\n" +"stash data in JSON format." +msgstr "" + +#: gnu/packages/web.scm:1456 +msgid "Template View Class" +msgstr "" + +#: gnu/packages/web.scm:1457 +msgid "" +"This module is a Catalyst view class for the Template\n" +"Toolkit." +msgstr "" + +#: gnu/packages/web.scm:1486 +msgid "Trait Loading and Resolution for Catalyst Components" +msgstr "" + +#: gnu/packages/web.scm:1487 +msgid "" +"Adds a \"COMPONENT\" in Catalyst::Component method to your\n" +"Catalyst component base class that reads the optional \"traits\" parameter\n" +"from app and component config and instantiates the component subclass with\n" +"those traits using \"new_with_traits\" in MooseX::Traits from\n" +"MooseX::Traits::Pluggable." +msgstr "" + +#: gnu/packages/web.scm:1512 +msgid "Apply roles to Catalyst classes" +msgstr "" + +#: gnu/packages/web.scm:1513 +msgid "" +"CatalystX::RoleApplicator applies roles to Catalyst\n" +"application classes." +msgstr "" + +#: gnu/packages/web.scm:1539 +msgid "Catalyst development server with Starman" +msgstr "" + +#: gnu/packages/web.scm:1540 +msgid "" +"This module provides a Catalyst extension to replace the\n" +"development server with Starman." +msgstr "" + +#: gnu/packages/web.scm:1560 +msgid "CGI interface that is CGI.pm compliant" +msgstr "" + +#: gnu/packages/web.scm:1561 +msgid "" +"CGI::Simple provides a relatively lightweight drop in\n" +"replacement for CGI.pm. It shares an identical OO interface to CGI.pm for\n" +"parameter parsing, file upload, cookie handling and header generation." +msgstr "" + +#: gnu/packages/web.scm:1582 +msgid "Build structures from CGI data" +msgstr "" + +#: gnu/packages/web.scm:1583 +msgid "" +"This is a module for building structured data from CGI\n" +"inputs, in a manner reminiscent of how PHP does." +msgstr "" + +#: gnu/packages/web.scm:1604 +msgid "Date conversion routines" +msgstr "" + +#: gnu/packages/web.scm:1605 +msgid "" +"This module provides functions that deal with the date\n" +"formats used by the HTTP protocol." +msgstr "" + +#: gnu/packages/web.scm:1625 +msgid "MD5 sums for files and urls" +msgstr "" + +#: gnu/packages/web.scm:1626 +msgid "" +"Digest::MD5::File is a Perl extension for getting MD5 sums\n" +"for files and urls." +msgstr "" + +#: gnu/packages/web.scm:1644 +msgid "Perl locale encoding determination" +msgstr "" + +#: gnu/packages/web.scm:1646 +msgid "" +"The POSIX locale system is used to specify both the language\n" +"conventions requested by the user and the preferred character set to\n" +"consume and output. The Encode::Locale module looks up the charset and\n" +"encoding (called a CODESET in the locale jargon) and arranges for the\n" +"Encode module to know this encoding under the name \"locale\". It means\n" +"bytes obtained from the environment can be converted to Unicode strings\n" +"by calling Encode::encode(locale => $bytes) and converted back again\n" +"with Encode::decode(locale => $string)." +msgstr "" + +#: gnu/packages/web.scm:1672 +msgid "Perl directory listing parser" +msgstr "" + +#: gnu/packages/web.scm:1674 +msgid "" +"The File::Listing module exports a single function called parse_dir(),\n" +"which can be used to parse directory listings." +msgstr "" + +#: gnu/packages/web.scm:1705 +msgid "Stock and mutual fund quotes" +msgstr "" + +#: gnu/packages/web.scm:1707 +msgid "" +"Finance::Quote gets stock quotes from various internet sources, including\n" +"Yahoo! Finance, Fidelity Investments, and the Australian Stock Exchange." +msgstr "" + +#: gnu/packages/web.scm:1729 +msgid "Perl extension providing access to the GSSAPIv2 library" +msgstr "" + +#: gnu/packages/web.scm:1730 +msgid "" +"This is a Perl extension for using GSSAPI C bindings as\n" +"described in RFC 2744." +msgstr "" + +#: gnu/packages/web.scm:1750 +msgid "Manipulate tables of HTML::Element" +msgstr "" + +#: gnu/packages/web.scm:1752 +msgid "" +"HTML::Element::Extended is a Perl extension for manipulating a table\n" +"composed of HTML::Element style components." +msgstr "" + +#: gnu/packages/web.scm:1776 +msgid "Perl class representing an HTML form element" +msgstr "" + +#: gnu/packages/web.scm:1777 +msgid "" +"Objects of the HTML::Form class represents a single HTML\n" +"
...
instance." +msgstr "" + +#: gnu/packages/web.scm:1799 +msgid "Check for HTML errors in a string or file" +msgstr "" + +#: gnu/packages/web.scm:1800 +msgid "" +"HTML::Lint is a pure-Perl HTML parser and checker for\n" +"syntactic legitmacy." +msgstr "" + +#: gnu/packages/web.scm:1821 +msgid "Extract contents from HTML tables" +msgstr "" + +#: gnu/packages/web.scm:1823 +msgid "" +"HTML::TableExtract is a Perl module for extracting the content contained\n" +"in tables within an HTML document, either as text or encoded element trees." +msgstr "" + +#: gnu/packages/web.scm:1847 +msgid "Work with HTML in a DOM-like tree structure" +msgstr "" + +#: gnu/packages/web.scm:1848 +msgid "" +"This distribution contains a suite of modules for\n" +"representing, creating, and extracting information from HTML syntax trees." +msgstr "" + +#: gnu/packages/web.scm:1868 +msgid "Perl HTML parser class" +msgstr "" + +#: gnu/packages/web.scm:1870 +msgid "" +"Objects of the HTML::Parser class will recognize markup and separate\n" +"it from plain text (alias data content) in HTML documents. As different\n" +"kinds of markup and text are recognized, the corresponding event handlers\n" +"are invoked." +msgstr "" + +#: gnu/packages/web.scm:1890 +msgid "Perl data tables useful in parsing HTML" +msgstr "" + +#: gnu/packages/web.scm:1892 +msgid "" +"The HTML::Tagset module contains several data tables useful in various\n" +"kinds of HTML parsing operations." +msgstr "" + +#: gnu/packages/web.scm:1915 +msgid "HTTP Body Parser" +msgstr "" + +#: gnu/packages/web.scm:1916 +msgid "" +"HTTP::Body parses chunks of HTTP POST data and supports\n" +"application/octet-stream, application/json, application/x-www-form-urlencoded,\n" +"and multipart/form-data." +msgstr "" + +#: gnu/packages/web.scm:1942 +msgid "Minimalist HTTP user agent cookie jar" +msgstr "" + +#: gnu/packages/web.scm:1943 +msgid "" +"This module implements a minimalist HTTP user agent cookie\n" +"jar in conformance with RFC 6265 ." +msgstr "" + +#: gnu/packages/web.scm:1963 +msgid "Perl HTTP cookie jars" +msgstr "" + +#: gnu/packages/web.scm:1965 +msgid "" +"The HTTP::Cookies class is for objects that represent a cookie jar,\n" +"that is, a database of all the HTTP cookies that a given LWP::UserAgent\n" +"object knows about." +msgstr "" + +#: gnu/packages/web.scm:1987 +msgid "Perl simple http server class" +msgstr "" + +#: gnu/packages/web.scm:1989 +msgid "" +"Instances of the HTTP::Daemon class are HTTP/1.1 servers that listen\n" +"on a socket for incoming requests. The HTTP::Daemon is a subclass of\n" +"IO::Socket::INET, so you can perform socket operations directly on it too." +msgstr "" + +#: gnu/packages/web.scm:2008 +msgid "Perl date conversion routines" +msgstr "" + +#: gnu/packages/web.scm:2010 +msgid "" +"The HTTP::Date module provides functions that deal with date formats\n" +"used by the HTTP protocol (and then some more)." +msgstr "" + +#: gnu/packages/web.scm:2033 +msgid "Perl HTTP style message" +msgstr "" + +#: gnu/packages/web.scm:2035 +msgid "An HTTP::Message object contains some headers and a content body." +msgstr "" + +#: gnu/packages/web.scm:2054 +msgid "Perl http content negotiation" +msgstr "" + +#: gnu/packages/web.scm:2056 +msgid "" +"The HTTP::Negotiate module provides a complete implementation of the\n" +"HTTP content negotiation algorithm specified in\n" +"draft-ietf-http-v11-spec-00.ps chapter 12. Content negotiation allows for\n" +"the selection of a preferred content representation based upon attributes\n" +"of the negotiable variants and the value of the various Accept* header\n" +"fields in the request." +msgstr "" + +#: gnu/packages/web.scm:2081 +msgid "Parse HTTP/1.1 requests" +msgstr "" + +#: gnu/packages/web.scm:2082 +msgid "" +"This is an HTTP request parser. It takes chunks of text as\n" +"received and returns a 'hint' as to what is required, or returns the\n" +"HTTP::Request when a complete request has been read. HTTP/1.1 chunking is\n" +"supported." +msgstr "" + +#: gnu/packages/web.scm:2102 +msgid "Fast HTTP request parser" +msgstr "" + +#: gnu/packages/web.scm:2103 +msgid "" +"HTTP::Parser::XS is a fast, primitive HTTP request/response\n" +"parser." +msgstr "" + +#: gnu/packages/web.scm:2124 +msgid "Set up a CGI environment from an HTTP::Request" +msgstr "" + +#: gnu/packages/web.scm:2125 +msgid "" +"This module provides a convenient way to set up a CGI\n" +"environment from an HTTP::Request." +msgstr "" + +#: gnu/packages/web.scm:2147 +msgid "Lightweight HTTP server" +msgstr "" + +#: gnu/packages/web.scm:2148 +msgid "" +"HTTP::Server::Simple is a simple standalone HTTP daemon with\n" +"no non-core module dependencies. It can be used for building a standalone\n" +"http-based UI to your existing tools." +msgstr "" + +#: gnu/packages/web.scm:2172 +msgid "HTTP/1.1 client" +msgstr "" + +#: gnu/packages/web.scm:2173 +msgid "" +"This is a very simple HTTP/1.1 client, designed for doing\n" +"simple requests without the overhead of a large framework like LWP::UserAgent.\n" +"It supports proxies and redirection. It also correctly resumes after EINTR." +msgstr "" + +#: gnu/packages/web.scm:2192 +msgid "Perl module to open an HTML file with automatic charset detection" +msgstr "" + +#: gnu/packages/web.scm:2194 +msgid "" +"IO::HTML provides an easy way to open a file containing HTML while\n" +"automatically determining its encoding. It uses the HTML5 encoding sniffing\n" +"algorithm specified in section 8.2.2.1 of the draft standard." +msgstr "" + +#: gnu/packages/web.scm:2213 +msgid "Family-neutral IP socket supporting both IPv4 and IPv6" +msgstr "" + +#: gnu/packages/web.scm:2214 +msgid "" +"This module provides a protocol-independent way to use IPv4\n" +"and IPv6 sockets, intended as a replacement for IO::Socket::INET." +msgstr "" + +#: gnu/packages/web.scm:2231 +msgid "Nearly transparent SSL encapsulation for IO::Socket::INET" +msgstr "" + +#: gnu/packages/web.scm:2233 +msgid "" +"IO::Socket::SSL makes using SSL/TLS much easier by wrapping the\n" +"necessary functionality into the familiar IO::Socket interface and providing\n" +"secure defaults whenever possible. This way existing applications can be made\n" +"SSL-aware without much effort, at least if you do blocking I/O and don't use\n" +"select or poll." +msgstr "" + +#: gnu/packages/web.scm:2264 +msgid "Perl modules for the WWW" +msgstr "" + +#: gnu/packages/web.scm:2266 +msgid "" +"The libwww-perl collection is a set of Perl modules which provides a\n" +"simple and consistent application programming interface to the\n" +"World-Wide Web. The main focus of the library is to provide classes\n" +"and functions that allow you to write WWW clients. The library also\n" +"contains modules that are of more general use and even classes that\n" +"help you implement simple HTTP servers." +msgstr "" + +#: gnu/packages/web.scm:2288 +msgid "Perl module to guess the media type for a file or a URL" +msgstr "" + +#: gnu/packages/web.scm:2290 +#, scheme-format +msgid "" +"The LWP::MediaTypes module provides functions for handling media (also\n" +"known as MIME) types and encodings. The mapping from file extensions to\n" +"media types is defined by the media.types file. If the ~/.media.types file\n" +"exists it is used instead." +msgstr "" + +#: gnu/packages/web.scm:2316 +msgid "HTTPS support for LWP::UserAgent" +msgstr "" + +#: gnu/packages/web.scm:2317 +msgid "" +"The LWP::Protocol::https module provides support for using\n" +"https schemed URLs with LWP." +msgstr "" + +#: gnu/packages/web.scm:2337 +msgid "Virtual browser that retries errors" +msgstr "" + +#: gnu/packages/web.scm:2338 +msgid "" +"LWP::UserAgent::Determined works just like LWP::UserAgent,\n" +"except that when you use it to get a web page but run into a\n" +"possibly-temporary error (like a DNS lookup timeout), it'll wait a few seconds\n" +"and retry a few times." +msgstr "" + +#: gnu/packages/web.scm:2383 +msgid "Perl interface to Amazon S3" +msgstr "" + +#: gnu/packages/web.scm:2384 +msgid "This module provides a Perlish interface to Amazon S3." +msgstr "" + +#: gnu/packages/web.scm:2404 +msgid "Perl low-level HTTP connection (client)" +msgstr "" + +#: gnu/packages/web.scm:2406 +msgid "" +"The Net::HTTP class is a low-level HTTP client. An instance of the\n" +"Net::HTTP class represents a connection to an HTTP server. The HTTP protocol\n" +"is described in RFC 2616. The Net::HTTP class supports HTTP/1.0 and\n" +"HTTP/1.1." +msgstr "" + +#: gnu/packages/web.scm:2426 +msgid "Extensible Perl server engine" +msgstr "" + +#: gnu/packages/web.scm:2427 +msgid "" +"Net::Server is an extensible, generic Perl server engine.\n" +"It attempts to be a generic server as in Net::Daemon and NetServer::Generic.\n" +"It includes with it the ability to run as an inetd\n" +"process (Net::Server::INET), a single connection server (Net::Server or\n" +"Net::Server::Single), a forking server (Net::Server::Fork), a preforking\n" +"server which maintains a constant number of preforked\n" +"children (Net::Server::PreForkSimple), or as a managed preforking server which\n" +"maintains the number of children based on server load (Net::Server::PreFork).\n" +"In all but the inetd type, the server provides the ability to connect to one\n" +"or to multiple server ports." +msgstr "" + +#: gnu/packages/web.scm:2455 +msgid "SSL support for Net::SMTP" +msgstr "" + +#: gnu/packages/web.scm:2456 +msgid "SSL support for Net::SMTP." +msgstr "" + +#: gnu/packages/web.scm:2490 +msgid "Perl Superglue for Web frameworks and servers (PSGI toolkit)" +msgstr "" + +#: gnu/packages/web.scm:2491 +msgid "" +"Plack is a set of tools for using the PSGI stack. It\n" +"contains middleware components, a reference server, and utilities for Web\n" +"application frameworks. Plack is like Ruby's Rack or Python's Paste for\n" +"WSGI." +msgstr "" + +#: gnu/packages/web.scm:2517 +msgid "Plack::Middleware which sets body for redirect response" +msgstr "" + +#: gnu/packages/web.scm:2518 +msgid "" +"This module sets the body in redirect response, if it's not\n" +"already set." +msgstr "" + +#: gnu/packages/web.scm:2539 +msgid "Override REST methods to Plack apps via POST" +msgstr "" + +#: gnu/packages/web.scm:2540 +msgid "" +"This middleware allows for POST requests that pretend to be\n" +"something else: by adding either a header named X-HTTP-Method-Override to the\n" +"request, or a query parameter named x-tunneled-method to the URI, the client\n" +"can say what method it actually meant." +msgstr "" + +#: gnu/packages/web.scm:2564 +msgid "Plack::Middleware which removes body for HTTP response" +msgstr "" + +#: gnu/packages/web.scm:2565 +msgid "" +"This module removes the body in an HTTP response if it's not\n" +"required." +msgstr "" + +#: gnu/packages/web.scm:2586 +msgid "Supports app to run as a reverse proxy backend" +msgstr "" + +#: gnu/packages/web.scm:2587 +msgid "" +"Plack::Middleware::ReverseProxy resets some HTTP headers,\n" +"which are changed by reverse-proxy. You can specify the reverse proxy address\n" +"and stop fake requests using 'enable_if' directive in your app.psgi." +msgstr "" + +#: gnu/packages/web.scm:2608 +msgid "Run HTTP tests on external live servers" +msgstr "" + +#: gnu/packages/web.scm:2609 +msgid "" +"This module allows your to run your Plack::Test tests\n" +"against an external server instead of just against a local application through\n" +"either mocked HTTP or a locally spawned server." +msgstr "" + +#: gnu/packages/web.scm:2631 +msgid "Testing TCP programs" +msgstr "" + +#: gnu/packages/web.scm:2632 +msgid "Test::TCP is test utilities for TCP/IP programs." +msgstr "" + +#: gnu/packages/web.scm:2660 +msgid "Testing-specific WWW::Mechanize subclass" +msgstr "" + +#: gnu/packages/web.scm:2661 +msgid "" +"Test::WWW::Mechanize is a subclass of the Perl module\n" +"WWW::Mechanize that incorporates features for web application testing." +msgstr "" + +#: gnu/packages/web.scm:2694 +msgid "Test::WWW::Mechanize for Catalyst" +msgstr "" + +#: gnu/packages/web.scm:2695 +msgid "" +"The Test::WWW::Mechanize::Catalyst module meshes the\n" +"Test::WWW:Mechanize module and the Catalyst web application framework to allow\n" +"testing of Catalyst applications without needing to start up a web server." +msgstr "" + +#: gnu/packages/web.scm:2719 +msgid "Test PSGI programs using WWW::Mechanize" +msgstr "" + +#: gnu/packages/web.scm:2720 +msgid "" +"PSGI is a specification to decouple web server environments\n" +"from web application framework code. Test::WWW::Mechanize is a subclass of\n" +"WWW::Mechanize that incorporates features for web application testing. The\n" +"Test::WWW::Mechanize::PSGI module meshes the two to allow easy testing of PSGI\n" +"applications." +msgstr "" + +#: gnu/packages/web.scm:2740 +msgid "Perl Uniform Resource Identifiers (absolute and relative)" +msgstr "" + +#: gnu/packages/web.scm:2742 +msgid "" +"The URI module implements the URI class. Objects of this class\n" +"represent \"Uniform Resource Identifier references\" as specified in RFC 2396\n" +"and updated by RFC 2732." +msgstr "" + +#: gnu/packages/web.scm:2763 +msgid "Find URIs in arbitrary text" +msgstr "" + +#: gnu/packages/web.scm:2764 +msgid "" +"This module finds URIs and URLs (according to what URI.pm\n" +"considers a URI) in plain text. It only finds URIs which include a\n" +"scheme (http:// or the like), for something a bit less strict, consider\n" +"URI::Find::Schemeless. For a command-line interface, urifind is provided." +msgstr "" + +#: gnu/packages/web.scm:2786 +msgid "WebSocket support for URI package" +msgstr "" + +#: gnu/packages/web.scm:2787 +msgid "" +"With this module, the URI package provides the same set of\n" +"methods for WebSocket URIs as it does for HTTP URIs." +msgstr "" + +#: gnu/packages/web.scm:2807 +msgid "Perl extension interface for libcurl" +msgstr "" + +#: gnu/packages/web.scm:2809 +msgid "" +"This is a Perl extension interface for the libcurl file downloading\n" +"library." +msgstr "" + +#: gnu/packages/web.scm:2836 +msgid "Web browsing in a Perl object" +msgstr "" + +#: gnu/packages/web.scm:2837 +msgid "" +"WWW::Mechanize is a Perl module for stateful programmatic\n" +"web browsing, used for automating interaction with websites." +msgstr "" + +#: gnu/packages/web.scm:2857 +msgid "Perl database of robots.txt-derived permissions" +msgstr "" + +#: gnu/packages/web.scm:2859 +msgid "" +"The WWW::RobotRules module parses /robots.txt files as specified in\n" +"\"A Standard for Robot Exclusion\", at\n" +". Webmasters can use the\n" +"/robots.txt file to forbid conforming robots from accessing parts of\n" +"their web site." +msgstr "" + +#: gnu/packages/web.scm:2879 +msgid "HTTP and WebSocket server library for R" +msgstr "" + +#: gnu/packages/web.scm:2881 +msgid "" +"The httpuv package provides low-level socket and protocol support for\n" +"handling HTTP and WebSocket requests directly from within R. It is primarily\n" +"intended as a building block for other packages, rather than making it\n" +"particularly easy to create complete web applications using httpuv alone." +msgstr "" + +#: gnu/packages/web.scm:2902 +msgid "Robust, high performance JSON parser and generator for R" +msgstr "" + +#: gnu/packages/web.scm:2904 +msgid "" +"The jsonlite package provides a fast JSON parser and generator optimized\n" +"for statistical data and the web. It offers flexible, robust, high\n" +"performance tools for working with JSON in R and is particularly powerful for\n" +"building pipelines and interacting with a web API. In addition to converting\n" +"JSON data from/to R objects, jsonlite contains functions to stream, validate,\n" +"and prettify JSON data. The unit tests included with the package verify that\n" +"all edge cases are encoded and decoded consistently for use with dynamic data\n" +"in systems and applications." +msgstr "" + +#: gnu/packages/web.scm:2932 +msgid "Simple HTTP server to serve static files or dynamic documents" +msgstr "" + +#: gnu/packages/web.scm:2934 +msgid "" +"Servr provides an HTTP server in R to serve static files, or dynamic\n" +"documents that can be converted to HTML files (e.g., R Markdown) under a given\n" +"directory." +msgstr "" + +#: gnu/packages/web.scm:2953 +msgid "R tools for HTML" +msgstr "" + +#: gnu/packages/web.scm:2955 +msgid "This package provides tools for HTML generation and output in R." +msgstr "" + +#: gnu/packages/web.scm:2974 +msgid "HTML Widgets for R" +msgstr "" + +#: gnu/packages/web.scm:2976 +msgid "" +"HTML widgets is a framework for creating HTML widgets that render in\n" +"various contexts including the R console, R Markdown documents, and Shiny web\n" +"applications." +msgstr "" + +#: gnu/packages/weechat.scm:92 +msgid "Extensible chat client" +msgstr "" + +#: gnu/packages/weechat.scm:93 +msgid "" +"WeeChat (Wee Enhanced Environment for Chat) is an\n" +"Internet Relay Chat client, which is designed to be light and fast.\n" +"The client uses a curses frontend, and there are remote interfaces\n" +"for Web, Qt, Android and Emacs. In WeeChat everything can be done\n" +"with a keyboard, though it also supports mouse. It is customizable\n" +"and extensible with plugins and scripts." +msgstr "" + +#: gnu/packages/wordnet.scm:79 +msgid "Lexical database for the English language" +msgstr "" + +#: gnu/packages/wordnet.scm:81 +msgid "" +"WordNet® is a large lexical database of English. Nouns, verbs,\n" +"adjectives and adverbs are grouped into sets of cognitive synonyms (synsets),\n" +"each expressing a distinct concept. Synsets are interlinked by means of\n" +"conceptual-semantic and lexical relations. The resulting network of\n" +"meaningfully related words and concepts can be navigated with the browser.\n" +"WordNet is also freely and publicly available for download. WordNet's\n" +"structure makes it a useful tool for computational linguistics and natural\n" +"language processing." +msgstr "" + +#: gnu/packages/xiph.scm:65 +msgid "Library for manipulating the ogg multimedia format" +msgstr "" + +#: gnu/packages/xiph.scm:67 +msgid "" +"The libogg library allows to manipulate the ogg multimedia container\n" +"format, which encapsulates raw compressed data and allows the interleaving of\n" +"audio and video data. In addition to encapsulation and interleaving of\n" +"multiple data streams, ogg provides packet framing, error detection, and\n" +"periodic timestamps for seeking." +msgstr "" + +#: gnu/packages/xiph.scm:91 +msgid "Library implementing the vorbis audio format" +msgstr "" + +#: gnu/packages/xiph.scm:93 +msgid "" +"The libvorbis library implements the ogg vorbis audio format,\n" +"a fully open, non-proprietary, patent-and-royalty-free, general-purpose\n" +"compressed audio format for mid to high quality (8kHz-48.0kHz, 16+ bit,\n" +"polyphonic) audio and music at fixed and variable bitrates from 16 to\n" +"128 kbps/channel." +msgstr "" + +#: gnu/packages/xiph.scm:118 +msgid "Library implementing the Theora video format" +msgstr "" + +#: gnu/packages/xiph.scm:120 +msgid "" +"The libtheora library implements the ogg theora video format,\n" +"a fully open, non-proprietary, patent-and-royalty-free, general-purpose\n" +"compressed video format." +msgstr "" + +#: gnu/packages/xiph.scm:141 +msgid "Library for patent-free audio compression format" +msgstr "" + +#: gnu/packages/xiph.scm:143 +msgid "" +"GNU Speex is a patent-free audio compression codec specially designed\n" +"for speech. It is well-adapted to internet applications, such as VoIP. It\n" +"features compression of different bands in the same bitstream, intensity\n" +"stereo encoding, and voice activity detection." +msgstr "" + +#: gnu/packages/xiph.scm:171 +msgid "Cross platform audio library" +msgstr "" + +#: gnu/packages/xiph.scm:173 +msgid "" +"Libao is a cross-platform audio library that allows programs to\n" +"output audio using a simple API on a wide variety of platforms.\n" +"It currently supports:\n" +"Null output (handy for testing without a sound device),\n" +"WAV files,\n" +"AU files,\n" +"RAW files,\n" +"OSS (Open Sound System, used on Linux and FreeBSD),\n" +"ALSA (Advanced Linux Sound Architecture),\n" +"aRts (Analog RealTime Synth, used by KDE),\n" +"PulseAudio (next generation GNOME sound server),\n" +"esd (EsounD or Enlightened Sound Daemon),\n" +"Mac OS X,\n" +"Windows (98 and later),\n" +"AIX,\n" +"Sun/NetBSD/OpenBSD,\n" +"IRIX,\n" +"NAS (Network Audio Server),\n" +"RoarAudio (Modern, multi-OS, networked Sound System),\n" +"OpenBSD's sndio." +msgstr "" + +#: gnu/packages/xiph.scm:212 +msgid "Free lossless audio codec" +msgstr "" + +#: gnu/packages/xiph.scm:214 +msgid "" +"FLAC stands for Free Lossless Audio Codec, an audio format that is lossless,\n" +"meaning that audio is compressed in FLAC without any loss in quality." +msgstr "" + +#: gnu/packages/xiph.scm:240 +msgid "Karaoke and text codec for embedding in ogg" +msgstr "" + +#: gnu/packages/xiph.scm:242 +msgid "" +"Kate is an overlay codec, originally designed for karaoke and text,\n" +"that can be multiplixed in Ogg. Text and images can be carried by a Kate\n" +"stream, and animated. Most of the time, this would be multiplexed with\n" +"audio/video to carry subtitles, song lyrics (with or without karaoke data),\n" +"etc., but doesn't have to be.\n" +"\n" +"Series of curves (splines, segments, etc.) may be attached to various\n" +"properties (text position, font size, etc.) to create animated overlays.\n" +"This allows scrolling or fading text to be defined. This can even be used\n" +"to draw arbitrary shapes, so hand drawing can also be represented by a\n" +"Kate stream." +msgstr "" + +#: gnu/packages/xiph.scm:276 +msgid "Ogg vorbis tools" +msgstr "" + +#: gnu/packages/xiph.scm:278 +msgid "" +"Ogg vorbis is a non-proprietary, patent-and-royalty-free,\n" +"general-purpose compressed audio format.\n" +"\n" +"The package vorbis-tools contains\n" +"ogg123, an ogg vorbis command line audio player;\n" +"oggenc, the ogg vorbis encoder;\n" +"oggdec, a simple, portable command line decoder (to wav and raw);\n" +"ogginfo, to obtain information (tags, bitrate, length, etc.) about\n" +" an ogg vorbis file." +msgstr "" + +#: gnu/packages/xiph.scm:303 gnu/packages/xiph.scm:366 +msgid "Versatile audio codec" +msgstr "" + +#: gnu/packages/xiph.scm:305 +msgid "" +"Opus is a totally open, royalty-free, highly versatile audio codec. Opus\n" +"is unmatched for interactive speech and music transmission over the Internet,\n" +"but is also intended for storage and streaming applications. It is\n" +"standardized by the Internet Engineering Task Force (IETF) as RFC 6716 which\n" +"incorporated technology from Skype's SILK codec and Xiph.Org's CELT codec." +msgstr "" + +#: gnu/packages/xiph.scm:339 +msgid "Command line utilities to encode, inspect, and decode .opus files" +msgstr "" + +#: gnu/packages/xiph.scm:340 +msgid "" +"Opus is a royalty-free, highly versatile audio codec.\n" +"Opus-tools provide command line utilities for creating, inspecting and\n" +"decoding .opus files." +msgstr "" + +#: gnu/packages/xiph.scm:368 +msgid "" +"The opusfile library provides seeking, decode, and playback of Opus\n" +"streams in the Ogg container (.opus files) including over http(s) on posix and\n" +"windows systems." +msgstr "" + +#: gnu/packages/xiph.scm:398 +msgid "Streaming media server" +msgstr "" + +#: gnu/packages/xiph.scm:399 +msgid "" +"Icecast is a streaming media server which currently supports\n" +"Ogg (Vorbis and Theora), Opus, WebM and MP3 audio streams. It can be used to\n" +"create an Internet radio station or a privately running jukebox and many\n" +"things in between." +msgstr "" + +#: gnu/packages/xiph.scm:427 +msgid "Audio streaming library for icecast encoders" +msgstr "" + +#: gnu/packages/xiph.scm:429 +msgid "" +"Libshout is a library for communicating with and sending data to an\n" +"icecast server. It handles the socket connection, the timing of the data,\n" +"and prevents bad data from getting to the icecast server." +msgstr "" + +#: gnu/packages/zip.scm:57 +msgid "Compression and file packing utility" +msgstr "" + +#: gnu/packages/zip.scm:59 +msgid "" +"Zip is a compression and file packaging/archive utility. Zip is useful\n" +"for packaging a set of files for distribution, for archiving files, and for\n" +"saving disk space by temporarily compressing unused files or directories.\n" +"Zip puts one or more compressed files into a single ZIP archive, along with\n" +"information about the files (name, path, date, time of last modification,\n" +"protection, and check information to verify file integrity). An entire\n" +"directory structure can be packed into a ZIP archive with a single command.\n" +"\n" +"Zip has one compression method (deflation) and can also store files without\n" +"compression. Zip automatically chooses the better of the two for each file.\n" +"Compression ratios of 2:1 to 3:1 are common for text files." +msgstr "" + +#: gnu/packages/zip.scm:111 +msgid "Decompression and file extraction utility" +msgstr "" + +#: gnu/packages/zip.scm:113 +msgid "" +"UnZip is an extraction utility for archives compressed in .zip format,\n" +"also called \"zipfiles\".\n" +"\n" +"UnZip lists, tests, or extracts files from a .zip archive. The default\n" +"behaviour (with no options) is to extract into the current directory, and\n" +"subdirectories below it, all files from the specified zipfile. UnZip\n" +"recreates the stored directory structure by default." +msgstr "" + +#: gnu/packages/zip.scm:147 +msgid "Library for accessing zip files" +msgstr "" + +#: gnu/packages/zip.scm:149 +msgid "ZZipLib is a library based on zlib for accessing zip files." +msgstr "" + +#: gnu/packages/zip.scm:167 +msgid "Provides an interface to ZIP archive files" +msgstr "" + +#: gnu/packages/zsh.scm:65 +msgid "Powerful shell for interactive use and scripting" +msgstr "" + +#: gnu/packages/zsh.scm:66 +msgid "" +"The Z shell (zsh) is a Unix shell that can be used\n" +"as an interactive login shell and as a powerful command interpreter\n" +"for shell scripting. Zsh can be thought of as an extended Bourne shell\n" +"with a large number of improvements, including some features of bash,\n" +"ksh, and tcsh." +msgstr "" -- cgit v1.2.3 From f8f8897f7ef7dffb0ad5a68a7fd5106e2c61c48b Mon Sep 17 00:00:00 2001 From: Alex Vong Date: Mon, 7 Dec 2015 00:33:08 +0800 Subject: gnu: mp3info: Update URL. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/mp3.scm (mp3info): Update source URL. Signed-off-by: Ludovic Courtès --- gnu/packages/mp3.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/packages/mp3.scm b/gnu/packages/mp3.scm index ae948694ab..5dec2a8b3f 100644 --- a/gnu/packages/mp3.scm +++ b/gnu/packages/mp3.scm @@ -171,7 +171,8 @@ Speex, WavPack TrueAudio, WAV, AIFF, MP4 and ASF files.") (source (origin (method url-fetch) (uri (string-append - "ftp://ftp.ibiblio.org/pub/linux/apps/sound/mp3-utils/mp3info/mp3info-" + "http://ibiblio.org" + "/pub/linux/apps/sound/mp3-utils/mp3info/mp3info-" version ".tgz")) (sha256 (base32 -- cgit v1.2.3 From 5f47e71343837684d33a4cf155ec9a66ac8a61db Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 7 Dec 2015 10:40:05 +0200 Subject: gnu: libmicrohttpd: Update to 0.9.47. * gnu/packages/gnunet.scm (libmicrohttpd): Update to 0.9.47. --- gnu/packages/gnunet.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnunet.scm b/gnu/packages/gnunet.scm index f809665c8c..2a4c5cfeed 100644 --- a/gnu/packages/gnunet.scm +++ b/gnu/packages/gnunet.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2013, 2014, 2015 Andreas Enge ;;; Copyright © 2014 Sree Harsha Totakura ;;; Copyright © 2015 Ludovic Courtès +;;; Copyright © 2015 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -113,14 +114,14 @@ tool to extract metadata from a file and print the results.") (define-public libmicrohttpd (package (name "libmicrohttpd") - (version "0.9.46") + (version "0.9.47") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/libmicrohttpd/libmicrohttpd-" version ".tar.gz")) (sha256 (base32 - "0yc97flxi6pjkfj9k0d3cpnw59j92ky67q3g37la23rr9xjx5nq6")))) + "1335kznai5ih3kmavl1707sr4sakk0cc0srl5aax77x0a91spgcn")))) (build-system gnu-build-system) (inputs `(("curl" ,curl) -- cgit v1.2.3 From b847618f65a5365ebc317ce3cb3a07dacb529d41 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 7 Dec 2015 10:59:54 +0200 Subject: gnu: help2man: Update to 1.47.3. * gnu/packages/man.scm (help2man): Update to 1.47.3. --- gnu/packages/man.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/man.scm b/gnu/packages/man.scm index 3298268d28..b11c0d149c 100644 --- a/gnu/packages/man.scm +++ b/gnu/packages/man.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2014 David Thompson ;;; Copyright © 2015 Ricardo Wurmus ;;; Copyright © 2015 Alex Kost +;;; Copyright © 2015 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -162,7 +163,7 @@ Linux kernel and C library interfaces employed by user-space programs.") (define-public help2man (package (name "help2man") - (version "1.47.2") + (version "1.47.3") (source (origin (method url-fetch) @@ -170,7 +171,7 @@ Linux kernel and C library interfaces employed by user-space programs.") version ".tar.xz")) (sha256 (base32 - "0z1zgw6k1fba59fii6ksfi1g2gci6i4ysa3kdfh3j475fdkn1if4")))) + "0miqq77ssk5rgsc9xlv7k5n2wk2c5wv2m1kh4zhbwrggfmjaycn2")))) (build-system gnu-build-system) (arguments `(;; There's no `check' target. #:tests? #f)) -- cgit v1.2.3 From 044176621e80eaf7c97cf92a5ea6cf97bd7dd45a Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 7 Dec 2015 12:31:56 +0200 Subject: gnu: python2-zope-security: Use python2-zope-testrunner. * gnu/packages/python.scm (python2-zope-security): Do it. --- gnu/packages/python.scm | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 056775ec40..d01c1d3df1 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -6345,7 +6345,13 @@ security policies on Python objects.") (license zpl2.1))) (define-public python2-zope-security - (package-with-python2 python-zope-security)) + (let ((zope-security (package-with-python2 python-zope-security))) + (package (inherit zope-security) + (propagated-inputs + `(("python2-zope-testrunner" ,python2-zope-testrunner) + ,@(alist-delete + "python-zope-testrunner" + (package-propagated-inputs zope-security))))))) (define-public python-zope-component (package -- cgit v1.2.3 From e5be0e01f257bd0659a3ef5e045b86b5b04d41ae Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 7 Dec 2015 13:07:18 +0200 Subject: gnu: keepassx: Update to 2.0. * gnu/packages/password-utils.scm (keepassx): Update to 2.0. [source]: Change to official release location. --- gnu/packages/password-utils.scm | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-utils.scm index 3cb319aeda..1ca327b5c8 100644 --- a/gnu/packages/password-utils.scm +++ b/gnu/packages/password-utils.scm @@ -57,15 +57,14 @@ human.") (define-public keepassx (package (name "keepassx") - (version "2.0-beta2") + (version "2.0") (source (origin (method url-fetch) - (uri (string-append "https://github.com/keepassx/keepassx/archive/" - version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (uri (string-append "https://www.keepassx.org/releases/" version + "/keepassx-" version ".tar.gz")) (sha256 - (base32 "0ljf9ws3wh62zd0gyb0vk2qw6pqsmxrlybrfs5mqahf44q92ca2q")))) + (base32 "1ri2r1sldc62hbg74m4pmci0nrjwvv38rqhyzhyjin247an0zd0f")))) (build-system cmake-build-system) (inputs `(("libgcrypt" ,libgcrypt) -- cgit v1.2.3 From 86c8f1daf8ed10f13f2b1e973a28845629b8ce47 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Thu, 3 Dec 2015 16:22:39 -0500 Subject: gnu: openssl: Update to 1.0.2e [fixes CVE-2015-{3193,3194,3195}]. * gnu/packages/tls.scm (openssl): Update to 1.0.2e. [arguments]: Rename 'fix-man-dir' phase to 'patch-Makefile.org', and patch SHELL in Makefile.org. Add 'fix-broken-symlinks' phase. Return #t from 'patch-tests' phase. --- gnu/packages/tls.scm | 31 +++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index fc0b6e8f5a..e539686199 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -192,14 +192,14 @@ required structures.") (define-public openssl (package (name "openssl") - (version "1.0.2d") + (version "1.0.2e") (source (origin (method url-fetch) (uri (string-append "ftp://ftp.openssl.org/source/openssl-" version ".tar.gz")) (sha256 (base32 - "1j58r7rdj9fz2lanir8ajbx4bspb5jnm5ikl6dq8lql5fx43c737")) + "1zqb1rff1wikc62a7vj5qxd1k191m8qif5d05mwdxz2wnzywlg72")) (patches (map search-patch '("openssl-runpath.patch" "openssl-c-rehash.patch"))))) @@ -212,10 +212,11 @@ required structures.") #:phases (modify-phases %standard-phases (add-before - 'configure 'fix-man-dir + 'configure 'patch-Makefile.org (lambda* (#:key outputs #:allow-other-keys) ;; The default MANDIR is some unusual place. Fix that. (let ((out (assoc-ref outputs "out"))) + (patch-makefile-SHELL "Makefile.org") (substitute* "Makefile.org" (("^MANDIR[[:blank:]]*=.*$") (string-append "MANDIR = " out "/share/man\n"))) @@ -254,6 +255,27 @@ required structures.") (find-files (string-append out "/lib") "\\.so")) #t))) + (add-after + 'unpack 'fix-broken-symlinks + (lambda _ + ;; Repair the broken symlinks in the openssl-1.0.2e tarball. + (let* ((link-prefix "openssl-1.0.2e/") + (link-prefix-length (string-length link-prefix)) + (broken-links + (find-files "." (lambda (file stat) + (and (eq? 'symlink (stat:type stat)) + (string-prefix? link-prefix + (readlink file))))))) + (when (null? broken-links) + (error "The 'fix-broken-symlinks' phase is obsolete; remove it")) + (for-each (lambda (file) + (let* ((old-target (readlink file)) + (new-target (string-drop old-target + link-prefix-length))) + (delete-file file) + (symlink new-target file))) + broken-links) + #t))) (add-before 'patch-source-shebangs 'patch-tests (lambda* (#:key inputs native-inputs #:allow-other-keys) @@ -262,7 +284,8 @@ required structures.") (("/bin/sh") (string-append bash "/bin/bash")) (("/bin/rm") - "rm"))))) + "rm")) + #t))) (add-after 'install 'remove-miscellany (lambda* (#:key outputs #:allow-other-keys) -- cgit v1.2.3 From 821060f3f66a45acd8b5726e8f7ecdd879754341 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Thu, 3 Dec 2015 17:18:24 -0500 Subject: gnu: libxml2: Update to 2.9.3. * gnu/packages/patches/libxml2-CVE-2015-1819.patch, gnu/packages/patches/libxml2-CVE-2015-7941-pt1.patch, gnu/packages/patches/libxml2-CVE-2015-7941-pt2.patch, gnu/packages/patches/libxml2-CVE-2015-7942-pt1.patch, gnu/packages/patches/libxml2-CVE-2015-7942-pt2.patch, gnu/packages/patches/libxml2-CVE-2015-8035.patch, gnu/packages/patches/libxml2-bug-737840.patch, gnu/packages/patches/libxml2-bug-738805.patch, gnu/packages/patches/libxml2-bug-746048.patch, gnu/packages/patches/libxml2-bug-747437.patch, gnu/packages/patches/libxml2-bug-751603.patch, gnu/packages/patches/libxml2-bug-751631.patch, gnu/packages/patches/libxml2-bug-754946.patch, gnu/packages/patches/libxml2-bug-754947.patch, gnu/packages/patches/libxml2-bug-755857.patch, gnu/packages/patches/libxml2-fix-catalog-corruption.patch, gnu/packages/patches/libxml2-id-attrs-in-xmlSetTreeDoc.patch, gnu/packages/patches/libxml2-node-sort-order-pt1.patch, gnu/packages/patches/libxml2-node-sort-order-pt2.patch: Delete files. * gnu-system.am (dist_patch_DATA): Remove them. * gnu/packages/xml.scm (libxml2): Update to 2.9.3. Remove patches. --- gnu-system.am | 19 --- gnu/packages/patches/libxml2-CVE-2015-1819.patch | 176 --------------------- .../patches/libxml2-CVE-2015-7941-pt1.patch | 32 ---- .../patches/libxml2-CVE-2015-7941-pt2.patch | 49 ------ .../patches/libxml2-CVE-2015-7942-pt1.patch | 32 ---- .../patches/libxml2-CVE-2015-7942-pt2.patch | 28 ---- gnu/packages/patches/libxml2-CVE-2015-8035.patch | 31 ---- gnu/packages/patches/libxml2-bug-737840.patch | 88 ----------- gnu/packages/patches/libxml2-bug-738805.patch | 31 ---- gnu/packages/patches/libxml2-bug-746048.patch | 65 -------- gnu/packages/patches/libxml2-bug-747437.patch | 46 ------ gnu/packages/patches/libxml2-bug-751603.patch | 38 ----- gnu/packages/patches/libxml2-bug-751631.patch | 35 ---- gnu/packages/patches/libxml2-bug-754946.patch | 132 ---------------- gnu/packages/patches/libxml2-bug-754947.patch | 103 ------------ gnu/packages/patches/libxml2-bug-755857.patch | 43 ----- .../patches/libxml2-fix-catalog-corruption.patch | 29 ---- .../libxml2-id-attrs-in-xmlSetTreeDoc.patch | 36 ----- .../patches/libxml2-node-sort-order-pt1.patch | 33 ---- .../patches/libxml2-node-sort-order-pt2.patch | 37 ----- gnu/packages/xml.scm | 25 +-- 21 files changed, 2 insertions(+), 1106 deletions(-) delete mode 100644 gnu/packages/patches/libxml2-CVE-2015-1819.patch delete mode 100644 gnu/packages/patches/libxml2-CVE-2015-7941-pt1.patch delete mode 100644 gnu/packages/patches/libxml2-CVE-2015-7941-pt2.patch delete mode 100644 gnu/packages/patches/libxml2-CVE-2015-7942-pt1.patch delete mode 100644 gnu/packages/patches/libxml2-CVE-2015-7942-pt2.patch delete mode 100644 gnu/packages/patches/libxml2-CVE-2015-8035.patch delete mode 100644 gnu/packages/patches/libxml2-bug-737840.patch delete mode 100644 gnu/packages/patches/libxml2-bug-738805.patch delete mode 100644 gnu/packages/patches/libxml2-bug-746048.patch delete mode 100644 gnu/packages/patches/libxml2-bug-747437.patch delete mode 100644 gnu/packages/patches/libxml2-bug-751603.patch delete mode 100644 gnu/packages/patches/libxml2-bug-751631.patch delete mode 100644 gnu/packages/patches/libxml2-bug-754946.patch delete mode 100644 gnu/packages/patches/libxml2-bug-754947.patch delete mode 100644 gnu/packages/patches/libxml2-bug-755857.patch delete mode 100644 gnu/packages/patches/libxml2-fix-catalog-corruption.patch delete mode 100644 gnu/packages/patches/libxml2-id-attrs-in-xmlSetTreeDoc.patch delete mode 100644 gnu/packages/patches/libxml2-node-sort-order-pt1.patch delete mode 100644 gnu/packages/patches/libxml2-node-sort-order-pt2.patch diff --git a/gnu-system.am b/gnu-system.am index 00cf38f319..ec9f63c5a0 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -559,25 +559,6 @@ dist_patch_DATA = \ gnu/packages/patches/libwmf-CVE-2015-0848+CVE-2015-4588.patch \ gnu/packages/patches/libwmf-CVE-2015-4695.patch \ gnu/packages/patches/libwmf-CVE-2015-4696.patch \ - gnu/packages/patches/libxml2-CVE-2015-1819.patch \ - gnu/packages/patches/libxml2-CVE-2015-7941-pt1.patch \ - gnu/packages/patches/libxml2-CVE-2015-7941-pt2.patch \ - gnu/packages/patches/libxml2-CVE-2015-7942-pt1.patch \ - gnu/packages/patches/libxml2-CVE-2015-7942-pt2.patch \ - gnu/packages/patches/libxml2-CVE-2015-8035.patch \ - gnu/packages/patches/libxml2-bug-737840.patch \ - gnu/packages/patches/libxml2-bug-738805.patch \ - gnu/packages/patches/libxml2-bug-746048.patch \ - gnu/packages/patches/libxml2-bug-747437.patch \ - gnu/packages/patches/libxml2-bug-751603.patch \ - gnu/packages/patches/libxml2-bug-751631.patch \ - gnu/packages/patches/libxml2-bug-754946.patch \ - gnu/packages/patches/libxml2-bug-754947.patch \ - gnu/packages/patches/libxml2-bug-755857.patch \ - gnu/packages/patches/libxml2-fix-catalog-corruption.patch \ - gnu/packages/patches/libxml2-id-attrs-in-xmlSetTreeDoc.patch \ - gnu/packages/patches/libxml2-node-sort-order-pt1.patch \ - gnu/packages/patches/libxml2-node-sort-order-pt2.patch \ gnu/packages/patches/libxslt-CVE-2015-7995.patch \ gnu/packages/patches/lirc-localstatedir.patch \ gnu/packages/patches/libpthread-glibc-preparation.patch \ diff --git a/gnu/packages/patches/libxml2-CVE-2015-1819.patch b/gnu/packages/patches/libxml2-CVE-2015-1819.patch deleted file mode 100644 index 58461c73b2..0000000000 --- a/gnu/packages/patches/libxml2-CVE-2015-1819.patch +++ /dev/null @@ -1,176 +0,0 @@ -From 213f1fe0d76d30eaed6e5853057defc43e6df2c9 Mon Sep 17 00:00:00 2001 -From: Daniel Veillard -Date: Tue, 14 Apr 2015 17:41:48 +0800 -Subject: [PATCH] CVE-2015-1819 Enforce the reader to run in constant memory - -One of the operation on the reader could resolve entities -leading to the classic expansion issue. Make sure the -buffer used for xmlreader operation is bounded. -Introduce a new allocation type for the buffers for this effect. ---- - buf.c | 43 ++++++++++++++++++++++++++++++++++++++++++- - include/libxml/tree.h | 3 ++- - xmlreader.c | 20 +++++++++++++++++++- - 3 files changed, 63 insertions(+), 3 deletions(-) - -diff --git a/buf.c b/buf.c -index 6efc7b6..07922ff 100644 ---- a/buf.c -+++ b/buf.c -@@ -27,6 +27,7 @@ - #include - #include - #include -+#include /* for XML_MAX_TEXT_LENGTH */ - #include "buf.h" - - #define WITH_BUFFER_COMPAT -@@ -299,7 +300,8 @@ xmlBufSetAllocationScheme(xmlBufPtr buf, - if ((scheme == XML_BUFFER_ALLOC_DOUBLEIT) || - (scheme == XML_BUFFER_ALLOC_EXACT) || - (scheme == XML_BUFFER_ALLOC_HYBRID) || -- (scheme == XML_BUFFER_ALLOC_IMMUTABLE)) { -+ (scheme == XML_BUFFER_ALLOC_IMMUTABLE) || -+ (scheme == XML_BUFFER_ALLOC_BOUNDED)) { - buf->alloc = scheme; - if (buf->buffer) - buf->buffer->alloc = scheme; -@@ -458,6 +460,18 @@ xmlBufGrowInternal(xmlBufPtr buf, size_t len) { - size = buf->use + len + 100; - #endif - -+ if (buf->alloc == XML_BUFFER_ALLOC_BOUNDED) { -+ /* -+ * Used to provide parsing limits -+ */ -+ if ((buf->use + len >= XML_MAX_TEXT_LENGTH) || -+ (buf->size >= XML_MAX_TEXT_LENGTH)) { -+ xmlBufMemoryError(buf, "buffer error: text too long\n"); -+ return(0); -+ } -+ if (size >= XML_MAX_TEXT_LENGTH) -+ size = XML_MAX_TEXT_LENGTH; -+ } - if ((buf->alloc == XML_BUFFER_ALLOC_IO) && (buf->contentIO != NULL)) { - size_t start_buf = buf->content - buf->contentIO; - -@@ -739,6 +753,15 @@ xmlBufResize(xmlBufPtr buf, size_t size) - CHECK_COMPAT(buf) - - if (buf->alloc == XML_BUFFER_ALLOC_IMMUTABLE) return(0); -+ if (buf->alloc == XML_BUFFER_ALLOC_BOUNDED) { -+ /* -+ * Used to provide parsing limits -+ */ -+ if (size >= XML_MAX_TEXT_LENGTH) { -+ xmlBufMemoryError(buf, "buffer error: text too long\n"); -+ return(0); -+ } -+ } - - /* Don't resize if we don't have to */ - if (size < buf->size) -@@ -867,6 +890,15 @@ xmlBufAdd(xmlBufPtr buf, const xmlChar *str, int len) { - - needSize = buf->use + len + 2; - if (needSize > buf->size){ -+ if (buf->alloc == XML_BUFFER_ALLOC_BOUNDED) { -+ /* -+ * Used to provide parsing limits -+ */ -+ if (needSize >= XML_MAX_TEXT_LENGTH) { -+ xmlBufMemoryError(buf, "buffer error: text too long\n"); -+ return(-1); -+ } -+ } - if (!xmlBufResize(buf, needSize)){ - xmlBufMemoryError(buf, "growing buffer"); - return XML_ERR_NO_MEMORY; -@@ -938,6 +970,15 @@ xmlBufAddHead(xmlBufPtr buf, const xmlChar *str, int len) { - } - needSize = buf->use + len + 2; - if (needSize > buf->size){ -+ if (buf->alloc == XML_BUFFER_ALLOC_BOUNDED) { -+ /* -+ * Used to provide parsing limits -+ */ -+ if (needSize >= XML_MAX_TEXT_LENGTH) { -+ xmlBufMemoryError(buf, "buffer error: text too long\n"); -+ return(-1); -+ } -+ } - if (!xmlBufResize(buf, needSize)){ - xmlBufMemoryError(buf, "growing buffer"); - return XML_ERR_NO_MEMORY; -diff --git a/include/libxml/tree.h b/include/libxml/tree.h -index 2f90717..4a9b3bc 100644 ---- a/include/libxml/tree.h -+++ b/include/libxml/tree.h -@@ -76,7 +76,8 @@ typedef enum { - XML_BUFFER_ALLOC_EXACT, /* grow only to the minimal size */ - XML_BUFFER_ALLOC_IMMUTABLE, /* immutable buffer */ - XML_BUFFER_ALLOC_IO, /* special allocation scheme used for I/O */ -- XML_BUFFER_ALLOC_HYBRID /* exact up to a threshold, and doubleit thereafter */ -+ XML_BUFFER_ALLOC_HYBRID, /* exact up to a threshold, and doubleit thereafter */ -+ XML_BUFFER_ALLOC_BOUNDED /* limit the upper size of the buffer */ - } xmlBufferAllocationScheme; - - /** -diff --git a/xmlreader.c b/xmlreader.c -index f19e123..471e7e2 100644 ---- a/xmlreader.c -+++ b/xmlreader.c -@@ -2091,6 +2091,9 @@ xmlNewTextReader(xmlParserInputBufferPtr input, const char *URI) { - "xmlNewTextReader : malloc failed\n"); - return(NULL); - } -+ /* no operation on a reader should require a huge buffer */ -+ xmlBufSetAllocationScheme(ret->buffer, -+ XML_BUFFER_ALLOC_BOUNDED); - ret->sax = (xmlSAXHandler *) xmlMalloc(sizeof(xmlSAXHandler)); - if (ret->sax == NULL) { - xmlBufFree(ret->buffer); -@@ -3616,6 +3619,7 @@ xmlTextReaderConstValue(xmlTextReaderPtr reader) { - return(((xmlNsPtr) node)->href); - case XML_ATTRIBUTE_NODE:{ - xmlAttrPtr attr = (xmlAttrPtr) node; -+ const xmlChar *ret; - - if ((attr->children != NULL) && - (attr->children->type == XML_TEXT_NODE) && -@@ -3629,10 +3633,21 @@ xmlTextReaderConstValue(xmlTextReaderPtr reader) { - "xmlTextReaderSetup : malloc failed\n"); - return (NULL); - } -+ xmlBufSetAllocationScheme(reader->buffer, -+ XML_BUFFER_ALLOC_BOUNDED); - } else - xmlBufEmpty(reader->buffer); - xmlBufGetNodeContent(reader->buffer, node); -- return(xmlBufContent(reader->buffer)); -+ ret = xmlBufContent(reader->buffer); -+ if (ret == NULL) { -+ /* error on the buffer best to reallocate */ -+ xmlBufFree(reader->buffer); -+ reader->buffer = xmlBufCreateSize(100); -+ xmlBufSetAllocationScheme(reader->buffer, -+ XML_BUFFER_ALLOC_BOUNDED); -+ ret = BAD_CAST ""; -+ } -+ return(ret); - } - break; - } -@@ -5131,6 +5146,9 @@ xmlTextReaderSetup(xmlTextReaderPtr reader, - "xmlTextReaderSetup : malloc failed\n"); - return (-1); - } -+ /* no operation on a reader should require a huge buffer */ -+ xmlBufSetAllocationScheme(reader->buffer, -+ XML_BUFFER_ALLOC_BOUNDED); - if (reader->sax == NULL) - reader->sax = (xmlSAXHandler *) xmlMalloc(sizeof(xmlSAXHandler)); - if (reader->sax == NULL) { --- -2.6.3 - diff --git a/gnu/packages/patches/libxml2-CVE-2015-7941-pt1.patch b/gnu/packages/patches/libxml2-CVE-2015-7941-pt1.patch deleted file mode 100644 index 4ca49039b2..0000000000 --- a/gnu/packages/patches/libxml2-CVE-2015-7941-pt1.patch +++ /dev/null @@ -1,32 +0,0 @@ -From a7dfab7411cbf545f359dd3157e5df1eb0e7ce31 Mon Sep 17 00:00:00 2001 -From: Daniel Veillard -Date: Mon, 23 Feb 2015 11:17:35 +0800 -Subject: [PATCH] Stop parsing on entities boundaries errors - -For https://bugzilla.gnome.org/show_bug.cgi?id=744980 - -There are times, like on unterminated entities that it's preferable to -stop parsing, even if that means less error reporting. Entities are -feeding the parser on further processing, and if they are ill defined -then it's possible to get the parser to bug. Also do the same on -Conditional Sections if the input is broken, as the structure of -the document can't be guessed. ---- - parser.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/parser.c b/parser.c -index a8d1b67..bbe97eb 100644 ---- a/parser.c -+++ b/parser.c -@@ -5658,6 +5658,7 @@ xmlParseEntityDecl(xmlParserCtxtPtr ctxt) { - if (RAW != '>') { - xmlFatalErrMsgStr(ctxt, XML_ERR_ENTITY_NOT_FINISHED, - "xmlParseEntityDecl: entity %s not terminated\n", name); -+ xmlStopParser(ctxt); - } else { - if (input != ctxt->input) { - xmlFatalErrMsg(ctxt, XML_ERR_ENTITY_BOUNDARY, --- -2.6.3 - diff --git a/gnu/packages/patches/libxml2-CVE-2015-7941-pt2.patch b/gnu/packages/patches/libxml2-CVE-2015-7941-pt2.patch deleted file mode 100644 index 30563a46b6..0000000000 --- a/gnu/packages/patches/libxml2-CVE-2015-7941-pt2.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 9b8512337d14c8ddf662fcb98b0135f225a1c489 Mon Sep 17 00:00:00 2001 -From: Daniel Veillard -Date: Mon, 23 Feb 2015 11:29:20 +0800 -Subject: [PATCH] Cleanup conditional section error handling - -For https://bugzilla.gnome.org/show_bug.cgi?id=744980 - -The error handling of Conditional Section also need to be -straightened as the structure of the document can't be -guessed on a failure there and it's better to stop parsing -as further errors are likely to be irrelevant. ---- - parser.c | 6 ++++++ - 1 file changed, 6 insertions(+) - -diff --git a/parser.c b/parser.c -index bbe97eb..fe603ac 100644 ---- a/parser.c -+++ b/parser.c -@@ -6770,6 +6770,8 @@ xmlParseConditionalSections(xmlParserCtxtPtr ctxt) { - SKIP_BLANKS; - if (RAW != '[') { - xmlFatalErr(ctxt, XML_ERR_CONDSEC_INVALID, NULL); -+ xmlStopParser(ctxt); -+ return; - } else { - if (ctxt->input->id != id) { - xmlValidityError(ctxt, XML_ERR_ENTITY_BOUNDARY, -@@ -6830,6 +6832,8 @@ xmlParseConditionalSections(xmlParserCtxtPtr ctxt) { - SKIP_BLANKS; - if (RAW != '[') { - xmlFatalErr(ctxt, XML_ERR_CONDSEC_INVALID, NULL); -+ xmlStopParser(ctxt); -+ return; - } else { - if (ctxt->input->id != id) { - xmlValidityError(ctxt, XML_ERR_ENTITY_BOUNDARY, -@@ -6885,6 +6889,8 @@ xmlParseConditionalSections(xmlParserCtxtPtr ctxt) { - - } else { - xmlFatalErr(ctxt, XML_ERR_CONDSEC_INVALID_KEYWORD, NULL); -+ xmlStopParser(ctxt); -+ return; - } - - if (RAW == 0) --- -2.6.3 - diff --git a/gnu/packages/patches/libxml2-CVE-2015-7942-pt1.patch b/gnu/packages/patches/libxml2-CVE-2015-7942-pt1.patch deleted file mode 100644 index bd9077d7c4..0000000000 --- a/gnu/packages/patches/libxml2-CVE-2015-7942-pt1.patch +++ /dev/null @@ -1,32 +0,0 @@ -From bd0526e66a56e75a18da8c15c4750db8f801c52d Mon Sep 17 00:00:00 2001 -From: Daniel Veillard -Date: Fri, 23 Oct 2015 19:02:28 +0800 -Subject: [PATCH] Another variation of overflow in Conditional sections - -Which happen after the previous fix to -https://bugzilla.gnome.org/show_bug.cgi?id=756456 - -But stopping the parser and exiting we didn't pop the intermediary entities -and doing the SKIP there applies on an input which may be too small ---- - parser.c | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/parser.c b/parser.c -index a65e4cc..b9217ff 100644 ---- a/parser.c -+++ b/parser.c -@@ -6915,7 +6915,9 @@ xmlParseConditionalSections(xmlParserCtxtPtr ctxt) { - "All markup of the conditional section is not in the same entity\n", - NULL, NULL); - } -- SKIP(3); -+ if ((ctxt-> instate != XML_PARSER_EOF) && -+ ((ctxt->input->cur + 3) < ctxt->input->end)) -+ SKIP(3); - } - } - --- -2.6.3 - diff --git a/gnu/packages/patches/libxml2-CVE-2015-7942-pt2.patch b/gnu/packages/patches/libxml2-CVE-2015-7942-pt2.patch deleted file mode 100644 index 115d369ac3..0000000000 --- a/gnu/packages/patches/libxml2-CVE-2015-7942-pt2.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 41ac9049a27f52e7a1f3b341f8714149fc88d450 Mon Sep 17 00:00:00 2001 -From: Daniel Veillard -Date: Tue, 27 Oct 2015 10:53:44 +0800 -Subject: [PATCH] Fix an error in previous Conditional section patch - -an off by one mistake in the change, led to error on correct -document where the end of the included entity was exactly -the end of the conditional section, leading to regtest failure ---- - parser.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/parser.c b/parser.c -index b9217ff..d67b300 100644 ---- a/parser.c -+++ b/parser.c -@@ -6916,7 +6916,7 @@ xmlParseConditionalSections(xmlParserCtxtPtr ctxt) { - NULL, NULL); - } - if ((ctxt-> instate != XML_PARSER_EOF) && -- ((ctxt->input->cur + 3) < ctxt->input->end)) -+ ((ctxt->input->cur + 3) <= ctxt->input->end)) - SKIP(3); - } - } --- -2.6.3 - diff --git a/gnu/packages/patches/libxml2-CVE-2015-8035.patch b/gnu/packages/patches/libxml2-CVE-2015-8035.patch deleted file mode 100644 index d29c96228e..0000000000 --- a/gnu/packages/patches/libxml2-CVE-2015-8035.patch +++ /dev/null @@ -1,31 +0,0 @@ -From f0709e3ca8f8947f2d91ed34e92e38a4c23eae63 Mon Sep 17 00:00:00 2001 -From: Daniel Veillard -Date: Tue, 3 Nov 2015 15:31:25 +0800 -Subject: [PATCH] CVE-2015-8035 Fix XZ compression support loop - -For https://bugzilla.gnome.org/show_bug.cgi?id=757466 -DoS when parsing specially crafted XML document if XZ support -is compiled in (which wasn't the case for 2.9.2 and master since -Nov 2013, fixed in next commit !) ---- - xzlib.c | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/xzlib.c b/xzlib.c -index 0dcb9f4..1fab546 100644 ---- a/xzlib.c -+++ b/xzlib.c -@@ -581,6 +581,10 @@ xz_decomp(xz_statep state) - xz_error(state, LZMA_DATA_ERROR, "compressed data error"); - return -1; - } -+ if (ret == LZMA_PROG_ERROR) { -+ xz_error(state, LZMA_PROG_ERROR, "compression error"); -+ return -1; -+ } - } while (strm->avail_out && ret != LZMA_STREAM_END); - - /* update available output and crc check value */ --- -2.6.3 - diff --git a/gnu/packages/patches/libxml2-bug-737840.patch b/gnu/packages/patches/libxml2-bug-737840.patch deleted file mode 100644 index 2a2d62c583..0000000000 --- a/gnu/packages/patches/libxml2-bug-737840.patch +++ /dev/null @@ -1,88 +0,0 @@ -From ef709ce2f7b792d5fb69ed142796d743fb1eb388 Mon Sep 17 00:00:00 2001 -From: Daniel Veillard -Date: Thu, 10 Sep 2015 19:41:41 +0800 -Subject: [PATCH] Fix the spurious ID already defined error - -For https://bugzilla.gnome.org/show_bug.cgi?id=737840 -the fix for 724903 introduced a regression on external entities carrying -IDs, revert that patch in part and add a specific test to avoid readding it ---- - result/valid/737840.xml | 10 ++++++++++ - result/valid/737840.xml.err | 0 - result/valid/737840.xml.err.rdr | 0 - test/valid/737840.xml | 10 ++++++++++ - test/valid/dtds/737840.ent | 1 + - valid.c | 6 ++++-- - 6 files changed, 25 insertions(+), 2 deletions(-) - create mode 100644 result/valid/737840.xml - create mode 100644 result/valid/737840.xml.err - create mode 100644 result/valid/737840.xml.err.rdr - create mode 100644 test/valid/737840.xml - create mode 100644 test/valid/dtds/737840.ent - -diff --git a/result/valid/737840.xml b/result/valid/737840.xml -new file mode 100644 -index 0000000..433c6d6 ---- /dev/null -+++ b/result/valid/737840.xml -@@ -0,0 +1,10 @@ -+ -+ -+ -+ -+ -+]> -+ -+ ⌖ -+ -diff --git a/result/valid/737840.xml.err b/result/valid/737840.xml.err -new file mode 100644 -index 0000000..e69de29 -diff --git a/result/valid/737840.xml.err.rdr b/result/valid/737840.xml.err.rdr -new file mode 100644 -index 0000000..e69de29 -diff --git a/test/valid/737840.xml b/test/valid/737840.xml -new file mode 100644 -index 0000000..2d27b73 ---- /dev/null -+++ b/test/valid/737840.xml -@@ -0,0 +1,10 @@ -+ -+ -+ -+ -+]> -+ -+ -+ ⌖ -+ -diff --git a/test/valid/dtds/737840.ent b/test/valid/dtds/737840.ent -new file mode 100644 -index 0000000..e972132 ---- /dev/null -+++ b/test/valid/dtds/737840.ent -@@ -0,0 +1 @@ -+ -\ No newline at end of file -diff --git a/valid.c b/valid.c -index 409aa81..45a3f70 100644 ---- a/valid.c -+++ b/valid.c -@@ -2634,8 +2634,10 @@ xmlAddID(xmlValidCtxtPtr ctxt, xmlDocPtr doc, const xmlChar *value, - /* - * The id is already defined in this DTD. - */ -- xmlErrValidNode(ctxt, attr->parent, XML_DTD_ID_REDEFINED, -- "ID %s already defined\n", value, NULL, NULL); -+ if (ctxt != NULL) { -+ xmlErrValidNode(ctxt, attr->parent, XML_DTD_ID_REDEFINED, -+ "ID %s already defined\n", value, NULL, NULL); -+ } - #endif /* LIBXML_VALID_ENABLED */ - xmlFreeID(ret); - return(NULL); --- -2.6.3 - diff --git a/gnu/packages/patches/libxml2-bug-738805.patch b/gnu/packages/patches/libxml2-bug-738805.patch deleted file mode 100644 index 16163bb941..0000000000 --- a/gnu/packages/patches/libxml2-bug-738805.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 72a46a519ce7326d9a00f0b6a7f2a8e958cd1675 Mon Sep 17 00:00:00 2001 -From: Daniel Veillard -Date: Thu, 23 Oct 2014 11:35:36 +0800 -Subject: [PATCH] Fix missing entities after CVE-2014-3660 fix - -For https://bugzilla.gnome.org/show_bug.cgi?id=738805 - -The fix for CVE-2014-3660 introduced a regression in some case -where entity substitution is required and the entity is used -first in anotther entity referenced from an attribute value ---- - parser.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/parser.c b/parser.c -index 67c9dfd..a8d1b67 100644 ---- a/parser.c -+++ b/parser.c -@@ -7235,7 +7235,8 @@ xmlParseReference(xmlParserCtxtPtr ctxt) { - * far more secure as the parser will only process data coming from - * the document entity by default. - */ -- if ((ent->checked == 0) && -+ if (((ent->checked == 0) || -+ ((ent->children == NULL) && (ctxt->options & XML_PARSE_NOENT))) && - ((ent->etype != XML_EXTERNAL_GENERAL_PARSED_ENTITY) || - (ctxt->options & (XML_PARSE_NOENT | XML_PARSE_DTDVALID)))) { - unsigned long oldnbent = ctxt->nbentities; --- -2.6.3 - diff --git a/gnu/packages/patches/libxml2-bug-746048.patch b/gnu/packages/patches/libxml2-bug-746048.patch deleted file mode 100644 index 450b8d3ab3..0000000000 --- a/gnu/packages/patches/libxml2-bug-746048.patch +++ /dev/null @@ -1,65 +0,0 @@ -From e724879d964d774df9b7969fc846605aa1bac54c Mon Sep 17 00:00:00 2001 -From: Daniel Veillard -Date: Fri, 30 Oct 2015 21:14:55 +0800 -Subject: [PATCH] Fix parsing short unclosed comment uninitialized access - -For https://bugzilla.gnome.org/show_bug.cgi?id=746048 -The HTML parser was too optimistic when processing comments and -didn't check for the end of the stream on the first 2 characters ---- - HTMLparser.c | 21 ++++++++++++++------- - 1 file changed, 14 insertions(+), 7 deletions(-) - -diff --git a/HTMLparser.c b/HTMLparser.c -index 19c10c3..bdf7807 100644 ---- a/HTMLparser.c -+++ b/HTMLparser.c -@@ -3264,12 +3264,17 @@ htmlParseComment(htmlParserCtxtPtr ctxt) { - ctxt->instate = state; - return; - } -+ len = 0; -+ buf[len] = 0; - q = CUR_CHAR(ql); -+ if (!IS_CHAR(q)) -+ goto unfinished; - NEXTL(ql); - r = CUR_CHAR(rl); -+ if (!IS_CHAR(r)) -+ goto unfinished; - NEXTL(rl); - cur = CUR_CHAR(l); -- len = 0; - while (IS_CHAR(cur) && - ((cur != '>') || - (r != '-') || (q != '-'))) { -@@ -3300,18 +3305,20 @@ htmlParseComment(htmlParserCtxtPtr ctxt) { - } - } - buf[len] = 0; -- if (!IS_CHAR(cur)) { -- htmlParseErr(ctxt, XML_ERR_COMMENT_NOT_FINISHED, -- "Comment not terminated \n