From 5c6a30c5119ffd5702c02e07e7f04669a8f225bb Mon Sep 17 00:00:00 2001 From: Mathieu Lirzin Date: Sat, 17 Dec 2016 00:57:24 +0100 Subject: git download: Remove redundant argument in 'gexp->derivation' call. * guix/git-download.scm (git-fetch): Call 'gexp->derivation' with only one '#:local-build?' keyword argument. --- guix/git-download.scm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/guix/git-download.scm b/guix/git-download.scm index fca44f552a..62e625c715 100644 --- a/guix/git-download.scm +++ b/guix/git-download.scm @@ -109,8 +109,7 @@ HASH-ALGO (a symbol). Use NAME as the file name, or a generic name if #f." #:hash-algo hash-algo #:hash hash #:recursive? #t - #:guile-for-build guile - #:local-build? #t))) + #:guile-for-build guile))) (define (git-version version revision commit) "Return the version string for packages using git-download." -- cgit v1.2.3 From dc673fa1131fb5d1e5ca29acb4a693cfb906986f Mon Sep 17 00:00:00 2001 From: Mathieu Lirzin Date: Sat, 17 Dec 2016 15:12:19 +0100 Subject: derivations: Make record datatype immutable. * guix/derivations.scm (): Make it immutable. (derivation): Use generic 'set-field' instead of ad-hoc functional setter. --- guix/derivations.scm | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/guix/derivations.scm b/guix/derivations.scm index d5e4b5730b..b712c508e5 100644 --- a/guix/derivations.scm +++ b/guix/derivations.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès +;;; Copyright © 2016, 2017 Mathieu Lirzin ;;; ;;; This file is part of GNU Guix. ;;; @@ -120,7 +121,7 @@ ;;; Nix derivations, as implemented in Nix's `derivations.cc'. ;;; -(define-record-type +(define-immutable-record-type (make-derivation outputs inputs sources system builder args env-vars file-name) derivation? @@ -817,14 +818,6 @@ output should not be used." e outputs))) - (define (set-file-name drv file) - ;; Set FILE as the 'file-name' field of DRV. - (match drv - (($ outputs inputs sources system builder - args env-vars) - (make-derivation outputs inputs sources system builder - args env-vars file)))) - (define input->derivation-input (match-lambda (((? derivation? drv)) @@ -872,9 +865,9 @@ output should not be used." (let* ((file (add-text-to-store store (string-append name ".drv") (derivation->string drv) (map derivation-input-path inputs))) - (drv (set-file-name drv file))) - (hash-set! %derivation-cache file drv) - drv))) + (drv* (set-field drv (derivation-file-name) file))) + (hash-set! %derivation-cache file drv*) + drv*))) (define* (map-derivation store drv mapping #:key (system (%current-system))) -- cgit v1.2.3 From 8d67610bdc542b92c2b500e36e4e66c090dadede Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Wed, 11 Jan 2017 17:00:57 +0100 Subject: gnu: Add python2-cheetah * gnu/packages/python.scm (python2-cheetah): New variable. Signed-off-by: Leo Famulari --- gnu/packages/python.scm | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index c15a12f9be..727e1bff26 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -12331,3 +12331,47 @@ possible on all supported Python versions.") (define-public python2-xopen (package-with-python2 python-xopen)) + +(define-public python2-cheetah + (package + (name "python2-cheetah") + (version "2.4.4") + (source + (origin + (method url-fetch) + (uri (pypi-uri "Cheetah" version)) + (sha256 + (base32 + "0l5mm4lnysjkzpjr95q5ydm9xc8bv43fxmr79ypybrf1y0lq4c5y")))) + (build-system python-build-system) + (arguments + `(#:python ,python-2)) + (propagated-inputs + `(("python2-markdown" ,python2-markdown))) + (home-page "https://pythonhosted.org/Cheetah/") + (synopsis "Template engine") + (description "Cheetah is a text-based template engine and Python code +generator. + +Cheetah can be used as a standalone templating utility or referenced as +a library from other Python applications. It has many potential uses, +but web developers looking for a viable alternative to ASP, JSP, PHP and +PSP are expected to be its principle user group. + +Features: +@enumerate +@item Generates HTML, SGML, XML, SQL, Postscript, form email, LaTeX, or any other + text-based format. +@item Cleanly separates content, graphic design, and program code. +@item Blends the power and flexibility of Python with a simple template language + that non-programmers can understand. +@item Gives template writers full access to any Python data structure, module, + function, object, or method in their templates. +@item Makes code reuse easy by providing an object-orientated interface to + templates that is accessible from Python code or other Cheetah templates. + One template can subclass another and selectively reimplement sections of it. +@item Provides a simple, yet powerful, caching mechanism that can dramatically + improve the performance of a dynamic website. +@item Compiles templates into optimized, yet readable, Python code. +@end enumerate") + (license (license:x11-style "file://LICENSE")))) -- cgit v1.2.3 From 89b99531c2789baac421e003457c496471b16416 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 11 Jan 2017 21:18:25 +0100 Subject: gnu: abiword: Allow GTK+ schemas to be found. Fixes . Reported by Adonay Felipe Nogueira . * gnu/packages/abiword.scm (abiword)[build-system]: Set to GLIB-OR-GTK-BUILD-SYSTEM. --- gnu/packages/abiword.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/packages/abiword.scm b/gnu/packages/abiword.scm index 8e89bb2f52..f4f79fd79a 100644 --- a/gnu/packages/abiword.scm +++ b/gnu/packages/abiword.scm @@ -22,6 +22,7 @@ #:use-module (guix packages) #:use-module (guix download) #:use-module (guix build-system gnu) + #:use-module (guix build-system glib-or-gtk) #:use-module (gnu packages) #:use-module (gnu packages autotools) #:use-module (gnu packages boost) @@ -56,7 +57,7 @@ (search-patches "abiword-wmf-version-lookup-fix.patch" "abiword-explictly-cast-bools.patch")))) - (build-system gnu-build-system) + (build-system glib-or-gtk-build-system) (arguments ;; NOTE: rsvg is disabled, since Abiword `(#:configure-flags ;; supports it directly, and its BS is broken. (list -- cgit v1.2.3 From aaa2581b6190988d36d9b39dbe05591dd7007b23 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 11 Jan 2017 22:06:42 +0100 Subject: gnu: abiword: Remove timestamps from libabiword. * gnu/packages/abiword.scm (abiword)[source](modules, snippet): New fields. --- gnu/packages/abiword.scm | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/gnu/packages/abiword.scm b/gnu/packages/abiword.scm index f4f79fd79a..514ac0ceb5 100644 --- a/gnu/packages/abiword.scm +++ b/gnu/packages/abiword.scm @@ -53,6 +53,12 @@ "/source/" name "-" version ".tar.gz")) (sha256 (base32 "1ik591rx15nn3n1297cwykl8wvrlgj78i528id9wbidgy3xzd570")) + (modules '((guix build utils))) + (snippet + ;; Ensure reproducibility. + '(substitute* "src/wp/main/xp/abi_ver.cpp" + (("__DATE__") "\"2017\"") + (("__TIME__") "\"00:00\""))) (patches (search-patches "abiword-wmf-version-lookup-fix.patch" "abiword-explictly-cast-bools.patch")))) -- cgit v1.2.3 From 26ab00a0a9c79f85641a305fb13e36476b9a0427 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 11 Jan 2017 22:40:00 +0100 Subject: perform-download: Add backward-compatible case. This is meant to ease transition for people running an older guix-daemon invoking a recent 'guix perform-download' with only one argument. This is a followup to 9b5364a3afb03414bd6e3ded2fbfdacabe4e8870. * guix/scripts/perform-download.scm (perform-download): Make 'output' optional. Bind 'output*' from DRV's "out" and honor it. (guix-perform-download): Add clause with one argument. --- guix/scripts/perform-download.scm | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/guix/scripts/perform-download.scm b/guix/scripts/perform-download.scm index 58a7377141..59ade0a8c1 100644 --- a/guix/scripts/perform-download.scm +++ b/guix/scripts/perform-download.scm @@ -41,20 +41,23 @@ (module-use! module (resolve-interface '(guix base32))) module)) -(define (perform-download drv output) +(define* (perform-download drv #:optional output) "Perform the download described by DRV, a fixed-output derivation, to OUTPUT. -Note: We don't read the value of 'out' in DRV since the actual output is -different from that when we're doing a 'bmCheck' or 'bmRepair' build." +Note: Unless OUTPUT is #f, we don't read the value of 'out' in DRV since the +actual output is different from that when we're doing a 'bmCheck' or +'bmRepair' build." (derivation-let drv ((url "url") + (output* "out") (executable "executable") (mirrors "mirrors") (content-addressed-mirrors "content-addressed-mirrors")) (unless url (leave (_ "~a: missing URL~%") (derivation-file-name drv))) - (let* ((url (call-with-input-string url read)) + (let* ((output (or output output*)) + (url (call-with-input-string url read)) (drv-output (assoc-ref (derivation-outputs drv) "out")) (algo (derivation-output-hash-algo drv-output)) (hash (derivation-output-hash drv-output))) @@ -94,17 +97,20 @@ the daemon and not explicitly described as an input of the derivation. This allows us to sidestep bootstrapping problems, such downloading the source code of GnuTLS over HTTPS, before we have built GnuTLS. See ." + + ;; This program must be invoked by guix-daemon under an unprivileged UID to + ;; prevent things downloading from 'file:///etc/shadow' or arbitrary code + ;; execution via the content-addressed mirror procedures. (That means we + ;; exclude users who did not pass '--build-users-group'.) (with-error-handling (match args (((? derivation-path? drv) (? store-path? output)) - ;; This program must be invoked by guix-daemon under an unprivileged - ;; UID to prevent things downloading from 'file:///etc/shadow' or - ;; arbitrary code execution via the content-addressed mirror - ;; procedures. (That means we exclude users who did not pass - ;; '--build-users-group'.) (assert-low-privileges) (perform-download (call-with-input-file drv read-derivation) output)) + (((? derivation-path? drv)) ;backward compatibility + (assert-low-privileges) + (perform-download (call-with-input-file drv read-derivation))) (("--version") (show-version-and-exit)) (x -- cgit v1.2.3 From 5c3d6c1da88d67576659567d95b796b391b94f68 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 11 Jan 2017 22:59:49 +0100 Subject: gnu: fprintd: Provide the right file name for 'fprintd.conf'. * gnu/packages/freedesktop.scm (fprintd)[arguments]: New field. --- gnu/packages/freedesktop.scm | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index 9cfb987976..66060eaa64 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -853,6 +853,18 @@ software.") (base32 "05915i0bv7q62fqrs5diqwr8dz3pwqa1c1ivcgggkjyw0xk4ldp5")))) (build-system gnu-build-system) + (arguments + '(#:phases (modify-phases %standard-phases + (add-before 'build 'set-sysconfdir + (lambda* (#:key outputs #:allow-other-keys) + ;; Work around a bug whereby the 'SYSCONFDIR' macro + ;; expands literally to '${prefix}/etc'. + (let ((out (assoc-ref outputs "out"))) + (substitute* "src/main.c" + (("SYSCONFDIR, \"fprintd.conf\"") + (string-append "\"" out "/etc\", " + "\"fprintd.conf\""))) + #t)))))) (native-inputs `(("pkg-config" ,pkg-config) ("intltool" ,intltool))) -- cgit v1.2.3 From 639168dde22092787c90eaf34a74a7e56fbc3878 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 11 Jan 2017 17:55:10 -0500 Subject: gnu: isc-dhcp: Update bundled bind to 9.9.9-P5 [security fixes]. Fixes CVE-2016-{9131,9147,9444}. * gnu/packages/admin.scm (isc-dhcp): Update bundled bind to 9.9.9-P5. --- gnu/packages/admin.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 8a7dc6af89..def9a6fbf3 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -471,7 +471,7 @@ connection alive.") (bind-minor-version "9") (bind-patch-version "9") (bind-release-type "-P") ; for patch release, use "-P" - (bind-release-version "4") ; for patch release, e.g. "4" + (bind-release-version "5") ; for patch release, e.g. "4" (bind-version (string-append bind-major-version "." bind-minor-version @@ -587,7 +587,7 @@ connection alive.") "/bind-" bind-version ".tar.gz")) (sha256 (base32 - "1qpi23lrs6jfxqx8dakbqfyg3hvrzq5ldchg6my19xcvx8515mgx")))) + "1yn15chkfqf4d7961ip2x10jm27a9wqymz2xqh0a2g89arrirkaw")))) ;; When cross-compiling, we need the cross Coreutils and sed. ;; Otherwise just use those from %FINAL-INPUTS. -- cgit v1.2.3 From eefd042e60d9fc1d092b44bf80ecbfe65b291e46 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 11 Jan 2017 18:00:50 -0500 Subject: gnu: bind: Update to 9.10.4-P5 [fixes CVE-2016-{9131,9147,9444}]. * gnu/packages/dns.scm (bind): Update to 9.10.4-P5. --- 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 55cfc02e95..9a4f4e108e 100644 --- a/gnu/packages/dns.scm +++ b/gnu/packages/dns.scm @@ -76,7 +76,7 @@ and BOOTP/TFTP for network booting of diskless machines.") (define-public bind (package (name "bind") - (version "9.10.4-P4") + (version "9.10.4-P5") (source (origin (method url-fetch) (uri (string-append @@ -84,7 +84,7 @@ and BOOTP/TFTP for network booting of diskless machines.") version ".tar.gz")) (sha256 (base32 - "11lxkb7d79c75scrs28q4xmr0ii2li69zj1c650al3qxir8yf754")))) + "1sqg7wg05h66vdjc8j215r04f8pg7lphkb93nsqxvzhk6r0ppi49")))) (build-system gnu-build-system) (outputs `("out" "utils")) (inputs -- cgit v1.2.3 From c5173d74d67b786c36dd53930c5d4fe4805cf3e9 Mon Sep 17 00:00:00 2001 From: Roel Janssen Date: Thu, 12 Jan 2017 10:02:57 +0100 Subject: gnu: Add r-txdb-mmusculus-ucsc-mm10-knowngene. * gnu/packages/bioinformatics.scm (r-txdb-mmusculus-ucsc-mm10-knowngene): New variable. --- gnu/packages/bioinformatics.scm | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 14daf59c92..d82b6c093c 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -7100,6 +7100,41 @@ musculus (Mouse) as provided by UCSC (mm10, December 2011) and stored in Biostrings objects.") (license license:artistic2.0))) +(define-public r-txdb-mmusculus-ucsc-mm10-knowngene + (package + (name "r-txdb-mmusculus-ucsc-mm10-knowngene") + (version "3.4.0") + (source (origin + (method url-fetch) + ;; We cannot use bioconductor-uri here because this tarball is + ;; located under "data/annotation/" instead of "bioc/". + (uri (string-append "http://www.bioconductor.org/packages/" + "release/data/annotation/src/contrib/" + "TxDb.Mmusculus.UCSC.mm10.knownGene_" + version ".tar.gz")) + (sha256 + (base32 + "08gava9wsvpcqz51k2sni3pj03n5155v32d9riqbf305nbirqbkb")))) + (properties + `((upstream-name . "TxDb.Mmusculus.UCSC.mm10.knownGene"))) + (build-system r-build-system) + ;; As this package provides little more than a very large data file it + ;; doesn't make sense to build substitutes. + (arguments `(#:substitutable? #f)) + (propagated-inputs + `(("r-bsgenome" ,r-bsgenome) + ("r-genomicfeatures" ,r-genomicfeatures) + ("r-annotationdbi" ,r-annotationdbi))) + (home-page + "http://bioconductor.org/packages/TxDb.Mmusculus.UCSC.mm10.knownGene/") + (synopsis "Annotation package for TxDb knownGene object(s) for Mouse") + (description + "This package loads a TxDb object, which is an R interface to +prefabricated databases contained in this package. This package provides +the TxDb object of Mouse data as provided by UCSC (mm10, December 2011) +based on the knownGene track.") + (license license:artistic2.0))) + (define-public r-bsgenome-celegans-ucsc-ce6 (package (name "r-bsgenome-celegans-ucsc-ce6") -- cgit v1.2.3 From e5d861f30568ec0265565af551289fc2033743c7 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 12 Jan 2017 10:10:02 +0100 Subject: gnu: eudev: Add 'eudev-with-hwdb' variant that contains 'hwdb.bin'. * gnu/packages/linux.scm (eudev-with-hwdb): New variable. (usbutils)[inputs]: Use it instead of EUDEV. --- gnu/packages/linux.scm | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 716845d66e..dc0fc079b7 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -597,7 +597,7 @@ slabtop, and skill.") (build-system gnu-build-system) (inputs `(("libusb" ,libusb) - ("eudev" ,eudev))) + ("eudev" ,eudev-with-hwdb))) (native-inputs `(("pkg-config" ,pkg-config))) (home-page "http://www.linux-usb.org/") @@ -1740,6 +1740,21 @@ device nodes from /dev/, handles hotplug events and loads drivers at boot time.") (license license:gpl2+))) +(define-public eudev-with-hwdb + ;; TODO: Merge with 'eudev'. + (package + (inherit eudev) + (name "eudev-with-hwdb") + (arguments + '(#:phases (modify-phases %standard-phases + (add-after 'install 'build-hwdb + (lambda* (#:key outputs #:allow-other-keys) + ;; Build OUT/etc/udev/hwdb.bin. This allows 'lsusb' and + ;; similar tools to display product names. + (let ((out (assoc-ref outputs "out"))) + (zero? (system* (string-append out "/bin/udevadm") + "hwdb" "--update")))))))))) + (define-public lvm2 (package (name "lvm2") -- cgit v1.2.3 From a91740655c8d18cd1b266d4d5719146cfeaf400d Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 12 Jan 2017 10:12:07 +0100 Subject: gnu: guix: Update development snapshot. * gnu/packages/package-management.scm (guix-devel): Update to eefd042. --- gnu/packages/package-management.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 23f34cd306..673e5f0fb2 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès +;;; Copyright © 2013, 2014, 2015, 2016, 2017 Ludovic Courtès ;;; Copyright © 2015, 2017 Ricardo Wurmus ;;; ;;; This file is part of GNU Guix. @@ -224,9 +224,9 @@ the Nix package manager.") ;; ;; Note: use a very short commit id; with a longer one, the limit on ;; hash-bang lines would be exceeded while running the tests. - (let ((commit "b291b3271a025dfe41e1a7fdfadd393373b0128d")) + (let ((commit "eefd042e60d9fc1d092b44bf80ecbfe65b291e46")) (package (inherit guix-0.12.0) - (version (string-append "0.12.0-2." (string-take commit 4))) + (version (string-append "0.12.0-3." (string-take commit 4))) (source (origin (method git-fetch) (uri (git-reference @@ -236,7 +236,7 @@ the Nix package manager.") (commit commit))) (sha256 (base32 - "1hris387xn2wk4lcl20x1zyhiz96060w34xs1x13b4vmvkkvcpg4")) + "1g0042x80q73pb9y39aqbkajl4bacls5c0im9aljmjnsb80fsh8d")) (file-name (string-append "guix-" version "-checkout")))) (arguments (substitute-keyword-arguments (package-arguments guix-0.12.0) -- cgit v1.2.3 From 7bb2b10cd01a076d7d5e964ed433e62846042859 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 12 Jan 2017 14:56:52 +0100 Subject: etc: Add 'indent-package.el' script. * configure.ac: Check for 'emacs', substitute 'EMACS', and emit 'etc/indent-package.el'. * etc/indent-package.el.in: New file. * doc/contributing.texi (Formatting Code): Mention 'etc/indent-package.el'. (Submitting Patches): Likewise, and link to the above node. Co-authored-by: Alex Kost --- .gitignore | 1 + configure.ac | 5 +++++ doc/contributing.texi | 23 +++++++++++++++++++-- etc/indent-package.el.in | 53 ++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 80 insertions(+), 2 deletions(-) create mode 100755 etc/indent-package.el.in diff --git a/.gitignore b/.gitignore index b64f5ef4b0..5bcc734ac5 100644 --- a/.gitignore +++ b/.gitignore @@ -128,3 +128,4 @@ stamp-h[0-9] tmp /doc/os-config-lightweight-desktop.texi /nix/scripts/download +/etc/indent-package.el diff --git a/configure.ac b/configure.ac index 676f600111..f628fa9d0d 100644 --- a/configure.ac +++ b/configure.ac @@ -232,6 +232,10 @@ AM_MISSING_PROG([DOT], [dot]) dnl Manual pages. AM_MISSING_PROG([HELP2MAN], [help2man]) +dnl Emacs (optional), for 'etc/indent-package.el'. +AC_PATH_PROG([EMACS], [emacs], [/usr/bin/emacs]) +AC_SUBST([EMACS]) + AC_CONFIG_FILES([Makefile po/guix/Makefile.in po/packages/Makefile.in @@ -241,5 +245,6 @@ AC_CONFIG_FILES([scripts/guix], [chmod +x scripts/guix]) AC_CONFIG_FILES([test-env:build-aux/test-env.in], [chmod +x test-env]) AC_CONFIG_FILES([pre-inst-env:build-aux/pre-inst-env.in], [chmod +x pre-inst-env]) +AC_CONFIG_FILES([etc/indent-package.el], [chmod +x etc/indent-package.el]) AC_OUTPUT diff --git a/doc/contributing.texi b/doc/contributing.texi index 24db9a89e6..9fc1eb54d8 100644 --- a/doc/contributing.texi +++ b/doc/contributing.texi @@ -237,6 +237,8 @@ especially when matching lists. @node Formatting Code @subsection Formatting Code +@cindex formatting code +@cindex coding style When writing Scheme code, we follow common wisdom among Scheme programmers. In general, we follow the @url{http://mumble.net/~campbell/scheme/style.txt, Riastradh's Lisp @@ -246,8 +248,20 @@ please do read it. Some special forms introduced in Guix, such as the @code{substitute*} macro, have special indentation rules. These are defined in the -@file{.dir-locals.el} file, which Emacs automatically uses. If you do -not use Emacs, please make sure to let your editor know the rules. +@file{.dir-locals.el} file, which Emacs automatically uses. + +@cindex indentation, of code +@cindex formatting, of code +If you do not use Emacs, please make sure to let your editor knows these +rules. To automatically indent a package definition, you can also run: + +@example +./etc/indent-package.el gnu/packages/@var{file}.scm @var{package} +@end example + +@noindent +This automatically indents the definition of @var{package} in +@file{gnu/packages/@var{file}.scm} by running Emacs in batch mode. We require all top-level procedures to carry a docstring. This requirement can be relaxed for simple private procedures in the @@ -358,6 +372,11 @@ Bundling unrelated changes together makes reviewing harder and slower. Examples of unrelated changes include the addition of several packages, or a package update along with fixes to that package. +@item +Please follow our code formatting rules, possibly running the +@command{etc/indent-package.el} script to do that automatically for you +(@pxref{Formatting Code}). + @end enumerate When posting a patch to the mailing list, use @samp{[PATCH] @dots{}} as diff --git a/etc/indent-package.el.in b/etc/indent-package.el.in new file mode 100755 index 0000000000..3188809f0b --- /dev/null +++ b/etc/indent-package.el.in @@ -0,0 +1,53 @@ +#!@EMACS@ --script +;;; indent-package.el --- Run Emacs to indent a package definition. + +;; Copyright © 2017 Alex Kost + +;; 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 this program. If not, see . + +;;; Commentary: + +;; This scripts indents the given package definition in the specified file +;; using Emacs. + +;;; Code: + +;; Load Scheme indentation rules from the current directory. +(with-temp-buffer + (scheme-mode) + (let ((default-directory (file-name-as-directory ".")) + (enable-local-variables :all)) + (hack-dir-local-variables) + (hack-local-variables-apply))) + +(pcase command-line-args-left + (`(,file-name ,package-name) + (find-file file-name) + (goto-char (point-min)) + (if (re-search-forward (concat "^(define\\(-public\\) +" + package-name) + nil t) + (let ((indent-tabs-mode nil)) + (beginning-of-defun) + (indent-sexp) + (save-buffer) + (message "Done!")) + (error "Package '%s' not found in '%s'" + package-name file-name))) + (x + (error "Usage: indent-package.el FILE PACKAGE"))) + +;;; indent-package.el ends here -- cgit v1.2.3 From 409c5733224f714096d0e2a665b85d64c96c7088 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 12 Jan 2017 14:59:36 +0100 Subject: build: Remove reference to 'doc/emacs.texi'. This is a followup to deb6276dda81a69da38e842d269c5370a28fa5cf. * doc/local.mk (EXTRA_DIST): Remove 'emacs.texi'. --- doc/local.mk | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/doc/local.mk b/doc/local.mk index 64bd2a5169..dc48fc22bf 100644 --- a/doc/local.mk +++ b/doc/local.mk @@ -1,6 +1,6 @@ # GNU Guix --- Functional package management for GNU # Copyright © 2016 Eric Bavier -# Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès +# Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès # Copyright © 2013 Andreas Enge # Copyright © 2016 Taylan Ulrich Bayırlı/Kammer # Copyright © 2016 Mathieu Lirzin @@ -37,7 +37,6 @@ DOT_VECTOR_GRAPHICS = \ EXTRA_DIST += \ %D%/htmlxref.cnf \ %D%/contributing.texi \ - %D%/emacs.texi \ %D%/fdl-1.3.texi \ $(DOT_FILES) \ $(DOT_VECTOR_GRAPHICS) \ -- cgit v1.2.3 From ac1f1e4e0229bb9f2a72af1d9b529dda63e862e1 Mon Sep 17 00:00:00 2001 From: Roel Janssen Date: Thu, 12 Jan 2017 15:14:04 +0100 Subject: gnu: Add r-ggthemes. * gnu/packages/statistics.scm (r-ggthemes): New variable. --- gnu/packages/statistics.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 40a511b6ed..db1a6871ad 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -3954,6 +3954,31 @@ such that the arrangement of points within a category reflects the density of data at that region, and avoids over-plotting.") (license license:gpl2+))) +(define-public r-ggthemes + (package + (name "r-ggthemes") + (version "3.3.0") + (source (origin + (method url-fetch) + (uri (cran-uri "ggthemes" version)) + (sha256 + (base32 + "1qdxg2siwsiq32fmgcxn4vihgxad9v8q0aqigl7a94c26bwxs7y2")))) + (build-system r-build-system) + (propagated-inputs + `(("r-assertthat" ,r-assertthat) + ("r-colorspace" ,r-colorspace) + ("r-ggplot2" ,r-ggplot2) + ("r-scales" ,r-scales))) + (home-page "https://cran.rstudio.com/web/packages/ggthemes") + (synopsis "Extra themes, scales and geoms for @code{ggplot2}") + (description "This package provides extra themes and scales for +@code{ggplot2} that replicate the look of plots by Edward Tufte and +Stephen Few in Fivethirtyeight, The Economist, Stata, Excel, and The +Wall Street Journal, among others. This package also provides +@code{geoms} for Tufte's box plot and range frame.") + (license license:gpl2))) + (define-public r-statmod (package (name "r-statmod") -- cgit v1.2.3 From ff264536019bb2ffa10e10997a4b89e964d25298 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Tue, 10 Jan 2017 02:17:06 +0100 Subject: gnu: ghc-quickcheck: Update to 2.8.2. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/haskell.scm (ghc-quickcheck): Update to 2.8.2. Signed-off-by: Ludovic Courtès --- gnu/packages/haskell.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 8f8e2f5d5e..e0202c8c2b 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -3052,7 +3052,7 @@ use HUnit assertions as QuickCheck properties.") (define-public ghc-quickcheck (package (name "ghc-quickcheck") - (version "2.8.1") + (version "2.8.2") (outputs '("out" "doc")) (source (origin @@ -3063,7 +3063,7 @@ use HUnit assertions as QuickCheck properties.") ".tar.gz")) (sha256 (base32 - "0fvnfl30fxmj5q920l13641ar896d53z0z6z66m7c1366lvalwvh")))) + "1ai6k5v0bibaxq8xffcblc6rwmmk6gf8vjyd9p2h3y6vwbhlvilq")))) (build-system haskell-build-system) (arguments `(#:tests? #f ; FIXME: currently missing libraries used for tests. -- cgit v1.2.3 From 90762815292f3c85e866c949571bd416c3f09353 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Tue, 10 Jan 2017 02:20:49 +0100 Subject: gnu: Add ghc-wave. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/haskell.scm (ghc-wave): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/haskell.scm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index e0202c8c2b..b64486b45a 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -8133,4 +8133,33 @@ Rust syntax. It is intended to be useful for two different purposes: @end enumerate\n") (license license:gpl2+)))) +(define-public ghc-wave + (package + (name "ghc-wave") + (version "0.1.4") + (source (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/wave/wave-" + version + ".tar.gz")) + (sha256 + (base32 + "1g5nmqfk6p25v9ismwz4i66ay91bd1qh39xwj0hm4z6a5mw8frk8")))) + (build-system haskell-build-system) + (inputs + `(("ghc-cereal" ,ghc-cereal) + ("ghc-data-default-class" + ,ghc-data-default-class) + ("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-temporary" ,ghc-temporary))) + (native-inputs + `(("hspec-discover" ,hspec-discover) + ("ghc-hspec" ,ghc-hspec))) + (home-page "https://github.com/mrkkrp/wave") + (synopsis "Work with WAVE and RF64 files in Haskell") + (description "This package allows you to work with WAVE and RF64 +files in Haskell.") + (license license:bsd-3))) + ;;; haskell.scm ends here -- cgit v1.2.3 From 35c99a1fa087afd05a1014fa5939e05cbb56dfc3 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Tue, 10 Jan 2017 02:30:23 +0100 Subject: gnu: ghc-semigroups: Update to 0.18.2. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/haskell.scm (ghc-semigroups): Update to 0.18.2. Signed-off-by: Ludovic Courtès --- gnu/packages/haskell.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index b64486b45a..b26234d405 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -4573,7 +4573,7 @@ just a @code{Semigroup} are added.") (define-public ghc-semigroups (package (name "ghc-semigroups") - (version "0.17.0.1") + (version "0.18.2") (source (origin (method url-fetch) @@ -4583,7 +4583,7 @@ just a @code{Semigroup} are added.") ".tar.gz")) (sha256 (base32 - "0gvpfi7s6ys4qha3y9a1zl1a15gf9cgg33wjb94ghg82ivcxnc3r")))) + "1r6hsn3am3dpf4rprrj4m04d9318v9iq02bin0pl29dg4a3gzjax")))) (build-system haskell-build-system) (inputs `(("ghc-nats" ,ghc-nats) -- cgit v1.2.3 From 67cadaca4746f847fbbea5ef69f6cc65d1eb3acc Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Tue, 10 Jan 2017 07:24:01 +0000 Subject: services: Add 'redis-service-type'. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/services/database.scm (): New record type. (%redis-accounts, redis-service-type): New variables. (default-redis.conf, redis-activation, redis-shepherd-service): New procedures. * doc/guix.texi (Database Services): Document the new redis service. Signed-off-by: Ludovic Courtès --- doc/guix.texi | 24 ++++++++++++++ gnu/services/databases.scm | 81 +++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 104 insertions(+), 1 deletion(-) diff --git a/doc/guix.texi b/doc/guix.texi index 086895996f..c495e39f42 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -10331,6 +10331,30 @@ TCP port on which the database server listens for incoming connections. @end table @end deftp +@defvr {Scheme Variable} redis-service-type +This is the service type for the @uref{https://redis.io/, Redis} +key/value store, whose value is a @code{redis-configuration} object. +@end defvr + +@deftp {Data Type} redis-configuration +Data type representing the configuration of redis. + +@table @asis +@item @code{redis} (default: @code{redis}) +The Redis package to use. + +@item @code{bind} (default: @code{"127.0.0.1"}) +Network interface on which to listen. + +@item @code{port} (default: @code{6379}) +Port on which to accept connections on, a value of 0 will disable +listining on a TCP socket. + +@item @code{working-directory} (default: @code{"/var/lib/redis"}) +Directory in which to store the database and related files. +@end table +@end deftp + @node Mail Services @subsubsection Mail Services diff --git a/gnu/services/databases.scm b/gnu/services/databases.scm index d88c839f7d..3ecc8aff78 100644 --- a/gnu/services/databases.scm +++ b/gnu/services/databases.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2015 David Thompson ;;; Copyright © 2015, 2016 Ludovic Courtès ;;; Copyright © 2016 Leo Famulari +;;; Copyright © 2017 Christopher Baines ;;; ;;; This file is part of GNU Guix. ;;; @@ -35,7 +36,11 @@ mysql-service mysql-service-type mysql-configuration - mysql-configuration?)) + mysql-configuration? + + redis-configuration + redis-configuration? + redis-service-type)) ;;; Commentary: ;;; @@ -287,3 +292,77 @@ database server. The optional @var{config} argument specifies the configuration for @command{mysqld}, which should be a @code{} object." (service mysql-service-type config)) + + +;;; +;;; Redis +;;; + +(define-record-type* + redis-configuration make-redis-configuration + redis-configuration? + (redis redis-configuration-redis ; + (default redis)) + (bind redis-configuration-bind + (default "127.0.0.1")) + (port redis-configuration-port + (default 6379)) + (working-directory redis-configuration-working-directory + (default "/var/lib/redis")) + (config-file redis-configuration-config-file + (default #f))) + +(define (default-redis.conf bind port working-directory) + (mixed-text-file "redis.conf" + "bind " bind "\n" + "port " (number->string port) "\n" + "dir " working-directory "\n" + "daemonize no\n")) + +(define %redis-accounts + (list (user-group (name "redis") (system? #t)) + (user-account + (name "redis") + (group "redis") + (system? #t) + (comment "Redis server user") + (home-directory "/var/empty") + (shell (file-append shadow "/sbin/nologin"))))) + +(define redis-activation + (match-lambda + (($ redis bind port working-directory config-file) + #~(begin + (use-modules (guix build utils) + (ice-9 match)) + + (let ((user (getpwnam "redis"))) + (mkdir-p #$working-directory) + (chown #$working-directory (passwd:uid user) (passwd:gid user))))))) + +(define redis-shepherd-service + (match-lambda + (($ redis bind port working-directory config-file) + (let ((config-file + (or config-file + (default-redis.conf bind port working-directory)))) + (list (shepherd-service + (provision '(redis)) + (documentation "Run the Redis daemon.") + (requirement '(user-processes syslogd)) + (start #~(make-forkexec-constructor + '(#$(file-append redis "/bin/redis-server") + #$config-file) + #:user "redis" + #:group "redis")) + (stop #~(make-kill-destructor)))))))) + +(define redis-service-type + (service-type (name 'redis) + (extensions + (list (service-extension shepherd-root-service-type + redis-shepherd-service) + (service-extension activation-service-type + redis-activation) + (service-extension account-service-type + (const %redis-accounts)))))) -- cgit v1.2.3 From 5dc8dd07b0c966842bfb984482df40892dc1c2ae Mon Sep 17 00:00:00 2001 From: John Darrington Date: Wed, 11 Jan 2017 21:11:00 +0100 Subject: gnu: xfontsel: Simplify definition. * gnu/packages/xorg.scm (%app-defaults-dir): New variable. (xfontsel): Remove wrapper. --- gnu/packages/xorg.scm | 23 +++++------------------ 1 file changed, 5 insertions(+), 18 deletions(-) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index e6ee0c06a2..556b9f4baf 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -10,7 +10,7 @@ ;;; Copyright © 2016 ng0 ;;; Copyright © 2016 Alex Kost ;;; Copyright © 2016 David Craven -;;; Copyright © 2016 John Darrington +;;; Copyright © 2016, 2017 John Darrington ;;; ;;; This file is part of GNU Guix. ;;; @@ -335,6 +335,7 @@ provided.") (license (license:x11-style "file://dri3proto.h" "See 'dri3proto.h' in the distribution.")))) +(define %app-defaults-dir "/lib/X11/app-defaults") (define-public editres (package @@ -3982,23 +3983,9 @@ protocol.") "1grir464hy52a71r3mpm9mzvkf7nwr3vk0b1vc27pd3gp588a38p")))) (build-system gnu-build-system) (arguments - ;; By default, it tries to install XFontSel file in - ;; "/gnu/store//share/X11/app-defaults": it defines this - ;; directory from 'libxt' (using 'pkg-config'). To put this file - ;; inside output dir and to use it properly, we need to configure - ;; --with-appdefaultdir and to wrap 'xfontsel' binary. - (let ((app-defaults-dir "/share/X11/app-defaults")) - `(#:configure-flags - (list (string-append "--with-appdefaultdir=" - %output ,app-defaults-dir)) - #:phases - (modify-phases %standard-phases - (add-after 'install 'wrap-xfontsel - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (wrap-program (string-append out "/bin/xfontsel") - `("XAPPLRESDIR" = - (,(string-append out ,app-defaults-dir))))))))))) + `(#:configure-flags + (list (string-append "--with-appdefaultdir=" + %output ,%app-defaults-dir)))) (inputs `(("libx11" ,libx11) ("libxaw" ,libxaw) -- cgit v1.2.3 From 73ae4e69a1abc9008a6986864021c6584eaf4a21 Mon Sep 17 00:00:00 2001 From: John Darrington Date: Wed, 11 Jan 2017 21:12:54 +0100 Subject: gnu: editres: Use %app-defaults-dir. * gnu/packages/xorg.scm (editres): Replace string literal with %app-defaults-dir. --- gnu/packages/xorg.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index 556b9f4baf..16eb344d87 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -355,7 +355,7 @@ provided.") (arguments `(#:configure-flags (list (string-append "--with-appdefaultdir=" - %output "/lib/X11/app-defaults")))) + %output ,%app-defaults-dir)))) (inputs `(("libxaw" ,libxaw) ("libxmu" ,libxmu) -- cgit v1.2.3 From 5aae77e44b6a4cc905ad41e32299260458453470 Mon Sep 17 00:00:00 2001 From: John Darrington Date: Wed, 11 Jan 2017 21:27:50 +0100 Subject: gnu: xfd: Remove wrapper. * gnu/packages/xorg.scm (xfd): Remove wrapper. --- gnu/packages/xorg.scm | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index 16eb344d87..45ff4c97ea 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -4015,19 +4015,9 @@ Font Description (XLFD) full name for a font.") "0n97iqqap9wyxjan2n520vh4rrf5bc0apsw2k9py94dqzci258y1")))) (build-system gnu-build-system) (arguments - ;; The same 'app-defaults' problem as with 'xfontsel' package. - (let ((app-defaults-dir "/share/X11/app-defaults")) `(#:configure-flags (list (string-append "--with-appdefaultdir=" - %output ,app-defaults-dir)) - #:phases - (modify-phases %standard-phases - (add-after 'install 'wrap-xfd - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (wrap-program (string-append out "/bin/xfd") - `("XAPPLRESDIR" = - (,(string-append out ,app-defaults-dir))))))))))) + %output ,%app-defaults-dir)))) (inputs `(("fontconfig" ,fontconfig) ("libx11" ,libx11) -- cgit v1.2.3 From 0eefac0f2f2c7b57471d352abfad7fa306a69df2 Mon Sep 17 00:00:00 2001 From: John Darrington Date: Wed, 11 Jan 2017 21:45:20 +0100 Subject: gnu: xfig: Use modify-phases. * gnu/packages/xfig.scm (xfig): Use modify-phases. --- gnu/packages/xfig.scm | 159 +++++++++++++++++++++++++------------------------- 1 file changed, 79 insertions(+), 80 deletions(-) diff --git a/gnu/packages/xfig.scm b/gnu/packages/xfig.scm index 6436e52ad6..27d9cf9ab3 100644 --- a/gnu/packages/xfig.scm +++ b/gnu/packages/xfig.scm @@ -34,12 +34,12 @@ (version "3.2.5c") (source (origin - (method url-fetch) - (uri (string-append "mirror://sourceforge/mcj/mcj-source/xfig." - version ".full.tar.gz")) - (sha256 - (base32 - "1yd1jclvw5w3ja4jjzr1ysbn8iklh88wq84jn9d1gavrbfbqyqpa")))) + (method url-fetch) + (uri (string-append "mirror://sourceforge/mcj/mcj-source/xfig." + version ".full.tar.gz")) + (sha256 + (base32 + "1yd1jclvw5w3ja4jjzr1ysbn8iklh88wq84jn9d1gavrbfbqyqpa")))) (build-system gnu-build-system) (native-inputs `(("imake" ,imake) @@ -59,51 +59,51 @@ (arguments `(#:tests? #f #:phases - (alist-replace - 'configure - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((imake (assoc-ref inputs "imake")) - (out (assoc-ref outputs "out"))) - (substitute* "Imakefile" - (("XCOMM (BINDIR = )[[:graph:]]*" _ front) - (string-append front out "/bin")) - (("(PNGLIBDIR = )[[:graph:]]*" _ front) - (string-append front (assoc-ref inputs "libpng") "/lib")) - (("(PNGINC = -I)[[:graph:]]*" _ front) - (string-append front (assoc-ref inputs "libpng") "/include")) - (("(JPEGLIBDIR = )[[:graph:]]*" _ front) - (string-append front (assoc-ref inputs "libjpeg") "/lib")) - (("(JPEGINC = -I)[[:graph:]]*" _ front) - (string-append front (assoc-ref inputs "libjpeg") "/include")) - (("(ZLIBDIR = )[[:graph:]]*" _ front) - (string-append front (assoc-ref inputs "zlib") "/lib")) - (("(XPMLIBDIR = )[[:graph:]]*" _ front) - (string-append front (assoc-ref inputs "libxpm") "/lib")) - (("(XPMINC = -I)[[:graph:]]*" _ front) - (string-append front (assoc-ref inputs "libxpm") "/include")) - (("(XFIGLIBDIR = )[[:graph:]]*" _ front) - (string-append front out "/lib")) - (("(XFIGDOCDIR = )[[:graph:]]*" _ front) - (string-append front out "/share/doc")) - (("XCOMM USEINLINE") "USEINLINE")) - ;; The -a argument is required in order to pick up the correct paths - ;; to several X header files. - (zero? (system* "xmkmf" "-a")) - ;; Reset some variables that are inherited from imake templates - (substitute* "Makefile" - ;; These imake variables somehow remain undefined - (("DefaultGcc2[[:graph:]]*Opt") "-O2") - ;; Reset a few variable defaults that are set in imake templates - ((imake) out) - (("(MANPATH = )[[:graph:]]*" _ front) - (string-append front out "/share/man")) - (("(CONFDIR = )([[:graph:]]*)" _ front default) - (string-append front out default))))) - (alist-cons-after - 'install 'install/libs - (lambda _ - (zero? (system* "make" "install.libs"))) - (alist-cons-after + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((imake (assoc-ref inputs "imake")) + (out (assoc-ref outputs "out"))) + (substitute* "Imakefile" + (("XCOMM (BINDIR = )[[:graph:]]*" _ front) + (string-append front out "/bin")) + (("(PNGLIBDIR = )[[:graph:]]*" _ front) + (string-append front (assoc-ref inputs "libpng") "/lib")) + (("(PNGINC = -I)[[:graph:]]*" _ front) + (string-append front (assoc-ref inputs "libpng") "/include")) + (("(JPEGLIBDIR = )[[:graph:]]*" _ front) + (string-append front (assoc-ref inputs "libjpeg") "/lib")) + (("(JPEGINC = -I)[[:graph:]]*" _ front) + (string-append front (assoc-ref inputs "libjpeg") "/include")) + (("(ZLIBDIR = )[[:graph:]]*" _ front) + (string-append front (assoc-ref inputs "zlib") "/lib")) + (("(XPMLIBDIR = )[[:graph:]]*" _ front) + (string-append front (assoc-ref inputs "libxpm") "/lib")) + (("(XPMINC = -I)[[:graph:]]*" _ front) + (string-append front (assoc-ref inputs "libxpm") "/include")) + (("(XFIGLIBDIR = )[[:graph:]]*" _ front) + (string-append front out "/lib")) + (("(XFIGDOCDIR = )[[:graph:]]*" _ front) + (string-append front out "/share/doc")) + (("XCOMM USEINLINE") "USEINLINE")) + ;; The -a argument is required in order to pick up the correct paths + ;; to several X header files. + (zero? (system* "xmkmf" "-a")) + ;; Reset some variables that are inherited from imake templates + (substitute* "Makefile" + ;; These imake variables somehow remain undefined + (("DefaultGcc2[[:graph:]]*Opt") "-O2") + ;; Reset a few variable defaults that are set in imake templates + ((imake) out) + (("(MANPATH = )[[:graph:]]*" _ front) + (string-append front out "/share/man")) + (("(CONFDIR = )([[:graph:]]*)" _ front default) + (string-append front out default)))))) + (add-after + 'install 'install/libs + (lambda _ + (zero? (system* "make" "install.libs")))) + (add-after 'install 'install/doc (lambda _ (begin @@ -118,15 +118,14 @@ (dump-port in out) (close-pipe in) (close-port out))) - (zero? (system* "make" "install.doc")))) - (alist-cons-after - 'install 'wrap-xfig - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (wrap-program (string-append out "/bin/xfig") - `("XAPPLRESDIR" suffix - (,(string-append out "/etc/X11/app-defaults")))))) - %standard-phases)))))) + (zero? (system* "make" "install.doc"))))) + (add-after + 'install 'wrap-xfig + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (wrap-program (string-append out "/bin/xfig") + `("XAPPLRESDIR" suffix + (,(string-append out "/etc/X11/app-defaults")))))))))) (home-page "http://xfig.org/") (synopsis "Interactive drawing tool") (description @@ -144,12 +143,12 @@ selected in various ways. For text, 35 fonts are available.") (version "3.2.5e") (source (origin - (method url-fetch) - (uri (string-append "mirror://sourceforge/mcj/mcj-source/transfig." - version ".tar.gz")) - (sha256 - (base32 - "0i3p7qmg2w8qrad3pn42b0miwarql7yy0gpd49b1bpal6bqsiicf")))) + (method url-fetch) + (uri (string-append "mirror://sourceforge/mcj/mcj-source/transfig." + version ".tar.gz")) + (sha256 + (base32 + "0i3p7qmg2w8qrad3pn42b0miwarql7yy0gpd49b1bpal6bqsiicf")))) (build-system gnu-build-system) (native-inputs `(("imake" ,imake) @@ -183,20 +182,20 @@ selected in various ways. For text, 35 fonts are available.") (("(XPMINC = -I)[[:graph:]]*" _ front) (string-append front (assoc-ref inputs "libxpm") "/include/X11")) (("/usr/local/lib/fig2dev") (string-append out "/lib"))) - ;; The -a argument is required in order to pick up the correct paths - ;; to several X header files. - (zero? (system* "xmkmf" "-a")) - (substitute* '("Makefile" - "fig2dev/Makefile" - "transfig/Makefile") - ;; These imake variables somehow remain undefined - (("DefaultGcc2[[:graph:]]*Opt") "-O2") - ;; Reset a few variable defaults that are set in imake templates - ((imake) out) - (("(MANPATH = )[[:graph:]]*" _ front) - (string-append front out "/share/man")) - (("(CONFDIR = )([[:graph:]]*)" _ front default) - (string-append front out default))))) + ;; The -a argument is required in order to pick up the correct paths + ;; to several X header files. + (zero? (system* "xmkmf" "-a")) + (substitute* '("Makefile" + "fig2dev/Makefile" + "transfig/Makefile") + ;; These imake variables somehow remain undefined + (("DefaultGcc2[[:graph:]]*Opt") "-O2") + ;; Reset a few variable defaults that are set in imake templates + ((imake) out) + (("(MANPATH = )[[:graph:]]*" _ front) + (string-append front out "/share/man")) + (("(CONFDIR = )([[:graph:]]*)" _ front default) + (string-append front out default))))) (alist-cons-after 'install 'install/doc (lambda _ -- cgit v1.2.3 From 97fedab17d4acfa05969ddd9faf98a11d27a4743 Mon Sep 17 00:00:00 2001 From: John Darrington Date: Thu, 12 Jan 2017 10:19:12 +0100 Subject: gnu: xfig: Remove wrapper and clean up implementation. * gnu/packages/xorg.scm (%app-defaults-dir): Make public. * gnu/packages/xfig.scm (xfig)[attributes]: Remove wrapper and set the XAPPLOADDIR in the Imakefile instead. --- gnu/packages/xfig.scm | 14 +++++--------- gnu/packages/xorg.scm | 2 +- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/gnu/packages/xfig.scm b/gnu/packages/xfig.scm index 27d9cf9ab3..ad1b432abd 100644 --- a/gnu/packages/xfig.scm +++ b/gnu/packages/xfig.scm @@ -65,6 +65,8 @@ (let ((imake (assoc-ref inputs "imake")) (out (assoc-ref outputs "out"))) (substitute* "Imakefile" + (("XCOMM XAPPLOADDIR = /home/user/xfig *") + (string-append "XAPPLOADDIR = " out %app-defaults-dir)) (("XCOMM (BINDIR = )[[:graph:]]*" _ front) (string-append front out "/bin")) (("(PNGLIBDIR = )[[:graph:]]*" _ front) @@ -98,7 +100,8 @@ (("(MANPATH = )[[:graph:]]*" _ front) (string-append front out "/share/man")) (("(CONFDIR = )([[:graph:]]*)" _ front default) - (string-append front out default)))))) + (string-append front out default)))) + #t)) (add-after 'install 'install/libs (lambda _ @@ -118,14 +121,7 @@ (dump-port in out) (close-pipe in) (close-port out))) - (zero? (system* "make" "install.doc"))))) - (add-after - 'install 'wrap-xfig - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (wrap-program (string-append out "/bin/xfig") - `("XAPPLRESDIR" suffix - (,(string-append out "/etc/X11/app-defaults")))))))))) + (zero? (system* "make" "install.doc")))))))) (home-page "http://xfig.org/") (synopsis "Interactive drawing tool") (description diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index 45ff4c97ea..fe607e2632 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -335,7 +335,7 @@ provided.") (license (license:x11-style "file://dri3proto.h" "See 'dri3proto.h' in the distribution.")))) -(define %app-defaults-dir "/lib/X11/app-defaults") +(define-public %app-defaults-dir "/lib/X11/app-defaults") (define-public editres (package -- cgit v1.2.3 From cd7caa3ee24b9698ebb26077a42bfcbe9288d112 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 11 Jan 2017 20:36:31 +0100 Subject: gnu: mcelog: Update to 147. * gnu/packages/linux.scm (mcelog): Update to 147. --- gnu/packages/linux.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index dc0fc079b7..5b2928aa1d 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -7,7 +7,7 @@ ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer ;;; Copyright © 2015, 2016 Efraim Flashner ;;; Copyright © 2016 Christopher Allan Webber -;;; Copyright © 2016 Tobias Geerinckx-Rice +;;; Copyright © 2016, 2017 Tobias Geerinckx-Rice ;;; Copyright © 2016 Alex Kost ;;; Copyright © 2016 Raymond Nicholson ;;; Copyright © 2016 Mathieu Lirzin @@ -3116,14 +3116,14 @@ the default @code{nsswitch} and the experimental @code{umich_ldap}.") (define-public mcelog (package (name "mcelog") - (version "146") + (version "147") (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 - "0jjx4q1mfa380319cqz86nw5wv6jnbpvq2r8n0dyh87mhvrgb4wi")) + "10xxmqpd348ifbs7w8j0m53agp28r6imv237ha3kmhp632hmyf1d")) (file-name (string-append name "-" version ".tar.gz")) (modules '((guix build utils))) (snippet -- cgit v1.2.3 From d9cf11e0f00c689f43560ecb893b6cf22c48b2e0 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 11 Jan 2017 21:05:46 +0100 Subject: gnu: miniupnpc: Update to 2.0.20161216. * gnu/packages/upnp.scm (miniupnpc): Update to 2.0.20161216. [source]: Use HTTPS. --- gnu/packages/upnp.scm | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/gnu/packages/upnp.scm b/gnu/packages/upnp.scm index f680a52881..9be9741202 100644 --- a/gnu/packages/upnp.scm +++ b/gnu/packages/upnp.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 Sree Harsha Totakura -;;; Copyright © 2016 Tobias Geerinckx-Rice +;;; Copyright © 2016, 2017 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. ;;; @@ -28,15 +28,14 @@ (define-public miniupnpc (package (name "miniupnpc") - (version "2.0") + (version "2.0.20161216") (source (origin (method url-fetch) - (uri (string-append - "http://miniupnp.tuxfamily.org/files/miniupnpc-" - version ".tar.gz")) + (uri (string-append "https://miniupnp.tuxfamily.org/files/" + name "-" version ".tar.gz")) (sha256 - (base32 "0fzrc6fs8vzb2yvk01bd3q5jkarysl7gjlyaqncy3yvfk2wcwd6l")))) + (base32 "0gpxva9jkjvqwawff5y51r6bmsmdhixl3i5bmzlqsqpwsq449q81")))) (build-system gnu-build-system) (native-inputs `(("python" ,python-2))) -- cgit v1.2.3 From 9a443cf90d973dd190acb0077d84d5a5844be65f Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Thu, 12 Jan 2017 11:50:29 +0100 Subject: gnu: xonsh: Update to 0.5.2. * gnu/packages/shells.scm (xonsh): Update to 0.5.2. Signed-off-by: Marius Bakke --- gnu/packages/shells.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/shells.scm b/gnu/packages/shells.scm index 960cb1f2a2..5237e81206 100644 --- a/gnu/packages/shells.scm +++ b/gnu/packages/shells.scm @@ -299,14 +299,14 @@ ksh, and tcsh.") (define-public xonsh (package (name "xonsh") - (version "0.5.1") + (version "0.5.2") (source (origin (method url-fetch) (uri (pypi-uri "xonsh" version)) (sha256 (base32 - "1a3jkvfh1xc6aw557y8zjn498q89bapyx4dxc3md7qwrmnj9pkv3")) + "13ndyq9cal2j93qqbjyp2jn3cshiavdxsaj2qjzm6mas0gzywmf0")) (modules '((guix build utils))) (snippet `(begin -- cgit v1.2.3 From f50fff693bdfbb71fea7ac9ee7dcef0eb9fb77bc Mon Sep 17 00:00:00 2001 From: John Darrington Date: Thu, 12 Jan 2017 20:21:37 +0100 Subject: gnu: Add xmessage. * gnu/packages/xorg.scm (xmessage): New variable. --- gnu/packages/xorg.scm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index fe607e2632..ac35a8c179 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -5594,6 +5594,37 @@ user-friendly mechanism to start the X server.") Intrinsics (Xt) Library.") (license license:x11))) +(define-public xmessage + (package + (name "xmessage") + (version "1.0.4") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://xorg/individual/app/" name "-" + version + ".tar.gz")) + (sha256 + (base32 + "1jmcac1xbwplbxfl75sr6w3zqhx1khpdzlqippjsr31cjp1rjc48")))) + (build-system gnu-build-system) + (arguments + `(#:configure-flags + (list (string-append "--with-appdefaultdir=" + %output ,%app-defaults-dir)))) + (inputs + `(("libxaw" ,libxaw))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (home-page "https://www.x.org/wiki/") + (synopsis "Displays a message or query in a window") + (description + "Xmessage displays a message or query in a window. The user can click +on a button to dismiss it or can select one of several buttons +to answer a question. Xmessage can also exit after a specified time.") + (license license:x11))) + (define-public xterm (package (name "xterm") -- cgit v1.2.3 From 6ea1523ac8033c7eb353c51bef654e6934a115ec Mon Sep 17 00:00:00 2001 From: John Darrington Date: Thu, 12 Jan 2017 20:33:46 +0100 Subject: gnu: Add xmag. * gnu/packages/xorg.scm (xmag): New variable. --- gnu/packages/xorg.scm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index ac35a8c179..fbea7072b3 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -5594,6 +5594,35 @@ user-friendly mechanism to start the X server.") Intrinsics (Xt) Library.") (license license:x11))) +(define-public xmag + (package + (name "xmag") + (version "1.0.6") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://xorg/individual/app/" name "-" + version + ".tar.gz")) + (sha256 + (base32 + "19bsg5ykal458d52v0rvdx49v54vwxwqg8q36fdcsv9p2j8yri87")))) + (build-system gnu-build-system) + (arguments + `(#:configure-flags + (list (string-append "--with-appdefaultdir=" + %output ,%app-defaults-dir)))) + (inputs + `(("libxaw" ,libxaw))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (home-page "https://www.x.org/wiki/") + (synopsis "Display or capture a magnified part of a X11 screen") + (description "Xmag displays and captures a magnified snapshot of a portion +of an X11 screen.") + (license license:x11))) + (define-public xmessage (package (name "xmessage") -- cgit v1.2.3 From 60bc300680e1ed9bf7e4e8d35d0557ec4e6a3253 Mon Sep 17 00:00:00 2001 From: John Darrington Date: Thu, 12 Jan 2017 21:01:03 +0100 Subject: gnu: Add twm. * gnu/packages/xorg.scm (twm): New variable. --- gnu/packages/xorg.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index fbea7072b3..a27c431ddf 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -5335,6 +5335,36 @@ draggable titlebars and borders.") Intrinsics (Xt) Library.") (license license:x11))) +(define-public twm + (package + (name "twm") + (version "1.0.9") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://xorg/individual/app/" name "-" + version + ".tar.gz")) + (sha256 + (base32 + "1s1r00x8add3f27xjqxg6q7mwplwrb72gakbh4y6j052as25wchw")))) + (build-system gnu-build-system) + (inputs + `(("libxt" ,libxt) + ("libxmu" ,libxmu) + ("libxext" ,libxext) + ("xproto" ,xproto))) + (native-inputs + `(("bison" ,bison) + ("pkg-config" ,pkg-config))) + (home-page "https://www.x.org/wiki/") + (synopsis "Tab Window Manager for the X Window System") + (description "Twm is a window manager for the X Window System. +It provides titlebars, shaped windows, several forms of icon management, +user-defined macro functions, click-to-type and pointer-driven +keyboard focus, and user-specified key and pointer button bindings.") + (license license:x11))) (define-public xcb-util (package -- cgit v1.2.3 From 08b98ae8d3a8a5f74f0c7f77502e8be790487c29 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Thu, 12 Jan 2017 16:28:27 -0500 Subject: gnu: linux-libre@4.4: Update to 4.4.42. * gnu/packages/linux.scm (linux-libre-4.4): Update to 4.4.42. --- 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 5b2928aa1d..e7905ba08e 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -339,8 +339,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.41" - "1kl1m0riq90xldcf7lvjzdyz57w1wmnm93j0r0v8xz7n66m5nkp8" + (make-linux-libre "4.4.42" + "1jd43yvycizgqdmwp9rpj7gpjy37mah8jlqaiskjb0hivyk495yz" %intel-compatible-systems #:configuration-file kernel-config)) -- cgit v1.2.3 From 4cdff6ae37878588a550e5969381d531c728e2fd Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 12 Jan 2017 23:14:58 +0100 Subject: challenge: Use a warning when substitutes are lacking. * guix/scripts/challenge.scm (discrepancies): Use 'warning' instead of 'leave'. --- guix/scripts/challenge.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/guix/scripts/challenge.scm b/guix/scripts/challenge.scm index 590d8f1099..9ab4fbe2a9 100644 --- a/guix/scripts/challenge.scm +++ b/guix/scripts/challenge.scm @@ -118,7 +118,7 @@ taken since we do not import the archives." (select-reference item narinfos urls) (narinfo-hash->sha256 (narinfo-hash first)))))) (() - (leave (_ "no substitutes for '~a'~%") item)))) + (warning (_ "no substitutes for '~a'; cannot conclude~%") item)))) (mlet* %store-monad ((local (mapm %store-monad query-locally-built-hash items)) -- cgit v1.2.3 From 5bb9dbc0a89746943cb54c2b940c58fbaeda7fdf Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 12 Jan 2017 22:30:38 +0100 Subject: gnu: nano: Update to 2.7.4. * gnu/packages/nano.scm (nano): Update to 2.7.4. --- gnu/packages/nano.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/nano.scm b/gnu/packages/nano.scm index 68444771a0..5fafe78e2e 100644 --- a/gnu/packages/nano.scm +++ b/gnu/packages/nano.scm @@ -29,7 +29,7 @@ (define-public nano (package (name "nano") - (version "2.7.3") + (version "2.7.4") (source (origin (method url-fetch) @@ -37,7 +37,7 @@ version ".tar.gz")) (sha256 (base32 - "123si2acvfhnl2kip08bqm413yv36zy3pmj75ibkn7q59mcx8x1m")))) + "135wzlv77p9za8679j2jpfkpvainvyagrhkdxngp71ynabgc5zr3")))) (build-system gnu-build-system) (inputs `(("gettext" ,gettext-minimal) -- cgit v1.2.3 From 843bdfb77e711ba229c28d99f657d392eacfeb2c Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Fri, 30 Dec 2016 22:57:53 +0200 Subject: gnu: Add qtdeclarative-render2d. * gnu/packages/qt.scm (qtdeclarative-render2d): New variable. --- gnu/packages/qt.scm | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index df6fe168ad..3e954e9850 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2013, 2014, 2015 Andreas Enge ;;; Copyright © 2015 Sou Bunnbu ;;; Copyright © 2015 Ludovic Courtès -;;; Copyright © 2015, 2016 Efraim Flashner +;;; Copyright © 2015, 2016, 2017 Efraim Flashner ;;; Copyright © 2016, 2017 ng0 ;;; Copyright © 2016 Thomas Danckaert ;;; @@ -910,6 +910,27 @@ developers using C++ or QML, a CSS & JavaScript like language.") `(("qtbase" ,qtbase) ("qtdeclarative" ,qtdeclarative))))) +(define-public qtdeclarative-render2d + (package (inherit qtsvg) + (name "qtdeclarative-render2d") + (version "5.7.1") + (source (origin + (method url-fetch) + (uri (string-append "https://download.qt.io/official_releases/qt/" + (version-major+minor version) "/" version + "/submodules/" name "-opensource-src-" + version ".tar.xz")) + (sha256 + (base32 + "0zwch9vn17f3bpy300jcfxx6cx9qymk5j7khx0x9k1xqid4166c3")) + (modules '((guix build utils))) + (snippet + '(delete-file-recursively "tools/opengldummy/3rdparty")))) + (native-inputs `()) + (inputs + `(("qtbase" ,qtbase) + ("qtdeclarative" ,qtdeclarative))))) + (define-public python-sip (package (name "python-sip") -- cgit v1.2.3 From a98ffab5caacc0638dc562e8e82638bdea57dd95 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 5 Jan 2017 20:44:27 +0200 Subject: gnu: Add qtserialbus. * gnu/packages/qt.scm (qtserialbus): New variable. --- gnu/packages/qt.scm | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index 3e954e9850..9554054619 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -781,6 +781,23 @@ developers using C++ or QML, a CSS & JavaScript like language.") `(("qtbase" ,qtbase) ("eudev" ,eudev))))) +(define-public qtserialbus + (package (inherit qtsvg) + (name "qtserialbus") + (version "5.7.1") + (source (origin + (method url-fetch) + (uri (string-append "https://download.qt.io/official_releases/qt/" + (version-major+minor version) "/" version + "/submodules/" name "-opensource-src-" + version ".tar.xz")) + (sha256 + (base32 + "0mxi43l2inpbar8rmg21qjg33bv3f1ycxjgvzjf12ncnybhdnzkj")))) + (inputs + `(("qtbase" ,qtbase) + ("qtserialport" ,qtserialport))))) + (define-public qtwebchannel (package (inherit qtsvg) (name "qtwebchannel") -- cgit v1.2.3 From 51519fd3fc9f4031b0b3a39ea755f55e54f8349f Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 5 Jan 2017 23:01:45 +0200 Subject: gnu: Add qtgamepad. * gnu/packages/qt.scm (qtgamepad): New variable. --- gnu/packages/qt.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index 9554054619..ca69ed59cc 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -55,6 +55,7 @@ #:use-module (gnu packages pulseaudio) #:use-module (gnu packages python) #:use-module (gnu packages ruby) + #:use-module (gnu packages sdl) #:use-module (gnu packages tls) #:use-module (gnu packages xdisorg) #:use-module (gnu packages xorg) @@ -948,6 +949,30 @@ developers using C++ or QML, a CSS & JavaScript like language.") `(("qtbase" ,qtbase) ("qtdeclarative" ,qtdeclarative))))) +(define-public qtgamepad + (package (inherit qtsvg) + (name "qtgamepad") + (version "5.7.1") + (source (origin + (method url-fetch) + (uri (string-append "https://download.qt.io/official_releases/qt/" + (version-major+minor version) "/" version + "/submodules/" name "-opensource-src-" + version ".tar.xz")) + (sha256 + (base32 + "10lijbsg9xx5ddbbjymdgl41nxz99yn1qgiww2kkggxwwdjj2axv")))) + (native-inputs + `(("perl" ,perl) + ("pkg-config" ,pkg-config))) + (inputs + `(("fontconfig" ,fontconfig) + ("freetype" ,freetype) + ("libxrender" ,libxrender) + ("sdl2" ,sdl2) + ("qtbase" ,qtbase) + ("qtdeclarative" ,qtdeclarative))))) + (define-public python-sip (package (name "python-sip") -- cgit v1.2.3 From 56cd88fd3c289ef872bf8fad45c56a4158d7017f Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 5 Jan 2017 23:52:40 +0200 Subject: gnu: Add qtscxml. * gnu/packages/qt.scm (qtscxml): New variable. --- gnu/packages/qt.scm | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index ca69ed59cc..b9d8ac1e91 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -973,6 +973,26 @@ developers using C++ or QML, a CSS & JavaScript like language.") ("qtbase" ,qtbase) ("qtdeclarative" ,qtdeclarative))))) +(define-public qtscxml + (package (inherit qtsvg) + (name "qtscxml") + (version "5.7.1") + (source (origin + (method url-fetch) + (uri (string-append "https://download.qt.io/official_releases/qt/" + (version-major+minor version) "/" version + "/submodules/" name "-opensource-src-" + version ".tar.xz")) + (sha256 + (base32 + "135kknqdmib2cjryfmvfgv7a2qx9pyba3m7i7nkbc5d742r4mbcx")) + (modules '((guix build utils))) + (snippet + '(delete-file-recursively "tests/3rdparty")))) + (inputs + `(("qtbase" ,qtbase) + ("qtdeclarative" ,qtdeclarative))))) + (define-public python-sip (package (name "python-sip") -- cgit v1.2.3 From de5e018057e16bd78eb0160da55131143521278f Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Fri, 6 Jan 2017 00:24:54 +0200 Subject: gnu: Add qtpurchasing. * gnu/packages/qt.scm (qtpurchasing): New variable. --- gnu/packages/qt.scm | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index b9d8ac1e91..ffebcd19f5 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -993,6 +993,23 @@ developers using C++ or QML, a CSS & JavaScript like language.") `(("qtbase" ,qtbase) ("qtdeclarative" ,qtdeclarative))))) +(define-public qtpurchasing + (package (inherit qtsvg) + (name "qtpurchasing") + (version "5.7.1") + (source (origin + (method url-fetch) + (uri (string-append "https://download.qt.io/official_releases/qt/" + (version-major+minor version) "/" version + "/submodules/" name "-opensource-src-" + version ".tar.xz")) + (sha256 + (base32 + "0hkvrgafz1hx9q4yc3nskv3pd3fszghvvd5a7mj33ynf55wpb57n")))) + (inputs + `(("qtbase" ,qtbase) + ("qtdeclarative" ,qtdeclarative))))) + (define-public python-sip (package (name "python-sip") -- cgit v1.2.3 From 173b54b994bda4639b47979df3dbc92747183511 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Fri, 6 Jan 2017 10:00:26 +0200 Subject: gnu: Add qtcanvas3d. * gnu/packages/qt.scm (qtcanvas3d): New variable. --- gnu/packages/qt.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index ffebcd19f5..74839a9c5c 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -1010,6 +1010,27 @@ developers using C++ or QML, a CSS & JavaScript like language.") `(("qtbase" ,qtbase) ("qtdeclarative" ,qtdeclarative))))) +(define-public qtcanvas3d + (package (inherit qtsvg) + (name "qtcanvas3d") + (version "5.7.1") + (source (origin + (method url-fetch) + (uri (string-append "https://download.qt.io/official_releases/qt/" + (version-major+minor version) "/" version + "/submodules/" name "-opensource-src-" + version ".tar.xz")) + (sha256 + (base32 + "1d5xpq3mhjg4ipxzap7s2vnlfcd02d3yq720npv10xxp2ww0i1x8")) + (modules '((guix build utils))) + (snippet + '(delete-file-recursively "examples/canvas3d/3rdparty")))) + (native-inputs `()) + (inputs + `(("qtbase" ,qtbase) + ("qtdeclarative" ,qtdeclarative))))) + (define-public python-sip (package (name "python-sip") -- cgit v1.2.3 From 68bbe14b152788344ec184a466c4e99ca743231b Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Fri, 6 Jan 2017 14:56:26 +0200 Subject: gnu: Add qtcharts. * gnu/packages/qt.scm (qtcharts): New variable. --- gnu/packages/qt.scm | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index 74839a9c5c..b3fc8f349b 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -1031,6 +1031,23 @@ developers using C++ or QML, a CSS & JavaScript like language.") `(("qtbase" ,qtbase) ("qtdeclarative" ,qtdeclarative))))) +(define-public qtcharts + (package (inherit qtsvg) + (name "qtcharts") + (version "5.7.1") + (source (origin + (method url-fetch) + (uri (string-append "https://download.qt.io/official_releases/qt/" + (version-major+minor version) "/" version + "/submodules/" name "-opensource-src-" + version ".tar.xz")) + (sha256 + (base32 + "1qrzcddwff2hxsbxrraff16j4abah2zkra2756s1mvydj9lyxzl5")))) + (inputs + `(("qtbase" ,qtbase) + ("qtdeclarative" ,qtdeclarative))))) + (define-public python-sip (package (name "python-sip") -- cgit v1.2.3 From a69945a78da235faf3a80a12f4b281c9e596caa9 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sat, 7 Jan 2017 17:57:36 +0200 Subject: gnu: Add qtdatavis3d. * gnu/packages/qt.scm (qtdatavis3d): New variable. --- gnu/packages/qt.scm | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index b3fc8f349b..803c66f630 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -1048,6 +1048,23 @@ developers using C++ or QML, a CSS & JavaScript like language.") `(("qtbase" ,qtbase) ("qtdeclarative" ,qtdeclarative))))) +(define-public qtdatavis3d + (package (inherit qtsvg) + (name "qtdatavis3d") + (version "5.7.1") + (source (origin + (method url-fetch) + (uri (string-append "https://download.qt.io/official_releases/qt/" + (version-major+minor version) "/" version + "/submodules/" name "-opensource-src-" + version ".tar.xz")) + (sha256 + (base32 + "1y00p0wyj5cw9c2925y537vpmmg9q3kpf7qr1s7sv67dvvf8bzqv")))) + (inputs + `(("qtbase" ,qtbase) + ("qtdeclarative" ,qtdeclarative))))) + (define-public python-sip (package (name "python-sip") -- cgit v1.2.3 From c195b5ba9855830bf0826304be17655c627f1788 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sat, 7 Jan 2017 22:14:04 +0200 Subject: gnu: qtsvg: Build tests by default. * gnu/packages/qt.scm (qtsvg)[arguments]: Set QT_BUILD_PARTS in the custom 'configure phase to include tests. Add custom 'set-display phase to enable offscreen tests. (qtx11extras, qtxmlpatterns, qtdeclarative, qtwebsockets, qtlocation, qttools, qtquickcontrols, qtquickcontrols2, qtgraphicaleffects, qtcharts, qtdatavis3d)[arguments]: Disable tests. (qtmultimedia)[source]: Edit snippet to not build 'spectrum' example. [arguments]: Disable tests. (qtscxml)[source]: Edit snippet to not build 'scion' test. (qtcanvas3d)[arguments]: Don't build the test suite, don't run the tests. --- gnu/packages/qt.scm | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 68 insertions(+), 4 deletions(-) diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index 803c66f630..5189da4af0 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -554,14 +554,22 @@ developers using C++ or QML, a CSS & JavaScript like language.") (replace 'configure (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) - (zero? (system* "qmake" (string-append "PREFIX=" out)))))) + ;; Valid QT_BUILD_PARTS variables are: + ;; libs tools tests examples demos docs translations + (zero? (system* "qmake" "QT_BUILD_PARTS = libs tools tests" + (string-append "PREFIX=" out)))))) (add-before 'install 'fix-Makefiles (lambda* (#:key inputs outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out")) (qtbase (assoc-ref inputs "qtbase"))) (substitute* (find-files "." "Makefile") (((string-append "INSTALL_ROOT)" qtbase)) - (string-append "INSTALL_ROOT)" out))))))))))) + (string-append "INSTALL_ROOT)" out))) + #t))) + (add-before 'check 'set-display + (lambda _ + (setenv "QT_QPA_PLATFORM" "offscreen") + #t))))))) (define-public qtimageformats (package (inherit qtsvg) @@ -603,6 +611,9 @@ developers using C++ or QML, a CSS & JavaScript like language.") (sha256 (base32 "09z49jm70f5i0gcdz9a16z00pg96x8pz7vri5wpirh3fqqn0qnjz")))) + (arguments + (substitute-keyword-arguments (package-arguments qtsvg) + ((#:tests? _ #f) #f))) ; TODO: Enable the tests (native-inputs `(("perl" ,perl))) (inputs `(("mesa" ,mesa) @@ -621,6 +632,9 @@ developers using C++ or QML, a CSS & JavaScript like language.") (sha256 (base32 "1rgqnpg64gn5agmvjwy0am8hp5fpxl3cdkixr1yrsdxi5a6961d8")))) + (arguments + (substitute-keyword-arguments (package-arguments qtsvg) + ((#:tests? _ #f) #f))) ; TODO: Enable the tests (native-inputs `(("perl" ,perl))) (inputs `(("qtbase" ,qtbase))))) @@ -637,6 +651,9 @@ developers using C++ or QML, a CSS & JavaScript like language.") (sha256 (base32 "0mjxfwnplpx60jc6y94krg00isddl9bfwc7dayl981njb4qds4zx")))) + (arguments + (substitute-keyword-arguments (package-arguments qtsvg) + ((#:tests? _ #f) #f))) ; TODO: Enable the tests (native-inputs `(("perl" ,perl) ("pkg-config" ,pkg-config) @@ -681,6 +698,9 @@ developers using C++ or QML, a CSS & JavaScript like language.") (sha256 (base32 "1laj0slwibs0bg69kgrdhc9k1s6yisq3pcsr0r9rhbkzisv7aajw")))) + (arguments + (substitute-keyword-arguments (package-arguments qtsvg) + ((#:tests? _ #f) #f))) ; TODO: Enable the tests (native-inputs `(("perl" ,perl) ("qtdeclarative" ,qtdeclarative))) @@ -721,7 +741,13 @@ developers using C++ or QML, a CSS & JavaScript like language.") (snippet '(begin (delete-file-recursively - "examples/multimedia/spectrum/3rdparty"))))) + "examples/multimedia/spectrum/3rdparty") + ;; We also prevent the spectrum example from being built. + (substitute* "examples/multimedia/multimedia.pro" + (("spectrum") "#")))))) + (arguments + (substitute-keyword-arguments (package-arguments qtsvg) + ((#:tests? _ #f) #f))) ; TODO: Enable the tests (native-inputs `(("perl" ,perl) ("pkg-config" ,pkg-config) @@ -831,6 +857,9 @@ developers using C++ or QML, a CSS & JavaScript like language.") (sha256 (base32 "17zkzffzwbg6aqhsggs23cmwzq4y45m938842lsc423hfm7fdsgr")))) + (arguments + (substitute-keyword-arguments (package-arguments qtsvg) + ((#:tests? _ #f) #f))) ; TODO: Enable the tests (native-inputs `(("perl" ,perl) ("qtdeclarative" ,qtdeclarative) @@ -851,6 +880,9 @@ developers using C++ or QML, a CSS & JavaScript like language.") (sha256 (base32 "1b6zqa5690b8lqms7rrhb8rcq0xg5hp117v3m08qngbcd0i706b4")))) + (arguments + (substitute-keyword-arguments (package-arguments qtsvg) + ((#:tests? _ #f) #f))) ; TODO: Enable the tests (native-inputs `(("perl" ,perl) ("qtdeclarative" ,qtdeclarative))) @@ -890,6 +922,9 @@ developers using C++ or QML, a CSS & JavaScript like language.") (sha256 (base32 "17cyfyqzjbm9dhq9pjscz36y84y16rmxwk6h826gjfprddrimsvg")))) + (arguments + (substitute-keyword-arguments (package-arguments qtsvg) + ((#:tests? _ #f) #f))) ; TODO: Enable the tests (inputs `(("qtbase" ,qtbase) ("qtdeclarative" ,qtdeclarative))))) @@ -907,6 +942,9 @@ developers using C++ or QML, a CSS & JavaScript like language.") (sha256 (base32 "1v77ydy4k15lksp3bi2kgha2h7m79g4n7c2qhbr09xnvpb8ars7j")))) + (arguments + (substitute-keyword-arguments (package-arguments qtsvg) + ((#:tests? _ #f) #f))) ; TODO: Enable the tests (inputs `(("qtbase" ,qtbase) ("qtdeclarative" ,qtdeclarative))))) @@ -924,6 +962,9 @@ developers using C++ or QML, a CSS & JavaScript like language.") (sha256 (base32 "1j2drnx7zp3w6cgvy7bn00fyk5v7vw1j1hidaqcg78lzb6zgls1c")))) + (arguments + (substitute-keyword-arguments (package-arguments qtsvg) + ((#:tests? _ #f) #f))) ; TODO: Enable the tests (inputs `(("qtbase" ,qtbase) ("qtdeclarative" ,qtdeclarative))))) @@ -988,7 +1029,11 @@ developers using C++ or QML, a CSS & JavaScript like language.") "135kknqdmib2cjryfmvfgv7a2qx9pyba3m7i7nkbc5d742r4mbcx")) (modules '((guix build utils))) (snippet - '(delete-file-recursively "tests/3rdparty")))) + '(begin + (delete-file-recursively "tests/3rdparty") + ;; the scion test refers to the bundled 3rd party test code. + (substitute* "tests/auto/auto.pro" + (("scion") "#")))))) (inputs `(("qtbase" ,qtbase) ("qtdeclarative" ,qtdeclarative))))) @@ -1026,6 +1071,19 @@ developers using C++ or QML, a CSS & JavaScript like language.") (modules '((guix build utils))) (snippet '(delete-file-recursively "examples/canvas3d/3rdparty")))) + (arguments + (substitute-keyword-arguments (package-arguments qtsvg) + ;; Building the tests depends on the bundled 3rd party javascript files, + ;; and the test phase fails to import QtCanvas3D, causing the phase to + ;; fail, so we skip building them for now. + ((#:phases phases) + `(modify-phases ,phases + (replace 'configure + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (zero? (system* "qmake" "QT_BUILD_PARTS = libs tools" + (string-append "PREFIX=" out)))))))) + ((#:tests? _ #f) #f))) ; TODO: Enable the tests (native-inputs `()) (inputs `(("qtbase" ,qtbase) @@ -1044,6 +1102,9 @@ developers using C++ or QML, a CSS & JavaScript like language.") (sha256 (base32 "1qrzcddwff2hxsbxrraff16j4abah2zkra2756s1mvydj9lyxzl5")))) + (arguments + (substitute-keyword-arguments (package-arguments qtsvg) + ((#:tests? _ #f) #f))) ; TODO: Enable the tests (inputs `(("qtbase" ,qtbase) ("qtdeclarative" ,qtdeclarative))))) @@ -1061,6 +1122,9 @@ developers using C++ or QML, a CSS & JavaScript like language.") (sha256 (base32 "1y00p0wyj5cw9c2925y537vpmmg9q3kpf7qr1s7sv67dvvf8bzqv")))) + (arguments + (substitute-keyword-arguments (package-arguments qtsvg) + ((#:tests? _ #f) #f))) ; TODO: Enable the tests (inputs `(("qtbase" ,qtbase) ("qtdeclarative" ,qtdeclarative))))) -- cgit v1.2.3 From f66b3e1523e1c7ee7d78958b2a8526d9100f0809 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 8 Jan 2017 13:35:41 +0200 Subject: gnu: qtxmlpatterns: Skip network tests. * gnu/packages/qt.scm (qtxmlpatterns)[arguments]: Add custom phase to prevent the building of network tests. --- gnu/packages/qt.scm | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index 5189da4af0..b2fe6e445c 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -634,7 +634,13 @@ developers using C++ or QML, a CSS & JavaScript like language.") "1rgqnpg64gn5agmvjwy0am8hp5fpxl3cdkixr1yrsdxi5a6961d8")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) - ((#:tests? _ #f) #f))) ; TODO: Enable the tests + ((#:phases phases) + `(modify-phases ,phases + (add-after 'unpack 'disable-network-tests + (lambda _ (substitute* "tests/auto/auto.pro" + (("qxmlquery") "# qxmlquery") + (("xmlpatterns") "# xmlpatterns")) + #t)))))) (native-inputs `(("perl" ,perl))) (inputs `(("qtbase" ,qtbase))))) -- cgit v1.2.3 From 7d3546292386544d07de91e943f92708ad0ff543 Mon Sep 17 00:00:00 2001 From: John Darrington Date: Fri, 13 Jan 2017 07:24:50 +0100 Subject: gnu: aqbanking: Update source hash. * gnu/packages/gnucash.scm (aqbanking): Update source hash. This was inadvertently omitted from commit cac19f0df947ef656cc8e276b2538aab7d927367 --- gnu/packages/gnucash.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/gnucash.scm b/gnu/packages/gnucash.scm index f36f753506..83096d66e0 100644 --- a/gnu/packages/gnucash.scm +++ b/gnu/packages/gnucash.scm @@ -165,7 +165,7 @@ applications and libraries. It is used by AqBanking.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1x0isvpk43rq2zlyyb9p0kgjmqv7yq07vgkiprw3f5sjkykvxw6d")))) + "08jbwmiv6f3v8iqdr44x4szna496fqcjfi6mlx04cnbx91m70lh6")))) (build-system gnu-build-system) (arguments `(;; Parallel building fails because aqhbci is required before it's -- cgit v1.2.3 From 79728b621bb3032984252c244b710993ae1aa984 Mon Sep 17 00:00:00 2001 From: John Darrington Date: Fri, 13 Jan 2017 07:26:37 +0100 Subject: gnu: xfig: Correct typographic error. * gnu/packages/xfig.scm (xfig) [arguments]: Fix typo. --- gnu/packages/xfig.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/xfig.scm b/gnu/packages/xfig.scm index ad1b432abd..2e65000eb7 100644 --- a/gnu/packages/xfig.scm +++ b/gnu/packages/xfig.scm @@ -66,7 +66,7 @@ (out (assoc-ref outputs "out"))) (substitute* "Imakefile" (("XCOMM XAPPLOADDIR = /home/user/xfig *") - (string-append "XAPPLOADDIR = " out %app-defaults-dir)) + (string-append "XAPPLOADDIR = " out ,%app-defaults-dir)) (("XCOMM (BINDIR = )[[:graph:]]*" _ front) (string-append front out "/bin")) (("(PNGLIBDIR = )[[:graph:]]*" _ front) -- cgit v1.2.3 From 692e05e2933975b6926cab7436a971bb12bd0818 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Fri, 13 Jan 2017 02:33:55 -0500 Subject: gnu: linux-libre: Update to 4.9.3. * gnu/packages/linux.scm (%linux-libre-version, %linux-libre-hash) (linux-libre): Update to 4.9.3. --- gnu/packages/linux.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index e7905ba08e..5b6466c848 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -333,8 +333,8 @@ It has been modified to remove all non-free binary blobs.") (define %intel-compatible-systems '("x86_64-linux" "i686-linux")) (define-public linux-libre - (make-linux-libre "4.9.2" - "08gd5ja5gdhzpwzbjhipwmh4myp0hj13k1wsl1xvplszh3p9b076" + (make-linux-libre "4.9.3" + "1jd2rz58lcha9ac35glr26lc6hfi49fvpiwshgpd6ygf4irrs82w" %intel-compatible-systems #:configuration-file kernel-config)) @@ -351,8 +351,8 @@ It has been modified to remove all non-free binary blobs.") #:configuration-file kernel-config)) ;; Avoid rebuilding kernel variants when there is a minor version bump. -(define %linux-libre-version "4.9.2") -(define %linux-libre-hash "08gd5ja5gdhzpwzbjhipwmh4myp0hj13k1wsl1xvplszh3p9b076") +(define %linux-libre-version "4.9.3") +(define %linux-libre-hash "1jd2rz58lcha9ac35glr26lc6hfi49fvpiwshgpd6ygf4irrs82w") (define-public linux-libre-arm-generic (make-linux-libre %linux-libre-version -- cgit v1.2.3 From ce195ba12277ec4286ad0d8ddf7294655987ea9d Mon Sep 17 00:00:00 2001 From: Raoul Jean Pierre Bonnal Date: Fri, 13 Jan 2017 00:29:23 +0100 Subject: gnu: Add perl-parallel-forkmanager. * gnu/packages/perl.scm (perl-parallel-forkmanager): New variable. Signed-off-by: Marius Bakke --- gnu/packages/perl.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 8f103ec6d7..09278f4251 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -12,6 +12,7 @@ ;;; Copyright © 2016 Roel Janssen ;;; Copyright © 2016 Ben Woodcroft ;;; Copyright © 2016 Jan Nieuwenhuizen +;;; Copyright © 2017 Raoul J.P. Bonnal ;;; ;;; This file is part of GNU Guix. ;;; @@ -5014,6 +5015,30 @@ show those variables which are in scope at the point of the call. PadWalker is particularly useful for debugging.") (license (package-license perl)))) +(define-public perl-parallel-forkmanager + (package + (name "perl-parallel-forkmanager") + (version "1.19") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/Y/YA/YANICK/Parallel-ForkManager-" + version + ".tar.gz")) + (sha256 + (base32 + "0wm4wp6p3ah5z212jl12728z68nmxmfr0f03z1jpvdzffnc2xppi")))) + (build-system perl-build-system) + (native-inputs + `(("perl-test-warn" ,perl-test-warn))) + (home-page "http://search.cpan.org/dist/Parallel-ForkManager") + (synopsis "Simple parallel processing fork manager") + (description "@code{Parallel::ForkManager} is intended for use in +operations that can be done in parallel where the number of +processes to be forked off should be limited.") + (license (package-license perl)))) + (define-public perl-params-util (package (name "perl-params-util") -- cgit v1.2.3 From e7ff05438f6044eb452b6dcd8b05b45afbc61496 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 13 Jan 2017 12:07:10 +0100 Subject: ui: Factorize error-reporting wrapper code. * guix/ui.scm (augmented-system-error-handler): New procedure. (error-reporting-wrapper): New macro. (symlink, copy-file): Define using 'error-reporting-wrapper'. --- guix/ui.scm | 49 +++++++++++++++++++++++-------------------------- 1 file changed, 23 insertions(+), 26 deletions(-) diff --git a/guix/ui.scm b/guix/ui.scm index 7d4c437354..03196dbeaf 100644 --- a/guix/ui.scm +++ b/guix/ui.scm @@ -332,39 +332,36 @@ Report bugs to: ~a.") %guix-bug-report-address) General help using GNU software: ")) (newline)) +(define (augmented-system-error-handler file) + "Return a 'system-error' handler that mentions FILE in its message." + (lambda (key proc fmt args errno) + ;; Augment the FMT and ARGS with information about TARGET (this + ;; information is missing as of Guile 2.0.11, making the exception + ;; uninformative.) + (apply throw key proc "~A: ~S" + (list (strerror (car errno)) file) + (list errno)))) + +(define-syntax-rule (error-reporting-wrapper proc (args ...) file) + "Wrap PROC such that its 'system-error' exceptions are augmented to mention +FILE." + (let ((real-proc (@ (guile) proc))) + (lambda (args ...) + (catch 'system-error + (lambda () + (real-proc args ...)) + (augmented-system-error-handler file))))) + (set! symlink ;; We 'set!' the global binding because (gnu build ...) modules and similar ;; typically don't use (guix ui). - (let ((real-symlink (@ (guile) symlink))) - (lambda (target link) - "This is a 'symlink' replacement that provides proper error reporting." - (catch 'system-error - (lambda () - (real-symlink target link)) - (lambda (key proc fmt args errno) - ;; Augment the FMT and ARGS with information about LINK (this - ;; information is missing as of Guile 2.0.11, making the exception - ;; uninformative.) - (apply throw key proc "~A: ~S" - (list (strerror (car errno)) link) - (list errno))))))) + (error-reporting-wrapper symlink (source target) target)) (set! copy-file ;; Note: here we use 'set!', not #:replace, because UIs typically use ;; 'copy-recursively', which doesn't use (guix ui). - (let ((real-copy-file (@ (guile) copy-file))) - (lambda (source target) - "This is a 'copy-file' replacement that provides proper error reporting." - (catch 'system-error - (lambda () - (real-copy-file source target)) - (lambda (key proc fmt args errno) - ;; Augment the FMT and ARGS with information about TARGET (this - ;; information is missing as of Guile 2.0.11, making the exception - ;; uninformative.) - (apply throw key proc "~A: ~S" - (list (strerror (car errno)) target) - (list errno))))))) + (error-reporting-wrapper copy-file (source target) target)) + (define (make-regexp* regexp . flags) "Like 'make-regexp' but error out if REGEXP is invalid, reporting the error -- cgit v1.2.3 From 6d30b1b2ca92705a6f3c06ddaf8ccf06466089d3 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 13 Jan 2017 12:09:01 +0100 Subject: ui: Wrap 'canonicalize-path' for better error reporting. Reported by Christopher Baines. * guix/ui.scm (canonicalize-path): New procedure. --- guix/ui.scm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/guix/ui.scm b/guix/ui.scm index 03196dbeaf..6247944068 100644 --- a/guix/ui.scm +++ b/guix/ui.scm @@ -362,6 +362,9 @@ FILE." ;; 'copy-recursively', which doesn't use (guix ui). (error-reporting-wrapper copy-file (source target) target)) +(set! canonicalize-path + (error-reporting-wrapper canonicalize-path (file) file)) + (define (make-regexp* regexp . flags) "Like 'make-regexp' but error out if REGEXP is invalid, reporting the error -- cgit v1.2.3 From 4cd5ec801bb6c82cc1df2c4ac419d89614aa5d1b Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 13 Jan 2017 18:14:19 +0100 Subject: import: github: Fix regression on the /releases retrieval. Fixes a regression introduced in 62bd24db39a86f80242f923eb4cc2f18f3b02c67, which introduced a call to 'hash-table->alist'. * guix/import/github.scm (json-fetch*): New procedure. (latest-released-version): Use it. --- guix/import/github.scm | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/guix/import/github.scm b/guix/import/github.scm index 01452b12e3..a41511aff6 100644 --- a/guix/import/github.scm +++ b/guix/import/github.scm @@ -19,16 +19,28 @@ (define-module (guix import github) #:use-module (ice-9 match) #:use-module (srfi srfi-1) + #:use-module (srfi srfi-34) #:use-module (json) #:use-module (guix utils) #:use-module ((guix download) #:prefix download:) #:use-module (guix import utils) - #:use-module (guix import json) #:use-module (guix packages) #:use-module (guix upstream) + #:use-module (guix http-client) #:use-module (web uri) #:export (%github-updater)) +(define (json-fetch* url) + "Return a representation of the JSON resource URL (a list or hash table), or +#f if URL returns 404." + (guard (c ((and (http-get-error? c) + (= 404 (http-get-error-code c))) + #f)) ;"expected" if package is unknown + (let* ((port (http-fetch url)) + (result (json->scm port))) + (close-port port) + result))) + (define (find-extension url) "Return the extension of the archive e.g. '.tar.gz' given a URL, or false if none is recognized" @@ -125,7 +137,7 @@ the package e.g. 'bedtools2'. Return #f if there is no releases" "https://api.github.com/repos/" (github-user-slash-repository url) "/releases")) - (json (json-fetch + (json (json-fetch* (if token (string-append api-url "?access_token=" token) api-url)))) -- cgit v1.2.3 From 608a50b66c73d5bdfd224195b839e01b781c354c Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 13 Jan 2017 18:22:53 +0100 Subject: http-client: Provide 'User-Agent' header by default. * guix/http-client.scm (http-fetch): Add #:headers parameter and honor it. Rename 'auth-header' to 'headers'. * guix/import/github.scm (json-fetch*): Add comment about required User-Agent. --- guix/http-client.scm | 26 ++++++++++++++------------ guix/import/github.scm | 1 + 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/guix/http-client.scm b/guix/http-client.scm index 0090783524..78d39a0208 100644 --- a/guix/http-client.scm +++ b/guix/http-client.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès +;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès ;;; Copyright © 2015 Mark H Weaver ;;; Copyright © 2012, 2015 Free Software Foundation, Inc. ;;; @@ -223,13 +223,14 @@ or if EOF is reached." 'shutdown (const #f)) (define* (http-fetch uri #:key port (text? #f) (buffered? #t) - keep-alive? (verify-certificate? #t)) + keep-alive? (verify-certificate? #t) + (headers '((user-agent . "GNU Guile")))) "Return an input port containing the data at URI, and the expected number of bytes available or #f. If TEXT? is true, the data at URI is considered to be textual. Follow any HTTP redirection. When BUFFERED? is #f, return an unbuffered port, suitable for use in `filtered-port'. When KEEP-ALIVE? is true, send a 'Connection: keep-alive' HTTP header, in which case PORT may be -reused for future HTTP requests. +reused for future HTTP requests. HEADERS is an alist of extra HTTP headers. When VERIFY-CERTIFICATE? is true, verify HTTPS server certificates. @@ -240,13 +241,14 @@ Raise an '&http-get-error' condition if downloading fails." (let ((port (or port (open-connection-for-uri uri #:verify-certificate? verify-certificate?))) - (auth-header (match (uri-userinfo uri) - ((? string? str) - (list (cons 'Authorization - (string-append "Basic " - (base64-encode - (string->utf8 str)))))) - (_ '())))) + (headers (match (uri-userinfo uri) + ((? string? str) + (cons (cons 'Authorization + (string-append "Basic " + (base64-encode + (string->utf8 str)))) + headers)) + (_ headers)))) (unless (or buffered? (not (file-port? port))) (setvbuf port _IONBF)) (let*-values (((resp data) @@ -254,10 +256,10 @@ Raise an '&http-get-error' condition if downloading fails." (if (guile-version>? "2.0.7") (http-get uri #:streaming? #t #:port port #:keep-alive? #t - #:headers auth-header) ; 2.0.9+ + #:headers headers) ; 2.0.9+ (http-get* uri #:decode-body? text? ; 2.0.7 #:keep-alive? #t - #:port port #:headers auth-header))) + #:port port #:headers headers))) ((code) (response-code resp))) (case code diff --git a/guix/import/github.scm b/guix/import/github.scm index a41511aff6..df5a6b0e08 100644 --- a/guix/import/github.scm +++ b/guix/import/github.scm @@ -36,6 +36,7 @@ (guard (c ((and (http-get-error? c) (= 404 (http-get-error-code c))) #f)) ;"expected" if package is unknown + ;; Note: github.com returns 403 if we omit a 'User-Agent' header. (let* ((port (http-fetch url)) (result (json->scm port))) (close-port port) -- cgit v1.2.3 From 557d9c8d7a843bf06e75b4e1a742654ccf951fa3 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 13 Jan 2017 18:47:15 +0100 Subject: etc: Support indentation of whole files. * etc/indent-package.el.in: Rename to... * etc/indent-code.el.in: ... this. Add case for a single argument. * doc/contributing.texi (Formatting Code): Adjust accordingly. * configure.ac: Likewise. --- .gitignore | 2 +- configure.ac | 2 +- doc/contributing.texi | 11 ++++++--- etc/indent-code.el.in | 62 ++++++++++++++++++++++++++++++++++++++++++++++++ etc/indent-package.el.in | 53 ----------------------------------------- 5 files changed, 72 insertions(+), 58 deletions(-) create mode 100755 etc/indent-code.el.in delete mode 100755 etc/indent-package.el.in diff --git a/.gitignore b/.gitignore index 5bcc734ac5..c64326e60e 100644 --- a/.gitignore +++ b/.gitignore @@ -128,4 +128,4 @@ stamp-h[0-9] tmp /doc/os-config-lightweight-desktop.texi /nix/scripts/download -/etc/indent-package.el +/etc/indent-code.el diff --git a/configure.ac b/configure.ac index f628fa9d0d..9079a142dc 100644 --- a/configure.ac +++ b/configure.ac @@ -245,6 +245,6 @@ AC_CONFIG_FILES([scripts/guix], [chmod +x scripts/guix]) AC_CONFIG_FILES([test-env:build-aux/test-env.in], [chmod +x test-env]) AC_CONFIG_FILES([pre-inst-env:build-aux/pre-inst-env.in], [chmod +x pre-inst-env]) -AC_CONFIG_FILES([etc/indent-package.el], [chmod +x etc/indent-package.el]) +AC_CONFIG_FILES([etc/indent-code.el], [chmod +x etc/indent-code.el]) AC_OUTPUT diff --git a/doc/contributing.texi b/doc/contributing.texi index 9fc1eb54d8..4454df1f98 100644 --- a/doc/contributing.texi +++ b/doc/contributing.texi @@ -256,12 +256,17 @@ If you do not use Emacs, please make sure to let your editor knows these rules. To automatically indent a package definition, you can also run: @example -./etc/indent-package.el gnu/packages/@var{file}.scm @var{package} +./etc/indent-code.el gnu/packages/@var{file}.scm @var{package} @end example @noindent This automatically indents the definition of @var{package} in -@file{gnu/packages/@var{file}.scm} by running Emacs in batch mode. +@file{gnu/packages/@var{file}.scm} by running Emacs in batch mode. To +indent a whole file, omit the second argument: + +@example +./etc/indent-code.el gnu/services/@var{file}.scm +@end example We require all top-level procedures to carry a docstring. This requirement can be relaxed for simple private procedures in the @@ -374,7 +379,7 @@ or a package update along with fixes to that package. @item Please follow our code formatting rules, possibly running the -@command{etc/indent-package.el} script to do that automatically for you +@command{etc/indent-code.el} script to do that automatically for you (@pxref{Formatting Code}). @end enumerate diff --git a/etc/indent-code.el.in b/etc/indent-code.el.in new file mode 100755 index 0000000000..7556b30cc8 --- /dev/null +++ b/etc/indent-code.el.in @@ -0,0 +1,62 @@ +#!@EMACS@ --script +;;; indent-code.el --- Run Emacs to indent a package definition. + +;; Copyright © 2017 Alex Kost +;; Copyright © 2017 Ludovic Courtès + +;; This file is part of GNU Guix. + +;; GNU Guix is free software; you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. + +;; GNU Guix is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with this program. If not, see . + +;;; Commentary: + +;; This scripts indents the given file or package definition in the specified +;; file using Emacs. + +;;; Code: + +;; Load Scheme indentation rules from the current directory. +(with-temp-buffer + (scheme-mode) + (let ((default-directory (file-name-as-directory ".")) + (enable-local-variables :all)) + (hack-dir-local-variables) + (hack-local-variables-apply))) + +(pcase command-line-args-left + (`(,file-name ,package-name) + ;; Indent the definition of PACKAGE-NAME in FILE-NAME. + (find-file file-name) + (goto-char (point-min)) + (if (re-search-forward (concat "^(define\\(-public\\) +" + package-name) + nil t) + (let ((indent-tabs-mode nil)) + (beginning-of-defun) + (indent-sexp) + (save-buffer) + (message "Done!")) + (error "Package '%s' not found in '%s'" + package-name file-name))) + (`(,file-name) + ;; Indent all of FILE-NAME. + (find-file file-name) + (let ((indent-tabs-mode nil)) + (indent-region (point-min) (point-max)) + (save-buffer) + (message "Done!"))) + (x + (error "Usage: indent-code.el FILE [PACKAGE]"))) + +;;; indent-code.el ends here diff --git a/etc/indent-package.el.in b/etc/indent-package.el.in deleted file mode 100755 index 3188809f0b..0000000000 --- a/etc/indent-package.el.in +++ /dev/null @@ -1,53 +0,0 @@ -#!@EMACS@ --script -;;; indent-package.el --- Run Emacs to indent a package definition. - -;; Copyright © 2017 Alex Kost - -;; 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 this program. If not, see . - -;;; Commentary: - -;; This scripts indents the given package definition in the specified file -;; using Emacs. - -;;; Code: - -;; Load Scheme indentation rules from the current directory. -(with-temp-buffer - (scheme-mode) - (let ((default-directory (file-name-as-directory ".")) - (enable-local-variables :all)) - (hack-dir-local-variables) - (hack-local-variables-apply))) - -(pcase command-line-args-left - (`(,file-name ,package-name) - (find-file file-name) - (goto-char (point-min)) - (if (re-search-forward (concat "^(define\\(-public\\) +" - package-name) - nil t) - (let ((indent-tabs-mode nil)) - (beginning-of-defun) - (indent-sexp) - (save-buffer) - (message "Done!")) - (error "Package '%s' not found in '%s'" - package-name file-name))) - (x - (error "Usage: indent-package.el FILE PACKAGE"))) - -;;; indent-package.el ends here -- cgit v1.2.3 From fa3346b85265adf52ac985353dc7f67d71132939 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Sun, 8 Jan 2017 18:16:41 +0100 Subject: gnu: openvpn: Update to 2.4.0. * gnu/packages/vpn.scm (openvpn): Update to 2.4.0. --- gnu/packages/vpn.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/vpn.scm b/gnu/packages/vpn.scm index 0ce51aaf88..8c7f07a263 100644 --- a/gnu/packages/vpn.scm +++ b/gnu/packages/vpn.scm @@ -5,6 +5,7 @@ ;;; Copyright © 2015 Jeff Mickey ;;; Copyright © 2016, 2017 Efraim Flashner ;;; Copyright © 2016 Tobias Geerinckx-Rice +;;; Copyright © 2017 Julien Lepiller ;;; ;;; This file is part of GNU Guix. ;;; @@ -152,7 +153,7 @@ and probably others.") (define-public openvpn (package (name "openvpn") - (version "2.3.14") + (version "2.4.0") (source (origin (method url-fetch) (uri (string-append @@ -160,7 +161,7 @@ and probably others.") version ".tar.xz")) (sha256 (base32 - "167frlmmg2raffn9h7ww3agdwgfdl0wa5wm9fsgl0i6mz3md187k")))) + "0zpqnbhjaifdalyxwmvk5kcyd7cpxbcigbn7967nbsyvl54vl8vg")))) (build-system gnu-build-system) (arguments '(#:configure-flags '("--enable-iproute2=yes"))) -- cgit v1.2.3 From 4f5a0f32f4d826595705332ba54acb4bffee3c07 Mon Sep 17 00:00:00 2001 From: ng0 Date: Thu, 12 Jan 2017 00:39:22 +0000 Subject: gnu: Add xbattmon. * gnu/packages/suckless.scm (xbattmon): New variable. Signed-off-by: Leo Famulari --- gnu/packages/suckless.scm | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/gnu/packages/suckless.scm b/gnu/packages/suckless.scm index a00420312d..1d35e93893 100644 --- a/gnu/packages/suckless.scm +++ b/gnu/packages/suckless.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2013 Cyril Roelandt ;;; Copyright © 2015 Amirouche Boubekki ;;; Copyright © 2016 Al McElrath -;;; Copyright © 2016 ng0 +;;; Copyright © 2016, 2017 ng0 ;;; Copyright © 2015 Dmitry Bogatov ;;; Copyright © 2015 Leo Famulari ;;; Copyright © 2016 Eric Bavier @@ -257,3 +257,28 @@ allows you to write down the presentation for a quick lightning talk within a few minutes.") (home-page "http://tools.suckless.org/sent") (license license:x11))) + +(define-public xbattmon + (package + (name "xbattmon") + (version "0.9") + (source + (origin + (method url-fetch) + (uri (string-append "http://dl.2f30.org/releases/" + name "-" version ".tar.gz")) + (sha256 + (base32 + "0n2rrjq03pgqrdkl7cz5snsfdanf4s58w9h6dbvnl7p8bbd3j2kn")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; No tests + #:make-flags (list "CC=gcc" + (string-append "PREFIX=" %output)))) + (inputs + `(("libx11" ,libx11))) + (home-page "http://git.2f30.org/xbattmon/") + (synopsis "Simple battery monitor for X") + (description + "Xbattmon is a simple battery monitor for X.") + (license license:isc))) -- cgit v1.2.3 From f63abd0d10384522a0da14f0d0ad683a5ff83b33 Mon Sep 17 00:00:00 2001 From: ng0 Date: Thu, 12 Jan 2017 00:39:23 +0000 Subject: gnu: Add wificurse. * gnu/packages/suckless.scm (wificurse): New variable. Signed-off-by: Leo Famulari --- gnu/packages/suckless.scm | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/gnu/packages/suckless.scm b/gnu/packages/suckless.scm index 1d35e93893..bcfa16922b 100644 --- a/gnu/packages/suckless.scm +++ b/gnu/packages/suckless.scm @@ -282,3 +282,36 @@ few minutes.") (description "Xbattmon is a simple battery monitor for X.") (license license:isc))) + +(define-public wificurse + (package + (name "wificurse") + (version "0.3.9") + (source + (origin + (method url-fetch) + (uri (string-append "http://dl.2f30.org/releases/" + name "-" version ".tar.gz")) + (sha256 + (base32 + "067ghr1xly5ca41kc83xila1p5hpq0bxfcmc8jvxi2ggm6wrhavn")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; No tests + #:make-flags (list + (string-append "PREFIX=" %output)) + #:phases + (modify-phases %standard-phases + (delete 'configure)))) ; No configure script + (home-page "http://git.2f30.org/wificurse/") + (synopsis "Wifi DoS attack tool") + (description + "Wificurses listens for beacons sent from wireless access points +in the range of your wireless station. Once received the program +extracts the BSSID of the AP and transmits deauthentication packets +using the broadcast MAC address. This results to the disconnection +of all clients connected to the AP at the time of the attack. This +is essencially a WiFi DoS attack tool created for educational +purposes only. It works only in Linux and requires wireless card +drivers capable of injecting packets in wireless networks.") + (license license:gpl3+))) -- cgit v1.2.3 From c2b4c06391906011bcad95656648f2e19eddce46 Mon Sep 17 00:00:00 2001 From: ng0 Date: Thu, 12 Jan 2017 00:39:24 +0000 Subject: gnu: Add spoon. * gnu/packages/suckless.scm (spoon): New variable. Signed-off-by: Leo Famulari --- gnu/packages/suckless.scm | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/gnu/packages/suckless.scm b/gnu/packages/suckless.scm index bcfa16922b..c9465b9fea 100644 --- a/gnu/packages/suckless.scm +++ b/gnu/packages/suckless.scm @@ -36,7 +36,9 @@ #:use-module (gnu packages fonts) #:use-module (gnu packages pkg-config) #:use-module (gnu packages webkit) - #:use-module (gnu packages fontutils)) + #:use-module (gnu packages fontutils) + #:use-module (gnu packages mpd) + #:use-module (gnu packages linux)) (define-public dwm (package @@ -114,6 +116,34 @@ optimising the environment for the application in use and the task performed.") numbers of user-defined menu items efficiently.") (license license:x11))) +(define-public spoon + (package + (name "spoon") + (version "0.3") + (source + (origin + (method url-fetch) + (uri (string-append "http://dl.2f30.org/releases/" + name "-" version ".tar.gz")) + (sha256 + (base32 + "10c5i7ykpy7inzzfiw1dh0srpkljycr3blxhvd8160wsvplbws48")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; No tests + #:make-flags (list "CC=gcc" + (string-append "PREFIX=" %output)))) + (inputs + `(("libx11" ,libx11) + ("libxkbfile" ,libxkbfile) + ("alsa-lib" ,alsa-lib) + ("libmpdclient" ,libmpdclient))) + (home-page "http://git.2f30.org/spoon/") + (synopsis "Set dwm status") + (description + "Spoon can be used to set the dwm status.") + (license license:isc))) + (define-public slock (package (name "slock") -- cgit v1.2.3 From d8c8e423ed67897a8cc236e68658baacdce1b5fd Mon Sep 17 00:00:00 2001 From: ng0 Date: Thu, 12 Jan 2017 00:39:25 +0000 Subject: licenses: Add wtfpl2. * guix/licenses.scm (wtfpl2): New variable. Signed-off-by: Leo Famulari --- guix/licenses.scm | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/guix/licenses.scm b/guix/licenses.scm index 1e19300586..7b2ac2d311 100644 --- a/guix/licenses.scm +++ b/guix/licenses.scm @@ -8,7 +8,7 @@ ;;; Copyright © 2016 Leo Famulari ;;; Copyright © 2016 Fabian Harfert ;;; Copyright © 2016 Rene Saavedra -;;; Copyright © 2016 ng0 +;;; Copyright © 2016, 2017 ng0 ;;; ;;; This file is part of GNU Guix. ;;; @@ -74,7 +74,8 @@ x11 x11-style zpl2.1 zlib - fsf-free)) + fsf-free + wtfpl2)) (define-record-type (license name uri comment) @@ -450,6 +451,11 @@ at URI, which may be a file:// URI pointing the package's tree." "https://unlicense.org/" "https://www.gnu.org/licenses/license-list.html#Unlicense")) +(define wtfpl2 + (license "WTFPL 2" + "http://www.wtfpl.net" + "http://www.wtfpl.net/about/")) + (define x11 (license "X11" "http://directory.fsf.org/wiki/License:X11" -- cgit v1.2.3 From 559115a64ea96add2b1269d939816146382ecaab Mon Sep 17 00:00:00 2001 From: ng0 Date: Thu, 12 Jan 2017 00:39:26 +0000 Subject: gnu: Add skroll. * gnu/packages/suckless.scm (skroll): New variable. Signed-off-by: Leo Famulari --- gnu/packages/suckless.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/suckless.scm b/gnu/packages/suckless.scm index c9465b9fea..002c9273ba 100644 --- a/gnu/packages/suckless.scm +++ b/gnu/packages/suckless.scm @@ -345,3 +345,31 @@ is essencially a WiFi DoS attack tool created for educational purposes only. It works only in Linux and requires wireless card drivers capable of injecting packets in wireless networks.") (license license:gpl3+))) + +(define-public skroll + (package + (name "skroll") + (version "0.6") + (source + (origin + (method url-fetch) + (uri (string-append "http://dl.2f30.org/releases/" + name "-" version ".tar.gz")) + (sha256 + (base32 + "0km6bjfz4ssb1z0xwld6iiixnn7d255ax8yjs3zkdm42z8q9yl0f")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; No tests + #:make-flags (list "CC=gcc" + (string-append "PREFIX=" %output)) + #:phases + (modify-phases %standard-phases + (delete 'configure)))) ; No configure script + (home-page "http://2f30.org") + (synopsis "Commandline utility which scrolls text") + (description + "Skroll is a small utility that you can use to make a text scroll. +Pipe text to it, and it will scroll a given number of letters from right to +left.") + (license license:wtfpl2))) -- cgit v1.2.3 From 401f4f0816066d54736179400ecebcca432a6bdc Mon Sep 17 00:00:00 2001 From: ng0 Date: Thu, 12 Jan 2017 00:39:27 +0000 Subject: gnu: Add sbm. * gnu/packages/suckless.scm (sbm): New variable. Signed-off-by: Leo Famulari --- gnu/packages/suckless.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/suckless.scm b/gnu/packages/suckless.scm index 002c9273ba..87ffe7204d 100644 --- a/gnu/packages/suckless.scm +++ b/gnu/packages/suckless.scm @@ -373,3 +373,29 @@ drivers capable of injecting packets in wireless networks.") Pipe text to it, and it will scroll a given number of letters from right to left.") (license license:wtfpl2))) + +(define-public sbm + (package + (name "sbm") + (version "0.9") + (source + (origin + (method url-fetch) + (uri (string-append "http://dl.2f30.org/releases/" + name "-" version ".tar.gz")) + (sha256 + (base32 + "1nks5mkh5wn30kyjzlkjlgi31bv1wq52kbp0r6nzbyfnvfdlywik")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; No tests + #:make-flags (list "CC=gcc" + (string-append "PREFIX=" %output)) + #:phases + (modify-phases %standard-phases + (delete 'configure)))) ; No configure script + (home-page "http://git.2f30.org/sbm/") + (synopsis "Simple bandwidth monitor") + (description + "Sbm is a simple bandwidth monitor.") + (license license:isc))) -- cgit v1.2.3 From 974ddc21349e7635881cb7ff104f3595639ae3c9 Mon Sep 17 00:00:00 2001 From: ng0 Date: Thu, 12 Jan 2017 00:39:28 +0000 Subject: gnu: Add prout. * gnu/packages/suckless.scm (prout): New variable. Signed-off-by: Leo Famulari --- gnu/packages/suckless.scm | 37 ++++++++++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/gnu/packages/suckless.scm b/gnu/packages/suckless.scm index 87ffe7204d..688b4c3398 100644 --- a/gnu/packages/suckless.scm +++ b/gnu/packages/suckless.scm @@ -38,7 +38,9 @@ #:use-module (gnu packages webkit) #:use-module (gnu packages fontutils) #:use-module (gnu packages mpd) - #:use-module (gnu packages linux)) + #:use-module (gnu packages linux) + #:use-module (gnu packages compression) + #:use-module (gnu packages cups)) (define-public dwm (package @@ -399,3 +401,36 @@ left.") (description "Sbm is a simple bandwidth monitor.") (license license:isc))) + +(define-public prout + (package + (name "prout") + (version "0.2") + (source + (origin + (method url-fetch) + (uri (string-append "http://dl.2f30.org/releases/" + name "-" version ".tar.gz")) + (sha256 + (base32 + "1s6c3ygg1h1fyxkh8gd7nzjk6qhnwsb4535d2k780kxnwns5fzas")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; No tests + #:make-flags (list "CC=gcc" + (string-append "PREFIX=" %output)) + #:phases + (modify-phases %standard-phases + (delete 'configure)))) ; No configure script + (inputs + `(("cups-minimal" ,cups-minimal) + ("zlib" ,zlib))) + (home-page "http://git.2f30.org/prout/") + (synopsis "Smaller lp command") + (description + "Prout (PRint OUT) is a small utility one can use to send +documents to a printer. +It has no feature, and does nothing else. Just set your default +printer in client.conf(5) and start printing. No need for a local +cups server to be installed.") + (license license:wtfpl2))) -- cgit v1.2.3 From 823d7f536be5511a1bab8b52b29fd8f35a3fae78 Mon Sep 17 00:00:00 2001 From: ng0 Date: Thu, 12 Jan 2017 00:39:29 +0000 Subject: gnu: Add noice. * gnu/packages/suckless.scm (noice): New variable. Signed-off-by: Leo Famulari --- gnu/packages/suckless.scm | 35 ++++++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/gnu/packages/suckless.scm b/gnu/packages/suckless.scm index 688b4c3398..b52a43f1f2 100644 --- a/gnu/packages/suckless.scm +++ b/gnu/packages/suckless.scm @@ -40,7 +40,8 @@ #:use-module (gnu packages mpd) #:use-module (gnu packages linux) #:use-module (gnu packages compression) - #:use-module (gnu packages cups)) + #:use-module (gnu packages cups) + #:use-module (gnu packages ncurses)) (define-public dwm (package @@ -434,3 +435,35 @@ It has no feature, and does nothing else. Just set your default printer in client.conf(5) and start printing. No need for a local cups server to be installed.") (license license:wtfpl2))) + +(define-public noice + (package + (name "noice") + (version "0.6") + (source + (origin + (method url-fetch) + (uri (string-append "http://dl.2f30.org/releases/" + name "-" version ".tar.gz")) + (sha256 + (base32 + "0ldkbb71z6k4yzj4kpg3s94ijj1c1kx9dfcjz393py09scfyg5hr")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; No tests + #:make-flags (list "CC=gcc" + (string-append "PREFIX=" %output)) + #:phases + (modify-phases %standard-phases + (delete 'configure) ; No configure script + (add-before 'build 'curses + (lambda _ + (substitute* "Makefile" + (("lcurses") "lncurses"))))))) + (inputs + `(("ncurses" ,ncurses))) + (home-page "http://git.2f30.org/noice/") + (synopsis "Small file browser") + (description + "Noice is a small curses-based file browser.") + (license license:bsd-2))) -- cgit v1.2.3 From 73aca00d53a5d810496b1f9910d98a45d3255dfe Mon Sep 17 00:00:00 2001 From: ng0 Date: Thu, 12 Jan 2017 00:39:30 +0000 Subject: gnu: Add human. * gnu/packages/suckless.scm (human): New variable. Signed-off-by: Leo Famulari --- gnu/packages/suckless.scm | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/gnu/packages/suckless.scm b/gnu/packages/suckless.scm index b52a43f1f2..2f22f300d2 100644 --- a/gnu/packages/suckless.scm +++ b/gnu/packages/suckless.scm @@ -27,6 +27,7 @@ #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix git-download) #:use-module (guix build-system gnu) #:use-module (guix build-system glib-or-gtk) #:use-module (gnu packages) @@ -467,3 +468,38 @@ cups server to be installed.") (description "Noice is a small curses-based file browser.") (license license:bsd-2))) + +;;; We want some commits that are more recent than the latest release, 0.2 +(define-public human + (let ((commit "50c80e6ba12823184b6866e06b955dbd2ccdc5d7") + (revision "1")) + (package + (name "human") + (version (string-append "0.2-" revision "." (string-take commit 7))) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "git://git.2f30.org/human.git") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "18xngm4h9vsyip52zwd79rrp1irzg6rs462lpbp61amf7hj955gn")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; No tests + #:make-flags (list "CC=gcc" + (string-append "PREFIX=" %output)) + #:phases + (modify-phases %standard-phases + (delete 'configure)))) ; No configure script + (home-page "http://git.2f30.org/human/") + (synopsis "Convert bytes to human readable formats") + (description + "Human is a small program which translate numbers into a +human readable format. By default, it tries to detect the best +factorisation, but you can force its output. +You can adjust the number of decimals with the @code{SCALE} +environment variable.") + (license license:wtfpl2)))) -- cgit v1.2.3 From e3c101eb95753d780a6fa2232ad9331f6afc0030 Mon Sep 17 00:00:00 2001 From: ng0 Date: Thu, 12 Jan 2017 00:39:31 +0000 Subject: gnu: Add fortify-headers. * gnu/packages/suckless.scm (fortify-headers): New variable. Signed-off-by: Leo Famulari --- gnu/packages/suckless.scm | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/gnu/packages/suckless.scm b/gnu/packages/suckless.scm index 2f22f300d2..5ef640b70e 100644 --- a/gnu/packages/suckless.scm +++ b/gnu/packages/suckless.scm @@ -503,3 +503,44 @@ factorisation, but you can force its output. You can adjust the number of decimals with the @code{SCALE} environment variable.") (license license:wtfpl2)))) + +(define-public fortify-headers + (package + (name "fortify-headers") + (version "0.8") + (source + (origin + (method url-fetch) + (uri (string-append "http://dl.2f30.org/releases/" + name "-" version ".tar.gz")) + (sha256 + (base32 + "1cacdczpjb49c4i1168g541wnl3i3gbpv2m2wbnmw5wddlyhgkdg")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; No tests + #:make-flags (list "CC=gcc" + (string-append "PREFIX=" %output)) + #:phases + (modify-phases %standard-phases + (delete 'configure)))) ; No configure script + (home-page "http://git.2f30.org/fortify-headers/") + (synopsis "Standalone fortify-source implementation") + (description + "This is a standalone implementation of fortify source. It provides +compile time buffer checks. It is libc-agnostic and simply overlays the +system headers by using the @code{#include_next} extension found in GCC. It was +initially intended to be used on musl based Linux distributions. + +@itemize +@item It is portable, works on *BSD, Linux, Solaris and possibly others. +@item It will only trap non-conformant programs. This means that fortify + level 2 is treated in the same way as level 1. +@item Avoids making function calls when undefined behaviour has already been + invoked. This is handled by using __builtin_trap(). +@item Support for out-of-bounds read interfaces, such as send(), write(), + fwrite() etc. +@item No ABI is enforced. All of the fortify check functions are inlined + into the resulting binary. +@end itemize\n") + (license license:isc))) -- cgit v1.2.3 From 021bdbd262585630644a21d53006b602e8780f7c Mon Sep 17 00:00:00 2001 From: ng0 Date: Thu, 12 Jan 2017 00:39:32 +0000 Subject: gnu: Add colors. * gnu/packages/suckless.scm (colors): New variable. Signed-off-by: Leo Famulari --- gnu/packages/suckless.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/suckless.scm b/gnu/packages/suckless.scm index 5ef640b70e..6280e66ac5 100644 --- a/gnu/packages/suckless.scm +++ b/gnu/packages/suckless.scm @@ -544,3 +544,33 @@ initially intended to be used on musl based Linux distributions. into the resulting binary. @end itemize\n") (license license:isc))) + +(define-public colors + (package + (name "colors") + (version "0.3") + (source + (origin + (method url-fetch) + (uri (string-append "http://dl.2f30.org/releases/" + name "-" version ".tar.gz")) + (sha256 + (base32 + "1lckmqpgj89841splng0sszbls2ag71ggkgr1wsv9y3v6y87589z")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; No tests + #:make-flags (list "CC=gcc" + (string-append "PREFIX=" %output)) + #:phases + (modify-phases %standard-phases + (delete 'configure)))) ; No configure script + (inputs + `(("libpng" ,libpng))) + (home-page "http://git.2f30.org/colors/") + (synopsis "Extract colors from pictures") + (description + "Extract colors from PNG files. It is similar to +strings(1) but for pictures. For a given input file it outputs a +colormap to stdout.") + (license license:isc))) -- cgit v1.2.3 From 37d5fc7b5ae359f0eca4bef97a41c65a741f0e39 Mon Sep 17 00:00:00 2001 From: ng0 Date: Thu, 12 Jan 2017 00:39:33 +0000 Subject: gnu: Add libutf. * gnu/packages/suckless.scm (libutf): New variable. Signed-off-by: Leo Famulari --- gnu/packages/suckless.scm | 51 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 50 insertions(+), 1 deletion(-) diff --git a/gnu/packages/suckless.scm b/gnu/packages/suckless.scm index 6280e66ac5..13b6b2a141 100644 --- a/gnu/packages/suckless.scm +++ b/gnu/packages/suckless.scm @@ -42,7 +42,8 @@ #:use-module (gnu packages linux) #:use-module (gnu packages compression) #:use-module (gnu packages cups) - #:use-module (gnu packages ncurses)) + #:use-module (gnu packages ncurses) + #:use-module (gnu packages gawk)) (define-public dwm (package @@ -574,3 +575,51 @@ initially intended to be used on musl based Linux distributions. strings(1) but for pictures. For a given input file it outputs a colormap to stdout.") (license license:isc))) + +;; No new releases were made at github, this repository is more active than +;; the one at http://git.suckless.org/libutf/ and it is +;; done by the same developer. +(define-public libutf + (let ((revision "1") + (commit "ff4c60635e1f455b0a0b4200f8183fbd5a88225b")) + (package + (name "libutf") + (version (string-append "0.0.0-" revision "." (string-take commit 7))) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/cls/libutf") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1ih5vjavilzggyr1j1z6w1z12c2fs5fg77cfnv7ami5ivsy3kg3d")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; No tests + #:make-flags (list "CC=gcc" + (string-append "PREFIX=" %output)) + #:phases + (modify-phases %standard-phases + (delete 'configure)))) ; No configure script + (inputs + `(("gawk" ,gawk))) + (home-page "https://github.com/cls/libutf") + (synopsis "Plan 9 compatible UTF-8 library") + (description + "This is a C89 UTF-8 library, with an API compatible with that of +Plan 9's libutf, but with a number of improvements: + +@itemize +@item Support for runes beyond the Basic Multilingual Plane. +@item utflen and utfnlen cannot overflow on 32- or 64-bit machines. +@item chartorune treats all invalid codepoints as though Runeerror. +@item fullrune, utfecpy, and utfnlen do not overestimate the length +of malformed runes. +@item An extra function, charntorune(p,s,n), equivalent to +fullrune(s,n) ? chartorune(p,s): 0. +@item Runeerror may be set to an alternative replacement value, such +as -1, to be used instead of U+FFFD. +@end itemize\n") + (license license:expat)))) -- cgit v1.2.3 From 0318305cdb5840e85df751fe682b2e9a78d5002f Mon Sep 17 00:00:00 2001 From: ng0 Date: Thu, 12 Jan 2017 00:39:34 +0000 Subject: gnu: Add lchat. * gnu/packages/suckless.scm (lchat): New variable. Signed-off-by: Leo Famulari --- gnu/packages/suckless.scm | 52 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 51 insertions(+), 1 deletion(-) diff --git a/gnu/packages/suckless.scm b/gnu/packages/suckless.scm index 13b6b2a141..868939b90a 100644 --- a/gnu/packages/suckless.scm +++ b/gnu/packages/suckless.scm @@ -43,7 +43,9 @@ #:use-module (gnu packages compression) #:use-module (gnu packages cups) #:use-module (gnu packages ncurses) - #:use-module (gnu packages gawk)) + #:use-module (gnu packages gawk) + #:use-module (gnu packages base) + #:use-module (gnu packages libbsd)) (define-public dwm (package @@ -623,3 +625,51 @@ fullrune(s,n) ? chartorune(p,s): 0. as -1, to be used instead of U+FFFD. @end itemize\n") (license license:expat)))) + +;; No release tarballs so far. +(define-public lchat + (let ((revision "1") + (commit "bbde23732f8c7769b982f0c1bda9b99fbf93f932")) + (package + (name "lchat") + (version (string-append "0.0.0-" revision "." (string-take commit 7))) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/younix/lchat") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "00q3rc0aa5416jvjvrj71x1wnr0331kxhvjjs7pyxgnq4xf36k63")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; No tests + #:make-flags (list "CC=gcc" + (string-append "PREFIX=" %output)) + #:phases + (modify-phases %standard-phases + (delete 'configure) ; No configure script + (add-before 'build 'libbsd + (lambda _ + (substitute* "Makefile" + (("-lutf") "-lutf -lbsd")))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin"))) + (install-file "lchat" bin) + #t)))))) + (inputs + `(("grep" ,grep) + ("ncurses" ,ncurses) + ("libutf" ,libutf) + ("libbsd" ,libbsd))) + (home-page "https://github.com/younix/lchat") + (synopsis "Line chat is a frontend for the irc client ii from suckless") + (description + "Lchat (line chat) is the little and small brother of cii. +It is a front end for ii-like chat programs. It uses tail(1) -f to get the +chat output in background.") + (license license:isc)))) -- cgit v1.2.3 From cb4d70f46e3fd0c87df8fbee2832f72bbeba4b61 Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Wed, 11 Jan 2017 16:18:49 -0500 Subject: gnu: audacity: Update to 2.1.2. * gnu/packages/audacity.scm (audacity): Update to 2.1.2. [source](uri): Update source URL. [inputs]: Replace wxwidgets-2 with wxwidgets-gtk2. [native-inputs]: Add gettext-minimal. --- gnu/packages/audacity.scm | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/gnu/packages/audacity.scm b/gnu/packages/audacity.scm index 0f9554deba..a70d0e3a69 100644 --- a/gnu/packages/audacity.scm +++ b/gnu/packages/audacity.scm @@ -24,6 +24,7 @@ #:use-module (gnu packages) #:use-module (gnu packages audio) #:use-module (gnu packages base) + #:use-module (gnu packages gettext) #:use-module (gnu packages gtk) #:use-module (gnu packages linux) #:use-module (gnu packages mp3) @@ -38,20 +39,20 @@ (define-public audacity (package (name "audacity") - (version "2.1.0") + (version "2.1.2") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/audacity/audacity/" version - "/audacity-minsrc-" version ".tar.xz")) + (uri (string-append "https://github.com/audacity/audacity/archive" + "/Audacity-" version ".zip")) (sha256 - (base32 "1cs2w3fwqylpqmfwkvlgdx5lhclpckfil7pqibl37qlbnf4qvndh")) + (base32 "1642i9d5cdmqzj6r0qdl2ldnqsvpb08znnczncysi72x6zpvb5qq")) (patches (search-patches "audacity-fix-ffmpeg-binding.patch")))) (build-system gnu-build-system) (inputs ;; TODO: Add portSMF and libwidgetextra once they're packaged. In-tree ;; versions shipping with Audacity are used for now. - `(("wxwidgets" ,wxwidgets-2) + `(("wxwidgets" ,wxwidgets-gtk2) ("gtk" ,gtk+-2) ("alsa-lib" ,alsa-lib) ("jack" ,jack-1) @@ -72,7 +73,8 @@ ("lilv" ,lilv) ("portaudio" ,portaudio))) (native-inputs - `(("pkg-config" ,pkg-config) + `(("gettext" ,gettext-minimal) ;for msgfmt + ("pkg-config" ,pkg-config) ("python" ,python-2) ("which" ,which))) (arguments -- cgit v1.2.3 From 1003fbcfc6b0e43f6938ef37def0c7f27517d92b Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Fri, 13 Jan 2017 17:11:06 -0500 Subject: gnu: python2-dogtail: Fix typo in synopsis. * gnu/packages/python.scm (python2-dogtail)[synopsis]: Remove 'ZERO WIDTH SPACE' (U+200B) character. --- gnu/packages/python.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 727e1bff26..4758606604 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -1321,7 +1321,7 @@ Python 3.3+.") (arguments `(#:python ,python-2 #:tests? #f)) ; invalid command "test" (home-page "https://fedorahosted.org/dogtail/") - (synopsis "GUI test tool and automation framework written in ​Python") + (synopsis "GUI test tool and automation framework written in Python") (description "Dogtail is a GUI test tool and automation framework written in Python. It uses Accessibility (a11y) technologies to communicate with desktop -- cgit v1.2.3 From 7988af99197c3d2f537608a46cab740a32d54e10 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 11 Jan 2017 15:12:20 -0500 Subject: gnu: Removed unused module import from (gnu packages gimp). * gnu/packages/gimp.scm (define-module): Remove (gnu packages imagemagick). --- gnu/packages/gimp.scm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/gnu/packages/gimp.scm b/gnu/packages/gimp.scm index 169183db62..904d7d9766 100644 --- a/gnu/packages/gimp.scm +++ b/gnu/packages/gimp.scm @@ -38,8 +38,7 @@ #:use-module (gnu packages pdf) #:use-module (gnu packages photo) #:use-module (gnu packages python) - #:use-module (gnu packages xorg) - #:use-module (gnu packages imagemagick)) + #:use-module (gnu packages xorg)) (define-public babl (package -- cgit v1.2.3 From 4d8e95097e5c40da9dd57d358bd189dcf82ff9bf Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 13 Jan 2017 23:30:43 +0100 Subject: challenge: Return comparison reports instead of just discrepancies. This makes it easier to distinguish between matches, mismatches, and the various cases of inconclusive reports. * guix/scripts/challenge.scm (): Rename to... (): ... this. Add 'result' field. (comparison-report): New macro. (comparison-report-predicate, comparison-report-mismatch?) (comparison-report-match?) (comparison-report-inconclusive?): New procedures. (discrepancies): Rename to... (compare-contents): ... this. Change to return a list of . Remove calls to 'warning'. (summarize-discrepancy): Rename to... (summarize-report): ... this. Adjust to . (guix-challenge): Likewise. * tests/challenge.scm ("no discrepancies") ("one discrepancy"): Adjust to new API. ("inconclusive: no substitutes") ("inconclusive: no local build"): New tests. --- guix/scripts/challenge.scm | 161 ++++++++++++++++++++++++++++----------------- tests/challenge.scm | 62 ++++++++++++++--- 2 files changed, 152 insertions(+), 71 deletions(-) diff --git a/guix/scripts/challenge.scm b/guix/scripts/challenge.scm index 9ab4fbe2a9..f14e931d74 100644 --- a/guix/scripts/challenge.scm +++ b/guix/scripts/challenge.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2015, 2016 Ludovic Courtès +;;; Copyright © 2015, 2016, 2017 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -37,12 +37,17 @@ #:use-module (ice-9 vlist) #:use-module (ice-9 format) #:use-module (web uri) - #:export (discrepancies + #:export (compare-contents - discrepancy? - discrepancy-item - discrepancy-local-sha256 - discrepancy-narinfos + comparison-report? + comparison-report-item + comparison-report-result + comparison-report-local-sha256 + comparison-report-narinfos + + comparison-report-match? + comparison-report-mismatch? + comparison-report-inconclusive? guix-challenge)) @@ -61,13 +66,38 @@ (define ensure-store-item ;XXX: move to (guix ui)? (@@ (guix scripts size) ensure-store-item)) -;; Representation of a hash mismatch for ITEM. -(define-record-type - (discrepancy item local-sha256 narinfos) - discrepancy? - (item discrepancy-item) ;string, /gnu/store/… item - (local-sha256 discrepancy-local-sha256) ;bytevector | #f - (narinfos discrepancy-narinfos)) ;list of +;; Representation of a comparison report for ITEM. +(define-record-type + (%comparison-report item result local-sha256 narinfos) + comparison-report? + (item comparison-report-item) ;string, /gnu/store/… item + (result comparison-report-result) ;'match | 'mismatch | 'inconclusive + (local-sha256 comparison-report-local-sha256) ;bytevector | #f + (narinfos comparison-report-narinfos)) ;list of + +(define-syntax comparison-report + ;; Some sort of a an enum to make sure 'result' is correct. + (syntax-rules (match mismatch inconclusive) + ((_ item 'match rest ...) + (%comparison-report item 'match rest ...)) + ((_ item 'mismatch rest ...) + (%comparison-report item 'mismatch rest ...)) + ((_ item 'inconclusive rest ...) + (%comparison-report item 'inconclusive rest ...)))) + +(define (comparison-report-predicate result) + "Return a predicate that returns true when pass a REPORT that has RESULT." + (lambda (report) + (eq? (comparison-report-result report) result))) + +(define comparison-report-mismatch? + (comparison-report-predicate 'mismatch)) + +(define comparison-report-match? + (comparison-report-predicate 'match)) + +(define comparison-report-inconclusive? + (comparison-report-predicate 'inconclusive)) (define (locally-built? store item) "Return true if ITEM was built locally." @@ -88,10 +118,10 @@ Otherwise return #f." (define-syntax-rule (report args ...) (format (current-error-port) args ...)) -(define (discrepancies items servers) +(define (compare-contents items servers) "Challenge the substitute servers whose URLs are listed in SERVERS by comparing the hash of the substitutes of ITEMS that they serve. Return the -list of discrepancies. +list of objects. This procedure does not authenticate narinfos from SERVERS, nor does it verify that they are signed by an authorized public keys. The reason is that, by @@ -100,11 +130,7 @@ taken since we do not import the archives." (define (compare item reference) ;; Return a procedure to compare the hash of ITEM with REFERENCE. (lambda (narinfo url) - (if (not narinfo) - (begin - (warning (_ "~a: no substitute at '~a'~%") - item url) - #t) + (or (not narinfo) (let ((value (narinfo-hash->sha256 (narinfo-hash narinfo)))) (bytevector=? reference value))))) @@ -116,9 +142,7 @@ taken since we do not import the archives." ((url urls ...) (if (not first) (select-reference item narinfos urls) - (narinfo-hash->sha256 (narinfo-hash first)))))) - (() - (warning (_ "no substitutes for '~a'; cannot conclude~%") item)))) + (narinfo-hash->sha256 (narinfo-hash first)))))))) (mlet* %store-monad ((local (mapm %store-monad query-locally-built-hash items)) @@ -130,42 +154,54 @@ taken since we do not import the archives." vhash)) vlist-null remote))) - (return (filter-map (lambda (item local) - (let ((narinfos (vhash-fold* cons '() item narinfos))) - (define reference - (or local - (begin - (warning (_ "no local build for '~a'~%") item) - (select-reference item narinfos servers)))) - - (if (every (compare item reference) - narinfos servers) - #f - (discrepancy item local narinfos)))) - items - local)))) - -(define* (summarize-discrepancy discrepancy - #:key (hash->string - bytevector->nix-base32-string)) - "Write to the current error port a summary of DISCREPANCY, a -object that denotes a hash mismatch." - (match discrepancy - (($ item local (narinfos ...)) + (return (map (lambda (item local) + (match (vhash-fold* cons '() item narinfos) + (() ;no substitutes + (comparison-report item 'inconclusive local '())) + ((narinfo) + (if local + (if ((compare item local) narinfo (first servers)) + (comparison-report item 'match + local (list narinfo)) + (comparison-report item 'mismatch + local (list narinfo))) + (comparison-report item 'inconclusive + local (list narinfo)))) + ((narinfos ...) + (let ((reference + (or local (select-reference item narinfos + servers)))) + (if (every (compare item reference) narinfos servers) + (comparison-report item 'match + local narinfos) + (comparison-report item 'mismatch + local narinfos)))))) + items + local)))) + +(define* (summarize-report comparison-report + #:key (hash->string + bytevector->nix-base32-string)) + "Write to the current error port a summary of REPORT, a +object." + (match comparison-report + (($ item 'mismatch local (narinfos ...)) (report (_ "~a contents differ:~%") item) (if local (report (_ " local hash: ~a~%") (hash->string local)) - (warning (_ "no local build for '~a'~%") item)) - + (report (_ " no local build for '~a'~%") item)) (for-each (lambda (narinfo) - (if narinfo - (report (_ " ~50a: ~a~%") - (uri->string (narinfo-uri narinfo)) - (hash->string - (narinfo-hash->sha256 (narinfo-hash narinfo)))) - (report (_ " ~50a: unavailable~%") - (uri->string (narinfo-uri narinfo))))) - narinfos)))) + (report (_ " ~50a: ~a~%") + (uri->string (narinfo-uri narinfo)) + (hash->string + (narinfo-hash->sha256 (narinfo-hash narinfo))))) + narinfos)) + (($ item 'inconclusive #f narinfos) + (warning (_ "could not challenge '~a': no local build~%") item)) + (($ item 'inconclusive locals ()) + (warning (_ "could not challenge '~a': no substitutes~%") item)) + (($ item 'match) + #t))) ;;; @@ -236,13 +272,14 @@ Challenge the substitutes for PACKAGE... provided by one or more servers.\n")) #:use-substitutes? #f) (run-with-store store - (mlet* %store-monad ((items (mapm %store-monad - ensure-store-item files)) - (issues (discrepancies items urls))) - (for-each summarize-discrepancy issues) - (unless (null? issues) - (exit 2)) - (return (null? issues))) + (mlet* %store-monad ((items (mapm %store-monad + ensure-store-item files)) + (reports (compare-contents items urls))) + (for-each summarize-report reports) + + (exit (cond ((any comparison-report-mismatch? reports) 2) + ((every comparison-report-match? reports) 0) + (else 1)))) #:system system)))))))) ;;; challenge.scm ends here diff --git a/tests/challenge.scm b/tests/challenge.scm index 9505042a45..387d205a64 100644 --- a/tests/challenge.scm +++ b/tests/challenge.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2015 Ludovic Courtès +;;; Copyright © 2015, 2017 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -69,8 +69,15 @@ (built-derivations (list drv)) (mlet %store-monad ((hash (query-path-hash* out))) (with-derivation-narinfo* drv (sha256 => hash) - (>>= (discrepancies (list out) (%test-substitute-urls)) - (lift1 null? %store-monad)))))))) + (>>= (compare-contents (list out) (%test-substitute-urls)) + (match-lambda + ((report) + (return + (and (string=? out (comparison-report-item report)) + (bytevector=? + (comparison-report-local-sha256 report) + hash) + (comparison-report-match? report)))))))))))) (test-assertm "one discrepancy" (let ((text (random-text))) @@ -90,20 +97,57 @@ (modulo (+ b 1) 128)) w))) (with-derivation-narinfo* drv (sha256 => wrong-hash) - (>>= (discrepancies (list out) (%test-substitute-urls)) + (>>= (compare-contents (list out) (%test-substitute-urls)) (match-lambda - ((discrepancy) + ((report) (return - (and (string=? out (discrepancy-item discrepancy)) + (and (string=? out (comparison-report-item (pk report))) + (eq? 'mismatch (comparison-report-result report)) (bytevector=? hash - (discrepancy-local-sha256 - discrepancy)) - (match (discrepancy-narinfos discrepancy) + (comparison-report-local-sha256 + report)) + (match (comparison-report-narinfos report) ((bad) (bytevector=? wrong-hash (narinfo-hash->sha256 (narinfo-hash bad)))))))))))))))) +(test-assertm "inconclusive: no substitutes" + (mlet* %store-monad ((drv (gexp->derivation "foo" #~(mkdir #$output))) + (out -> (derivation->output-path drv)) + (_ (built-derivations (list drv))) + (hash (query-path-hash* out))) + (>>= (compare-contents (list out) (%test-substitute-urls)) + (match-lambda + ((report) + (return + (and (string=? out (comparison-report-item report)) + (comparison-report-inconclusive? report) + (null? (comparison-report-narinfos report)) + (bytevector=? (comparison-report-local-sha256 report) + hash)))))))) + +(test-assertm "inconclusive: no local build" + (let ((text (random-text))) + (mlet* %store-monad ((drv (gexp->derivation "something" + #~(list #$output #$text))) + (out -> (derivation->output-path drv)) + (hash -> (sha256 #vu8()))) + (with-derivation-narinfo* drv (sha256 => hash) + (>>= (compare-contents (list out) (%test-substitute-urls)) + (match-lambda + ((report) + (return + (and (string=? out (comparison-report-item report)) + (comparison-report-inconclusive? report) + (not (comparison-report-local-sha256 report)) + (match (comparison-report-narinfos report) + ((narinfo) + (bytevector=? (narinfo-hash->sha256 + (narinfo-hash narinfo)) + hash)))))))))))) + + (test-end) ;;; Local Variables: -- cgit v1.2.3 From 153b62957cd5b08ccc2440854c90b5693ba52eea Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sat, 14 Jan 2017 00:03:32 +0100 Subject: challenge: Add '--verbose'. * guix/scripts/challenge.scm (summarize-report): Add #:verbose? parameter. [report-hashes]: New procedure. Use it. Honor VERBOSE? in the 'match case. (show-help, %options): Add '--verbose'. (guix-challenge): Honor it. --- doc/guix.texi | 5 +++++ guix/scripts/challenge.scm | 48 ++++++++++++++++++++++++++++++---------------- 2 files changed, 37 insertions(+), 16 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index c495e39f42..fa07aba5ad 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -6412,6 +6412,11 @@ The one option that matters is: Consider @var{urls} the whitespace-separated list of substitute source URLs to compare to. +@item --verbose +@itemx -v +Show details about matches (identical contents) in addition to +information about mismatches. + @end table @node Invoking guix copy diff --git a/guix/scripts/challenge.scm b/guix/scripts/challenge.scm index f14e931d74..815bb789c3 100644 --- a/guix/scripts/challenge.scm +++ b/guix/scripts/challenge.scm @@ -180,28 +180,35 @@ taken since we do not import the archives." local)))) (define* (summarize-report comparison-report - #:key (hash->string - bytevector->nix-base32-string)) + #:key + (hash->string bytevector->nix-base32-string) + verbose?) "Write to the current error port a summary of REPORT, a -object." +object. When VERBOSE?, display matches in addition to mismatches and +inconclusive reports." + (define (report-hashes item local narinfos) + (if local + (report (_ " local hash: ~a~%") (hash->string local)) + (report (_ " no local build for '~a'~%") item)) + (for-each (lambda (narinfo) + (report (_ " ~50a: ~a~%") + (uri->string (narinfo-uri narinfo)) + (hash->string + (narinfo-hash->sha256 (narinfo-hash narinfo))))) + narinfos)) + (match comparison-report (($ item 'mismatch local (narinfos ...)) (report (_ "~a contents differ:~%") item) - (if local - (report (_ " local hash: ~a~%") (hash->string local)) - (report (_ " no local build for '~a'~%") item)) - (for-each (lambda (narinfo) - (report (_ " ~50a: ~a~%") - (uri->string (narinfo-uri narinfo)) - (hash->string - (narinfo-hash->sha256 (narinfo-hash narinfo))))) - narinfos)) + (report-hashes item local narinfos)) (($ item 'inconclusive #f narinfos) (warning (_ "could not challenge '~a': no local build~%") item)) (($ item 'inconclusive locals ()) (warning (_ "could not challenge '~a': no substitutes~%") item)) - (($ item 'match) - #t))) + (($ item 'match local (narinfos ...)) + (when verbose? + (report (_ "~a contents match:~%") item) + (report-hashes item local narinfos))))) ;;; @@ -214,6 +221,8 @@ Challenge the substitutes for PACKAGE... provided by one or more servers.\n")) (display (_ " --substitute-urls=URLS compare build results with those at URLS")) + (display (_ " + -v, --verbose show details about successful comparisons")) (newline) (display (_ " -h, --help display this help and exit")) @@ -237,6 +246,11 @@ Challenge the substitutes for PACKAGE... provided by one or more servers.\n")) (alist-cons 'substitute-urls (string-tokenize arg) (alist-delete 'substitute-urls result)) + rest))) + (option '("verbose" #\v) #f #f + (lambda (opt name arg result . rest) + (apply values + (alist-cons 'verbose? #t result) rest))))) (define %default-options @@ -256,7 +270,8 @@ Challenge the substitutes for PACKAGE... provided by one or more servers.\n")) (_ #f)) opts)) (system (assoc-ref opts 'system)) - (urls (assoc-ref opts 'substitute-urls))) + (urls (assoc-ref opts 'substitute-urls)) + (verbose? (assoc-ref opts 'verbose?))) (leave-on-EPIPE (with-store store ;; Disable grafts since substitute servers normally provide only @@ -275,7 +290,8 @@ Challenge the substitutes for PACKAGE... provided by one or more servers.\n")) (mlet* %store-monad ((items (mapm %store-monad ensure-store-item files)) (reports (compare-contents items urls))) - (for-each summarize-report reports) + (for-each (cut summarize-report <> #:verbose? verbose?) + reports) (exit (cond ((any comparison-report-mismatch? reports) 2) ((every comparison-report-match? reports) 0) -- cgit v1.2.3 From dd42a330d1301fd34f36dada9d142006165abaef Mon Sep 17 00:00:00 2001 From: Raoul Jean Pierre Bonnal Date: Fri, 13 Jan 2017 20:38:25 +0100 Subject: gnu: Add r-sva. * gnu/packages/bioinformatics.scm (r-sva): New variable. --- gnu/packages/bioinformatics.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index d82b6c093c..4b9cd22f86 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -7995,3 +7995,29 @@ immunoprecipitation and target enrichment on small gene panels. Thereby, CopywriteR constitutes a widely applicable alternative to available copy number detection tools.") (license license:gpl2))) + +(define-public r-sva + (package + (name "r-sva") + (version "3.22.0") + (source + (origin + (method url-fetch) + (uri (bioconductor-uri "sva" version)) + (sha256 + (base32 + "1wc1fjm6dzlsqqagm43y57w8jh8nsh0r0m8z1p6ximcb5gxqh7hn")))) + (build-system r-build-system) + (propagated-inputs + `(("r-genefilter" ,r-genefilter))) + (home-page "http://bioconductor.org/packages/sva") + (synopsis "Surrogate variable analysis") + (description + "This package contains functions for removing batch effects and other +unwanted variation in high-throughput experiment. It also contains functions +for identifying and building surrogate variables for high-dimensional data +sets. Surrogate variables are covariates constructed directly from +high-dimensional data like gene expression/RNA sequencing/methylation/brain +imaging data that can be used in subsequent analyses to adjust for unknown, +unmodeled, or latent sources of noise.") + (license license:artistic2.0))) -- cgit v1.2.3