Merge branch 'master' into core-updates

This commit is contained in:
Marius Bakke 2018-05-06 15:56:24 +02:00
commit 12bd588346
No known key found for this signature in database
GPG Key ID: A2A06DF2A33A54FA
77 changed files with 4355 additions and 1687 deletions

View File

@ -235,6 +235,7 @@ Services
* X Window:: Graphical display. * X Window:: Graphical display.
* Printing Services:: Local and remote printer support. * Printing Services:: Local and remote printer support.
* Desktop Services:: D-Bus and desktop services. * Desktop Services:: D-Bus and desktop services.
* Sound Services:: ALSA and Pulseaudio services.
* Database Services:: SQL databases, key-value stores, etc. * Database Services:: SQL databases, key-value stores, etc.
* Mail Services:: IMAP, POP3, SMTP, and all that. * Mail Services:: IMAP, POP3, SMTP, and all that.
* Messaging Services:: Messaging services. * Messaging Services:: Messaging services.
@ -9697,6 +9698,7 @@ declaration.
* X Window:: Graphical display. * X Window:: Graphical display.
* Printing Services:: Local and remote printer support. * Printing Services:: Local and remote printer support.
* Desktop Services:: D-Bus and desktop services. * Desktop Services:: D-Bus and desktop services.
* Sound Services:: ALSA and Pulseaudio services.
* Database Services:: SQL databases, key-value stores, etc. * Database Services:: SQL databases, key-value stores, etc.
* Mail Services:: IMAP, POP3, SMTP, and all that. * Mail Services:: IMAP, POP3, SMTP, and all that.
* Messaging Services:: Messaging services. * Messaging Services:: Messaging services.
@ -12842,6 +12844,48 @@ bluetooth keyboard or mouse.
Users need to be in the @code{lp} group to access the D-Bus service. Users need to be in the @code{lp} group to access the D-Bus service.
@end deffn @end deffn
@node Sound Services
@subsubsection Sound Services
@cindex sound support
@cindex ALSA
@cindex PulseAudio, sound support
The @code{(gnu services sound)} module provides an
@code{alsa-service-type} service to generate an ALSA
@file{/etc/asound.conf} configuration file. This configuration file is
what allows applications that produce sound using ALSA to be correctly
handled.
@deffn {Scheme Variable} alsa-service-type
This is the type for the @uref{https://alsa-project.org/, ALSA},
@command{alsa-configuration} record as in this example:
@example
(service alsa-service-type)
@end example
See below for details about @code{alsa-configuration}.
@end deffn
@deftp {Data Type} alsa-configuration
Data type representing the configuration for @code{alsa-service}.
@table @asis
@item @code{pulseaudio?} (default: @var{#t})
Whether ALSA applications should transparently be made to use the
@uref{http://www.pulseaudio.org/, PulseAudio} sound server.
Using PulseAudio allows you to run several sound-producing applications
at the same time and to individual control them @i{via}
@command{pavucontrol}, among other things.
@item @code{extra-options} (default: @var{""})
String to append to the @file{asound.conf} file.
@end table
@end deftp
@node Database Services @node Database Services
@subsubsection Database Services @subsubsection Database Services

View File

@ -480,6 +480,7 @@ GNU_SYSTEM_MODULES = \
%D%/services/networking.scm \ %D%/services/networking.scm \
%D%/services/nfs.scm \ %D%/services/nfs.scm \
%D%/services/shepherd.scm \ %D%/services/shepherd.scm \
%D%/services/sound.scm \
%D%/services/herd.scm \ %D%/services/herd.scm \
%D%/services/pm.scm \ %D%/services/pm.scm \
%D%/services/rsync.scm \ %D%/services/rsync.scm \
@ -557,6 +558,7 @@ dist_patch_DATA = \
%D%/packages/patches/aegis-test-fixup-1.patch \ %D%/packages/patches/aegis-test-fixup-1.patch \
%D%/packages/patches/aegis-test-fixup-2.patch \ %D%/packages/patches/aegis-test-fixup-2.patch \
%D%/packages/patches/agg-am_c_prototype.patch \ %D%/packages/patches/agg-am_c_prototype.patch \
%D%/packages/patches/amule-crypto-6.patch \
%D%/packages/patches/ansible-wrap-program-hack.patch \ %D%/packages/patches/ansible-wrap-program-hack.patch \
%D%/packages/patches/antiword-CVE-2014-8123.patch \ %D%/packages/patches/antiword-CVE-2014-8123.patch \
%D%/packages/patches/antlr3-3_1-fix-java8-compilation.patch \ %D%/packages/patches/antlr3-3_1-fix-java8-compilation.patch \
@ -697,7 +699,6 @@ dist_patch_DATA = \
%D%/packages/patches/gd-CVE-2018-5711.patch \ %D%/packages/patches/gd-CVE-2018-5711.patch \
%D%/packages/patches/gd-fix-tests-on-i686.patch \ %D%/packages/patches/gd-fix-tests-on-i686.patch \
%D%/packages/patches/gd-freetype-test-failure.patch \ %D%/packages/patches/gd-freetype-test-failure.patch \
%D%/packages/patches/gegl-CVE-2012-4433.patch \
%D%/packages/patches/gemma-intel-compat.patch \ %D%/packages/patches/gemma-intel-compat.patch \
%D%/packages/patches/geoclue-config.patch \ %D%/packages/patches/geoclue-config.patch \
%D%/packages/patches/ghc-8.0-fall-back-to-madv_dontneed.patch \ %D%/packages/patches/ghc-8.0-fall-back-to-madv_dontneed.patch \
@ -707,11 +708,6 @@ dist_patch_DATA = \
%D%/packages/patches/ghostscript-no-header-creationdate.patch \ %D%/packages/patches/ghostscript-no-header-creationdate.patch \
%D%/packages/patches/ghostscript-runpath.patch \ %D%/packages/patches/ghostscript-runpath.patch \
%D%/packages/patches/giflib-make-reallocarray-private.patch \ %D%/packages/patches/giflib-make-reallocarray-private.patch \
%D%/packages/patches/gimp-CVE-2017-17784.patch \
%D%/packages/patches/gimp-CVE-2017-17785.patch \
%D%/packages/patches/gimp-CVE-2017-17786.patch \
%D%/packages/patches/gimp-CVE-2017-17787.patch \
%D%/packages/patches/gimp-CVE-2017-17789.patch \
%D%/packages/patches/glib-networking-ssl-cert-file.patch \ %D%/packages/patches/glib-networking-ssl-cert-file.patch \
%D%/packages/patches/glib-tests-timer.patch \ %D%/packages/patches/glib-tests-timer.patch \
%D%/packages/patches/glibc-CVE-2015-5180.patch \ %D%/packages/patches/glibc-CVE-2015-5180.patch \
@ -857,7 +853,6 @@ dist_patch_DATA = \
%D%/packages/patches/libffi-3.2.1-complex-alpha.patch \ %D%/packages/patches/libffi-3.2.1-complex-alpha.patch \
%D%/packages/patches/libjxr-fix-function-signature.patch \ %D%/packages/patches/libjxr-fix-function-signature.patch \
%D%/packages/patches/libjxr-fix-typos.patch \ %D%/packages/patches/libjxr-fix-typos.patch \
%D%/packages/patches/liboop-mips64-deplibs-fix.patch \
%D%/packages/patches/libotr-test-auth-fix.patch \ %D%/packages/patches/libotr-test-auth-fix.patch \
%D%/packages/patches/liblxqt-include.patch \ %D%/packages/patches/liblxqt-include.patch \
%D%/packages/patches/libmad-armv7-thumb-pt1.patch \ %D%/packages/patches/libmad-armv7-thumb-pt1.patch \
@ -1090,7 +1085,6 @@ dist_patch_DATA = \
%D%/packages/patches/scotch-graph-induce-type-64.patch \ %D%/packages/patches/scotch-graph-induce-type-64.patch \
%D%/packages/patches/sdl-libx11-1.6.patch \ %D%/packages/patches/sdl-libx11-1.6.patch \
%D%/packages/patches/seq24-rename-mutex.patch \ %D%/packages/patches/seq24-rename-mutex.patch \
%D%/packages/patches/shadow-CVE-2018-7169.patch \
%D%/packages/patches/sharutils-CVE-2018-1000097.patch \ %D%/packages/patches/sharutils-CVE-2018-1000097.patch \
%D%/packages/patches/shishi-fix-libgcrypt-detection.patch \ %D%/packages/patches/shishi-fix-libgcrypt-detection.patch \
%D%/packages/patches/slim-session.patch \ %D%/packages/patches/slim-session.patch \

View File

@ -358,16 +358,15 @@ hostname.")
(define-public shadow (define-public shadow
(package (package
(name "shadow") (name "shadow")
(version "4.5") (version "4.6")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
"https://github.com/shadow-maint/shadow/releases/" "https://github.com/shadow-maint/shadow/releases/"
"download/" version "/shadow-" version ".tar.xz")) "download/" version "/shadow-" version ".tar.xz"))
(patches (search-patches "shadow-CVE-2018-7169.patch"))
(sha256 (sha256
(base32 (base32
"0hdpai78n63l3v3fgr3kkiqzhd0awrpfnnzz4mf7lmxdh61qb37w")))) "10smy01km2bqjjvsd2jz17zvrxbzj89qczyb1amk38j28bcci609"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(;; Assume System V `setpgrp (void)', which is the default on GNU `(;; Assume System V `setpgrp (void)', which is the default on GNU
@ -959,7 +958,7 @@ system administrator.")
(define-public sudo (define-public sudo
(package (package
(name "sudo") (name "sudo")
(version "1.8.22") (version "1.8.23")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (uri
@ -969,7 +968,7 @@ system administrator.")
version ".tar.gz"))) version ".tar.gz")))
(sha256 (sha256
(base32 (base32
"00pxp74xkwdcmrjwy55j0k8p684jk1zx3nzdc11v30q8q8kwnmkj")) "0yg62wq8rcrbr7qvh3wgfg2g4bwanbi50cr2lf2cfyy8dydx4qyq"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
'(begin '(begin

View File

@ -51,15 +51,15 @@ formats.")
(define-public qrencode (define-public qrencode
(package (package
(name "qrencode") (name "qrencode")
(version "3.4.4") (version "4.0.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
"https://fukuchi.org/works/qrencode/qrencode-" version "https://fukuchi.org/works/qrencode/qrencode-" version
".tar.gz")) ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"0wiagx7i8p9zal53smf5abrnh9lr31mv0p36wg017401jrmf5577")))) "02vx69fl52jbcrmnydsaxcmy6nxqm9jyxzd7hr07s491d7hka069"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs `(("libpng" ,libpng))) (inputs `(("libpng" ,libpng)))
(native-inputs `(("pkg-config" ,pkg-config))) (native-inputs `(("pkg-config" ,pkg-config)))

View File

@ -211,7 +211,7 @@ GP2C, the GP to C compiler, translates GP scripts to PARI programs.")
(define-public giac-xcas (define-public giac-xcas
(package (package
(name "giac-xcas") (name "giac-xcas")
(version "1.4.9-45") (version "1.4.9-59")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
;; "~parisse/giac" is not used because the maintainer regularly ;; "~parisse/giac" is not used because the maintainer regularly
@ -223,7 +223,7 @@ GP2C, the GP to C compiler, translates GP scripts to PARI programs.")
"source/giac_" version ".tar.gz")) "source/giac_" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"11za5rznr2dgy6598y4iwrcyi86w7f601ci9i794kl8k22pqhcd8")))) "0dv5p5y6gkrsmz3xa7fw87rjyabwdwk09mqb09kb7gai9n9dgayk"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:phases `(#:phases

View File

@ -4,7 +4,7 @@
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2015 Alex Kost <alezost@gmail.com> ;;; Copyright © 2015 Alex Kost <alezost@gmail.com>
;;; Copyright © 2015, 2016 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015, 2016 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017 Alex Griffin <a@ajgrf.com> ;;; Copyright © 2016, 2017 Alex Griffin <a@ajgrf.com>
;;; Copyright © 2016 Nils Gillmann <ng0@n0.is> ;;; Copyright © 2016 Nils Gillmann <ng0@n0.is>
;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org> ;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org>
@ -572,16 +572,7 @@ based on human speech recordings.")
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'remove-compiler-flags (add-after 'unpack 'remove-compiler-flags
(lambda _ (lambda _
(substitute* '("src/casynth/CMakeLists.txt" (substitute* (find-files "." "CMakeLists.txt")
"src/cheapdist/CMakeLists.txt"
"src/duffer/CMakeLists.txt"
"src/envfollower/CMakeLists.txt"
"src/ewham/CMakeLists.txt"
"src/hip2b/CMakeLists.txt"
"src/lushlife/CMakeLists.txt"
"src/powercut/CMakeLists.txt"
"src/powerup/CMakeLists.txt"
"src/stuck/CMakeLists.txt")
(("-msse2 -mfpmath=sse") "")) (("-msse2 -mfpmath=sse") ""))
#t))))) #t)))))
(inputs (inputs

View File

@ -77,7 +77,7 @@ DNS-SD (for \"DNS-Based Service Discovery\") protocols.")
(define-public nss-mdns (define-public nss-mdns
(package (package
(name "nss-mdns") (name "nss-mdns")
(version "0.12") (version "0.14.1")
(home-page "https://github.com/lathiat/nss-mdns") (home-page "https://github.com/lathiat/nss-mdns")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
@ -85,32 +85,13 @@ DNS-SD (for \"DNS-Based Service Discovery\") protocols.")
name "-" version ".tar.gz")) name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1p2vj9fz4kzrjrj81ipf4qwgnr2n7a8cbzw4bpk18xyqhdx8h775")) "134wdr0n9cm5ab4g6dwq76lvzqns9dcylr470i2xxjimnw0l22d2"))))
(patches
(list (origin
;; See
;; <https://github.com/lathiat/nss-mdns/issues/26#issuecomment-364781799>.
(uri (string-append
home-page
"/commit/31ccbec3b4f054e590c7c880d8a8a50cfc97127d.patch"))
(sha256
(base32
"0b1jmhnkpsczbph4ala7x3rafwxdg93277s30iaxh37jnvgjnhsd"))
(method url-fetch))))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:phases (modify-phases %standard-phases ;; The Avahi daemon socket is expected by 'configure.ac' to be at
(add-after 'unpack 'set-avahi-socket-name ;; "$(localstatedir)/run/avahi-daemon/socket", but nowadays it lives in
(lambda _ ;; /run/avahi-daemon/socket. Remove the "$(localstatedir)" bit.
;; The Avahi daemon socket is expected by '(#:configure-flags '("AVAHI_SOCKET=/run/avahi-daemon/socket")))
;; src/Makefile.am to be at
;; "$(localstatedir)/run/avahi-daemon/socket", but
;; nowadays it lives in /run/avahi-daemon/socket.
;; Remove the "$(localstatedir)" bit.
(substitute* "src/Makefile.in"
(("\\$\\(localstatedir)/run/avahi-daemon/socket")
"/run/avahi-daemon/socket"))
#t)))))
(synopsis "Multicast DNS Name Service Switch (@dfn{NSS}) plug-in") (synopsis "Multicast DNS Name Service Switch (@dfn{NSS}) plug-in")
(description (description
"Nss-mdns is a plug-in for the GNU C Library's Name Service Switch "Nss-mdns is a plug-in for the GNU C Library's Name Service Switch

View File

@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2018 Roel Janssen <roel@gnu.org> ;;; Copyright © 2018 Roel Janssen <roel@gnu.org>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -151,14 +152,14 @@ processing to visualization and annotation.")
(define-public r-multtest (define-public r-multtest
(package (package
(name "r-multtest") (name "r-multtest")
(version "2.34.0") (version "2.36.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "multtest" version)) (uri (bioconductor-uri "multtest" version))
(sha256 (sha256
(base32 (base32
"0n11rd49xl2vn3ldmfips7d3yb70l8npjcqsxyswr9ypjhgzkv9j")))) "11949h2kglw13x8haaj4clg4jim1mwh5n98n9zxp9mmgn01z1lp0"))))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
`(("r-survival" ,r-survival) `(("r-survival" ,r-survival)

View File

@ -11748,7 +11748,7 @@ accurate as existing quantification tools.")
code that is used in the Cufflinks codebase. The goal of this library is to code that is used in the Cufflinks codebase. The goal of this library is to
provide this functionality without the necessity of drawing in a heavy-weight provide this functionality without the necessity of drawing in a heavy-weight
dependency like SeqAn.") dependency like SeqAn.")
(license (license:x11-style "http://www.boost.org/LICENSE_1_0.txt")))) (license (license:x11-style "https://www.boost.org/LICENSE_1_0.txt"))))
(define-public libdivsufsort (define-public libdivsufsort
(package (package

View File

@ -62,7 +62,7 @@
(define-public transmission (define-public transmission
(package (package
(name "transmission") (name "transmission")
(version "2.93") (version "2.94")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -70,7 +70,7 @@
"master/transmission-" version ".tar.xz")) "master/transmission-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"02xrp49gsv4jkbzp37qrwlnb9nlja08s92dyvgdbr6a4187945c8")))) "0zbbj7rlm6m7vb64x68a64cwmijhsrwx9l63hbwqs7zr9742qi1m"))))
(build-system glib-or-gtk-build-system) (build-system glib-or-gtk-build-system)
(outputs '("out" ; library and command-line interface (outputs '("out" ; library and command-line interface
"gui")) ; graphical user interface "gui")) ; graphical user interface

View File

@ -111,12 +111,12 @@
(lambda* (#:key make-flags #:allow-other-keys) (lambda* (#:key make-flags #:allow-other-keys)
(apply invoke "./b2" "install" make-flags)))))) (apply invoke "./b2" "install" make-flags))))))
(home-page "http://www.boost.org") (home-page "https://www.boost.org")
(synopsis "Peer-reviewed portable C++ source libraries") (synopsis "Peer-reviewed portable C++ source libraries")
(description (description
"A collection of libraries intended to be widely useful, and usable "A collection of libraries intended to be widely useful, and usable
across a broad spectrum of applications.") across a broad spectrum of applications.")
(license (license:x11-style "http://www.boost.org/LICENSE_1_0.txt" (license (license:x11-style "https://www.boost.org/LICENSE_1_0.txt"
"Some components have other similar licences.")))) "Some components have other similar licences."))))
(define-public boost-sync (define-public boost-sync
@ -149,7 +149,7 @@ across a broad spectrum of applications.")
(description "The Boost.Sync library provides mutexes, semaphores, locks (description "The Boost.Sync library provides mutexes, semaphores, locks
and events and other thread related facilities. Boost.Sync originated from and events and other thread related facilities. Boost.Sync originated from
Boost.Thread.") Boost.Thread.")
(license (license:x11-style "http://www.boost.org/LICENSE_1_0.txt"))))) (license (license:x11-style "https://www.boost.org/LICENSE_1_0.txt")))))
(define-public mdds (define-public mdds
(package (package

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2016, 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016, 2017 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; ;;;
@ -83,7 +83,7 @@ standard.")
(build-system trivial-build-system) (build-system trivial-build-system)
(native-inputs '()) (native-inputs '())
(inputs `(("tcc" ,tcc) (inputs `(("tcc" ,tcc)
("guile" ,guile-2.0))) ("guile" ,guile-2.2)))
;; By default TCC does not honor any search path environment variable. ;; By default TCC does not honor any search path environment variable.
;; This wrapper adds them. ;; This wrapper adds them.

View File

@ -396,6 +396,8 @@ test coverage and has a web user interface that will refresh automatically.")
(home-page "https://github.com/smartystreets/goconvey") (home-page "https://github.com/smartystreets/goconvey")
(license license:expat))) (license license:expat)))
;; XXX When updating, check whether ZNC's GOOGLETEST-SOURCES can be
;; switched back to simply using (PACKAGE-SOURCE ...).
(define-public googletest (define-public googletest
(package (package
(name "googletest") (name "googletest")

View File

@ -653,14 +653,14 @@ rows, dropping names) to see if the modified versions are identical.")
(define-public r-dendextend (define-public r-dendextend
(package (package
(name "r-dendextend") (name "r-dendextend")
(version "1.7.0") (version "1.8.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "dendextend" version)) (uri (cran-uri "dendextend" version))
(sha256 (sha256
(base32 (base32
"1krvqadnnh53xx5ql7bwzxaif6a317jzbs1m00gnc6jnj03rfl5d")))) "1virn3c232xwcq3d0hhkgjh5gpzl01s39iwii5gxcm9mnsxjzdrh"))))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
`(("r-fpc" ,r-fpc) `(("r-fpc" ,r-fpc)
@ -1537,14 +1537,14 @@ Delaunay triangulation and convex hull computation.")
(define-public r-ddalpha (define-public r-ddalpha
(package (package
(name "r-ddalpha") (name "r-ddalpha")
(version "1.3.2") (version "1.3.3")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "ddalpha" version)) (uri (cran-uri "ddalpha" version))
(sha256 (sha256
(base32 (base32
"1i2zcz20zy9xd42kdz09njbkq07mj2pp6f07z6dnwi5hrmvhbh9r")))) "0g4iqhrz2gym05q40ih6srilyajw2l2mv46pchn65bc7hw4vkgrk"))))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
`(("r-bh" ,r-bh) `(("r-bh" ,r-bh)
@ -2370,14 +2370,14 @@ timeout. It can also poll several processes at once.")
(define-public r-tsp (define-public r-tsp
(package (package
(name "r-tsp") (name "r-tsp")
(version "1.1-5") (version "1.1-6")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "TSP" version)) (uri (cran-uri "TSP" version))
(sha256 (sha256
(base32 (base32
"03xxfr5kk4zhzpb1q1pwncdp0dhchm9b48wzhvvxn2dxf3mnby2w")))) "1ym97xl2icjpfkrici0wig29w06bb704hp51v7h5liygjlwpkhlc"))))
(properties `((upstream-name . "TSP"))) (properties `((upstream-name . "TSP")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs `(("r-foreach" ,r-foreach))) (propagated-inputs `(("r-foreach" ,r-foreach)))
@ -3125,18 +3125,19 @@ creation and manipulation of WAVE audio files.")
(define-public r-np (define-public r-np
(package (package
(name "r-np") (name "r-np")
(version "0.60-6") (version "0.60-7")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "np" version)) (uri (cran-uri "np" version))
(sha256 (sha256
(base32 (base32
"1y72x5j9j9mcgcy2xizk31gl843hfkngxdn8s4qw7yhw2qj79hsr")))) "02h62n5xclr01fx88ayp7y1s9gcnb11zb1vqshvdcq31v18h7kf2"))))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
`(("r-boot" ,r-boot) `(("r-boot" ,r-boot)
("r-cubature" ,r-cubature) ("r-cubature" ,r-cubature)
("r-quadprog" ,r-quadprog)
("r-quantreg" ,r-quantreg))) ("r-quantreg" ,r-quantreg)))
(home-page "https://github.com/JeffreyRacine/R-Package-np") (home-page "https://github.com/JeffreyRacine/R-Package-np")
(synopsis "Non-parametric kernel smoothing methods for mixed data types") (synopsis "Non-parametric kernel smoothing methods for mixed data types")
@ -3853,14 +3854,14 @@ exchanging spatial objects with other R packages.")
(define-public r-later (define-public r-later
(package (package
(name "r-later") (name "r-later")
(version "0.7.1") (version "0.7.2")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "later" version)) (uri (cran-uri "later" version))
(sha256 (sha256
(base32 (base32
"0z9jymmclkq9zcg1fd8p6gsnm5z1sn3n9pfz3bs03qjrkbizgrvz")))) "0l5ln7sjyi2rj7bx8iamxykqlfarv05zb9882ikizppb1cr1hgyw"))))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
`(("r-bh" ,r-bh) `(("r-bh" ,r-bh)

File diff suppressed because it is too large Load Diff

View File

@ -1046,7 +1046,7 @@ emulation community. It provides highly accurate emulation.")
(define-public retroarch (define-public retroarch
(package (package
(name "retroarch") (name "retroarch")
(version "1.7.2") (version "1.7.3")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -1054,7 +1054,7 @@ emulation community. It provides highly accurate emulation.")
version ".tar.gz")) version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 "1y9fakr41h6xpddpkj12mcw1kgldvy76nzvxm5jk5v7iyiks4c6k")))) (base32 "1si78dbwbsq4i0r42q94nmlpaxdyqch113nxavdprf4vc1224356"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:tests? #f ; no tests '(#:tests? #f ; no tests
@ -1088,6 +1088,7 @@ emulation community. It provides highly accurate emulation.")
("openal" ,openal) ("openal" ,openal)
("pulseaudio" ,pulseaudio) ("pulseaudio" ,pulseaudio)
("python" ,python) ("python" ,python)
("qtbase" ,qtbase)
("sdl" ,sdl2) ("sdl" ,sdl2)
("udev" ,eudev) ("udev" ,eudev)
("vulkan-icd-loader" ,vulkan-icd-loader) ("vulkan-icd-loader" ,vulkan-icd-loader)

View File

@ -1082,14 +1082,14 @@ bindings for Python, Java, OCaml and more.")
(define-public radare2 (define-public radare2
(package (package
(name "radare2") (name "radare2")
(version "1.6.0") (version "2.5.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "http://radare.mikelloc.com/get/" version "/" (uri (string-append "http://radare.mikelloc.com/get/" version "/"
name "-" version ".tar.gz")) name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"16ggsk40zz6hyvclvqj1r4bh4hb78jf0d6ppry1jk4r0j30wm7cm")) "17h4ba5qqahfi8mi4x2dcvq87cqpir5v2dlaqbvmay6vby4zh4v7"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
'(begin '(begin

View File

@ -262,8 +262,7 @@ Libraries with some extra bells and whistles.")
"16zydv7z94aw3rywmb9gr8ya85k7b75h22wng95lfx1x0y1yb0ad")))) "16zydv7z94aw3rywmb9gr8ya85k7b75h22wng95lfx1x0y1yb0ad"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:configure-flags '("--enable-mount-eeze") `(#:phases
#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-before 'configure 'set-system-actions (add-before 'configure 'set-system-actions
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
@ -275,6 +274,8 @@ Libraries with some extra bells and whistles.")
(("/usr/share/X11/xkb/rules/xorg.lst") (("/usr/share/X11/xkb/rules/xorg.lst")
(string-append xkeyboard (string-append xkeyboard
"/share/X11/xkb/rules/base.lst"))) "/share/X11/xkb/rules/base.lst")))
(substitute* "src/modules/everything/evry_plug_apps.c"
(("/usr/bin/") ""))
(substitute* "configure" (substitute* "configure"
(("/bin/mount") (string-append utils "/bin/mount")) (("/bin/mount") (string-append utils "/bin/mount"))
(("/bin/umount") (string-append utils "/bin/umount")) (("/bin/umount") (string-append utils "/bin/umount"))

View File

@ -27,14 +27,14 @@
(define-public freeipmi (define-public freeipmi
(package (package
(name "freeipmi") (name "freeipmi")
(version "1.6.1") (version "1.6.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://gnu/freeipmi/freeipmi-" (uri (string-append "mirror://gnu/freeipmi/freeipmi-"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0jdm1nwsnkj0nzjmcqprmjk25449mhjj25khwzpq3mpjw440wmd2")))) "0jhjf21gn1m9lhjsc1ard9zymq25mk7rxcyygjfxgy0vb4j36l9i"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
`(("libgcrypt" ,libgcrypt))) `(("libgcrypt" ,libgcrypt)))

View File

@ -233,10 +233,19 @@ PCM data.")
(base32 (base32
"13j1m92zhxwkaaja3lg5x0h0b28mrrawdzk9d3hd19031akfxwb3")))) "13j1m92zhxwkaaja3lg5x0h0b28mrrawdzk9d3hd19031akfxwb3"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments
'(#:phases (modify-phases %standard-phases
(add-before 'build 'no-Werror
(lambda _
;; Don't abort builds due to things like GLib
;; deprecation warnings.
(substitute* (find-files "." "^Makefile\\.in$")
(("-Werror") ""))
#t)))))
(native-inputs `(("pkgconfig" ,pkg-config))) (native-inputs `(("pkgconfig" ,pkg-config)))
(inputs `(("bdb" ,bdb) (inputs `(("bdb" ,bdb)
("glib" ,glib) ("glib" ,glib)
("guile" ,guile-2.0) ("guile" ,guile-2.2)
("libmicrohttpd" ,libmicrohttpd) ("libmicrohttpd" ,libmicrohttpd)
("ncurses" ,ncurses) ("ncurses" ,ncurses)
("sdl" ,sdl) ("sdl" ,sdl)
@ -541,22 +550,15 @@ archive on a per-file basis.")
(define-public love (define-public love
(package (package
(name "love") (name "love")
(version "0.10.2") (version "11.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://bitbucket.org/rude/love/downloads/" (uri (string-append "https://bitbucket.org/rude/love/downloads/"
"love-" version "-linux-src.tar.gz")) "love-" version "-linux-src.tar.gz"))
(sha256 (sha256
(base32 (base32
"11x346pw0gqad8nmkmywzx4xpcbfc3dslbrdw5x94n1i25mk0sxj")) "1pkwiszmjs0xrwk0wqbc5cp9108b1y8gwsid0gqk1s0x09q9lpmw"))
(modules '((guix build utils))) (modules '((guix build utils)))))
(snippet
'(begin
;; Build with luajit 2.1.0-beta3. Fixed in love 0.11.
;; See <https://bitbucket.org/rude/love/issues/1277>.
(substitute* "src/libraries/luasocket/libluasocket/lua.h"
(("> 501") ">= 501"))
#t))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("pkg-config" ,pkg-config))) `(("pkg-config" ,pkg-config)))

View File

@ -777,27 +777,32 @@ utilizing the art assets from the @code{SuperTux} project.")
license:gpl3+)))) license:gpl3+))))
(define-public roguebox-adventures (define-public roguebox-adventures
(let ((commit "19a2c340b34d5b4e7cc89118c7aedc058babbd93")
(revision "1"))
(package (package
(name "roguebox-adventures") (name "roguebox-adventures")
(version (git-version "2.1.2" revision commit)) (version "2.2.1")
(source (source
(origin (origin
(method git-fetch) (method url-fetch)
(uri (uri (string-append
(git-reference "http://download.tuxfamily.org/rba/RogueBoxAdventures_v"
(url "https://git.postactiv.com/themightyglider/RogueBoxAdventures.git") (string-join (string-split version #\.) "_") "_Source.zip"))
(commit commit))) (file-name (string-append name "-" version ".zip"))
(file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0afmg8fjdcs3sqdp5rc7irgr7riil8jwysfjn1imfxslf1wcx5ah")))) "0kmzdgnik8fsf3bg55546l77p3mfxn2awkzfzzdn20n82rd2babw"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
'(#:tests? #f ; no check target `(#:tests? #f ; no check target
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(replace 'unpack
(lambda* (#:key source #:allow-other-keys)
(and (invoke "unzip" source)
;; The actual source is buried a few directories deep.
(chdir (string-append "RogueBoxAdventures_v"
(string-join
(string-split ,version #\.) "_")
"_Source")))))
;; no setup.py script ;; no setup.py script
(replace 'build (replace 'build
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
@ -825,27 +830,42 @@ utilizing the art assets from the @code{SuperTux} project.")
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out")) (let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin")) (bin (string-append out "/bin"))
(roguebox-adventures
(string-append bin "/roguebox-adventures"))
(data (string-append (data (string-append
out "/share/games/roguebox-adventures")) out "/share/games/roguebox-adventures"))
(lib (string-append data "/LIB"))
(doc (string-append (doc (string-append
out "/share/doc/roguebox-adventures"))) out "/share/doc/roguebox-adventures")))
(mkdir-p bin) (mkdir-p bin)
(mkdir-p doc) (mkdir-p doc)
(copy-file "main.py"
(string-append bin "/roguebox-adventures"))
(chmod (string-append bin "/roguebox-adventures") #o555)
(for-each (lambda (file) (for-each (lambda (file)
(copy-recursively file (copy-recursively file
(string-append data "/" file))) (string-append data "/" file)))
'("AUDIO" "FONT" "GRAPHIC" "LIB" "LICENSE" '("AUDIO" "FONT" "GRAPHIC" "LIB" "LICENSE"
"icon_big.png" "icon_small.png")) "icon_big.png" "icon_small.png"))
(for-each (lambda (file)
(chmod file #o555)
(install-file file lib))
'("main.py" "run.py"))
(copy-recursively "DOC" doc) (copy-recursively "DOC" doc)
(wrap-program (string-append bin "/roguebox-adventures") (call-with-output-file
`("PYTHONPATH" ":" prefix (,(string-append data "/LIB"))))) roguebox-adventures
(lambda (p)
(format p "\
#!~a
export PYTHONPATH=~a/LIB:~a
exec -a \"~a\" ~a \"$@\"\n"
(which "bash") data (getenv "PYTHONPATH")
(which "python3")
(string-append lib "/main.py"))))
(chmod roguebox-adventures #o555))
#t))))) #t)))))
(native-inputs
`(("unzip" ,unzip)))
(inputs (inputs
`(("python-pygame" ,python-pygame) `(("python-pygame" ,python-pygame)
("python-tmx" ,python-tmx))) ("python-tmx" ,python-tmx)))
@ -860,7 +880,7 @@ can be explored and changed freely.")
(license (list license:cc0 (license (list license:cc0
license:cc-by3.0 license:cc-by3.0
license:gpl3+ license:gpl3+
license:silofl1.1))))) license:silofl1.1))))
(define-public xshogi (define-public xshogi
(package (package

View File

@ -3,6 +3,7 @@
;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Leo Famulari <leo@famulari.name>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -28,6 +29,7 @@
#:use-module (guix build-system glib-or-gtk) #:use-module (guix build-system glib-or-gtk)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages algebra) #:use-module (gnu packages algebra)
#:use-module (gnu packages autotools)
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
#:use-module (gnu packages glib) #:use-module (gnu packages glib)
#:use-module (gnu packages gtk) #:use-module (gnu packages gtk)
@ -39,12 +41,13 @@
#:use-module (gnu packages pdf) #:use-module (gnu packages pdf)
#:use-module (gnu packages photo) #:use-module (gnu packages photo)
#:use-module (gnu packages python) #:use-module (gnu packages python)
#:use-module (gnu packages web)
#:use-module (gnu packages xorg)) #:use-module (gnu packages xorg))
(define-public babl (define-public babl
(package (package
(name "babl") (name "babl")
(version "0.1.40") (version "0.1.46")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (list (string-append "https://download.gimp.org/pub/babl/" (uri (list (string-append "https://download.gimp.org/pub/babl/"
@ -58,7 +61,7 @@
"/babl-" version ".tar.bz2"))) "/babl-" version ".tar.bz2")))
(sha256 (sha256
(base32 (base32
"08cdl6rcfvkhqsnhb214xzr0wbrv0956xzlrzqxcb1k1madgjanh")))) "0nwyhvfca6m35wjcccvwca7fcihzgdfyc012qi703y5d3cxl1hmv"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(home-page "http://gegl.org/babl/") (home-page "http://gegl.org/babl/")
(synopsis "Image pixel format conversion library") (synopsis "Image pixel format conversion library")
@ -75,43 +78,25 @@ provided, as well as a framework to add new color models and data types.")
(define-public gegl (define-public gegl
(package (package
(name "gegl") (name "gegl")
(version "0.2.0") (version "0.4.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (list (string-append "http://download.gimp.org/pub/gegl/" (uri (list (string-append "https://download.gimp.org/pub/gegl/"
(string-take version 3) (string-take version 3)
"/" name "-" version ".tar.bz2"))) "/" name "-" version ".tar.bz2")))
(sha256 (sha256
(base32 (base32
"09nlv06li9nrn74ifpm7223mxpg0s7cii702z72cpbwrjh6nlbnz")) "1ighk4z8nlqrzyj8w97s140hzj59564l3xv6fpzbr97m1zx2nkfh"))))
(patches (search-patches "gegl-CVE-2012-4433.patch"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(;; More than just the one test disabled below now fails; disable them '(#:configure-flags '("LDFLAGS=-lm")))
;; all according to the rationale given below. ;; These are propagated to satisfy 'gegl-0.4.pc'.
#:tests? #f (propagated-inputs
#:configure-flags '("LDFLAGS=-lm")
#:phases
(modify-phases %standard-phases
(add-before 'build 'pre-build
(lambda _
;; This test program seems to crash on exit. Specifically, whilst
;; g_object_unreffing bufferA and bufferB - This seems to be a bug
;; in the destructor. This is just a test program so will not have
;; any wider effect, although might be hiding another problem.
;; According to advice received on irc.gimp.org#gegl although 0.2.0
;; is the latest released version, any bug reports against it will
;; be ignored. So we are on our own.
(substitute* "tools/img_cmp.c"
(("g_object_unref \\(buffer.\\);") ""))
(substitute* "tests/compositions/Makefile"
(("/bin/sh") (which "sh")))
#t)))))
(inputs
`(("babl" ,babl) `(("babl" ,babl)
("glib" ,glib) ("glib" ,glib)
("cairo" ,cairo) ("json-glib" ,json-glib)))
(inputs
`(("cairo" ,cairo)
("pango" ,pango) ("pango" ,pango)
("libpng" ,libpng) ("libpng" ,libpng)
("libjpeg" ,libjpeg-8))) ("libjpeg" ,libjpeg-8)))
@ -131,23 +116,18 @@ buffers.")
(define-public gimp (define-public gimp
(package (package
(name "gimp") (name "gimp")
(version "2.8.22") (version "2.10.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "http://download.gimp.org/pub/gimp/v" (uri (string-append "https://download.gimp.org/pub/gimp/v"
(version-major+minor version) (version-major+minor version)
"/gimp-" version ".tar.bz2")) "/gimp-" version ".tar.bz2"))
(patches (search-patches "gimp-CVE-2017-17784.patch"
"gimp-CVE-2017-17785.patch"
"gimp-CVE-2017-17786.patch"
"gimp-CVE-2017-17787.patch"
"gimp-CVE-2017-17789.patch"))
(sha256 (sha256
(base32 (base32
"12k3lp938qdc9cqj29scg55f3bb8iav2fysd29w0s49bqmfa71wi")))) "1qkxaigbfkx26xym5nzrgfrmn97cbnhn63v1saaha2nbi3xrdk3z"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(outputs '("out" (outputs '("out"
"doc")) ;5 MiB of gtk-doc HTML "doc")) ;9 MiB of gtk-doc HTML
(arguments (arguments
'(#:configure-flags (list (string-append "--with-html-dir=" '(#:configure-flags (list (string-append "--with-html-dir="
(assoc-ref %outputs "doc") (assoc-ref %outputs "doc")
@ -171,21 +151,27 @@ buffers.")
(inputs (inputs
`(("babl" ,babl) `(("babl" ,babl)
("glib" ,glib) ("glib" ,glib)
("glib-networking" ,glib-networking)
("libtiff" ,libtiff) ("libtiff" ,libtiff)
("libjpeg" ,libjpeg-8) ("libjpeg" ,libjpeg-8)
("atk" ,atk) ("atk" ,atk)
("gexiv2" ,gexiv2)
("gtk+" ,gtk+-2) ("gtk+" ,gtk+-2)
("libmypaint" ,libmypaint)
("mypaint-brushes" ,mypaint-brushes)
("exif" ,libexif) ; optional, EXIF + XMP support ("exif" ,libexif) ; optional, EXIF + XMP support
("lcms" ,lcms) ; optional, color management ("lcms" ,lcms) ; optional, color management
("librsvg" ,librsvg) ; optional, SVG support ("librsvg" ,librsvg) ; optional, SVG support
("poppler" ,poppler) ; optional, PDF support ("poppler" ,poppler) ; optional, PDF support
("poppler-data" ,poppler-data)
("python" ,python-2) ; optional, Python support ("python" ,python-2) ; optional, Python support
("python2-pygtk" ,python2-pygtk) ; optional, Python support ("python2-pygtk" ,python2-pygtk) ; optional, Python support
("gegl" ,gegl))) ("gegl" ,gegl)))
(native-inputs (native-inputs
`(("pkg-config" ,pkg-config) `(("glib:bin" ,glib "bin") ; for glib-compile-resources and gdbus-codegen
("pkg-config" ,pkg-config)
("intltool" ,intltool))) ("intltool" ,intltool)))
(home-page "http://gimp.org") (home-page "https://www.gimp.org")
(synopsis "GNU Image Manipulation Program") (synopsis "GNU Image Manipulation Program")
(description (description
"GIMP is an application for image manipulation tasks such as photo "GIMP is an application for image manipulation tasks such as photo
@ -243,3 +229,58 @@ an image, allowing you to work with the transformed image inside GIMP. You
can draw or apply filters in fourier space and get the modified image with an can draw or apply filters in fourier space and get the modified image with an
inverse fourier transform.") inverse fourier transform.")
(license license:gpl3+))) (license license:gpl3+)))
(define-public libmypaint
(package
(name "libmypaint")
(version "1.3.0")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/mypaint/libmypaint/"
"releases/download/v" version "/libmypaint-"
version ".tar.xz"))
(sha256
(base32
"0wd6jk69vmhsq1mdw96v0fh7b28n3glkr5ca466zcq7agzaxj1va"))))
(build-system gnu-build-system)
(native-inputs
`(("intltool" ,intltool)
("pkg-config" ,pkg-config)))
;; As needed by 'libmypaint.pc'.
(propagated-inputs
`(("json-c" ,json-c)
("gobject-introspection" ,gobject-introspection)))
(inputs
`(("glib" ,glib)))
(synopsis "Artistic brushes library")
(description "Libmypaint, also called \"brushlib\", is a library for making
brushstrokes which is used by MyPaint and GIMP.")
(home-page "http://mypaint.org")
(license license:isc)))
(define-public mypaint-brushes
(package
(name "mypaint-brushes")
(version "1.3.0")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/Jehan/mypaint-brushes/"
"archive/v" version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"055j2rgkav2024zl6y5hxb2ra0vbx58607d6sz7ml2351r1bcjvh"))))
(build-system gnu-build-system)
(arguments
'(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'bootstrap
(lambda _ (invoke "sh" "./autogen.sh"))))))
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)))
(synopsis "Default brushes for MyPaint")
(description "This package provides the default set of brushes for
MyPaint.")
(home-page "https://github.com/Jehan/mypaint-brushes")
(license license:cc0)))

View File

@ -55,7 +55,8 @@
#:use-module ((guix licenses) #:prefix license:) #:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix utils) #:use-module (guix utils)
#:use-module (ice-9 match)) #:use-module (ice-9 match)
#:use-module ((srfi srfi-1) #:hide (zip)))
(define-public glu (define-public glu
(package (package
@ -211,7 +212,8 @@ also known as DXTn or DXTC) for Mesa.")
(package (package
(inherit libva) (inherit libva)
(name "libva-without-mesa") (name "libva-without-mesa")
(inputs (alist-delete "mesa" (package-inputs libva))) (inputs `(,@(fold alist-delete (package-inputs libva)
'("mesa" "wayland"))))
(arguments (arguments
(strip-keyword-arguments (strip-keyword-arguments
'(#:make-flags) '(#:make-flags)

View File

@ -29,6 +29,7 @@
;;; Copyright © 2017 Mohammed Sadiq <sadiq@sadiqpk.org> ;;; Copyright © 2017 Mohammed Sadiq <sadiq@sadiqpk.org>
;;; Copyright © 2017 Brendan Tildesley <brendan.tildesley@openmailbox.org> ;;; Copyright © 2017 Brendan Tildesley <brendan.tildesley@openmailbox.org>
;;; Copyright © 2017, 2018 Rutger Helling <rhelling@mykolab.com> ;;; Copyright © 2017, 2018 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2018 Jovany Leandro G.C <bit4bit@riseup.net>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -146,6 +147,7 @@
#:use-module (gnu packages virtualization) #:use-module (gnu packages virtualization)
#:use-module (gnu packages vpn) #:use-module (gnu packages vpn)
#:use-module (gnu packages xorg) #:use-module (gnu packages xorg)
#:use-module (ice-9 match)
#:use-module (srfi srfi-1)) #:use-module (srfi srfi-1))
(define-public brasero (define-public brasero
@ -5815,7 +5817,7 @@ files.")
(define-public baobab (define-public baobab
(package (package
(name "baobab") (name "baobab")
(version "3.26.1") (version "3.28.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -5824,11 +5826,15 @@ files.")
name "-" version ".tar.xz")) name "-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0zkqxyqyxd6j270jf5hbcrb3yh4k31ddh40v4cjhgngm8mcsnnbs")))) "0qsx7vx5c3n4yxlxbr11sppw7qwcv9z3g45b5xb9y7wxw5lv42sk"))))
(build-system glib-or-gtk-build-system) (build-system meson-build-system)
(arguments
'(#:glib-or-gtk? #t))
(native-inputs (native-inputs
`(("intltool" ,intltool) `(("intltool" ,intltool)
("pkg-config" ,pkg-config) ("pkg-config" ,pkg-config)
("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
("itstool" ,itstool) ("itstool" ,itstool)
("xmllint" ,libxml2) ("xmllint" ,libxml2)
("glib" ,glib "bin") ("glib" ,glib "bin")
@ -7192,3 +7198,86 @@ into audio files that a personal computer or digital audio player can play.
It supports ripping to any audio codec supported by a GStreamer plugin, such as It supports ripping to any audio codec supported by a GStreamer plugin, such as
mp3, Ogg Vorbis and FLAC") mp3, Ogg Vorbis and FLAC")
(license license:gpl2+))) (license license:gpl2+)))
(define-public workrave
(let ((commit "v1_10_20"))
(package
(name "workrave")
(version (string-map (match-lambda
(#\_ #\.)
(chr chr))
(string-drop commit 1)))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/rcaelers/workrave.git")
(commit commit)))
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
"099a87zkrkmsgfz9isrfm89dh545x52891jh6qxmn19h6wwsi941"))))
(build-system glib-or-gtk-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'autogen
(lambda _
(invoke "sh" "autogen.sh")
#t)))))
(propagated-inputs `(("glib" ,glib)
("gtk+" ,gtk+)
("gdk-pixbuf" ,gdk-pixbuf)
("gtkmm" ,gtkmm)
("glibmm" ,glibmm)
("libx11" ,libx11)
("libxtst" ,libxtst)
("dconf" ,dconf)
("libice" ,libice)))
(inputs `(("libsm", libsm)
("python-cheetah" ,python2-cheetah)))
(native-inputs `(("glib" ,glib "bin")
("pkg-config" ,pkg-config)
("gettext" ,gnu-gettext)
("autoconf" ,autoconf)
("autoconf-archive" , autoconf-archive)
("automake" ,automake)
("libtool" ,libtool)
("intltool" ,intltool)
("libxscrnsaver" ,libxscrnsaver)
("gobject-introspection" ,gobject-introspection)
("python2" ,python-2)))
(synopsis "Tool to help prevent repetitive strain injury (RSI)")
(description "Workrave is a program that assists in the recovery and
prevention of repetitive strain injury (RSI). The program frequently alerts
you to take micro-pauses, rest breaks and restricts you to your daily limit")
(home-page "http://www.workrave.org")
(license license:gpl3+))))
(define-public ghex
(package
(name "ghex")
(version "3.18.3")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
(version-major+minor version) "/"
name "-" version ".tar.xz"))
(sha256
(base32
"1lq8920ad2chi9ibmyq0x9hg9yk63b0kdbzid03w42cwdzw50x66"))))
(build-system glib-or-gtk-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)
("gnome-common" ,gnome-common)
("which" ,which)
("intltool" ,intltool)
("yelp-tools" ,yelp-tools)
("desktop-file-utils" ,desktop-file-utils))) ;for 'desktop-file-validate'
(inputs
`(("atk" ,atk)
("gtk" ,gtk+)))
(synopsis "GNOME hexadecimal editor")
(description "The GHex program can view and edit files in two ways:
hexadecimal or ASCII. It is useful for editing binary files in general.")
(home-page "https://wiki.gnome.org/Apps/Ghex")
(license license:gpl2)))

View File

@ -14,6 +14,7 @@
;;; Copyright © 2017 Leo Famulari <leo@famulari.name> ;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
;;; Copyright © 2017 Petter <petter@mykolab.ch> ;;; Copyright © 2017 Petter <petter@mykolab.ch>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -91,6 +92,20 @@ Daemon and possibly more in the future.")
(properties '((ftp-server . "ftp.gnupg.org") (properties '((ftp-server . "ftp.gnupg.org")
(ftp-directory . "/gcrypt/libgpg-error"))))) (ftp-directory . "/gcrypt/libgpg-error")))))
;; Some packages (e.g. GPGME) require a newer libgpg-error to deal with
;; error codes from recent GnuPG. Remove this in the next rebuild cycle.
(define-public libgpg-error-1.31
(package
(inherit libgpg-error)
(version "1.31")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnupg/libgpg-error/libgpg-error-"
version ".tar.bz2"))
(sha256
(base32
"1vx4nw6rxh2biy3h8n96fyr86q29h8gjl6837437i51jr4isil20"))))))
(define-public libgcrypt (define-public libgcrypt
(package (package
(name "libgcrypt") (name "libgcrypt")
@ -216,14 +231,14 @@ compatible to GNU Pth.")
(define-public gnupg (define-public gnupg
(package (package
(name "gnupg") (name "gnupg")
(version "2.2.6") (version "2.2.7")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://gnupg/gnupg/gnupg-" version (uri (string-append "mirror://gnupg/gnupg/gnupg-" version
".tar.bz2")) ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"110rf476l3cgn52gh9ia5y0y06y2ialq9dqc12jkhnfhl9gqqkg6")))) "0vlpis0q7gvq9mhdc43hkyn3cdriz4mwgj20my3gyzpgwqg3cnyr"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("pkg-config" ,pkg-config))) `(("pkg-config" ,pkg-config)))
@ -361,7 +376,7 @@ libskba (working with X.509 certificates and CMS data).")
(define-public gpgme (define-public gpgme
(package (package
(name "gpgme") (name "gpgme")
(version "1.10.0") (version "1.11.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -369,13 +384,13 @@ libskba (working with X.509 certificates and CMS data).")
".tar.bz2")) ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"14q619lxbk64vz7lih5gjb928qm28jrnn1h3yhsrrff3jw8yv3qs")))) "0vxx5xaag3rhp4g2arp5qm77gvz4kj0m3hnpvhkdvqyjfhbi26rd"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("gnupg" ,gnupg))) `(("gnupg" ,gnupg)))
(propagated-inputs (propagated-inputs
;; Needs to be propagated because gpgme.h includes gpg-error.h. ;; Needs to be propagated because gpgme.h includes gpg-error.h.
`(("libgpg-error" ,libgpg-error))) `(("libgpg-error" ,libgpg-error-1.31)))
(inputs (inputs
`(("libassuan" ,libassuan))) `(("libassuan" ,libassuan)))
(home-page "https://www.gnupg.org/related_software/gpgme/") (home-page "https://www.gnupg.org/related_software/gpgme/")

View File

@ -551,7 +551,7 @@ security standards.")
("libxcomposite" ,libxcomposite) ("libxcomposite" ,libxcomposite)
("libxt" ,libxt) ("libxt" ,libxt)
("libffi" ,libffi) ("libffi" ,libffi)
("ffmpeg" ,ffmpeg) ("ffmpeg" ,ffmpeg-3.4)
("libvpx" ,libvpx) ("libvpx" ,libvpx)
("icu4c" ,icu4c) ("icu4c" ,icu4c)
("pixman" ,pixman) ("pixman" ,pixman)

View File

@ -101,7 +101,7 @@ is usually the formatter of \"man\" documentation pages.")
;; Keep only the programs that man-db needs at run time, ;; Keep only the programs that man-db needs at run time,
;; and make sure we don't pull in Perl. ;; and make sure we don't pull in Perl.
(let ((out (assoc-ref outputs "out")) (let ((out (assoc-ref outputs "out"))
(kept '("eqn" "neqn" "pic" "tbl" "refer" (kept '("eqn" "neqn" "pic" "tbl" "refer" "preconv"
"nroff" "groff" "troff" "grotty"))) "nroff" "groff" "troff" "grotty")))
(for-each (lambda (file) (for-each (lambda (file)
(unless (member (basename file) kept) (unless (member (basename file) kept)

View File

@ -723,16 +723,16 @@ format is also supported.")
(define-public guile-ics (define-public guile-ics
(package (package
(name "guile-ics") (name "guile-ics")
(version "0.1.1") (version "0.2.0")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
(url "https://github.com/artyom-poptsov/guile-ics") (url "https://github.com/artyom-poptsov/guile-ics")
(commit "v0.1.1"))) (commit (string-append "v" version))))
(file-name (string-append name "-" version "-checkout")) (file-name (string-append name "-" version "-checkout"))
(sha256 (sha256
(base32 (base32
"1pvg6j48inpbq47hq00yh5hhl2qd2srvrx5yjl7w7ky1jsjadp86")))) "0qjjvadr7gibdq9jvwkmlkb4afsw9n2shfj9phpiadinxk3p4m2g"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:phases (modify-phases %standard-phases '(#:phases (modify-phases %standard-phases
@ -749,8 +749,8 @@ format is also supported.")
;; Gettext brings 'AC_LIB_LINKFLAGS_FROM_LIBS'. ;; Gettext brings 'AC_LIB_LINKFLAGS_FROM_LIBS'.
("gettext" ,gettext-minimal) ("gettext" ,gettext-minimal)
("pkg-config" ,pkg-config))) ("pkg-config" ,pkg-config)))
(inputs `(("guile" ,guile-2.0) ("which" ,which))) (inputs `(("guile" ,guile-2.2) ("which" ,which)))
(propagated-inputs `(("guile-lib" ,guile2.0-lib))) (propagated-inputs `(("guile-lib" ,guile-lib)))
(home-page "https://github.com/artyom-poptsov/guile-ics") (home-page "https://github.com/artyom-poptsov/guile-ics")
(synopsis "Guile parser library for the iCalendar format") (synopsis "Guile parser library for the iCalendar format")
(description (description
@ -919,7 +919,7 @@ specification. These are the main features:
#t)))) #t))))
(inputs (inputs
`(("guile" ,guile-2.0))) `(("guile" ,guile-2.2)))
(home-page "https://github.com/ijp/minikanren") (home-page "https://github.com/ijp/minikanren")
(synopsis "MiniKanren declarative logic system, packaged for Guile") (synopsis "MiniKanren declarative logic system, packaged for Guile")
(description (description
@ -934,8 +934,11 @@ slightly from miniKanren mainline.
See http://minikanren.org/ for more on miniKanren generally.") See http://minikanren.org/ for more on miniKanren generally.")
(license license:expat))) (license license:expat)))
(define-public guile2.0-minikanren
(package-for-guile-2.0 guile-minikanren))
(define-public guile2.2-minikanren (define-public guile2.2-minikanren
(package-for-guile-2.2 guile-minikanren)) (deprecated-package "guile2.2-minikanren" guile-minikanren))
(define-public guile-miniadapton (define-public guile-miniadapton
(let ((commit "1b5749422304567c96ac5367f2221dda9eff5880") (let ((commit "1b5749422304567c96ac5367f2221dda9eff5880")
@ -1076,7 +1079,7 @@ understand, extend, and port to host languages other than Scheme.")
(install-file "irregex.html" doc) (install-file "irregex.html" doc)
#t)))))) #t))))))
(inputs (inputs
`(("guile" ,guile-2.0))) `(("guile" ,guile-2.2)))
(home-page "http://synthcode.com/scheme/irregex") (home-page "http://synthcode.com/scheme/irregex")
(synopsis "S-expression based regular expressions") (synopsis "S-expression based regular expressions")
(description (description
@ -1085,8 +1088,11 @@ string-based regular expressions. It implements SRFI 115 and is deeply
inspired by the SCSH regular expression system.") inspired by the SCSH regular expression system.")
(license license:bsd-3))) (license license:bsd-3)))
(define-public guile2.0-irregex
(package-for-guile-2.0 guile-irregex))
(define-public guile2.2-irregex (define-public guile2.2-irregex
(package-for-guile-2.2 guile-irregex)) (deprecated-package "guile2.2-irregex" guile-irregex))
;; There are two guile-gdbm packages, one using the FFI and one with ;; There are two guile-gdbm packages, one using the FFI and one with
;; direct C bindings, hence the verbose name. ;; direct C bindings, hence the verbose name.
@ -1368,15 +1374,18 @@ above command-line parameters.")
#t)))) #t))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("guile" ,guile-2.0))) `(("guile" ,guile-2.2)))
(home-page "https://savannah.nongnu.org/projects/guile-redis/") (home-page "https://savannah.nongnu.org/projects/guile-redis/")
(synopsis "Redis client library for Guile") (synopsis "Redis client library for Guile")
(description "Guile-redis provides a Scheme interface to the Redis (description "Guile-redis provides a Scheme interface to the Redis
key-value cache and store.") key-value cache and store.")
(license license:lgpl3+))) (license license:lgpl3+)))
(define-public guile2.0-redis
(package-for-guile-2.0 guile-redis))
(define-public guile2.2-redis (define-public guile2.2-redis
(package-for-guile-2.2 guile-redis)) (deprecated-package "guile2.2-redis" guile-redis))
(define-public guile-wisp (define-public guile-wisp
(package (package
@ -1559,19 +1568,19 @@ provides access to that interface and its types from the Scheme level.")
(arguments (arguments
'(#:configure-flags '(#:configure-flags
(list (string-append (list (string-append
"--with-guile-site-dir=" %output "/share/guile/site/2.0")) "--with-guile-site-dir=" %output "/share/guile/site/2.2"))
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'install 'patch-extension-path (add-after 'install 'patch-extension-path
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out")) (let* ((out (assoc-ref outputs "out"))
(dbi.scm (string-append (dbi.scm (string-append
out "/share/guile/site/2.0/dbi/dbi.scm")) out "/share/guile/site/2.2/dbi/dbi.scm"))
(ext (string-append out "/lib/libguile-dbi"))) (ext (string-append out "/lib/libguile-dbi")))
(substitute* dbi.scm (("libguile-dbi") ext)) (substitute* dbi.scm (("libguile-dbi") ext))
#t)))))) #t))))))
(propagated-inputs (propagated-inputs
`(("guile" ,guile-2.0))) `(("guile" ,guile-2.2)))
(synopsis "Guile database abstraction layer") (synopsis "Guile database abstraction layer")
(home-page "http://home.gna.org/guile-dbi/guile-dbi.html") (home-page "http://home.gna.org/guile-dbi/guile-dbi.html")
(description (description

View File

@ -392,8 +392,8 @@ It has been modified to remove all non-free binary blobs.")
;; supports qemu "virt" machine and possibly a large number of ARM boards. ;; supports qemu "virt" machine and possibly a large number of ARM boards.
;; See : https://wiki.debian.org/DebianKernel/ARMMP. ;; See : https://wiki.debian.org/DebianKernel/ARMMP.
(define %linux-libre-version "4.16.6") (define %linux-libre-version "4.16.7")
(define %linux-libre-hash "069bxqx27xib1gz4aayy8ar2hfp68cpdi8h51g6453k0w14pkchn") (define %linux-libre-hash "145hv7paw5zd6bnkk0agxyg2a37066xhrxszbq3d03mjvi8ap117")
(define-public linux-libre (define-public linux-libre
(make-linux-libre %linux-libre-version (make-linux-libre %linux-libre-version
@ -401,8 +401,8 @@ It has been modified to remove all non-free binary blobs.")
%linux-compatible-systems %linux-compatible-systems
#:configuration-file kernel-config)) #:configuration-file kernel-config))
(define %linux-libre-4.14-version "4.14.38") (define %linux-libre-4.14-version "4.14.39")
(define %linux-libre-4.14-hash "09lmz8zbd3c1qf8z3d2lkhcqcwawajh76s85zdhgqdmd2idpwach") (define %linux-libre-4.14-hash "0r6fydsgspnskh5n1hfrkyrlrmql635zqr44ajafmqimldc0bplz")
(define-public linux-libre-4.14 (define-public linux-libre-4.14
(make-linux-libre %linux-libre-4.14-version (make-linux-libre %linux-libre-4.14-version
@ -411,14 +411,14 @@ It has been modified to remove all non-free binary blobs.")
#:configuration-file kernel-config)) #:configuration-file kernel-config))
(define-public linux-libre-4.9 (define-public linux-libre-4.9
(make-linux-libre "4.9.97" (make-linux-libre "4.9.98"
"1xc3mj1qi51n1kr5bxmdf1rlpyj78x9imhfc7gihn8qjc6zsf1sp" "14mqg2hvxg4zwajwly18akyaca821sp4iz5w3xmikwndn2j8y1lw"
%intel-compatible-systems %intel-compatible-systems
#:configuration-file kernel-config)) #:configuration-file kernel-config))
(define-public linux-libre-4.4 (define-public linux-libre-4.4
(make-linux-libre "4.4.130" (make-linux-libre "4.4.131"
"15cayafj7d9y5fs9flg115kzrcrjycbvax9hgfzz6yym94v9k8lk" "1phah297rxjwy22wfaqlzpbk71ddp3drma5dx3i8xv6g8vijd08x"
%intel-compatible-systems %intel-compatible-systems
#:configuration-file kernel-config)) #:configuration-file kernel-config))
@ -1937,17 +1937,27 @@ for systems using the Linux kernel. This includes commands such as
(define-public inotify-tools (define-public inotify-tools
(package (package
(name "inotify-tools") (name "inotify-tools")
(version "3.13") (version "3.20.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
"mirror://sourceforge/inotify-tools/inotify-tools/" "https://github.com/rvoicilas/inotify-tools/archive/"
version "/inotify-tools-" version ".tar.gz")) version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0icl4bx041axd5dvhg89kilfkysjj86hjakc7bk8n49cxjn4cha6")))) "1b22c8x4pjnz3abx4dikpbj43zprjw79pdkd4xw111dsxlfwqcx4"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(home-page "http://inotify-tools.sourceforge.net/") (arguments
`(#:phases (modify-phases %standard-phases
(add-after 'unpack 'bootstrap
(lambda _
(invoke "autoreconf" "-vif"))))))
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)
("libtool" ,libtool)))
(home-page "https://github.com/rvoicilas/inotify-tools/wiki")
(synopsis "Monitor file accesses") (synopsis "Monitor file accesses")
(description (description
"The inotify-tools packages provides a C library and command-line tools "The inotify-tools packages provides a C library and command-line tools

View File

@ -19,7 +19,7 @@
;;; Copyright © 2016 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2016 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2016, 2017, 2018 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2016, 2017, 2018 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2016 John Darrington <jmd@gnu.org> ;;; Copyright © 2016 John Darrington <jmd@gnu.org>
;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2016, 2018 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be> ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
;;; Copyright © 2017 Kyle Meyer <kyle@kyleam.com> ;;; Copyright © 2017 Kyle Meyer <kyle@kyleam.com>
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
@ -397,7 +397,7 @@ It adds a large amount of new and improved features to mutt.")
(define-public gmime (define-public gmime
(package (package
(name "gmime") (name "gmime")
(version "2.6.23") (version "3.2.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://gnome/sources/gmime/" (uri (string-append "mirror://gnome/sources/gmime/"
@ -405,7 +405,7 @@ It adds a large amount of new and improved features to mutt.")
"/gmime-" version ".tar.xz")) "/gmime-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0slzlzcr3h8jikpz5a5amqd0csqh2m40gdk910ws2hnaf5m6hjbi")))) "1q6palbpf6lh6bvy9ly26q5apl5k0z0r4mvl6zzqh90rz4rn1v3m"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("pkg-config" ,pkg-config) `(("pkg-config" ,pkg-config)
@ -429,8 +429,8 @@ It adds a large amount of new and improved features to mutt.")
(let* ((base (basename prog-path)) (let* ((base (basename prog-path))
(prog (which base))) (prog (which base)))
(string-append pre (string-append pre
(or prog (error "not found: " base)))))) (or prog (error "not found: " base)))))))
#t)))))) #t)))))
(home-page "http://spruce.sourceforge.net/gmime/") (home-page "http://spruce.sourceforge.net/gmime/")
(synopsis "MIME message parser and creator library") (synopsis "MIME message parser and creator library")
(description (description
@ -439,6 +439,20 @@ the creation and parsing of messages using the Multipurpose Internet Mail
Extension (MIME).") Extension (MIME).")
(license (list lgpl2.1+ gpl2+ gpl3+)))) (license (list lgpl2.1+ gpl2+ gpl3+))))
;; Some packages are not ready for GMime 3 yet.
(define-public gmime-2.6
(package
(inherit gmime)
(version "2.6.23")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/gmime/"
(version-major+minor version)
"/gmime-" version ".tar.xz"))
(sha256
(base32
"0slzlzcr3h8jikpz5a5amqd0csqh2m40gdk910ws2hnaf5m6hjbi"))))))
(define-public bogofilter (define-public bogofilter
(package (package
(name "bogofilter") (name "bogofilter")
@ -598,7 +612,7 @@ security functionality including PGP, S/MIME, SSH, and SSL.")
`(("xapian" ,xapian) `(("xapian" ,xapian)
("guile" ,guile-2.2) ("guile" ,guile-2.2)
("glib" ,glib) ("glib" ,glib)
("gmime" ,gmime))) ("gmime" ,gmime-2.6)))
(arguments (arguments
`(#:modules ((guix build gnu-build-system) `(#:modules ((guix build gnu-build-system)
(guix build utils) (guix build utils)
@ -2429,7 +2443,7 @@ tools and applications:
`(("cyrus-sasl" ,cyrus-sasl) `(("cyrus-sasl" ,cyrus-sasl)
("enchant" ,enchant) ("enchant" ,enchant)
("gdk-pixbuf" ,gdk-pixbuf) ("gdk-pixbuf" ,gdk-pixbuf)
("gmime" ,gmime) ("gmime" ,gmime-2.6)
("gnutls" ,gnutls) ("gnutls" ,gnutls)
("gpgme" ,gpgme) ("gpgme" ,gpgme)
("gtk+" ,gtk+) ("gtk+" ,gtk+)
@ -2506,7 +2520,7 @@ killed threads.")
"/bin/gpg\""))) "/bin/gpg\"")))
#t))))) #t)))))
(inputs (inputs
`(("gmime" ,gmime) `(("gmime" ,gmime-2.6)
("gnupg" ,gnupg) ("gnupg" ,gnupg)
("gnutls" ,gnutls) ("gnutls" ,gnutls)
("gtk+" ,gtk+) ("gtk+" ,gtk+)

View File

@ -5,6 +5,7 @@
;;; Copyright © 2015 Alex Kost <alezost@gmail.com> ;;; Copyright © 2015 Alex Kost <alezost@gmail.com>
;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -81,11 +82,19 @@ a flexible and convenient way.")
(remove file-is-directory? (remove file-is-directory?
(find-files "src/tests" ".*"))) (find-files "src/tests" ".*")))
#t))) #t)))
(add-after 'unpack 'patch-iconv-path (add-after 'unpack 'patch-absolute-paths
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(substitute* "src/man.c" (substitute* "src/man.c"
(("\"iconv\"") (("\"iconv\"")
(string-append "\"" (which "iconv") "\""))) (string-append "\"" (which "iconv") "\"")))
;; Embed an absolute reference to "preconv", otherwise it
;; falls back to searching in PATH and ultimately fails
;; to render unicode data (see <https://bugs.gnu.org/30785>).
(substitute* "lib/encodings.c"
(("groff_preconv = NULL")
(string-append "groff_preconv = \""
(assoc-ref inputs "groff-minimal")
"/bin/preconv\"")))
#t))) #t)))
#:configure-flags #:configure-flags
(let ((groff (assoc-ref %build-inputs "groff")) (let ((groff (assoc-ref %build-inputs "groff"))
@ -151,7 +160,7 @@ the traditional flat-text whatis databases.")
(define-public man-pages (define-public man-pages
(package (package
(name "man-pages") (name "man-pages")
(version "4.15") (version "4.16")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (uri
@ -164,7 +173,7 @@ the traditional flat-text whatis databases.")
"man-pages-" version ".tar.xz"))) "man-pages-" version ".tar.xz")))
(sha256 (sha256
(base32 (base32
"01n1rq1kvambax85xamriawbga94mh63s5mgjmjljjgf50m7yw6f")))) "1d2d6llazg3inwjiz22cn46mbm5ydpbyh9qb55z4j3nm4w6wrzs7"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:phases (modify-phases %standard-phases (delete 'configure)) '(#:phases (modify-phases %standard-phases (delete 'configure))

View File

@ -25,6 +25,8 @@
;;; Copyright © 2018 Jan Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2018 Jan Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2018 Joshua Sierles, Nextjournal <joshua@nextjournal.com> ;;; Copyright © 2018 Joshua Sierles, Nextjournal <joshua@nextjournal.com>
;;; Copyright © 2018 Nadya Voronova <voronovank@gmail.com> ;;; Copyright © 2018 Nadya Voronova <voronovank@gmail.com>
;;; Copyright © 2018 Adam Massmann <massmannak@gmail.com>
;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -53,6 +55,7 @@
#:use-module (guix build-system cmake) #:use-module (guix build-system cmake)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (guix build-system ocaml) #:use-module (guix build-system ocaml)
#:use-module (guix build-system python)
#:use-module (guix build-system r) #:use-module (guix build-system r)
#:use-module (guix build-system ruby) #:use-module (guix build-system ruby)
#:use-module (gnu packages algebra) #:use-module (gnu packages algebra)
@ -564,7 +567,7 @@ singular value problems.")
(define-public gnuplot (define-public gnuplot
(package (package
(name "gnuplot") (name "gnuplot")
(version "5.0.6") (version "5.2.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://sourceforge/gnuplot/gnuplot/" (uri (string-append "mirror://sourceforge/gnuplot/gnuplot/"
@ -572,7 +575,7 @@ singular value problems.")
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0q5lr6nala3ln6f3yp6g17ziymb9r9gx9zylnw1y3hjmwl9lggjv")))) "18diyy7aib9mn098x07g25c7jij1x7wbfpicz0z8gwxx08px45m4"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs `(("readline" ,readline) (inputs `(("readline" ,readline)
("cairo" ,cairo) ("cairo" ,cairo)
@ -582,6 +585,9 @@ singular value problems.")
(native-inputs (native-inputs
`(("pkg-config" ,pkg-config) `(("pkg-config" ,pkg-config)
("texlive" ,texlive-tiny))) ("texlive" ,texlive-tiny)))
(arguments `(#:configure-flags (list (string-append
"--with-texdir=" %output
"/texmf-local/tex/latex/gnuplot"))))
(home-page "http://www.gnuplot.info") (home-page "http://www.gnuplot.info")
(synopsis "Command-line driven graphing utility") (synopsis "Command-line driven graphing utility")
(description "Gnuplot is a portable command-line driven graphing (description "Gnuplot is a portable command-line driven graphing
@ -1677,6 +1683,31 @@ scientific applications modeled by partial differential equations.")
,@(delete "--with-mpi=0" ,cf))))) ,@(delete "--with-mpi=0" ,cf)))))
(synopsis "Library to solve PDEs (with complex scalars and MPI support)"))) (synopsis "Library to solve PDEs (with complex scalars and MPI support)")))
(define-public python-kiwisolver
(package
(name "python-kiwisolver")
(version "1.0.1")
(source (origin
(method url-fetch)
(uri (pypi-uri "kiwisolver" version))
(sha256
(base32
"0y22ci86znwwwfhbmvbgdfnbi6lv5gv2xkdlxvjw7lml43ayafyf"))))
(build-system python-build-system)
(home-page "https://github.com/nucleic/kiwi")
(synopsis "Fast implementation of the Cassowary constraint solver")
(description
"Kiwi is an efficient C++ implementation of the Cassowary constraint
solving algorithm. Kiwi has been designed from the ground up to be
lightweight and fast. Kiwi ranges from 10x to 500x faster than the original
Cassowary solver with typical use cases gaining a 40x improvement. Memory
savings are consistently > 5x.")
(license license:bsd-3)))
(define-public python2-kiwisolver
(package-with-python2 python-kiwisolver))
(define-public slepc (define-public slepc
(package (package
(name "slepc") (name "slepc")

View File

@ -440,32 +440,48 @@ compromised.")
(define-public znc (define-public znc
(package (package
(name "znc") (name "znc")
(version "1.6.6") (version "1.7.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "http://znc.in/releases/archive/znc-" (uri (string-append "http://znc.in/releases/archive/znc-"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"09cmsnxvi7jg9a0dicf60fxnxdff4aprw7h8vjqlj5ywf6y43f3z")))) "0vxra50418bsjfdpf8vl70fijv8syvasjqdxfyjliff6k91k2zn0"))))
;; TODO: autotools support has been deprecated, and new features like i18n
;; are only supported when building with cmake.
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:phases `(#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'unpack-googletest (add-after 'unpack 'unpack-googletest
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(zero? (system* "tar" "xf" (mkdir-p "googletest")
(assoc-ref inputs "googletest-source")))))) (copy-recursively (assoc-ref inputs "googletest-source")
"googletest")
#t)))
#:configure-flags '("--enable-python" #:configure-flags '("--enable-python"
"--enable-perl" "--enable-perl"
"--enable-cyrus" "--enable-cyrus"
,(string-append "--with-gtest=" "--with-gmock=googletest/googlemock"
"googletest-release-" "--with-gtest=googletest/googletest")
(package-version googletest)
"/googletest"))
#:test-target "test")) #:test-target "test"))
(native-inputs (native-inputs
`(("googletest-source" ,(package-source googletest)) `(("googletest-source"
;; ZNC 1.7 needs a newer, unreleased googletest (a release is planned
;; <https://github.com/google/googletest/issues/1583>, so don't update
;; the public GOOGLETEST to an unstable version). The commit is taken
;; from third_party/googletest in the ZNC git repository.
,(let ((commit "9737e63c69e94ac5777caa0bc77c77d5206467f3"))
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/google/googletest")
(commit commit)))
(file-name (git-file-name "googletest-for-znc" commit))
(sha256
(base32
"0ya36n8d62zbxk6p22yffgx43mqhx2fz41gqqwbpdshjryf3wvxj")))))
("pkg-config" ,pkg-config) ("pkg-config" ,pkg-config)
("perl" ,perl) ("perl" ,perl)
("python" ,python))) ("python" ,python)))
@ -476,9 +492,9 @@ compromised.")
("cyrus-sasl" ,cyrus-sasl))) ("cyrus-sasl" ,cyrus-sasl)))
(home-page "https://znc.in") (home-page "https://znc.in")
(synopsis "IRC network bouncer") (synopsis "IRC network bouncer")
(description "ZNC is an IRC network bouncer or BNC. It can detach the (description "ZNC is an @dfn{IRC network bouncer} or @dfn{BNC}. It can
client from the actual IRC server, and also from selected channels. Multiple detach the client from the actual IRC server, and also from selected channels.
clients from different locations can connect to a single ZNC account Multiple clients from different locations can connect to a single ZNC account
simultaneously and therefore appear under the same nickname on IRC.") simultaneously and therefore appear under the same nickname on IRC.")
(license license:asl2.0))) (license license:asl2.0)))

View File

@ -30,7 +30,7 @@
(define-public nano (define-public nano
(package (package
(name "nano") (name "nano")
(version "2.9.5") (version "2.9.6")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -38,7 +38,7 @@
version ".tar.xz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"06af9dzhgab53drpyq430fv5kf5sdba9mfw0lf3glhkznlf1i3bv")))) "1inl8ljkc711969ncwy7irf0464psasikg1g42l0g4sfpdz50wx3"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
`(("gettext" ,gettext-minimal) `(("gettext" ,gettext-minimal)

View File

@ -19,6 +19,7 @@
;;; Copyright © 2017 Gábor Boskovits <boskovits@gmail.com> ;;; Copyright © 2017 Gábor Boskovits <boskovits@gmail.com>
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be> ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
;;; Copyright © 2018 Adam Van Ymeren <adam@vany.ca> ;;; Copyright © 2018 Adam Van Ymeren <adam@vany.ca>
;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -56,6 +57,7 @@
#:use-module (gnu packages check) #:use-module (gnu packages check)
#:use-module (gnu packages code) #:use-module (gnu packages code)
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
#:use-module (gnu packages crypto)
#:use-module (gnu packages curl) #:use-module (gnu packages curl)
#:use-module (gnu packages databases) #:use-module (gnu packages databases)
#:use-module (gnu packages dejagnu) #:use-module (gnu packages dejagnu)
@ -66,6 +68,7 @@
#:use-module (gnu packages gnome) #:use-module (gnu packages gnome)
#:use-module (gnu packages gnupg) #:use-module (gnu packages gnupg)
#:use-module (gnu packages gtk) #:use-module (gnu packages gtk)
#:use-module (gnu packages image)
#:use-module (gnu packages libidn) #:use-module (gnu packages libidn)
#:use-module (gnu packages linux) #:use-module (gnu packages linux)
#:use-module (gnu packages lua) #:use-module (gnu packages lua)
@ -84,6 +87,7 @@
#:use-module (gnu packages tls) #:use-module (gnu packages tls)
#:use-module (gnu packages valgrind) #:use-module (gnu packages valgrind)
#:use-module (gnu packages wm) #:use-module (gnu packages wm)
#:use-module (gnu packages wxwidgets)
#:use-module (gnu packages xml) #:use-module (gnu packages xml)
#:use-module (ice-9 match)) #:use-module (ice-9 match))
@ -1702,3 +1706,62 @@ file for more details.")
;; src/libstrongswan/plugins/blowfish/blowfish_crypter.c ;; src/libstrongswan/plugins/blowfish/blowfish_crypter.c
;; src/libstrongswan/plugins/des/des_crypter.c ;; src/libstrongswan/plugins/des/des_crypter.c
license:bsd-4)))) license:bsd-4))))
(define-public amule
(package
(name "amule")
(version "2.3.2")
(source (origin
(method url-fetch)
(uri (string-append
"https://github.com/amule-project/amule/archive/"
version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"1wvcj0n9xz03xz5c2xwp6dwfp7sqjhhwbki3m0lwikskpn9lkzk2"))
;; Patch for adopting crypto++ >= 6.0.
(patches (search-patches "amule-crypto-6.patch"))))
(build-system gnu-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'patch-source-shebangs 'autogen
(lambda _
(invoke "sh" "autogen.sh")
#t)))
#:configure-flags
'("--disable-rpath"
"--enable-wxcas"
"--enable-cas"
"--enable-alc"
"--enable-alcc"
"--enable-xas"
"--enable-amulecmd"
"--enable-geoip"
"--enable-ccache"
"--enable-nls"
"--enable-optimize"
"--enable-amule-gui"
"--enable-amule-daemon"
"--enable-webserver"
"--with-denoise-level=0")))
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)
("gettext-minimal" ,gettext-minimal)
("perl" ,perl)))
(inputs
`(("zlib" ,zlib)
("crypto++" ,crypto++)
("libpng" ,libpng)
("wxwidgets-gtk2", wxwidgets-gtk2)))
(home-page "http://amule.org/")
(synopsis "Peer-to-peer client for the eD2K and Kademlia networks")
(description
"aMule is an eMule-like client for the eD2k and Kademlia peer-to-peer
file sharing networks. It includes a graphical user interface (GUI), a daemon
allowing you to run a client with no graphical interface, and a Web GUI for
remote access. The @command{amulecmd} command allows you to control aMule
remotely.")
(license license:gpl2+)))

View File

@ -456,14 +456,15 @@ written in Objective Caml.")
(define-public coq (define-public coq
(package (package
(name "coq") (name "coq")
(version "8.7.0") (version "8.8.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://coq.inria.fr/distrib/V" version (uri (string-append "https://github.com/coq/coq/archive/V"
"/files/" name "-" version ".tar.gz")) version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"15wjngjd5pyfqdl5yw92rvdxvy15xcjlpx0rqlkzvcsis1z20xpk")))) "0g96k2x6lbddlmkmdaczvcpb2gwqi1ydbq9bv4gf9q38kv9w3xya"))))
(native-search-paths (native-search-paths
(list (search-path-specification (list (search-path-specification
(variable "COQPATH") (variable "COQPATH")
@ -3874,15 +3875,15 @@ cross-platform SDL C library.")
(define-public coq-flocq (define-public coq-flocq
(package (package
(name "coq-flocq") (name "coq-flocq")
(version "2.6.0") (version "2.6.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
;; Use the Latest version link for a stable URI across releases. ;; Use the Latest version link for a stable URI across releases.
(uri (string-append "https://gforge.inria.fr/frs/download.php/" (uri (string-append "https://gforge.inria.fr/frs/download.php/"
"latestfile/2228/flocq-" version ".tar.gz")) "file/37454/flocq-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"13fv150dcwnjrk00d7zj2c5x9jwmxgrq0ay440gkr730l8mvk3l3")))) "06msp1fwpqv6p98a3i1nnkj7ch9rcq3rm916yxq8dxf51lkghrin"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("ocaml" ,ocaml) `(("ocaml" ,ocaml)
@ -3924,14 +3925,14 @@ inside Coq.")
(define-public coq-gappa (define-public coq-gappa
(package (package
(name "coq-gappa") (name "coq-gappa")
(version "1.3.1") (version "1.3.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://gforge.inria.fr/frs/download.php/file/36351/gappa-" (uri (string-append "https://gforge.inria.fr/frs/download.php/file/36397/gappa-"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0924jr6f15fx22qfsvim5vc0qxqg30ivg9zxj34lf6slbgdl3j39")))) "19kg2zldaqs4smy7bv9hp650sqg46xbx1ss7jnyagpxdscwn9apd"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("ocaml" ,ocaml) `(("ocaml" ,ocaml)
@ -3976,14 +3977,14 @@ assistant.")
(define-public coq-mathcomp (define-public coq-mathcomp
(package (package
(name "coq-mathcomp") (name "coq-mathcomp")
(version "1.6.2") (version "1.7.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://github.com/math-comp/math-comp/archive/mathcomp-" (uri (string-append "https://github.com/math-comp/math-comp/archive/mathcomp-"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0lg5ncr7p4y8qqq6pfw6brqc6a9xzlfa0drprwfdn0rnyaq5nca6")))) "05zgyi4wmasi1rcyn5jq42w0bi9713q9m8dl1fdgl66nmacixh39"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("ocaml" ,ocaml) `(("ocaml" ,ocaml)
@ -4039,6 +4040,12 @@ part of the distribution.")
"/lib/coq/user-contrib/Coquelicot")) "/lib/coq/user-contrib/Coquelicot"))
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-before 'configure 'fix-coq8.8
(lambda _
; appcontext has been removed from coq 8.8
(substitute* "theories/AutoDerive.v"
(("appcontext") "context"))
#t))
(add-before 'configure 'fix-remake (add-before 'configure 'fix-remake
(lambda _ (lambda _
(substitute* "remake.cpp" (substitute* "remake.cpp"
@ -4068,7 +4075,7 @@ theorems between the two libraries.")
(define-public coq-bignums (define-public coq-bignums
(package (package
(name "coq-bignums") (name "coq-bignums")
(version "8.7.0") (version "8.8.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://github.com/coq/bignums/archive/V" (uri (string-append "https://github.com/coq/bignums/archive/V"
@ -4076,7 +4083,7 @@ theorems between the two libraries.")
(file-name (string-append name "-" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"03iw9jiwq9jx45gsvp315y3lxr8m9ksppmcjvxs5c23qnky6zqjx")))) "08m1cmq4hkaf4sb0vy978c11rgzvds71cphyadmr2iirpr5815r0"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("ocaml" ,ocaml) `(("ocaml" ,ocaml)

View File

@ -295,6 +295,15 @@ the Nix package manager.")
(inherit guix) (inherit guix)
(properties `((hidden? . #t))) (properties `((hidden? . #t)))
(name "guix-register") (name "guix-register")
;; Use a minimum set of dependencies.
(native-inputs
(fold alist-delete (package-native-inputs guix)
'("po4a" "graphviz" "help2man")))
(propagated-inputs
`(("gnutls" ,gnutls)
("guile-git" ,guile-git)))
(arguments (arguments
(substitute-keyword-arguments (package-arguments guix) (substitute-keyword-arguments (package-arguments guix)
((#:tests? #f #f) ((#:tests? #f #f)

View File

@ -0,0 +1,45 @@
From d1d1368c7909ffd8423730afaa811ce7b6a3a8aa Mon Sep 17 00:00:00 2001
From: Tommy Jerry Mairo <tommy.mairo@gmail.com>
Date: Sun, 4 Feb 2018 12:42:00 -0800
Subject: [PATCH 1/2] Bugfix: API mismatch with crypto++ 6.0.0
---
src/ClientCreditsList.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/ClientCreditsList.cpp b/src/ClientCreditsList.cpp
index 3bea9fe2d..a7ae1e34c 100644
--- a/src/ClientCreditsList.cpp
+++ b/src/ClientCreditsList.cpp
@@ -312,7 +312,7 @@ void CClientCreditsList::InitalizeCrypting()
// calculate and store public key
CryptoPP::RSASSA_PKCS1v15_SHA_Verifier pubkey(*static_cast<CryptoPP::RSASSA_PKCS1v15_SHA_Signer *>(m_pSignkey));
CryptoPP::ArraySink asink(m_abyMyPublicKey, 80);
- pubkey.DEREncode(asink);
+ pubkey.AccessMaterial().Save(asink);
m_nMyPublicKeyLen = asink.TotalPutLength();
asink.MessageEnd();
} catch (const CryptoPP::Exception& e) {
From 88ba0ac952b78382445f2fff73c6792c0474dc62 Mon Sep 17 00:00:00 2001
From: Tommy Jerry Mairo <tommy.mairo@gmail.com>
Date: Wed, 21 Mar 2018 11:56:28 -0700
Subject: [PATCH 2/2] Update: Change AccessMaterial to GetMaterial
---
src/ClientCreditsList.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/ClientCreditsList.cpp b/src/ClientCreditsList.cpp
index a7ae1e34c..69e881fd8 100644
--- a/src/ClientCreditsList.cpp
+++ b/src/ClientCreditsList.cpp
@@ -312,7 +312,7 @@ void CClientCreditsList::InitalizeCrypting()
// calculate and store public key
CryptoPP::RSASSA_PKCS1v15_SHA_Verifier pubkey(*static_cast<CryptoPP::RSASSA_PKCS1v15_SHA_Signer *>(m_pSignkey));
CryptoPP::ArraySink asink(m_abyMyPublicKey, 80);
- pubkey.AccessMaterial().Save(asink);
+ pubkey.GetMaterial().Save(asink);
m_nMyPublicKeyLen = asink.TotalPutLength();
asink.MessageEnd();
} catch (const CryptoPP::Exception& e) {

View File

@ -1,117 +0,0 @@
From: Michael Gilbert <mgilbert@debian.org>
Date: Mon, 9 Sep 2013 17:34:32 +0200
Subject: Fix_CVE-2012-4433
Multiple buffer overflow issues.
Closes: #692435
---
operations/external/ppm-load.c | 62 ++++++++++++++++++++++++++++++++++++------
1 file changed, 53 insertions(+), 9 deletions(-)
diff --git a/operations/external/ppm-load.c b/operations/external/ppm-load.c
index efe6d56..465096d 100644
--- a/operations/external/ppm-load.c
+++ b/operations/external/ppm-load.c
@@ -36,6 +36,7 @@ gegl_chant_file_path (path, _("File"), "", _("Path of file to load."))
#include "gegl-chant.h"
#include <stdio.h>
#include <stdlib.h>
+#include <errno.h>
typedef enum {
PIXMAP_ASCII = 51,
@@ -44,8 +45,8 @@ typedef enum {
typedef struct {
map_type type;
- gint width;
- gint height;
+ glong width;
+ glong height;
gsize numsamples; /* width * height * channels */
gsize bpc; /* bytes per channel */
guchar *data;
@@ -82,12 +83,33 @@ ppm_load_read_header(FILE *fp,
}
/* Get Width and Height */
- img->width = strtol (header,&ptr,0);
- img->height = atoi (ptr);
- img->numsamples = img->width * img->height * CHANNEL_COUNT;
+ errno = 0;
+ img->width = strtol (header,&ptr,10);
+ if (errno)
+ {
+ g_warning ("Error reading width: %s", strerror(errno));
+ return FALSE;
+ }
+ else if (img->width < 0)
+ {
+ g_warning ("Error: width is negative");
+ return FALSE;
+ }
+
+ img->height = strtol (ptr,&ptr,10);
+ if (errno)
+ {
+ g_warning ("Error reading height: %s", strerror(errno));
+ return FALSE;
+ }
+ else if (img->width < 0)
+ {
+ g_warning ("Error: height is negative");
+ return FALSE;
+ }
fgets (header,MAX_CHARS_IN_ROW,fp);
- maxval = strtol (header,&ptr,0);
+ maxval = strtol (header,&ptr,10);
if ((maxval != 255) && (maxval != 65535))
{
@@ -109,6 +131,16 @@ ppm_load_read_header(FILE *fp,
g_warning ("%s: Programmer stupidity error", G_STRLOC);
}
+ /* Later on, img->numsamples is multiplied with img->bpc to allocate
+ * memory. Ensure it doesn't overflow. */
+ if (!img->width || !img->height ||
+ G_MAXSIZE / img->width / img->height / CHANNEL_COUNT < img->bpc)
+ {
+ g_warning ("Illegal width/height: %ld/%ld", img->width, img->height);
+ return FALSE;
+ }
+ img->numsamples = img->width * img->height * CHANNEL_COUNT;
+
return TRUE;
}
@@ -229,12 +261,24 @@ process (GeglOperation *operation,
if (!ppm_load_read_header (fp, &img))
goto out;
- rect.height = img.height;
- rect.width = img.width;
-
/* Allocating Array Size */
+
+ /* Should use g_try_malloc(), but this causes crashes elsewhere because the
+ * error signalled by returning FALSE isn't properly acted upon. Therefore
+ * g_malloc() is used here which aborts if the requested memory size can't be
+ * allocated causing a controlled crash. */
img.data = (guchar*) g_malloc (img.numsamples * img.bpc);
+ /* No-op without g_try_malloc(), see above. */
+ if (! img.data)
+ {
+ g_warning ("Couldn't allocate %" G_GSIZE_FORMAT " bytes, giving up.", ((gsize)img.numsamples * img.bpc));
+ goto out;
+ }
+
+ rect.height = img.height;
+ rect.width = img.width;
+
switch (img.bpc)
{
case 1:

View File

@ -1,41 +0,0 @@
Fix CVE-2017-17784:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-17784
https://bugzilla.gnome.org/show_bug.cgi?id=790784
Patch copied from upstream source repository:
https://git.gnome.org/browse/gimp/commit/?id=c57f9dcf1934a9ab0cd67650f2dea18cb0902270
From c57f9dcf1934a9ab0cd67650f2dea18cb0902270 Mon Sep 17 00:00:00 2001
From: Jehan <jehan@girinstud.io>
Date: Thu, 21 Dec 2017 12:25:32 +0100
Subject: [PATCH] Bug 790784 - (CVE-2017-17784) heap overread in gbr parser /
load_image.
We were assuming the input name was well formed, hence was
nul-terminated. As any data coming from external input, this has to be
thorougly checked.
Similar to commit 06d24a79af94837d615d0024916bb95a01bf3c59 but adapted
to older gimp-2-8 code.
---
plug-ins/common/file-gbr.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/plug-ins/common/file-gbr.c b/plug-ins/common/file-gbr.c
index b028100bef..d3f01d9c56 100644
--- a/plug-ins/common/file-gbr.c
+++ b/plug-ins/common/file-gbr.c
@@ -443,7 +443,8 @@ load_image (const gchar *filename,
{
gchar *temp = g_new (gchar, bn_size);
- if ((read (fd, temp, bn_size)) < bn_size)
+ if ((read (fd, temp, bn_size)) < bn_size ||
+ temp[bn_size - 1] != '\0')
{
g_set_error (error, G_FILE_ERROR, G_FILE_ERROR_FAILED,
_("Error in GIMP brush file '%s'"),
--
2.15.1

View File

@ -1,171 +0,0 @@
Fix CVE-2017-17785:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-17785
https://bugzilla.gnome.org/show_bug.cgi?id=739133
Patch copied from upstream source repository:
https://git.gnome.org/browse/gimp/commit/?id=1882bac996a20ab5c15c42b0c5e8f49033a1af54
From 1882bac996a20ab5c15c42b0c5e8f49033a1af54 Mon Sep 17 00:00:00 2001
From: Tobias Stoeckmann <tobias@stoeckmann.org>
Date: Sun, 29 Oct 2017 15:19:41 +0100
Subject: [PATCH] Bug 739133 - (CVE-2017-17785) Heap overflow while parsing FLI
files.
It is possible to trigger a heap overflow while parsing FLI files. The
RLE decoder is vulnerable to out of boundary writes due to lack of
boundary checks.
The variable "framebuf" points to a memory area which was allocated
with fli_header->width * fli_header->height bytes. The RLE decoder
therefore must never write beyond that limit.
If an illegal frame is detected, the parser won't stop, which means
that the next valid sequence is properly parsed again. This should
allow GIMP to parse FLI files as good as possible even if they are
broken by an attacker or by accident.
While at it, I changed the variable xc to be of type size_t, because
the multiplication of width and height could overflow a 16 bit type.
Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
(cherry picked from commit edb251a7ef1602d20a5afcbf23f24afb163de63b)
---
plug-ins/file-fli/fli.c | 50 ++++++++++++++++++++++++++++++++++---------------
1 file changed, 35 insertions(+), 15 deletions(-)
diff --git a/plug-ins/file-fli/fli.c b/plug-ins/file-fli/fli.c
index 313efeb977..ffb651e2af 100644
--- a/plug-ins/file-fli/fli.c
+++ b/plug-ins/file-fli/fli.c
@@ -25,6 +25,8 @@
#include "config.h"
+#include <glib/gstdio.h>
+
#include <string.h>
#include <stdio.h>
@@ -461,23 +463,27 @@ void fli_read_brun(FILE *f, s_fli_header *fli_header, unsigned char *framebuf)
unsigned short yc;
unsigned char *pos;
for (yc=0; yc < fli_header->height; yc++) {
- unsigned short xc, pc, pcnt;
+ unsigned short pc, pcnt;
+ size_t n, xc;
pc=fli_read_char(f);
xc=0;
pos=framebuf+(fli_header->width * yc);
+ n=(size_t)fli_header->width * (fli_header->height-yc);
for (pcnt=pc; pcnt>0; pcnt--) {
unsigned short ps;
ps=fli_read_char(f);
if (ps & 0x80) {
unsigned short len;
- for (len=-(signed char)ps; len>0; len--) {
+ for (len=-(signed char)ps; len>0 && xc<n; len--) {
pos[xc++]=fli_read_char(f);
}
} else {
unsigned char val;
+ size_t len;
+ len=MIN(n-xc,ps);
val=fli_read_char(f);
- memset(&(pos[xc]), val, ps);
- xc+=ps;
+ memset(&(pos[xc]), val, len);
+ xc+=len;
}
}
}
@@ -564,25 +570,34 @@ void fli_read_lc(FILE *f, s_fli_header *fli_header, unsigned char *old_framebuf,
memcpy(framebuf, old_framebuf, fli_header->width * fli_header->height);
firstline = fli_read_short(f);
numline = fli_read_short(f);
+ if (numline > fli_header->height || fli_header->height-numline < firstline)
+ return;
+
for (yc=0; yc < numline; yc++) {
- unsigned short xc, pc, pcnt;
+ unsigned short pc, pcnt;
+ size_t n, xc;
pc=fli_read_char(f);
xc=0;
pos=framebuf+(fli_header->width * (firstline+yc));
+ n=(size_t)fli_header->width * (fli_header->height-firstline-yc);
for (pcnt=pc; pcnt>0; pcnt--) {
unsigned short ps,skip;
skip=fli_read_char(f);
ps=fli_read_char(f);
- xc+=skip;
+ xc+=MIN(n-xc,skip);
if (ps & 0x80) {
unsigned char val;
+ size_t len;
ps=-(signed char)ps;
val=fli_read_char(f);
- memset(&(pos[xc]), val, ps);
- xc+=ps;
+ len=MIN(n-xc,ps);
+ memset(&(pos[xc]), val, len);
+ xc+=len;
} else {
- fread(&(pos[xc]), ps, 1, f);
- xc+=ps;
+ size_t len;
+ len=MIN(n-xc,ps);
+ fread(&(pos[xc]), len, 1, f);
+ xc+=len;
}
}
}
@@ -689,7 +704,8 @@ void fli_read_lc_2(FILE *f, s_fli_header *fli_header, unsigned char *old_framebu
yc=0;
numline = fli_read_short(f);
for (lc=0; lc < numline; lc++) {
- unsigned short xc, pc, pcnt, lpf, lpn;
+ unsigned short pc, pcnt, lpf, lpn;
+ size_t n, xc;
pc=fli_read_short(f);
lpf=0; lpn=0;
while (pc & 0x8000) {
@@ -700,26 +716,30 @@ void fli_read_lc_2(FILE *f, s_fli_header *fli_header, unsigned char *old_framebu
}
pc=fli_read_short(f);
}
+ yc=MIN(yc, fli_header->height);
xc=0;
pos=framebuf+(fli_header->width * yc);
+ n=(size_t)fli_header->width * (fli_header->height-yc);
for (pcnt=pc; pcnt>0; pcnt--) {
unsigned short ps,skip;
skip=fli_read_char(f);
ps=fli_read_char(f);
- xc+=skip;
+ xc+=MIN(n-xc,skip);
if (ps & 0x80) {
unsigned char v1,v2;
ps=-(signed char)ps;
v1=fli_read_char(f);
v2=fli_read_char(f);
- while (ps>0) {
+ while (ps>0 && xc+1<n) {
pos[xc++]=v1;
pos[xc++]=v2;
ps--;
}
} else {
- fread(&(pos[xc]), ps, 2, f);
- xc+=ps << 1;
+ size_t len;
+ len=MIN((n-xc)/2,ps);
+ fread(&(pos[xc]), len, 2, f);
+ xc+=len << 1;
}
}
if (lpf) pos[xc]=lpn;
--
2.15.1

View File

@ -1,94 +0,0 @@
Fix CVE-2017-17786:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-17786
https://bugzilla.gnome.org/show_bug.cgi?id=739134
Both patches copied from upstream source repository:
https://git.gnome.org/browse/gimp/commit/?id=ef9c821fff8b637a2178eab1c78cae6764c50e12
https://git.gnome.org/browse/gimp/commit/?id=22e2571c25425f225abdb11a566cc281fca6f366
From ef9c821fff8b637a2178eab1c78cae6764c50e12 Mon Sep 17 00:00:00 2001
From: Jehan <jehan@girinstud.io>
Date: Wed, 20 Dec 2017 13:02:38 +0100
Subject: [PATCH] Bug 739134 - (CVE-2017-17786) Out of bounds read / heap
overflow in...
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
... TGA importer.
Be more thorough on valid TGA RGB and RGBA images.
In particular current TGA plug-in can import RGBA as 32 bits (8 bits per
channel) and 16 bits (5 bits per color channel and 1 bit for alpha), and
RGB as 15 and 24 bits.
Maybe there exist more variants, but if they do exist, we simply don't
support them yet.
Thanks to Hanno Böck for the report and a first patch attempt.
(cherry picked from commit 674b62ad45b6579ec6d7923dc3cb1ef4e8b5498b)
---
plug-ins/common/file-tga.c | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/plug-ins/common/file-tga.c b/plug-ins/common/file-tga.c
index aef98702d4..426acc2925 100644
--- a/plug-ins/common/file-tga.c
+++ b/plug-ins/common/file-tga.c
@@ -564,12 +564,16 @@ load_image (const gchar *filename,
}
break;
case TGA_TYPE_COLOR:
- if (info.bpp != 15 && info.bpp != 16 &&
- info.bpp != 24 && info.bpp != 32)
+ if ((info.bpp != 15 && info.bpp != 16 &&
+ info.bpp != 24 && info.bpp != 32) ||
+ ((info.bpp == 15 || info.bpp == 24) &&
+ info.alphaBits != 0) ||
+ (info.bpp == 16 && info.alphaBits != 1) ||
+ (info.bpp == 32 && info.alphaBits != 8))
{
- g_message ("Unhandled sub-format in '%s' (type = %u, bpp = %u)",
+ g_message ("Unhandled sub-format in '%s' (type = %u, bpp = %u, alpha = %u)",
gimp_filename_to_utf8 (filename),
- info.imageType, info.bpp);
+ info.imageType, info.bpp, info.alphaBits);
return -1;
}
break;
--
2.15.1
From 22e2571c25425f225abdb11a566cc281fca6f366 Mon Sep 17 00:00:00 2001
From: Jehan <jehan@girinstud.io>
Date: Wed, 20 Dec 2017 13:26:26 +0100
Subject: [PATCH] plug-ins: TGA 16-bit RGB (without alpha bit) is also valid.
According to some spec on the web, 16-bit RGB is also valid. In this
case, the last bit is simply ignored (at least that's how it is
implemented right now).
(cherry picked from commit 8ea316667c8a3296bce2832b3986b58d0fdfc077)
---
plug-ins/common/file-tga.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/plug-ins/common/file-tga.c b/plug-ins/common/file-tga.c
index 426acc2925..eb14a1dadc 100644
--- a/plug-ins/common/file-tga.c
+++ b/plug-ins/common/file-tga.c
@@ -568,7 +568,8 @@ load_image (const gchar *filename,
info.bpp != 24 && info.bpp != 32) ||
((info.bpp == 15 || info.bpp == 24) &&
info.alphaBits != 0) ||
- (info.bpp == 16 && info.alphaBits != 1) ||
+ (info.bpp == 16 && info.alphaBits != 1 &&
+ info.alphaBits != 0) ||
(info.bpp == 32 && info.alphaBits != 8))
{
g_message ("Unhandled sub-format in '%s' (type = %u, bpp = %u, alpha = %u)",
--
2.15.1

View File

@ -1,42 +0,0 @@
Fix CVE-2017-17787:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-17787
https://bugzilla.gnome.org/show_bug.cgi?id=790853
Patch copied from upstream source repository:
https://git.gnome.org/browse/gimp/commit/?id=87ba505fff85989af795f4ab6a047713f4d9381d
From 87ba505fff85989af795f4ab6a047713f4d9381d Mon Sep 17 00:00:00 2001
From: Jehan <jehan@girinstud.io>
Date: Thu, 21 Dec 2017 12:49:41 +0100
Subject: [PATCH] Bug 790853 - (CVE-2017-17787) heap overread in psp importer.
As any external data, we have to check that strings being read at fixed
length are properly nul-terminated.
(cherry picked from commit eb2980683e6472aff35a3117587c4f814515c74d)
---
plug-ins/common/file-psp.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/plug-ins/common/file-psp.c b/plug-ins/common/file-psp.c
index 4cbafe37b1..e350e4d88d 100644
--- a/plug-ins/common/file-psp.c
+++ b/plug-ins/common/file-psp.c
@@ -890,6 +890,12 @@ read_creator_block (FILE *f,
g_free (string);
return -1;
}
+ if (string[length - 1] != '\0')
+ {
+ g_message ("Creator keyword data not nul-terminated");
+ g_free (string);
+ return -1;
+ }
switch (keyword)
{
case PSP_CRTR_FLD_TITLE:
--
2.15.1

View File

@ -1,48 +0,0 @@
Fix CVE-2017-17789:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-17789
https://bugzilla.gnome.org/show_bug.cgi?id=790849
Patch copied from upstream source repository:
https://git.gnome.org/browse/gimp/commit/?id=01898f10f87a094665a7fdcf7153990f4e511d3f
From 01898f10f87a094665a7fdcf7153990f4e511d3f Mon Sep 17 00:00:00 2001
From: Jehan <jehan@girinstud.io>
Date: Wed, 20 Dec 2017 16:44:20 +0100
Subject: [PATCH] Bug 790849 - (CVE-2017-17789) CVE-2017-17789 Heap buffer
overflow...
... in PSP importer.
Check if declared block length is valid (i.e. within the actual file)
before going further.
Consider the file as broken otherwise and fail loading it.
(cherry picked from commit 28e95fbeb5720e6005a088fa811f5bf3c1af48b8)
---
plug-ins/common/file-psp.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/plug-ins/common/file-psp.c b/plug-ins/common/file-psp.c
index ac0fff78f0..4cbafe37b1 100644
--- a/plug-ins/common/file-psp.c
+++ b/plug-ins/common/file-psp.c
@@ -1771,6 +1771,15 @@ load_image (const gchar *filename,
{
block_start = ftell (f);
+ if (block_start + block_total_len > st.st_size)
+ {
+ g_set_error (error, G_FILE_ERROR, G_FILE_ERROR_FAILED,
+ _("Could not open '%s' for reading: %s"),
+ gimp_filename_to_utf8 (filename),
+ _("invalid block size"));
+ goto error;
+ }
+
if (id == PSP_IMAGE_BLOCK)
{
if (block_number != 0)
--
2.15.1

View File

@ -1,17 +0,0 @@
Patch configure script to choose pass_all deplibs check method for
linux-gnu* systems on mips64. This is a temporary hack until liboop
bootstraps their build system with a newer libtool.
Patch by Mark H Weaver <mhw@netris.org>.
--- liboop/configure.orig 2003-10-26 11:41:19.000000000 -0500
+++ liboop/configure 2013-11-02 18:09:11.079995796 -0400
@@ -3395,7 +3395,7 @@
# This must be Linux ELF.
linux*)
case $host_cpu in
- alpha* | hppa* | i*86 | ia64* | m68* | mips | mipsel | powerpc* | sparc* | s390* | sh*)
+ alpha* | hppa* | i*86 | ia64* | m68* | mips | mipsel | mips64 | mips64el | powerpc* | sparc* | s390* | sh*)
lt_cv_deplibs_check_method=pass_all ;;
*)
# glibc up to 2.1.1 does not perform some relocations on ARM

View File

@ -1,191 +0,0 @@
Fix CVE-2018-7169:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-7169
Patch copied from upstream source repository:
https://github.com/shadow-maint/shadow/commit/fb28c99b8a66ff2605c5cb96abc0a4d975f92de0
From fb28c99b8a66ff2605c5cb96abc0a4d975f92de0 Mon Sep 17 00:00:00 2001
From: Aleksa Sarai <asarai@suse.de>
Date: Thu, 15 Feb 2018 23:49:40 +1100
Subject: [PATCH] newgidmap: enforce setgroups=deny if self-mapping a group
This is necessary to match the kernel-side policy of "self-mapping in a
user namespace is fine, but you cannot drop groups" -- a policy that was
created in order to stop user namespaces from allowing trivial privilege
escalation by dropping supplementary groups that were "blacklisted" from
certain paths.
This is the simplest fix for the underlying issue, and effectively makes
it so that unless a user has a valid mapping set in /etc/subgid (which
only administrators can modify) -- and they are currently trying to use
that mapping -- then /proc/$pid/setgroups will be set to deny. This
workaround is only partial, because ideally it should be possible to set
an "allow_setgroups" or "deny_setgroups" flag in /etc/subgid to allow
administrators to further restrict newgidmap(1).
We also don't write anything in the "allow" case because "allow" is the
default, and users may have already written "deny" even if they
technically are allowed to use setgroups. And we don't write anything if
the setgroups policy is already "deny".
Ref: https://bugs.launchpad.net/ubuntu/+source/shadow/+bug/1729357
Fixes: CVE-2018-7169
Reported-by: Craig Furman <craig.furman89@gmail.com>
Signed-off-by: Aleksa Sarai <asarai@suse.de>
---
src/newgidmap.c | 89 +++++++++++++++++++++++++++++++++++++++++++++++++++------
1 file changed, 80 insertions(+), 9 deletions(-)
diff --git a/src/newgidmap.c b/src/newgidmap.c
index b1e33513..59a2e75c 100644
--- a/src/newgidmap.c
+++ b/src/newgidmap.c
@@ -46,32 +46,37 @@
*/
const char *Prog;
-static bool verify_range(struct passwd *pw, struct map_range *range)
+
+static bool verify_range(struct passwd *pw, struct map_range *range, bool *allow_setgroups)
{
/* An empty range is invalid */
if (range->count == 0)
return false;
- /* Test /etc/subgid */
- if (have_sub_gids(pw->pw_name, range->lower, range->count))
+ /* Test /etc/subgid. If the mapping is valid then we allow setgroups. */
+ if (have_sub_gids(pw->pw_name, range->lower, range->count)) {
+ *allow_setgroups = true;
return true;
+ }
- /* Allow a process to map its own gid */
- if ((range->count == 1) && (pw->pw_gid == range->lower))
+ /* Allow a process to map its own gid. */
+ if ((range->count == 1) && (pw->pw_gid == range->lower)) {
+ /* noop -- if setgroups is enabled already we won't disable it. */
return true;
+ }
return false;
}
static void verify_ranges(struct passwd *pw, int ranges,
- struct map_range *mappings)
+ struct map_range *mappings, bool *allow_setgroups)
{
struct map_range *mapping;
int idx;
mapping = mappings;
for (idx = 0; idx < ranges; idx++, mapping++) {
- if (!verify_range(pw, mapping)) {
+ if (!verify_range(pw, mapping, allow_setgroups)) {
fprintf(stderr, _( "%s: gid range [%lu-%lu) -> [%lu-%lu) not allowed\n"),
Prog,
mapping->upper,
@@ -89,6 +94,70 @@ static void usage(void)
exit(EXIT_FAILURE);
}
+void write_setgroups(int proc_dir_fd, bool allow_setgroups)
+{
+ int setgroups_fd;
+ char *policy, policy_buffer[4096];
+
+ /*
+ * Default is "deny", and any "allow" will out-rank a "deny". We don't
+ * forcefully write an "allow" here because the process we are writing
+ * mappings for may have already set themselves to "deny" (and "allow"
+ * is the default anyway). So allow_setgroups == true is a noop.
+ */
+ policy = "deny\n";
+ if (allow_setgroups)
+ return;
+
+ setgroups_fd = openat(proc_dir_fd, "setgroups", O_RDWR|O_CLOEXEC);
+ if (setgroups_fd < 0) {
+ /*
+ * If it's an ENOENT then we are on too old a kernel for the setgroups
+ * code to exist. Emit a warning and bail on this.
+ */
+ if (ENOENT == errno) {
+ fprintf(stderr, _("%s: kernel doesn't support setgroups restrictions\n"), Prog);
+ goto out;
+ }
+ fprintf(stderr, _("%s: couldn't open process setgroups: %s\n"),
+ Prog,
+ strerror(errno));
+ exit(EXIT_FAILURE);
+ }
+
+ /*
+ * Check whether the policy is already what we want. /proc/self/setgroups
+ * is write-once, so attempting to write after it's already written to will
+ * fail.
+ */
+ if (read(setgroups_fd, policy_buffer, sizeof(policy_buffer)) < 0) {
+ fprintf(stderr, _("%s: failed to read setgroups: %s\n"),
+ Prog,
+ strerror(errno));
+ exit(EXIT_FAILURE);
+ }
+ if (!strncmp(policy_buffer, policy, strlen(policy)))
+ goto out;
+
+ /* Write the policy. */
+ if (lseek(setgroups_fd, 0, SEEK_SET) < 0) {
+ fprintf(stderr, _("%s: failed to seek setgroups: %s\n"),
+ Prog,
+ strerror(errno));
+ exit(EXIT_FAILURE);
+ }
+ if (dprintf(setgroups_fd, "%s", policy) < 0) {
+ fprintf(stderr, _("%s: failed to setgroups %s policy: %s\n"),
+ Prog,
+ policy,
+ strerror(errno));
+ exit(EXIT_FAILURE);
+ }
+
+out:
+ close(setgroups_fd);
+}
+
/*
* newgidmap - Set the gid_map for the specified process
*/
@@ -103,6 +172,7 @@ int main(int argc, char **argv)
struct stat st;
struct passwd *pw;
int written;
+ bool allow_setgroups = false;
Prog = Basename (argv[0]);
@@ -145,7 +215,7 @@ int main(int argc, char **argv)
(unsigned long) getuid ()));
return EXIT_FAILURE;
}
-
+
/* Get the effective uid and effective gid of the target process */
if (fstat(proc_dir_fd, &st) < 0) {
fprintf(stderr, _("%s: Could not stat directory for target %u\n"),
@@ -177,8 +247,9 @@ int main(int argc, char **argv)
if (!mappings)
usage();
- verify_ranges(pw, ranges, mappings);
+ verify_ranges(pw, ranges, mappings, &allow_setgroups);
+ write_setgroups(proc_dir_fd, allow_setgroups);
write_mapping(proc_dir_fd, ranges, mappings, "gid_map");
sub_gid_close();
--
2.16.2

View File

@ -10,7 +10,7 @@
;;; Copyright © 2016, 2017 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2016, 2017 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016 Julien Lepiller <julien@lepiller.eu> ;;; Copyright © 2016 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2016 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2016 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2017 Leo Famulari <leo@famulari.name> ;;; Copyright © 2017, 2018 Leo Famulari <leo@famulari.name>
;;; Copyright © 2017 Alex Vong <alexvong1995@gmail.com> ;;; Copyright © 2017 Alex Vong <alexvong1995@gmail.com>
;;; Copyright © 2017 Rene Saavedra <rennes@openmailbox.org> ;;; Copyright © 2017 Rene Saavedra <rennes@openmailbox.org>
;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
@ -124,6 +124,36 @@
(license license:gpl2+) (license license:gpl2+)
(home-page "https://poppler.freedesktop.org/"))) (home-page "https://poppler.freedesktop.org/")))
(define-public poppler-data
(package
(name "poppler-data")
(version "0.4.9")
(source (origin
(method url-fetch)
(uri (string-append "https://poppler.freedesktop.org/poppler-data"
"-" version ".tar.gz"))
(sha256
(base32
"04i0wgdkn5lhda8cyxd1ll4a2p41pwqrwd47n9mdpl7cx5ypx70z"))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f ; no test suite
#:make-flags (list (string-append "prefix=" (assoc-ref %outputs "out")))
#:phases
(modify-phases %standard-phases
;; The package only provides some data files, so there is nothing to
;; build.
(delete 'configure)
(delete 'build))))
(synopsis "Poppler encoding files for rendering of CJK and Cyrillic text")
(description "This package provides optional encoding files for Poppler.
When present, Poppler is able to correctly render CJK and Cyrillic text.")
(home-page (package-home-page poppler))
;; See COPYING in the source distribution for more information about
;; the licensing.
(license (list license:bsd-3
license:gpl2))))
(define-public poppler-qt4 (define-public poppler-qt4
(package (inherit poppler) (package (inherit poppler)
(name "poppler-qt4") (name "poppler-qt4")

View File

@ -6003,7 +6003,7 @@ building is done in @code{MooX::ConfigFromFile::Role}---using
(define-public perl-moox-file-configdir (define-public perl-moox-file-configdir
(package (package
(name "perl-moox-file-configdir") (name "perl-moox-file-configdir")
(version "0.006") (version "0.007")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -6011,7 +6011,7 @@ building is done in @code{MooX::ConfigFromFile::Role}---using
"MooX-File-ConfigDir-" version ".tar.gz")) "MooX-File-ConfigDir-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0f808sq3627ymgf63zwgh705vv0nhwclxp89clhx8yl6hybcv7kx")))) "074v150wrbddhy1n0qc8s80zrb71l3c4is968cnr06ac5l9kmshz"))))
(build-system perl-build-system) (build-system perl-build-system)
(propagated-inputs (propagated-inputs
`(("perl-file-configdir" ,perl-file-configdir) `(("perl-file-configdir" ,perl-file-configdir)

View File

@ -69,14 +69,14 @@
(define-public libraw (define-public libraw
(package (package
(name "libraw") (name "libraw")
(version "0.18.9") (version "0.18.10")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://www.libraw.org/data/LibRaw-" (uri (string-append "https://www.libraw.org/data/LibRaw-"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0kmjfdr409k9q9n17k9ywims5z4kqc16s81ba7y09n7669q1gvyj")))) "0klrzg1cn8ksxqbhx52dldi5bbmad190npnhhgkyr2jzpgrbpj88"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(home-page "https://www.libraw.org") (home-page "https://www.libraw.org")
(synopsis "Raw image decoder") (synopsis "Raw image decoder")

View File

@ -179,14 +179,14 @@ colors, styles, options and details.")
(define-public asymptote (define-public asymptote
(package (package
(name "asymptote") (name "asymptote")
(version "2.42") (version "2.44")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://sourceforge/asymptote/" (uri (string-append "mirror://sourceforge/asymptote/"
version "/asymptote-" version ".src.tgz")) version "/asymptote-" version ".src.tgz"))
(sha256 (sha256
(base32 (base32
"0dprc4shzdpvp87kc97ggh5ay2zmskjjaciay7mnblx63rhk1d95")))) "1rs9v95g19ri6ra2m921jf2yr9avqnzfybrqxilsld98xpqx56vg"))))
(build-system gnu-build-system) (build-system gnu-build-system)
;; Note: The 'asy' binary retains a reference to docdir for use with its ;; Note: The 'asy' binary retains a reference to docdir for use with its
;; "help" command in interactive mode, so adding a "doc" output is not ;; "help" command in interactive mode, so adding a "doc" output is not

View File

@ -2588,6 +2588,36 @@ sources.")
(propagated-inputs `(("python2-pytz" ,python2-pytz) (propagated-inputs `(("python2-pytz" ,python2-pytz)
,@(package-propagated-inputs base)))))) ,@(package-propagated-inputs base))))))
(define-public python-sphinx-gallery
(package
(name "python-sphinx-gallery")
(version "0.1.13")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/sphinx-gallery/sphinx-gallery"
"/archive/v" version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"03fs99mcb1r7qp0xixqv07vcz98sk21yq19ffdysi0infdcpzfkd"))))
(build-system python-build-system)
(arguments
;; FIXME: Tests attempt to download <https://docs.python.org/3/objects.inv>,
;; <https://docs.scipy.org/doc/numpy/objects.inv>, and
;; <https://matplotlib.org/objects.inv>.
`(#:tests? #f))
(native-inputs
`(("python-pytest-runner" ,python-pytest-runner)))
(home-page "https://sphinx-gallery.github.io/")
(synopsis "Generate an examples gallery automatically")
(description
"@code{sphinx_gallery} is a Sphinx extension that builds an HTML version
from any set of Python scripts and puts it into an examples gallery.")
(license license:bsd-3)))
(define-public python2-sphinx-gallery
(package-with-python2 python-sphinx-gallery))
(define-public python-sphinx-rtd-theme (define-public python-sphinx-rtd-theme
(package (package
(name "python-sphinx-rtd-theme") (name "python-sphinx-rtd-theme")
@ -2869,7 +2899,7 @@ between language specification and implementation aspects.")
(define-public python-numpy (define-public python-numpy
(package (package
(name "python-numpy") (name "python-numpy")
(version "1.14.0") (version "1.14.3")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -2878,7 +2908,7 @@ between language specification and implementation aspects.")
version "/numpy-" version ".tar.gz")) version "/numpy-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1kh7y2ay21s9mcc11mq59g2f1yc75v152z2k2vlh0xmh9c9rjpf4")))) "1yim2bxlycn4dhxmfxid6slplpmcb4ynhp411b37ahmsm2lwgkyg"))))
(build-system python-build-system) (build-system python-build-system)
(inputs (inputs
`(("openblas" ,openblas) `(("openblas" ,openblas)
@ -3430,17 +3460,18 @@ convert between colorspaces like sRGB, XYZ, CIEL*a*b*, CIECAM02, CAM02-UCS, etc.
(define-public python-matplotlib (define-public python-matplotlib
(package (package
(name "python-matplotlib") (name "python-matplotlib")
(version "2.0.2") (version "2.2.2")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "matplotlib" version)) (uri (pypi-uri "matplotlib" version))
(sha256 (sha256
(base32 (base32
"1w8z2a1l7s72p1byfz7g03wqhygqxi8w82619dqb3a1lm97w9yqg")))) "1s6dv225w3k4fv52h8lfjc7qq5y56i9755ayx0mz48ddi99fzisd"))))
(build-system python-build-system) (build-system python-build-system)
(propagated-inputs ; the following packages are all needed at run time (propagated-inputs ; the following packages are all needed at run time
`(("python-cycler" ,python-cycler) `(("python-cycler" ,python-cycler)
("python-kiwisolver" ,python-kiwisolver)
("python-pyparsing" ,python-pyparsing) ("python-pyparsing" ,python-pyparsing)
("python-pygobject" ,python-pygobject) ("python-pygobject" ,python-pygobject)
("gobject-introspection" ,gobject-introspection) ("gobject-introspection" ,gobject-introspection)
@ -3520,6 +3551,8 @@ toolkits.")
;; of those automatically rewritten by package-with-python2. ;; of those automatically rewritten by package-with-python2.
(propagated-inputs (propagated-inputs
`(("python2-pycairo" ,python2-pycairo) `(("python2-pycairo" ,python2-pycairo)
("python2-backports-functools-lru-cache"
,python2-backports-functools-lru-cache)
("python2-functools32" ,python2-functools32) ("python2-functools32" ,python2-functools32)
("python2-pygobject-2" ,python2-pygobject-2) ("python2-pygobject-2" ,python2-pygobject-2)
("python2-subprocess32" ,python2-subprocess32) ("python2-subprocess32" ,python2-subprocess32)
@ -3536,7 +3569,8 @@ toolkits.")
(native-inputs (native-inputs
`(("python-matplotlib" ,python-matplotlib) `(("python-matplotlib" ,python-matplotlib)
("python-colorspacious" ,python-colorspacious) ("python-colorspacious" ,python-colorspacious)
("python-sphinx" ,python-sphinx) ("python-sphinx" ,python-sphinx-1.6)
("python-sphinx-gallery" ,python-sphinx-gallery)
("python-numpydoc" ,python-numpydoc) ("python-numpydoc" ,python-numpydoc)
("python-ipython" ,python-ipython) ("python-ipython" ,python-ipython)
("python-mock" ,python-mock) ("python-mock" ,python-mock)
@ -3559,7 +3593,7 @@ toolkits.")
(("latex_elements\\['pointsize'\\] = '11pt'" match) (("latex_elements\\['pointsize'\\] = '11pt'" match)
;; insert at a point where latex_elements{} is defined: ;; insert at a point where latex_elements{} is defined:
(string-append match "\nlatex_elements['papersize'] = 'a4paper'"))) (string-append match "\nlatex_elements['papersize'] = 'a4paper'")))
(zero? (system* "python" "make.py" "html" "latex" "texinfo")))) (invoke "make" "SPHINXBUILD=sphinx-build" "html" "latex" "texinfo")))
(replace 'install (replace 'install
(lambda* (#:key inputs outputs #:allow-other-keys) (lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((data (string-append (assoc-ref outputs "out") "/share")) (let* ((data (string-append (assoc-ref outputs "out") "/share"))
@ -3693,14 +3727,14 @@ functions.")
(define-public python-scipy (define-public python-scipy
(package (package
(name "python-scipy") (name "python-scipy")
(version "1.0.0") (version "1.0.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "scipy" version)) (uri (pypi-uri "scipy" version))
(sha256 (sha256
(base32 (base32
"043djb3vyk6qripmyw30jhl0g8qza0fmar6wck10iv79l08izsl7")))) "1fj0r7bg0cfk5clvl57ga06y9bfh05iwlv1dqqs1r6pd89wccfc7"))))
(build-system python-build-system) (build-system python-build-system)
(propagated-inputs (propagated-inputs
`(("python-numpy" ,python-numpy) `(("python-numpy" ,python-numpy)
@ -10503,6 +10537,10 @@ a file-like object from which an arbitrarly-sized key can be read.")
`(("python-lxml" ,python-lxml) ; for SVG output `(("python-lxml" ,python-lxml) ; for SVG output
("python-pillow" ,python-pillow) ; for PNG output ("python-pillow" ,python-pillow) ; for PNG output
("python-six" ,python-six))) ("python-six" ,python-six)))
(inputs
`(;; The setup.cfg file needs to be used, and support for this requires
;; at least version 30.3.0 of setuptools
("python-setuptools" ,python-setuptools)))
(home-page "https://github.com/lincolnloop/python-qrcode") (home-page "https://github.com/lincolnloop/python-qrcode")
(synopsis "QR Code image generator") (synopsis "QR Code image generator")
(description "This package provides a pure Python QR Code generator (description "This package provides a pure Python QR Code generator

View File

@ -1712,7 +1712,7 @@ contain over 620 classes.")
(define-public qscintilla (define-public qscintilla
(package (package
(name "qscintilla") (name "qscintilla")
(version "2.10.2") (version "2.10.3")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://sourceforge/pyqt/QScintilla2/" (uri (string-append "mirror://sourceforge/pyqt/QScintilla2/"
@ -1720,7 +1720,7 @@ contain over 620 classes.")
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1l2ylsv6s3wfhyx7qr5cxgkwwwhvbrpd2k7akgm9bvbyf4h1vcql")))) "1rw1nlwnyzj5pb86cc5kk56qhrvwvrjvjzgrkwh3g7b9wxl7lrfj"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:phases `(#:phases

View File

@ -1005,13 +1005,13 @@ interfaces.")
(define-public ruby-lumberjack (define-public ruby-lumberjack
(package (package
(name "ruby-lumberjack") (name "ruby-lumberjack")
(version "1.0.12") (version "1.0.13")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (rubygems-uri "lumberjack" version)) (uri (rubygems-uri "lumberjack" version))
(sha256 (sha256
(base32 (base32
"0yz26k9mi0djx1qvlmvdw1xw2yf7a2rkfmnb2j0d28kms33xpibp")))) "06im7gcg42x77yhz2w5da2ly9xz0n0c36y5ks7xs53v0l9g0vf5n"))))
(build-system ruby-build-system) (build-system ruby-build-system)
(native-inputs (native-inputs
`(("ruby-rspec" ,ruby-rspec) `(("ruby-rspec" ,ruby-rspec)
@ -2068,14 +2068,14 @@ instance, it provides @code{assert_true}, @code{assert_false} and
(define-public ruby-minitest-hooks (define-public ruby-minitest-hooks
(package (package
(name "ruby-minitest-hooks") (name "ruby-minitest-hooks")
(version "1.4.1") (version "1.4.2")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (rubygems-uri "minitest-hooks" version)) (uri (rubygems-uri "minitest-hooks" version))
(sha256 (sha256
(base32 (base32
"05bngfyxwq1cflk568nhddgfrmws5ff6kiqax4skklsjnh71ykbi")))) "0lnpvzijbjrvxjc43d155jnbk2mkfshrz22an711wh004scavlzc"))))
(build-system ruby-build-system) (build-system ruby-build-system)
(arguments (arguments
'(#:test-target "spec")) '(#:test-target "spec"))
@ -2924,13 +2924,13 @@ a native C extension.")
(define-public ruby-rb-fsevent (define-public ruby-rb-fsevent
(package (package
(name "ruby-rb-fsevent") (name "ruby-rb-fsevent")
(version "0.10.2") (version "0.10.3")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (rubygems-uri "rb-fsevent" version)) (uri (rubygems-uri "rb-fsevent" version))
(sha256 (sha256
(base32 (base32
"1fbpmjypwxkb8r7y1kmhmyp6gawa4byw0yb3jc3dn9ly4ld9lizf")))) "1lm1k7wpz69jx7jrc92w3ggczkjyjbfziq5mg62vjnxmzs383xx8"))))
(build-system ruby-build-system) (build-system ruby-build-system)
;; Tests need "guard-rspec", which needs "guard". However, "guard" needs ;; Tests need "guard-rspec", which needs "guard". However, "guard" needs
;; "listen", which needs "rb-fsevent" at runtime. ;; "listen", which needs "rb-fsevent" at runtime.
@ -3694,14 +3694,14 @@ application.")
(define-public ruby-eventmachine (define-public ruby-eventmachine
(package (package
(name "ruby-eventmachine") (name "ruby-eventmachine")
(version "1.2.5") (version "1.2.6")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (rubygems-uri "eventmachine" version)) (uri (rubygems-uri "eventmachine" version))
(sha256 (sha256
(base32 (base32
"075hdw0fgzldgss3xaqm2dk545736khcvv1fmzbf1sgdlkyh1v8z")))) "08477hl609rmmngwfy8dmsqz5zvsg8xrsrrk6xi70jf48majwli0"))))
(build-system ruby-build-system) (build-system ruby-build-system)
(arguments (arguments
'(#:tests? #f)) ; test suite tries to connect to google.com '(#:tests? #f)) ; test suite tries to connect to google.com
@ -3882,14 +3882,14 @@ definitions.")
(define-public ruby-fivemat (define-public ruby-fivemat
(package (package
(name "ruby-fivemat") (name "ruby-fivemat")
(version "1.3.5") (version "1.3.6")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (rubygems-uri "fivemat" version)) (uri (rubygems-uri "fivemat" version))
(sha256 (sha256
(base32 (base32
"0ij7n250gk5c1g34rsbwjnpcv64gk4vsas8lkz8fac4wbygvk6z1")))) "006n7b09vviv5bs5hv2ccmjxw9iw3brcsm3xh3dhzfncsknz4jp7"))))
(build-system ruby-build-system) (build-system ruby-build-system)
(arguments (arguments
`(#:tests? #f)) ; no tests `(#:tests? #f)) ; no tests

View File

@ -150,14 +150,14 @@ anywhere.")
(define-public samba (define-public samba
(package (package
(name "samba") (name "samba")
(version "4.7.7") (version "4.8.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://download.samba.org/pub/samba/stable/" (uri (string-append "https://download.samba.org/pub/samba/stable/"
"samba-" version ".tar.gz")) "samba-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0c81x2ncnvz3mi6fjj81clm1mh049d3ip3fj031l44qclxpx3yi9")))) "17bqgxyv34hjnb4hfamag75gwhqipp6mpvba5xg7lszi0xskdxwf"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:phases `(#:phases
@ -192,8 +192,8 @@ anywhere.")
(add-before 'install 'disable-etc-samba-directory-creation (add-before 'install 'disable-etc-samba-directory-creation
(lambda _ (lambda _
(substitute* "dynconfig/wscript" (substitute* "dynconfig/wscript"
(("bld\\.INSTALL_DIRS\\(\"\",[[:blank:]]{1,}\"\\$\\{CONFIGDIR\\}[[:blank:]]{1,}") (("bld\\.INSTALL_DIR\\(\"\\$\\{CONFIGDIR\\}\"\\)")
"bld.INSTALL_DIRS(\"\", \"")) ""))
#t))) #t)))
;; XXX: The test infrastructure attempts to set password with ;; XXX: The test infrastructure attempts to set password with
;; smbpasswd, which fails with "smbpasswd -L can only be used by root." ;; smbpasswd, which fails with "smbpasswd -L can only be used by root."
@ -206,14 +206,16 @@ anywhere.")
("gnutls" ,gnutls) ("gnutls" ,gnutls)
("iniparser" ,iniparser) ("iniparser" ,iniparser)
("libaio" ,libaio) ("libaio" ,libaio)
("ldb" ,ldb)
("linux-pam" ,linux-pam) ("linux-pam" ,linux-pam)
("openldap" ,openldap) ("openldap" ,openldap)
("popt" ,popt) ("popt" ,popt)
("readline" ,readline) ("readline" ,readline)
("talloc" ,talloc)
("tevent" ,tevent)
("tdb" ,tdb))) ("tdb" ,tdb)))
(propagated-inputs
;; In Requires or Requires.private of pkg-config files.
`(("ldb" ,ldb)
("talloc" ,talloc)
("tevent" ,tevent)))
(native-inputs (native-inputs
`(("docbook-xsl" ,docbook-xsl) ;for generating manpages `(("docbook-xsl" ,docbook-xsl) ;for generating manpages
("xsltproc" ,libxslt) ;ditto ("xsltproc" ,libxslt) ;ditto
@ -340,14 +342,14 @@ many event types, including timers, signals, and the classic file descriptor eve
(define-public ldb (define-public ldb
(package (package
(name "ldb") (name "ldb")
(version "1.3.2") (version "1.3.3")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://www.samba.org/ftp/ldb/ldb-" (uri (string-append "https://www.samba.org/ftp/ldb/ldb-"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1avn4fl393kc80krbc47phbp0argdkys62ycs8vm934a6nvz0gnf")))) "14gsrm7dvyjpbpnc60z75j6fz2p187abm2h353lq95kx2bv70c1b"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:phases '(#:phases

View File

@ -6,6 +6,7 @@
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be> ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2018 Chris Marusich <cmmarusich@gmail.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -31,14 +32,20 @@
#:use-module (guix build-system glib-or-gtk) #:use-module (guix build-system glib-or-gtk)
#:use-module (gnu packages autotools) #:use-module (gnu packages autotools)
#:use-module (gnu packages curl) #:use-module (gnu packages curl)
#:use-module (gnu packages check)
#:use-module (gnu packages docbook)
#:use-module (gnu packages documentation)
#:use-module (gnu packages gettext) #:use-module (gnu packages gettext)
#:use-module (gnu packages graphviz)
#:use-module (gnu packages gtk) #:use-module (gnu packages gtk)
#:use-module (gnu packages libusb) #:use-module (gnu packages libusb)
#:use-module (gnu packages linux) #:use-module (gnu packages linux)
#:use-module (gnu packages man) #:use-module (gnu packages man)
#:use-module (gnu packages networking) #:use-module (gnu packages networking)
#:use-module (gnu packages cyrus-sasl) #:use-module (gnu packages cyrus-sasl)
#:use-module (gnu packages readline)
#:use-module (gnu packages tls) #:use-module (gnu packages tls)
#:use-module (gnu packages tex)
#:use-module (gnu packages perl) #:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
#:use-module (gnu packages xml)) #:use-module (gnu packages xml))
@ -202,3 +209,86 @@ one-time-password (OTP) YubiKey against Yubicos servers. See the Yubico
website for more information about Yubico and the YubiKey.") website for more information about Yubico and the YubiKey.")
(home-page "https://developers.yubico.com/yubico-c-client/") (home-page "https://developers.yubico.com/yubico-c-client/")
(license license:bsd-2))) (license license:bsd-2)))
(define-public opensc
(package
(name "opensc")
(version "0.17.0")
(source (origin
(method url-fetch)
(uri (string-append
"https://github.com/OpenSC/OpenSC/releases/download/"
version "/opensc-" version ".tar.gz"))
(sha256
(base32
"0043jh5g7q2lyd5vnb0akwb5y349isx7vbm9wqhlgav7d20wcwxy"))))
(build-system gnu-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
;; By setting an absolute path here, we arrange for OpenSC to
;; successfully dlopen libpcsclite.so.1 by default. The user can
;; still override this if they want to, by specifying a custom OpenSC
;; configuration file at runtime.
(add-after 'unpack 'set-default-libpcsclite.so.1-path
(lambda* (#:key inputs #:allow-other-keys)
(let ((libpcsclite (string-append (assoc-ref inputs "pcsc-lite")
"/lib/libpcsclite.so.1")))
(substitute* "configure"
(("DEFAULT_PCSC_PROVIDER=\"libpcsclite\\.so\\.1\"")
(string-append
"DEFAULT_PCSC_PROVIDER=\"" libpcsclite "\"")))
#t))))))
(inputs
`(("readline" ,readline)
("openssl" ,openssl)
("pcsc-lite" ,pcsc-lite)
("ccid" ,ccid)))
(native-inputs
`(("libxslt" ,libxslt)
("docbook-xsl" ,docbook-xsl)
("pkg-config" ,pkg-config)))
(home-page "https://github.com/OpenSC/OpenSC/wiki")
(synopsis "Tools and libraries related to smart cards")
(description
"OpenSC is a set of software tools and libraries to work with smart
cards, with the focus on smart cards with cryptographic capabilities. OpenSC
facilitate the use of smart cards in security applications such as
authentication, encryption and digital signatures. OpenSC implements the PKCS
#15 standard and the PKCS #11 API.")
(license license:lgpl2.1+)))
(define-public yubico-piv-tool
(package
(name "yubico-piv-tool")
(version "1.5.0")
(source (origin
(method url-fetch)
(uri (string-append
"https://developers.yubico.com/yubico-piv-tool/Releases/"
name "-" version ".tar.gz"))
(sha256
(base32
"1axa0lnky5gsc8yack6mpfbjh49z0czr1cv52gbgjnx2kcbpb0y1"))))
(build-system gnu-build-system)
(inputs
`(("perl" ,perl)
("pcsc-lite" ,pcsc-lite)
("openssl" ,openssl)))
(native-inputs
`(("doxygen" ,doxygen)
("graphviz" ,graphviz)
("check" ,check)
("texlive-bin" ,texlive-bin)
("pkg-config" ,pkg-config)))
(home-page "https://developers.yubico.com/yubico-piv-tool/")
(synopsis "Interact with the PIV application on a YubiKey")
(description
"The Yubico PIV tool is used for interacting with the Privilege and
Identification Card (PIV) application on a YubiKey. With it you may generate
keys on the device, import keys and certificates, create certificate requests,
and other operations. It includes a library and a command-line tool.")
;; The file ykcs11/pkcs11.h also declares an additional, very short free
;; license for that one file. Please see it for details. The vast
;; majority of files are licensed under bsd-2.
(license license:bsd-2)))

View File

@ -248,7 +248,7 @@ that implements both the msgpack and msgpack-rpc specifications.")
(define-public yaml-cpp (define-public yaml-cpp
(package (package
(name "yaml-cpp") (name "yaml-cpp")
(version "0.6.1") (version "0.6.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -256,12 +256,10 @@ that implements both the msgpack and msgpack-rpc specifications.")
"yaml-cpp-" version ".tar.gz")) "yaml-cpp-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"038ddf771d1zrdfiwqzq2lsjdis1fxbaasbdja2w9f1av3k3gv15")))) "01gxn7kc8pzyh4aadjxxzq8cignmbwmm9rfrsmgqfg9w2q75dn74"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
'(#:configure-flags '("-DBUILD_SHARED_LIBS=ON"))) '(#:configure-flags '("-DBUILD_SHARED_LIBS=ON")))
(inputs
`(("boost" ,boost)))
(native-inputs (native-inputs
`(("python" ,python))) `(("python" ,python)))
(home-page "https://github.com/jbeder/yaml-cpp") (home-page "https://github.com/jbeder/yaml-cpp")

View File

@ -356,14 +356,14 @@ ksh, and tcsh.")
(define-public xonsh (define-public xonsh
(package (package
(name "xonsh") (name "xonsh")
(version "0.6.1") (version "0.6.2")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "xonsh" version)) (uri (pypi-uri "xonsh" version))
(sha256 (sha256
(base32 (base32
"09rrfcwpirbxmjjqnsbyn7lwm1wyn41z5zhkbnv57i5hcgs72kx6")) "0c2bbmdg0n10q54vq9k1z5n53l0mh1hb1q5xprfhilvrbr6hlcwr"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
`(begin `(begin

View File

@ -444,16 +444,15 @@ particularly useful for embedded systems, such as wireless routers.")
(define-public liboop (define-public liboop
(package (package
(name "liboop") (name "liboop")
(version "1.0") (version "1.0.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "http://download.ofb.net/liboop/liboop-" (uri (string-append "http://ftp.lysator.liu.se/pub/liboop/"
version ".tar.gz")) name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0z6rlalhvfca64jpvksppc9bdhs7jwhiw4y35g5ibvh91xp3rn1l")) "1q0p1l72pq9k3bi7a366j2rishv7dzzkg3i6r2npsfg7cnnidbsn"))))
(patches (search-patches "liboop-mips64-deplibs-fix.patch"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(home-page "http://www.lysator.liu.se/liboop/") (home-page "http://www.lysator.liu.se/liboop/")
(synopsis "Event loop library") (synopsis "Event loop library")

View File

@ -318,14 +318,14 @@ D.V. Hinkley (1997, CUP), originally written by Angelo Canty for S.")
(define-public r-mass (define-public r-mass
(package (package
(name "r-mass") (name "r-mass")
(version "7.3-49") (version "7.3-50")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "MASS" version)) (uri (cran-uri "MASS" version))
(sha256 (sha256
(base32 (base32
"1yjbnj1p4z0vw84wga8q5fyqiw4n6r7pc6rdwam7vsbiamyzfcqs")))) "16hasv9k4n773jsyzvh8s3gbga49hwdj8n5hxij6zqisy4i0kxq6"))))
(properties `((upstream-name . "MASS"))) (properties `((upstream-name . "MASS")))
(build-system r-build-system) (build-system r-build-system)
(home-page "http://www.stats.ox.ac.uk/pub/MASS4/") (home-page "http://www.stats.ox.ac.uk/pub/MASS4/")
@ -939,14 +939,14 @@ solution for sending email, including attachments, from within R.")
(define-public r-stringi (define-public r-stringi
(package (package
(name "r-stringi") (name "r-stringi")
(version "1.1.7") (version "1.2.2")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "stringi" version)) (uri (cran-uri "stringi" version))
(sha256 (sha256
(base32 (base32
"0nck1s2iglmkrn15ay2chrrwsy5lngcylz2sc87fxy5skxaahxdl")))) "1z8yqnh3alq0xriz77vifgl27msf3av6maz07fld78m90ajb6y8r"))))
(build-system r-build-system) (build-system r-build-system)
(inputs `(("icu4c" ,icu4c))) (inputs `(("icu4c" ,icu4c)))
(native-inputs `(("pkg-config" ,pkg-config))) (native-inputs `(("pkg-config" ,pkg-config)))
@ -1188,13 +1188,13 @@ evaluation (NSE) in R.")
(define-public r-dbi (define-public r-dbi
(package (package
(name "r-dbi") (name "r-dbi")
(version "0.8") (version "1.0.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "DBI" version)) (uri (cran-uri "DBI" version))
(sha256 (sha256
(base32 (base32
"16nf8flxr5vdz8yrpprfbzydy3ajixkp9hc8ibd9n7r9nc29waym")))) "1x8wy2vg2gcgd9bww04qmf0dsn3kp0rfjd8q8j1r2x9zxccg25pz"))))
(build-system r-build-system) (build-system r-build-system)
(home-page "https://github.com/rstats-db/DBI") (home-page "https://github.com/rstats-db/DBI")
(synopsis "R database interface") (synopsis "R database interface")
@ -1331,13 +1331,13 @@ syntax that can be converted to XHTML or other formats.")
(define-public r-yaml (define-public r-yaml
(package (package
(name "r-yaml") (name "r-yaml")
(version "2.1.18") (version "2.1.19")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "yaml" version)) (uri (cran-uri "yaml" version))
(sha256 (sha256
(base32 (base32
"15m4q5krfqg0avvqg9i2g6ns4757lk6zbyrwbx5c5bgh51glvd8v")))) "04bzrnfgbpk0rhkvzwp3k3ip7jpq26bjxz71bx5mwxmcjdb07nz5"))))
(build-system r-build-system) (build-system r-build-system)
(home-page "https://cran.r-project.org/web/packages/yaml/") (home-page "https://cran.r-project.org/web/packages/yaml/")
(synopsis "Methods to convert R data to YAML and back") (synopsis "Methods to convert R data to YAML and back")
@ -1681,14 +1681,14 @@ transformations.")
(define-public r-formula (define-public r-formula
(package (package
(name "r-formula") (name "r-formula")
(version "1.2-2") (version "1.2-3")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "Formula" version)) (uri (cran-uri "Formula" version))
(sha256 (sha256
(base32 (base32
"0ad49bzip1zqmpj1d8jajwl4bd81fm3k6dq8p26x6mvlzc04dvwd")))) "0wiqh8rr9d5ciy80wj8f5fnmiiw0ywanvvnhkwd622dx42dk848l"))))
(properties `((upstream-name . "Formula"))) (properties `((upstream-name . "Formula")))
(build-system r-build-system) (build-system r-build-system)
(home-page "https://cran.r-project.org/web/packages/Formula") (home-page "https://cran.r-project.org/web/packages/Formula")
@ -1742,13 +1742,13 @@ times.")
(define-public r-data-table (define-public r-data-table
(package (package
(name "r-data-table") (name "r-data-table")
(version "1.10.4-3") (version "1.11.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "data.table" version)) (uri (cran-uri "data.table" version))
(sha256 (sha256
(base32 (base32
"12caklgr19vy9wprdks6zh825vr1iw1cajgwcnbpyvmijqdlz2xs")))) "0n1p35c9sni2272ykxsfbsy7xma62br7v668a5bvc37g75xf10df"))))
(build-system r-build-system) (build-system r-build-system)
(home-page "https://github.com/Rdatatable/data.table/wiki") (home-page "https://github.com/Rdatatable/data.table/wiki")
(synopsis "Enhanced version of data.frame R object") (synopsis "Enhanced version of data.frame R object")
@ -2157,14 +2157,14 @@ module, Java Server Pages, and Python's psp module.")
(define-public r-desc (define-public r-desc
(package (package
(name "r-desc") (name "r-desc")
(version "1.1.1") (version "1.2.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "desc" version)) (uri (cran-uri "desc" version))
(sha256 (sha256
(base32 (base32
"0k07qighac1xzmm8k988zi7i88a0yfvia3gk5hbz0fyvb2v9kzrj")))) "1s6s13fk6sxwcj8wzkwxl9vr33153xx11p5wi9avqx3rzkabavz6"))))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
`(("r-assertthat" ,r-assertthat) `(("r-assertthat" ,r-assertthat)
@ -2182,14 +2182,14 @@ other packages.")
(define-public r-commonmark (define-public r-commonmark
(package (package
(name "r-commonmark") (name "r-commonmark")
(version "1.4") (version "1.5")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "commonmark" version)) (uri (cran-uri "commonmark" version))
(sha256 (sha256
(base32 (base32
"1vb8r9khpvcf0q7acv8rsplfjjwcll302bg5kp596cvn6aacypl6")))) "1jwx5rgm0ypd9a3v4jd9za4a644rdzhk1n4dvmgkj9hdpwsida3z"))))
(build-system r-build-system) (build-system r-build-system)
(home-page "https://cran.r-project.org/web/packages/commonmark") (home-page "https://cran.r-project.org/web/packages/commonmark")
(synopsis "CommonMark and Github Markdown Rendering in R") (synopsis "CommonMark and Github Markdown Rendering in R")
@ -2482,13 +2482,13 @@ well as additional utilities such as panel and axis annotation functions.")
(define-public r-rcpparmadillo (define-public r-rcpparmadillo
(package (package
(name "r-rcpparmadillo") (name "r-rcpparmadillo")
(version "0.8.400.0.0") (version "0.8.500.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "RcppArmadillo" version)) (uri (cran-uri "RcppArmadillo" version))
(sha256 (sha256
(base32 (base32
"11y2ksf46zw6fcz0kk70szyfn7qqxwwd33xylrxvnyb7ldmbc5yr")))) "1sh36dx6inmb56m40nigy94gxlgjva816qnlmjwg7y2bdvqj8vsi"))))
(properties `((upstream-name . "RcppArmadillo"))) (properties `((upstream-name . "RcppArmadillo")))
(build-system r-build-system) (build-system r-build-system)
(native-inputs (native-inputs
@ -3986,14 +3986,14 @@ hierarchical clustering dendrograms.")
(define-public r-preprocesscore (define-public r-preprocesscore
(package (package
(name "r-preprocesscore") (name "r-preprocesscore")
(version "1.40.0") (version "1.42.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "preprocessCore" version)) (uri (bioconductor-uri "preprocessCore" version))
(sha256 (sha256
(base32 (base32
"0mrdgbkb9dcfr9gsqyxfpshnxx60mq97pl98b8yl00l2gfwz48ph")))) "1afar1z7959v7mbzsqa77vqfh0yc7y3nv5ayx71485a8scwsfwbk"))))
(properties (properties
`((upstream-name . "preprocessCore"))) `((upstream-name . "preprocessCore")))
(build-system r-build-system) (build-system r-build-system)

View File

@ -29,7 +29,7 @@
(define-public syncthing (define-public syncthing
(package (package
(name "syncthing") (name "syncthing")
(version "0.14.46") (version "0.14.47")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://github.com/syncthing/syncthing" (uri (string-append "https://github.com/syncthing/syncthing"
@ -37,7 +37,7 @@
"/syncthing-source-v" version ".tar.gz")) "/syncthing-source-v" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0h5b2mp0li0qzrz3wggzavdfqfaz9b79hx6wds84ya2i9maw80cl")) "1wz6cwq3la5676z1c20sh4fykmjwhs410xzcnb2jfyzaldf57cwj"))
(modules '((guix build utils))) (modules '((guix build utils)))
;; Delete bundled ("vendored") free software source code. ;; Delete bundled ("vendored") free software source code.
(snippet '(begin (snippet '(begin
@ -145,7 +145,7 @@
("go-golang-org-x-net-union" ,(go-golang-org-x-net-union)) ("go-golang-org-x-net-union" ,(go-golang-org-x-net-union))
("go-golang-org-x-text" ,(go-golang-org-x-text-union)) ("go-golang-org-x-text" ,(go-golang-org-x-text-union))
("go-golang-org-x-time-rate" ,go-golang-org-x-time-rate) ("go-golang-org-x-time-rate" ,go-golang-org-x-time-rate)
("go-github-com-zillode-notify" ,go-github-com-zillode-notify) ("go-github-com-syncthing-notify" ,go-github-com-syncthing-notify)
;; For tests ;; For tests
("go-github-com-d4l3k-messagediff" ,go-github-com-d4l3k-messagediff))) ("go-github-com-d4l3k-messagediff" ,go-github-com-d4l3k-messagediff)))
(synopsis "Decentralized continuous file system synchronization") (synopsis "Decentralized continuous file system synchronization")
@ -507,7 +507,10 @@ address of the default LAN gateway.")
"056dkgxrqjj5r18bnc3knlpgdz5p3yvp12y4y978hnsfhwaqvbjz")))) "056dkgxrqjj5r18bnc3knlpgdz5p3yvp12y4y978hnsfhwaqvbjz"))))
(build-system go-build-system) (build-system go-build-system)
(arguments (arguments
`(#:import-path "github.com/kardianos/osext")) `(#:import-path "github.com/kardianos/osext"
;; The tests are flaky:
;; <https://github.com/kardianos/osext/issues/21>
#:tests? #f))
(synopsis "Find the running executable") (synopsis "Find the running executable")
(description "Osext provides a method for finding the current executable (description "Osext provides a method for finding the current executable
file that is running. This can be used for upgrading the current executable or file that is running. This can be used for upgrading the current executable or
@ -910,7 +913,6 @@ libraries are in the same directory.")
(define* (go-golang-org-x-net-union #:optional (define* (go-golang-org-x-net-union #:optional
(packages (list go-golang-org-x-net-ipv4 (packages (list go-golang-org-x-net-ipv4
go-golang-org-x-net-bpf go-golang-org-x-net-bpf
go-golang-org-x-net-context
go-golang-org-x-net-ipv6 go-golang-org-x-net-ipv6
go-golang-org-x-net-proxy go-golang-org-x-net-proxy
go-golang-org-x-net-internal-iana))) go-golang-org-x-net-internal-iana)))
@ -1111,30 +1113,30 @@ using sh's word-splitting rules.")
(home-page "https://github.com/kballard/go-shellquote") (home-page "https://github.com/kballard/go-shellquote")
(license expat)))) (license expat))))
(define-public go-github-com-zillode-notify (define-public go-github-com-syncthing-notify
(let ((commit "53dd6873a851fc377c87d82f994b1fecdf25aadb") (let ((commit "b9ceffc925039c77cd9e0d38f248279ccc4399e2")
(revision "3")) (revision "0"))
(package (package
(name "go-github-com-zillode-notify") (name "go-github-com-syncthing-notify")
(version (git-version "0.0.0" revision commit)) (version (git-version "0.0.0" revision commit))
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
(url "https://github.com/calmh/notify") (url "https://github.com/syncthing/notify")
(commit commit))) (commit commit)))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0ar6mj6s91y7hc5gdp88lz3i7xi29cqkx9f090xj899ir21a8djn")))) "1scha9b2r35bvqzqx86sarzjxf72ywvj3g6n9pm3xq4i4xzpylxf"))))
(build-system go-build-system) (build-system go-build-system)
(arguments (arguments
'(#:import-path "github.com/Zillode/notify")) '(#:import-path "github.com/syncthing/notify"))
(propagated-inputs (propagated-inputs
`(("go-golang-org-x-sys-unix" ,go-golang-org-x-sys-unix))) `(("go-golang-org-x-sys-unix" ,go-golang-org-x-sys-unix)))
(synopsis "File system event notification library") (synopsis "File system event notification library")
(description "This package provides @code{notify}, a file system event (description "This package provides @code{notify}, a file system event
notification library in Go.") notification library in Go.")
(home-page "https://github.com/zillode/notify") (home-page "https://github.com/syncthing/notify")
(license expat)))) (license expat))))
(define-public go-github-com-beorn7-perks-quantile (define-public go-github-com-beorn7-perks-quantile

View File

@ -493,13 +493,13 @@ netcat implementation that supports TLS.")
(package (package
(name "python-acme") (name "python-acme")
;; Remember to update the hash of certbot when updating python-acme. ;; Remember to update the hash of certbot when updating python-acme.
(version "0.23.0") (version "0.24.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "acme" version)) (uri (pypi-uri "acme" version))
(sha256 (sha256
(base32 (base32
"0l257dq1i2gka6ynldidpwaz1aa726643crqqckga1w5awsndh88")))) "1jq1nlly5146k08dw31fc1pw78plya5jswznnd512c08giif0mfn"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(#:phases `(#:phases
@ -548,7 +548,7 @@ netcat implementation that supports TLS.")
(uri (pypi-uri name version)) (uri (pypi-uri name version))
(sha256 (sha256
(base32 (base32
"0gh5fr61c3mj5vdkn68k17wcvri9rdj506cmmz6631i2l5flrzvc")))) "0w3dbz74rpabjnc3l3ybnzjdypbr65lsjqf9yn243b5kid9d8wm0"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(,@(substitute-keyword-arguments (package-arguments python-acme) `(,@(substitute-keyword-arguments (package-arguments python-acme)
@ -634,18 +634,20 @@ servers or clients for more complicated applications.")
(define-public perl-crypt-openssl-rsa (define-public perl-crypt-openssl-rsa
(package (package
(name "perl-crypt-openssl-rsa") (name "perl-crypt-openssl-rsa")
(version "0.28") (version "0.30")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
"mirror://cpan/authors/id/P/PE/PERLER/Crypt-OpenSSL-RSA-" "mirror://cpan/authors/id/T/TO/TODDR/Crypt-OpenSSL-RSA-"
version version
".tar.gz")) ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1gnpvv09b2gpifwdzc5jnhama3d1a4c39lzj9hcaicsb8rvzjmsk")))) "1b19kaaw4wda8dy6kjiwqa2prpbs2dqcyjyj9zdh5wbs74qkbq93"))))
(build-system perl-build-system) (build-system perl-build-system)
(native-inputs
`(("perl-crypt-openssl-guess" ,perl-crypt-openssl-guess)))
(inputs (inputs
`(("perl-crypt-openssl-bignum" ,perl-crypt-openssl-bignum) `(("perl-crypt-openssl-bignum" ,perl-crypt-openssl-bignum)
("perl-crypt-openssl-random" ,perl-crypt-openssl-random) ("perl-crypt-openssl-random" ,perl-crypt-openssl-random)
@ -793,7 +795,7 @@ then ported to the GNU / Linux environment.")
(define-public mbedtls-apache (define-public mbedtls-apache
(package (package
(name "mbedtls-apache") (name "mbedtls-apache")
(version "2.7.2") (version "2.7.3")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -803,7 +805,7 @@ then ported to the GNU / Linux environment.")
version "-apache.tgz")) version "-apache.tgz"))
(sha256 (sha256
(base32 (base32
"1mvkqlxxvl6yp1g5g9dk4l7h3wl6149p3pfwgwzgs7xybyxw4f7x")))) "0rfpcc4i01qsl66iy1z9vaw00s34h4qgx3r41i1v5vazv7vjla05"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
`(#:configure-flags `(#:configure-flags

View File

@ -29,14 +29,14 @@
(define-public miniupnpc (define-public miniupnpc
(package (package
(name "miniupnpc") (name "miniupnpc")
(version "2.0.20180410") (version "2.0.20180503")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://miniupnp.tuxfamily.org/files/" (uri (string-append "https://miniupnp.tuxfamily.org/files/"
name "-" version ".tar.gz")) name "-" version ".tar.gz"))
(sha256 (sha256
(base32 "08vs9012bahdwid4nsf3mi2kawcq1hvz7lzpdmiynxcbpip6sk0f")))) (base32 "0dv906ibjdrv4wfrccj36z3lvpvgmcg0dwakhi66fqg6y5l97a5k"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("python" ,python-2))) `(("python" ,python-2)))

View File

@ -564,7 +564,8 @@ libebml is a C++ library to read and write EBML files.")
("libx11" ,libx11) ("libx11" ,libx11)
("libxext" ,libxext) ("libxext" ,libxext)
("libxfixes" ,libxfixes) ("libxfixes" ,libxfixes)
("mesa" ,mesa))) ("mesa" ,mesa)
("wayland" ,wayland)))
(arguments (arguments
`(#:phases `(#:phases
(modify-phases %standard-phases (modify-phases %standard-phases

View File

@ -383,14 +383,14 @@ manage system or application containers.")
(define-public libvirt (define-public libvirt
(package (package
(name "libvirt") (name "libvirt")
(version "4.2.0") (version "4.3.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://libvirt.org/sources/libvirt-" (uri (string-append "https://libvirt.org/sources/libvirt-"
version ".tar.xz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0nq1iz5iic466qahp0i8dlvyd6li0b0pdrvvrz9286l12x2fm61s")))) "1dy243dqaj174hcka0my7q781wf0dvyi7f9328nwnplqicnf4cd5"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(;; FAIL: virshtest `(;; FAIL: virshtest

View File

@ -519,7 +519,7 @@ data.")
(define-public json-c (define-public json-c
(package (package
(name "json-c") (name "json-c")
(version "0.13") (version "0.13.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -527,7 +527,7 @@ data.")
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0kf2594kxcfga6x0mvwzj2qg8pgxhjkibc16ghnw85mdx45ph5h3")) "0ws8dz9nk8q2c0gbf66kg2r6mrkl7kamd3gpdv9zsyrz9n6n0zmq"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
'(begin '(begin
@ -536,14 +536,8 @@ data.")
;; run 'autoheader'. ;; run 'autoheader'.
(set-file-time "config.h.in" (set-file-time "config.h.in"
(stat "aclocal.m4")) (stat "aclocal.m4"))
;; Don't try to build with -Werror.
(substitute* (find-files "." "Makefile\\.in")
(("-Werror") ""))
#t)))) #t))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments '(#:parallel-build? #f
#:parallel-tests? #f))
(home-page "https://github.com/json-c/json-c/wiki") (home-page "https://github.com/json-c/json-c/wiki")
(synopsis "JSON implementation in C") (synopsis "JSON implementation in C")
(description (description
@ -1818,15 +1812,15 @@ number, file name, and code context surrounding the line number.")
(define-public perl-catalyst-plugin-static-simple (define-public perl-catalyst-plugin-static-simple
(package (package
(name "perl-catalyst-plugin-static-simple") (name "perl-catalyst-plugin-static-simple")
(version "0.33") (version "0.36")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://cpan/authors/id/J/JJ/JJNAPIORK/" (uri (string-append "mirror://cpan/authors/id/I/IL/ILMARI/"
"Catalyst-Plugin-Static-Simple-" version ".tar.gz")) "Catalyst-Plugin-Static-Simple-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1h8f12bhzh0ssq9gs8r9g3hqn8zn2k0q944vc1vm8j81bns16msy")))) "0m4l627p2fvzr4i6sgdxhdvsx4wpa6qmaibsbxlg5x5yjs7k7drn"))))
(build-system perl-build-system) (build-system perl-build-system)
(native-inputs (native-inputs
`(("perl-module-install" ,perl-module-install))) `(("perl-module-install" ,perl-module-install)))
@ -2439,7 +2433,7 @@ composed of HTML::Element style components.")
(define-public perl-html-scrubber (define-public perl-html-scrubber
(package (package
(name "perl-html-scrubber") (name "perl-html-scrubber")
(version "0.15") (version "0.17")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -2449,11 +2443,12 @@ composed of HTML::Element style components.")
".tar.gz")) ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1m1f8gm2jry42zxja05dxp2ck7y66m7i8vc38nj6hccnwlby6cvi")))) "06p7w4zd42b2yh541mlzyqj40lwmvvn3fyqi8big4mf34la7m2jm"))))
(build-system perl-build-system) (build-system perl-build-system)
(native-inputs (native-inputs
`(("perl-module-build" ,perl-module-build) `(("perl-module-build" ,perl-module-build)
("perl-test-cpan-meta" ,perl-test-cpan-meta) ("perl-test-cpan-meta" ,perl-test-cpan-meta)
("perl-test-differences" ,perl-test-differences)
("perl-test-eol" ,perl-test-eol) ("perl-test-eol" ,perl-test-eol)
("perl-test-memory-cycle" ,perl-test-memory-cycle) ("perl-test-memory-cycle" ,perl-test-memory-cycle)
("perl-test-notabs" ,perl-test-notabs))) ("perl-test-notabs" ,perl-test-notabs)))
@ -3412,7 +3407,7 @@ either mocked HTTP or a locally spawned server.")
(define-public perl-test-www-mechanize (define-public perl-test-www-mechanize
(package (package
(name "perl-test-www-mechanize") (name "perl-test-www-mechanize")
(version "1.48") (version "1.50")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -3420,17 +3415,12 @@ either mocked HTTP or a locally spawned server.")
"Test-WWW-Mechanize-" version ".tar.gz")) "Test-WWW-Mechanize-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1d11fx9155d5v17d5w7q3kj37b01l8yj2yb0g6b0z1vh938rrlcr")))) "097pl87vdbxbb56vawzvs6ikrlb8nz3dx223kjjbdn3jlli3jjhg"))))
(build-system perl-build-system) (build-system perl-build-system)
(native-inputs
`(("perl-test-exception" ,perl-test-exception)))
(native-inputs
`(("perl-module-install" ,perl-module-install)))
(propagated-inputs (propagated-inputs
`(("perl-carp-assert-more" ,perl-carp-assert-more) `(("perl-carp-assert-more" ,perl-carp-assert-more)
("perl-html-form" ,perl-html-form) ("perl-html-form" ,perl-html-form)
("perl-html-lint" ,perl-html-lint) ("perl-html-lint" ,perl-html-lint)
("perl-html-tree" ,perl-html-tree)
("perl-http-server-simple" ,perl-http-server-simple) ("perl-http-server-simple" ,perl-http-server-simple)
("perl-libwww" ,perl-libwww) ("perl-libwww" ,perl-libwww)
("perl-test-longstring" ,perl-test-longstring) ("perl-test-longstring" ,perl-test-longstring)
@ -3480,7 +3470,7 @@ testing of Catalyst applications without needing to start up a web server.")
(define-public perl-test-www-mechanize-psgi (define-public perl-test-www-mechanize-psgi
(package (package
(name "perl-test-www-mechanize-psgi") (name "perl-test-www-mechanize-psgi")
(version "0.37") (version "0.38")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -3488,7 +3478,7 @@ testing of Catalyst applications without needing to start up a web server.")
"Test-WWW-Mechanize-PSGI-" version ".tar.gz")) "Test-WWW-Mechanize-PSGI-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0c9a9w0d2whadnrich7f09w37fgq5hws4gq04zgz4jsdjcvr3qv2")))) "0fsh2i05kf1kfavv2r9kmnjl7qlyqrd11ikc0qcqzzxsqzzjkg9r"))))
(build-system perl-build-system) (build-system perl-build-system)
(native-inputs (native-inputs
`(("perl-test-pod" ,perl-test-pod))) `(("perl-test-pod" ,perl-test-pod)))

View File

@ -16,6 +16,7 @@
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017 Oleg Pykhalov <go.wigust@gmail.com> ;;; Copyright © 2017 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Pierre-Antoine Rouby <contact@parouby.fr>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -967,3 +968,47 @@ It is inspired by Xmonad and dwm. Its major features include:
(description "Cwm is a stacking window manager for X11. It is an OpenBSD (description "Cwm is a stacking window manager for X11. It is an OpenBSD
project derived from the original Calm Window Manager.") project derived from the original Calm Window Manager.")
(license license:isc))) (license license:isc)))
(define-public nitrogen
(package
(name "nitrogen")
(version "1.6.1")
(source (origin
(method url-fetch)
(uri (string-append "http://github.com/l3ib/nitrogen/"
"releases/download/" version "/"
name "-" version ".tar.gz"))
(sha256
(base32
"0zc3fl1mbhq0iyndy4ysmy8vv5c7xwf54rbgamzfhfvsgdq160pl"))))
(build-system gnu-build-system)
(inputs
`(("gtk+" ,gtk+-2)
("gtkmm" ,gtkmm-2)
("glib" ,glib)
("glibmm" ,glibmm)))
(native-inputs
`(("pkg-config", pkg-config)))
(arguments
`(#:configure-flags (list
(string-append "--prefix=" %output)
"CXXFLAGS=-std=c++11")))
(home-page "http://projects.l3ib.org/nitrogen/")
(synopsis "Background browser and setter for X windows")
(description
"This package is a background browser and setter for X windows. It's
features are:
@itemize
@item Multihead and Xinerama aware
@item Recall mode to used via startup script
@item Uses freedesktop.org standard for thumbnails
@item Can set GNOME background
@item Command lie set modes for script use
@item Inotify monitoring of browse directory
@item Lazy loading of thumbnails - conserves memory
@item \"Automatic\" set mode - determines best mode to set an image based on
its size
@item Display preview images in a tiled icon layout
@end itemize")
(license license:gpl2+)))

View File

@ -2908,12 +2908,11 @@ X server.")
(define-public xf86-video-intel (define-public xf86-video-intel
(let ((commit "af6d8e9e8f546e5cba60e3a62765c2dbd0328e83") (let ((commit "d7dfab62a9853b44bbcd67dac08391d8e5114c97")
(revision "9")) (revision "10"))
(package (package
(name "xf86-video-intel") (name "xf86-video-intel")
(version (string-append "2.99.917-" revision "-" (version (git-version "2.99.917" revision commit))
(string-take commit 7)))
(source (source
(origin (origin
;; there's no current tarball ;; there's no current tarball
@ -2923,8 +2922,8 @@ X server.")
(commit commit))) (commit commit)))
(sha256 (sha256
(base32 (base32
"0f6sbkgykvvdggy8z6y7blf7yharg9vmiixxy190643bjxlnpp2s")) "1vcfal4xr9q6016p28lnlyg709da6d305dysyyrj3fjp9fj48sva"))
(file-name (string-append name "-" version)))) (file-name (git-file-name name version))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs `(("mesa" ,mesa) (inputs `(("mesa" ,mesa)
("udev" ,eudev) ("udev" ,eudev)

View File

@ -691,7 +691,14 @@ See also @url{https://prosody.im/doc/modules/mod_muc}."
(service-extension account-service-type (service-extension account-service-type
(const %prosody-accounts)) (const %prosody-accounts))
(service-extension activation-service-type (service-extension activation-service-type
prosody-activation))))) prosody-activation)))
(default-value (prosody-configuration
(virtualhosts
(list
(virtualhost-configuration
(domain "localhost"))))))
(description
"Run Prosody, a modern XMPP communication server.")))
;; A little helper to make it easier to document all those fields. ;; A little helper to make it easier to document all those fields.
(define (generate-documentation) (define (generate-documentation)

86
gnu/services/sound.scm Normal file
View File

@ -0,0 +1,86 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu services sound)
#:use-module (gnu services base)
#:use-module (gnu services configuration)
#:use-module (gnu services shepherd)
#:use-module (gnu services)
#:use-module (gnu system shadow)
#:use-module (guix gexp)
#:use-module (guix packages)
#:use-module (guix records)
#:use-module (guix store)
#:use-module (gnu packages pulseaudio)
#:use-module (ice-9 match)
#:export (alsa-configuration
alsa-service-type))
;;; Commentary:
;;;
;;; Sound services.
;;;
;;; Code:
;;;
;;; ALSA
;;;
(define-record-type* <alsa-configuration>
alsa-configuration make-alsa-configuration alsa-configuration?
(pulseaudio? alsa-configuration-pulseaudio? ;boolean
(default #t))
(extra-options alsa-configuration-extra-options ;string
(default "")))
(define (alsa-config-file config)
"Return the ALSA configuration file corresponding to CONFIG."
(plain-file "asound.conf"
(string-append "# Generated by 'alsa-service'.\n\n"
(if (alsa-configuration-pulseaudio? config)
"# Use PulseAudio by default
pcm.!default {
type pulse
fallback \"sysdefault\"
hint {
show on
description \"Default ALSA Output (currently PulseAudio Sound Server)\"
}
}
ctl.!default {
type pulse
fallback \"sysdefault\"
}
"
"")
(alsa-configuration-extra-options config))))
(define (alsa-etc-service config)
(list `("asound.conf" ,(alsa-config-file config))))
(define alsa-service-type
(service-type
(name 'alsa)
(extensions
(list (service-extension etc-service-type alsa-etc-service)))
(default-value (alsa-configuration))
(description "Configure low-level Linux sound support, ALSA.")))
;;; sound.scm ends here

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2014, 2016, 2017 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2013, 2014, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com> ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
@ -120,6 +120,28 @@ front."
(lambda () (lambda ()
(set! path initial-value))))) (set! path initial-value)))))
(define (call/exit-on-exception thunk)
"Evaluate THUNK and exit right away if an exception is thrown."
(catch #t
thunk
(const #f)
(lambda (key . args)
(false-if-exception
;; Duplicate stderr to avoid thread-safety issues.
(let* ((port (duplicate-port (current-error-port) "w0"))
(stack (make-stack #t))
(depth (stack-length stack))
(frame (and (> depth 1) (stack-ref stack 1))))
(false-if-exception (display-backtrace stack port))
(print-exception port frame key args)))
;; Don't go any further.
(primitive-exit 1))))
(define-syntax-rule (exit-on-exception exp ...)
"Evaluate EXP and exit if an exception is thrown."
(call/exit-on-exception (lambda () exp ...)))
(define* (compile-files source-directory build-directory files (define* (compile-files source-directory build-directory files
#:key #:key
(host %host-type) (host %host-type)
@ -139,6 +161,9 @@ files are for HOST, a GNU triplet such as \"x86_64-linux-gnu\"."
(define (build file) (define (build file)
(with-mutex progress-lock (with-mutex progress-lock
(report-compilation file total completed)) (report-compilation file total completed))
;; Exit as soon as something goes wrong.
(exit-on-exception
(with-fluids ((*current-warning-prefix* "")) (with-fluids ((*current-warning-prefix* ""))
(with-target host (with-target host
(lambda () (lambda ()
@ -147,7 +172,7 @@ files are for HOST, a GNU triplet such as \"x86_64-linux-gnu\"."
#:output-file (string-append build-directory "/" #:output-file (string-append build-directory "/"
(scm->go relative)) (scm->go relative))
#:opts (append warning-options #:opts (append warning-options
(optimization-options relative))))))) (optimization-options relative))))))))
(with-mutex progress-lock (with-mutex progress-lock
(set! completed (+ 1 completed)))) (set! completed (+ 1 completed))))

View File

@ -60,7 +60,9 @@
(define* (emacs-byte-compile-directory dir) (define* (emacs-byte-compile-directory dir)
"Byte compile all files in DIR and its sub-directories." "Byte compile all files in DIR and its sub-directories."
(let ((expr `(byte-recompile-directory (file-name-as-directory ,dir) 0))) (let ((expr `(progn
(setq byte-compile-debug t) ; for proper exit status
(byte-recompile-directory (file-name-as-directory ,dir) 0 1))))
(emacs-batch-eval expr))) (emacs-batch-eval expr)))
(define-syntax emacs-substitute-sexps (define-syntax emacs-substitute-sexps

View File

@ -661,6 +661,10 @@ build."
(define system (assoc-ref opts 'system)) (define system (assoc-ref opts 'system))
(define graft? (assoc-ref opts 'graft?)) (define graft? (assoc-ref opts 'graft?))
;; We may get 'unbound-variable' errors while evaluating the 'inputs' fields
;; of user packages. Since 'guix build' is the primary tool for people
;; testing new packages, report such errors gracefully.
(with-unbound-variable-handling
(parameterize ((%graft? graft?)) (parameterize ((%graft? graft?))
(append-map (match-lambda (append-map (match-lambda
((? package? p) ((? package? p)
@ -697,7 +701,7 @@ package '~a' has no source~%")
(gexp->derivation "gexp" gexp (gexp->derivation "gexp" gexp
#:system system)))))) #:system system))))))
(map (cut transform store <>) (map (cut transform store <>)
(options->things-to-build opts))))) (options->things-to-build opts))))))
(define (show-build-log store file urls) (define (show-build-log store file urls)
"Show the build log for FILE, falling back to remote logs from URLS if "Show the build log for FILE, falling back to remote logs from URLS if

View File

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017, 2018 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2017, 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -59,10 +60,8 @@ provided TYPE has a default value."
(define (service-type-shepherd-names type) (define (service-type-shepherd-names type)
"Return the default names of Shepherd services created for TYPE." "Return the default names of Shepherd services created for TYPE."
(match (map shepherd-service-provision (append-map shepherd-service-provision
(service-type-default-shepherd-services type)) (service-type-default-shepherd-services type)))
(((names . _) ...)
names)))
(define* (service-type->recutils type port (define* (service-type->recutils type port
#:optional (width (%text-width)) #:optional (width (%text-width))

View File

@ -208,10 +208,10 @@ unavailable)~%"))
0 queue))) 0 queue)))
(newline) (newline)
(unless (null? missing) (unless (null? missing)
(let ((missing (length missing)))
(match (queued-subset queue missing) (match (queued-subset queue missing)
(#f #f) (#f #f)
((= length queued) ((= length queued)
(let ((missing (length missing)))
(format #t (G_ " ~,1f% (~h out of ~h) of the missing items \ (format #t (G_ " ~,1f% (~h out of ~h) of the missing items \
are queued~%") are queued~%")
(* 100. (/ queued missing)) (* 100. (/ queued missing))

View File

@ -82,6 +82,7 @@
show-manifest-transaction show-manifest-transaction
call-with-error-handling call-with-error-handling
with-error-handling with-error-handling
with-unbound-variable-handling
leave-on-EPIPE leave-on-EPIPE
read/eval read/eval
read/eval-package-expression read/eval-package-expression
@ -164,7 +165,7 @@ messages."
((proc message (variable) _ ...) ((proc message (variable) _ ...)
;; We can always omit PROC because when it's useful (i.e., different from ;; We can always omit PROC because when it's useful (i.e., different from
;; "module-lookup"), it gets displayed before. ;; "module-lookup"), it gets displayed before.
(format port (G_ "~a: unbound variable") variable)) (format port (G_ "error: ~a: unbound variable") variable))
(_ (_
(default-printer)))) (default-printer))))
@ -179,9 +180,9 @@ messages."
modules) modules)
module)) module))
(define* (load* file user-module (define (last-frame-with-source stack)
#:key (on-error 'nothing-special)) "Walk stack upwards and return the last frame that has source location
"Load the user provided Scheme source code FILE." information, or #f if it could not be found."
(define (frame-with-source frame) (define (frame-with-source frame)
;; Walk from FRAME upwards until source location information is found. ;; Walk from FRAME upwards until source location information is found.
(let loop ((frame frame) (let loop ((frame frame)
@ -192,6 +193,15 @@ messages."
frame frame
(loop (frame-previous frame) frame))))) (loop (frame-previous frame) frame)))))
(let* ((depth (stack-length stack))
(last (and (> depth 0) (stack-ref stack 0))))
(frame-with-source (if (> depth 1)
(stack-ref stack 1) ;skip the 'throw' frame
last))))
(define* (load* file user-module
#:key (on-error 'nothing-special))
"Load the user provided Scheme source code FILE."
(define (error-string frame args) (define (error-string frame args)
(call-with-output-string (call-with-output-string
(lambda (port) (lambda (port)
@ -244,12 +254,7 @@ messages."
;; Capture the stack up to this procedure call, excluded, and pass ;; Capture the stack up to this procedure call, excluded, and pass
;; the faulty stack frame to 'report-load-error'. ;; the faulty stack frame to 'report-load-error'.
(let* ((stack (make-stack #t handle-error tag)) (let* ((stack (make-stack #t handle-error tag))
(depth (stack-length stack)) (frame (last-frame-with-source stack)))
(last (and (> depth 0) (stack-ref stack 0)))
(frame (frame-with-source
(if (> depth 1)
(stack-ref stack 1) ;skip the 'throw' frame
last))))
(report-load-error file args frame) (report-load-error file args frame)
@ -311,6 +316,21 @@ PORT."
(- (terminal-columns) 5)))) (- (terminal-columns) 5))))
(texi->plain-text message)))) (texi->plain-text message))))
(define* (report-unbound-variable-error args #:key frame)
"Return the given unbound-variable error, where ARGS is the list of 'throw'
arguments."
(match args
((key . args)
(print-exception (current-error-port) frame key args)))
(match args
(('unbound-variable proc message (variable) _ ...)
(match (known-variable-definition variable)
(#f
(display-hint (G_ "Did you forget a @code{use-modules} form?")))
((? module? module)
(display-hint (format #f (G_ "Did you forget @code{(use-modules ~a)}?")
(module-name module))))))))
(define* (report-load-error file args #:optional frame) (define* (report-load-error file args #:optional frame)
"Report the failure to load FILE, a user-provided Scheme file. "Report the failure to load FILE, a user-provided Scheme file.
ARGS is the list of arguments received by the 'throw' handler." ARGS is the list of arguments received by the 'throw' handler."
@ -331,16 +351,8 @@ ARGS is the list of arguments received by the 'throw' handler."
(let ((loc (source-properties->location properties))) (let ((loc (source-properties->location properties)))
(format (current-error-port) (G_ "~a: error: ~a~%") (format (current-error-port) (G_ "~a: error: ~a~%")
(location->string loc) message))) (location->string loc) message)))
(('unbound-variable proc message (variable) _ ...) (('unbound-variable _ ...)
(match args (report-unbound-variable-error args #:frame frame))
((key . args)
(print-exception (current-error-port) frame key args)))
(match (known-variable-definition variable)
(#f
(display-hint (G_ "Did you forget a @code{use-modules} form?")))
(module
(display-hint (format #f (G_ "Did you forget @code{(use-modules ~a)}?")
(module-name module))))))
(('srfi-34 obj) (('srfi-34 obj)
(if (message-condition? obj) (if (message-condition? obj)
(if (error-location? obj) (if (error-location? obj)
@ -381,6 +393,27 @@ exiting. ARGS is the list of arguments received by the 'throw' handler."
(warning (G_ "failed to load '~a':~%") file) (warning (G_ "failed to load '~a':~%") file)
(apply display-error #f (current-error-port) args)))) (apply display-error #f (current-error-port) args))))
(define (call-with-unbound-variable-handling thunk)
(define tag
(make-prompt-tag "user-code"))
(catch 'unbound-variable
(lambda ()
(call-with-prompt tag
thunk
(const #f)))
(const #t)
(rec (handle-error . args)
(let* ((stack (make-stack #t handle-error tag))
(frame (and stack (last-frame-with-source stack))))
(report-unbound-variable-error args #:frame frame)
(exit 1)))))
(define-syntax-rule (with-unbound-variable-handling exp ...)
"Capture 'unbound-variable' exceptions in the dynamic extent of EXP... and
report them in a user-friendly way."
(call-with-unbound-variable-handling (lambda () exp ...)))
(define (install-locale) (define (install-locale)
"Install the current locale settings." "Install the current locale settings."
(catch 'system-error (catch 'system-error

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
# GNU Guix --- Functional package management for GNU # GNU Guix --- Functional package management for GNU
# Copyright © 2012, 2013, 2014, 2016, 2017 Ludovic Courtès <ludo@gnu.org> # Copyright © 2012, 2013, 2014, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
# #
# This file is part of GNU Guix. # This file is part of GNU Guix.
# #
@ -138,6 +138,25 @@ test `guix build -d --sources=transitive foo \
| grep -e 'foo\.tar\.gz' -e 'bar\.tar\.gz' -e 'bar\.dat' \ | grep -e 'foo\.tar\.gz' -e 'bar\.tar\.gz' -e 'bar\.dat' \
| wc -l` -eq 3 | wc -l` -eq 3
# Unbound variables.
cat > "$module_dir/foo.scm"<<EOF
(define-module (foo)
#:use-module (guix tests)
#:use-module (guix build-system trivial))
(define-public foo
(dummy-package "package-with-something-wrong"
(build-system trivial-build-system)
(inputs (quasiquote (("sed" ,sed)))))) ;unbound variable
EOF
if guix build package-with-something-wrong -n; then false; else true; fi
guix build package-with-something-wrong -n 2> "$module_dir/err" || true
grep "unbound" "$module_dir/err" # actual error
grep "forget.*(gnu packages base)" "$module_dir/err" # hint
rm -f "$module_dir"/*
# Should all return valid log files. # Should all return valid log files.
drv="`guix build -d -e '(@@ (gnu packages bootstrap) %bootstrap-guile)'`" drv="`guix build -d -e '(@@ (gnu packages bootstrap) %bootstrap-guile)'`"
out="`guix build -e '(@@ (gnu packages bootstrap) %bootstrap-guile)'`" out="`guix build -e '(@@ (gnu packages bootstrap) %bootstrap-guile)'`"