me
/
guix
Archived
1
0
Fork 0

Merge branch 'master' into core-updates

master
Leo Famulari 2017-01-25 12:42:39 -05:00
commit d123f2f991
No known key found for this signature in database
GPG Key ID: 2646FA30BACA7F08
46 changed files with 844 additions and 368 deletions

View File

@ -595,7 +595,6 @@ dist_patch_DATA = \
%D%/packages/patches/gmp-faulty-test.patch \ %D%/packages/patches/gmp-faulty-test.patch \
%D%/packages/patches/gnome-tweak-tool-search-paths.patch \ %D%/packages/patches/gnome-tweak-tool-search-paths.patch \
%D%/packages/patches/gnucash-price-quotes-perl.patch \ %D%/packages/patches/gnucash-price-quotes-perl.patch \
%D%/packages/patches/gnupg-test-segfault-on-32bit-arch.patch \
%D%/packages/patches/gobject-introspection-absolute-shlib-path.patch \ %D%/packages/patches/gobject-introspection-absolute-shlib-path.patch \
%D%/packages/patches/gobject-introspection-cc.patch \ %D%/packages/patches/gobject-introspection-cc.patch \
%D%/packages/patches/gobject-introspection-girepository.patch \ %D%/packages/patches/gobject-introspection-girepository.patch \
@ -647,7 +646,6 @@ dist_patch_DATA = \
%D%/packages/patches/jbig2dec-ignore-testtest.patch \ %D%/packages/patches/jbig2dec-ignore-testtest.patch \
%D%/packages/patches/jq-CVE-2015-8863.patch \ %D%/packages/patches/jq-CVE-2015-8863.patch \
%D%/packages/patches/kdbusaddons-kinit-file-name.patch \ %D%/packages/patches/kdbusaddons-kinit-file-name.patch \
%D%/packages/patches/khal-disable-failing-tests.patch \
%D%/packages/patches/khmer-use-libraries.patch \ %D%/packages/patches/khmer-use-libraries.patch \
%D%/packages/patches/kmod-module-directory.patch \ %D%/packages/patches/kmod-module-directory.patch \
%D%/packages/patches/kobodeluxe-paths.patch \ %D%/packages/patches/kobodeluxe-paths.patch \
@ -701,8 +699,6 @@ dist_patch_DATA = \
%D%/packages/patches/libtiff-tiffcp-underflow.patch \ %D%/packages/patches/libtiff-tiffcp-underflow.patch \
%D%/packages/patches/libtool-skip-tests2.patch \ %D%/packages/patches/libtool-skip-tests2.patch \
%D%/packages/patches/libunwind-CVE-2015-3239.patch \ %D%/packages/patches/libunwind-CVE-2015-3239.patch \
%D%/packages/patches/libupnp-CVE-2016-6255.patch \
%D%/packages/patches/libupnp-CVE-2016-8863.patch \
%D%/packages/patches/libvpx-CVE-2016-2818.patch \ %D%/packages/patches/libvpx-CVE-2016-2818.patch \
%D%/packages/patches/libwebp-CVE-2016-9085.patch \ %D%/packages/patches/libwebp-CVE-2016-9085.patch \
%D%/packages/patches/libwmf-CAN-2004-0941.patch \ %D%/packages/patches/libwmf-CAN-2004-0941.patch \
@ -782,6 +778,7 @@ dist_patch_DATA = \
%D%/packages/patches/openjpeg-CVE-2016-5157.patch \ %D%/packages/patches/openjpeg-CVE-2016-5157.patch \
%D%/packages/patches/openjpeg-CVE-2016-7163.patch \ %D%/packages/patches/openjpeg-CVE-2016-7163.patch \
%D%/packages/patches/openjpeg-CVE-2016-9850-CVE-2016-9851.patch \ %D%/packages/patches/openjpeg-CVE-2016-9850-CVE-2016-9851.patch \
%D%/packages/patches/openjpeg-CVE-2016-9572-CVE-2016-9573.patch \
%D%/packages/patches/openjpeg-use-after-free-fix.patch \ %D%/packages/patches/openjpeg-use-after-free-fix.patch \
%D%/packages/patches/openocd-nrf52.patch \ %D%/packages/patches/openocd-nrf52.patch \
%D%/packages/patches/openssl-runpath.patch \ %D%/packages/patches/openssl-runpath.patch \

View File

@ -84,14 +84,13 @@ data units.")
(define-public khal (define-public khal
(package (package
(name "khal") (name "khal")
(version "0.8.4") (version "0.9.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "khal" version)) (uri (pypi-uri "khal" version))
(patches (search-patches "khal-disable-failing-tests.patch"))
(sha256 (sha256
(base32 (base32
"03vy4dp9n43w51mwqjjy08dr5nj7wxqnb085visz3j43vzm42p1f")))) "138gxynw7zavwqqaw5nzmj8sbpkymmb95xzgxqbdi9fiiqm9kamr"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(#:phases (modify-phases %standard-phases `(#:phases (modify-phases %standard-phases

View File

@ -3,6 +3,7 @@
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -190,43 +191,30 @@ COCOMO model or user-provided parameters.")
(define-public the-silver-searcher (define-public the-silver-searcher
(package (package
(name "the-silver-searcher") (name "the-silver-searcher")
(version "0.32.0") (version "1.0.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
"https://github.com/ggreer/the_silver_searcher/archive/" "http://geoff.greer.fm/ag/releases/the_silver_searcher-"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1k543cjpignwvy8avhchz8pkqrqcgcryps36ycy8mz2w5rbhicn5")) "0v54himv65w294l0k4lhdyc6kvpgijn8b9g5356479fzy7hphjkg"))))
(file-name (string-append name "-" version ".tar.gz"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("autoconf" ,autoconf) `(("pkg-config" ,pkg-config)))
("automake" ,automake)
("libtool" ,libtool)
("pkg-config" ,pkg-config)))
(inputs (inputs
`(("pcre" ,pcre) `(("pcre" ,pcre)
("xz" ,xz) ("xz" ,xz)
("zlib" ,zlib))) ("zlib" ,zlib)))
(arguments
`(#:phases
;; There is no configure yet, so let's create it, but let configure and
;; make do the work in later phases.
(alist-cons-before 'configure 'autoconf
(lambda _
(substitute* "build.sh"
(("./configure") "true")
(("make -j4") "true"))
(zero? (system* "sh" "build.sh")))
%standard-phases)))
(home-page "http://geoff.greer.fm/ag/") (home-page "http://geoff.greer.fm/ag/")
(synopsis "Fast code searching tool") (synopsis "Fast code searching tool")
(description (description
"The silver searcher, or 'ag', is tool for quickly searching through "The Silver Searcher (@command{ag}) is a tool for quickly searching large
files, but compared to grep is much faster and respects files like .gitignore, numbers of files. It's intended primarily for source code repositories, and
.hgignore, etc.") respects files like @file{.gitignore} and @file{.hgignore}. It's also an order
of magnitude faster than its inspiration, @command{ack}, and less specialised
tools such as @command{grep}.")
(license license:asl2.0))) (license license:asl2.0)))
(define-public trio (define-public trio

View File

@ -14,6 +14,7 @@
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2016 Andy Patterson <ajpatter@uwaterloo.ca> ;;; Copyright © 2016 Andy Patterson <ajpatter@uwaterloo.ca>
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -425,6 +426,33 @@ TIMESTAMP. It also supports storage of binary large objects, including
pictures, sounds, or video.") pictures, sounds, or video.")
(license (x11-style "file://COPYRIGHT")))) (license (x11-style "file://COPYRIGHT"))))
(define-public qdbm
(package
(name "qdbm")
(version "1.8.78")
(source
(origin
(method url-fetch)
(uri (string-append "http://fallabs.com/" name "/"
name "-" version ".tar.gz"))
(sha256
(base32
"0gmpvhn02pkq280ffmn4da1g4mdr1xxz7l80b7y4n7km1mrzwrml"))))
(build-system gnu-build-system)
(arguments
`( #:configure-flags (list (string-append "LDFLAGS=-Wl,-rpath="
(assoc-ref %outputs "out")
"/lib"))))
(home-page "http://fallabs.com/qdbm")
(synopsis "Key-value database")
(description "QDBM is a library of routines for managing a
database. The database is a simple data file containing key-value
pairs. Every key and value is serial bytes with variable length.
Binary data as well as character strings can be used as a key or a
value. There is no concept of data tables or data types. Records are
organized in a hash table or B+ tree.")
(license license:lgpl2.1+)))
(define-public recutils (define-public recutils
(package (package
(name "recutils") (name "recutils")
@ -1050,7 +1078,7 @@ database and supports many programming languages. It is a NoSQL database.")
(define-public wiredtiger (define-public wiredtiger
(package (package
(name "wiredtiger") (name "wiredtiger")
(version "2.8.0") (version "2.9.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -1058,7 +1086,7 @@ database and supports many programming languages. It is a NoSQL database.")
version ".tar.bz2")) version ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"1qh7y5paisdxq19jgg81ld7i32lz920n5k30hdpxnr8ll9c4hgjr")))) "0krwnb2zfbhvjaskwl875qzd3y626s84zcciq2mxr5c5riw3yh6s"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:configure-flags '("--enable-lz4" "--enable-zlib") '(#:configure-flags '("--enable-lz4" "--enable-zlib")

View File

@ -1130,7 +1130,7 @@ as a library for other Emacs packages.")
(define-public emacs-auctex (define-public emacs-auctex
(package (package
(name "emacs-auctex") (name "emacs-auctex")
(version "11.88.6") (version "11.90.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -1140,7 +1140,7 @@ as a library for other Emacs packages.")
".tar")) ".tar"))
(sha256 (sha256
(base32 (base32
"1pmki8hdjjikxlvip3pzi350bln3gcimr27yjf0xfwjvnp5hh9nc")))) "04nsndwcf0dimgc2p1yzzrymc36amzdnjg0158nxplmjkzdp28gy"))))
(build-system emacs-build-system) (build-system emacs-build-system)
;; We use 'emacs' because AUCTeX requires dbus at compile time ;; We use 'emacs' because AUCTeX requires dbus at compile time
;; ('emacs-minimal' does not provide dbus). ;; ('emacs-minimal' does not provide dbus).
@ -2807,14 +2807,14 @@ be removed from the front. This type of data structure is sometimes called an
(define-public emacs-spinner (define-public emacs-spinner
(package (package
(name "emacs-spinner") (name "emacs-spinner")
(version "1.7.1") (version "1.7.3")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://elpa.gnu.org/packages/spinner-" (uri (string-append "https://elpa.gnu.org/packages/spinner-"
version ".el")) version ".el"))
(sha256 (sha256
(base32 (base32
"1fmwzdih0kbyvs8bn38mpm4sbs2mikqy2vdykfy9g20wpa8vb681")))) "19kp1mmndbmw11sgvv2ggfjl4pyf5zrsbh3871f0965pw9z8vahd"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(home-page "https://github.com/Malabarba/spinner.el") (home-page "https://github.com/Malabarba/spinner.el")
(synopsis "Emacs mode-line spinner for operations in progress") (synopsis "Emacs mode-line spinner for operations in progress")
@ -2826,14 +2826,14 @@ ongoing operations.")
(define-public emacs-seq (define-public emacs-seq
(package (package
(name "emacs-seq") (name "emacs-seq")
(version "2.15") (version "2.19")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://elpa.gnu.org/packages/seq-" (uri (string-append "https://elpa.gnu.org/packages/seq-"
version ".tar")) version ".tar"))
(sha256 (sha256
(base32 (base32
"09wi1765bmn7i8fg6ajjfaxgs4ipc42d58zx2fdqpidrdg9c7q73")))) "11hb7is6a4h1lscjcfrzh576j0g3m5yjydn16s6x5bxp5gsr6zha"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(home-page "https://elpa.gnu.org/packages/seq.html") (home-page "https://elpa.gnu.org/packages/seq.html")
(synopsis "Sequence manipulation functions for Emacs") (synopsis "Sequence manipulation functions for Emacs")

View File

@ -3,6 +3,7 @@
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Alex Griffin <a@ajgrf.com> ;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com> ;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;; Copyright © 2017 Carlo Zancanaro <carlo@zancanaro.id.au>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -26,6 +27,7 @@
#:use-module (guix build utils) #:use-module (guix build utils)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (guix build-system cmake) #:use-module (guix build-system cmake)
#:use-module (guix build-system python)
#:use-module (gnu packages base) #:use-module (gnu packages base)
#:use-module (gnu packages boost) #:use-module (gnu packages boost)
#:use-module (gnu packages databases) #:use-module (gnu packages databases)
@ -240,3 +242,52 @@ allow to do that off the ERiC library (which is proprietary however).
It's not clear at the moment whether one day it will be possible to It's not clear at the moment whether one day it will be possible to
do so.") do so.")
(license license:agpl3+))) (license license:agpl3+)))
(define-public electrum
(package
(name "electrum")
(version "2.7.12")
(source
(origin
(method url-fetch)
(uri (string-append "https://download.electrum.org/"
version "/Electrum-"
version ".tar.gz"))
(sha256
(base32
"0vxdfl208if7mdsnva1jg37bnay2dsz3ww157aqwcv1j6512fi1n"))
(modules '((guix build utils)))
(snippet
'(begin
;; Delete the bundled dependencies.
(delete-file-recursively "packages")
#t))))
(build-system python-build-system)
(inputs
`(("python-slowaes" ,python2-slowaes)
("python-sip" ,python2-sip)
("python-pyqt" ,python2-pyqt-4)
("python-ecdsa" ,python2-ecdsa)
("python-pbkdf2" ,python2-pbkdf2)
("python-requests" ,python2-requests)
("python-qrcode" ,python2-qrcode)
("python-protobuf" ,python2-protobuf)
("python-dnspython" ,python2-dnspython)
("python-jsonrpclib" ,python2-jsonrpclib)))
(arguments
`(#:python ,python-2
#:phases
(modify-phases %standard-phases
(add-before 'build 'patch-home
(lambda* (#:key outputs #:allow-other-keys)
(substitute* "setup.py"
(("~/.local/share")
(string-append (assoc-ref outputs "out") "/local/share"))))))))
(home-page "https://electrum.org/")
(synopsis "Bitcoin wallet")
(description
"Electrum is a lightweight Bitcoin client, based on a client-server
protocol. It supports Simple Payment Verification (SPV) and deterministic key
generation from a seed. Your secret keys are encrypted and are never sent to
other machines/servers. Electrum does not download the Bitcoin blockchain.")
(license license:expat)))

View File

@ -101,7 +101,7 @@ provided as well as the framework to add new color models and data types.")
(("g_object_unref \\(buffer.\\);") "")) (("g_object_unref \\(buffer.\\);") ""))
(substitute* "tests/compositions/Makefile" (substitute* "tests/compositions/Makefile"
(("/bin/sh") (which "bash")))) (("/bin/sh") (which "sh"))))
%standard-phases))) %standard-phases)))
(inputs (inputs
`(("babl" ,babl) `(("babl" ,babl)

View File

@ -217,18 +217,14 @@ compatible to GNU Pth.")
(define-public gnupg (define-public gnupg
(package (package
(name "gnupg") (name "gnupg")
(version "2.1.17") (version "2.1.18")
(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
"1js308b46ifx1gim0c9nivr5yxhans7iq1yvkf7zl2928gdm9p65")) "157rrv3ly9j2k0acz43nhiba5hfl6h7048jvj55wwqjmgsmnyk6h"))))
(patches
;; This fixes a test failure on 32bit. Remove for next version.
;; https://lists.gnu.org/archive/html/guix-devel/2016-12/msg00869.html
(search-patches "gnupg-test-segfault-on-32bit-arch.patch"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("pkg-config" ,pkg-config))) `(("pkg-config" ,pkg-config)))
@ -310,7 +306,7 @@ libskba (working with X.509 certificates and CMS data).")
(add-before 'configure 'patch-config-files (add-before 'configure 'patch-config-files
(lambda _ (lambda _
(substitute* "tests/openpgp/Makefile.in" (substitute* "tests/openpgp/Makefile.in"
(("/bin/sh") (which "bash"))) (("/bin/sh") (which "sh")))
#t)) #t))
(add-after 'install 'rename-v2-commands (add-after 'install 'rename-v2-commands
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
@ -349,7 +345,7 @@ libskba (working with X.509 certificates and CMS data).")
(add-after 'unpack 'patch-check-sh (add-after 'unpack 'patch-check-sh
(lambda _ (lambda _
(substitute* "checks/Makefile.in" (substitute* "checks/Makefile.in"
(("/bin/sh") (which "bash")))))))))) (("/bin/sh") (which "sh"))))))))))
(define-public gpgme (define-public gpgme
(package (package
@ -573,7 +569,7 @@ PGP keysigning parties.")
(substitute* "keyanalyze/Makefile" (substitute* "keyanalyze/Makefile"
(("./configure") (string-append "./configure --prefix=" out))) (("./configure") (string-append "./configure --prefix=" out)))
(substitute* "keyanalyze/pgpring/configure" (substitute* "keyanalyze/pgpring/configure"
(("/bin/sh") (which "bash"))) (("/bin/sh") (which "sh")))
(substitute* "gpgwrap/Makefile" (substitute* "gpgwrap/Makefile"
(("\\} clean") (("\\} clean")
(string-append "} clean\ninstall:\n\tinstall -D bin/gpgwrap " (string-append "} clean\ninstall:\n\tinstall -D bin/gpgwrap "

View File

@ -342,28 +342,38 @@ standards.")
(mozilla-patch "icecat-CVE-2016-9893-pt7.patch" "9b78ab1e6d07" "19ib6bp96xk000ll40b8qxvizkncyzclz2rsb9w5fa42qs9978ff") (mozilla-patch "icecat-CVE-2016-9893-pt7.patch" "9b78ab1e6d07" "19ib6bp96xk000ll40b8qxvizkncyzclz2rsb9w5fa42qs9978ff")
(mozilla-patch "icecat-CVE-2016-9893-pt8.patch" "78ebf9c9dfb0" "1shgr4rk6r2zxr1qqk1j3qnnqzqxnbi093qhlrfh8q5q1ivqf6k1") (mozilla-patch "icecat-CVE-2016-9893-pt8.patch" "78ebf9c9dfb0" "1shgr4rk6r2zxr1qqk1j3qnnqzqxnbi093qhlrfh8q5q1ivqf6k1")
(mozilla-patch "icecat-CVE-2016-9893-pt9.patch" "a46a9f16823c" "0dwkyz3kcqnfcbhbfh2lss7s0yh87rgzb871qxx3x4ynyqph9mnz") (mozilla-patch "icecat-CVE-2016-9893-pt9.patch" "a46a9f16823c" "0dwkyz3kcqnfcbhbfh2lss7s0yh87rgzb871qxx3x4ynyqph9mnz")
(mozilla-patch "icecat-bug-1311687.patch" "6bc7cc7a33a6" "1wggcqv84n8mp7xps7hy4rwy61fkh45imfqzc0b46s3w5hyhypn2") (mozilla-patch "icecat-CVE-2017-5376.patch" "6bc7cc7a33a6" "1wggcqv84n8mp7xps7hy4rwy61fkh45imfqzc0b46s3w5hyhypn2")
(mozilla-patch "icecat-CVE-2016-9893-pt10.patch" "778f65148b40" "0j2a153sk0654vv2lnxjib4lwml3mlqn6vs46c2pp82iba8nyfrm") (mozilla-patch "icecat-CVE-2016-9893-pt10.patch" "778f65148b40" "0j2a153sk0654vv2lnxjib4lwml3mlqn6vs46c2pp82iba8nyfrm")
(mozilla-patch "icecat-CVE-2016-9895.patch" "94bd2b43c766" "10h0qpr6m9cqyqxxnkbb6mzb3cagavzlynkxgd7a4izyq1bv28rk") (mozilla-patch "icecat-CVE-2016-9895.patch" "94bd2b43c766" "10h0qpr6m9cqyqxxnkbb6mzb3cagavzlynkxgd7a4izyq1bv28rk")
(mozilla-patch "icecat-CVE-2016-9893-pt11.patch" "893de7431d51" "11gyik8mwipl6ipypkvdq519pw7ccbg0g0bnvxb7271n44cqqcq5") (mozilla-patch "icecat-CVE-2016-9893-pt11.patch" "893de7431d51" "11gyik8mwipl6ipypkvdq519pw7ccbg0g0bnvxb7271n44cqqcq5")
(mozilla-patch "icecat-bug-1323338.patch" "b21dee058b2c" "005khpimffqzas7slajid4dd2c15nyk7rjk6fsps87bgnx0gx0s4") (mozilla-patch "icecat-CVE-2017-5383-pt1.patch" "b21dee058b2c" "005khpimffqzas7slajid4dd2c15nyk7rjk6fsps87bgnx0gx0s4")
(mozilla-patch "icecat-bug-1258410-pt1.patch" "cd23c5d74be8" "1myzkpzg6pmjacjz8az06m9kz84in1mwsiaw5sgx47pm02598wm5") (mozilla-patch "icecat-bug-1258410-pt1.patch" "cd23c5d74be8" "1myzkpzg6pmjacjz8az06m9kz84in1mwsiaw5sgx47pm02598wm5")
(mozilla-patch "icecat-bug-1258410-pt2.patch" "b83594617d15" "171cqflc9jh47az96im1whwhyq4ayicspqsczsmn2x5ll9lqw5fq") (mozilla-patch "icecat-bug-1258410-pt2.patch" "b83594617d15" "171cqflc9jh47az96im1whwhyq4ayicspqsczsmn2x5ll9lqw5fq")
(mozilla-patch "icecat-bug-1322107.patch" "d6c6f5e4e641" "10x9f46ylm2q3i669hj1csd6agdm8w7xa0iln691z8ayg2hcrxdz") (mozilla-patch "icecat-CVE-2017-5380.patch" "d6c6f5e4e641" "10x9f46ylm2q3i669hj1csd6agdm8w7xa0iln691z8ayg2hcrxdz")
(mozilla-patch "icecat-bug-1285833.patch" "122f5fbfc563" "05pp2f4pg4j8a8pdgjhfrc8g2chhkhsarn9n8sbyag0fy3ig1cvd") (mozilla-patch "icecat-CVE-2017-5373-pt1.patch" "122f5fbfc563" "05pp2f4pg4j8a8pdgjhfrc8g2chhkhsarn9n8sbyag0fy3ig1cvd")
(mozilla-patch "icecat-bug-1297361.patch" "297c675ddadc" "1jc1b5i69vq1fvz3qfnnv52c9cj17bjbmfyzmqlw5ywna0wfvabz") (mozilla-patch "icecat-CVE-2017-5390.patch" "297c675ddadc" "1jc1b5i69vq1fvz3qfnnv52c9cj17bjbmfyzmqlw5ywna0wfvabz")
(mozilla-patch "icecat-bug-1325877.patch" "3cff736e3bb6" "1nxqwnl9zksvkfkmis7zica4xrhwfndjyy2sxc1dvrh9rshk1swq") (mozilla-patch "icecat-CVE-2017-5373-pt2.patch" "3cff736e3bb6" "1nxqwnl9zksvkfkmis7zica4xrhwfndjyy2sxc1dvrh9rshk1swq")
(mozilla-patch "icecat-bug-1285960.patch" "2732280adabc" "0zrpq3aybaw2yy38vs6883a4nw01x4kxn3lfqn9yhcgjvngmmyia") (mozilla-patch "icecat-CVE-2017-5373-pt3.patch" "2732280adabc" "0zrpq3aybaw2yy38vs6883a4nw01x4kxn3lfqn9yhcgjvngmmyia")
(mozilla-patch "icecat-bug-1325938.patch" "81c9fdbd96e8" "0scv1zyi4vbsjdsyj4w70n5jd50baq0dzw3qpxqf1n69nfb9k214") (mozilla-patch "icecat-CVE-2017-5373-pt4.patch" "81c9fdbd96e8" "0scv1zyi4vbsjdsyj4w70n5jd50baq0dzw3qpxqf1n69nfb9k214")
(mozilla-patch "icecat-bug-1322420.patch" "a386ca6a3013" "1m1scz2pxzmg9wya8is5dcr3mgvkx3g1xlykgigmw2mqs5zcdg9s") (mozilla-patch "icecat-CVE-2017-5373-pt5.patch" "a386ca6a3013" "1m1scz2pxzmg9wya8is5dcr3mgvkx3g1xlykgigmw2mqs5zcdg9s")
(mozilla-patch "icecat-bug-1328834.patch" "0521b0e4707c" "1mv057p4hcvapibpbd9apryag19aiqdzafc6df2angl97m4mcbjx") (mozilla-patch "icecat-CVE-2017-5373-pt6.patch" "0521b0e4707c" "1mv057p4hcvapibpbd9apryag19aiqdzafc6df2angl97m4mcbjx")
(mozilla-patch "icecat-bug-1290037.patch" "bf0dd9ae6807" "02iw5ngsvvij95arnn69a744d6si27g1x41ixg16l51dbn900b3r") (mozilla-patch "icecat-bug-1290037.patch" "bf0dd9ae6807" "02iw5ngsvvij95arnn69a744d6si27g1x41ixg16l51dbn900b3r")
(mozilla-patch "icecat-bug-1322666.patch" "576f03e362c5" "0m88xs0jwhzx2lg12cvimxjknp7rpsvvhxxblhiqqjwnqip0pyc0") (mozilla-patch "icecat-bug-1322666.patch" "576f03e362c5" "0m88xs0jwhzx2lg12cvimxjknp7rpsvvhxxblhiqqjwnqip0pyc0")
(mozilla-patch "icecat-bug-1304266.patch" "4d82e7314a72" "1rrrw4rw0xv7c2myiypcqh1fk47rk3fvic79zh6m04bl3knclr1r") (mozilla-patch "icecat-bug-1304266.patch" "4d82e7314a72" "1rrrw4rw0xv7c2myiypcqh1fk47rk3fvic79zh6m04bl3knclr1r")
(mozilla-patch "icecat-bug-1322315.patch" "0617dd4b444d" "1ipags2cl2p521pm0qx110h5di2mgif6h1r3g8l9b0rc5m9b1y2j") (mozilla-patch "icecat-CVE-2017-5373-pt7.patch" "0617dd4b444d" "1ipags2cl2p521pm0qx110h5di2mgif6h1r3g8l9b0rc5m9b1y2j")
(mozilla-patch "icecat-bug-1325200.patch" "ead08c2a6c57" "1nnnwdr7411xpz6n9j869g6sz447cq6xsmds9cw6d24iprcinp5m") (mozilla-patch "icecat-CVE-2017-5375.patch" "ead08c2a6c57" "1nnnwdr7411xpz6n9j869g6sz447cq6xsmds9cw6d24iprcinp5m")
(mozilla-patch "icecat-bug-1312001.patch" "c5e67d41bdd0" "05kwn5zv381lsiw9vbzm8fh6s1lddx47l8f4pwg487h9dj7vbdfq") (mozilla-patch "icecat-CVE-2017-5378-pt1.patch" "c5e67d41bdd0" "05kwn5zv381lsiw9vbzm8fh6s1lddx47l8f4pwg487h9dj7vbdfq")
(mozilla-patch "icecat-bug-1331058.patch" "2ce94f2ea797" "1yrnjqpafjns68z99s1m6jins3agid7c1z3v9qgk5xzfcddl31pn"))) (mozilla-patch "icecat-CVE-2017-5373-pt8.patch" "2ce94f2ea797" "1yrnjqpafjns68z99s1m6jins3agid7c1z3v9qgk5xzfcddl31pn")
(mozilla-patch "icecat-CVE-2017-5373-pt9.patch" "e4ac8a66d3db" "1ggbh6nk005plm7kvp7qznbnlpidqkipxc5hlaqbjc3m0z9mypzl")
(mozilla-patch "icecat-CVE-2017-5386.patch" "8c171b75a0c6" "1cplkgwkhqvb62q7s8cya2drjdswnlicv5d9a60fxvnp6m7a3z02")
(mozilla-patch "icecat-CVE-2017-5383-pt2.patch" "79a31d8153bf" "0dzwk2hc741c0jr8xya4y8q59lk8mcgnvfdrdk0vzq1gby16b9zi")
(mozilla-patch "icecat-CVE-2017-5378-pt2.patch" "747085a1cd93" "0rpc8hl0jka4akdjnlwya4x9v4pqa1r5vc4pkmxsgvqpp2vkq4m2")
(mozilla-patch "icecat-bug-1331606.patch" "f0329536734b" "1br5shyfwp009y623wgjq60vhcp5k5zpzkgy4r3s5yrm5xyfcprf")
(mozilla-patch "icecat-bug-1328642.patch" "237c1ca6e035" "0808g5j17var6wv6ivj08i43fwkga9abmmgmz5w3hb8mhajkjw58")
(mozilla-patch "icecat-CVE-2017-5396.patch" "910ad552cbf5" "1qss3gc6n4myzwvwanc09xvyiq3hwhixn2xvpbk9xkfz2apdlfa6")
(mozilla-patch "icecat-bug-1312827.patch" "5c894801eb1e" "03xyjwx9rfx5w7q6wq9if83fcfgrlvvbyxpsawzxxgybnizyy7g8")
(mozilla-patch "icecat-bug-1191841.patch" "83ee87b301bd" "1kd9z4py372a2f1jg7jwvwri43vipf0k7lcvsg7b0cqr5p70zwcg")
(mozilla-patch "icecat-bug-1234317.patch" "eb6f18dbfe8d" "1dh3263fvg3dxav09g6fn41ax4q1jmwp5fk6pl6shn16mrfha1qq")))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
'(begin '(begin

View File

@ -925,14 +925,14 @@ Guile's foreign function interface.")
(define-public haunt (define-public haunt
(package (package
(name "haunt") (name "haunt")
(version "0.2") (version "0.2.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://files.dthompson.us/haunt/haunt-" (uri (string-append "https://files.dthompson.us/haunt/haunt-"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1id83n8fs7jxys1d8jy70vylg8gzcvlw1y7hb41y3qxv5zi4671m")))) "1fpaf1vm6s7j13fs35barjh5yajcc2rc3pi8r7278wpgp4i2vs3w"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:modules ((ice-9 match) (ice-9 ftw) `(#:modules ((ice-9 match) (ice-9 ftw)
@ -962,7 +962,8 @@ Guile's foreign function interface.")
(inputs (inputs
`(("guile" ,guile-2.0))) `(("guile" ,guile-2.0)))
(propagated-inputs (propagated-inputs
`(("guile-reader" ,guile-reader))) `(("guile-reader" ,guile-reader)
("guile-commonmark" ,guile-commonmark)))
(synopsis "Functional static site generator") (synopsis "Functional static site generator")
(description "Haunt is a static site generator written in Guile (description "Haunt is a static site generator written in Guile
Scheme. Haunt features a functional build system and an extensible Scheme. Haunt features a functional build system and an extensible

View File

@ -498,7 +498,8 @@ error-resilience, a Java-viewer for j2k-images, ...")
(base32 (base32
"19yz4g0c45sm8y1z01j9djsrl1mkz3pmw7fykc6hkvrqymp7prsc")) "19yz4g0c45sm8y1z01j9djsrl1mkz3pmw7fykc6hkvrqymp7prsc"))
(patches (patches
(search-patches "openjpeg-CVE-2016-9850-CVE-2016-9851.patch")))))) (search-patches "openjpeg-CVE-2016-9850-CVE-2016-9851.patch"
"openjpeg-CVE-2016-9572-CVE-2016-9573.patch"))))))
(define-public openjpeg-1 (define-public openjpeg-1
(package (inherit openjpeg) (package (inherit openjpeg)

View File

@ -337,7 +337,7 @@ build process and its dependencies, whereas Make uses Makefile format.")
(define-public icedtea-6 (define-public icedtea-6
(package (package
(name "icedtea") (name "icedtea")
(version "1.13.12") (version "1.13.13")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -345,7 +345,7 @@ build process and its dependencies, whereas Make uses Makefile format.")
version ".tar.xz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1q5iqm3dzqj8w3dwj6qqhczkkrslrfhmn3110klfwq9kyi2nimj8")) "0bg9sb4f7qbq77c0zf9m17p47ga0kf0r9622g9p12ysg26jd1ksg"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
'(substitute* "Makefile.in" '(substitute* "Makefile.in"
@ -764,10 +764,10 @@ build process and its dependencies, whereas Make uses Makefile format.")
("openjdk6-src" ("openjdk6-src"
,(origin ,(origin
(method url-fetch) (method url-fetch)
(uri "https://java.net/downloads/openjdk6/openjdk-6-src-b40-22_aug_2016.tar.gz") (uri "https://java.net/downloads/openjdk6/openjdk-6-src-b41-04_jan_2017.tar.xz")
(sha256 (sha256
(base32 (base32
"01v4q7g9pa6w7m6yxply5yrin08jgv12fck665xnmp09bpxy8sa5")))) "058szix0j280g14jzajvsixx1j2dxmc10r848f5swpy6rr8x8d4f"))))
("lcms" ,lcms) ("lcms" ,lcms)
("zlib" ,zlib) ("zlib" ,zlib)
("gtk" ,gtk+-2) ("gtk" ,gtk+-2)

View File

@ -26,17 +26,15 @@
(define-public libupnp (define-public libupnp
(package (package
(name "libupnp") (name "libupnp")
(version "1.6.20") (version "1.6.21")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://sourceforge/pupnp/pupnp/libUPnP%20" (uri (string-append "mirror://sourceforge/pupnp/pupnp/libUPnP%20"
version "/" name "-" version ".tar.bz2")) version "/" name "-" version ".tar.bz2"))
(patches (search-patches "libupnp-CVE-2016-6255.patch"
"libupnp-CVE-2016-8863.patch"))
(sha256 (sha256
(base32 (base32
"0qrsdsb1qm85hc4jy04qph895613d148f0x1mmk6z99y3q43fdgf")))) "16x3z6jg1krwyydmbd0z59z5c9x4pniaajmfmnp5pmx18q43qgxg"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
;; The tests require a network device capable of multicasting which is ;; The tests require a network device capable of multicasting which is

View File

@ -90,7 +90,7 @@
#:select (gpl2 gpl2+ gpl3 gpl3+ lgpl2.1 lgpl2.1+ lgpl3+ #:select (gpl2 gpl2+ gpl3 gpl3+ lgpl2.1 lgpl2.1+ lgpl3+
non-copyleft (expat . license:expat) bsd-3 non-copyleft (expat . license:expat) bsd-3
public-domain bsd-4 isc (openssl . license:openssl) public-domain bsd-4 isc (openssl . license:openssl)
bsd-2)) bsd-2 x11-style))
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix git-download) #:use-module (guix git-download)
@ -733,6 +733,27 @@ provides an API for C language. It's the low-level API used by MailCore and
MailCore 2.") MailCore 2.")
(license (non-copyleft "file://COPYING")))) (license (non-copyleft "file://COPYING"))))
(define-public compface
(package
(name "compface")
(version "1.5.2")
(source (origin
(method url-fetch)
(uri (string-append "https://ftp.heanet.ie/mirrors/"
"ftp.xemacs.org/aux/"
name "-" version ".tar.gz"))
(sha256
(base32
"09b89wg63hg502hsz592cd2h87wdprb1dq1k1y07n89hym2q56d6"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f))
(synopsis "Portrait image compressor")
(description "This packages takes your 48x48x1 portrait image and
compresses it.")
(home-page "http://www.cs.indiana.edu/pub/faces/")
(license (x11-style "file://README"))))
(define-public claws-mail (define-public claws-mail
(package (package
(name "claws-mail") (name "claws-mail")
@ -1536,10 +1557,10 @@ powerful user customization features.")
"contrib/mmuegel" "devtools/bin/configure.sh") "contrib/mmuegel" "devtools/bin/configure.sh")
(find-files "." ".*\\.m4") (find-files "." ".*\\.m4")
(find-files "." ".*\\.cf")) (find-files "." ".*\\.cf"))
(("/bin/sh") (which "bash"))) (("/bin/sh") (which "sh")))
(substitute* "devtools/bin/Build" (substitute* "devtools/bin/Build"
(("SHELL=/bin/sh") (string-append "SHELL=" (which "bash")))) (("SHELL=/bin/sh") (string-append "SHELL=" (which "sh"))))
#t)) #t))
(replace 'configure (replace 'configure
(lambda _ (lambda _

View File

@ -825,7 +825,7 @@ connect with friends and family without anyone else listening in.")
(("mkdir -p \\$\\{DESTDIR\\}/usr") "") (("mkdir -p \\$\\{DESTDIR\\}/usr") "")
(("/usr/local") "") (("/usr/local") "")
(("/usr") "") (("/usr") "")
(("#!/bin/sh") (string-append "#!" (which "bash"))) (("#!/bin/sh") (string-append "#!" (which "sh")))
(("python2") (which "python")) (("python2") (which "python"))
(("/opt/openssl-compat-bitcoin/lib/") (("/opt/openssl-compat-bitcoin/lib/")
(string-append (assoc-ref inputs "openssl") "/lib/"))) (string-append (assoc-ref inputs "openssl") "/lib/")))

View File

@ -64,7 +64,7 @@
"lib/internal/v8_prof_polyfill.js" "lib/internal/v8_prof_polyfill.js"
"test/parallel/test-stdio-closed.js") "test/parallel/test-stdio-closed.js")
(("'/bin/sh'") (("'/bin/sh'")
(string-append "'" (which "bash") "'"))) (string-append "'" (which "sh") "'")))
;; Fix hardcoded /usr/bin/env references. ;; Fix hardcoded /usr/bin/env references.
(substitute* '("test/parallel/test-child-process-default-options.js" (substitute* '("test/parallel/test-child-process-default-options.js"

View File

@ -90,7 +90,7 @@
(substitute* '("src/mp3track.cc" (substitute* '("src/mp3track.cc"
"src/streamtrack.cc" "src/streamtrack.cc"
"src/oggtrack.cc") "src/oggtrack.cc")
(("/bin/sh") (which "bash"))) (("/bin/sh") (which "sh")))
#t))))) #t)))))
(home-page "http://thekonst.net/en/orpheus") (home-page "http://thekonst.net/en/orpheus")
(synopsis "Text-mode audio player") (synopsis "Text-mode audio player")

View File

@ -1,40 +0,0 @@
This fixes a segfault on 32-bit architectures. Upstream discussion:
https://lists.gnupg.org/pipermail/gnupg-devel/2016-December/032364.html
Guix thread: https://lists.gnu.org/archive/html/guix-devel/2016-12/msg00631.html
Patch copied from upstream source repository:
https://git.gnupg.org/cgi-bin/gitweb.cgi?p=gnupg.git;a=commitdiff;h=6e96cdd41a0e55b672309431062f37c4a4a9f485
From 6e96cdd41a0e55b672309431062f37c4a4a9f485 Mon Sep 17 00:00:00 2001
From: Justus Winter <justus@g10code.com>
Date: Wed, 21 Dec 2016 16:14:45 +0100
Subject: [PATCH] gpgscm: Guard use of union member.
* tests/gpgscm/scheme.c (opexe_5): Check that we have a file port
before accessing filename. Fixes a crash on 32-bit architectures.
Fixes-commit: e7429b1ced0c69fa7901f888f8dc25f00fc346a4
Signed-off-by: Justus Winter <justus@g10code.com>
---
tests/gpgscm/scheme.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tests/gpgscm/scheme.c b/tests/gpgscm/scheme.c
index a5b7691..2844545 100644
--- a/tests/gpgscm/scheme.c
+++ b/tests/gpgscm/scheme.c
@@ -4838,7 +4838,7 @@ static pointer opexe_5(scheme *sc, enum scheme_opcodes op) {
} else {
sc->nesting_stack[sc->file_i]++;
#if USE_TAGS && SHOW_ERROR_LINE
- {
+ if (sc->load_stack[sc->file_i].kind & port_file) {
const char *filename =
sc->load_stack[sc->file_i].rep.stdio.filename;
int lineno =
--
2.8.0.rc3

View File

@ -1,33 +0,0 @@
Disable some tests that are known to fail:
https://github.com/pimutils/khal/issues/546
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=844081
diff --git a/tests/khalendar_test.py b/tests/khalendar_test.py
index fd8dcc6..17732bf 100644
--- a/tests/khalendar_test.py
+++ b/tests/khalendar_test.py
@@ -65,6 +65,7 @@ class TestCalendar(object):
else:
mtimes[cal] = mtime
+ @pytest.mark.xfail
def test_db_needs_update(self, coll_vdirs):
coll, vdirs = coll_vdirs
@@ -321,6 +322,7 @@ class TestDbCreation(object):
CalendarCollection(calendars, dbpath=dbpath, locale=aux.locale)
+@pytest.mark.xfail
def test_default_calendar(coll_vdirs):
"""test if an update to the vdir is detected by the CalendarCollection"""
coll, vdirs = coll_vdirs
@@ -341,6 +343,7 @@ def test_default_calendar(coll_vdirs):
assert len(list(coll.get_events_on(today))) == 0
+@pytest.mark.xfail
def test_only_update_old_event(coll_vdirs, monkeypatch):
coll, vdirs = coll_vdirs

View File

@ -1,50 +0,0 @@
Fix CVE-2016-6255:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-6255
http://www.openwall.com/lists/oss-security/2016/07/18/13
Patch adapted from upstream commit:
https://github.com/mrjimenez/pupnp/commit/d64d6a44906b5aa5306bdf1708531d698654dda5
The upstream change is simplified to unconditionally disable the HTTP
POST feature.
From d64d6a44906b5aa5306bdf1708531d698654dda5 Mon Sep 17 00:00:00 2001
From: Matthew Garrett <mjg59@srcf.ucam.org>
Date: Tue, 23 Feb 2016 13:53:20 -0800
Subject: [PATCH] Don't allow unhandled POSTs to write to the filesystem by
default
If there's no registered handler for a POST request, the default behaviour
is to write it to the filesystem. Several million deployed devices appear
to have this behaviour, making it possible to (at least) store arbitrary
data on them. Add a configure option that enables this behaviour, and change
the default to just drop POSTs that aren't directly handled.
Signed-off-by: Marcelo Roberto Jimenez <mroberto@users.sourceforge.net>
(cherry picked from commit c91a8a3903367e1163765b73eb4d43be7d7927fa)
---
configure.ac | 9 +++++++++
upnp/inc/upnpconfig.h.in | 9 +++++++++
upnp/src/genlib/net/http/webserver.c | 4 ++++
3 files changed, 22 insertions(+)
diff --git a/upnp/src/genlib/net/http/webserver.c b/upnp/src/genlib/net/http/webserver.c
index 26bf0f7..7ae8c1e 100644
--- a/upnp/src/genlib/net/http/webserver.c
+++ b/upnp/src/genlib/net/http/webserver.c
@@ -1367,9 +1367,13 @@ static int http_RecvPostMessage(
if (Fp == NULL)
return HTTP_INTERNAL_SERVER_ERROR;
} else {
+#if 0
Fp = fopen(filename, "wb");
if (Fp == NULL)
return HTTP_UNAUTHORIZED;
+#else
+ return HTTP_NOT_FOUND;
+#endif
}
parser->position = POS_ENTITY;
do {

View File

@ -1,72 +0,0 @@
Fix CVE-2016-8863:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-8863
https://sourceforge.net/p/pupnp/bugs/133/
Patch copied from upstream source repository:
https://sourceforge.net/p/pupnp/code/ci/9c099c2923ab4d98530ab5204af1738be5bddba7/
From 9c099c2923ab4d98530ab5204af1738be5bddba7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= <ukleinek@debian.org>
Date: Thu, 8 Dec 2016 17:11:53 +0100
Subject: [PATCH] Fix out-of-bound access in create_url_list() (CVE-2016-8863)
If there is an invalid URL in URLS->buf after a valid one, uri_parse is
called with out pointing after the allocated memory. As uri_parse writes
to *out before returning an error the loop in create_url_list must be
stopped early to prevent an out-of-bound access
Bug: https://sourceforge.net/p/pupnp/bugs/133/
Bug-CVE: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-8863
Bug-Debian: https://bugs.debian.org/842093
Bug-Redhat: https://bugzilla.redhat.com/show_bug.cgi?id=1388771
(cherry picked from commit a0f6e719bc03c4d2fe6a4a42ef6b8761446f520b)
---
upnp/src/gena/gena_device.c | 17 ++++++++++++-----
1 file changed, 12 insertions(+), 5 deletions(-)
diff --git a/upnp/src/gena/gena_device.c b/upnp/src/gena/gena_device.c
index fb04a29..245c56b 100644
--- a/upnp/src/gena/gena_device.c
+++ b/upnp/src/gena/gena_device.c
@@ -1113,7 +1113,7 @@ static int create_url_list(
/*! [out] . */
URL_list *out)
{
- size_t URLcount = 0;
+ size_t URLcount = 0, URLcount2 = 0;
size_t i;
int return_code = 0;
uri_type temp;
@@ -1155,16 +1155,23 @@ static int create_url_list(
}
memcpy( out->URLs, URLS->buff, URLS->size );
out->URLs[URLS->size] = 0;
- URLcount = 0;
for( i = 0; i < URLS->size; i++ ) {
if( ( URLS->buff[i] == '<' ) && ( i + 1 < URLS->size ) ) {
if( ( ( return_code =
parse_uri( &out->URLs[i + 1], URLS->size - i + 1,
- &out->parsedURLs[URLcount] ) ) ==
+ &out->parsedURLs[URLcount2] ) ) ==
HTTP_SUCCESS )
- && ( out->parsedURLs[URLcount].hostport.text.size !=
+ && ( out->parsedURLs[URLcount2].hostport.text.size !=
0 ) ) {
- URLcount++;
+ URLcount2++;
+ if (URLcount2 >= URLcount)
+ /*
+ * break early here in case there is a bogus URL that
+ * was skipped above. This prevents to access
+ * out->parsedURLs[URLcount] which is beyond the
+ * allocation.
+ */
+ break;
} else {
if( return_code == UPNP_E_OUTOF_MEMORY ) {
free( out->URLs );
--
2.11.0

View File

@ -0,0 +1,233 @@
Fix CVE-2016-9572 and CVE-2016-9573:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-9572
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-9573
https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2016-9572
https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2016-9573
Patch copied from 3rd-party repository:
https://github.com/szukw000/openjpeg/commit/7b28bd2b723df6be09fe7791eba33147c1c47d0d
From 7b28bd2b723df6be09fe7791eba33147c1c47d0d Mon Sep 17 00:00:00 2001
From: szukw000 <szukw000@arcor.de>
Date: Mon, 28 Nov 2016 21:57:20 +0100
Subject: [PATCH] Changes for issues #863 and #862
---
src/bin/jp2/convert.c | 59 +++++++++++++++++++++++++++++++++++++++-----
src/bin/jp2/convertbmp.c | 29 +++++++++++++++++++++-
src/bin/jp2/opj_decompress.c | 2 +-
src/lib/openjp2/j2k.c | 11 ++++++---
4 files changed, 90 insertions(+), 11 deletions(-)
diff --git a/src/bin/jp2/convert.c b/src/bin/jp2/convert.c
index deee4f6..6a3f65b 100644
--- a/src/bin/jp2/convert.c
+++ b/src/bin/jp2/convert.c
@@ -906,7 +906,8 @@ int imagetotga(opj_image_t * image, const char *outfile) {
for (i = 0; i < image->numcomps-1; i++) {
if ((image->comps[0].dx != image->comps[i+1].dx)
||(image->comps[0].dy != image->comps[i+1].dy)
- ||(image->comps[0].prec != image->comps[i+1].prec)) {
+ ||(image->comps[0].prec != image->comps[i+1].prec)
+ ||(image->comps[0].sgnd != image->comps[i+1].sgnd)) {
fclose(fdest);
fprintf(stderr, "Unable to create a tga file with such J2K image charateristics.");
return 1;
@@ -1743,7 +1744,7 @@ int imagetopnm(opj_image_t * image, const char *outfile, int force_split)
int *red, *green, *blue, *alpha;
int wr, hr, max;
int i;
- unsigned int compno, ncomp;
+ unsigned int compno, ncomp, ui;
int adjustR, adjustG, adjustB, adjustA;
int fails, two, want_gray, has_alpha, triple;
int prec, v;
@@ -1768,6 +1769,27 @@ int imagetopnm(opj_image_t * image, const char *outfile, int force_split)
if(want_gray) ncomp = 1;
+ for (ui = 1; ui < ncomp; ++ui) {
+ if (image->comps[0].dx != image->comps[ui].dx) {
+ break;
+ }
+ if (image->comps[0].dy != image->comps[ui].dy) {
+ break;
+ }
+ if (image->comps[0].prec != image->comps[ui].prec) {
+ break;
+ }
+ if (image->comps[0].sgnd != image->comps[ui].sgnd) {
+ break;
+ }
+ }
+ if (ui != ncomp) {
+ fprintf(stderr,"imagetopnm: All components\n shall have "
+ "the same subsampling, same bit depth, same sign.\n"
+ " Aborting\n");
+ return 1;
+ }
+
if ((force_split == 0) &&
(ncomp == 2 /* GRAYA */
|| (ncomp > 2 /* RGB, RGBA */
@@ -2126,7 +2148,7 @@ static int imagetoraw_common(opj_image_t * image, const char *outfile, OPJ_BOOL
{
FILE *rawFile = NULL;
size_t res;
- unsigned int compno;
+ unsigned int compno, numcomps;
int w, h, fails;
int line, row, curr, mask;
int *ptr;
@@ -2139,6 +2161,31 @@ static int imagetoraw_common(opj_image_t * image, const char *outfile, OPJ_BOOL
return 1;
}
+ numcomps = image->numcomps;
+
+ if (numcomps > 4) {
+ numcomps = 4;
+ }
+ for (compno = 1; compno < numcomps; ++compno) {
+ if (image->comps[0].dx != image->comps[compno].dx) {
+ break;
+ }
+ if (image->comps[0].dy != image->comps[compno].dy) {
+ break;
+ }
+ if (image->comps[0].prec != image->comps[compno].prec) {
+ break;
+ }
+ if (image->comps[0].sgnd != image->comps[compno].sgnd) {
+ break;
+ }
+ }
+ if (compno != numcomps) {
+ fprintf(stderr,"imagetoraw_common: All components shall have the same subsampling, same bit depth, same sign.\n");
+ fprintf(stderr,"\tAborting\n");
+ return 1;
+ }
+
rawFile = fopen(outfile, "wb");
if (!rawFile) {
fprintf(stderr, "Failed to open %s for writing !!\n", outfile);
@@ -2146,9 +2193,9 @@ static int imagetoraw_common(opj_image_t * image, const char *outfile, OPJ_BOOL
}
fails = 1;
- fprintf(stdout,"Raw image characteristics: %d components\n", image->numcomps);
+ fprintf(stdout,"Raw image characteristics: %d components\n", numcomps);
- for(compno = 0; compno < image->numcomps; compno++)
+ for(compno = 0; compno < numcomps; compno++)
{
fprintf(stdout,"Component %u characteristics: %dx%dx%d %s\n", compno, image->comps[compno].w,
image->comps[compno].h, image->comps[compno].prec, image->comps[compno].sgnd==1 ? "signed": "unsigned");
@@ -2238,7 +2285,7 @@ static int imagetoraw_common(opj_image_t * image, const char *outfile, OPJ_BOOL
}
else if (image->comps[compno].prec <= 32)
{
- fprintf(stderr,"More than 16 bits per component no handled yet\n");
+ fprintf(stderr,"More than 16 bits per component not handled yet\n");
goto fin;
}
else
diff --git a/src/bin/jp2/convertbmp.c b/src/bin/jp2/convertbmp.c
index ae83077..8017ba8 100644
--- a/src/bin/jp2/convertbmp.c
+++ b/src/bin/jp2/convertbmp.c
@@ -806,8 +806,35 @@ int imagetobmp(opj_image_t * image, const char *outfile) {
FILE *fdest = NULL;
int adjustR, adjustG, adjustB;
+ {
+ unsigned int ui, ncomp = image->numcomps;
+
+ if (ncomp > 4) { /* RGBA in bmpmask32toimage */
+ ncomp = 4;
+ }
+ for (ui = 1; ui < ncomp; ++ui) {
+ if (image->comps[0].dx != image->comps[ui].dx) {
+ break;
+ }
+ if (image->comps[0].dy != image->comps[ui].dy) {
+ break;
+ }
+ if (image->comps[0].prec != image->comps[ui].prec) {
+ break;
+ }
+ if (image->comps[0].sgnd != image->comps[ui].sgnd) {
+ break;
+ }
+ }
+ if (ui != ncomp) {
+ fprintf(stderr,"imagetobmp: All components shall have the same subsampling, same bit depth, same sign.\n");
+ fprintf(stderr,"\tAborting\n");
+ return 1;
+ }
+
+ }
if (image->comps[0].prec < 8) {
- fprintf(stderr, "Unsupported number of components: %d\n", image->comps[0].prec);
+ fprintf(stderr, "imagetobmp: Unsupported precision: %d\n", image->comps[0].prec);
return 1;
}
if (image->numcomps >= 3 && image->comps[0].dx == image->comps[1].dx
diff --git a/src/bin/jp2/opj_decompress.c b/src/bin/jp2/opj_decompress.c
index 83160c3..c30079b 100644
--- a/src/bin/jp2/opj_decompress.c
+++ b/src/bin/jp2/opj_decompress.c
@@ -1607,7 +1607,7 @@ int main(int argc, char **argv)
if(dirptr->filename_buf) free(dirptr->filename_buf);
free(dirptr);
}
- if (numDecompressedImages) {
+ if (numDecompressedImages && !failed) {
fprintf(stdout, "decode time: %d ms\n", (int)( (tCumulative * 1000.0) / (OPJ_FLOAT64)numDecompressedImages));
}
return failed ? EXIT_FAILURE : EXIT_SUCCESS;
diff --git a/src/lib/openjp2/j2k.c b/src/lib/openjp2/j2k.c
index 66802bb..b6daa32 100644
--- a/src/lib/openjp2/j2k.c
+++ b/src/lib/openjp2/j2k.c
@@ -2158,7 +2158,7 @@ static OPJ_BOOL opj_j2k_read_siz(opj_j2k_t *p_j2k,
i, l_img_comp->dx, l_img_comp->dy);
return OPJ_FALSE;
}
- if( l_img_comp->prec > 38) { /* TODO openjpeg won't handle more than ? */
+ if( l_img_comp->prec < 1 || l_img_comp->prec > 38) { /* TODO openjpeg won't handle more than ? */
opj_event_msg(p_manager, EVT_ERROR,
"Invalid values for comp = %d : prec=%u (should be between 1 and 38 according to the JPEG2000 norm)\n",
i, l_img_comp->prec);
@@ -10029,7 +10029,11 @@ OPJ_BOOL opj_j2k_decode(opj_j2k_t * p_j2k,
/* Move data and copy one information from codec to output image*/
for (compno = 0; compno < p_image->numcomps; compno++) {
p_image->comps[compno].resno_decoded = p_j2k->m_output_image->comps[compno].resno_decoded;
- p_image->comps[compno].data = p_j2k->m_output_image->comps[compno].data;
+ p_image->comps[compno].data = p_j2k->m_output_image->comps[compno].data;
+
+ if(p_image->comps[compno].data == NULL) return OPJ_FALSE;
+
+ p_j2k->m_output_image->comps[compno].data = NULL;
#if 0
char fn[256];
sprintf( fn, "/tmp/%d.raw", compno );
@@ -10037,7 +10041,6 @@ OPJ_BOOL opj_j2k_decode(opj_j2k_t * p_j2k,
fwrite( p_image->comps[compno].data, sizeof(OPJ_INT32), p_image->comps[compno].w * p_image->comps[compno].h, debug );
fclose( debug );
#endif
- p_j2k->m_output_image->comps[compno].data = NULL;
}
return OPJ_TRUE;
@@ -10131,6 +10134,8 @@ OPJ_BOOL opj_j2k_get_tile( opj_j2k_t *p_j2k,
p_image->comps[compno].data = p_j2k->m_output_image->comps[compno].data;
+ if (p_image->comps[compno].data == NULL) return OPJ_FALSE;
+
p_j2k->m_output_image->comps[compno].data = NULL;
}

View File

@ -1194,14 +1194,14 @@ under several distributions that's hard or impossible to figure out.")
(define-public python2-pysqlite (define-public python2-pysqlite
(package (package
(name "python2-pysqlite") (name "python2-pysqlite")
(version "2.8.1") (version "2.8.3")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "pysqlite" version)) (uri (pypi-uri "pysqlite" version))
(sha256 (sha256
(base32 (base32
"0rm0zqyb363y6wljhfmbxs16jjv7p8nk1d8zgq9sdwj6js7y3jkm")))) "1424gwq9sil2ffmnizk60q36vydkv8rxs6m7xs987kz8cdc37lqp"))))
(build-system python-build-system) (build-system python-build-system)
(inputs (inputs
`(("sqlite" ,sqlite))) `(("sqlite" ,sqlite)))
@ -2242,10 +2242,11 @@ executed.")
(propagated-inputs (propagated-inputs
`(("python-coverage" ,python-coverage))) `(("python-coverage" ,python-coverage)))
(home-page "https://github.com/schlamar/cov-core") (home-page "https://github.com/schlamar/cov-core")
(synopsis "plugin core for use by pytest-cov, nose-cov and nose2-cov") (synopsis "Coverage plugin core for pytest-cov, nose-cov and nose2-cov")
(description (description
"This is a library package for use by pytest-cov, nose-cov and nose2-cov. "This is a library package for use by @code{pytest-cov}, @code{nose-cov}
It is useful for developing coverage plugins for these testing frameworks.") and @code{nose2-cov}. It is useful for developing coverage plugins for these
testing frameworks.")
(license license:expat))) (license license:expat)))
(define-public python2-cov-core (define-public python2-cov-core
@ -2568,13 +2569,13 @@ cutting and pasting that code over and over.")
(define-public python-unidecode (define-public python-unidecode
(package (package
(name "python-unidecode") (name "python-unidecode")
(version "0.04.18") (version "0.04.20")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "Unidecode" version)) (uri (pypi-uri "Unidecode" version))
(sha256 (sha256
(base32 (base32
"12hhblqy1ajvidm38im4171x4arg83pfmziyn53nizp29p3m14gi")))) "1q00i8gpsq3d9r0q8wk4b290fxl0kqlsdk7iadvli45in6s1hi7d"))))
(build-system python-build-system) (build-system python-build-system)
(home-page "https://pypi.python.org/pypi/Unidecode") (home-page "https://pypi.python.org/pypi/Unidecode")
(synopsis "ASCII transliterations of Unicode text") (synopsis "ASCII transliterations of Unicode text")
@ -4004,14 +4005,14 @@ Python code against some of the style conventions in
(define-public python-orderedmultidict (define-public python-orderedmultidict
(package (package
(name "python-orderedmultidict") (name "python-orderedmultidict")
(version "0.7.10") (version "0.7.11")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "orderedmultidict" version)) (uri (pypi-uri "orderedmultidict" version))
(sha256 (sha256
(base32 (base32
"1gvqk0jd432wsn88kq4svad68xz3r012jfpnhh9in7bqrkyxidky")))) "0dls862ibm7qbq4fnvwx0xn1v9hwyzywbff8xjjdr42dd75208yw"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(#:phases `(#:phases
@ -4132,14 +4133,14 @@ You might also want to install the following optional dependencies:
(define-public python-alembic (define-public python-alembic
(package (package
(name "python-alembic") (name "python-alembic")
(version "0.8.7") (version "0.8.10")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "alembic" version)) (uri (pypi-uri "alembic" version))
(sha256 (sha256
(base32 (base32
"0ias6fdzwr2s220fnjspkdgm9510bd0cnap0hx5y4zy4srba9f3z")))) "06br9sfqypnjlal6fsbnky3zb0askwcn3diz8k3kwa0qcblm0fqf"))))
(build-system python-build-system) (build-system python-build-system)
(native-inputs (native-inputs
`(("python-mock" ,python-mock) `(("python-mock" ,python-mock)
@ -5535,13 +5536,13 @@ Python style, together with a fast and comfortable execution environment.")
(define-public python-seaborn (define-public python-seaborn
(package (package
(name "python-seaborn") (name "python-seaborn")
(version "0.7.0") (version "0.7.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "seaborn" version)) (uri (pypi-uri "seaborn" version))
(sha256 (sha256
(base32 "0ibi3xsfm2kysph61mnfy0pf8d5rkgxgrdb0z9nbizgcgdsb5a0m")))) (base32 "0pawrqc3mxpwd5g9pvi9gba02637bh5c8ldpp8izfwpfn52469zs"))))
(build-system python-build-system) (build-system python-build-system)
(propagated-inputs (propagated-inputs
`(("python-pandas" ,python-pandas) `(("python-pandas" ,python-pandas)
@ -5998,7 +5999,7 @@ complexity of Python source code.")
(define-public python-mistune (define-public python-mistune
(package (package
(name "python-mistune") (name "python-mistune")
(version "0.7") (version "0.7.3")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -6008,7 +6009,7 @@ complexity of Python source code.")
".tar.gz")) ".tar.gz"))
(sha256 (sha256
(base32 (base32
"17zqjp9m4d1w3jf2rbbq5xshcw24q1vlcv24gkgfqqyyymajxahx")))) "04xpk1zvslhq3xpnf01g3ag0dy9wfv4z28p093r8k49vvxlyil11"))))
(build-system python-build-system) (build-system python-build-system)
(native-inputs (native-inputs
`(("python-nose" ,python-nose) `(("python-nose" ,python-nose)
@ -7022,16 +7023,14 @@ serve the same purpose: provide Python bindings for libmagic.")))
(define-public python-debian (define-public python-debian
(package (package
(name "python-debian") (name "python-debian")
(version "0.1.23") (version "0.1.28")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (pypi-uri name version))
"https://pypi.python.org/packages/source/p/python-debian/python-debian-"
version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"193faznwnjc3n5991wyzim6h9gyq1zxifmfrnpm3avgkh7ahyynh")))) "0i15f0xzx679sd0ldq2sls9pnnps9fv6vhqvnv9dzf4qhma42i0y"))))
(build-system python-build-system) (build-system python-build-system)
(propagated-inputs (propagated-inputs
`(("python-six" ,python-six))) `(("python-six" ,python-six)))
@ -8612,16 +8611,16 @@ supports url redirection and retries, and also gzip and deflate decoding.")
(define-public python-colorama (define-public python-colorama
(package (package
(name "python-colorama") (name "python-colorama")
(version "0.3.3") (version "0.3.7")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "colorama" version)) (uri (pypi-uri "colorama" version))
(sha256 (sha256
(base32 (base32
"1716z9pq1r5ys3nkg7wdrb3h2f9rmd0zdxpxzmx3bgwgf6xg48gb")))) "0avqkn6362v7k2kg3afb35g4sfdvixjgy890clip4q174p9whhz0"))))
(build-system python-build-system) (build-system python-build-system)
(synopsis "colored terminal text rendering for Python") (synopsis "Colored terminal text rendering for Python")
(description "Colorama is a Python library for rendering colored terminal (description "Colorama is a Python library for rendering colored terminal
text.") text.")
(home-page "https://pypi.python.org/pypi/colorama") (home-page "https://pypi.python.org/pypi/colorama")
@ -9027,14 +9026,14 @@ file.")
(define-public python-paste (define-public python-paste
(package (package
(name "python-paste") (name "python-paste")
(version "2.0.2") (version "2.0.3")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "Paste" version)) (uri (pypi-uri "Paste" version))
(sha256 (sha256
(base32 (base32
"16dsv9qi0r4qsrsb6dilpq2rx0fnglvh36flzywcdnm2jg43mb5d")) "062jk0nlxf6lb2wwj6zc20rlvrwsnikpkh90y0dn8cjch93s6ii3"))
(patches (search-patches "python-paste-remove-website-test.patch" (patches (search-patches "python-paste-remove-website-test.patch"
"python-paste-remove-timing-test.patch")))) "python-paste-remove-timing-test.patch"))))
(build-system python-build-system) (build-system python-build-system)
@ -9042,12 +9041,6 @@ file.")
`(("python-nose" ,python-nose))) `(("python-nose" ,python-nose)))
(propagated-inputs (propagated-inputs
`(("python-six" ,python-six))) `(("python-six" ,python-six)))
(arguments
'(;; Tests don't pass on Python 3, but work fine on Python 2.
;; (As of 2.0.2, Python 3 support in Paste is presently a bit broken,
;; but is usable enough for the minimal amount it's used in MediaGoblin
;; still... things should be better by the next Paste release.)
#:tests? #f))
(home-page "http://pythonpaste.org") (home-page "http://pythonpaste.org")
(synopsis (synopsis
"Python web development tools, focusing on WSGI") "Python web development tools, focusing on WSGI")
@ -9055,18 +9048,10 @@ file.")
"Paste provides a variety of web development tools and middleware which "Paste provides a variety of web development tools and middleware which
can be nested together to build web applications. Paste's design closely can be nested together to build web applications. Paste's design closely
follows ideas flowing from WSGI (Web Standard Gateway Interface).") follows ideas flowing from WSGI (Web Standard Gateway Interface).")
(license license:expat) (license license:expat)))
(properties `((python2-variant . ,(delay python2-paste))))))
(define-public python2-paste (define-public python2-paste
(let ((paste (package-with-python2 (package-with-python2 python-paste))
(strip-python2-variant python-paste))))
(package
(inherit paste)
(arguments
;; Tests are back for Python 2!
`(#:tests? #t
,@(package-arguments paste))))))
(define-public python-pastescript (define-public python-pastescript
(package (package
@ -10414,13 +10399,13 @@ It uses LR parsing and does extensive error checking.")
(define-public python-tabulate (define-public python-tabulate
(package (package
(name "python-tabulate") (name "python-tabulate")
(version "0.7.5") (version "0.7.7")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "tabulate" version)) (uri (pypi-uri "tabulate" version))
(sha256 (sha256
(base32 (base32
"03l1r7ddd1a0j2snv1yd0hlnghjad3fg1an1jr8936ksv75slwch")) "1inqhspd4frxnp08c32yndr0lc4px1xfkqah184i5w09gkhvi843"))
;; Fix tests ;; Fix tests
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet '(substitute* '("test/test_cli.py" (snippet '(substitute* '("test/test_cli.py"
@ -10720,13 +10705,13 @@ It supports TSIG authenticated messages and EDNS0.")
(define-public python-email-validator (define-public python-email-validator
(package (package
(name "python-email-validator") (name "python-email-validator")
(version "1.0.1") (version "1.0.2")
(source (source
(origin (method url-fetch) (origin (method url-fetch)
(uri (pypi-uri "email_validator" version)) (uri (pypi-uri "email_validator" version))
(sha256 (sha256
(base32 (base32
"0mn8jg5h8ifl8w6a6m0hq8kbk0mzw9vm054qfamkn89b3npz52qw")))) "1ja9149l9ck5n45a72h3is7v476hjny5ybxbcamx1nw6iplsm7k6"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
'(#:phases '(#:phases

View File

@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015, 2016 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2015, 2016 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -19,7 +20,7 @@
(define-module (gnu packages search) (define-module (gnu packages search)
#:use-module ((guix licenses) #:use-module ((guix licenses)
#:select (gpl2 gpl2+ gpl3+ bsd-3 x11)) #:select (gpl2 gpl2+ gpl3+ lgpl2.1+ bsd-3 x11))
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
@ -160,6 +161,33 @@ accounting for new lines and paragraph changes. It also has robust support
for parsing HTML files.") for parsing HTML files.")
(license gpl3+))) (license gpl3+)))
(define-public hyperestraier
(package
(name "hyperestraier")
(version "1.4.13")
(source
(origin
(method url-fetch)
(uri (string-append "http://fallabs.com/" name "/"
name "-" version ".tar.gz"))
(sha256
(base32
"1qk3pxgzyrpcz5qfyd5xs2hw9q1cbb7j5zd4kp1diq501wcj2vs9"))))
(inputs
`(("qdbm" ,qdbm)
("zlib" ,zlib)))
(build-system gnu-build-system)
(arguments
`(#:configure-flags (list (string-append "LDFLAGS=-Wl,-rpath="
(assoc-ref %outputs "out")
"/lib"))))
(home-page "http://fallabs.com/hyperestraier")
(synopsis "Full-text search system")
(description "Hyper Estraier can be used to integrate full-text
search into applications, using either the provided command line and CGI
interfaces, or a C API.")
(license lgpl2.1+)))
(define-public mlocate (define-public mlocate
(package (package
(name "mlocate") (name "mlocate")

View File

@ -58,14 +58,14 @@ between various shells or commands.")
(define-public trash-cli (define-public trash-cli
(package (package
(name "trash-cli") (name "trash-cli")
(version "0.17.1.1") (version "0.17.1.14")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "trash-cli" version)) (uri (pypi-uri "trash-cli" version))
(sha256 (sha256
(base32 (base32
"019sjab29jkps8zkf8icihhf3ng4lx9y4p1lxjd3wbnnynphc4is")))) "01q0cl04ljf214z6s3g256gsxx3pqsgaf6ac1zh0vrq5bnhnr85h"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(#:python ,python-2 `(#:python ,python-2

View File

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -25,6 +26,7 @@
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
#:use-module (gnu packages databases) #:use-module (gnu packages databases)
#:use-module (gnu packages linux) #:use-module (gnu packages linux)
#:use-module (gnu packages lua)
#: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 qt) #:use-module (gnu packages qt)
@ -158,3 +160,49 @@ their folder.
@item Toggle for monochrome icon. @item Toggle for monochrome icon.
@end enumerate\n") @end enumerate\n")
(license license:lgpl3+))) (license license:lgpl3+)))
(define-public lsyncd
(package
(name "lsyncd")
(version "2.2.1")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/axkibe/lsyncd/archive/release-"
version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"0da7mrq2c578v2dd5x9v75l1fqrm28jvn28qkcd49y8p992nj6gl"))))
(build-system cmake-build-system)
(arguments
`(;; The "tests" target is broken and assumes that tests are run in the
;; root directory.
#:tests? #f
#:test-target "tests"
#:phases
(modify-phases %standard-phases
;; No install target.
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin"))
(man (string-append out "/share/man/man1")))
(install-file "lsyncd" bin)
(install-file (string-append "../lsyncd-release-"
,version
"/doc/manpage/lsyncd.1")
man)
#t))))))
(native-inputs
`(("lua" ,lua-5.2)))
(home-page "https://github.com/axkibe/lsyncd")
(synopsis "Synchronize local directories with remote targets")
(description "Lsyncd watches a local directory trees event monitor
interface (inotify or fsevents). It aggregates and combines events for a few
seconds and then spawns one (or more) process(es) to synchronize the changes.
By default this is rsync, which must be installed on all source and target
machines. Lsyncd is thus a light-weight live mirror solution that is
comparatively easy to install not requiring new filesystems or block devices
and does not hamper local filesystem performance.")
(license license:gpl2+)))

View File

@ -6,6 +6,7 @@
;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016, 2017 José Miguel Sánchez García <jmi2k@openmailbox.org> ;;; Copyright © 2016, 2017 José Miguel Sánchez García <jmi2k@openmailbox.org>
;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -362,3 +363,70 @@ scripts, notifying the user when something interesting occurs. Of course, it
has no notion of what's interesing, but it's very good at that notifying part.") has no notion of what's interesing, but it's very good at that notifying part.")
(home-page "http://www.johnath.com/beep") (home-page "http://www.johnath.com/beep")
(license license:gpl2+))) (license license:gpl2+)))
(define-public unibilium
(package
(name "unibilium")
(version "1.2.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/mauke/unibilium/"
"archive/v" version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"1n7a0jrlwhn9nnkna76sbnjrr808m0pmzbiwznmp7rhmjl4z2fk2"))))
(build-system gnu-build-system)
(arguments
`(#:make-flags
(list "CC=gcc"
(string-append "PREFIX=" (assoc-ref %outputs "out")))
#:test-target "test"
;; FIXME: tests require "prove"
#:tests? #f
#:phases
(modify-phases %standard-phases
(delete 'configure))))
(native-inputs
`(("libtool" ,libtool)))
(home-page "https://github.com/mauke/unibilium")
(synopsis "Terminfo parsing library")
(description "Unibilium is a basic C terminfo library. It doesn't depend
on curses or any other library. It also doesn't use global variables, so it
should be thread-safe.")
(license license:lgpl3+)))
(define-public libvterm
(package
(name "libvterm")
(version "0+bzr681")
(source
(origin
(method url-fetch)
(uri (string-append "http://www.leonerd.org.uk/code/libvterm/"
"libvterm-" version ".tar.gz"))
(sha256
(base32
"1s56c8p1qz6frkcri0hg4qyydv2wcccj6n2xmz1dwcdqn38ldsmb"))))
(build-system gnu-build-system)
(arguments
`(#:make-flags
(list "CC=gcc"
(string-append "PREFIX=" (assoc-ref %outputs "out")))
#:test-target "test"
#:phases
(modify-phases %standard-phases
(delete 'configure))))
(native-inputs
`(("libtool" ,libtool)
("perl" ,perl)))
(home-page "http://www.leonerd.org.uk/code/libvterm/")
(synopsis "VT220/xterm/ECMA-48 terminal emulator library")
(description "Libvterm is an abstract C99 library which implements a VT220
or xterm-like terminal emulator. It doesn't use any particular graphics
toolkit or output system, instead it invokes callback function pointers that
its embedding program should provide it to draw on its behalf. It avoids
calling @code{malloc} during normal running state, allowing it to be used in
embedded kernel situations.")
(license license:expat)))

View File

@ -2,7 +2,7 @@
;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is> ;;; Copyright © 2016, 2017 ng0 <contact.ng0@cryptolab.net>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -39,14 +39,14 @@
(define-public tor (define-public tor
(package (package
(name "tor") (name "tor")
(version "0.2.9.8") (version "0.2.9.9")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://dist.torproject.org/tor-" (uri (string-append "https://dist.torproject.org/tor-"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0sklgmx4nikcfhqd606kvpwy1l8840w24ikli1xjjx25739k7pgv")))) "0hqdk5p6dw4bpn7c8gmhyi8jjkhc37112pfw5nx4gl0g4lmmscik"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("python" ,python-2))) ; for tests `(("python" ,python-2))) ; for tests

View File

@ -580,7 +580,7 @@ standards (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/VMW3).")
(lambda* (#:key outputs configure-flags #:allow-other-keys) (lambda* (#:key outputs configure-flags #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))) (let ((out (assoc-ref outputs "out")))
(substitute* "configure" (substitute* "configure"
(("#! /bin/sh") (string-append "#!" (which "bash")))) (("#! /bin/sh") (string-append "#!" (which "sh"))))
(setenv "SHELL" (which "bash")) (setenv "SHELL" (which "bash"))
(setenv "CONFIG_SHELL" (which "bash")) (setenv "CONFIG_SHELL" (which "bash"))
(zero? (apply system* (zero? (apply system*
@ -796,7 +796,7 @@ treaming protocols.")
(let ((out (assoc-ref outputs "out")) (let ((out (assoc-ref outputs "out"))
(libx11 (assoc-ref inputs "libx11"))) (libx11 (assoc-ref inputs "libx11")))
(substitute* "configure" (substitute* "configure"
(("#! /bin/sh") (string-append "#!" (which "bash")))) (("#! /bin/sh") (string-append "#!" (which "sh"))))
(setenv "SHELL" (which "bash")) (setenv "SHELL" (which "bash"))
(setenv "CONFIG_SHELL" (which "bash")) (setenv "CONFIG_SHELL" (which "bash"))
(zero? (system* (zero? (system*
@ -970,7 +970,7 @@ access to mpv's powerful playback capabilities.")
(define-public youtube-dl (define-public youtube-dl
(package (package
(name "youtube-dl") (name "youtube-dl")
(version "2017.01.14") (version "2017.01.24")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://yt-dl.org/downloads/" (uri (string-append "https://yt-dl.org/downloads/"
@ -978,7 +978,7 @@ access to mpv's powerful playback capabilities.")
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1jlwz6p7ryj9ygmwqm4r3pykd9qw21rsiqpifbx0p0kcvdvvvj3n")))) "1n74s6kfs4v1lfg7xls9ymk6yrq09hxwd18sz3lziv5qd1pj14b6"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
;; The problem here is that the directory for the man page and completion ;; The problem here is that the directory for the man page and completion
@ -1228,7 +1228,7 @@ for use with HTML5 video.")
(lambda _ (lambda _
(with-directory-excursion "avidemux_core/ffmpeg_package" (with-directory-excursion "avidemux_core/ffmpeg_package"
(substitute* "ffmpeg-2.7.6/configure" (substitute* "ffmpeg-2.7.6/configure"
(("#! /bin/sh") (string-append "#!" (which "bash")))) (("#! /bin/sh") (string-append "#!" (which "sh"))))
(system* "tar" "cjf" "ffmpeg-2.7.6.tar.bz2" "ffmpeg-2.7.6" (system* "tar" "cjf" "ffmpeg-2.7.6.tar.bz2" "ffmpeg-2.7.6"
;; avoid non-determinism in the archive ;; avoid non-determinism in the archive
"--sort=name" "--mtime=@0" "--sort=name" "--mtime=@0"

View File

@ -17,6 +17,7 @@
;;; Copyright © 2016 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2016 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2016 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2016 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2016 Bake Timmons <b3timmons@speedymail.org> ;;; Copyright © 2016 Bake Timmons <b3timmons@speedymail.org>
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -3968,3 +3969,29 @@ useful for users behind restrictive firewalls. As long as Web traffic is
allowed, even through a HTTP-only proxy, httptunnel can be combined with other allowed, even through a HTTP-only proxy, httptunnel can be combined with other
tools like SSH (Secure Shell) to reach the outside world.") tools like SSH (Secure Shell) to reach the outside world.")
(license l:gpl2+))) (license l:gpl2+)))
(define-public stunnel
(package
(name "stunnel")
(version "5.39")
(source
(origin
(method url-fetch)
(uri (string-append "https://www.stunnel.org/downloads/stunnel-"
version ".tar.gz"))
(sha256
(base32
"1vjdn32iw11zqsygwxbjmqgs4644dk3ql1h8ap890ls6a1x0i318"))))
(build-system gnu-build-system)
(inputs `(("openssl" ,openssl)))
(arguments
`(#:configure-flags
(list (string-append "--with-ssl=" (assoc-ref %build-inputs "openssl")))))
(home-page "https://www.stunnel.org")
(synopsis "TLS proxy for clients or servers")
(description "Stunnel is a proxy designed to add TLS encryption
functionality to existing clients and servers without any changes in the
programs' code. Its architecture is optimized for security, portability, and
scalability (including load-balancing), making it suitable for large
deployments.")
(license l:gpl2+)))

View File

@ -3,7 +3,7 @@
;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2014, 2015, 2016 Alex Kost <alezost@gmail.com> ;;; Copyright © 2014, 2015, 2016 Alex Kost <alezost@gmail.com>
;;; Copyright © 2013, 2015 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2013, 2015, 2017 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015, 2016 Mathieu Lirzin <mthl@gnu.org> ;;; Copyright © 2015, 2016 Mathieu Lirzin <mthl@gnu.org>
;;; Copyright © 2015 Alexander I.Grafov <grafov@gmail.com> ;;; Copyright © 2015 Alexander I.Grafov <grafov@gmail.com>
;;; Copyright © 2015 Andy Wingo <wingo@igalia.com> ;;; Copyright © 2015 Andy Wingo <wingo@igalia.com>
@ -75,7 +75,14 @@
"/files/" name "-" version ".tar.gz")) "/files/" name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1i3f1agixxbfy4kxikb2b241p7c2lg73cl9wqfvlwz3q6zf5faxv")))) "1i3f1agixxbfy4kxikb2b241p7c2lg73cl9wqfvlwz3q6zf5faxv"))
(modules '((guix build utils)))
(snippet
;; Do not record a timestamp and file name in gzipped man
;; pages (this is equivalent to 'gzip --no-name'.)
'(substitute* "setup.py"
(("gzip\\.open\\(gzfile, 'w', 9\\)")
"gzip.GzipFile('', 'wb', 9, open(gzfile, 'wb'), 0.)")))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(#:python ,python-2 ;incompatible with python 3 `(#:python ,python-2 ;incompatible with python 3

View File

@ -300,7 +300,7 @@ ogginfo, to obtain information (tags, bitrate, length, etc.) about
(define opus (define opus
(package (package
(name "opus") (name "opus")
(version "1.1.3") (version "1.1.4")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -308,7 +308,7 @@ ogginfo, to obtain information (tags, bitrate, length, etc.) about
".tar.gz")) ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0cxnd7pjxbgh6l3cbzsw29phpr5cq28fikfhjlp1hc3y5s0gxdjq")))) "14l6kpapmcnvl7p9hrmbqcnzj13zfzyppyc9a5kd4788h2rvc8li"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(synopsis "Versatile audio codec") (synopsis "Versatile audio codec")
(description (description

View File

@ -345,6 +345,10 @@ ACTIVATION-SCRIPT-TYPE."
;; thus there is no accounting at all. ;; thus there is no accounting at all.
(close-port (open-file "/var/run/utmpx" "a0")) (close-port (open-file "/var/run/utmpx" "a0"))
;; Same for 'wtmp', which is populated by mingetty et
;; al.
(close-port (open-file "/var/log/wtmp" "a0"))
;; Set up /run/current-system. Among other things this ;; Set up /run/current-system. Among other things this
;; sets up locales, which the activation snippets ;; sets up locales, which the activation snippets
;; executed below may expect. ;; executed below may expect.

View File

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016 Andy Wingo <wingo@pobox.com> ;;; Copyright © 2016 Andy Wingo <wingo@pobox.com>
;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -811,6 +812,7 @@ IPP specifications.")
;; Activation gexp. ;; Activation gexp.
(with-imported-modules '((guix build utils)) (with-imported-modules '((guix build utils))
#~(begin #~(begin
(use-modules (guix build utils))
(define (mkdir-p/perms directory owner perms) (define (mkdir-p/perms directory owner perms)
(mkdir-p directory) (mkdir-p directory)
(chown "/var/run/cups" (passwd:uid owner) (passwd:gid owner)) (chown "/var/run/cups" (passwd:uid owner) (passwd:gid owner))

View File

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 Andy Wingo <wingo@igalia.com> ;;; Copyright © 2015 Andy Wingo <wingo@igalia.com>
;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -1601,6 +1602,7 @@ accept from local for any relay
(($ <opensmtpd-configuration> package config-file) (($ <opensmtpd-configuration> package config-file)
(let ((smtpd (file-append package "/sbin/smtpd"))) (let ((smtpd (file-append package "/sbin/smtpd")))
#~(begin #~(begin
(use-modules (guix build utils))
;; Create mbox and spool directories. ;; Create mbox and spool directories.
(mkdir-p "/var/mail") (mkdir-p "/var/mail")
(mkdir-p "/var/spool/smtpd") (mkdir-p "/var/spool/smtpd")

View File

@ -3,6 +3,7 @@
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 John Darrington <jmd@gnu.org> ;;; Copyright © 2016 John Darrington <jmd@gnu.org>
;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -332,6 +333,7 @@ restrict -6 ::1\n"))
"Return the activation gexp for CONFIG." "Return the activation gexp for CONFIG."
(with-imported-modules '((guix build utils)) (with-imported-modules '((guix build utils))
#~(begin #~(begin
(use-modules (guix build utils))
(define %user (define %user
(getpw "ntpd")) (getpw "ntpd"))

View File

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016 David Craven <david@craven.ch> ;;; Copyright © 2016 David Craven <david@craven.ch>
;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -35,7 +36,9 @@
(define (spice-vdagent-activation config) (define (spice-vdagent-activation config)
"Return the activation gexp for CONFIG." "Return the activation gexp for CONFIG."
#~(mkdir-p "/var/run/spice-vdagentd")) #~(begin
(use-modules (guix build utils))
(mkdir-p "/var/run/spice-vdagentd")))
(define (spice-vdagent-shepherd-service config) (define (spice-vdagent-shepherd-service config)
"Return a <shepherd-service> for spice-vdagentd with CONFIG." "Return a <shepherd-service> for spice-vdagentd with CONFIG."

View File

@ -2,6 +2,7 @@
;;; Copyright © 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016 David Craven <david@craven.ch> ;;; Copyright © 2016 David Craven <david@craven.ch>
;;; Copyright © 2016 Julien Lepiller <julien@lepiller.eu> ;;; Copyright © 2016 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -292,6 +293,7 @@ The other options should be self-descriptive."
(define (openssh-activation config) (define (openssh-activation config)
"Return the activation GEXP for CONFIG." "Return the activation GEXP for CONFIG."
#~(begin #~(begin
(use-modules (guix build utils))
(mkdir-p "/etc/ssh") (mkdir-p "/etc/ssh")
(mkdir-p (dirname #$(openssh-configuration-pid-file config))) (mkdir-p (dirname #$(openssh-configuration-pid-file config)))
@ -388,6 +390,7 @@ The other options should be self-descriptive."
(define (dropbear-activation config) (define (dropbear-activation config)
"Return the activation gexp for CONFIG." "Return the activation gexp for CONFIG."
#~(begin #~(begin
(use-modules (guix build utils))
(mkdir-p "/etc/dropbear"))) (mkdir-p "/etc/dropbear")))
(define (dropbear-shepherd-service config) (define (dropbear-shepherd-service config)

View File

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu> ;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -444,7 +445,9 @@ is trunkated and rewritten every minute.")
(shell (file-append shadow "/sbin/nologin"))))) (shell (file-append shadow "/sbin/nologin")))))
(define %openvpn-activation (define %openvpn-activation
#~(mkdir-p "/var/run/openvpn")) #~(begin
(use-modules (guix build utils))
(mkdir-p "/var/run/openvpn")))
(define openvpn-server-service-type (define openvpn-server-service-type
(service-type (name 'openvpn-server) (service-type (name 'openvpn-server)

View File

@ -54,7 +54,7 @@
(define-record-type* <mapped-device> mapped-device (define-record-type* <mapped-device> mapped-device
make-mapped-device make-mapped-device
mapped-device? mapped-device?
(source mapped-device-source) ;string (source mapped-device-source) ;string | list of strings
(target mapped-device-target) ;string (target mapped-device-target) ;string
(type mapped-device-type)) ;<mapped-device-kind> (type mapped-device-type)) ;<mapped-device-kind>

View File

@ -194,6 +194,29 @@ info --version")
(utmpx-entries))) (utmpx-entries)))
marionette)) marionette))
;; Likewise for /var/log/wtmp (used by 'last').
(test-assert "wtmp entry"
(match (marionette-eval
'(begin
(use-modules (guix build syscalls)
(srfi srfi-1))
(define (entry->list entry)
(list (utmpx-user entry) (utmpx-line entry)
(utmpx-host entry) (utmpx-login-type entry)))
(call-with-input-file "/var/log/wtmp"
(lambda (port)
(let loop ((result '()))
(if (eof-object? (peek-char port))
(map entry->list (reverse result))
(loop (cons (read-utmpx port) result)))))))
marionette)
(((users lines hosts types) ..1)
(every (lambda (type)
(eqv? type (login-type LOGIN_PROCESS)))
types))))
(test-assert "host name resolution" (test-assert "host name resolution"
(match (marionette-eval (match (marionette-eval
'(begin '(begin

View File

@ -21,6 +21,7 @@
(define-module (guix build syscalls) (define-module (guix build syscalls)
#:use-module (system foreign) #:use-module (system foreign)
#:use-module (rnrs bytevectors) #:use-module (rnrs bytevectors)
#:autoload (ice-9 binary-ports) (get-bytevector-n)
#:use-module (srfi srfi-1) #:use-module (srfi srfi-1)
#:use-module (srfi srfi-9) #:use-module (srfi srfi-9)
#:use-module (srfi srfi-9 gnu) #:use-module (srfi srfi-9 gnu)
@ -142,7 +143,8 @@
utmpx-time utmpx-time
utmpx-address utmpx-address
login-type login-type
utmpx-entries)) utmpx-entries
(read-utmpx-from-port . read-utmpx)))
;;; Commentary: ;;; Commentary:
;;; ;;;
@ -1598,4 +1600,13 @@ always a positive integer."
((? utmpx? entry) ((? utmpx? entry)
(loop (cons entry entries)))))) (loop (cons entry entries))))))
(define (read-utmpx-from-port port)
"Read a utmpx entry from PORT. Return either the EOF object or a utmpx
entry."
(match (get-bytevector-n port sizeof-utmpx)
((? eof-object? eof)
eof)
((? bytevector? bv)
(read-utmpx bv))))
;;; syscalls.scm ends here ;;; syscalls.scm ends here

View File

@ -78,11 +78,12 @@
(define* (graft-derivation/shallow store drv grafts (define* (graft-derivation/shallow store drv grafts
#:key #:key
(name (derivation-name drv)) (name (derivation-name drv))
(outputs (derivation-output-names drv))
(guile (%guile-for-build)) (guile (%guile-for-build))
(system (%current-system))) (system (%current-system)))
"Return a derivation called NAME, based on DRV but with all the GRAFTS "Return a derivation called NAME, which applies GRAFTS to the specified
applied. This procedure performs \"shallow\" grafting in that GRAFTS are not OUTPUTS of DRV. This procedure performs \"shallow\" grafting in that GRAFTS
recursively applied to dependencies of DRV." are not recursively applied to dependencies of DRV."
;; XXX: Someday rewrite using gexps. ;; XXX: Someday rewrite using gexps.
(define mapping (define mapping
;; List of store item pairs. ;; List of store item pairs.
@ -96,14 +97,12 @@ recursively applied to dependencies of DRV."
target)))) target))))
grafts)) grafts))
(define outputs (define output-pairs
(map (match-lambda (map (lambda (output)
((name . output) (cons output
(cons name (derivation-output-path output)))) (derivation-output-path
(derivation-outputs drv))) (assoc-ref (derivation-outputs drv) output))))
outputs))
(define output-names
(derivation-output-names drv))
(define build (define build
`(begin `(begin
@ -111,7 +110,7 @@ recursively applied to dependencies of DRV."
(guix build utils) (guix build utils)
(ice-9 match)) (ice-9 match))
(let* ((old-outputs ',outputs) (let* ((old-outputs ',output-pairs)
(mapping (append ',mapping (mapping (append ',mapping
(map (match-lambda (map (match-lambda
((name . file) ((name . file)
@ -143,10 +142,10 @@ recursively applied to dependencies of DRV."
(guix build utils)) (guix build utils))
#:inputs `(,@(map (lambda (out) #:inputs `(,@(map (lambda (out)
`("x" ,drv ,out)) `("x" ,drv ,out))
output-names) outputs)
,@(append (map add-label sources) ,@(append (map add-label sources)
(map add-label targets))) (map add-label targets)))
#:outputs output-names #:outputs outputs
#:local-build? #t))))) #:local-build? #t)))))
(define (item->deriver store item) (define (item->deriver store item)
"Return two values: the derivation that led to ITEM (a store item), and the "Return two values: the derivation that led to ITEM (a store item), and the
@ -217,14 +216,14 @@ available."
(define-syntax-rule (with-cache key exp ...) (define-syntax-rule (with-cache key exp ...)
"Cache the value of monadic expression EXP under KEY." "Cache the value of monadic expression EXP under KEY."
(mlet %state-monad ((cache (current-state))) (mlet %state-monad ((cache (current-state)))
(match (vhash-assq key cache) (match (vhash-assoc key cache)
((_ . result) ;cache hit ((_ . result) ;cache hit
(return result)) (return result))
(#f ;cache miss (#f ;cache miss
(mlet %state-monad ((result (begin exp ...)) (mlet %state-monad ((result (begin exp ...))
(cache (current-state))) (cache (current-state)))
(mbegin %state-monad (mbegin %state-monad
(set-current-state (vhash-consq key result cache)) (set-current-state (vhash-cons key result cache))
(return result))))))) (return result)))))))
(define* (cumulative-grafts store drv grafts (define* (cumulative-grafts store drv grafts
@ -265,7 +264,7 @@ derivations to the corresponding set of grafts."
#:system system)) #:system system))
(state-return grafts)))) (state-return grafts))))
(with-cache drv (with-cache (cons (derivation-file-name drv) outputs)
(match (non-self-references references drv outputs) (match (non-self-references references drv outputs)
(() ;no dependencies (() ;no dependencies
(return grafts)) (return grafts))
@ -282,29 +281,27 @@ derivations to the corresponding set of grafts."
;; applicable to DRV, to avoid creating several identical ;; applicable to DRV, to avoid creating several identical
;; grafted variants of DRV. ;; grafted variants of DRV.
(let* ((new (graft-derivation/shallow store drv applicable (let* ((new (graft-derivation/shallow store drv applicable
#:outputs outputs
#:guile guile #:guile guile
#:system system)) #:system system))
;; Replace references to any of the outputs of DRV,
;; even if that's more than needed. This is so that
;; the result refers only to the outputs of NEW and
;; not to those of DRV.
(grafts (append (map (lambda (output) (grafts (append (map (lambda (output)
(graft (graft
(origin drv) (origin drv)
(origin-output output) (origin-output output)
(replacement new) (replacement new)
(replacement-output output))) (replacement-output output)))
(derivation-output-names drv)) outputs)
grafts))) grafts)))
(return grafts)))))))))) (return grafts))))))))))
(define* (graft-derivation store drv grafts (define* (graft-derivation store drv grafts
#:key (guile (%guile-for-build)) #:key
(guile (%guile-for-build))
(outputs (derivation-output-names drv))
(system (%current-system))) (system (%current-system)))
"Applied GRAFTS to DRV and all its dependencies, recursively. That is, if "Apply GRAFTS to the OUTPUTS of DRV and all their dependencies, recursively.
GRAFTS apply only indirectly to DRV, graft the dependencies of DRV, and graft That is, if GRAFTS apply only indirectly to DRV, graft the dependencies of
DRV itself to refer to those grafted dependencies." DRV, and graft DRV itself to refer to those grafted dependencies."
;; First, pre-compute the dependency tree of the outputs of DRV. Do this ;; First, pre-compute the dependency tree of the outputs of DRV. Do this
;; upfront to have as much parallelism as possible when querying substitute ;; upfront to have as much parallelism as possible when querying substitute
@ -314,6 +311,7 @@ DRV itself to refer to those grafted dependencies."
(match (run-with-state (match (run-with-state
(cumulative-grafts store drv grafts references (cumulative-grafts store drv grafts references
#:outputs outputs
#:guile guile #:system system) #:guile guile #:system system)
vlist-null) ;the initial cache vlist-null) ;the initial cache
((first . rest) ((first . rest)

View File

@ -74,7 +74,14 @@ and the other containing arguments for the command to be executed."
(let* ((opts (parse-command-line args %options '(()) (let* ((opts (parse-command-line args %options '(())
#:argument-handler #:argument-handler
handle-argument)) handle-argument))
(pid (assoc-ref opts 'pid))) (pid (assoc-ref opts 'pid))
(environment (filter-map (lambda (name)
(let ((value (getenv name)))
(and value (cons name value))))
;; Pass through the TERM environment
;; variable to inform processes about
;; the capabilities of the terminal.
'("TERM"))))
(unless pid (unless pid
(leave (_ "no pid specified~%"))) (leave (_ "no pid specified~%")))
@ -89,6 +96,10 @@ and the other containing arguments for the command to be executed."
(lambda () (lambda ()
(match command (match command
((program . program-args) ((program . program-args)
(for-each (match-lambda
((name . value)
(setenv name value)))
environment)
(apply execlp program program program-args))))))) (apply execlp program program program-args)))))))
(unless (zero? result) (unless (zero? result)
(leave (_ "exec failed with status ~d~%") result))))))) (leave (_ "exec failed with status ~d~%") result)))))))

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -43,6 +43,9 @@
(define %mkdir (define %mkdir
(bootstrap-binary "mkdir")) (bootstrap-binary "mkdir"))
(define make-derivation-input
(@@ (guix derivations) make-derivation-input))
(test-begin "grafts") (test-begin "grafts")
@ -241,7 +244,18 @@
(replacement p1r) (replacement p1r)
(replacement-output "ONE"))) (replacement-output "ONE")))
(p3d (graft-derivation %store p3 (list p1g)))) (p3d (graft-derivation %store p3 (list p1g))))
(and (build-derivations %store (list p3d))
(and (not (find (lambda (input)
;; INPUT should not be P2:zzz since the result of P3
;; does not depend on it. See
;; <http://bugs.gnu.org/24886>.
(and (string=? (derivation-input-path input)
(derivation-file-name p2))
(member "zzz"
(derivation-input-sub-derivations input))))
(derivation-inputs p3d)))
(build-derivations %store (list p3d))
(let ((out (derivation->output-path (pk 'p2d p3d)))) (let ((out (derivation->output-path (pk 'p2d p3d))))
(and (not (string=? (readlink out) (and (not (string=? (readlink out)
(derivation->output-path p2 "aaa"))) (derivation->output-path p2 "aaa")))
@ -249,6 +263,106 @@
(readlink (string-append out "/two"))) (readlink (string-append out "/two")))
(file-exists? (string-append out "/one/replacement"))))))) (file-exists? (string-append out "/one/replacement")))))))
(test-assert "graft-derivation with #:outputs"
;; Call 'graft-derivation' with a narrowed set of outputs passed as
;; #:outputs.
(let* ((p1 (build-expression->derivation
%store "p1"
`(let ((one (assoc-ref %outputs "one"))
(two (assoc-ref %outputs "two")))
(mkdir one)
(mkdir two))
#:outputs '("one" "two")))
(p1r (build-expression->derivation
%store "P1"
`(let ((other (assoc-ref %outputs "ONE")))
(mkdir other)
(call-with-output-file (string-append other "/replacement")
(const #t)))
#:outputs '("ONE")))
(p2 (build-expression->derivation
%store "p2"
`(let ((aaa (assoc-ref %outputs "aaa"))
(zzz (assoc-ref %outputs "zzz")))
(mkdir zzz) (chdir zzz)
(mkdir aaa) (chdir aaa)
(symlink (assoc-ref %build-inputs "p1:two") "two"))
#:outputs '("aaa" "zzz")
#:inputs `(("p1:one" ,p1 "one")
("p1:two" ,p1 "two"))))
(p1g (graft
(origin p1)
(origin-output "one")
(replacement p1r)
(replacement-output "ONE")))
(p2g (graft-derivation %store p2 (list p1g)
#:outputs '("aaa"))))
;; P2:aaa depends on P1:two, but not on P1:one, so nothing to graft.
(eq? p2g p2)))
(test-equal "graft-derivation, unused outputs not depended on"
'("aaa")
;; Make sure that the result of 'graft-derivation' does not pull outputs
;; that are irrelevant to the grafting process. See
;; <http://bugs.gnu.org/24886>.
(let* ((p1 (build-expression->derivation
%store "p1"
`(let ((one (assoc-ref %outputs "one"))
(two (assoc-ref %outputs "two")))
(mkdir one)
(mkdir two))
#:outputs '("one" "two")))
(p1r (build-expression->derivation
%store "P1"
`(let ((other (assoc-ref %outputs "ONE")))
(mkdir other)
(call-with-output-file (string-append other "/replacement")
(const #t)))
#:outputs '("ONE")))
(p2 (build-expression->derivation
%store "p2"
`(let ((aaa (assoc-ref %outputs "aaa"))
(zzz (assoc-ref %outputs "zzz")))
(mkdir zzz) (chdir zzz)
(symlink (assoc-ref %build-inputs "p1:two") "two")
(mkdir aaa) (chdir aaa)
(symlink (assoc-ref %build-inputs "p1:one") "one"))
#:outputs '("aaa" "zzz")
#:inputs `(("p1:one" ,p1 "one")
("p1:two" ,p1 "two"))))
(p1g (graft
(origin p1)
(origin-output "one")
(replacement p1r)
(replacement-output "ONE")))
(p2g (graft-derivation %store p2 (list p1g)
#:outputs '("aaa"))))
;; Here P2G should only depend on P1:one and P1R:one; it must not depend
;; on P1:two or P1R:two since these are unused in the grafting process.
(and (not (eq? p2g p2))
(let* ((inputs (derivation-inputs p2g))
(match-input (lambda (drv)
(lambda (input)
(string=? (derivation-input-path input)
(derivation-file-name drv)))))
(p1-inputs (filter (match-input p1) inputs))
(p1r-inputs (filter (match-input p1r) inputs))
(p2-inputs (filter (match-input p2) inputs)))
(and (equal? p1-inputs
(list (make-derivation-input (derivation-file-name p1)
'("one"))))
(equal? p1r-inputs
(list
(make-derivation-input (derivation-file-name p1r)
'("ONE"))))
(equal? p2-inputs
(list
(make-derivation-input (derivation-file-name p2)
'("aaa"))))
(derivation-output-names p2g))))))
(test-assert "graft-derivation, renaming" ;<http://bugs.gnu.org/23132> (test-assert "graft-derivation, renaming" ;<http://bugs.gnu.org/23132>
(let* ((build `(begin (let* ((build `(begin
(use-modules (guix build utils)) (use-modules (guix build utils))

View File

@ -452,6 +452,15 @@
#t))) #t)))
entries)))) entries))))
(test-assert "read-utmpx, EOF"
(eof-object? (read-utmpx (%make-void-port "r"))))
(unless (access? "/var/run/utmpx" O_RDONLY)
(tes-skip 1))
(test-assert "read-utmpx"
(let ((result (call-with-input-file "/var/run/utmpx" read-utmpx)))
(or (utmpx? result) (eof-object? result))))
(test-end) (test-end)
(false-if-exception (delete-file temp-file)) (false-if-exception (delete-file temp-file))