diff options
-rw-r--r-- | .mailmap | 1 | ||||
-rw-r--r-- | doc/guix.texi | 15 | ||||
-rw-r--r-- | gnu/local.mk | 3 | ||||
-rw-r--r-- | gnu/packages/admin.scm | 4 | ||||
-rw-r--r-- | gnu/packages/backup.scm | 43 | ||||
-rw-r--r-- | gnu/packages/certs.scm | 4 | ||||
-rw-r--r-- | gnu/packages/gnupg.scm | 7 | ||||
-rw-r--r-- | gnu/packages/gnuzilla.scm | 8 | ||||
-rw-r--r-- | gnu/packages/imagemagick.scm | 4 | ||||
-rw-r--r-- | gnu/packages/linux.scm | 65 | ||||
-rw-r--r-- | gnu/packages/mail.scm | 114 | ||||
-rw-r--r-- | gnu/packages/ocaml.scm | 22 | ||||
-rw-r--r-- | gnu/packages/patches/qemu-CVE-2016-8576.patch | 62 | ||||
-rw-r--r-- | gnu/packages/patches/qemu-CVE-2016-8577.patch | 36 | ||||
-rw-r--r-- | gnu/packages/patches/qemu-CVE-2016-8578.patch | 27 | ||||
-rw-r--r-- | gnu/packages/qemu.scm | 11 | ||||
-rw-r--r-- | gnu/packages/serialization.scm | 4 | ||||
-rw-r--r-- | gnu/packages/video.scm | 4 | ||||
-rw-r--r-- | gnu/packages/xdisorg.scm | 8 | ||||
-rw-r--r-- | gnu/packages/xorg.scm | 16 | ||||
-rw-r--r-- | gnu/services/sddm.scm | 2 | ||||
-rw-r--r-- | guix/import/github.scm | 15 | ||||
-rw-r--r-- | guix/import/pypi.scm | 3 | ||||
-rw-r--r-- | guix/scripts/environment.scm | 34 | ||||
-rw-r--r-- | tests/guix-environment.sh | 17 |
25 files changed, 264 insertions, 265 deletions
@@ -27,6 +27,7 @@ Joshua Grant <tadni@riseup.net> <youlysses@riseup.net> Kei Kebreau <kei@openmailbox.org> Leo Famulari <leo@famulari.name> <lfamular@gmail.com> Ludovic Courtès <ludo@gnu.org> <ludovic.courtes@inria.fr> +Marius Bakke <mbakke@fastmail.com> <m.bakke@warwick.ac.uk> Mathieu Lirzin <mthl@gnu.org> <mthl@openmailbox.org> Mathieu Lirzin <mthl@gnu.org> <mathieu.lirzin@openmailbox.org> Nikita Karetnikov <nikita@karetnikov.org> <nikita.karetnikov@gmail.com> diff --git a/doc/guix.texi b/doc/guix.texi index 512b3ae9ce..69129d5835 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -5997,6 +5997,21 @@ The @code{--container} option requires Linux-libre 3.19 or newer. The available options are summarized below. @table @code +@item --root=@var{file} +@itemx -r @var{file} +@cindex persistent environment +@cindex garbage collector root, for environments +Make @var{file} a symlink to the profile for this environment, and +register it as a garbage collector root. + +This is useful if you want to protect your environment from garbage +collection, to make it ``persistent''. + +When this option is omitted, the environment is protected from garbage +collection only for the duration of the @command{guix environment} +session. This means that next time you recreate the same environment, +you could have to rebuild or re-download packages. + @item --expression=@var{expr} @itemx -e @var{expr} Create an environment for the package or list of packages that diff --git a/gnu/local.mk b/gnu/local.mk index 3a56c840bc..f55d8e5e74 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -819,9 +819,6 @@ dist_patch_DATA = \ %D%/packages/patches/python-paste-remove-website-test.patch \ %D%/packages/patches/python-paste-remove-timing-test.patch \ %D%/packages/patches/python2-pygobject-2-gi-info-type-error-domain.patch \ - %D%/packages/patches/qemu-CVE-2016-8576.patch \ - %D%/packages/patches/qemu-CVE-2016-8577.patch \ - %D%/packages/patches/qemu-CVE-2016-8578.patch \ %D%/packages/patches/qt4-ldflags.patch \ %D%/packages/patches/quickswitch-fix-dmenu-check.patch \ %D%/packages/patches/rapicorn-isnan.patch \ diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 69c04dc139..fb9ed2a4de 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -1568,14 +1568,14 @@ done with the @code{auditctl} utility.") (define-public nmap (package (name "nmap") - (version "7.31") + (version "7.40") (source (origin (method url-fetch) (uri (string-append "https://nmap.org/dist/nmap-" version ".tar.bz2")) (sha256 (base32 - "0hiqb28950kn4bjsmw0ksfyss7j2qdmgrj3xsjf7073pq01lx7yb")) + "121i9mgyc28ra2825akd0ix5qyssv4xc2qlx296mam6hzxgnc54y")) (modules '((guix build utils))) (snippet '(map delete-file-recursively diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm index 6f88dae789..86c6712edc 100644 --- a/gnu/packages/backup.scm +++ b/gnu/packages/backup.scm @@ -404,13 +404,13 @@ detection, and lossless compression.") (define-public borg (package (name "borg") - (version "1.0.8") + (version "1.0.9") (source (origin (method url-fetch) (uri (pypi-uri "borgbackup" version)) (sha256 (base32 - "1fdfi0yzzdrrlml6780n4fh61sqm7pw6fcd1y67kfkvw8hy5c0k9")) + "1ciwp9yilcibk0x82y5nn8ps95jrm8rxvff8mjrlp7a2w100i1im")) (modules '((guix build utils))) (snippet '(for-each @@ -439,25 +439,26 @@ detection, and lossless compression.") (lambda* (#:key inputs outputs #:allow-other-keys) ;; Make the installed package available for the test suite. (add-installed-pythonpath inputs outputs) - (zero? - (system* "py.test" "-v" "--pyargs" "borg.testsuite" "-k" - (string-append - ;; These tests need to write to '/var'. - "not test_get_cache_dir " - "and not test_get_keys_dir " - ;; These tests assume there is a root user in - ;; '/etc/passwd'. - "and not test_access_acl " - "and not test_default_acl " - "and not test_non_ascii_acl " - ;; This test needs the unpackaged pytest-benchmark. - "and not benchmark " - ;; These tests assume the kernel supports FUSE. They - ;; were skipped using the "old" Python build system, - ;; before commit - ;; 7db40bce58e149ecb541d295e01cfbfe953d39a3. - "and not test_fuse " - "and not test_fuse_allow_damaged_files"))))) + ;; The tests should be run in an empty directory. + (mkdir-p "tests") + (with-directory-excursion "tests" + (zero? + (system* "py.test" "-v" "--pyargs" "borg.testsuite" "-k" + (string-append + ;; These tests need to write to '/var'. + "not test_get_cache_dir " + "and not test_get_keys_dir " + "and not test_get_security_dir " + ;; These tests assume there is a root user in + ;; '/etc/passwd'. + "and not test_access_acl " + "and not test_default_acl " + "and not test_non_ascii_acl " + ;; This test needs the unpackaged pytest-benchmark. + "and not benchmark " + ;; These tests assume the kernel supports FUSE. + "and not test_fuse " + "and not test_fuse_allow_damaged_files")))))) (add-after 'install 'install-doc (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) diff --git a/gnu/packages/certs.scm b/gnu/packages/certs.scm index d2e157142c..b27577bbec 100644 --- a/gnu/packages/certs.scm +++ b/gnu/packages/certs.scm @@ -73,7 +73,7 @@ (define-public nss-certs (package (name "nss-certs") - (version "3.27.2") + (version "3.27.1") (source (origin (method url-fetch) (uri (let ((version-with-underscores @@ -84,7 +84,7 @@ "nss-" version ".tar.gz"))) (sha256 (base32 - "0945q9yyhax9lkhxs1bjlr5gwknpvhzsa4zxfh127l398i9ci2nw")))) + "0sraxk26swlgl7rl742rkfp5k251v5z3lqw9k8ikin0cjfhkfdpx")))) (build-system gnu-build-system) (outputs '("out")) (native-inputs diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index 2d769c88df..096fcb96f5 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm @@ -213,20 +213,19 @@ compatible to GNU Pth.") (define-public gnupg (package (name "gnupg") - (version "2.1.16") + (version "2.1.17") (source (origin (method url-fetch) (uri (string-append "mirror://gnupg/gnupg/gnupg-" version ".tar.bz2")) (sha256 (base32 - "0i483m9q032a0s50f1izb213g4h5i7pcgn395m6hvl3sg2kadfa9")))) + "1js308b46ifx1gim0c9nivr5yxhans7iq1yvkf7zl2928gdm9p65")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) (inputs - `(("adns" ,adns) - ("bzip2" ,bzip2) + `(("bzip2" ,bzip2) ("curl" ,curl) ("gnutls" ,gnutls) ("libassuan" ,libassuan) diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index 9cb1f26a5e..07ed2af0bb 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -186,7 +186,11 @@ in the Mozilla clients.") (define-public nss (package (name "nss") - (version "3.27.2") + ;; FIXME: NSS 3.27.2 fails its tests on armhf. At least some of the test + ;; failures appear to be caused by test certificates that have expired. + ;; Search the test suite output for 'PayPalEE.cert' for an example: + ;; <https://hydra.gnu.org/build/1712083> + (version "3.27.1") (source (origin (method url-fetch) (uri (let ((version-with-underscores @@ -197,7 +201,7 @@ in the Mozilla clients.") "nss-" version ".tar.gz"))) (sha256 (base32 - "0945q9yyhax9lkhxs1bjlr5gwknpvhzsa4zxfh127l398i9ci2nw")) + "0sraxk26swlgl7rl742rkfp5k251v5z3lqw9k8ikin0cjfhkfdpx")) ;; Create nss.pc and nss-config. (patches (search-patches "nss-pkgconfig.patch")))) (build-system gnu-build-system) diff --git a/gnu/packages/imagemagick.scm b/gnu/packages/imagemagick.scm index bff5f8693f..48d468734b 100644 --- a/gnu/packages/imagemagick.scm +++ b/gnu/packages/imagemagick.scm @@ -43,14 +43,14 @@ (define-public imagemagick (package (name "imagemagick") - (version "6.9.6-8") + (version "6.9.7-0") (source (origin (method url-fetch) (uri (string-append "mirror://imagemagick/ImageMagick-" version ".tar.xz")) (sha256 (base32 - "0p9zmzlhcmq0r52vkh9s9zj6906h93k7bff61rgbsm1l30c2pfrr")))) + "0c6ff1am2mhc0dc26h50l78yx6acwqymwpwgkxgx69cb6jfpwrdx")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--with-frozenpaths" "--without-gcc-arch") diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 5d6fbbb148..799d00f045 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -17,6 +17,7 @@ ;;; Copyright © 2016 John Darrington <jmd@gnu.org> ;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2016 Rene Saavedra <rennes@openmailbox.org> +;;; Copyright © 2016 ng0 <ng0@libertad.pw> ;;; ;;; This file is part of GNU Guix. ;;; @@ -72,6 +73,8 @@ #:use-module (gnu packages slang) #:use-module (gnu packages texinfo) #:use-module (gnu packages tls) + #:use-module (gnu packages video) + #:use-module (gnu packages xiph) #:use-module (gnu packages xml) #:use-module (gnu packages xdisorg) #:use-module (gnu packages xorg) @@ -896,6 +899,68 @@ MIDI functionality to the Linux-based operating system.") ;; GPLv2-only. (license license:gpl2))) +(define-public alsa-plugins + (package + (name "alsa-plugins") + (version "1.1.1") + (source (origin + (method url-fetch) + (uri (string-append "ftp://ftp.alsa-project.org/pub/plugins/" + name "-" version ".tar.bz2")) + (sha256 + (base32 + "1w81z5jlwqhd1l2m7qrq69lc4k9dnrg1wn52jsl2hrf3hbhd394f")))) + (build-system gnu-build-system) + ;; TODO: Split libavcodec and speex if possible. It looks like they can not + ;; be split, there are references to both in files. + ;; TODO: Remove OSS related plugins, they add support to run native + ;; ALSA applications on OSS however we do not offer OSS and OSS is + ;; obsolete. + (outputs '("out" "pulseaudio")) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'install 'split + (lambda* (#:key inputs outputs #:allow-other-keys) + ;; Distribute the binaries to the various outputs. + (let* ((out (assoc-ref outputs "out")) + (pua (assoc-ref outputs "pulseaudio")) + (pualib (string-append pua "/lib/alsa-lib")) + (puaconf (string-append pua "/share/alsa/alsa.conf.d"))) + (mkdir-p puaconf) + (mkdir-p pualib) + (chdir (string-append out "/share")) + (for-each (lambda (file) + (rename-file file (string-append puaconf "/" (basename file)))) + (find-files out "\\.(conf|example)")) + (for-each (lambda (file) + (rename-file file (string-append pualib "/" (basename file)))) + (find-files out ".*pulse\\.(la|so)")) + (chdir "..") + ;; We have moved the files to output pulsaudio, the + ;; directory is now empty. + (delete-file-recursively (string-append out "/share")) + #t)))))) + (inputs + `(("alsa-lib" ,alsa-lib) + ("speex" ,speex) ; libspeexdsp resampling plugin + ("libsamplerate" ,libsamplerate) ; libsamplerate resampling plugin + ("ffmpeg" ,ffmpeg) ; libavcodec resampling plugin, a52 plugin + ("pulseaudio" ,pulseaudio))) ; PulseAudio plugin + (native-inputs + `(("pkg-config" ,pkg-config))) + (home-page "http://www.alsa-project.org/") + (synopsis "Plugins for the Advanced Linux Sound Architecture (ALSA)") + (description + "The Advanced Linux Sound Architecture (ALSA) provides audio and +MIDI functionality to the Linux-based operating system. This package enhances ALSA +by providing additional plugins which include: upmixing, downmixing, jackd and +pulseaudio support for native alsa applications, format conversion (s16 to a52), and +external rate conversion.") + (license (list license:gpl2+ + ;; `rate/rate_samplerate.c': LGPL v2.1 or later. + license:lgpl2.1+)))) + (define-public iptables (package (name "iptables") diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 4b8e07cd11..078bfd029a 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -103,53 +103,54 @@ (define-public mailutils (package (name "mailutils") - (version "3.0") + (version "3.1.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/mailutils/mailutils-" version ".tar.bz2")) (sha256 (base32 - "0h7cx4cd3niycx7pl0p2358cx2smwm5sb3l9bpb8czkdl6v115c8")))) + "1dpylyg79avi7brpkcmzaq7bqqkz45flp0ws6f2c8b1gyz4hdnzm")))) (build-system gnu-build-system) (arguments - '(;; TODO: Add `--with-sql'. - #:phases (alist-cons-before - 'build 'pre-build - (lambda _ - ;; Use the right file name for `cat'. - (substitute* "testsuite/lib/mailutils.exp" - (("/bin/cat") - (which "cat"))) - - ;; Tests try to invoke 'maidag' such that it looks up the - ;; 'root' user, which does not exist in the build - ;; environment. - (substitute* "maidag/tests/testsuite" - (("root <") "nobody <") - (("spool/root") "spool/nobody") - (("root@localhost") "nobody@localhost")) - - ;; The 'pipeact.at' tests generate a shell script; make - ;; sure it uses the right shell. - (substitute* '("sieve/tests/testsuite" - "mh/tests/testsuite") - (("#! /bin/sh") - (string-append "#!" (which "sh")))) - - (substitute* "mh/tests/testsuite" - (("moreproc: /bin/cat") - (string-append "moreproc: " (which "cat")))) - - ;; XXX: The comsatd tests rely on being able to open - ;; /dev/tty, but that gives ENODEV in the build - ;; environment. Thus, ignore test failures here. - (substitute* "comsat/tests/Makefile.in" - (("\\$\\(SHELL\\) \\$\\(TESTSUITE\\)" all) - (string-append "-" all))) - - #t) - %standard-phases) + '(#:phases + (modify-phases %standard-phases + (add-before 'build 'pre-build + (lambda _ + ;; Use the right file name for `cat'. + (substitute* "testsuite/lib/mailutils.exp" + (("/bin/cat") + (which "cat"))) + + ;; Tests try to invoke 'maidag' such that it looks up the + ;; 'root' user, which does not exist in the build + ;; environment. + (substitute* "maidag/tests/testsuite" + (("root <") "nobody <") + (("spool/root") "spool/nobody") + (("root@localhost") "nobody@localhost")) + + ;; The 'pipeact.at' tests generate a shell script; make + ;; sure it uses the right shell. + (substitute* '("sieve/tests/testsuite" + "mh/tests/testsuite") + (("#! /bin/sh") + (string-append "#!" (which "sh")))) + + (substitute* "mh/tests/testsuite" + (("moreproc: /bin/cat") + (string-append "moreproc: " (which "cat")))) + + ;; XXX: The comsatd tests rely on being able to open + ;; /dev/tty, but that gives ENODEV in the build + ;; environment. Thus, ignore test failures here. + (substitute* "comsat/tests/Makefile.in" + (("\\$\\(SHELL\\) \\$\\(TESTSUITE\\)" all) + (string-append "-" all))) + + #t))) + ;; TODO: Add `--with-sql'. + #:configure-flags '("--sysconfdir=/etc") #:parallel-tests? #f)) (inputs `(("dejagnu" ,dejagnu) @@ -158,15 +159,11 @@ ("guile" ,guile-2.0) ("gnutls" ,gnutls) ("ncurses" ,ncurses) - - ;; With Readline 6.3, examples/pop3client.c fails to build because it - ;; uses the now undefined 'CPPFunction' type. - ("readline" ,readline-6.2) - + ("readline" ,readline) ("linux-pam" ,linux-pam) ("libltdl" ,libltdl) ("gdbm" ,gdbm))) - (home-page "http://www.gnu.org/software/mailutils/") + (home-page "https://www.gnu.org/software/mailutils/") (synopsis "Utilities and library for reading and serving mail") (description "GNU Mailutils is a collection of programs for managing, viewing and @@ -214,14 +211,14 @@ aliasing facilities to work just as they would on normal mail.") (define-public mutt (package (name "mutt") - (version "1.7.1") + (version "1.7.2") (source (origin (method url-fetch) (uri (string-append "ftp://ftp.mutt.org/pub/mutt/mutt-" version ".tar.gz")) (sha256 (base32 - "1pyns0xw52s4yma1a93pdcl4dirs55q2m1hd7w1r11nlhf7giip9")) + "1yazrl82s9fxmamnlvwmsxhwrxnwv6kwakgfmawda8ndhwb50lqm")) (patches (search-patches "mutt-store-references.patch")))) (build-system gnu-build-system) (inputs @@ -308,13 +305,14 @@ Extension (MIME).") "1d56n2m9inm8gnzm88aa27xl2a7sp7aff3484vmflpqkinjqf0p1")))) (build-system gnu-build-system) (arguments - '(#:phases (alist-cons-before - 'check 'pre-check - (lambda _ - (substitute* "src/tests/t.frame" - (("GREP=/bin/grep") - (string-append "GREP=" (which "grep") "\n")))) - %standard-phases))) + '(#:phases + (modify-phases %standard-phases + (add-before 'check 'pre-check + (lambda _ + (substitute* "src/tests/t.frame" + (("GREP=/bin/grep") + (string-append "GREP=" (which "grep") "\n"))) + #t))))) (native-inputs `(("flex" ,flex))) (inputs `(("bdb" ,bdb))) (home-page "http://bogofilter.sourceforge.net/") @@ -675,7 +673,7 @@ and search library.") (define-public getmail (package (name "getmail") - (version "4.49.0") + (version "4.52.0") (source (origin (method url-fetch) @@ -683,7 +681,7 @@ and search library.") name "-" version ".tar.gz")) (sha256 (base32 - "1m0yzxd05fklwbmjj1n2q4sx397c1j5qi9a0r5fv3h8pplz4lv0w")))) + "0pzplrlxwbxydvfw4kkwn60l40hk1h5sxawaa6pi0k75c220k4ni")))) (build-system python-build-system) (arguments `(#:tests? #f ; no tests @@ -799,7 +797,7 @@ which can add many functionalities to the base client.") (define-public msmtp (package (name "msmtp") - (version "1.6.5") + (version "1.6.6") (source (origin (method url-fetch) @@ -807,7 +805,7 @@ which can add many functionalities to the base client.") "/msmtp-" version ".tar.xz")) (sha256 (base32 - "01jh9ba49bih8zsh40myw6qq1ll210q1vw0jg865vrn7jc3dd83n")))) + "0ppvww0sb09bnsrpqnvlrn8vx231r24xn2iiwpy020mxc8gxn5fs")))) (build-system gnu-build-system) (inputs `(("libidn" ,libidn) diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index 61d51074e7..c5784db904 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2016 Julien Lepiller <julien@lepiller.eu> ;;; ;;; This file is part of GNU Guix. ;;; @@ -340,9 +341,11 @@ written in Objective Caml.") (build-system gnu-build-system) (native-inputs `(("texlive" ,texlive) + ("findlib" ,ocaml-findlib) ("hevea" ,hevea))) (inputs `(("ocaml" ,ocaml) + ("lablgtk" ,lablgtk) ("camlp5" ,camlp5))) (arguments `(#:phases @@ -355,7 +358,8 @@ written in Objective Caml.") (zero? (system* "./configure" "-prefix" out "-mandir" mandir - "-browser" browser))))) + "-browser" browser + "-coqide" "opt"))))) (replace 'build (lambda _ (zero? (system* "make" "-j" (number->string @@ -493,19 +497,20 @@ Knuth’s LR(1) parser construction technique.") (define-public lablgtk (package (name "lablgtk") - (version "2.18.3") + (version "2.18.5") (source (origin (method url-fetch) (uri (string-append "https://forge.ocamlcore.org/frs/download.php/" - "1479/lablgtk-2.18.3.tar.gz")) + "1627/lablgtk-2.18.5.tar.gz")) (sha256 (base32 - "1bybn3jafxf4cx25zvn8h2xj9agn1xjbn7j3ywxxqx6az7rfnnwp")))) + "0cyj6sfdvzx8hw7553lhgwc0krlgvlza0ph3dk9gsxy047dm3wib")))) (build-system gnu-build-system) (native-inputs `(("camlp4" ,camlp4) ("ocaml" ,ocaml) + ("findlib" ,ocaml-findlib) ("pkg-config" ,pkg-config))) ;; FIXME: Add inputs gtkgl-2.0, libpanelapplet-2.0, gtkspell-2.0, ;; and gtk+-quartz-2.0 once available. @@ -520,21 +525,24 @@ Knuth’s LR(1) parser construction technique.") `(#:tests? #f ; no check target ;; opt: also install cmxa files - #:make-flags (list "all" "opt") + #:make-flags (list "all" "opt" + (string-append "FINDLIBDIR=" + (assoc-ref %outputs "out") + "/lib/ocaml")) ;; Occasionally we would get "Error: Unbound module GtkThread" when ;; compiling 'gtkThInit.ml', with 'make -j'. So build sequentially. #:parallel-build? #f #:phases (modify-phases %standard-phases - (replace 'install + (add-before 'install 'prepare-install (lambda* (#:key inputs outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out")) (ocaml (assoc-ref inputs "ocaml"))) ;; Install into the output and not the ocaml directory. + (mkdir-p (string-append out "/lib/ocaml")) (substitute* "config.make" ((ocaml) out)) - (system* "make" "old-install") #t)))))) (home-page "http://lablgtk.forge.ocamlcore.org/") (synopsis "GTK+ bindings for OCaml") diff --git a/gnu/packages/patches/qemu-CVE-2016-8576.patch b/gnu/packages/patches/qemu-CVE-2016-8576.patch deleted file mode 100644 index 5031b59d81..0000000000 --- a/gnu/packages/patches/qemu-CVE-2016-8576.patch +++ /dev/null @@ -1,62 +0,0 @@ -From 20009bdaf95d10bf748fa69b104672d3cfaceddf Mon Sep 17 00:00:00 2001 -From: Gerd Hoffmann <kraxel@redhat.com> -Date: Fri, 7 Oct 2016 10:15:29 +0200 -Subject: [PATCH] xhci: limit the number of link trbs we are willing to process - -Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> ---- - hw/usb/hcd-xhci.c | 10 ++++++++++ - 1 file changed, 10 insertions(+) - -diff --git a/hw/usb/hcd-xhci.c b/hw/usb/hcd-xhci.c -index 726435c..ee4fa48 100644 ---- a/hw/usb/hcd-xhci.c -+++ b/hw/usb/hcd-xhci.c -@@ -54,6 +54,8 @@ - * to the specs when it gets them */ - #define ER_FULL_HACK - -+#define TRB_LINK_LIMIT 4 -+ - #define LEN_CAP 0x40 - #define LEN_OPER (0x400 + 0x10 * MAXPORTS) - #define LEN_RUNTIME ((MAXINTRS + 1) * 0x20) -@@ -1000,6 +1002,7 @@ static TRBType xhci_ring_fetch(XHCIState *xhci, XHCIRing *ring, XHCITRB *trb, - dma_addr_t *addr) - { - PCIDevice *pci_dev = PCI_DEVICE(xhci); -+ uint32_t link_cnt = 0; - - while (1) { - TRBType type; -@@ -1026,6 +1029,9 @@ static TRBType xhci_ring_fetch(XHCIState *xhci, XHCIRing *ring, XHCITRB *trb, - ring->dequeue += TRB_SIZE; - return type; - } else { -+ if (++link_cnt > TRB_LINK_LIMIT) { -+ return 0; -+ } - ring->dequeue = xhci_mask64(trb->parameter); - if (trb->control & TRB_LK_TC) { - ring->ccs = !ring->ccs; -@@ -1043,6 +1049,7 @@ static int xhci_ring_chain_length(XHCIState *xhci, const XHCIRing *ring) - bool ccs = ring->ccs; - /* hack to bundle together the two/three TDs that make a setup transfer */ - bool control_td_set = 0; -+ uint32_t link_cnt = 0; - - while (1) { - TRBType type; -@@ -1058,6 +1065,9 @@ static int xhci_ring_chain_length(XHCIState *xhci, const XHCIRing *ring) - type = TRB_TYPE(trb); - - if (type == TR_LINK) { -+ if (++link_cnt > TRB_LINK_LIMIT) { -+ return -length; -+ } - dequeue = xhci_mask64(trb.parameter); - if (trb.control & TRB_LK_TC) { - ccs = !ccs; --- -1.8.3.1 - diff --git a/gnu/packages/patches/qemu-CVE-2016-8577.patch b/gnu/packages/patches/qemu-CVE-2016-8577.patch deleted file mode 100644 index c4132d2fb1..0000000000 --- a/gnu/packages/patches/qemu-CVE-2016-8577.patch +++ /dev/null @@ -1,36 +0,0 @@ -Subject: [Qemu-devel] [PATCH] 9pfs: fix potential host memory leak in v9fs_read -From: Li Qiang <liq3ea@gmail.com> - -In 9pfs read dispatch function, it doesn't free two QEMUIOVector -object thus causing potential memory leak. This patch avoid this. - -Signed-off-by: Li Qiang <liq3ea@gmail.com> ---- - hw/9pfs/9p.c | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -diff --git a/hw/9pfs/9p.c b/hw/9pfs/9p.c -index 119ee58..543a791 100644 ---- a/hw/9pfs/9p.c -+++ b/hw/9pfs/9p.c -@@ -1826,14 +1826,15 @@ static void v9fs_read(void *opaque) - if (len < 0) { - /* IO error return the error */ - err = len; -- goto out; -+ goto out_free_iovec; - } - } while (count < max_count && len > 0); - err = pdu_marshal(pdu, offset, "d", count); - if (err < 0) { -- goto out; -+ goto out_free_iovec; - } - err += offset + count; -+out_free_iovec: - qemu_iovec_destroy(&qiov); - qemu_iovec_destroy(&qiov_full); - } else if (fidp->fid_type == P9_FID_XATTR) { --- -1.8.3.1 - diff --git a/gnu/packages/patches/qemu-CVE-2016-8578.patch b/gnu/packages/patches/qemu-CVE-2016-8578.patch deleted file mode 100644 index 92ba365727..0000000000 --- a/gnu/packages/patches/qemu-CVE-2016-8578.patch +++ /dev/null @@ -1,27 +0,0 @@ -From: Li Qiang <liq3ea@gmail.com> - -In 9pfs function v9fs_iov_vunmarshal, it will not allocate space -for empty string. This will cause several NULL pointer dereference -issues. this patch fix this issue. - -Signed-off-by: Li Qiang <liq3ea@gmail.com> ---- - fsdev/9p-iov-marshal.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/fsdev/9p-iov-marshal.c b/fsdev/9p-iov-marshal.c -index 663cad5..1d16f8d 100644 ---- a/fsdev/9p-iov-marshal.c -+++ b/fsdev/9p-iov-marshal.c -@@ -125,7 +125,7 @@ ssize_t v9fs_iov_vunmarshal(struct iovec *out_sg, int out_num, size_t offset, - str->data = g_malloc(str->size + 1); - copied = v9fs_unpack(str->data, out_sg, out_num, offset, - str->size); -- if (copied > 0) { -+ if (copied >= 0) { - str->data[str->size] = 0; - } else { - v9fs_string_free(str); --- -1.8.3.1 - diff --git a/gnu/packages/qemu.scm b/gnu/packages/qemu.scm index 805bb33b6b..4c47a09902 100644 --- a/gnu/packages/qemu.scm +++ b/gnu/packages/qemu.scm @@ -69,17 +69,14 @@ (define-public qemu (package (name "qemu") - (version "2.7.0") + (version "2.8.0") (source (origin (method url-fetch) (uri (string-append "http://wiki.qemu-project.org/download/qemu-" version ".tar.bz2")) (sha256 (base32 - "0lqyz01z90nvxpc3nx4djbci7hx62cwvs5zwd6phssds0sap6vij")) - (patches (search-patches "qemu-CVE-2016-8576.patch" - "qemu-CVE-2016-8577.patch" - "qemu-CVE-2016-8578.patch")))) + "0qjy3rcrn89n42y5iz60kgr0rrl29hpnj8mq2yvbc1wrcizmvzfs")))) (build-system gnu-build-system) (arguments '(;; Running tests in parallel can occasionally lead to failures, like: @@ -106,6 +103,8 @@ (apply system* `("./configure" ,(string-append "--cc=" (which "gcc")) + ;; Some architectures insist on using HOST_CC + ,(string-append "--host-cc=" (which "gcc")) "--disable-debug-info" ; save build space "--enable-virtfs" ; just to be sure ,(string-append "--prefix=" out) @@ -124,7 +123,7 @@ (add-before 'check 'make-gtester-verbose (lambda _ ;; Make GTester verbose to facilitate investigation upon failure. - (setenv "V" "1"))) + (setenv "V" "1") #t)) (add-before 'check 'disable-test-qga (lambda _ (substitute* "tests/Makefile.include" diff --git a/gnu/packages/serialization.scm b/gnu/packages/serialization.scm index 3f20a3525c..8db81c581c 100644 --- a/gnu/packages/serialization.scm +++ b/gnu/packages/serialization.scm @@ -154,7 +154,7 @@ serialization.") (define-public jsoncpp (package (name "jsoncpp") - (version "1.7.7") + (version "1.8.0") (source (origin (method url-fetch) (uri (string-append @@ -163,7 +163,7 @@ serialization.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "15wg14480lrbrhc2myk9rwpwb2gzix9bk80p4y7gxg3zrzml0xh8")))) + "1g35ci93s03wph4kabi46iz42wgyfbn2763cklf15h7hrdi29ssx")))) (build-system cmake-build-system) (home-page "https://github.com/open-source-parsers/jsoncpp") (arguments diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 968f90840d..76b80b3342 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -1399,7 +1399,7 @@ from various services and pipes them into a video playing application.") (define-public mlt (package (name "mlt") - (version "6.2.0") + (version "6.4.1") (source (origin (method url-fetch) (uri (string-append "https://github.com/mltframework/mlt/" @@ -1407,7 +1407,7 @@ from various services and pipes them into a video playing application.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1zwzfgxrcbwkxnkiwv0a1rzxdnnaly90yyarl9wdw84nx11ffbnx")))) + "10m3ry0b2pvqx3bk34qh5dq337nn8pkc2gzfyhsj4nv9abskln47")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no tests diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index 4633b5159e..bf1ed325c5 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -716,7 +716,7 @@ within a single process.") (define-public xcape (package (name "xcape") - (version "1.1") + (version "1.2") (source (origin (method url-fetch) @@ -725,7 +725,7 @@ within a single process.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0jkdiaxc6sryrbibdgi2y1c48n4l9xyazhxr16l6h4ibddx95bk9")))) + "0898zc3vwxia00h9kfknpf7jygxgwggrx8v5mxc31w4lzn2dhzm2")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no check target @@ -1027,7 +1027,7 @@ actions, a built-in clock, a battery monitor and a system tray.") (define-public xcb-util-xrm (package (name "xcb-util-xrm") - (version "1.0") + (version "1.2") (source (origin (method url-fetch) (uri (string-append @@ -1035,7 +1035,7 @@ actions, a built-in clock, a battery monitor and a system tray.") "/download/v" version "/xcb-util-xrm-" version ".tar.bz2")) (sha256 (base32 - "1h5vxwpd37dqfw9yj1l4zd9c5dj30r3g0szgysr6kd7xrqgaq04l")) + "0vbqhag51i0njc8d5fc8c6aa12496cwrc3s6s7sa5kfc17cwhppp")) (modules '((guix build utils))) (snippet ;; Drop bundled m4. diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index 5fef0178b1..7911e33a14 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -3436,7 +3436,7 @@ X server.") (define-public xf86-video-vmware (package (name "xf86-video-vmware") - (version "13.1.0") + (version "13.2.1") (source (origin (method url-fetch) @@ -3446,14 +3446,16 @@ X server.") ".tar.bz2")) (sha256 (base32 - "1k50whwnkzxam2ihc1sw456dx0pvr76naycm4qhyjxqv9d72879w")))) + "0azn3g0vcki47n5jddagk2rmbwdvp845k8p7d2r56zxs3w8ggxz2")))) (build-system gnu-build-system) - (inputs `(("libx11" ,libx11) - ("libxext" ,libxext) - ("mesa" ,mesa) ; for xatracker - ("xorg-server" ,xorg-server))) + (inputs + `(("libx11" ,libx11) + ("libxext" ,libxext) + ("mesa" ,mesa) ; for xatracker + ("xorg-server" ,xorg-server))) (native-inputs - `(("pkg-config" ,pkg-config))) + `(("eudev" ,eudev) + ("pkg-config" ,pkg-config))) (home-page "https://www.x.org/wiki/") (synopsis "VMware SVGA video driver for X server") (description diff --git a/gnu/services/sddm.scm b/gnu/services/sddm.scm index 5bb58bd6f0..2ebfe22016 100644 --- a/gnu/services/sddm.scm +++ b/gnu/services/sddm.scm @@ -220,7 +220,7 @@ Relogin=" (if (sddm-configuration-relogin? config) (name "sddm-greeter") (auth (list - ;; Load environment form /etc/environment and ~/.pam_environment + ;; Load environment from /etc/environment and ~/.pam_environment (pam-entry (control "required") (module "pam_env.so")) diff --git a/guix/import/github.scm b/guix/import/github.scm index 0843ddeefd..01452b12e3 100644 --- a/guix/import/github.scm +++ b/guix/import/github.scm @@ -23,23 +23,12 @@ #:use-module (guix utils) #:use-module ((guix download) #:prefix download:) #:use-module (guix import utils) + #:use-module (guix import json) #:use-module (guix packages) #:use-module (guix upstream) #:use-module (web uri) #:export (%github-updater)) -(define (json-fetch* url) - "Return a list/hash representation of the JSON resource URL, or #f on -failure." - (call-with-output-file "/dev/null" - (lambda (null) - (with-error-to-port null - (lambda () - (call-with-temporary-output-file - (lambda (temp port) - (and (url-fetch url temp) - (call-with-input-file temp json->scm))))))))) - (define (find-extension url) "Return the extension of the archive e.g. '.tar.gz' given a URL, or false if none is recognized" @@ -136,7 +125,7 @@ the package e.g. 'bedtools2'. Return #f if there is no releases" "https://api.github.com/repos/" (github-user-slash-repository url) "/releases")) - (json (json-fetch* + (json (json-fetch (if token (string-append api-url "?access_token=" token) api-url)))) diff --git a/guix/import/pypi.scm b/guix/import/pypi.scm index 9794ff9757..7cce0fc594 100644 --- a/guix/import/pypi.scm +++ b/guix/import/pypi.scm @@ -303,7 +303,8 @@ VERSION, SOURCE-URL, HOME-PAGE, SYNOPSIS, DESCRIPTION, and LICENSE." "Return true if PACKAGE is a Python package from PyPI." (define (pypi-url? url) - (string-prefix? "https://pypi.python.org/" url)) + (or (string-prefix? "https://pypi.python.org/" url) + (string-prefix? "https://pypi.io/packages" url))) (let ((source-url (and=> (package-source package) origin-uri)) (fetch-method (and=> (package-source package) origin-method))) diff --git a/guix/scripts/environment.scm b/guix/scripts/environment.scm index 7201d98fea..1d3be6a84f 100644 --- a/guix/scripts/environment.scm +++ b/guix/scripts/environment.scm @@ -155,6 +155,9 @@ COMMAND or an interactive shell in that environment.\n")) (display (_ " -s, --system=SYSTEM attempt to build for SYSTEM--e.g., \"i686-linux\"")) (display (_ " + -r, --root=FILE make FILE a symlink to the result, and register it + as a garbage collector root")) + (display (_ " -C, --container run command within an isolated container")) (display (_ " -N, --network allow containers to access the network")) @@ -247,6 +250,9 @@ COMMAND or an interactive shell in that environment.\n")) (alist-cons 'file-system-mapping (specification->file-system-mapping arg #f) result))) + (option '(#\r "root") #t #f + (lambda (opt name arg result) + (alist-cons 'gc-root arg result))) (option '("bootstrap") #f #f (lambda (opt name arg result) (alist-cons 'bootstrap? #t result))) @@ -523,7 +529,26 @@ message if any test fails." (report-error (_ "cannot create container: /proc/self/setgroups does not exist\n")) (leave (_ "is your kernel version < 3.19?\n")))) -;; Entry point. +(define (register-gc-root target root) + "Make ROOT an indirect root to TARGET. This is procedure is idempotent." + (let* ((root (string-append (canonicalize-path (dirname root)) + "/" root))) + (catch 'system-error + (lambda () + (symlink target root) + ((store-lift add-indirect-root) root)) + (lambda args + (if (and (= EEXIST (system-error-errno args)) + (equal? (false-if-exception (readlink root)) target)) + (with-monad %store-monad + (return #t)) + (apply throw args)))))) + + +;;; +;;; Entry point. +;;; + (define (guix-environment . args) (with-error-handling (let* ((opts (parse-args args)) @@ -579,7 +604,9 @@ message if any test fails." system)) (prof-drv (inputs->profile-derivation inputs system bootstrap?)) - (profile -> (derivation->output-path prof-drv))) + (profile -> (derivation->output-path prof-drv)) + (gc-root -> (assoc-ref opts 'gc-root))) + ;; First build the inputs. This is necessary even for ;; --search-paths. Additionally, we might need to build bash for ;; a container. @@ -588,6 +615,9 @@ message if any test fails." (list prof-drv bash) (list prof-drv)) opts) + (mwhen gc-root + (register-gc-root profile gc-root)) + (cond ((assoc-ref opts 'dry-run?) (return #t)) diff --git a/tests/guix-environment.sh b/tests/guix-environment.sh index 68343520b0..2b3bbfe036 100644 --- a/tests/guix-environment.sh +++ b/tests/guix-environment.sh @@ -25,7 +25,8 @@ set -e guix environment --version tmpdir="t-guix-environment-$$" -trap 'rm -r "$tmpdir"' EXIT +gcroot="t-guix-environment-gc-root-$$" +trap 'rm -r "$tmpdir"; rm -f "$gcroot"' EXIT mkdir "$tmpdir" @@ -61,6 +62,20 @@ fi guix environment --bootstrap --ad-hoc guile-bootstrap --pure \ -- "$SHELL" -c 'test -f "$GUIX_ENVIRONMENT/bin/guile"' +# Make sure '-r' works as expected. +rm -f "$gcroot" +expected="`guix environment --bootstrap --ad-hoc guile-bootstrap \ + -- "$SHELL" -c 'echo $GUIX_ENVIRONMENT'`" +guix environment --bootstrap -r "$gcroot" --ad-hoc guile-bootstrap \ + -- guile -c 1 +test `readlink "$gcroot"` = "$expected" + +# Make sure '-r' is idempotent. +guix environment --bootstrap -r "$gcroot" --ad-hoc guile-bootstrap \ + -- guile -c 1 +test `readlink "$gcroot"` = "$expected" + + case "`uname -m`" in x86_64) # On x86_64, we should be able to create a 32-bit environment. |