From 26b16fd9ca2cb51c52e1ed9a8937fa143a57747d Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Thu, 23 Mar 2017 12:04:54 -0400 Subject: gnu: python-appdirs: Use pypi-uri. This is a followup to commit 543782e1ff1e296d61ca528debe3fc6420f5e45a. * gnu/packages/python.scm (python-appdirs, python2-appdirs)[source]: Use pypi-uri. --- gnu/packages/python.scm | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index d423ecde58..7aae8fc26f 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -6755,10 +6755,7 @@ provided that can be used to do various manipulations with LilyPond files.") (source (origin (method url-fetch) - (uri (string-append - "https://pypi.python.org/packages/source/a/appdirs/appdirs-" - version - ".tar.gz")) + (uri (pypi-uri "appdirs" version)) (sha256 (base32 "14id6wxi12lgyw0mg3bcfnf888ad07jz9yj46gfzhn186z8rcn4y")))) -- cgit v1.2.3 From 359ea6ba2989ca2d3c6765ddabe0291c12413fd2 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 23 Mar 2017 17:14:59 +0100 Subject: gnu: knot: Update to 2.4.2. * gnu/packages/dns.scm (knot): Update to 2.4.2. --- gnu/packages/dns.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm index ec89abc670..57ac297a05 100644 --- a/gnu/packages/dns.scm +++ b/gnu/packages/dns.scm @@ -318,14 +318,14 @@ Extensions} (DNSSEC).") (define-public knot (package (name "knot") - (version "2.4.1") + (version "2.4.2") (source (origin (method url-fetch) (uri (string-append "https://secure.nic.cz/files/knot-dns/" name "-" version ".tar.xz")) (sha256 (base32 - "0k3hkc6vqj8yd479zdn80ki5f0vnjhrm4fka7kfj9z7mkgwxsr60")) + "0licfnjl0mq9lzdn6frzdasrj65253xc9n33dhvxcjqr3z7pznip")) (modules '((guix build utils))) (snippet '(begin -- cgit v1.2.3 From 120349bfb4978ae28bb434025e8a045c385e2441 Mon Sep 17 00:00:00 2001 From: ng0 Date: Thu, 23 Mar 2017 01:53:19 +0000 Subject: gnu: rxvt-unicode: Give 'urxvtc.desktop' a unique display name. * gnu/packages/xdisorg.scm (rxvt-unicode)[arguments]: In phase 'install-desktop-urxvtc' add '(client)' to the 'Name' line of the resulting '.desktop' file. Signed-off-by: Marius Bakke --- gnu/packages/xdisorg.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index 5afc495ad7..172f3c368d 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -723,7 +723,7 @@ compact configuration syntax.") (lambda _ (format #t "[Desktop Entry]~@ - Name=rxvt-unicode~@ + Name=rxvt-unicode (client)~@ Comment=Rxvt clone with XFT and unicode support~@ Exec=~a/bin/urxvtc~@ TryExec=~@*~a/bin/urxvtc~@ -- cgit v1.2.3 From 42c127e876a3fd056bfe981c8b68aea15da9ea4a Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Thu, 23 Mar 2017 19:35:05 +0100 Subject: gnu: rustc: Simplify configure phase. * gnu/packages/rust.scm (rustc): Simplify configure phase. --- gnu/packages/rust.scm | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm index af4d322a73..9a56b1ffed 100644 --- a/gnu/packages/rust.scm +++ b/gnu/packages/rust.scm @@ -224,12 +224,9 @@ rustc-bootstrap and cargo-bootstrap packages.") (modify-phases %standard-phases (add-after 'unpack 'patch-configure (lambda _ - ;; Detect target CPU correctly. (substitute* "configure" - (("/usr/bin/env") (which "env"))) - ;; Avoid curl as a build dependency. - (substitute* "configure" - (("probe_need CFG_CURL curl") "")) + (("/usr/bin/env") (which "env")) ; Detect target CPU correctly. + (("probe_need CFG_CURL curl") "")) ; Avoid curl as a build dependency. #t)) (add-after 'unpack 'set-env (lambda _ -- cgit v1.2.3 From 183303b3efe50c344d4f3644edcdf9f02792aaa3 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 23 Mar 2017 19:58:49 +0100 Subject: gnu: nginx: Update to 1.11.11. * gnu/packages/web.scm (nginx): Update to 1.11.11. --- gnu/packages/web.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 7fb94005e8..6a8fafa238 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -130,14 +130,14 @@ and its related documentation.") (define-public nginx (package (name "nginx") - (version "1.11.10") + (version "1.11.11") (source (origin (method url-fetch) (uri (string-append "https://nginx.org/download/nginx-" version ".tar.gz")) (sha256 (base32 - "0gak6pcsn1m8fsz0g95z4b72nn12ivy35vlxrmagfcvnn2mkr2vp")))) + "0qkj4xqv2f986dwqwlkidmr6jpxhv3ds67pxd1pd4a4f4j0c8yjs")))) (build-system gnu-build-system) (inputs `(("pcre" ,pcre) ("openssl" ,openssl) -- cgit v1.2.3 From f1e900a3b8267846eb3909fbf86e681cbc56203d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 23 Mar 2017 14:00:29 +0100 Subject: doc: Document 'guix-publish-service-type' instead of 'guix-publish-service'. * doc/guix.texi (Base Services): Document 'guix-publish-service-type' and 'guix-configuration'. Remove 'guix-publish-service'. (Invoking guix publish): Mention 'guix-publish-service-type'. * gnu/services/base.scm (guix-publish-service): Mark as deprecated. (): Export getters. --- doc/guix.texi | 33 +++++++++++++++++++++++++-------- gnu/services/base.scm | 4 ++++ 2 files changed, 29 insertions(+), 8 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index b57e219562..b452b087f1 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -6551,9 +6551,9 @@ 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}}). +instantiate a @code{guix-publish-service-type} service in the @code{services} field +of the @code{operating-system} declaration (@pxref{guix-publish-service-type, +@code{guix-publish-service-type}}). If you are instead running Guix on a ``foreign distro'', follow these instructions:” @@ -9007,17 +9007,34 @@ 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"] -Return a service that runs @command{guix publish} listening on @var{host} -and @var{port} (@pxref{Invoking guix publish}). +@anchor{guix-publish-service-type} +@deffn {Scheme Variable} guix-publish-service-type @var{config} +This is the service type for @command{guix publish} (@pxref{Invoking +guix publish}). @var{config} must be a @code{guix-configuration} +object, as described below. 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 +@deftp {Data Type} guix-publish-configuration +Data type representing the configuration of the @code{guix publish} +service. + +@table @asis +@item @code{guix} (default: @code{guix}) +The Guix package to use. + +@item @code{port} (default: @code{80}) +The TCP port to listen for connections. + +@item @code{host} (default: @code{"localhost"}) +The host (and thus, network interface) to listen to. Use +@code{"0.0.0.0"} to listen on all the network interfaces. +@end table +@end deftp + @anchor{rngd-service} @deffn {Scheme Procedure} rngd-service [#:rng-tools @var{rng-tools}] @ [#:device "/dev/hwrng"] diff --git a/gnu/services/base.scm b/gnu/services/base.scm index 77efef15eb..0de83f36c8 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -124,6 +124,9 @@ guix-service-type guix-publish-configuration guix-publish-configuration? + guix-publish-configuration-guix + guix-publish-configuration-port + guix-publish-configuration-host guix-publish-service guix-publish-service-type @@ -1475,6 +1478,7 @@ 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." + ;; Deprecated. (service guix-publish-service-type (guix-publish-configuration (guix guix) (port port) (host host)))) -- cgit v1.2.3 From 697ddb8850d7aeb612ec9402e86f82c44edf8c96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 23 Mar 2017 14:07:00 +0100 Subject: services: guix-publish: Add 'compression-level' and 'nar-path' fields. * gnu/services/base.scm ()[compression-level, nar-path]: New fields. (guix-publish-shepherd-service): Honor them. * doc/guix.texi (Base Services): Document them. --- doc/guix.texi | 9 +++++++++ gnu/services/base.scm | 12 ++++++++++-- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index b452b087f1..fb0862096a 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -9032,6 +9032,15 @@ The TCP port to listen for connections. @item @code{host} (default: @code{"localhost"}) The host (and thus, network interface) to listen to. Use @code{"0.0.0.0"} to listen on all the network interfaces. + +@item @code{compression-level} (default: @code{3}) +The gzip compression level at which substitutes are compressed. Use +@code{0} to disable compression altogether, and @code{9} to get the best +compression ratio at the expense of increased CPU usage. + +@item @code{nar-path} (default: @code{"nar"}) +The URL path at which ``nars'' can be fetched. @xref{Invoking guix +publish, @code{--nar-path}}, for details. @end table @end deftp diff --git a/gnu/services/base.scm b/gnu/services/base.scm index 0de83f36c8..95a1ba2a6c 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -127,6 +127,8 @@ guix-publish-configuration-guix guix-publish-configuration-port guix-publish-configuration-host + guix-publish-configuration-compression-level + guix-publish-configuration-nar-path guix-publish-service guix-publish-service-type @@ -1438,11 +1440,15 @@ failed to register hydra.gnu.org public key: ~a~%" status)))))))) (port guix-publish-configuration-port ;number (default 80)) (host guix-publish-configuration-host ;string - (default "localhost"))) + (default "localhost")) + (compression-level guix-publish-compression-level ;integer + (default 3)) + (nar-path guix-publish-nar-path ;string + (default "nar"))) (define guix-publish-shepherd-service (match-lambda - (($ guix port host) + (($ guix port host compression nar-path) (list (shepherd-service (provision '(guix-publish)) (requirement '(guix-daemon)) @@ -1450,6 +1456,8 @@ failed to register hydra.gnu.org public key: ~a~%" status)))))))) (list #$(file-append guix "/bin/guix") "publish" "-u" "guix-publish" "-p" #$(number->string port) + "-C" #$(number->string compression) + (string-append "--nar-path=" #$nar-path) (string-append "--listen=" #$host)))) (stop #~(make-kill-destructor))))))) -- cgit v1.2.3 From c8c1470451bd7290f4e1b9623ae941487bc7e708 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Fri, 24 Mar 2017 12:30:27 +0300 Subject: gnu: samba: Update to 4.5.7 [fixes CVE-2017-2619]. * gnu/packages/samba.scm (samba): Update to 4.5.7. --- gnu/packages/samba.scm | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/gnu/packages/samba.scm b/gnu/packages/samba.scm index b2309f4b51..356e778945 100644 --- a/gnu/packages/samba.scm +++ b/gnu/packages/samba.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013, 2015 Ludovic Courtès ;;; Copyright © 2015 Mark H Weaver -;;; Copyright © 2016 Efraim Flashner +;;; Copyright © 2016, 2017 Efraim Flashner ;;; Copyright © 2016 Adonay "adfeno" Felipe Nogueira ;;; ;;; This file is part of GNU Guix. @@ -99,14 +99,14 @@ anywhere.") (define-public samba (package (name "samba") - (version "4.5.3") + (version "4.5.7") (source (origin (method url-fetch) (uri (string-append "https://download.samba.org/pub/samba/stable/" "samba-" version ".tar.gz")) (sha256 (base32 - "1jif95684swssqwp9v3i2r08cn3r2iddf6ly68db4wmvl5ac8vgh")))) + "004lzl059bc2wvkmivxiy96y87l4ajjw16qvkqcdhf86z2dg0w5c")))) (build-system gnu-build-system) (arguments '(#:phases @@ -122,16 +122,17 @@ anywhere.") ;; XXX: heimdal not packaged. "--bundled-libraries=com_err" (string-append "--prefix=" out) - "--sysconfdir=/etc" + "--sysconfdir=/etc" ;; Install public and private libraries into ;; a single directory to avoid RPATH issues. (string-append "--libdir=" libdir) (string-append "--with-privatelibdir=" libdir)))))) - (add-before 'install 'disable-etc-samba-directory-creation + (add-before 'install 'disable-etc-samba-directory-creation (lambda _ (substitute* "dynconfig/wscript" (("bld\\.INSTALL_DIRS\\(\"\",[[:blank:]]{1,}\"\\$\\{CONFIGDIR\\}[[:blank:]]{1,}") - "bld.INSTALL_DIRS(\"\", \""))))) + "bld.INSTALL_DIRS(\"\", \"")) + #t))) ;; XXX: The test infrastructure attempts to set password with ;; smbpasswd, which fails with "smbpasswd -L can only be used by root." ;; So disable tests until there's a workaround. -- cgit v1.2.3 From 2e200ee8c0d9d6dd11108017b05173e3dfa669db Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Fri, 24 Mar 2017 14:16:09 +0300 Subject: gnu: talloc: Update to 2.1.9. * gnu/packages/samba (talloc): Update to 2.1.9. [home-page]: Use https. --- gnu/packages/samba.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/samba.scm b/gnu/packages/samba.scm index 356e778945..3b2a6868d8 100644 --- a/gnu/packages/samba.scm +++ b/gnu/packages/samba.scm @@ -171,14 +171,14 @@ Desktops into Active Directory environments using the winbind daemon.") (define-public talloc (package (name "talloc") - (version "2.1.8") + (version "2.1.9") (source (origin (method url-fetch) (uri (string-append "https://www.samba.org/ftp/talloc/talloc-" version ".tar.gz")) (sha256 (base32 - "0c3ihyb0jd8mhvi7gg2mr5w1zl2habx6jlkbyxzyckad2q8lkl92")))) + "0qhhf4ib9k65sri2ky115iya6j7dgg0dsdi1r03j4cm3i35x9aph")))) (build-system gnu-build-system) (arguments '(#:phases @@ -198,7 +198,7 @@ Desktops into Active Directory environments using the winbind daemon.") (string-append "--prefix=" out))))))))) (inputs `(("python" ,python-2))) - (home-page "http://talloc.samba.org") + (home-page "https://talloc.samba.org") (synopsis "Hierarchical, reference counted memory pool system") (description "Talloc is a hierarchical, reference counted memory pool system with -- cgit v1.2.3 From 3d39ab456d0ce6c51c555697fa1466423b188b12 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Fri, 24 Mar 2017 14:53:21 +0300 Subject: gnu: ccache: Update to 3.3.4. * gnu/packages/ccache.scm (ccache): Update to 3.3.4. --- gnu/packages/ccache.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/ccache.scm b/gnu/packages/ccache.scm index 181fba2fd0..590fdb0ea1 100644 --- a/gnu/packages/ccache.scm +++ b/gnu/packages/ccache.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014, 2015, 2016 Eric Bavier -;;; Copyright © 2016 Efraim Flashner +;;; Copyright © 2016, 2017 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -29,7 +29,7 @@ (define-public ccache (package (name "ccache") - (version "3.3.3") + (version "3.3.4") (source (origin (method url-fetch) @@ -37,7 +37,7 @@ version ".tar.xz")) (sha256 (base32 - "1v04ky2mhvx8gnqfbs9x2vvf4i9mzph4fwdg72s9xyhwv92sf0iv")))) + "0ks0vk408mdppfbk8v38p46fqx3p30r9a9cwiia43373i7rmpw94")))) (build-system gnu-build-system) (native-inputs `(("perl" ,perl) ;for test.sh ("which" ,(@ (gnu packages base) which)))) -- cgit v1.2.3 From ee7c21c7044355fc4c6bbe0906f061f6fbdfb79e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Lassieur?= Date: Tue, 21 Mar 2017 22:11:23 +0100 Subject: maint: Mention the Signed-off-by line in 'HACKING'. * HACKING: Mention the Signed-off-by line. --- HACKING | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/HACKING b/HACKING index 46a7249616..349015499f 100644 --- a/HACKING +++ b/HACKING @@ -50,6 +50,10 @@ You can prevent yourself from accidentally pushing unsigned commits to Savannah by using the pre-push Git hook called 'pre-push'. It's located at 'etc/git/pre-push'. +When pushing a commit on behalf of somebody else, please add a Signed-off-by +line at the end of the commit log message (e.g. with ‘git am --signoff’). +This improves tracking of who did what. + For anything else, please post to guix-patches@gnu.org and leave time for a review, without committing anything. If you didn’t receive any reply after two weeks, and if you’re confident, it’s OK to commit. -- cgit v1.2.3 From 4d3d3bd217f8d2af270e720117da1ec7839b003b Mon Sep 17 00:00:00 2001 From: Vasile Dumitrascu Date: Fri, 24 Mar 2017 02:56:00 +0000 Subject: gnu: Add emacs-aggresive-indent-mode. * gnu/packages/emacs.scm (emacs-aggressive-indent): New variable. Signed-off-by: Ricardo Wurmus --- gnu/packages/emacs.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index b84faaff07..33a919458c 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -20,6 +20,7 @@ ;;; Copyright © 2017 Christopher Baines ;;; Copyright © 2017 Mathieu Othacehe ;;; Copyright © 2017 Clément Lassieur +;;; Copyright © 2017 Vasile Dumitrascu ;;; ;;; This file is part of GNU Guix. ;;; @@ -1080,6 +1081,26 @@ like. It can be linked with various Emacs mail clients (Message and Mail mode, Rmail, Gnus, MH-E, and VM). BBDB is fully customizable.") (license license:gpl3+))) +(define-public emacs-aggressive-indent + (package + (name "emacs-aggressive-indent") + (version "1.8.3") + (source (origin + (method url-fetch) + (uri (string-append "https://elpa.gnu.org/packages/" + "aggressive-indent-" version ".el")) + (sha256 + (base32 + "0jnzccl50x0wapprgwxinp99pwwa6j43q6msn4gv437j7swy8wnj")))) + (build-system emacs-build-system) + (home-page "https://elpa.gnu.org/packages/aggressive-indent.html") + (synopsis "Minor mode to aggressively keep your code always indented") + (description + "@code{aggressive-indent-mode} is a minor mode that keeps your code +always indented. It reindents after every change, making it more reliable +than @code{electric-indent-mode}.") + (license license:gpl2+))) + (define-public emacs-ag (package (name "emacs-ag") -- cgit v1.2.3 From 32e75b4808c312f6ef99a2e200a75a0d056b60fe Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Fri, 24 Mar 2017 11:00:12 +0100 Subject: gnu: tlp: Read configuration from /etc/tlp. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/linux.scm (tlp): Set TLP_CONF to "/etc/tlp". Signed-off-by: Clément Lassieur --- 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 86c222f03d..bf16ff0ebd 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -3491,7 +3491,7 @@ Light is the successor of lightscript.") (setenv "TLP_BIN" (string-append out "/bin")) (setenv "TLP_TLIB" (string-append out "/share/tlp-pm")) (setenv "TLP_ULIB" (string-append out "/lib/udev")) - (setenv "TLP_CONF" (string-append out "/etc/tlp")) + (setenv "TLP_CONF" "/etc/tlp") (setenv "TLP_SHCPL" (string-append out "/share/bash-completion/completions")) (setenv "TLP_MAN" (string-append out "/share/man"))))) -- cgit v1.2.3 From e7c797f3481a35905a5861059294815b2210f889 Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Fri, 24 Mar 2017 11:00:13 +0100 Subject: services: Factorize define-maybe macro. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/services/configuration.scm (id): New procedure extracted from define-configuration. (define-maybe): New exported procedure, moved from messaging.scm. * gnu/services/messaging.scm (define-maybe): Remove it. (id): Move declaration inside define-all-configurations which is now the only caller procedure. Signed-off-by: Clément Lassieur --- gnu/services/configuration.scm | 34 ++++++++++++++++++++++++++-------- gnu/services/messaging.scm | 23 ++++------------------- 2 files changed, 30 insertions(+), 27 deletions(-) diff --git a/gnu/services/configuration.scm b/gnu/services/configuration.scm index 2ad3a637a4..400f231b94 100644 --- a/gnu/services/configuration.scm +++ b/gnu/services/configuration.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 Andy Wingo +;;; Copyright © 2017 Mathieu Othacehe ;;; ;;; This file is part of GNU Guix. ;;; @@ -36,6 +37,7 @@ configuration-field-default-value-thunk configuration-field-documentation serialize-configuration + define-maybe define-configuration validate-configuration generate-documentation @@ -85,16 +87,32 @@ (configuration-field-name field) val)))) fields)) +(define (id ctx part . parts) + (let ((part (syntax->datum part))) + (datum->syntax + ctx + (match parts + (() part) + (parts (symbol-append part + (syntax->datum (apply id ctx parts)))))))) + +(define-syntax define-maybe + (lambda (x) + (syntax-case x () + ((_ stem) + (with-syntax + ((stem? (id #'stem #'stem #'?)) + (maybe-stem? (id #'stem #'maybe- #'stem #'?)) + (serialize-stem (id #'stem #'serialize- #'stem)) + (serialize-maybe-stem (id #'stem #'serialize-maybe- #'stem))) + #'(begin + (define (maybe-stem? val) + (or (eq? val 'disabled) (stem? val))) + (define (serialize-maybe-stem field-name val) + (when (stem? val) (serialize-stem field-name val))))))))) + (define-syntax define-configuration (lambda (stx) - (define (id ctx part . parts) - (let ((part (syntax->datum part))) - (datum->syntax - ctx - (match parts - (() part) - (parts (symbol-append part - (syntax->datum (apply id ctx parts)))))))) (syntax-case stx () ((_ stem (field (field-type def) doc) ...) (with-syntax (((field-getter ...) diff --git a/gnu/services/messaging.scm b/gnu/services/messaging.scm index 34723dc11c..715d6181f5 100644 --- a/gnu/services/messaging.scm +++ b/gnu/services/messaging.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017 Clément Lassieur +;;; Copyright © 2017 Mathieu Othacehe ;;; ;;; This file is part of GNU Guix. ;;; @@ -49,27 +50,11 @@ ;;; ;;; Code: -(define-syntax-rule (id ctx parts ...) - "Assemble PARTS into a raw (unhygienic) identifier." - (datum->syntax ctx (symbol-append (syntax->datum parts) ...))) - -(define-syntax define-maybe - (lambda (x) - (syntax-case x () - ((_ stem) - (with-syntax - ((stem? (id #'stem #'stem #'?)) - (maybe-stem? (id #'stem #'maybe- #'stem #'?)) - (serialize-stem (id #'stem #'serialize- #'stem)) - (serialize-maybe-stem (id #'stem #'serialize-maybe- #'stem))) - #'(begin - (define (maybe-stem? val) - (or (eq? val 'disabled) (stem? val))) - (define (serialize-maybe-stem field-name val) - (when (stem? val) (serialize-stem field-name val))))))))) - (define-syntax define-all-configurations (lambda (stx) + (define-syntax-rule (id ctx parts ...) + "Assemble PARTS into a raw (unhygienic) identifier." + (datum->syntax ctx (symbol-append (syntax->datum parts) ...))) (define (make-pred arg) (lambda (field target) (and (memq (syntax->datum target) `(common ,arg)) field))) -- cgit v1.2.3 From d02c3c2234a3d3880b16efc263178d269bea0412 Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Fri, 24 Mar 2017 11:00:14 +0100 Subject: services: configuration: Rewrite id procedure. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/services/configuration.scm (id): Replace it using the more concise version found in messaging.scm. Signed-off-by: Clément Lassieur --- gnu/services/configuration.scm | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/gnu/services/configuration.scm b/gnu/services/configuration.scm index 400f231b94..0a2219e743 100644 --- a/gnu/services/configuration.scm +++ b/gnu/services/configuration.scm @@ -87,14 +87,9 @@ (configuration-field-name field) val)))) fields)) -(define (id ctx part . parts) - (let ((part (syntax->datum part))) - (datum->syntax - ctx - (match parts - (() part) - (parts (symbol-append part - (syntax->datum (apply id ctx parts)))))))) +(define-syntax-rule (id ctx parts ...) + "Assemble PARTS into a raw (unhygienic) identifier." + (datum->syntax ctx (symbol-append (syntax->datum parts) ...))) (define-syntax define-maybe (lambda (x) -- cgit v1.2.3 From bfbf6e1e1009cc2697b38d6c7ea2ebdd9db627f6 Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Fri, 24 Mar 2017 11:00:15 +0100 Subject: gnu: Add tlp service. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/services/pm.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add gnu/services/tlp.scm. * doc/guix.texi (Power management Services): New section. Signed-off-by: Clément Lassieur --- doc/guix.texi | 505 ++++++++++++++++++++++++++++++++++++++++++++++++++++ gnu/local.mk | 2 + gnu/services/pm.scm | 404 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 911 insertions(+) create mode 100644 gnu/services/pm.scm diff --git a/doc/guix.texi b/doc/guix.texi index fb0862096a..5649b089c2 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -216,6 +216,7 @@ Services * VPN Services:: VPN daemons. * Network File System:: NFS related services. * Continuous Integration:: The Cuirass service. +* Power management Services:: The TLP tool. * Miscellaneous Services:: Other services. Defining Services @@ -8451,6 +8452,7 @@ declaration. * VPN Services:: VPN daemons. * Network File System:: NFS related services. * Continuous Integration:: The Cuirass service. +* Power management Services:: The TLP tool. * Miscellaneous Services:: Other services. @end menu @@ -13708,6 +13710,509 @@ The Cuirass package to use. @end table @end deftp +@node Power management Services +@subsubsection Power management Services + +@cindex power management with TLP +The @code{(gnu services pm)} module provides a Guix service definition +for the Linux power management tool TLP. + +TLP enables various powersaving modes in userspace and kernel. +Contrary to @code{upower-service}, it is not a passive, +monitoring tool, as it will apply custom settings each time a new power +source is detected. More information can be found at +@uref{http://linrunner.de/en/tlp/tlp.html, TLP home page}. + +@deffn {Scheme Variable} tlp-service-type +The service type for the TLP tool. Its value should be a valid +TLP configuration (see below). For example: +@example +(service tlp-service-type (tlp-configuration)) +@end example +@end deffn + +By default TLP does not need much configuration but most TLP parameters +can be tweaked using @code{tlp-configuration}. + +Each parameter definition is preceded by its type; for example, +@samp{boolean foo} indicates that the @code{foo} parameter +should be specified as a boolean. Types starting with +@code{maybe-} denote parameters that won't show up in TLP config file +when their value is @code{'disabled}. + +@c The following documentation was initially generated by +@c (generate-tlp-documentation) in (gnu services pm). Manually maintained +@c documentation is better, so we shouldn't hesitate to edit below as +@c needed. However if the change you want to make to this documentation +@c can be done in an automated way, it's probably easier to change +@c (generate-documentation) than to make it below and have to deal with +@c the churn as TLP updates. + +Available @code{tlp-configuration} fields are: + +@deftypevr {@code{tlp-configuration} parameter} package tlp +The TLP package. + +@end deftypevr + +@deftypevr {@code{tlp-configuration} parameter} boolean tlp-enable? +Set to true if you wish to enable TLP. + +Defaults to @samp{#t}. + +@end deftypevr + +@deftypevr {@code{tlp-configuration} parameter} string tlp-default-mode +Default mode when no power supply can be detected. Alternatives are AC +and BAT. + +Defaults to @samp{"AC"}. + +@end deftypevr + +@deftypevr {@code{tlp-configuration} parameter} non-negative-integer disk-idle-secs-on-ac +Number of seconds Linux kernel has to wait after the disk goes idle, +before syncing on AC. + +Defaults to @samp{0}. + +@end deftypevr + +@deftypevr {@code{tlp-configuration} parameter} non-negative-integer disk-idle-secs-on-bat +Same as @code{disk-idle-ac} but on BAT mode. + +Defaults to @samp{2}. + +@end deftypevr + +@deftypevr {@code{tlp-configuration} parameter} non-negative-integer max-lost-work-secs-on-ac +Dirty pages flushing periodicity, expressed in seconds. + +Defaults to @samp{15}. + +@end deftypevr + +@deftypevr {@code{tlp-configuration} parameter} non-negative-integer max-lost-work-secs-on-bat +Same as @code{max-lost-work-secs-on-ac} but on BAT mode. + +Defaults to @samp{60}. + +@end deftypevr + +@deftypevr {@code{tlp-configuration} parameter} maybe-space-separated-string-list cpu-scaling-governor-on-ac +CPU frequency scaling governor on AC mode. With intel_pstate driver, +alternatives are powersave and performance. With acpi-cpufreq driver, +alternatives are ondemand, powersave, performance and conservative. + +Defaults to @samp{disabled}. + +@end deftypevr + +@deftypevr {@code{tlp-configuration} parameter} maybe-space-separated-string-list cpu-scaling-governor-on-bat +Same as @code{cpu-scaling-governor-on-ac} but on BAT mode. + +Defaults to @samp{disabled}. + +@end deftypevr + +@deftypevr {@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-scaling-min-freq-on-ac +Set the min available frequency for the scaling governor on AC. + +Defaults to @samp{disabled}. + +@end deftypevr + +@deftypevr {@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-scaling-max-freq-on-ac +Set the max available frequency for the scaling governor on AC. + +Defaults to @samp{disabled}. + +@end deftypevr + +@deftypevr {@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-scaling-min-freq-on-bat +Set the min available frequency for the scaling governor on BAT. + +Defaults to @samp{disabled}. + +@end deftypevr + +@deftypevr {@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-scaling-max-freq-on-bat +Set the max available frequency for the scaling governor on BAT. + +Defaults to @samp{disabled}. + +@end deftypevr + +@deftypevr {@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-min-perf-on-ac +Limit the min P-state to control the power dissipation of the CPU, in AC +mode. Values are stated as a percentage of the available performance. + +Defaults to @samp{disabled}. + +@end deftypevr + +@deftypevr {@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-max-perf-on-ac +Limit the max P-state to control the power dissipation of the CPU, in AC +mode. Values are stated as a percentage of the available performance. + +Defaults to @samp{disabled}. + +@end deftypevr + +@deftypevr {@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-min-perf-on-bat +Same as @code{cpu-min-perf-on-ac} on BAT mode. + +Defaults to @samp{disabled}. + +@end deftypevr + +@deftypevr {@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-max-perf-on-bat +Same as @code{cpu-max-perf-on-ac} on BAT mode. + +Defaults to @samp{disabled}. + +@end deftypevr + +@deftypevr {@code{tlp-configuration} parameter} maybe-boolean cpu-boost-on-ac? +Enable CPU turbo boost feature on AC mode. + +Defaults to @samp{disabled}. + +@end deftypevr + +@deftypevr {@code{tlp-configuration} parameter} maybe-boolean cpu-boost-on-bat? +Same as @code{cpu-boost-on-ac?} on BAT mode. + +Defaults to @samp{disabled}. + +@end deftypevr + +@deftypevr {@code{tlp-configuration} parameter} boolean sched-powersave-on-ac? +Allow Linux kernel to minimize the number of CPU cores/hyper-threads +used under light load conditions. + +Defaults to @samp{#f}. + +@end deftypevr + +@deftypevr {@code{tlp-configuration} parameter} boolean sched-powersave-on-bat? +Same as @code{sched-powersave-on-ac?} but on BAT mode. + +Defaults to @samp{#t}. + +@end deftypevr + +@deftypevr {@code{tlp-configuration} parameter} boolean nmi-watchdog? +Enable Linux kernel NMI watchdog. + +Defaults to @samp{#f}. + +@end deftypevr + +@deftypevr {@code{tlp-configuration} parameter} maybe-string phc-controls +For Linux kernels with PHC patch applied, change CPU voltages. An +example value would be @samp{"F:V F:V F:V F:V"}. + +Defaults to @samp{disabled}. + +@end deftypevr + +@deftypevr {@code{tlp-configuration} parameter} string energy-perf-policy-on-ac +Set CPU performance versus energy saving policy on AC. Alternatives are +performance, normal, powersave. + +Defaults to @samp{"performance"}. + +@end deftypevr + +@deftypevr {@code{tlp-configuration} parameter} string energy-perf-policy-on-bat +Same as @code{energy-perf-policy-ac} but on BAT mode. + +Defaults to @samp{"powersave"}. + +@end deftypevr + +@deftypevr {@code{tlp-configuration} parameter} space-separated-string-list disks-devices +Hard disk devices. + +@end deftypevr + +@deftypevr {@code{tlp-configuration} parameter} space-separated-string-list disk-apm-level-on-ac +Hard disk advanced power management level. + +@end deftypevr + +@deftypevr {@code{tlp-configuration} parameter} space-separated-string-list disk-apm-level-on-bat +Same as @code{disk-apm-bat} but on BAT mode. + +@end deftypevr + +@deftypevr {@code{tlp-configuration} parameter} maybe-space-separated-string-list disk-spindown-timeout-on-ac +Hard disk spin down timeout. One value has to be specified for each +declared hard disk. + +Defaults to @samp{disabled}. + +@end deftypevr + +@deftypevr {@code{tlp-configuration} parameter} maybe-space-separated-string-list disk-spindown-timeout-on-bat +Same as @code{disk-spindown-timeout-on-ac} but on BAT mode. + +Defaults to @samp{disabled}. + +@end deftypevr + +@deftypevr {@code{tlp-configuration} parameter} maybe-space-separated-string-list disk-iosched +Select IO scheduler for disk devices. One value has to be specified for +each declared hard disk. Example alternatives are cfq, deadline and +noop. + +Defaults to @samp{disabled}. + +@end deftypevr + +@deftypevr {@code{tlp-configuration} parameter} string sata-linkpwr-on-ac +SATA aggressive link power management (ALPM) level. Alternatives are +min_power, medium_power, max_performance. + +Defaults to @samp{"max_performance"}. + +@end deftypevr + +@deftypevr {@code{tlp-configuration} parameter} string sata-linkpwr-on-bat +Same as @code{sata-linkpwr-ac} but on BAT mode. + +Defaults to @samp{"min_power"}. + +@end deftypevr + +@deftypevr {@code{tlp-configuration} parameter} maybe-string sata-linkpwr-blacklist +Exclude specified SATA host devices for link power management. + +Defaults to @samp{disabled}. + +@end deftypevr + +@deftypevr {@code{tlp-configuration} parameter} maybe-on-off-boolean ahci-runtime-pm-on-ac? +Enable Runtime Power Management for AHCI controller and disks on AC +mode. + +Defaults to @samp{disabled}. + +@end deftypevr + +@deftypevr {@code{tlp-configuration} parameter} maybe-on-off-boolean ahci-runtime-pm-on-bat? +Same as @code{ahci-runtime-pm-on-ac} on BAT mode. + +Defaults to @samp{disabled}. + +@end deftypevr + +@deftypevr {@code{tlp-configuration} parameter} non-negative-integer ahci-runtime-pm-timeout +Seconds of inactivity before disk is suspended. + +Defaults to @samp{15}. + +@end deftypevr + +@deftypevr {@code{tlp-configuration} parameter} string pcie-aspm-on-ac +PCI Express Active State Power Management level. Alternatives are +default, performance, powersave. + +Defaults to @samp{"performance"}. + +@end deftypevr + +@deftypevr {@code{tlp-configuration} parameter} string pcie-aspm-on-bat +Same as @code{pcie-aspm-ac} but on BAT mode. + +Defaults to @samp{"powersave"}. + +@end deftypevr + +@deftypevr {@code{tlp-configuration} parameter} string radeon-power-profile-on-ac +Radeon graphics clock speed level. Alternatives are low, mid, high, +auto, default. + +Defaults to @samp{"high"}. + +@end deftypevr + +@deftypevr {@code{tlp-configuration} parameter} string radeon-power-profile-on-bat +Same as @code{radeon-power-ac} but on BAT mode. + +Defaults to @samp{"low"}. + +@end deftypevr + +@deftypevr {@code{tlp-configuration} parameter} string radeon-dpm-state-on-ac +Radeon dynamic power management method (DPM). Alternatives are battery, +performance. + +Defaults to @samp{"performance"}. + +@end deftypevr + +@deftypevr {@code{tlp-configuration} parameter} string radeon-dpm-state-on-bat +Same as @code{radeon-dpm-state-ac} but on BAT mode. + +Defaults to @samp{"battery"}. + +@end deftypevr + +@deftypevr {@code{tlp-configuration} parameter} string radeon-dpm-perf-level-on-ac +Radeon DPM performance level. Alternatives are auto, low, high. + +Defaults to @samp{"auto"}. + +@end deftypevr + +@deftypevr {@code{tlp-configuration} parameter} string radeon-dpm-perf-level-on-bat +Same as @code{radeon-dpm-perf-ac} but on BAT mode. + +Defaults to @samp{"auto"}. + +@end deftypevr + +@deftypevr {@code{tlp-configuration} parameter} on-off-boolean wifi-pwr-on-ac? +Wifi power saving mode. + +Defaults to @samp{#f}. + +@end deftypevr + +@deftypevr {@code{tlp-configuration} parameter} on-off-boolean wifi-pwr-on-bat? +Same as @code{wifi-power-ac?} but on BAT mode. + +Defaults to @samp{#t}. + +@end deftypevr + +@deftypevr {@code{tlp-configuration} parameter} y-n-boolean wol-disable? +Disable wake on LAN. + +Defaults to @samp{#t}. + +@end deftypevr + +@deftypevr {@code{tlp-configuration} parameter} non-negative-integer sound-power-save-on-ac +Timeout duration in seconds before activating audio power saving on +Intel HDA and AC97 devices. A value of 0 disables power saving. + +Defaults to @samp{0}. + +@end deftypevr + +@deftypevr {@code{tlp-configuration} parameter} non-negative-integer sound-power-save-on-bat +Same as @code{sound-powersave-ac} but on BAT mode. + +Defaults to @samp{1}. + +@end deftypevr + +@deftypevr {@code{tlp-configuration} parameter} y-n-boolean sound-power-save-controller? +Disable controller in powersaving mode on Intel HDA devices. + +Defaults to @samp{#t}. + +@end deftypevr + +@deftypevr {@code{tlp-configuration} parameter} boolean bay-poweroff-on-bat? +Enable optical drive in UltraBay/MediaBay on BAT mode. Drive can be +powered on again by releasing (and reinserting) the eject lever or by +pressing the disc eject button on newer models. + +Defaults to @samp{#f}. + +@end deftypevr + +@deftypevr {@code{tlp-configuration} parameter} string bay-device +Name of the optical drive device to power off. + +Defaults to @samp{"sr0"}. + +@end deftypevr + +@deftypevr {@code{tlp-configuration} parameter} string runtime-pm-on-ac +Runtime Power Management for PCI(e) bus devices. Alternatives are on +and auto. + +Defaults to @samp{"on"}. + +@end deftypevr + +@deftypevr {@code{tlp-configuration} parameter} string runtime-pm-on-bat +Same as @code{runtime-pm-ac} but on BAT mode. + +Defaults to @samp{"auto"}. + +@end deftypevr + +@deftypevr {@code{tlp-configuration} parameter} boolean runtime-pm-all? +Runtime Power Management for all PCI(e) bus devices, except blacklisted +ones. + +Defaults to @samp{#t}. + +@end deftypevr + +@deftypevr {@code{tlp-configuration} parameter} maybe-space-separated-string-list runtime-pm-blacklist +Exclude specified PCI(e) devices adresses from Runtime Power Management. + +Defaults to @samp{disabled}. + +@end deftypevr + +@deftypevr {@code{tlp-configuration} parameter} space-separated-string-list runtime-pm-driver-blacklist +Exclude PCI(e) devices assigned to the specified drivers from Runtime +Power Management. + +@end deftypevr + +@deftypevr {@code{tlp-configuration} parameter} boolean usb-autosuspend? +Enable USB autosuspend feature. + +Defaults to @samp{#t}. + +@end deftypevr + +@deftypevr {@code{tlp-configuration} parameter} maybe-string usb-blacklist +Exclude specified devices from USB autosuspend. + +Defaults to @samp{disabled}. + +@end deftypevr + +@deftypevr {@code{tlp-configuration} parameter} boolean usb-blacklist-wwan? +Exclude WWAN devices from USB autosuspend. + +Defaults to @samp{#t}. + +@end deftypevr + +@deftypevr {@code{tlp-configuration} parameter} maybe-string usb-whitelist +Include specified devices into USB autosuspend, even if they are already +excluded by the driver or via @code{usb-blacklist-wwan?}. + +Defaults to @samp{disabled}. + +@end deftypevr + +@deftypevr {@code{tlp-configuration} parameter} maybe-boolean usb-autosuspend-disable-on-shutdown? +Enable USB autosuspend before shutdown. + +Defaults to @samp{disabled}. + +@end deftypevr + +@deftypevr {@code{tlp-configuration} parameter} boolean restore-device-state-on-startup? +Restore radio device state (bluetooth, wifi, wwan) from previous +shutdown on system startup. + +Defaults to @samp{#f}. + +@end deftypevr + @node Miscellaneous Services @subsubsection Miscellaneous Services diff --git a/gnu/local.mk b/gnu/local.mk index 0eb18f26c1..f589cd9468 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -10,6 +10,7 @@ # Copyright © 2016, 2017 Ricardo Wurmus # Copyright © 2016 Ben Woodcroft # Copyright © 2017 Clément Lassieur +# Copyright © 2017 Mathieu Othacehe # # This file is part of GNU Guix. # @@ -422,6 +423,7 @@ GNU_SYSTEM_MODULES = \ %D%/services/nfs.scm \ %D%/services/shepherd.scm \ %D%/services/herd.scm \ + %D%/services/pm.scm \ %D%/services/sddm.scm \ %D%/services/spice.scm \ %D%/services/ssh.scm \ diff --git a/gnu/services/pm.scm b/gnu/services/pm.scm new file mode 100644 index 0000000000..ec35e5701a --- /dev/null +++ b/gnu/services/pm.scm @@ -0,0 +1,404 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2017 Mathieu Othacehe +;;; +;;; 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 services pm) + #:use-module (guix gexp) + #:use-module (guix packages) + #:use-module (guix records) + #:use-module (gnu packages linux) + #:use-module (gnu services) + #:use-module (gnu services base) + #:use-module (gnu services configuration) + #:use-module (gnu services shepherd) + #:use-module (gnu system shadow) + #:export (tlp-service-type + tlp-configuration)) + +(define (uglify-field-name field-name) + (let ((str (symbol->string field-name))) + (string-join (string-split + (string-upcase + (if (string-suffix? "?" str) + (substring str 0 (1- (string-length str))) + str)) + #\-) + "_"))) + +(define (serialize-field field-name val) + (format #t "~a=~a\n" (uglify-field-name field-name) val)) + +(define (serialize-boolean field-name val) + (serialize-field field-name (if val "1" "0"))) +(define-maybe boolean) + +(define (serialize-string field-name val) + (serialize-field field-name val)) +(define-maybe string) + +(define (space-separated-string-list? val) + (and (list? val) + (and-map (lambda (x) + (and (string? x) (not (string-index x #\space)))) + val))) +(define (serialize-space-separated-string-list field-name val) + (serialize-field field-name + (format #f "~s" + (string-join val " ")))) +(define-maybe space-separated-string-list) + +(define (non-negative-integer? val) + (and (exact-integer? val) (not (negative? val)))) +(define (serialize-non-negative-integer field-name val) + (serialize-field field-name val)) +(define-maybe non-negative-integer) + +(define (on-off-boolean? val) + (boolean? val)) +(define (serialize-on-off-boolean field-name val) + (serialize-field field-name (if val "on" "off"))) +(define-maybe on-off-boolean) + +(define (y-n-boolean? val) + (boolean? val)) +(define (serialize-y-n-boolean field-name val) + (serialize-field field-name (if val "Y" "N"))) + +(define-configuration tlp-configuration + (tlp + (package tlp) + "The TLP package.") + + (tlp-enable? + (boolean #t) + "Set to true if you wish to enable TLP.") + + (tlp-default-mode + (string "AC") + "Default mode when no power supply can be detected. Alternatives are +AC and BAT.") + + (disk-idle-secs-on-ac + (non-negative-integer 0) + "Number of seconds Linux kernel has to wait after the disk goes idle, +before syncing on AC.") + + (disk-idle-secs-on-bat + (non-negative-integer 2) + "Same as @code{disk-idle-ac} but on BAT mode.") + + (max-lost-work-secs-on-ac + (non-negative-integer 15) + "Dirty pages flushing periodicity, expressed in seconds.") + + (max-lost-work-secs-on-bat + (non-negative-integer 60) + "Same as @code{max-lost-work-secs-on-ac} but on BAT mode.") + + (cpu-scaling-governor-on-ac + (maybe-space-separated-string-list 'disabled) + "CPU frequency scaling governor on AC mode. With intel_pstate +driver, alternatives are powersave and performance. With acpi-cpufreq driver, +alternatives are ondemand, powersave, performance and conservative.") + + (cpu-scaling-governor-on-bat + (maybe-space-separated-string-list 'disabled) + "Same as @code{cpu-scaling-governor-on-ac} but on BAT mode.") + + (cpu-scaling-min-freq-on-ac + (maybe-non-negative-integer 'disabled) + "Set the min available frequency for the scaling governor on AC.") + + (cpu-scaling-max-freq-on-ac + (maybe-non-negative-integer 'disabled) + "Set the max available frequency for the scaling governor on AC.") + + (cpu-scaling-min-freq-on-bat + (maybe-non-negative-integer 'disabled) + "Set the min available frequency for the scaling governor on BAT.") + + (cpu-scaling-max-freq-on-bat + (maybe-non-negative-integer 'disabled) + "Set the max available frequency for the scaling governor on BAT.") + + (cpu-min-perf-on-ac + (maybe-non-negative-integer 'disabled) + "Limit the min P-state to control the power dissipation of the CPU, +in AC mode. Values are stated as a percentage of the available performance.") + + (cpu-max-perf-on-ac + (maybe-non-negative-integer 'disabled) + "Limit the max P-state to control the power dissipation of the CPU, +in AC mode. Values are stated as a percentage of the available performance.") + + (cpu-min-perf-on-bat + (maybe-non-negative-integer 'disabled) + "Same as @code{cpu-min-perf-on-ac} on BAT mode.") + + (cpu-max-perf-on-bat + (maybe-non-negative-integer 'disabled) + "Same as @code{cpu-max-perf-on-ac} on BAT mode.") + + (cpu-boost-on-ac? + (maybe-boolean 'disabled) + "Enable CPU turbo boost feature on AC mode.") + + (cpu-boost-on-bat? + (maybe-boolean 'disabled) + "Same as @code{cpu-boost-on-ac?} on BAT mode.") + + (sched-powersave-on-ac? + (boolean #f) + "Allow Linux kernel to minimize the number of CPU cores/hyper-threads +used under light load conditions.") + + (sched-powersave-on-bat? + (boolean #t) + "Same as @code{sched-powersave-on-ac?} but on BAT mode.") + + (nmi-watchdog? + (boolean #f) + "Enable Linux kernel NMI watchdog.") + + (phc-controls + (maybe-string 'disabled) + "For Linux kernels with PHC patch applied, change CPU voltages. +An example value would be @samp{\"F:V F:V F:V F:V\"}.") + + (energy-perf-policy-on-ac + (string "performance") + "Set CPU performance versus energy saving policy on AC. Alternatives are +performance, normal, powersave.") + + (energy-perf-policy-on-bat + (string "powersave") + "Same as @code{energy-perf-policy-ac} but on BAT mode.") + + (disks-devices + (space-separated-string-list '("sda")) + "Hard disk devices.") + + (disk-apm-level-on-ac + (space-separated-string-list '("254" "254")) + "Hard disk advanced power management level.") + + (disk-apm-level-on-bat + (space-separated-string-list '("128" "128")) + "Same as @code{disk-apm-bat} but on BAT mode.") + + (disk-spindown-timeout-on-ac + (maybe-space-separated-string-list 'disabled) + "Hard disk spin down timeout. One value has to be specified for +each declared hard disk.") + + (disk-spindown-timeout-on-bat + (maybe-space-separated-string-list 'disabled) + "Same as @code{disk-spindown-timeout-on-ac} but on BAT mode.") + + (disk-iosched + (maybe-space-separated-string-list 'disabled) + "Select IO scheduler for disk devices. One value has to be specified +for each declared hard disk. Example alternatives are cfq, deadline and noop.") + + (sata-linkpwr-on-ac + (string "max_performance") + "SATA aggressive link power management (ALPM) level. Alternatives are +min_power, medium_power, max_performance.") + + (sata-linkpwr-on-bat + (string "min_power") + "Same as @code{sata-linkpwr-ac} but on BAT mode.") + + (sata-linkpwr-blacklist + (maybe-string 'disabled) + "Exclude specified SATA host devices for link power management.") + + (ahci-runtime-pm-on-ac? + (maybe-on-off-boolean 'disabled) + "Enable Runtime Power Management for AHCI controller and disks +on AC mode.") + + (ahci-runtime-pm-on-bat? + (maybe-on-off-boolean 'disabled) + "Same as @code{ahci-runtime-pm-on-ac} on BAT mode.") + + (ahci-runtime-pm-timeout + (non-negative-integer 15) + "Seconds of inactivity before disk is suspended.") + + (pcie-aspm-on-ac + (string "performance") + "PCI Express Active State Power Management level. Alternatives are +default, performance, powersave.") + + (pcie-aspm-on-bat + (string "powersave") + "Same as @code{pcie-aspm-ac} but on BAT mode.") + + (radeon-power-profile-on-ac + (string "high") + "Radeon graphics clock speed level. Alternatives are +low, mid, high, auto, default.") + + (radeon-power-profile-on-bat + (string "low") + "Same as @code{radeon-power-ac} but on BAT mode.") + + (radeon-dpm-state-on-ac + (string "performance") + "Radeon dynamic power management method (DPM). Alternatives are +battery, performance.") + + (radeon-dpm-state-on-bat + (string "battery") + "Same as @code{radeon-dpm-state-ac} but on BAT mode.") + + (radeon-dpm-perf-level-on-ac + (string "auto") + "Radeon DPM performance level. Alternatives are +auto, low, high.") + + (radeon-dpm-perf-level-on-bat + (string "auto") + "Same as @code{radeon-dpm-perf-ac} but on BAT mode.") + + (wifi-pwr-on-ac? + (on-off-boolean #f) + "Wifi power saving mode.") + + (wifi-pwr-on-bat? + (on-off-boolean #t) + "Same as @code{wifi-power-ac?} but on BAT mode.") + + (wol-disable? + (y-n-boolean #t) + "Disable wake on LAN.") + + (sound-power-save-on-ac + (non-negative-integer 0) + "Timeout duration in seconds before activating audio power saving + on Intel HDA and AC97 devices. A value of 0 disables power saving.") + + (sound-power-save-on-bat + (non-negative-integer 1) + "Same as @code{sound-powersave-ac} but on BAT mode.") + + (sound-power-save-controller? + (y-n-boolean #t) + "Disable controller in powersaving mode on Intel HDA devices.") + + (bay-poweroff-on-bat? + (boolean #f) + "Enable optical drive in UltraBay/MediaBay on BAT mode. +Drive can be powered on again by releasing (and reinserting) the eject lever +or by pressing the disc eject button on newer models.") + + (bay-device + (string "sr0") + "Name of the optical drive device to power off.") + + (runtime-pm-on-ac + (string "on") + "Runtime Power Management for PCI(e) bus devices. Alternatives are +on and auto.") + + (runtime-pm-on-bat + (string "auto") + "Same as @code{runtime-pm-ac} but on BAT mode.") + + (runtime-pm-all? + (boolean #t) + "Runtime Power Management for all PCI(e) bus devices, except +blacklisted ones.") + + (runtime-pm-blacklist + (maybe-space-separated-string-list 'disabled) + "Exclude specified PCI(e) devices adresses from Runtime Power Management.") + + (runtime-pm-driver-blacklist + (space-separated-string-list '("radeon" "nouveau")) + "Exclude PCI(e) devices assigned to the specified drivers from +Runtime Power Management.") + + (usb-autosuspend? + (boolean #t) + "Enable USB autosuspend feature.") + + (usb-blacklist + (maybe-string 'disabled) + "Exclude specified devices from USB autosuspend.") + + (usb-blacklist-wwan? + (boolean #t) + "Exclude WWAN devices from USB autosuspend.") + + (usb-whitelist + (maybe-string 'disabled) + "Include specified devices into USB autosuspend, even if they are +already excluded by the driver or via @code{usb-blacklist-wwan?}.") + + (usb-autosuspend-disable-on-shutdown? + (maybe-boolean 'disabled) + "Enable USB autosuspend before shutdown.") + + (restore-device-state-on-startup? + (boolean #f) + "Restore radio device state (bluetooth, wifi, wwan) from previous +shutdown on system startup.")) + + +(define (tlp-shepherd-service config) + (let* ((tlp-bin (file-append + (tlp-configuration-tlp config) "/bin/tlp")) + (tlp-action (lambda args + #~(lambda _ + (zero? (system* #$tlp-bin #$@args)))))) + (list (shepherd-service + (documentation "Run TLP script.") + (provision '(tlp)) + (requirement '(user-processes)) + (start (tlp-action "init" "start")) + (stop (tlp-action "init" "stop")))))) + +(define (tlp-activation config) + (let* ((config-str (with-output-to-string + (lambda () + (serialize-configuration + config + tlp-configuration-fields)))) + (config-file (plain-file "tlp" config-str))) + (with-imported-modules '((guix build utils)) + #~(begin + (use-modules (guix build utils)) + (copy-file #$config-file "/etc/tlp"))))) + +(define tlp-service-type + (service-type + (name 'tlp) + (extensions + (list + (service-extension shepherd-root-service-type + tlp-shepherd-service) + (service-extension udev-service-type + (compose list tlp-configuration-tlp)) + (service-extension activation-service-type + tlp-activation))))) + +(define (generate-tlp-documentation) + (generate-documentation + `((tlp-configuration ,tlp-configuration-fields)) + 'tlp-configuration)) -- cgit v1.2.3 From 85ac401acf2e33e4cb6d1510ac24867dc516e656 Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Fri, 24 Mar 2017 11:00:16 +0100 Subject: services: openvpn: Fix a typo which was corrected in generated doc. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/services/vpn.scm (define-split-configuration): Fix typo. Signed-off-by: Clément Lassieur --- gnu/services/vpn.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/services/vpn.scm b/gnu/services/vpn.scm index 844a11b3d3..e1a04a9858 100644 --- a/gnu/services/vpn.scm +++ b/gnu/services/vpn.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017 Julien Lepiller ;;; Copyright © 2017 Clément Lassieur +;;; Copyright © 2017 Mathieu Othacehe ;;; ;;; This file is part of GNU Guix. ;;; @@ -279,7 +280,7 @@ by the authority given in @code{ca}.") (key (string "/etc/openvpn/client.key") - "The key of the machine the daemon is running on. It must be the whose + "The key of the machine the daemon is running on. It must be the key whose certificate is @code{cert}.") (comp-lzo? -- cgit v1.2.3 From 1c17a863f6816a086595106ac553c67e3f177954 Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Fri, 24 Mar 2017 11:00:17 +0100 Subject: doc: Re-generate openvpn service documentation. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * doc/guix.texi (VPN Services): Generate documentation with generate-openvpn-server-documentation and generate-openvpn-client-documentation helpers and guile 2.1.7. Signed-off-by: Clément Lassieur --- doc/guix.texi | 88 +++++++++++++++++++++++++++++------------------------------ 1 file changed, 44 insertions(+), 44 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 5649b089c2..6aa279edc3 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -13113,19 +13113,19 @@ Both can be run simultaneously. Available @code{openvpn-client-configuration} fields are: -@deftypevr @code{openvpn-client-configuration} parameter package openvpn +@deftypevr {@code{openvpn-client-configuration} parameter} package openvpn The OpenVPN package. @end deftypevr -@deftypevr @code{openvpn-client-configuration} parameter string pid-file +@deftypevr {@code{openvpn-client-configuration} parameter} string pid-file The OpenVPN pid file. Defaults to @samp{"/var/run/openvpn/openvpn.pid"}. @end deftypevr -@deftypevr @code{openvpn-client-configuration} parameter proto proto +@deftypevr {@code{openvpn-client-configuration} parameter} proto proto The protocol (UDP or TCP) used to open a channel between clients and servers. @@ -13133,21 +13133,21 @@ Defaults to @samp{udp}. @end deftypevr -@deftypevr @code{openvpn-client-configuration} parameter dev dev +@deftypevr {@code{openvpn-client-configuration} parameter} dev dev The device type used to represent the VPN connection. Defaults to @samp{tun}. @end deftypevr -@deftypevr @code{openvpn-client-configuration} parameter string ca +@deftypevr {@code{openvpn-client-configuration} parameter} string ca The certificate authority to check connections against. Defaults to @samp{"/etc/openvpn/ca.crt"}. @end deftypevr -@deftypevr @code{openvpn-client-configuration} parameter string cert +@deftypevr {@code{openvpn-client-configuration} parameter} string cert The certificate of the machine the daemon is running on. It should be signed by the authority given in @code{ca}. @@ -13155,7 +13155,7 @@ Defaults to @samp{"/etc/openvpn/client.crt"}. @end deftypevr -@deftypevr @code{openvpn-client-configuration} parameter string key +@deftypevr {@code{openvpn-client-configuration} parameter} string key The key of the machine the daemon is running on. It must be the key whose certificate is @code{cert}. @@ -13163,21 +13163,21 @@ Defaults to @samp{"/etc/openvpn/client.key"}. @end deftypevr -@deftypevr @code{openvpn-client-configuration} parameter boolean comp-lzo? +@deftypevr {@code{openvpn-client-configuration} parameter} boolean comp-lzo? Whether to use the lzo compression algorithm. Defaults to @samp{#t}. @end deftypevr -@deftypevr @code{openvpn-client-configuration} parameter boolean persist-key? +@deftypevr {@code{openvpn-client-configuration} parameter} boolean persist-key? Don't re-read key files across SIGUSR1 or --ping-restart. Defaults to @samp{#t}. @end deftypevr -@deftypevr @code{openvpn-client-configuration} parameter boolean persist-tun? +@deftypevr {@code{openvpn-client-configuration} parameter} boolean persist-tun? Don't close and reopen TUN/TAP device or run up/down scripts across SIGUSR1 or --ping-restart restarts. @@ -13185,14 +13185,14 @@ Defaults to @samp{#t}. @end deftypevr -@deftypevr @code{openvpn-client-configuration} parameter number verbosity +@deftypevr {@code{openvpn-client-configuration} parameter} number verbosity Verbosity level. Defaults to @samp{3}. @end deftypevr -@deftypevr @code{openvpn-client-configuration} parameter tls-auth-client tls-auth +@deftypevr {@code{openvpn-client-configuration} parameter} tls-auth-client tls-auth Add an additional layer of HMAC authentication on top of the TLS control channel to protect against DoS attacks. @@ -13200,42 +13200,42 @@ Defaults to @samp{#f}. @end deftypevr -@deftypevr @code{openvpn-client-configuration} parameter key-usage verify-key-usage? +@deftypevr {@code{openvpn-client-configuration} parameter} key-usage verify-key-usage? Whether to check the server certificate has server usage extension. Defaults to @samp{#t}. @end deftypevr -@deftypevr @code{openvpn-client-configuration} parameter bind bind? +@deftypevr {@code{openvpn-client-configuration} parameter} bind bind? Bind to a specific local port number. Defaults to @samp{#f}. @end deftypevr -@deftypevr @code{openvpn-client-configuration} parameter resolv-retry resolv-retry? +@deftypevr {@code{openvpn-client-configuration} parameter} resolv-retry resolv-retry? Retry resolving server address. Defaults to @samp{#t}. @end deftypevr -@deftypevr @code{openvpn-client-configuration} parameter openvpn-remote-list remote +@deftypevr {@code{openvpn-client-configuration} parameter} openvpn-remote-list remote A list of remote servers to connect to. Defaults to @samp{()}. Available @code{openvpn-remote-configuration} fields are: -@deftypevr @code{openvpn-remote-configuration} parameter string name +@deftypevr {@code{openvpn-remote-configuration} parameter} string name Server name. Defaults to @samp{"my-server"}. @end deftypevr -@deftypevr @code{openvpn-remote-configuration} parameter number port +@deftypevr {@code{openvpn-remote-configuration} parameter} number port Port number the server listens to. Defaults to @samp{1194}. @@ -13249,19 +13249,19 @@ Defaults to @samp{1194}. Available @code{openvpn-server-configuration} fields are: -@deftypevr @code{openvpn-server-configuration} parameter package openvpn +@deftypevr {@code{openvpn-server-configuration} parameter} package openvpn The OpenVPN package. @end deftypevr -@deftypevr @code{openvpn-server-configuration} parameter string pid-file +@deftypevr {@code{openvpn-server-configuration} parameter} string pid-file The OpenVPN pid file. Defaults to @samp{"/var/run/openvpn/openvpn.pid"}. @end deftypevr -@deftypevr @code{openvpn-server-configuration} parameter proto proto +@deftypevr {@code{openvpn-server-configuration} parameter} proto proto The protocol (UDP or TCP) used to open a channel between clients and servers. @@ -13269,21 +13269,21 @@ Defaults to @samp{udp}. @end deftypevr -@deftypevr @code{openvpn-server-configuration} parameter dev dev +@deftypevr {@code{openvpn-server-configuration} parameter} dev dev The device type used to represent the VPN connection. Defaults to @samp{tun}. @end deftypevr -@deftypevr @code{openvpn-server-configuration} parameter string ca +@deftypevr {@code{openvpn-server-configuration} parameter} string ca The certificate authority to check connections against. Defaults to @samp{"/etc/openvpn/ca.crt"}. @end deftypevr -@deftypevr @code{openvpn-server-configuration} parameter string cert +@deftypevr {@code{openvpn-server-configuration} parameter} string cert The certificate of the machine the daemon is running on. It should be signed by the authority given in @code{ca}. @@ -13291,7 +13291,7 @@ Defaults to @samp{"/etc/openvpn/client.crt"}. @end deftypevr -@deftypevr @code{openvpn-server-configuration} parameter string key +@deftypevr {@code{openvpn-server-configuration} parameter} string key The key of the machine the daemon is running on. It must be the key whose certificate is @code{cert}. @@ -13299,21 +13299,21 @@ Defaults to @samp{"/etc/openvpn/client.key"}. @end deftypevr -@deftypevr @code{openvpn-server-configuration} parameter boolean comp-lzo? +@deftypevr {@code{openvpn-server-configuration} parameter} boolean comp-lzo? Whether to use the lzo compression algorithm. Defaults to @samp{#t}. @end deftypevr -@deftypevr @code{openvpn-server-configuration} parameter boolean persist-key? +@deftypevr {@code{openvpn-server-configuration} parameter} boolean persist-key? Don't re-read key files across SIGUSR1 or --ping-restart. Defaults to @samp{#t}. @end deftypevr -@deftypevr @code{openvpn-server-configuration} parameter boolean persist-tun? +@deftypevr {@code{openvpn-server-configuration} parameter} boolean persist-tun? Don't close and reopen TUN/TAP device or run up/down scripts across SIGUSR1 or --ping-restart restarts. @@ -13321,14 +13321,14 @@ Defaults to @samp{#t}. @end deftypevr -@deftypevr @code{openvpn-server-configuration} parameter number verbosity +@deftypevr {@code{openvpn-server-configuration} parameter} number verbosity Verbosity level. Defaults to @samp{3}. @end deftypevr -@deftypevr @code{openvpn-server-configuration} parameter tls-auth-server tls-auth +@deftypevr {@code{openvpn-server-configuration} parameter} tls-auth-server tls-auth Add an additional layer of HMAC authentication on top of the TLS control channel to protect against DoS attacks. @@ -13336,56 +13336,56 @@ Defaults to @samp{#f}. @end deftypevr -@deftypevr @code{openvpn-server-configuration} parameter number port +@deftypevr {@code{openvpn-server-configuration} parameter} number port Specifies the port number on which the server listens. Defaults to @samp{1194}. @end deftypevr -@deftypevr @code{openvpn-server-configuration} parameter ip-mask server +@deftypevr {@code{openvpn-server-configuration} parameter} ip-mask server An ip and mask specifying the subnet inside the virtual network. Defaults to @samp{"10.8.0.0 255.255.255.0"}. @end deftypevr -@deftypevr @code{openvpn-server-configuration} parameter cidr6 server-ipv6 +@deftypevr {@code{openvpn-server-configuration} parameter} cidr6 server-ipv6 A CIDR notation specifying the IPv6 subnet inside the virtual network. Defaults to @samp{#f}. @end deftypevr -@deftypevr @code{openvpn-server-configuration} parameter string dh +@deftypevr {@code{openvpn-server-configuration} parameter} string dh The Diffie-Hellman parameters file. Defaults to @samp{"/etc/openvpn/dh2048.pem"}. @end deftypevr -@deftypevr @code{openvpn-server-configuration} parameter string ifconfig-pool-persist +@deftypevr {@code{openvpn-server-configuration} parameter} string ifconfig-pool-persist The file that records client IPs. Defaults to @samp{"/etc/openvpn/ipp.txt"}. @end deftypevr -@deftypevr @code{openvpn-server-configuration} parameter gateway redirect-gateway? +@deftypevr {@code{openvpn-server-configuration} parameter} gateway redirect-gateway? When true, the server will act as a gateway for its clients. Defaults to @samp{#f}. @end deftypevr -@deftypevr @code{openvpn-server-configuration} parameter boolean client-to-client? +@deftypevr {@code{openvpn-server-configuration} parameter} boolean client-to-client? When true, clients are alowed to talk to each other inside the VPN. Defaults to @samp{#f}. @end deftypevr -@deftypevr @code{openvpn-server-configuration} parameter keepalive keepalive +@deftypevr {@code{openvpn-server-configuration} parameter} keepalive keepalive Causes ping-like messages to be sent back and forth over the link so that each side knows when the other side has gone down. @code{keepalive} requires a pair. The first element is the period of the ping sending, @@ -13394,14 +13394,14 @@ down. @end deftypevr -@deftypevr @code{openvpn-server-configuration} parameter number max-clients +@deftypevr {@code{openvpn-server-configuration} parameter} number max-clients The maximum number of clients. Defaults to @samp{100}. @end deftypevr -@deftypevr @code{openvpn-server-configuration} parameter string status +@deftypevr {@code{openvpn-server-configuration} parameter} string status The status file. This file shows a small report on current connection. It is trunkated and rewritten every minute. @@ -13409,28 +13409,28 @@ Defaults to @samp{"/var/run/openvpn/status"}. @end deftypevr -@deftypevr @code{openvpn-server-configuration} parameter openvpn-ccd-list client-config-dir +@deftypevr {@code{openvpn-server-configuration} parameter} openvpn-ccd-list client-config-dir The list of configuration for some clients. Defaults to @samp{()}. Available @code{openvpn-ccd-configuration} fields are: -@deftypevr @code{openvpn-ccd-configuration} parameter string name +@deftypevr {@code{openvpn-ccd-configuration} parameter} string name Client name. Defaults to @samp{"client"}. @end deftypevr -@deftypevr @code{openvpn-ccd-configuration} parameter ip-mask iroute +@deftypevr {@code{openvpn-ccd-configuration} parameter} ip-mask iroute Client own network Defaults to @samp{#f}. @end deftypevr -@deftypevr @code{openvpn-ccd-configuration} parameter ip-mask ifconfig-push +@deftypevr {@code{openvpn-ccd-configuration} parameter} ip-mask ifconfig-push Client VPN IP. Defaults to @samp{#f}. -- cgit v1.2.3 From 9260b9d1005559f526569bcf694e9c9b40d85800 Mon Sep 17 00:00:00 2001 From: Thomas Danckaert Date: Tue, 14 Mar 2017 18:12:34 +0100 Subject: services: Add inetd-service-type. * gnu/services/networking.scm (, ): New record types. (inetd-config-file, inetd-shepherd-service): New procedures. (inetd-service-type): New variable. * doc/guix.texi (Networking Services): Document it. * gnu/tests/networking.scm: New file. * gnu/local.mk: Add it. --- doc/guix.texi | 96 +++++++++++++++++++++++++++- gnu/local.mk | 1 + gnu/services/networking.scm | 89 ++++++++++++++++++++++++++ gnu/tests/networking.scm | 149 ++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 334 insertions(+), 1 deletion(-) create mode 100644 gnu/tests/networking.scm diff --git a/doc/guix.texi b/doc/guix.texi index 6aa279edc3..57595b95e7 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -33,7 +33,8 @@ Copyright @copyright{} 2016 Alex ter Weele@* Copyright @copyright{} 2017 Clément Lassieur@* Copyright @copyright{} 2017 Mathieu Othacehe@* Copyright @copyright{} 2017 Federico Beffa@* -Copyright @copyright{} 2017 Carlo Zancanaro +Copyright @copyright{} 2017 Carlo Zancanaro@* +Copyright @copyright{} 2017 Thomas Danckaert Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or @@ -9400,6 +9401,99 @@ make an initial adjustment of more than 1,000 seconds. List of host names used as the default NTP servers. @end defvr +@cindex inetd +@deffn {Scheme variable} inetd-service-type +This service runs the @command{inetd} (@pxref{inetd invocation,,, +inetutils, GNU Inetutils}) daemon. @command{inetd} listens for +connections on internet sockets, and lazily starts the specified server +program when a connection is made on one of these sockets. + +The value of this service is an @code{inetd-configuration} object. The +following example configures the @command{inetd} daemon to provide the +built-in @command{echo} service, as well as an smtp service which +forwards smtp traffic over ssh to a server @code{smtp-server} behind a +gateway @code{hostname}: + +@example +(service + inetd-service-type + (inetd-configuration + (entries (list + (inetd-entry + (name "echo") + (socket-type 'stream) + (protocol "tcp") + (wait? #f) + (user "root")) + (inetd-entry + (node "127.0.0.1") + (name "smtp") + (socket-type 'stream) + (protocol "tcp") + (wait? #f) + (user "root") + (program (file-append openssh "/bin/ssh")) + (arguments + '("ssh" "-qT" "-i" "/path/to/ssh_key" + "-W" "smtp-server:25" "user@@hostname"))))) +@end example + +See below for more details about @code{inetd-configuration}. +@end deffn + +@deftp {Data Type} inetd-configuration +Data type representing the configuration of @command{inetd}. + +@table @asis +@item @code{program} (default: @code{(file-append inetutils "/libexec/inetd")}) +The @command{inetd} executable to use. + +@item @code{entries} (default: @code{'()}) +A list of @command{inetd} service entries. Each entry should be created +by the @code{inetd-entry} constructor. +@end table +@end deftp + +@deftp {Data Type} inetd-entry +Data type representing an entry in the @command{inetd} configuration. +Each entry corresponds to a socket where @command{inetd} will listen for +requests. + +@table @asis +@item @code{node} (default: @code{#f}) +Optional string, a comma-separated list of local addresses +@command{inetd} should use when listening for this service. +@xref{Configuration file,,, inetutils, GNU Inetutils} for a complete +description of all options. +@item @code{name} +A string, the name must correspond to an entry in @code{/etc/services}. +@item @code{socket-type} +One of @code{'stream}, @code{'dgram}, @code{'raw}, @code{'rdm} or +@code{'seqpacket}. +@item @code{protocol} +A string, must correspond to an entry in @code{/etc/protocols}. +@item @code{wait?} (default: @code{#t}) +Whether @command{inetd} should wait for the server to exit before +listening to new service requests. +@item @code{user} +A string containing the user (and, optionally, group) name of the user +as whom the server should run. The group name can be specified in a +suffix, separated by a colon or period, i.e. @code{"user"}, +@code{"user:group"} or @code{"user.group"}. +@item @code{program} (default: @code{"internal"}) +The server program which will serve the requests, or @code{"internal"} +if @command{inetd} should use a built-in service. +@item @code{arguments} (default: @code{'()}) +A list strings or file-like objects, which are the server program's +arguments, starting with the zeroth argument, i.e. the name of the +program itself. For @command{inetd}'s internal services, this entry +must be @code{'()} or @code{'("internal")}. +@end table + +@xref{Configuration file,,, inetutils, GNU Inetutils} for a more +detailed discussion of each configuration field. +@end deftp + @cindex Tor @deffn {Scheme Procedure} tor-service [@var{config-file}] [#:tor @var{tor}] Return a service to run the @uref{https://torproject.org, Tor} anonymous diff --git a/gnu/local.mk b/gnu/local.mk index f589cd9468..0bb2276a2a 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -464,6 +464,7 @@ GNU_SYSTEM_MODULES = \ %D%/tests/install.scm \ %D%/tests/mail.scm \ %D%/tests/messaging.scm \ + %D%/tests/networking.scm \ %D%/tests/ssh.scm \ %D%/tests/web.scm diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm index 9b8e5b36b1..85fc0b843a 100644 --- a/gnu/services/networking.scm +++ b/gnu/services/networking.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2016 Efraim Flashner ;;; Copyright © 2016 John Darrington ;;; Copyright © 2017 Clément Lassieur +;;; Copyright © 2017 Thomas Danckaert ;;; ;;; This file is part of GNU Guix. ;;; @@ -61,6 +62,10 @@ ntp-service ntp-service-type + inetd-configuration + inetd-entry + inetd-service-type + tor-configuration tor-configuration? tor-hidden-service @@ -430,6 +435,90 @@ make an initial adjustment of more than 1,000 seconds." (allow-large-adjustment? allow-large-adjustment?)))) + +;;; +;;; Inetd. +;;; + +(define-record-type* inetd-configuration + make-inetd-configuration + inetd-configuration? + (program inetd-configuration-program ;file-like + (default (file-append inetutils "/libexec/inetd"))) + (entries inetd-configuration-entries ;list of + (default '()))) + +(define-record-type* inetd-entry make-inetd-entry + inetd-entry? + (node inetd-entry-node ;string or #f + (default #f)) + (name inetd-entry-name) ;string, from /etc/services + + (socket-type inetd-entry-socket-type) ;stream | dgram | raw | + ;rdm | seqpacket + (protocol inetd-entry-protocol) ;string, from /etc/protocols + + (wait? inetd-entry-wait? ;Boolean + (default #t)) + (user inetd-entry-user) ;string + + (program inetd-entry-program ;string or file-like object + (default "internal")) + (arguments inetd-entry-arguments ;list of strings or file-like objects + (default '()))) + +(define (inetd-config-file entries) + (apply mixed-text-file "inetd.conf" + (map + (lambda (entry) + (let* ((node (inetd-entry-node entry)) + (name (inetd-entry-name entry)) + (socket + (if node (string-append node ":" name) name)) + (type + (match (inetd-entry-socket-type entry) + ((or 'stream 'dgram 'raw 'rdm 'seqpacket) + (symbol->string (inetd-entry-socket-type entry))))) + (protocol (inetd-entry-protocol entry)) + (wait (if (inetd-entry-wait? entry) "wait" "nowait")) + (user (inetd-entry-user entry)) + (program (inetd-entry-program entry)) + (args (inetd-entry-arguments entry))) + #~(string-append + (string-join + (list #$@(list socket type protocol wait user program) #$@args) + " ") "\n"))) + entries))) + +(define inetd-shepherd-service + (match-lambda + (($ program ()) '()) ; empty list of entries -> do nothing + (($ program entries) + (list + (shepherd-service + (documentation "Run inetd.") + (provision '(inetd)) + (requirement '(user-processes networking syslogd)) + (start #~(make-forkexec-constructor + (list #$program #$(inetd-config-file entries)) + #:pid-file "/var/run/inetd.pid")) + (stop #~(make-kill-destructor))))))) + +(define-public inetd-service-type + (service-type + (name 'inetd) + (extensions + (list (service-extension shepherd-root-service-type + inetd-shepherd-service))) + + ;; The service can be extended with additional lists of entries. + (compose concatenate) + (extend (lambda (config entries) + (inetd-configuration + (inherit config) + (entries (append (inetd-configuration-entries config) + entries))))))) + ;;; ;;; Tor. diff --git a/gnu/tests/networking.scm b/gnu/tests/networking.scm new file mode 100644 index 0000000000..53c80a4ac1 --- /dev/null +++ b/gnu/tests/networking.scm @@ -0,0 +1,149 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2017 Thomas Danckaert +;;; +;;; 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 tests networking) + #:use-module (gnu tests) + #:use-module (gnu system) + #:use-module (gnu system grub) + #:use-module (gnu system file-systems) + #:use-module (gnu system shadow) + #:use-module (gnu system vm) + #:use-module (gnu services) + #:use-module (gnu services base) + #:use-module (gnu services networking) + #:use-module (guix gexp) + #:use-module (guix store) + #:use-module (guix monads) + #:use-module (gnu packages bash) + #:export (%test-inetd)) + +(define %inetd-os + ;; Operating system with 2 inetd services. + (operating-system + (host-name "komputilo") + (timezone "Europe/Brussels") + (locale "en_US.utf8") + + (bootloader (grub-configuration (device "/dev/sdX"))) + (file-systems %base-file-systems) + (firmware '()) + (users %base-user-accounts) + (services (cons* (dhcp-client-service) + (service inetd-service-type + (inetd-configuration + (entries (list + (inetd-entry + (name "echo") + (socket-type 'stream) + (protocol "tcp") + (wait? #f) + (user "root")) + (inetd-entry + (name "dict") + (socket-type 'stream) + (protocol "tcp") + (wait? #f) + (user "root") + (program (file-append bash + "/bin/bash")) + (arguments + (list "bash" (plain-file "my-dict.sh" "\ +while read line +do + if [[ $line =~ ^DEFINE\\ (.*)$ ]] + then + case ${BASH_REMATCH[1]} in + Guix) + echo GNU Guix is a package management tool for the GNU system. + ;; + G-expression) + echo Like an S-expression but with a G. + ;; + *) + echo NO DEFINITION FOUND + ;; + esac + else + echo ERROR + fi +done" )))))))) + %base-services)))) + +(define* (run-inetd-test) + "Run tests in %INETD-OS, where the inetd service provides an echo service on +port 7, and a dict service on port 2628." + (mlet* %store-monad ((os -> (marionette-operating-system %inetd-os)) + (command (system-qemu-image/shared-store-script + os #:graphic? #f))) + (define test + (with-imported-modules '((gnu build marionette)) + #~(begin + (use-modules (ice-9 rdelim) + (srfi srfi-64) + (gnu build marionette)) + (define marionette + ;; Forward guest ports 7 and 2628 to host ports 8007 and 8628. + (make-marionette (list #$command "-net" + (string-append + "user" + ",hostfwd=tcp::8007-:7" + ",hostfwd=tcp::8628-:2628")))) + + (mkdir #$output) + (chdir #$output) + + (test-begin "inetd") + + ;; Make sure the PID file is created. + (test-assert "PID file" + (marionette-eval + '(file-exists? "/var/run/inetd.pid") + marionette)) + + ;; Test the echo service. + (test-equal "echo response" + "Hello, Guix!" + (let ((echo (socket PF_INET SOCK_STREAM 0)) + (addr (make-socket-address AF_INET INADDR_LOOPBACK 8007))) + (connect echo addr) + (display "Hello, Guix!\n" echo) + (let ((response (read-line echo))) + (close echo) + response))) + + ;; Test the dict service + (test-equal "dict response" + "GNU Guix is a package management tool for the GNU system." + (let ((dict (socket PF_INET SOCK_STREAM 0)) + (addr (make-socket-address AF_INET INADDR_LOOPBACK 8628))) + (connect dict addr) + (display "DEFINE Guix\n" dict) + (let ((response (read-line dict))) + (close dict) + response))) + + (test-end) + (exit (= (test-runner-fail-count (test-runner-current)) 0))))) + + (gexp->derivation "inetd-test" test))) + +(define %test-inetd + (system-test + (name "inetd") + (description "Connect to a host with an INETD server.") + (value (run-inetd-test)))) -- cgit v1.2.3 From 070e1fe99afce1792cefab88852d800c1567ef19 Mon Sep 17 00:00:00 2001 From: Vasile Dumitrascu Date: Fri, 24 Mar 2017 15:25:00 +0000 Subject: gnu: Add emacs-symon. * gnu/packages/emacs.scm (emacs-symon): New variable. Signed-off-by: Kei Kebreau --- gnu/packages/emacs.scm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 33a919458c..6e95cac963 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -1464,6 +1464,25 @@ allows easily move between them.") strings.") (license license:gpl3+))) +(define-public emacs-symon + (package + (name "emacs-symon") + (version "20170224.33") + (source + (origin + (method url-fetch) + (uri (string-append "http://melpa.org/packages/symon-" + version ".el")) + (sha256 + (base32 + "109jd7yjhdrrf5jqpqyv543nb28g7065z58bji9pvxanzi4zl2iz")))) + (build-system emacs-build-system) + (home-page "http://hins11.yu-yake.com/") + (synopsis "Tiny graphical system monitor") + (description + "Tiny graphical system monitor for the Emacs minibuffer when idle.") + (license license:gpl2+))) + (define-public emacs-sx (package (name "emacs-sx") -- cgit v1.2.3 From 6f8016f4d8a84739ffdc7338bb1bbac5179e3ae3 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Sun, 12 Mar 2017 10:04:28 +0100 Subject: gnu: Add ghc-json. * gnu/packages/haskell.scm (ghc-json): 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 d48983a81a..d106b8783b 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -8234,4 +8234,29 @@ handler built in.") handled safely, this is what you're left with.") (license license:isc))) +(define-public ghc-json + (package + (name "ghc-json") + (version "0.9.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/json/" + "json-" version ".tar.gz")) + (sha256 + (base32 + "18l5027vc68hnnxrxlnyl59vkkg95a92m1zzms0dqiby2r6pxdcn")))) + (build-system haskell-build-system) + (inputs + `(("ghc-syb" ,ghc-syb) + ("ghc-mtl" ,ghc-mtl) + ("ghc-text" ,ghc-text) + ("ghc-parsec" ,ghc-parsec))) + (home-page "http://hackage.haskell.org/package/json") + (synopsis "Serializes Haskell data to and from JSON") + (description "This package provides a parser and pretty printer for +converting between Haskell values and JSON. +JSON (JavaScript Object Notation) is a lightweight data-interchange format.") + (license license:bsd-3))) + ;;; haskell.scm ends here -- cgit v1.2.3 From 7e58cbbb39ea5efc890c84b9e42144117af0748d Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Sat, 25 Mar 2017 15:02:11 +0100 Subject: gnu: Add shellcheck. * gnu/packages/haskell.scm (shellcheck): 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 d106b8783b..7d49cada3a 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -8259,4 +8259,40 @@ converting between Haskell values and JSON. JSON (JavaScript Object Notation) is a lightweight data-interchange format.") (license license:bsd-3))) +(define-public shellcheck + (package + (name "shellcheck") + (version "0.4.5") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/koalaman/shellcheck/archive/" + "v" version ".tar.gz")) + (sha256 + (base32 + "14r84fcn28rin339avlvca5g0kz832f01x8dpmwb5ql8mbc4rlxr")) + (file-name (string-append name "-" version ".tar.gz")))) + (build-system haskell-build-system) + (inputs + `(("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-json" ,ghc-json) + ("ghc-mtl" ,ghc-mtl) + ("ghc-parsec" ,ghc-parsec) + ("ghc-regex-tdfa" ,ghc-regex-tdfa))) + (home-page "https://github.com/koalaman/shellcheck") + (synopsis "Static analysis for shell scripts") + (description "@code{shellcheck} provides static analysis for +@command{bash} and @command{sh} shell scripts. +It gives warnings and suggestions in order to: + +@enumerate +@item Point out and clarify typical beginner's syntax issues that cause +a shell to give cryptic error messages. +@item Point out and clarify typical intermediate level semantic problems +that cause a shell to behave strangely and counter-intuitively. +@item Point out subtle caveats, corner cases and pitfalls that may cause an +advanced user's otherwise working script to fail under future circumstances. +@end enumerate") + (license license:gpl3+))) + ;;; haskell.scm ends here -- cgit v1.2.3 From 90ff097995a7b900a050af29eefd98b79c6650d2 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 24 Mar 2017 15:20:38 +0100 Subject: gnu: youtube-dl: Update to 2017.03.24. * gnu/packages/video.scm (youtube-dl): Update to 2017.03.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 201d755a9a..85c13159df 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -975,7 +975,7 @@ access to mpv's powerful playback capabilities.") (define-public youtube-dl (package (name "youtube-dl") - (version "2017.03.22") + (version "2017.03.24") (source (origin (method url-fetch) (uri (string-append "https://yt-dl.org/downloads/" @@ -983,7 +983,7 @@ access to mpv's powerful playback capabilities.") version ".tar.gz")) (sha256 (base32 - "1zz97g23diggcnqg2hjq9grijskly8ag727f1i509hl7z0lxkh69")))) + "00w81j3jpbd4kbzd35y29p7v0xgaql9kz2ihy37wympiz67yawmp")))) (build-system python-build-system) (arguments ;; The problem here is that the directory for the man page and completion -- cgit v1.2.3 From 5e53557ed0372aa0203f99fa6e0992be5d6b01e2 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 25 Mar 2017 20:12:44 +0100 Subject: gnu: maim: Update to 4.4.62. * gnu/packages/xdisorg.scm (maim): Update to 4.4.62. --- 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 172f3c368d..ad8d9a416e 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -472,7 +472,7 @@ selection's dimensions to stdout.") (define-public maim (package (name "maim") - (version "4.4.61") + (version "4.4.62") (source (origin (method url-fetch) (uri (string-append @@ -481,7 +481,7 @@ selection's dimensions to stdout.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "14jksv05xyydbpb9v8k3jgq7sl72bh356iapymg02vwg519i1d5k")))) + "08lnbsl9ialqik1ris6piz1g0fgq4r3767ycr4nziphw3kz89vr1")))) (build-system cmake-build-system) (arguments '(#:tests? #f)) ; no "check" target -- cgit v1.2.3 From 17fc8da3ddfe8291f52b9f07eda11219766b9760 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 25 Mar 2017 20:17:04 +0100 Subject: gnu: git: Update to 2.12.2. * gnu/packages/version-control.scm (git): Update to 2.12.2. --- 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 7ade4a4840..0e04f1a1c3 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -112,14 +112,14 @@ as well as the classic centralized workflow.") (define-public git (package (name "git") - (version "2.12.1") + (version "2.12.2") (source (origin (method url-fetch) (uri (string-append "mirror://kernel.org/software/scm/git/git-" version ".tar.xz")) (sha256 (base32 - "18mdlg4ws78s4asfrn6licm9v6qw4wp9m0kdjq0y2r5pci1nf4fv")))) + "0jlccxx7l4c76h830y8lhrxr4kqksrxqlnmj3xb8sqbfa0irw6nj")))) (build-system gnu-build-system) (native-inputs `(("native-perl" ,perl) @@ -132,7 +132,7 @@ as well as the classic centralized workflow.") version ".tar.xz")) (sha256 (base32 - "1km0sbrqgni0q88abh4zb1m7xa9ld3d4qi36095b11a3vr6w7xgv")))))) + "0n4mgw5mbrr1hm0y7xgwixf9p6gy61m6qm67ldagpxxhwq2dmlby")))))) (inputs `(("curl" ,curl) ("expat" ,expat) -- cgit v1.2.3 From c5be3467f25d129f13823c5bf32c4425d3ef3607 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sat, 25 Mar 2017 23:49:11 +0300 Subject: gnu: python2-dogtail: Update to 0.9.9. * gnu/packages/python.scm (python2-dogtail): Update to 0.9.9. [source]: Download using pypi-uri scheme. --- gnu/packages/python.scm | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 7aae8fc26f..c3e4a3795f 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -14,7 +14,7 @@ ;;; Copyright © 2015, 2016, 2017 Leo Famulari ;;; Copyright © 2015 Ben Woodcroft ;;; Copyright © 2015, 2016 Erik Edrosa -;;; Copyright © 2015, 2016 Efraim Flashner +;;; Copyright © 2015, 2016, 2017 Efraim Flashner ;;; Copyright © 2015 Kyle Meyer ;;; Copyright © 2015, 2016 Chris Marusich ;;; Copyright © 2016 Danny Milosavljevic @@ -1352,15 +1352,13 @@ Python 3.3+.") ;; spaces in indentation" with Python 3. (package (name "python2-dogtail") - (version "0.8.2") + (version "0.9.9") (source (origin (method url-fetch) - (uri (string-append - "https://fedorahosted.org/released/dogtail/dogtail-" - version ".tar.gz")) + (uri (pypi-uri "dogtail" version)) (sha256 (base32 - "1yc4cg7ip87z15gyd4wy2vzbywrjc52a3m8r8gqy2b50d65llcg1")))) + "0p5wfssvzr9w0bvhllzbbd8fnp4cca2qxcpcsc33dchrmh5n552x")))) (build-system python-build-system) (arguments `(#:python ,python-2 #:tests? #f)) ; invalid command "test" -- cgit v1.2.3 From 5f19fb6a2641f1af977ff45febece2d5724d6049 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 25 Mar 2017 00:22:14 +0100 Subject: system: grub: Don't attempt to load non-EFI modules on EFI. This resulted in a couple of harmless warnings just before the menu is displayed. * gnu/system/grub.scm (eye-candy)[setup-gfxterm-body]: Move 'vbe' and 'vga' loading to the non-EFI branch. --- gnu/system/grub.scm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gnu/system/grub.scm b/gnu/system/grub.scm index 1f2cd08ff0..4f9bde6a62 100644 --- a/gnu/system/grub.scm +++ b/gnu/system/grub.scm @@ -183,8 +183,6 @@ system string---e.g., \"x86_64-linux\"." (if (string-match "^(x86_64|i[3-6]86)-" system) " # Leave 'gfxmode' to 'auto'. - insmod vbe - insmod vga insmod video_bochs insmod video_cirrus insmod gfxterm @@ -195,6 +193,10 @@ system string---e.g., \"x86_64-linux\"." # which isn't convenient. insmod efi_gop insmod efi_uga + else + # These are specific to non-EFI Intel machines. + insmod vbe + insmod vga fi terminal_output gfxterm -- cgit v1.2.3 From 3089b5d3f5a31b191b68ce3aa9255b646940b642 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Sun, 26 Mar 2017 02:38:33 -0400 Subject: import: stackage: Compile only if guile-json is available. * Makefile.am (MODULES): Move "guix/import/stackage.scm" within "if HAVE_GUILE_JSON". Sort the modules within that conditional. --- Makefile.am | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Makefile.am b/Makefile.am index cd2388ac65..06c85e981d 100644 --- a/Makefile.am +++ b/Makefile.am @@ -129,7 +129,6 @@ MODULES = \ guix/import/cabal.scm \ guix/import/cran.scm \ guix/import/hackage.scm \ - guix/import/stackage.scm \ guix/import/elpa.scm \ guix/scripts.scm \ guix/scripts/download.scm \ @@ -168,15 +167,16 @@ if HAVE_GUILE_JSON MODULES += \ guix/docker.scm \ + guix/import/cpan.scm \ + guix/import/crate.scm \ + guix/import/gem.scm \ guix/import/github.scm \ guix/import/json.scm \ - guix/import/crate.scm \ - guix/scripts/import/crate.scm \ guix/import/pypi.scm \ - guix/scripts/import/pypi.scm \ - guix/import/cpan.scm \ + guix/import/stackage.scm \ + guix/scripts/import/crate.scm \ guix/scripts/import/gem.scm \ - guix/import/gem.scm + guix/scripts/import/pypi.scm endif -- cgit v1.2.3 From 3c67367612bb905af3dff359d40aca9f5f88973e Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Sun, 26 Mar 2017 03:09:06 -0400 Subject: gnu: linux-libre@4.4: Update to 4.4.56. * gnu/packages/linux.scm (linux-libre-4.4): Update to 4.4.56. --- 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 bf16ff0ebd..09e0ecabd0 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -354,8 +354,8 @@ It has been modified to remove all non-free binary blobs.") #:configuration-file kernel-config)) (define-public linux-libre-4.4 - (make-linux-libre "4.4.55" - "1m4h3wi4j573hny1yfi9qwkiicx2bx3gwy52zpr8bhxpyqz0d2dl" + (make-linux-libre "4.4.56" + "16fa4rf6vdyakvjis2ahvzdw87znsqgxd84458y86z2szwbaym7n" %intel-compatible-systems #:configuration-file kernel-config)) -- cgit v1.2.3 From bd0423262a9eb68cfd7c74f99747ccfd7c95c4a9 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Sun, 26 Mar 2017 03:10:25 -0400 Subject: gnu: linux-libre@4.9: Update to 4.9.17. * gnu/packages/linux.scm (linux-libre-4.9): Update to 4.9.17. --- 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 09e0ecabd0..36b04656a1 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -348,8 +348,8 @@ It has been modified to remove all non-free binary blobs.") #:configuration-file kernel-config)) (define-public linux-libre-4.9 - (make-linux-libre "4.9.16" - "0n7y7h7ps4l1pr9d0m75hkw41jnfyw301r343dsaznwc0lpq3ch7" + (make-linux-libre "4.9.17" + "1543b159s6v5z9l2bskw9rd6v8d98da8sppd34lz7nin6nk00cpk" %intel-compatible-systems #:configuration-file kernel-config)) -- cgit v1.2.3 From 81e752d92e6f324d1cfee50b2781d4af1d29ce99 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Sun, 26 Mar 2017 03:12:33 -0400 Subject: gnu: linux-libre: Update to 4.10.5. * gnu/packages/linux.scm (%linux-libre-version): Update to 4.10.5. (%linux-libre-hash): Update hash. --- 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 36b04656a1..d97cdc4b3a 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -338,8 +338,8 @@ It has been modified to remove all non-free binary blobs.") (define %intel-compatible-systems '("x86_64-linux" "i686-linux")) -(define %linux-libre-version "4.10.4") -(define %linux-libre-hash "0cmz4y8pb3sdag32bsrn7vg1i8v9rymfspg85ipkbamm53c7v54g") +(define %linux-libre-version "4.10.5") +(define %linux-libre-hash "0qxanna5a82vyh5yb3mv8vvx5i9kdzmq2p6q7xp1fy88x9gj11xb") (define-public linux-libre (make-linux-libre %linux-libre-version -- cgit v1.2.3 From 6ff5e9baeab6e1e6a8d49376f6d333e00885fec4 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 26 Mar 2017 12:12:35 +0300 Subject: gnu: denemo: Update to 2.1. * gnu/packages/music.scm (denemo): Update to 2.1. --- gnu/packages/music.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 07f30cfdd0..2f70945c60 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -3,7 +3,7 @@ ;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus ;;; Copyright © 2015 Paul van der Walt ;;; Copyright © 2016 Al McElrath -;;; Copyright © 2016 Efraim Flashner +;;; Copyright © 2016, 2017 Efraim Flashner ;;; Copyright © 2016 Leo Famulari ;;; Copyright © 2016 Kei Kebreau ;;; Copyright © 2016 John J. Foerch @@ -236,14 +236,14 @@ many input formats and provides a customisable Vi-style user interface.") (define-public denemo (package (name "denemo") - (version "2.0.14") + (version "2.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/denemo/denemo-" version ".tar.gz")) (sha256 (base32 - "1a7g38695g7jjypx25qp0dx0asrh72xwdj0mdhmb9pfyzlppq0wh")))) + "0hggf8c4xcrjcxd5m00r788r7jg7g8ff54w2idfaqpj5j2ix3299")))) (build-system gnu-build-system) (arguments `(#:phases -- cgit v1.2.3 From 21b7cf4287f5afec1ad5d969aec465f3f7261bd0 Mon Sep 17 00:00:00 2001 From: Alex Sassmannshausen Date: Thu, 23 Mar 2017 13:16:59 +0100 Subject: gnu: Add perl-file-pushd. * gnu/packages/perl.scm (perl-file-pushd): New variable --- gnu/packages/perl.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 086e1fae03..4944ceb2a2 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -3002,6 +3002,34 @@ of arbitrary depth and to delete an entire directory subtree from the file system.") (license (package-license perl)))) +(define-public perl-file-pushd + (package + (name "perl-file-pushd") + (version "1.014") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/D/DA/DAGOLDEN/File-pushd-" + version + ".tar.gz")) + (sha256 + (base32 + "02rlqvyy7gly3dsqwaa81aisyy9c791b8xvwzczcbgmcwgzkgaxm")))) + (build-system perl-build-system) + (home-page + "http://search.cpan.org/dist/File-pushd") + (synopsis + "Change directory temporarily for a limited scope") + (description "@code{File::pushd} does a temporary @code{chdir} that is +easily and automatically reverted, similar to @code{pushd} in some Unix +command shells. It works by creating an object that caches the original +working directory. When the object is destroyed, the destructor calls +@code{chdir} to revert to the original working directory. By storing the +object in a lexical variable with a limited scope, this happens automatically +at the end of the scope.") + (license asl2.0))) + (define-public perl-file-list (package (name "perl-file-list") -- cgit v1.2.3 From 033dec64ccfb48c54672c0467d711335acf2d0ca Mon Sep 17 00:00:00 2001 From: Alex Sassmannshausen Date: Thu, 23 Mar 2017 13:17:36 +0100 Subject: gnu: Add perl-test-needs. * gnu/packages/perl.scm (perl-test-needs): New variable. --- gnu/packages/perl.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 4944ceb2a2..ce2c59e4ca 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -6761,6 +6761,34 @@ functions, along with automatically turning on strict and warning and gives a bit more fine-grained control over test suites.") (license (package-license perl)))) +(define-public perl-test-needs + (package + (name "perl-test-needs") + (version "0.002005") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/H/HA/HAARG/Test-Needs-" + version + ".tar.gz")) + (sha256 + (base32 + "16gkgpmr9hvkz382iaqd3500269lk2d44fqaw3dsrvc66nc36kss")))) + (build-system perl-build-system) + (home-page + "http://search.cpan.org/dist/Test-Needs") + (synopsis + "Skip tests when modules not available") + (description "@code{Test::Needs} allows you to skip test scripts if +modules are not available. The requested modules will be loaded, and +optionally have their versions checked. If the module is missing, the test +script will be skipped. Modules that are found but fail to compile will exit +with an error rather than skip. + +If used in a subtest, the remainder of the subtest will be skipped.") + (license (package-license perl)))) + (define-public perl-test-nowarnings (package (name "perl-test-nowarnings") -- cgit v1.2.3 From ee6d716234858235483d156a77ce0662280d3018 Mon Sep 17 00:00:00 2001 From: Alex Sassmannshausen Date: Thu, 23 Mar 2017 13:41:42 +0100 Subject: gnu: perl-b-hooks-endofscope: Update to 0.21. * gnu/packages/perl.scm (perl-b-hooks-endofscope): Update to 0.21. --- gnu/packages/perl.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index ce2c59e4ca..97655a6460 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -380,7 +380,7 @@ parent.") (define-public perl-b-hooks-endofscope (package (name "perl-b-hooks-endofscope") - (version "0.13") + (version "0.21") (source (origin (method url-fetch) @@ -388,7 +388,7 @@ parent.") "B-Hooks-EndOfScope-" version ".tar.gz")) (sha256 (base32 - "1f5d0lbkwf23dfjn60g6fynmjhy5rxdyxcpdfb07srm73qpg2zpi")))) + "0b70vbpabsy9ia366k330cz1zbdyb1pwhb0l7j28pmpih045iwwh")))) (build-system perl-build-system) (propagated-inputs `(("perl-module-runtime" ,perl-module-runtime) -- cgit v1.2.3 From 4c08a8a67a7d9aff83fbbc6771e809b50d9b6433 Mon Sep 17 00:00:00 2001 From: Alex Sassmannshausen Date: Thu, 23 Mar 2017 13:44:36 +0100 Subject: gnu: perl-capture-tiny: Update to 0.46. * gnu/packages/perl.scm (perl-capture-tiny): Update to 0.46. --- gnu/packages/perl.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 97655a6460..fef17bbd0c 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -603,7 +603,7 @@ algorithm to keep the most used entries in the cache.") (define-public perl-capture-tiny (package (name "perl-capture-tiny") - (version "0.28") + (version "0.46") (source (origin (method url-fetch) @@ -612,7 +612,7 @@ algorithm to keep the most used entries in the cache.") version ".tar.gz")) (sha256 (base32 - "117gmwipql1y5xnw9jil3lhdsrf2wsm9wjdzqj66x971n3fwm573")))) + "05bhlx6d4nzamhkkh0pkckg7wlvaq6mazf7q1fbb5wpp1j1nlyjx")))) (build-system perl-build-system) (home-page "http://search.cpan.org/dist/Capture-Tiny") (synopsis "Capture STDOUT and STDERR from Perl, XS or external programs") -- cgit v1.2.3 From fb89fc0cde786ba998ceb000fafe14f451f58be2 Mon Sep 17 00:00:00 2001 From: Alex Sassmannshausen Date: Thu, 23 Mar 2017 13:45:20 +0100 Subject: gnu: perl-class-load: Update to 0.23. * gnu/packages/perl.scm (perl-class-load): Update to 0.23. --- gnu/packages/perl.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index fef17bbd0c..179e3d1f1c 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -973,7 +973,7 @@ loaded class.") (define-public perl-class-load (package (name "perl-class-load") - (version "0.22") + (version "0.23") (source (origin (method url-fetch) @@ -981,7 +981,7 @@ loaded class.") "Class-Load-" version ".tar.gz")) (sha256 (base32 - "049i285yj8hwgzj7nncjbs2bhxvpdk88wmx1d0nh0rdmh5hdnlmy")))) + "13xjfh4fadq4pkq7fcj42b26544jl7gqdg2y3imnra9fwxwsbg7j")))) (build-system perl-build-system) (native-inputs `(("perl-module-build-tiny" ,perl-module-build-tiny) -- cgit v1.2.3 From a941be6a3cd21405310eaff8d14573f2378ad58d Mon Sep 17 00:00:00 2001 From: Alex Sassmannshausen Date: Thu, 23 Mar 2017 13:46:04 +0100 Subject: gnu: perl-clone: Update to 0.38. * gnu/packages/perl.scm (perl-clone): Update to 0.38. --- gnu/packages/perl.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 179e3d1f1c..16b53adefe 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -1154,14 +1154,14 @@ arrays for their internal representation.") (define-public perl-clone (package (name "perl-clone") - (version "0.37") + (version "0.38") (source (origin (method url-fetch) (uri (string-append "mirror://cpan/authors/id/G/GA/GARU/" "Clone-" version ".tar.gz")) (sha256 (base32 - "17fdhxpzrq2nwim3zkcrz4m9gjixp0i886yz54ysrshxy3k53wnr")))) + "1s5xrv9zlckqqzyhxi0l9lwj9m6na2bz5hqxrkva2v7gnx5m7c4z")))) (build-system perl-build-system) (synopsis "Recursively copy Perl datatypes") (description -- cgit v1.2.3 From a00afca4436989ca7676ee2e2749b66ce9e07516 Mon Sep 17 00:00:00 2001 From: Alex Sassmannshausen Date: Thu, 23 Mar 2017 13:46:39 +0100 Subject: gnu: perl-common-sense: Update to 3.74. * gnu/packages/perl.scm (perl-common-sense): Update to 3.74. --- gnu/packages/perl.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 16b53adefe..d63614e2ac 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -1175,7 +1175,7 @@ objects.") (define-public perl-common-sense (package (name "perl-common-sense") - (version "3.73") + (version "3.74") (source (origin (method url-fetch) @@ -1183,7 +1183,7 @@ objects.") "common-sense-" version ".tar.gz")) (sha256 (base32 - "047xwgpn5611zrhk4c8vk9pzcbk1q7n3q0lfiwhhq7k4fbjca441")))) + "1wxv2s0hbjkrnssvxvsds0k213awg5pgdlrpkr6xkpnimc17s7vp")))) (build-system perl-build-system) (home-page "http://search.cpan.org/dist/common-sense") (synopsis "Sane defaults for Perl programs") -- cgit v1.2.3 From be2b42a7f620a82ac214196a980c9dc78f849046 Mon Sep 17 00:00:00 2001 From: Alex Sassmannshausen Date: Thu, 23 Mar 2017 13:48:29 +0100 Subject: gnu: perl-cpan-meta-check: Update to 0.011. * gnu/packages/perl.scm (perl-cpan-meta-check): Update to 0.011. --- gnu/packages/perl.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index d63614e2ac..7cdb610c0d 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -1307,7 +1307,7 @@ the caller.") (define-public perl-cpan-meta-check (package (name "perl-cpan-meta-check") - (version "0.009") + (version "0.011") (source (origin (method url-fetch) @@ -1315,7 +1315,7 @@ the caller.") "CPAN-Meta-Check-" version ".tar.gz")) (sha256 (base32 - "0qbk5dwvhd78qgq5x6nim2n0l78pylvlklpbrm56w9yss6pl6bgb")))) + "0nxi0xhhd3dwhgri3l8z8gpz2ibvhm5k7jjls8xmnlh0v84p04kh")))) (build-system perl-build-system) (native-inputs `(("perl-test-deep" ,perl-test-deep))) (propagated-inputs `(("perl-cpan-meta" ,perl-cpan-meta))) -- cgit v1.2.3 From 2d31b7f19be7a2f62c373b229dd965f54f73215f Mon Sep 17 00:00:00 2001 From: Alex Sassmannshausen Date: Thu, 23 Mar 2017 13:49:41 +0100 Subject: gnu: perl-devel-overloadinfo: Update to 0.004. * gnu/packages/perl.scm (perl-devel-overloadinfo): Update to 0.004. --- gnu/packages/perl.scm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 7cdb610c0d..0a83597292 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -2285,7 +2285,7 @@ variable in a subroutines scope to one of your choosing.") (define-public perl-devel-overloadinfo (package (name "perl-devel-overloadinfo") - (version "0.002") + (version "0.004") (source (origin (method url-fetch) @@ -2293,8 +2293,10 @@ variable in a subroutines scope to one of your choosing.") "Devel-OverloadInfo-" version ".tar.gz")) (sha256 (base32 - "14gzjlsqhypqp0szqj6152qfn69snzydgk1yk6bji5zimzv86qyy")))) + "0zckjhzdqa6smpp98y15mqafsyzwjxwrvk10snzhn2sb0r889s43")))) (build-system perl-build-system) + (native-inputs + `(("perl-test-fatal" ,perl-test-fatal))) (propagated-inputs `(("perl-package-stash" ,perl-package-stash) ("perl-sub-identify" ,perl-sub-identify) -- cgit v1.2.3 From 0c61441a7ff1c3d52ae1112de3624863c783c469 Mon Sep 17 00:00:00 2001 From: Alex Sassmannshausen Date: Thu, 23 Mar 2017 13:51:08 +0100 Subject: gnu: perl-devel-partialdump: Update to 0.18. * gnu/packages/perl.scm (perl-devel-partialdump): Update to 0.18. --- gnu/packages/perl.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 0a83597292..d3f14a8a01 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -2311,7 +2311,7 @@ hierarchy the overloads are declared and where the code implementing it is.") (define-public perl-devel-partialdump (package (name "perl-devel-partialdump") - (version "0.17") + (version "0.18") (source (origin (method url-fetch) @@ -2319,7 +2319,7 @@ hierarchy the overloads are declared and where the code implementing it is.") "Devel-PartialDump-" version ".tar.gz")) (sha256 (base32 - "0nr3qa68x4yp219kd17j1ks9c95qc9agfvz7ddnpn8p78f3kgwfn")))) + "0i1khiyi4h4h8vfwn7xip5c53z2hb2rk6407f3csvrdsiibvy53q")))) (build-system perl-build-system) (native-inputs `(("perl-module-build-tiny" ,perl-module-build-tiny) -- cgit v1.2.3 From c4fcf35420424c54a5ae49477089b5981bc068ad Mon Sep 17 00:00:00 2001 From: Alex Sassmannshausen Date: Thu, 23 Mar 2017 13:52:28 +0100 Subject: gnu: perl-module-runtime-conflicts: Update to 0.003. * gnu/packages/perl.scm (perl-module-runtime-conflicts): Update to 0.003. --- gnu/packages/perl.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index d3f14a8a01..f702dff73a 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -4346,7 +4346,7 @@ handling of Perl modules, which are normally handled at compile time.") (define-public perl-module-runtime-conflicts (package (name "perl-module-runtime-conflicts") - (version "0.001") + (version "0.003") (source (origin (method url-fetch) @@ -4354,7 +4354,7 @@ handling of Perl modules, which are normally handled at compile time.") "Module-Runtime-Conflicts-" version ".tar.gz")) (sha256 (base32 - "0pz23ch78lbpn4kdbm04icgsmbr7jvmxwq1p5m4x2pap8qwd0wqg")))) + "0x9qfg4pq70v1rl9dfk775fmca7ia308m24vfy8zww4c0dsxqz3h")))) (build-system perl-build-system) (native-inputs `(("perl-module-build" ,perl-module-build))) -- cgit v1.2.3 From 0d01f517d044d8a28f4d5a6899e71832dd661d0a Mon Sep 17 00:00:00 2001 From: Alex Sassmannshausen Date: Thu, 23 Mar 2017 13:53:34 +0100 Subject: gnu: perl-moose: Update to 2.2004. * gnu/packages/perl.scm (perl-moose): Update to 2.2004. --- gnu/packages/perl.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index f702dff73a..fd8a66d4c6 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -4446,14 +4446,14 @@ Moose and is optimised for rapid startup.") (define-public perl-moose (package (name "perl-moose") - (version "2.1403") + (version "2.2004") (source (origin (method url-fetch) (uri (string-append "mirror://cpan/authors/id/E/ET/ETHER/" "Moose-" version ".tar.gz")) (sha256 (base32 - "16iaazikbnq2jjjac84jrdpfzm4qwqg1nbfgs11jlwn84q4jp1n3")))) + "1c6jx2lnrh2mi9wlj2c0sirj6345xmbpr34ax8d85mcginzq3j74")))) (build-system perl-build-system) (native-inputs `(("perl-cpan-meta-check" ,perl-cpan-meta-check) -- cgit v1.2.3 From 3857a3fc2a362d5980ecd30b9f6e6326d041e67e Mon Sep 17 00:00:00 2001 From: Alex Sassmannshausen Date: Thu, 23 Mar 2017 13:54:02 +0100 Subject: gnu: perl-package-deprecationmanager: Update to 0.17. * gnu/packages/perl.scm (perl-package-deprecationmanager): Update to 0.17. --- gnu/packages/perl.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index fd8a66d4c6..418a25e7c5 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -5257,7 +5257,7 @@ instance, not by name.") (define-public perl-package-deprecationmanager (package (name "perl-package-deprecationmanager") - (version "0.13") + (version "0.17") (source (origin (method url-fetch) @@ -5265,7 +5265,7 @@ instance, not by name.") "Package-DeprecationManager-" version ".tar.gz")) (sha256 (base32 - "0fkvq3xxwc3l5hg64dr9sj3l12dl59i44cg407qx9sd6r51j3qfi")))) + "0jv8svfh1c1q4vxlkf8vjfbdq3n2sj3nx5llv1qrhp1b93d3lx0x")))) (build-system perl-build-system) (native-inputs `(("perl-test-fatal" ,perl-test-fatal) -- cgit v1.2.3 From 84c73b7f4583178a9ac4184639d71c4846f99664 Mon Sep 17 00:00:00 2001 From: Alex Sassmannshausen Date: Thu, 23 Mar 2017 13:55:09 +0100 Subject: gnu: perl-params-validate: Update to 1.26. * gnu/packages/perl.scm (perl-params-validate): Update to 1.26. --- gnu/packages/perl.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 418a25e7c5..f77d7a297a 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -5405,7 +5405,7 @@ checking parameters easier.") (define-public perl-params-validate (package (name "perl-params-validate") - (version "1.17") + (version "1.26") (source (origin (method url-fetch) @@ -5413,7 +5413,7 @@ checking parameters easier.") "Params-Validate-" version ".tar.gz")) (sha256 (base32 - "1wh23i9kkma6493c0q1kvy6wmahd6spg6xm3xbp2ar1iy1xhks5l")))) + "1vbj78qd46ip09i06dsbb62jfwpzp4bg7yi617v98nvim77w66l2")))) (build-system perl-build-system) (native-inputs `(("perl-module-build" ,perl-module-build) -- cgit v1.2.3 From be7e54325e229199bee4b1af1e6834e4167134c3 Mon Sep 17 00:00:00 2001 From: Alex Sassmannshausen Date: Thu, 23 Mar 2017 13:56:00 +0100 Subject: gnu: perl-sub-name: Update to 0.21. * gnu/packages/perl.scm (perl-sub-name): Update to 0.21. --- gnu/packages/perl.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index f77d7a297a..90f0d386c9 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -6027,7 +6027,7 @@ can see them.") (define-public perl-sub-name (package (name "perl-sub-name") - (version "0.12") + (version "0.21") (source (origin (method url-fetch) @@ -6035,7 +6035,7 @@ can see them.") "Sub-Name-" version ".tar.gz")) (sha256 (base32 - "1sdlc8pv7vyyc48gzh70hbwzn0hzwl3zbcy2dkmfw8vjzgya5i06")))) + "05viq8scqk29g964fsfvls2rhvlb8myz3jblwh5c2ivhw3gfjcmx")))) (build-system perl-build-system) (native-inputs `(("perl-devel-checkbin" ,perl-devel-checkbin))) -- cgit v1.2.3 From 0ac43aaa69f7b9d075c5247f8a1309559fdb32ac Mon Sep 17 00:00:00 2001 From: Alex Sassmannshausen Date: Thu, 23 Mar 2017 13:57:02 +0100 Subject: gnu: perl-test-cleannamespaces: Update to 0.22. * gnu/packages/perl.scm (perl-test-cleannamespaces): Update to 0.22. --- gnu/packages/perl.scm | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 90f0d386c9..cf02cad668 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -6420,7 +6420,7 @@ using @code{Test::Class}.") (define-public perl-test-cleannamespaces (package (name "perl-test-cleannamespaces") - (version "0.16") + (version "0.22") (source (origin (method url-fetch) @@ -6428,13 +6428,15 @@ using @code{Test::Class}.") "Test-CleanNamespaces-" version ".tar.gz")) (sha256 (base32 - "1ynrds515gcq954z34zm03rgcx0dskiaz7qj0k7k5gmrjj1kfycp")))) + "1jma95agqqy7iwdcl6jbg1waqz7mjqng4l046lpknhfxjhcj4al6")))) (build-system perl-build-system) (native-inputs - `(("perl-test-requires" ,perl-test-requires) + `(("perl-file-pushd" ,perl-file-pushd) + ("perl-test-requires" ,perl-test-requires) ("perl-test-deep" ,perl-test-deep) ("perl-test-warnings" ,perl-test-warnings) - ("perl-test-tester" ,perl-test-tester))) + ("perl-test-tester" ,perl-test-tester) + ("perl-test-needs" ,perl-test-needs))) (propagated-inputs `(("perl-namespace-clean" ,perl-namespace-clean) ("perl-package-stash" ,perl-package-stash) -- cgit v1.2.3 From ffdbbcc812c2ee28dff5232fd4cf1192e4190914 Mon Sep 17 00:00:00 2001 From: Alex Sassmannshausen Date: Thu, 23 Mar 2017 13:57:31 +0100 Subject: gnu: perl-test-exception: Update to 0.43. * gnu/packages/perl.scm (perl-test-exception): Update to 0.43. --- gnu/packages/perl.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index cf02cad668..c0ae3ea2cc 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -6528,7 +6528,7 @@ files, as well as to verify that there are no missing or unknown files.") (define-public perl-test-exception (package (name "perl-test-exception") - (version "0.36") + (version "0.43") (source (origin (method url-fetch) @@ -6536,7 +6536,7 @@ files, as well as to verify that there are no missing or unknown files.") "Test-Exception-" version ".tar.gz")) (sha256 (base32 - "1zpwimspbq11wjrli481qk17aabzxab15cnnryflx45nzn3za2xk")))) + "0cxm7s4bg0xpxa6l6996a6iq3brr4j7p4hssnkc6dxv4fzq16sqm")))) (build-system perl-build-system) (native-inputs `(("perl-module-build" ,perl-module-build))) -- cgit v1.2.3 From 3cb9d58ad66125b9f3400234476131b8dc937e2f Mon Sep 17 00:00:00 2001 From: Alex Sassmannshausen Date: Thu, 23 Mar 2017 13:57:58 +0100 Subject: gnu: perl-test-simple: Update to 1.302078. * gnu/packages/perl.scm (perl-test-simple): Update to 1.302078. --- gnu/packages/perl.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index c0ae3ea2cc..e007f0cac7 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -6973,14 +6973,14 @@ makes fork(2) safe to use in test cases.") (define-public perl-test-simple (package (name "perl-test-simple") - (version "1.302062") + (version "1.302078") (source (origin (method url-fetch) (uri (string-append "mirror://cpan/authors/id/E/EX/EXODIST/" "Test-Simple-" version ".tar.gz")) (sha256 (base32 - "1sjny65iwnin35lvc203pb07gyx9wrp3gmn6lfrjsbmi986hcab7")))) + "05acl24kmz3dgr2nayy162yaf0kz92h1j5vkiavyv6mdh2lz6ixb")))) (build-system perl-build-system) (synopsis "Basic utilities for writing tests") (description -- cgit v1.2.3 From cbe50be4c96378ebc7e3a644909b7404d1a2ca62 Mon Sep 17 00:00:00 2001 From: Alex Sassmannshausen Date: Thu, 23 Mar 2017 13:58:24 +0100 Subject: gnu: perl-test-warnings: Update to 0.026. * gnu/packages/perl.scm (perl-test-warnings): Update to 0.026. --- gnu/packages/perl.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index e007f0cac7..5c6525c227 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -7081,7 +7081,7 @@ warning based code.") (define-public perl-test-warnings (package (name "perl-test-warnings") - (version "0.020") + (version "0.026") (source (origin (method url-fetch) @@ -7089,7 +7089,7 @@ warning based code.") "Test-Warnings-" version ".tar.gz")) (sha256 (base32 - "1x262kybrdnbiiw53m1axp4zyh4lsfb9mm2shmpm8lwf7sp30isi")))) + "024srkwjckp15dxkni9lb1hc8bg4xwc52zz0iich8rv1nnqnhaxf")))) (build-system perl-build-system) (home-page "http://search.cpan.org/dist/Test-Warnings") (synopsis "Test for warnings and the lack of them") -- cgit v1.2.3 From 9b882dcc0ca71419faa0a8392fd066460994084b Mon Sep 17 00:00:00 2001 From: Alex Sassmannshausen Date: Thu, 23 Mar 2017 13:58:47 +0100 Subject: gnu: perl-time-duration-parse: Update to 0.13. * gnu/packages/perl.scm (perl-time-duration-parse): Update to 0.13. --- gnu/packages/perl.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 5c6525c227..5eb5e8992c 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -7538,7 +7538,7 @@ rounded or exact terms.") (define-public perl-time-duration-parse (package (name "perl-time-duration-parse") - (version "0.11") + (version "0.13") (source (origin (method url-fetch) @@ -7546,7 +7546,7 @@ rounded or exact terms.") "Time-Duration-Parse-" version ".tar.gz")) (sha256 (base32 - "1yk4cqkldwzkfy9y9ngqrj7p7sbsrsfa26mrm8f70z5n5m8q31x0")))) + "0affdzhsiy7dr6dzj2p6m9lynmjh53k31bprfsfa21pz8551hjj1")))) (build-system perl-build-system) (native-inputs `(("perl-time-duration" ,perl-time-duration))) -- cgit v1.2.3 From 7b34de5f8405c06b61f72daefc817b469e6c8556 Mon Sep 17 00:00:00 2001 From: Alex Sassmannshausen Date: Thu, 23 Mar 2017 13:59:11 +0100 Subject: gnu: perl-variable-magic: Update to 0.61. * gnu/packages/perl.scm (perl-variable-magic): Update to 0.61. --- gnu/packages/perl.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 5eb5e8992c..3752f5679e 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -7841,7 +7841,7 @@ UNIVERSAL::isa as a function.") (define-public perl-variable-magic (package (name "perl-variable-magic") - (version "0.55") + (version "0.61") (source (origin (method url-fetch) @@ -7849,7 +7849,7 @@ UNIVERSAL::isa as a function.") "Variable-Magic-" version ".tar.gz")) (sha256 (base32 - "0xzh2vy45ph80bp09j5fcjy8ydgn8yaxsa0fj831q6p1spvyniwg")))) + "1mx6z36c3wk61x6lag6kyws5g1cba68cw20vrb92wan7ahpfkbxq")))) (build-system perl-build-system) (home-page "http://search.cpan.org/dist/Variable-Magic") (synopsis "Associate user-defined magic to variables from Perl") -- cgit v1.2.3 From 687d2c4fe2bec285f4668860ac46e5c45b025e10 Mon Sep 17 00:00:00 2001 From: Alex Sassmannshausen Date: Thu, 23 Mar 2017 13:59:31 +0100 Subject: gnu: perl-yaml: Update to 1.23. * gnu/packages/perl.scm (perl-yaml): Update to 1.23. --- gnu/packages/perl.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 3752f5679e..5ffe6d48a5 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -7914,7 +7914,7 @@ neither visible nor modifiable from Perl space).") (define-public perl-yaml (package (name "perl-yaml") - (version "1.14") + (version "1.23") (source (origin (method url-fetch) @@ -7922,7 +7922,7 @@ neither visible nor modifiable from Perl space).") "YAML-" version ".tar.gz")) (sha256 (base32 - "0sswbkyisgny7ksw34n7zdaxrhsbbn7dgjb9gjybpzhcnml476kc")))) + "0kf8mllrgnrmlvjijxc6srjj1y9i8rik5jpjvm8jh4yx70h9gn1a")))) (build-system perl-build-system) (native-inputs `(("perl-test-yaml" ,perl-test-yaml))) -- cgit v1.2.3 From 2dfd0d7b9cf75d3af447ae86ca57bd2b20b1afbb Mon Sep 17 00:00:00 2001 From: Alex Sassmannshausen Date: Thu, 23 Mar 2017 13:59:58 +0100 Subject: gnu: perl-cpan-meta-requirements: Update to 2.140. * gnu/packages/perl.scm (perl-cpan-meta-requirements): Update to 2.140. --- gnu/packages/perl.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 5ffe6d48a5..c6c3a9f06c 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -8013,7 +8013,7 @@ methods for interrogating that data.") (define-public perl-cpan-meta-requirements (package (name "perl-cpan-meta-requirements") - (version "2.131") + (version "2.140") (source (origin (method url-fetch) @@ -8021,7 +8021,7 @@ methods for interrogating that data.") "CPAN-Meta-Requirements-" version ".tar.gz")) (sha256 (base32 - "12p5s7w3cwcrbpcrxzanvpr0syswhwlqzbaki6m044c45jix2fss")))) + "1a8zflgaayycmn3zvd3n64yypa4jyl1va0h51wpr5w46irg69608")))) (build-system perl-build-system) (home-page "http://search.cpan.org/dist/CPAN-Meta-Requirements") (synopsis "Set of version requirements for a CPAN dist") -- cgit v1.2.3 From f3312bc191726b6e47aec38b5799aa6e4e9a8183 Mon Sep 17 00:00:00 2001 From: Alex Sassmannshausen Date: Thu, 23 Mar 2017 14:00:27 +0100 Subject: gnu: perl-cpan-meta-yaml: Update to 0.018. * gnu/packages/perl.scm (perl-cpan-meta-yaml): Update to 0.018. --- gnu/packages/perl.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index c6c3a9f06c..235bafc32d 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -8035,7 +8035,7 @@ representation.") (define-public perl-cpan-meta-yaml (package (name "perl-cpan-meta-yaml") - (version "0.012") + (version "0.018") (source (origin (method url-fetch) @@ -8043,7 +8043,7 @@ representation.") "CPAN-Meta-YAML-" version ".tar.gz")) (sha256 (base32 - "0a0d62w8d81kkas4j1h48znk0f0vrpibl31gvz9r8hm77dbqqwkw")))) + "150jh9l7baddl2587m23qs2l0pb395qsx9bhsgdsnn6y9k4zgjik")))) (build-system perl-build-system) (arguments `(#:tests? #f)) ;Tests require Test::More >= 0.99 -- cgit v1.2.3 From 78bf9e01c056a619354e156e06b513fbe139ce01 Mon Sep 17 00:00:00 2001 From: Alex Sassmannshausen Date: Thu, 23 Mar 2017 14:00:49 +0100 Subject: gnu: perl-parse-cpan-meta: Update to 2.150010. * gnu/packages/perl.scm (perl-parse-cpan-meta): Update to 2.150010. --- gnu/packages/perl.scm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 235bafc32d..1882ececa0 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -8083,15 +8083,16 @@ system---most of the @code{Module::Build} code is pure-Perl.") (define-public perl-parse-cpan-meta (package (name "perl-parse-cpan-meta") - (version "1.4414") + (version "2.150010") (source (origin (method url-fetch) + ;; This module is now known as CPAN::Meta on CPAN. (uri (string-append "mirror://cpan/authors/id/D/DA/DAGOLDEN/" - "Parse-CPAN-Meta-" version ".tar.gz")) + "CPAN-Meta-" version ".tar.gz")) (sha256 (base32 - "06ya2rg599qanqb1fxiyrd489mvmdgzbw4ph23hwjwpv9lahhxnd")))) + "1mm3dfw3ffyzb2ikpqn9l6zyqrxijb4vyywmbx2l21ryqwp0zy74")))) (build-system perl-build-system) (propagated-inputs `(("perl-cpan-meta-yaml" ,perl-cpan-meta-yaml))) -- cgit v1.2.3 From 7398d96ee9141768de2a33df94109f7f10637d27 Mon Sep 17 00:00:00 2001 From: Alex Sassmannshausen Date: Thu, 23 Mar 2017 14:01:31 +0100 Subject: gnu: perl-scalar-list-utils: Update to 1.47. * gnu/packages/perl.scm (perl-scalar-list-utils): Update to 1.47. --- gnu/packages/perl.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 1882ececa0..82c4ef5d17 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -8105,7 +8105,7 @@ files, using JSON::PP and/or CPAN::Meta::YAML.") (define-public perl-scalar-list-utils (package (name "perl-scalar-list-utils") - (version "1.41") + (version "1.47") (source (origin (method url-fetch) @@ -8113,7 +8113,7 @@ files, using JSON::PP and/or CPAN::Meta::YAML.") "Scalar-List-Utils-" version ".tar.gz")) (sha256 (base32 - "04l1q4hps9n8b1hk9kpgpc1cryim7pl9sfdyb7fz5nq4gmz307j7")))) + "1qgg6zxqwziva5j1k5gjks4xmhmgklm551ni3zb74sd9f9rk90y4")))) (build-system perl-build-system) (home-page "http://search.cpan.org/dist/Scalar-List-Utils") (synopsis "Common Scalar and List utility subroutines") -- cgit v1.2.3 From addce19e2d38a197f5ea10eefb5f3cd25c3a52e7 Mon Sep 17 00:00:00 2001 From: Huang Ying Date: Sun, 12 Mar 2017 19:53:58 +0800 Subject: union: Add create-all-directories? parameter to 'union-build'. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * guix/build/union.scm (union-build): Add create-all-directories? keyword parameter. * tests/union.scm ("union-build #:create-all-directories? #t"): New test. Co-authored-by: Ludovic Courtès --- guix/build/union.scm | 17 ++++++++++++----- tests/union.scm | 22 +++++++++++++++++++++- 2 files changed, 33 insertions(+), 6 deletions(-) diff --git a/guix/build/union.scm b/guix/build/union.scm index 6640b56523..a2ea72e1f5 100644 --- a/guix/build/union.scm +++ b/guix/build/union.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013, 2014, 2016 Ludovic Courtès ;;; Copyright © 2014 Mark H Weaver +;;; Copyright © 2017 Huang Ying ;;; ;;; This file is part of GNU Guix. ;;; @@ -73,9 +74,12 @@ identical, #f otherwise." (loop))))))))))))) (define* (union-build output inputs - #:key (log-port (current-error-port))) - "Build in the OUTPUT directory a symlink tree that is the union of all -the INPUTS." + #:key (log-port (current-error-port)) + (create-all-directories? #f)) + "Build in the OUTPUT directory a symlink tree that is the union of all the +INPUTS. As a special case, if CREATE-ALL-DIRECTORIES?, creates the +subdirectories in the output directory to make sure the caller can modify them +later." (define (symlink* input output) (format log-port "`~a' ~~> `~a'~%" input output) @@ -104,8 +108,11 @@ the INPUTS." (define (union output inputs) (match inputs ((input) - ;; There's only one input, so just make a link. - (symlink* input output)) + ;; There's only one input, so just make a link unless + ;; create-all-directories?. + (if (and create-all-directories? (file-is-directory? input)) + (union-of-directories output inputs) + (symlink* input output))) (_ (call-with-values (lambda () (partition file-is-directory? inputs)) (match-lambda* diff --git a/tests/union.scm b/tests/union.scm index cccf397181..b63edc757b 100644 --- a/tests/union.scm +++ b/tests/union.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès +;;; Copyright © 2012, 2013, 2014, 2015, 2017 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -124,4 +124,24 @@ ;; new 'bin' sub-directory in the profile. (eq? 'directory (stat:type (lstat "bin")))))))) +(test-assert "union-build #:create-all-directories? #t" + (let* ((build `(begin + (use-modules (guix build union)) + (union-build (assoc-ref %outputs "out") + (map cdr %build-inputs) + #:create-all-directories? #t))) + (input (package-derivation %store %bootstrap-guile)) + (drv (build-expression->derivation %store "union-test-all-dirs" + build + #:modules '((guix build union)) + #:inputs `(("g" ,input))))) + (and (build-derivations %store (list drv)) + (with-directory-excursion (derivation->output-path drv) + ;; Even though there's only one input to the union, + ;; #:create-all-directories? #t must have created bin/ rather than + ;; making it a symlink to Guile's bin/. + (and (file-exists? "bin/guile") + (file-is-directory? "bin") + (eq? 'symlink (stat:type (lstat "bin/guile")))))))) + (test-end) -- cgit v1.2.3 From 0a5ce0d1df3befa2c4e018e84da3bd66c9eac48d Mon Sep 17 00:00:00 2001 From: Huang Ying Date: Sun, 12 Mar 2017 19:53:59 +0800 Subject: profiles: Create fonts.dir/scale for all fonts directories. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * guix/profiles.scm (fonts-dir-file): Create fonts.dir/scale files for all fonts directories. Signed-off-by: Ludovic Courtès --- guix/profiles.scm | 61 ++++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 45 insertions(+), 16 deletions(-) diff --git a/guix/profiles.scm b/guix/profiles.scm index a62a076f64..795c9447fe 100644 --- a/guix/profiles.scm +++ b/guix/profiles.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2015 Sou Bunnbu ;;; Copyright © 2016 Ricardo Wurmus ;;; Copyright © 2016 Chris Marusich +;;; Copyright © 2017 Huang Ying ;;; ;;; This file is part of GNU Guix. ;;; @@ -877,9 +878,12 @@ entries. It's used to query the MIME type of a given file." #:substitutable? #f) (return #f)))) +;; Several font packages may install font files into same directory, so +;; fonts.dir and fonts.scale file should be generated here, instead of in +;; packages. (define (fonts-dir-file manifest) "Return a derivation that builds the @file{fonts.dir} and @file{fonts.scale} -files for the truetype fonts of the @var{manifest} entries." +files for the fonts of the @var{manifest} entries." (define mkfontscale (module-ref (resolve-interface '(gnu packages xorg)) 'mkfontscale)) @@ -891,29 +895,54 @@ files for the truetype fonts of the @var{manifest} entries." (use-modules (srfi srfi-26) (guix build utils) (guix build union)) - (let ((ttf-dirs (filter file-exists? - (map (cut string-append <> - "/share/fonts/truetype") - '#$(manifest-inputs manifest))))) + (let ((fonts-dirs (filter file-exists? + (map (cut string-append <> + "/share/fonts") + '#$(manifest-inputs manifest))))) (mkdir #$output) - (if (null? ttf-dirs) + (if (null? fonts-dirs) (exit #t) - (let* ((fonts-dir (string-append #$output "/share/fonts")) - (ttf-dir (string-append fonts-dir "/truetype")) + (let* ((share-dir (string-append #$output "/share")) + (fonts-dir (string-append share-dir "/fonts")) (mkfontscale (string-append #+mkfontscale "/bin/mkfontscale")) (mkfontdir (string-append #+mkfontdir - "/bin/mkfontdir"))) - (mkdir-p fonts-dir) - (union-build ttf-dir ttf-dirs - #:log-port (%make-void-port "w")) - (with-directory-excursion ttf-dir - (exit (and (zero? (system* mkfontscale)) - (zero? (system* mkfontdir)))))))))) + "/bin/mkfontdir")) + (empty-file? (lambda (filename) + (call-with-ascii-input-file filename + (lambda (p) + (eqv? #\0 (read-char p)))))) + (fonts-dir-file "fonts.dir") + (fonts-scale-file "fonts.scale")) + (mkdir-p share-dir) + ;; Create all sub-directories, because we may create fonts.dir + ;; and fonts.scale files in the sub-directories. + (union-build fonts-dir fonts-dirs + #:log-port (%make-void-port "w") + #:create-all-directories? #t) + (let ((directories (find-files fonts-dir + (lambda (file stat) + (eq? 'directory (stat:type stat))) + #:directories? #t))) + (for-each (lambda (dir) + (with-directory-excursion dir + (when (file-exists? fonts-scale-file) + (delete-file fonts-scale-file)) + (when (file-exists? fonts-dir-file) + (delete-file fonts-dir-file)) + (unless (and (zero? (system* mkfontscale)) + (zero? (system* mkfontdir))) + (exit #f)) + (when (empty-file? fonts-scale-file) + (delete-file fonts-scale-file)) + (when (empty-file? fonts-dir-file) + (delete-file fonts-dir-file)))) + directories))))))) (gexp->derivation "fonts-dir" build #:modules '((guix build utils) - (guix build union)) + (guix build union) + (srfi srfi-26)) #:local-build? #t #:substitutable? #f)) -- cgit v1.2.3 From 7f7b38af9e3cc28cac15201679792089983fd89f Mon Sep 17 00:00:00 2001 From: Vasile Dumitrascu Date: Sat, 25 Mar 2017 02:12:00 +0000 Subject: gnu: Add emacs-keyfreq. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/emacs.scm (emacs-keyfreq): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/emacs.scm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 6e95cac963..7ed8334012 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -1417,6 +1417,25 @@ code written in the D programming language. This mode is currently known to work with Emacs 24 and 25.") (license license:gpl2+))) +(define-public emacs-keyfreq + (package + (name "emacs-keyfreq") + (version "20160516.716") + (source + (origin + (method url-fetch) + (uri (string-append "http://melpa.org/packages/keyfreq-" + version ".el")) + (sha256 + (base32 + "008hd7d06qskc3mx0bbdgpgy2pwxr8185fzlyqf9qjg49y74p6g8")))) + (build-system emacs-build-system) + (home-page "https://github.com/dacap/keyfreq") + (synopsis "Track Emacs command frequencies") + (description "@code{emacs-keyfeq} tracks and shows how many times you used +a command.") + (license license:gpl3+))) + (define-public emacs-undo-tree (package (name "emacs-undo-tree") -- cgit v1.2.3 From a1eba1bec17fe5e20cd653926bad51b74a2e0c1d Mon Sep 17 00:00:00 2001 From: Vasile Dumitrascu Date: Sat, 25 Mar 2017 02:31:00 +0000 Subject: gnu: Add emacs-monroe. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/emacs.scm (emacs-monroe): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/emacs.scm | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 7ed8334012..4fe2ffa4db 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -3423,6 +3423,26 @@ go to the second most recent edit, etc. Negative argument, @kbd{C-u -}, is used for reverse direction.") (license license:gpl2+))) +(define-public emacs-monroe + (package + (name "emacs-monroe") + (version "20170220.540") + (source + (origin + (method url-fetch) + (uri (string-append "http://melpa.org/packages/monroe-" + version ".el")) + (sha256 + (base32 + "06p0qdhg4arwij1qpiiiwsd0m1bbl1qwd20ij2bmhryrvrcpswq3")))) + (build-system emacs-build-system) + (home-page "http://www.github.com/sanel/monroe") + (synopsis "Clojure nREPL client for Emacs") + (description + "Monroe is a nREPL client for Emacs, focused on simplicity and easy +distribution, primarily targeting Clojure users") + (license license:gpl3+))) + (define-public emacs-writegood-mode (package (name "emacs-writegood-mode") -- cgit v1.2.3 From 20413597b6651cb94b49d02183f55babb007da53 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 26 Mar 2017 16:58:13 +0200 Subject: gnu: claws-mail: Update to 3.15.0. * gnu/packages/mail.scm (claws-mail): Update to 3.15.0. --- 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 2ae1277ae1..833ef724a6 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -892,7 +892,7 @@ compresses it.") (define-public claws-mail (package (name "claws-mail") - (version "3.14.1") + (version "3.15.0") (source (origin (method url-fetch) (uri (string-append @@ -900,7 +900,7 @@ compresses it.") ".tar.xz")) (sha256 (base32 - "0df34gj4r5cbb92834hph19gnh7ih9rgmmw47rliyg8b9z01v6mp")))) + "0bnwd3l04y6j1nw3h861rdy6k6lyjzsi51j04d33vbpq8c6jskaf")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) (inputs `(("bogofilter" ,bogofilter) -- cgit v1.2.3 From 5d073bdb0501f2ff88af1d8a6b0add90a9e97427 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 26 Mar 2017 16:09:25 -0400 Subject: Revert "gnu: audacity: Use gtk+@3." It appears that Audacity does not yet support GTK+-3 fully; the user interface was unusable with this change. This reverts commit 36e17ab417078710939771d5ab19976eec257309. --- gnu/packages/audacity.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/audacity.scm b/gnu/packages/audacity.scm index c448d0c1f2..a70d0e3a69 100644 --- a/gnu/packages/audacity.scm +++ b/gnu/packages/audacity.scm @@ -52,8 +52,8 @@ (inputs ;; TODO: Add portSMF and libwidgetextra once they're packaged. In-tree ;; versions shipping with Audacity are used for now. - `(("wxwidgets" ,wxwidgets) - ("gtk" ,gtk+) + `(("wxwidgets" ,wxwidgets-gtk2) + ("gtk" ,gtk+-2) ("alsa-lib" ,alsa-lib) ("jack" ,jack-1) ("expat" ,expat) -- cgit v1.2.3 From 2fccc0d193497eb2ee3127270dea12be103f1bc2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sun, 26 Mar 2017 23:16:13 +0200 Subject: maint: Give command to install the pre-push hook. * HACKING: Add 'cp' line to install the pre-push hook. --- HACKING | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/HACKING b/HACKING index 349015499f..20cc9ea6ea 100644 --- a/HACKING +++ b/HACKING @@ -46,9 +46,10 @@ configure Git to automatically sign commits, run: git config commit.gpgsign true git config user.signingkey CABBA6EA1DC0FF33 -You can prevent yourself from accidentally pushing unsigned commits to Savannah -by using the pre-push Git hook called 'pre-push'. It's located at -'etc/git/pre-push'. +You can prevent yourself from accidentally pushing unsigned commits to +Savannah by using the pre-push Git hook called located at ‘etc/git/pre-push’: + + cp etc/git/pre-push .git/hooks/pre-push When pushing a commit on behalf of somebody else, please add a Signed-off-by line at the end of the commit log message (e.g. with ‘git am --signoff’). -- cgit v1.2.3 From 689db38e3467f66725e8841eac72225110a75a17 Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Mon, 20 Mar 2017 13:41:41 +0300 Subject: ui: Support Texinfo markup in package synopses. * guix/ui.scm (package-field-string): New procedure. (package-description-string): Use it. (package-synopsis-string): New procedure. (package->recutils): Use it. * guix/scripts/lint.scm (check-synopsis-style)[check-texinfo-markup]: New procedure. Use it in checks. * tests/lint.scm: Test it. * gnu/packages/perl.scm (perl-try-tiny)[synopsis]: Adjust for the Texinfo markup. --- gnu/packages/perl.scm | 2 +- guix/scripts/lint.scm | 22 +++++++++++++++++++--- guix/ui.scm | 17 +++++++++++++---- tests/lint.scm | 8 ++++++++ 4 files changed, 41 insertions(+), 8 deletions(-) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 82c4ef5d17..3470121883 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -7684,7 +7684,7 @@ Tree::Simple::Visitor::* objects.") "068vdbpacfawc3lkfs0b82xxl27h3l0gj14iada3vlwk8rps9yv0")))) (build-system perl-build-system) (home-page "http://search.cpan.org/dist/Try-Tiny") - (synopsis "Minimal try/catch with proper preservation of $@") + (synopsis "Minimal try/catch with proper preservation of $@@") (description "This module provides bare bones try/catch/finally statements that are designed to minimize common mistakes with eval blocks, and nothing else.") diff --git a/guix/scripts/lint.scm b/guix/scripts/lint.scm index 66c82f0409..811f167067 100644 --- a/guix/scripts/lint.scm +++ b/guix/scripts/lint.scm @@ -5,6 +5,7 @@ ;;; Copyright © 2015, 2016 Mathieu Lirzin ;;; Copyright © 2016 Danny Milosavljevic ;;; Copyright © 2016 Hartmut Goebel +;;; Copyright © 2017 Alex Kost ;;; ;;; This file is part of GNU Guix. ;;; @@ -347,10 +348,25 @@ the synopsis") (_ "synopsis should not start with the package name") 'synopsis))) + (define (check-texinfo-markup synopsis) + "Check that SYNOPSIS can be parsed as a Texinfo fragment. If the +markup is valid return a plain-text version of SYNOPSIS, otherwise #f." + (catch #t + (lambda () (texi->plain-text synopsis)) + (lambda (keys . args) + (emit-warning package + (_ "Texinfo markup in synopsis is invalid") + 'synopsis) + #f))) + (define checks - (list check-not-empty check-proper-start check-final-period - check-start-article check-start-with-package-name - check-synopsis-length)) + (list check-not-empty + check-proper-start + check-final-period + check-start-article + check-start-with-package-name + check-synopsis-length + check-texinfo-markup)) (match (package-synopsis package) ((? string? synopsis) diff --git a/guix/ui.scm b/guix/ui.scm index 3a0a6501d1..345bf490b2 100644 --- a/guix/ui.scm +++ b/guix/ui.scm @@ -4,7 +4,7 @@ ;;; Copyright © 2013 Nikita Karetnikov ;;; Copyright © 2014 Cyril Roelandt ;;; Copyright © 2014 Cyrill Schenkel -;;; Copyright © 2014, 2015 Alex Kost +;;; Copyright © 2014, 2015, 2017 Alex Kost ;;; Copyright © 2015 David Thompson ;;; Copyright © 2015, 2016 Mathieu Lirzin ;;; Copyright © 2016 Roel Janssen @@ -81,6 +81,7 @@ fill-paragraph texi->plain-text package-description-string + package-synopsis-string string->recutils package->recutils package-specification->name+version+output @@ -848,10 +849,18 @@ converted to a space; sequences of more than one line break are preserved." (with-fluids ((%default-port-encoding "UTF-8")) (stexi->plain-text (texi-fragment->stexi str)))) +(define (package-field-string package field-accessor) + "Return a plain-text representation of PACKAGE field." + (and=> (field-accessor package) + (compose texi->plain-text P_))) + (define (package-description-string package) "Return a plain-text representation of PACKAGE description field." - (and=> (package-description package) - (compose texi->plain-text P_))) + (package-field-string package package-description)) + +(define (package-synopsis-string package) + "Return a plain-text representation of PACKAGE synopsis field." + (package-field-string package package-synopsis)) (define (string->recutils str) "Return a version of STR where newlines have been replaced by newlines @@ -914,7 +923,7 @@ WIDTH columns." (string-map (match-lambda (#\newline #\space) (chr chr)) - (or (and=> (package-synopsis p) P_) + (or (and=> (package-synopsis-string p) P_) ""))) (format port "~a~2%" (string->recutils diff --git a/tests/lint.scm b/tests/lint.scm index 3a9b89fe95..7610a91fd3 100644 --- a/tests/lint.scm +++ b/tests/lint.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2014, 2015, 2016 Ludovic Courtès ;;; Copyright © 2015, 2016 Mathieu Lirzin ;;; Copyright © 2016 Hartmut Goebel +;;; Copyright © 2017 Alex Kost ;;; ;;; This file is part of GNU Guix. ;;; @@ -167,6 +168,13 @@ (check-synopsis-style pkg))) "synopsis should not be empty"))) +(test-assert "synopsis: valid Texinfo markup" + (->bool + (string-contains + (with-warnings + (check-synopsis-style (dummy-package "x" (synopsis "Bad $@ texinfo")))) + "Texinfo markup in synopsis is invalid"))) + (test-assert "synopsis: does not start with an upper-case letter" (->bool (string-contains (with-warnings -- cgit v1.2.3 From 6e64766a861f4fa881320921738edef8b7da6bf1 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Sat, 25 Mar 2017 18:37:17 +0100 Subject: gnu: gnuplot: Enable tikz backend. * gnu/packages/maths.scm (gnuplot)[inputs]: Add lua. --- gnu/packages/maths.scm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index ed13556cb4..a5cdacb632 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -70,6 +70,7 @@ #:use-module (gnu packages less) #:use-module (gnu packages lisp) #:use-module (gnu packages logging) + #:use-module (gnu packages lua) #:use-module (gnu packages gnome) #:use-module (gnu packages guile) #:use-module (gnu packages xorg) @@ -495,7 +496,8 @@ singular value problems.") (inputs `(("readline" ,readline) ("cairo" ,cairo) ("pango" ,pango) - ("gd" ,gd))) + ("gd" ,gd) + ("lua" ,lua))) (native-inputs `(("pkg-config" ,pkg-config) ("texlive" ,texlive-minimal))) (home-page "http://www.gnuplot.info") -- cgit v1.2.3 From f051d83c32fea14ee27ff96aa2d3e65d0e0d9f8f Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 26 Mar 2017 22:29:07 +0200 Subject: gnu: youtube-dl: Update to 2017.03.26. * gnu/packages/video.scm (youtube-dl): Update to 2017.03.26. --- 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 85c13159df..4941275cac 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -975,7 +975,7 @@ access to mpv's powerful playback capabilities.") (define-public youtube-dl (package (name "youtube-dl") - (version "2017.03.24") + (version "2017.03.26") (source (origin (method url-fetch) (uri (string-append "https://yt-dl.org/downloads/" @@ -983,7 +983,7 @@ access to mpv's powerful playback capabilities.") version ".tar.gz")) (sha256 (base32 - "00w81j3jpbd4kbzd35y29p7v0xgaql9kz2ihy37wympiz67yawmp")))) + "00ysv18p4rqg7sswbpjpmmvaih6nm135bpllqdlj4ns8kjqmh59j")))) (build-system python-build-system) (arguments ;; The problem here is that the directory for the man page and completion -- cgit v1.2.3 From a800c2175f47887eaba36cc8220f665026d433e5 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 27 Mar 2017 15:51:06 +0200 Subject: gnu: mosh: Update to 1.3.0. * gnu/packages/ssh.scm (mosh): Update to 1.3.0. --- gnu/packages/ssh.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm index c511b7a6c9..0443937749 100644 --- a/gnu/packages/ssh.scm +++ b/gnu/packages/ssh.scm @@ -300,13 +300,13 @@ in future and NTLM based authentication is most likey never be supported.") (define-public mosh (package (name "mosh") - (version "1.2.6") + (version "1.3.0") (source (origin (method url-fetch) (uri (string-append "https://mosh.org/mosh-" version ".tar.gz")) (sha256 (base32 - "118fhpm754wpklf1blnlq5xbvrxqml6rdfs3b07wg666zkxvg0ky")))) + "0xikz40q873g9ihvz3x6bwkcb9hb8kcnp5wpcmb72pg5c7s143ij")))) (build-system gnu-build-system) (arguments '(#:phases -- cgit v1.2.3 From 040ae44aa1fb42b8e801b2abbebc8ec869eaaa65 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 27 Mar 2017 16:57:36 +0200 Subject: gnu: corkscrew: Download source from a mirror. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/ssh.scm (corkscrew)[source]: Use ‘https://downloads.openwrt.org’. --- gnu/packages/ssh.scm | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm index 0443937749..67ffe1fac2 100644 --- a/gnu/packages/ssh.scm +++ b/gnu/packages/ssh.scm @@ -263,8 +263,11 @@ libssh library.") (source (origin (method url-fetch) - (uri (string-append "http://www.agroman.net/corkscrew/corkscrew-" - version ".tar.gz")) + ;; The agroman.net domain name expired on 2017-03-23, and the original + ;; "http://www.agroman.net/corkscrew/corkscrew-2.0.tar.gz" now returns + ;; bogus HTML. Perhaps it will yet return. Until then, use a mirror. + (uri (string-append "https://downloads.openwrt.org/sources/" + "corkscrew-" version ".tar.gz")) (sha256 (base32 "1gmhas4va6gd70i2x2mpxpwpgww6413mji29mg282jms3jscn3qd")))) (build-system gnu-build-system) -- cgit v1.2.3 From 10c95711b4ec69706377bd0f3db86f1cf2bb047a Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 27 Mar 2017 17:31:54 +0200 Subject: gnu: corkscrew: Improve descriptions. * gnu/packages/ssh.scm (corkscrew)[synopsis, description]: Fix typos and condense. Remove scary warning (the tunnel is always encrypted through SSH) and speculation. --- gnu/packages/ssh.scm | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm index 67ffe1fac2..b5c73ea85e 100644 --- a/gnu/packages/ssh.scm +++ b/gnu/packages/ssh.scm @@ -292,12 +292,11 @@ libssh library.") (string-append "." "/configure") flags)))))))) (home-page "http://www.agroman.net/corkscrew") - (synopsis "Tunneling SSH through HTTP proxies") + (synopsis "SSH tunneling through HTTP(S) proxies") (description - "Corkscrew allows creating TCP tunnels through HTTP proxies. WARNING: -At the moment only plain text authentication is supported, should you require -to use it with your HTTP proxy. Digest based authentication may be supported -in future and NTLM based authentication is most likey never be supported.") + "Corkscrew tunnels SSH connections through most HTTP and HTTPS proxies. +Proxy authentication is only supported through the plain-text HTTP basic +authentication scheme.") (license license:gpl2+))) (define-public mosh -- cgit v1.2.3 From ccfac09c828b055d221000a071591e4a69e68d28 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Mon, 27 Mar 2017 11:56:06 -0400 Subject: gnu: geoclue: Update to 2.4.6. * gnu/packages/gnome.scm (geoclue): Update to 2.4.6. --- 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 f8fafdbc7a..4e2c9622f0 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -2528,7 +2528,7 @@ output devices.") (define-public geoclue (package (name "geoclue") - (version "2.4.4") + (version "2.4.6") (source (origin (method url-fetch) @@ -2537,7 +2537,7 @@ output devices.") name "-" version ".tar.xz")) (sha256 (base32 - "0p1ibjf5vzjsahw5xif2si3lj6a00sxhll008jk7w1hj1jfznhww")) + "1dnknrwln159dj7pdprnfa4zjprgslabxngmn11jyjwvbi2zfzf5")) (patches (search-patches "geoclue-config.patch")))) (build-system glib-or-gtk-build-system) (arguments -- cgit v1.2.3 From 68c6110c20353a2994af72b3ef4c945a9c6e77e8 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Sun, 26 Mar 2017 20:00:42 -0400 Subject: gnu: Add grafx2. * gnu/packages/game-development.scm (grafx2): New variable. --- gnu/packages/game-development.scm | 45 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 44 insertions(+), 1 deletion(-) diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index 6525f94304..a7875b822d 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -3,7 +3,7 @@ ;;; Copyright © 2015 Mark H Weaver ;;; Copyright © 2015 Ludovic Courtès ;;; Copyright © 2015 Alex Kost -;;; Copyright © 2015, 2016 David Thompson +;;; Copyright © 2015, 2016, 2017 David Thompson ;;; Copyright © 2016 Efraim Flashner ;;; Copyright © 2016, 2017 Kei Kebreau ;;; Copyright © 2016 Ricardo Wurmus @@ -676,3 +676,46 @@ to create fully featured games and multimedia programs in the python language.") (define-public python2-pygame (package-with-python2 python-pygame)) + +(define-public grafx2 + (package + (name "grafx2") + (version "2.4") + (source (origin + (method url-fetch) + ;; XXX: There is no URL that contains the version. :( + (uri "http://pulkomandy.tk/projects/GrafX2/downloads/21") + (sha256 + (base32 + "0svsy6rqmdj11b400c242i2ixihyz0hds0dgicqz6g6dcgmcl62q")))) + (build-system gnu-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (delete 'configure) ; no configure script + (add-before 'build 'change-to-src-directory + (lambda _ + (chdir "src") + #t))) + #:make-flags + ;; SDL header files are referenced without the preceeding "SDL/". + (list (string-append "CFLAGS=-I" + (assoc-ref %build-inputs "sdl-union") + "/include/SDL") + (string-append "prefix=" + (assoc-ref %outputs "out"))) + #:tests? #f)) ; no check target + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("libpng" ,libpng) + ("lua" ,lua-5.1) + ("sdl-union" ,(sdl-union (list sdl sdl-image sdl-ttf))))) + (synopsis "Bitmap paint program") + (description "GrafX2 is a bitmap paint program inspired by the Amiga +programs ​Deluxe Paint and Brilliance. Specializing in 256-color drawing, it +includes a very large number of tools and effects that make it particularly +suitable for pixel art, game graphics, and generally any detailed graphics +painted with a mouse.") + (home-page "http://pulkomandy.tk/projects/GrafX2") + (license license:gpl2))) ; GPLv2 only -- cgit v1.2.3 From 1e4063010d13249df94483e57d410fcc2965d6f5 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Mon, 27 Mar 2017 14:18:17 -0400 Subject: gnu: haunt: Disable test suite. * gnu/packages/guile.scm (haunt): Disable test suite. --- gnu/packages/guile.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index abb4fe9884..96ef021fb4 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -1039,7 +1039,7 @@ Guile's foreign function interface.") (arguments `(#:modules ((ice-9 match) (ice-9 ftw) ,@%gnu-build-system-modules) - + #:tests? #f ; test suite is non-deterministic :( #:phases (modify-phases %standard-phases (add-after 'install 'wrap-haunt (lambda* (#:key outputs #:allow-other-keys) -- cgit v1.2.3 From 81d95a121aa2c73c72f26266c2971dc398380d55 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 27 Mar 2017 20:10:44 +0200 Subject: gnu: corkscrew: Install the README file. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/ssh.scm (corkscrew)[arguments]: Add a very basic ‘install-documentation’ phase. --- gnu/packages/ssh.scm | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm index b5c73ea85e..4ac9a75c71 100644 --- a/gnu/packages/ssh.scm +++ b/gnu/packages/ssh.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2016 Leo Famulari ;;; Copyright © 2016 Nicolas Goaziou ;;; Copyright © 2016 Christopher Allan Webber +;;; Copyright © 2017 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. ;;; @@ -290,7 +291,13 @@ libssh library.") (setenv "CONFIG_SHELL" bash) (zero? (apply system* bash (string-append "." "/configure") - flags)))))))) + flags))))) + (add-after 'install 'install-documentation + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (doc (string-append out "/share/doc/corkscrew"))) + (install-file "README" doc) + #t)))))) (home-page "http://www.agroman.net/corkscrew") (synopsis "SSH tunneling through HTTP(S) proxies") (description -- cgit v1.2.3 From bd9b8d89ad44b38acb133711c0d33b8cd814aec5 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 27 Mar 2017 20:17:56 +0200 Subject: gnu: mcelog: Update to 149. * gnu/packages/linux.scm (mcelog): Update to 149. --- 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 d97cdc4b3a..bd7040223a 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -3157,14 +3157,14 @@ the default @code{nsswitch} and the experimental @code{umich_ldap}.") (define-public mcelog (package (name "mcelog") - (version "148") + (version "149") (source (origin (method url-fetch) (uri (string-append "https://git.kernel.org/cgit/utils/cpu/mce/" "mcelog.git/snapshot/v" version ".tar.gz")) (sha256 (base32 - "1d5g09ndfsnl56vyhb5xw0zxspnh0f937biw3agqhdfbvw40j9jr")) + "08hd8bl9rgss990icb69srarrfwcg8k7py979ak753j92ybbkhdm")) (file-name (string-append name "-" version ".tar.gz")) (modules '((guix build utils))) (snippet -- cgit v1.2.3 From bc4a2b853c92b29d8590db711dbd8bd1bc22db3d Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Mon, 27 Mar 2017 14:29:42 -0400 Subject: gnu: lm-sensors: Use a descriptive file name for the source tarball. * gnu/packages/linux.scm (lm-sensors)[source]: Add file-name field. --- gnu/packages/linux.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index bd7040223a..c42a679ba9 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -2056,6 +2056,7 @@ country-specific regulations for the wireless spectrum.") "https://github.com/groeck/lm-sensors/archive/V" (string-join (string-split version #\.) "-") ".tar.gz"))) + (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 "0knb09s9lvx0wzfsaizx3xq58q6kllqf7nkbwvir0wkgn31c2d73")) -- cgit v1.2.3 From a48a1071a686b250bf8b7982ca0ce8dda1d93c61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 27 Mar 2017 23:46:28 +0200 Subject: gnu: libgit2: Patch use-after-free. * gnu/packages/patches/libgit2-use-after-free.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/version-control.scm (libgit2)[inputs]: Add it. [arguments] <#:phases>: Add 'apply-patch' phase. --- gnu/local.mk | 1 + gnu/packages/patches/libgit2-use-after-free.patch | 24 +++++++++++++++++++++++ gnu/packages/version-control.scm | 14 ++++++++++++- 3 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/libgit2-use-after-free.patch diff --git a/gnu/local.mk b/gnu/local.mk index 0bb2276a2a..cc187e2d20 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -687,6 +687,7 @@ dist_patch_DATA = \ %D%/packages/patches/libevent-2.1-dns-tests.patch \ %D%/packages/patches/libevent-2.1-skip-failing-test.patch \ %D%/packages/patches/libextractor-ffmpeg-3.patch \ + %D%/packages/patches/libgit2-use-after-free.patch \ %D%/packages/patches/libjxr-fix-function-signature.patch \ %D%/packages/patches/libjxr-fix-typos.patch \ %D%/packages/patches/liboop-mips64-deplibs-fix.patch \ diff --git a/gnu/packages/patches/libgit2-use-after-free.patch b/gnu/packages/patches/libgit2-use-after-free.patch new file mode 100644 index 0000000000..580af8781a --- /dev/null +++ b/gnu/packages/patches/libgit2-use-after-free.patch @@ -0,0 +1,24 @@ +This patch is taken from ; +we need it to fix the use-after-free error in 'git_commit_extract_signature' +reported at . + +From ade0d9c658fdfc68d8046935f6908f033fe7a529 Mon Sep 17 00:00:00 2001 +From: Patrick Steinhardt +Date: Mon, 13 Feb 2017 13:46:17 +0100 +Subject: [PATCH 3/3] commit: avoid possible use-after-free + +diff --git a/src/commit.c b/src/commit.c +index 89a4db1..05b70a9 100644 +--- a/src/commit.c ++++ b/src/commit.c +@@ -766,8 +766,9 @@ int git_commit_extract_signature(git_buf *signature, git_buf *signed_data, git_r + if (git_buf_oom(signature)) + goto oom; + ++ error = git_buf_puts(signed_data, eol+1); + git_odb_object_free(obj); +- return git_buf_puts(signed_data, eol+1); ++ return error; + } + + giterr_set(GITERR_OBJECT, "this commit is not signed"); diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index 0e04f1a1c3..57589c04aa 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -342,13 +342,25 @@ everything from small to very large projects with speed and efficiency.") (("/bin/cp") (which "cp")) (("/bin/rm") (which "rm"))) #t)) + (add-after 'unpack 'apply-patch + (lambda* (#:key inputs #:allow-other-keys) + ;; XXX: For some reason adding the patch in 'patches', which + ;; leads to a new tarball with all timestamps reset and ordering + ;; by name (slightly different file order compared to the + ;; original tarball) leads to an obscure Python error while + ;; running 'generate.py': + ;; 'Module' object has no attribute 'callbacks' + ;; Thus, apply the patch here, which minimizes disruption. + (let ((patch (assoc-ref inputs "patch"))) + (zero? (system* "patch" "-p1" "--force" "--input" patch))))) ;; Run checks more verbosely. (replace 'check (lambda _ (zero? (system* "./libgit2_clar" "-v" "-Q"))))))) (inputs `(("libssh2" ,libssh2) ("libcurl" ,curl) - ("python" ,python-wrapper))) + ("python" ,python-wrapper) + ("patch" ,(search-patch "libgit2-use-after-free.patch")))) (native-inputs `(("pkg-config" ,pkg-config))) (propagated-inputs -- cgit v1.2.3 From 7432d3ae185e25d881b6dae2a39c6d51100cf009 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Tue, 28 Mar 2017 01:15:37 +0200 Subject: gnu: grafx2: Remove zero-width space. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/game-development.scm (grafx2)[description]: Remove invisible (‘zero-width space’) character. --- gnu/packages/game-development.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index a7875b822d..9919114336 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -713,7 +713,7 @@ to create fully featured games and multimedia programs in the python language.") ("sdl-union" ,(sdl-union (list sdl sdl-image sdl-ttf))))) (synopsis "Bitmap paint program") (description "GrafX2 is a bitmap paint program inspired by the Amiga -programs ​Deluxe Paint and Brilliance. Specializing in 256-color drawing, it +programs Deluxe Paint and Brilliance. Specializing in 256-color drawing, it includes a very large number of tools and effects that make it particularly suitable for pixel art, game graphics, and generally any detailed graphics painted with a mouse.") -- cgit v1.2.3 From c38685524956a9451ce254da80f6819be53ead6c Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Mon, 27 Mar 2017 12:53:09 -0400 Subject: gnu: webkitgtk: Update to 2.16.0. WebKitGTK+ 2.16.0 is the first stable release of WebKitGTK+ that uses libgcrypt instead of GnuTLS for some cryptographic functions: * gnu/packages/webkit.scm (webkitgtk): Update to 2.16.0. [inputs]: Replace gnutls with libgcrypt. --- gnu/packages/webkit.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gnu/packages/webkit.scm b/gnu/packages/webkit.scm index a9824cafc3..b90bd4d449 100644 --- a/gnu/packages/webkit.scm +++ b/gnu/packages/webkit.scm @@ -35,6 +35,7 @@ #:use-module (gnu packages gl) #:use-module (gnu packages glib) #:use-module (gnu packages gnome) + #:use-module (gnu packages gnupg) #:use-module (gnu packages gperf) #:use-module (gnu packages gstreamer) #:use-module (gnu packages gtk) @@ -45,7 +46,6 @@ #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) #:use-module (gnu packages ruby) - #:use-module (gnu packages tls) #:use-module (gnu packages video) #:use-module (gnu packages xml) #:use-module (gnu packages xorg)) @@ -53,14 +53,14 @@ (define-public webkitgtk (package (name "webkitgtk") - (version "2.14.5") + (version "2.16.0") (source (origin (method url-fetch) (uri (string-append "https://www.webkitgtk.org/releases/" name "-" version ".tar.xz")) (sha256 (base32 - "17rnjs7yl198bkghzcc2cgh30sb5i03irb6wag3xchwv7b1z3a1w")))) + "1p3w23n5bq30xg4qg0i9lmrk13vgck2l4wh8gmzwxwqfj7c738sy")))) (build-system cmake-build-system) (arguments '(#:tests? #f ; no tests @@ -102,12 +102,12 @@ `(("at-spi2-core" ,at-spi2-core) ("enchant" ,enchant) ("geoclue" ,geoclue) - ("gnutls" ,gnutls) ("gst-plugins-base" ,gst-plugins-base) ("gtk+-2" ,gtk+-2) ("harfbuzz" ,harfbuzz) ("hyphen" ,hyphen) ("icu4c" ,icu4c) + ("libgcrypt" ,libgcrypt) ("libjpeg" ,libjpeg) ("libnotify" ,libnotify) ("libpng" ,libpng) -- cgit v1.2.3 From 7aeb4ffa5828206f89ec62226863c27f7c1c028d Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Mon, 27 Mar 2017 12:58:10 -0400 Subject: gnu: epiphany: Update to 3.22.7. * gnu/packages/gnome.scm (epiphany): Update to 3.22.7. --- 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 4e2c9622f0..2d647505b6 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -3711,7 +3711,7 @@ work and the interface is well tested.") (define-public epiphany (package (name "epiphany") - (version "3.22.6") + (version "3.22.7") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -3719,7 +3719,7 @@ work and the interface is well tested.") name "-" version ".tar.xz")) (sha256 (base32 - "1hpwjwiviwh9dgc9cwq0gmr5jy40rvigjcq0cbg2nw2hqiyshzny")))) + "1167x5s0kawkqngjnzml0a11ib18raxqc4p11kacivj4jv0pwnx1")))) (build-system glib-or-gtk-build-system) (arguments ;; FIXME: tests run under Xvfb, but fail with: -- cgit v1.2.3