diff options
37 files changed, 624 insertions, 329 deletions
diff --git a/gnu/local.mk b/gnu/local.mk index c26d0e47d8..297f19b54d 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -726,6 +726,7 @@ dist_patch_DATA = \ %D%/packages/patches/glog-gcc-5-demangling.patch \ %D%/packages/patches/gmp-arm-asm-nothumb.patch \ %D%/packages/patches/gmp-faulty-test.patch \ + %D%/packages/patches/gnome-todo-libical-compat.patch \ %D%/packages/patches/gnome-tweak-tool-search-paths.patch \ %D%/packages/patches/gnucash-price-quotes-perl.patch \ %D%/packages/patches/gnutls-skip-trust-store-test.patch \ @@ -752,7 +753,6 @@ dist_patch_DATA = \ %D%/packages/patches/gtk2-respect-GUIX_GTK2_PATH.patch \ %D%/packages/patches/gtk2-respect-GUIX_GTK2_IM_MODULE_FILE.patch \ %D%/packages/patches/gtk2-theme-paths.patch \ - %D%/packages/patches/gtk2-fix-failing-test.patch \ %D%/packages/patches/gtk3-respect-GUIX_GTK3_PATH.patch \ %D%/packages/patches/gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch \ %D%/packages/patches/gtkglext-disable-disable-deprecated.patch \ @@ -792,6 +792,7 @@ dist_patch_DATA = \ %D%/packages/patches/java-xerces-xjavac_taskdef.patch \ %D%/packages/patches/jemalloc-arm-address-bits.patch \ %D%/packages/patches/jbig2dec-ignore-testtest.patch \ + %D%/packages/patches/json-glib-fix-tests-32bit.patch \ %D%/packages/patches/jq-CVE-2015-8863.patch \ %D%/packages/patches/kdbusaddons-kinit-file-name.patch \ %D%/packages/patches/khmer-use-libraries.patch \ diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index e91f7d43ef..07ae4b70ae 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -1091,7 +1091,7 @@ command.") (define-public tzdata (package (name "tzdata") - (version "2017c") + (version "2018c") (source (origin (method url-fetch) (uri (string-append @@ -1099,7 +1099,7 @@ command.") version ".tar.gz")) (sha256 (base32 - "02yrrfj0p7ar885ja41ylijzbr8wc6kz6kzlw8c670i9m693ym6n")))) + "1xik57rdi7kqa0wb5jbz7vyjyxpr88lw1g4kscj0ylpgnzjc6998")))) (build-system gnu-build-system) (arguments '(#:tests? #f @@ -1107,10 +1107,8 @@ command.") (tmp (getenv "TMPDIR"))) (list (string-append "TOPDIR=" out) (string-append "TZDIR=" out "/share/zoneinfo") - - ;; Discard zic, dump, and tzselect, already - ;; provided by glibc. - (string-append "ETCDIR=" tmp "/etc") + (string-append "TZDEFAULT=" out + "/share/zoneinfo/localtime") ;; Likewise for the C library routines. (string-append "LIBDIR=" tmp "/lib") @@ -1131,6 +1129,9 @@ command.") (lambda* (#:key outputs #:allow-other-keys) ;; Move data in the right place. (let ((out (assoc-ref outputs "out"))) + ;; Discard zic, dump, and tzselect, already + ;; provided by glibc. + (delete-file-recursively (string-append out "/usr")) (symlink (string-append out "/share/zoneinfo") (string-append out "/share/zoneinfo/posix")) (delete-file-recursively @@ -1147,7 +1148,7 @@ command.") version ".tar.gz")) (sha256 (base32 - "1dvrq0b2hz7cjqdyd7x21wpy4qcng3rvysr61ij0c2g64fyb9s41")))))) + "0rg6s1vlgwd8sjhla55hx2h5m2xbx0shm347pkbg4vsaz707zyii")))))) (home-page "https://www.iana.org/time-zones") (synopsis "Database of current and historical time zones") (description "The Time Zone Database (often called tz or zoneinfo) @@ -1173,6 +1174,45 @@ and daylight-saving rules.") (sha256 (base32 "02yrrfj0p7ar885ja41ylijzbr8wc6kz6kzlw8c670i9m693ym6n")))) + (arguments + '(#:tests? #f + #:make-flags (let ((out (assoc-ref %outputs "out")) + (tmp (getenv "TMPDIR"))) + (list (string-append "TOPDIR=" out) + (string-append "TZDIR=" out "/share/zoneinfo") + + ;; Discard zic, dump, and tzselect, already + ;; provided by glibc. + (string-append "ETCDIR=" tmp "/etc") + + ;; Likewise for the C library routines. + (string-append "LIBDIR=" tmp "/lib") + (string-append "MANDIR=" tmp "/man") + + "AWK=awk" + "CC=gcc")) + #:modules ((guix build utils) + (guix build gnu-build-system) + (srfi srfi-1)) + #:phases + (modify-phases %standard-phases + (replace 'unpack + (lambda* (#:key source inputs #:allow-other-keys) + (and (zero? (system* "tar" "xvf" source)) + (zero? (system* "tar" "xvf" (assoc-ref inputs "tzcode")))))) + (add-after 'install 'post-install + (lambda* (#:key outputs #:allow-other-keys) + ;; Move data in the right place. + (let ((out (assoc-ref outputs "out"))) + (symlink (string-append out "/share/zoneinfo") + (string-append out "/share/zoneinfo/posix")) + (delete-file-recursively + (string-append out "/share/zoneinfo-posix")) + (copy-recursively (string-append out "/share/zoneinfo-leaps") + (string-append out "/share/zoneinfo/right")) + (delete-file-recursively + (string-append out "/share/zoneinfo-leaps"))))) + (delete 'configure)))) (inputs `(("tzcode" ,(origin (method url-fetch) (uri (string-append @@ -1182,7 +1222,6 @@ and daylight-saving rules.") (base32 "1dvrq0b2hz7cjqdyd7x21wpy4qcng3rvysr61ij0c2g64fyb9s41"))))))))) - (define-public libiconv (package (name "libiconv") diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index d6c7c05dd5..73765dafe7 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -10880,8 +10880,8 @@ memory usage and processing time is minimized.") (license license:expat))) (define-public r-dropbead - (let ((commit "cf0be5ae5302684bd03e78ab65b142900bbbb840") - (revision "1")) + (let ((commit "d746c6f3b32110428ea56d6a0001ce52a251c247") + (revision "2")) (package (name "r-dropbead") (version (string-append "0-" revision "." (string-take commit 7))) @@ -10894,7 +10894,7 @@ memory usage and processing time is minimized.") (file-name (git-file-name name version)) (sha256 (base32 - "1b2lphsc236s1rdzlijxg8yl1jnqpwcvj4x938r89rqpj93jb780")))) + "0sbzma49aiiyw8b0jpr7fnhzys9nsqmp4hy4hdz1gzyg1lhnca26")))) (build-system r-build-system) (propagated-inputs `(("r-ggplot2" ,r-ggplot2) diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-tools.scm index 2abb44fdb8..6a759f2b71 100644 --- a/gnu/packages/build-tools.scm +++ b/gnu/packages/build-tools.scm @@ -71,7 +71,7 @@ makes a few sacrifices to acquire fast full and incremental build times.") (define-public meson (package (name "meson") - (version "0.44.0") + (version "0.45.0") (source (origin (method url-fetch) (uri (string-append "https://github.com/mesonbuild/meson/" @@ -79,8 +79,17 @@ makes a few sacrifices to acquire fast full and incremental build times.") version ".tar.gz")) (sha256 (base32 - "06r8limj38mv884s5riiz6lpzw37cvhbf9jd0smzcbi7fwmv3yah")))) + "1r3wlimllakrswx2rb4mbdk1iricqk6myvdvib6dkyx362yanm9l")))) (build-system python-build-system) + (arguments + `(;; FIXME: Tests require many additional inputs, a fix for the RUNPATH + ;; patch in meson-for-build, and patching many hard-coded file system + ;; locations in "run_unittests.py". + #:tests? #f + #:phases (modify-phases %standard-phases + ;; Meson calls the various executables in out/bin through the + ;; Python interpreter, so we cannot use the shell wrapper. + (delete 'wrap)))) (inputs `(("ninja", ninja))) (propagated-inputs `(("python" ,python))) (home-page "https://mesonbuild.com/") @@ -98,15 +107,8 @@ resembles Python.") (package (inherit meson) (name "meson-for-build") - (version "0.42.1") (source (origin - (method url-fetch) - (uri (string-append "https://github.com/mesonbuild/meson/" - "archive/" version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "1494hdnd40g2v6pky34j0f2iwc6kwn51vck37qwz7nl2xr17b18q")) + (inherit (package-source meson)) (patches (search-patches "meson-for-build-rpath.patch")))) ;; People should probably install "meson", not "meson-for-build". diff --git a/gnu/packages/calendar.scm b/gnu/packages/calendar.scm index 44bf05a9bb..b2f6aec83d 100644 --- a/gnu/packages/calendar.scm +++ b/gnu/packages/calendar.scm @@ -35,16 +35,19 @@ #:use-module (gnu packages databases) #:use-module (gnu packages dav) #:use-module (gnu packages freedesktop) + #:use-module (gnu packages glib) #:use-module (gnu packages icu4c) #:use-module (gnu packages perl) + #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) #:use-module (gnu packages time) + #:use-module (gnu packages xml) #:use-module (srfi srfi-26)) (define-public libical (package (name "libical") - (version "2.0.0") + (version "3.0.3") (source (origin (method url-fetch) (uri (string-append @@ -52,15 +55,18 @@ version "/libical-" version ".tar.gz")) (sha256 (base32 - "1njn2kr0rrjqv5g3hdhpdzrhankyj4fl1bgn76z3g4n1b7vi2k35")))) + "0hcjyf35b8rrvy8xziqxc4imi28mmkixb09gknisvp6jsa5fp4av")))) (build-system cmake-build-system) (arguments '(#:tests? #f ; test suite appears broken + #:configure-flags '("-DSHARED_ONLY=true") #:phases (modify-phases %standard-phases (add-before 'configure 'patch-paths - (lambda _ - (let ((tzdata (assoc-ref %build-inputs "tzdata"))) + (lambda* (#:key inputs #:allow-other-keys) + ;; FIXME: This should be patched to use TZDIR so we can drop + ;; the tzdata dependency. + (let ((tzdata (assoc-ref inputs "tzdata"))) (substitute* "src/libical/icaltz-util.c" (("\\\"/usr/share/zoneinfo\\\",") (string-append "\"" tzdata "/share/zoneinfo\"")) @@ -69,16 +75,22 @@ (("\\\"/usr/share/lib/zoneinfo\\\"") ""))) #t))))) (native-inputs - `(("perl" ,perl))) + `(("perl" ,perl) + ("pkg-config" ,pkg-config))) (inputs - `(("icu4c" ,icu4c) + `(("glib" ,glib) + ("libxml2" ,libxml2) ("tzdata" ,tzdata))) + (propagated-inputs + ;; In Requires.private of libical.pc. + `(("icu4c" ,icu4c))) (home-page "https://libical.github.io/libical/") (synopsis "iCalendar protocols and data formats implementation") (description "Libical is an implementation of the iCalendar protocols and protocol data units.") - (license license:lgpl2.1))) + ;; Can be used with either license. See COPYING. + (license (list license:lgpl2.1 license:mpl2.0)))) (define-public khal (package diff --git a/gnu/packages/certs.scm b/gnu/packages/certs.scm index 0f2f2d25ba..3cbf9202f9 100644 --- a/gnu/packages/certs.scm +++ b/gnu/packages/certs.scm @@ -75,7 +75,7 @@ (define-public nss-certs (package (name "nss-certs") - (version "3.35") + (version "3.36") (source (origin (method url-fetch) (uri (let ((version-with-underscores @@ -86,7 +86,7 @@ "nss-" version ".tar.gz"))) (sha256 (base32 - "1ypn68z9ncbbshi3184ywrhx5i846lyd72gps1grzqzdkgh7s4pl")))) + "1580qc0a4s8v3k3vg7zz4xly4alkjrw7qq9zy2nf6p4v56wcfg53")))) (build-system gnu-build-system) (outputs '("out")) (native-inputs @@ -102,8 +102,10 @@ (srfi srfi-26) (ice-9 regex)) #:phases - (alist-cons-after - 'unpack 'install + (modify-phases + (map (cut assq <> %standard-phases) + '(set-paths install-locale unpack)) + (add-after 'unpack 'install (lambda _ (let ((certsdir (string-append %output "/etc/ssl/certs/")) (trusted-rx (make-regexp "^# openssl-trust=[a-zA-Z]" @@ -131,10 +133,9 @@ ;; "Usage error; try -help." ;; This looks like a bug in openssl-1.0.2, but we can also ;; switch into the target directory. - (system* "c_rehash" ".")))) + (invoke "c_rehash" ".")) + #t)))))) - (map (cut assq <> %standard-phases) - '(set-paths install-locale unpack))))) (synopsis "CA certificates from Mozilla") (description "This package provides certificates for Certification Authorities (CA) diff --git a/gnu/packages/flashing-tools.scm b/gnu/packages/flashing-tools.scm index 5309510d40..192f84c36c 100644 --- a/gnu/packages/flashing-tools.scm +++ b/gnu/packages/flashing-tools.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2014 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014 Manolis Fragkiskos Ragkousis <manolis837@gmail.com> ;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com> -;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2016, 2018 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2017 Jonathan Brielmaier <jonathan.brielmaier@web.de> ;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu> @@ -402,7 +402,10 @@ dump Intel Firmware Descriptor data of an image file.") Management Engine (ME). You need to @code{sudo rmmod mei_me} and @code{sudo rmmod mei} before using this tool. Also pass @code{iomem=relaxed} to the Linux kernel command line.") - (license license:gpl2))) + (license license:gpl2) + + ;; This is obviously an Intel thing, plus it requires <cpuid.h>. + (supported-systems '("x86_64-linux" "i686-linux")))) (define-public me-cleaner (package @@ -420,7 +423,7 @@ Management Engine (ME). You need to @code{sudo rmmod mei_me} and (arguments `(#:phases (modify-phases %standard-phases - (add-after 'unpack 'create-setup.py + (add-after 'unpack 'create-setup.py (lambda _ (call-with-output-file "setup.py" (lambda (port) @@ -433,4 +436,7 @@ setup(name='me_cleaner', version='~a', scripts=['me_cleaner.py']) (synopsis "Intel ME cleaner") (description "This package provides tools for disabling Intel ME as far as possible (it only edits ME firmware image files).") - (license license:gpl3+))) + (license license:gpl3+) + + ;; This is an Intel thing. + (supported-systems '("x86_64-linux" "i686-linux")))) diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index 3c83e668b0..a323778cab 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -8,7 +8,7 @@ ;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Kei Kebreau <kkebreau@posteo.net> ;;; Copyright © 2017 Mark H Weaver <mhw@netris.org> -;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com> +;;; Copyright © 2017, 2018 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com> ;;; Copyright © 2017 Brendan Tildesley <brendan.tildesley@openmailbox.org> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> @@ -30,10 +30,12 @@ (define-module (gnu packages freedesktop) #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix utils) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix build-system gnu) + #:use-module (guix build-system meson) #:use-module (guix build-system perl) #:use-module (guix build-system python) #:use-module (gnu packages acl) @@ -68,11 +70,13 @@ #:use-module (gnu packages perl) #:use-module (gnu packages perl-check) #:use-module (gnu packages python) + #:use-module (gnu packages valgrind) #:use-module (gnu packages w3m) #:use-module (gnu packages web) #:use-module (gnu packages xml) #:use-module (gnu packages xdisorg) - #:use-module (gnu packages xorg)) + #:use-module (gnu packages xorg) + #:use-module (srfi srfi-1)) (define-public xdg-utils (package @@ -142,26 +146,31 @@ freedesktop.org project.") (define-public libinput (package (name "libinput") - (version "1.7.3") + (version "1.10.2") (source (origin (method url-fetch) (uri (string-append "https://freedesktop.org/software/libinput/" name "-" version ".tar.xz")) (sha256 (base32 - "07fbzxddvhjcch43hdxb24sj7ri96zzpcjalvsicmw0i4wnn2v89")))) - (build-system gnu-build-system) + "1fbv354ii1g4wc4k7d7gbnalqjpzmk9zlpi8linqrzlf6inpc28m")))) + (build-system meson-build-system) + (arguments + `(#:configure-flags '("-Ddocumentation=false"))) (native-inputs - `(("cairo" ,cairo) - ("gtk+" ,gtk+) - ("pkg-config" ,pkg-config))) + `(("check" ,check) + ("pkg-config" ,pkg-config) + ("valgrind" ,valgrind))) (propagated-inputs - `(("libudev" ,eudev))) ; required by libinput.pc - (inputs - `(("glib" ,glib) + `(;; In Requires.private of libinput.pc. ("libevdev" ,libevdev) - ("mtdev" ,mtdev) - ("libwacom" ,libwacom))) + ("libudev" ,eudev) + ("libwacom" ,libwacom) + ("mtdev" ,mtdev))) + (inputs + `(("cairo" ,cairo) + ("glib" ,glib) + ("gtk+" ,gtk+))) (home-page "https://www.freedesktop.org/wiki/Software/libinput/") (synopsis "Input devices handling library") (description @@ -172,14 +181,15 @@ other applications that need to directly deal with input devices.") (define-public libinput-minimal (package (inherit libinput) (name "libinput-minimal") - (native-inputs - `(("pkg-config" ,pkg-config))) - (inputs - `(("libevdev" ,libevdev) - ("mtdev" ,mtdev))) + (inputs '()) + (propagated-inputs + (alist-delete "libwacom" (package-propagated-inputs libinput))) (arguments - `(#:configure-flags - '("--disable-libwacom"))))) + (substitute-keyword-arguments (package-arguments libinput) + ((#:configure-flags flags ''()) + `(cons* "-Dlibwacom=false" + "-Ddebug-gui=false" ;requires gtk+@3 + ,flags)))))) (define-public libxdg-basedir (package diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm index 0e416a9efd..2a674a9fb7 100644 --- a/gnu/packages/gl.scm +++ b/gnu/packages/gl.scm @@ -8,7 +8,7 @@ ;;; Copyright © 2016 David Thompson <davet@gnu.org> ;;; Copyright © 2017, 2018 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net> -;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com> +;;; Copyright © 2017, 2018 Rutger Helling <rhelling@mykolab.com> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. @@ -222,7 +222,7 @@ also known as DXTn or DXTC) for Mesa.") (define-public mesa (package (name "mesa") - (version "17.3.1") + (version "17.3.6") (source (origin (method url-fetch) @@ -234,7 +234,7 @@ also known as DXTn or DXTC) for Mesa.") version "/mesa-" version ".tar.xz"))) (sha256 (base32 - "1h94m2nkxa1y4n415d5idk2x2lkgbvjcikv6r2r6yn4ak7h0grls")) + "1y7vawz2sbpzdqk4b60w8kfrxb2rfkdjkifyxxfx1jaasj05d4g5")) (patches (search-patches "mesa-wayland-egl-symbols-check-mips.patch" "mesa-skip-disk-cache-test.patch")))) @@ -556,7 +556,7 @@ OpenGL graphics API.") (define-public libepoxy (package (name "libepoxy") - (version "1.4.1") + (version "1.5.0") (source (origin (method url-fetch) (uri (string-append @@ -564,7 +564,7 @@ OpenGL graphics API.") version "/libepoxy-" version ".tar.xz")) (sha256 (base32 - "19hsyap2p0sflj75ycf4af9bsp453bamymbcgnmrphigabsspil8")))) + "1md58amxyp34yjnw4xa185hw5jm0hnb2xnhdc28zdsx6k19rk52c")))) (arguments `(#:phases (modify-phases %standard-phases @@ -575,10 +575,6 @@ OpenGL graphics API.") (mesa (assoc-ref inputs "mesa"))) (substitute* "src/gen_dispatch.py" (("/usr/bin/env python") python)) - ;; Add support for aarch64, see upstream: - ;; https://github.com/anholt/libepoxy/pull/114 - (substitute* "test/dlwrap.c" - (("GLIBC_2.4") "GLIBC_2.17\", \"GLIBC_2.4")) (substitute* (find-files "." "\\.[ch]$") (("libGL.so.1") (string-append mesa "/lib/libGL.so.1")) (("libEGL.so.1") (string-append mesa "/lib/libEGL.so.1"))) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 2384bf2381..60a7925ee5 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -1157,7 +1157,7 @@ XML/CSS rendering engine.") (define-public libgsf (package (name "libgsf") - (version "1.14.41") + (version "1.14.42") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -1165,7 +1165,7 @@ XML/CSS rendering engine.") name "-" version ".tar.xz")) (sha256 (base32 - "1lq87wnrsjbjafpk3c8xwd56gqx319fhck9xkg2da88hd9c9h2qm")))) + "1hhdz0ymda26q6bl5ygickkgrh998lxqq4z9i8dzpcvqna3zpzr9")))) (build-system gnu-build-system) (native-inputs `(("intltool" ,intltool) @@ -2265,18 +2265,20 @@ configuration storage systems.") (define-public json-glib (package (name "json-glib") - (version "1.2.8") + (version "1.4.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" (version-major+minor version) "/" name "-" version ".tar.xz")) + (patches (search-patches "json-glib-fix-tests-32bit.patch")) (sha256 (base32 - "02pl0wl3mf47c038bgv2r4pa6pr6y3shjhxn1l7s3rrrgl1sjmgx")))) - (build-system gnu-build-system) + "1j3dd2xj1l9fi12m1gpmfgf5p4c1w0i970m6k62k3is98yj0jxrd")))) + (build-system meson-build-system) (native-inputs - `(("glib" ,glib "bin") ;for glib-mkenums and glib-genmarshal + `(("gettext" ,gettext-minimal) + ("glib" ,glib "bin") ;for glib-mkenums and glib-genmarshal ("gobject-introspection" ,gobject-introspection) ("pkg-config" ,pkg-config))) (propagated-inputs @@ -4873,7 +4875,7 @@ Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.") (define-public evolution-data-server (package (name "evolution-data-server") - (version "3.24.3") + (version "3.26.6") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -4881,27 +4883,44 @@ Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.") name "-" version ".tar.xz")) (sha256 (base32 - "1jj1q81bl3r0c8rnsfqi83igqlprzdcjim1fvygbyfy7b8gigqqk")))) + "1v0hwlrlm23bz5dmamdavm771f4gs64fyq82argrc0nwgn2a2fp4")))) (build-system cmake-build-system) (arguments '(;; XXX FIXME: 11/85 tests are failing. #:tests? #f #:configure-flags - (list "-DENABLE_UOA=OFF" ;disable Ubuntu Online Accounts support - "-DENABLE_GOOGLE=OFF" ;disable Google Contacts support - "-DENABLE_GOOGLE_AUTH=OFF" ;disable Google authentication - "-DENABLE_VALA_BINDINGS=ON" - ;; FIXME: Building against ICU 60 requires C++11 or higher. Remove - ;; this when our default compiler is >= GCC6. - "-DCMAKE_CXX_FLAGS=-std=gnu++11" - "-DENABLE_INTROSPECTION=ON") ;required for Vala bindings + (let* ((lib (string-append (assoc-ref %outputs "out") + "/lib")) + (runpaths (map (lambda (s) (string-append + lib "/evolution-data-server/" s)) + '("addressbook-backends" "calendar-backends" + "camel-providers" "credential-modules" + "registry-modules")))) + (list "-DENABLE_UOA=OFF" ;disable Ubuntu Online Accounts support + "-DENABLE_GOOGLE=OFF" ;disable Google Contacts support + "-DENABLE_GOOGLE_AUTH=OFF" ;disable Google authentication + "-DENABLE_VALA_BINDINGS=ON" + ;; FIXME: Building against ICU 60 requires C++11 or higher. Remove + ;; this when our default compiler is >= GCC6. + "-DCMAKE_CXX_FLAGS=-std=gnu++11" + (string-append "-DCMAKE_INSTALL_RPATH=" lib ";" + (string-append lib "/evolution-data-server;") + (string-join runpaths ";")) + "-DENABLE_INTROSPECTION=ON")) ;required for Vala bindings #:phases (modify-phases %standard-phases (add-after 'unpack 'patch-paths (lambda _ (substitute* "tests/test-server-utils/e-test-server-utils.c" (("/bin/rm") (which "rm"))) - #t))))) + #t)) + (add-before 'configure 'dont-override-rpath + (lambda _ + (substitute* "CMakeLists.txt" + ;; CMakeLists.txt hard-codes runpath to just the libdir. + ;; Remove it so the configure flag is respected. + (("SET\\(CMAKE_INSTALL_RPATH .*") "")) + #t))))) (native-inputs `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc. ("gobject-introspection" ,gobject-introspection) @@ -6148,7 +6167,7 @@ desktop. It supports world clock, stop watch, alarms, and count down timer.") (define-public gnome-calendar (package (name "gnome-calendar") - (version "3.26.2") + (version "3.26.3") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -6156,7 +6175,7 @@ desktop. It supports world clock, stop watch, alarms, and count down timer.") name "-" version ".tar.xz")) (sha256 (base32 - "03n51mvlc0vabr1rx9577z927icl3mrxrrv8zckfjav6p4vwg8hr")))) + "1clnfvvsaqw9vpxrs6qrxzmgpaw9x2nkjik2x2vwvm07pdvhddxn")))) (build-system meson-build-system) (arguments '(#:glib-or-gtk? #t @@ -6188,6 +6207,7 @@ desktop. It supports multiple calendars, month, week and year view.") (uri (string-append "mirror://gnome/sources/" name "/" (version-major+minor version) "/" name "-" version ".tar.xz")) + (patches (search-patches "gnome-todo-libical-compat.patch")) (sha256 (base32 "106xx1w18pxjmj5k0k2qjzi6b3c3kaz7b5kyrpknykibnr401ff9")))) diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index 457a8fbcdc..c9c96c4746 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -7,7 +7,7 @@ ;;; Copyright © 2016 Alex Griffin <a@ajgrf.com> ;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2017 ng0 <ng0@infotropique.org> -;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -250,7 +250,7 @@ in C/C++.") (define-public nspr (package (name "nspr") - (version "4.17") + (version "4.19") (source (origin (method url-fetch) (uri (string-append @@ -258,7 +258,7 @@ in C/C++.") version "/src/nspr-" version ".tar.gz")) (sha256 (base32 - "158hdn285dsb5rys8wl1wi32dd1axwhqq0r8fwny4aj157m0l2jr")))) + "0agpv3f17h8kmzi0ifibaaxc1k3xc0q61wqw3l6r2xr2z8bmkn9f")))) (build-system gnu-build-system) (native-inputs `(("perl" ,perl))) @@ -268,6 +268,10 @@ in C/C++.") (string-append "LDFLAGS=-Wl,-rpath=" (assoc-ref %outputs "out") "/lib")) + ;; Use fixed timestamps for reproducibility. + #:make-flags '("SH_DATE='1970-01-01 00:00:01'" + ;; This is epoch 1 in microseconds. + "SH_NOW=100000") #:phases (modify-phases %standard-phases (add-before 'configure 'chdir (lambda _ (chdir "nspr") #t))))) @@ -282,7 +286,7 @@ in the Mozilla clients.") (define-public nss (package (name "nss") - (version "3.34.1") + (version "3.36") (source (origin (method url-fetch) (uri (let ((version-with-underscores @@ -293,7 +297,7 @@ in the Mozilla clients.") "nss-" version ".tar.gz"))) (sha256 (base32 - "186x33wsk4mzjz7dzbn8p0py9a0nzkgzpfkdv4rlyy5gghv5vhd3")) + "1580qc0a4s8v3k3vg7zz4xly4alkjrw7qq9zy2nf6p4v56wcfg53")) ;; Create nss.pc and nss-config. (patches (search-patches "nss-pkgconfig.patch" "nss-increase-test-timeout.patch")))) diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index a96cb96470..f1c3d3d010 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -593,7 +593,7 @@ is part of the GNOME accessibility project.") (define-public gtk+-2 (package (name "gtk+") - (version "2.24.31") + (version "2.24.32") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -601,11 +601,10 @@ is part of the GNOME accessibility project.") name "-" version ".tar.xz")) (sha256 (base32 - "0n26jm09n03nqbd00d2ij63xrby3vik56sk5yj6w1vy768kr5hb8")) + "0bjq7ja9gwcv6n5q4qkvdjjx40wsdiikksz1zqxvxsm5vlyskj5n")) (patches (search-patches "gtk2-respect-GUIX_GTK2_PATH.patch" "gtk2-respect-GUIX_GTK2_IM_MODULE_FILE.patch" - "gtk2-theme-paths.patch" - "gtk2-fix-failing-test.patch")))) + "gtk2-theme-paths.patch")))) (build-system gnu-build-system) (outputs '("out" "doc")) (propagated-inputs @@ -659,7 +658,7 @@ application suites.") (name "gtk+") ;; NOTE: When updating the version of 'gtk+', the hash of 'mate-themes' in ;; mate.scm will also need to be updated. - (version "3.22.26") + (version "3.22.28") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -667,7 +666,7 @@ application suites.") name "-" version ".tar.xz")) (sha256 (base32 - "0rxrsh6bcp13hihxxs8f0m9xwniby4lmfi7y5mp9fhg5439z1vk1")) + "07syy63d2q12b7mkbhqpirq270365fsql5l9qsrdgzlc04mn36fj")) (patches (search-patches "gtk3-respect-GUIX_GTK3_PATH.patch" "gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch")))) (outputs '("out" "bin" "doc")) diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index 5dc66c1625..91a440d928 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015, 2017 Christopher Allan Webber <cwebber@dustycloud.org> ;;; Copyright © 2016 Alex Sassmannshausen <alex@pompo.co> @@ -281,6 +281,21 @@ without requiring the source code to be rewritten.") ; when heavily loaded) (replacement #f))) +(define-public guile-2.2.2 + ;; Keep it so that, when 'guix' runs on 2.2.2, 'guix pull' compiles objects + ;; with 2.2.2, thereby avoiding the ABI incompatibility issues described in + ;; <https://bugs.gnu.org/29570>. + (package + (inherit guile-2.2) + (version "2.2.2") + (source (origin + (inherit (package-source guile-2.2)) + (uri (string-append "mirror://gnu/guile/guile-" version + ".tar.xz")) + (sha256 + (base32 + "1azm25zcmxif0skxfrp11d2wc89nrzpjaann9yxdw6pvjxhs948w")))))) + (define-public guile-next (deprecated-package "guile-next" guile-2.2)) diff --git a/gnu/packages/image-viewers.scm b/gnu/packages/image-viewers.scm index 7a33f6c871..cf612666f1 100644 --- a/gnu/packages/image-viewers.scm +++ b/gnu/packages/image-viewers.scm @@ -59,7 +59,7 @@ (define-public feh (package (name "feh") - (version "2.25") + (version "2.25.1") (home-page "https://feh.finalrewind.org/") (source (origin (method url-fetch) @@ -67,7 +67,7 @@ name "-" version ".tar.bz2")) (sha256 (base32 - "102rwi30n09l8rih6kv6bb7lhv3djklgzill4p2zag0h700yqfq6")))) + "197sm78bm33dvahr5nxqkbmpmdn4b13ahc9mrgn1l7n104bg4phc")))) (build-system gnu-build-system) (arguments '(#:phases (modify-phases %standard-phases (delete 'configure)) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index d4b9d0d0b9..c0c963ec55 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -960,7 +960,7 @@ intercept and print the system calls executed by the program.") (define-public alsa-lib (package (name "alsa-lib") - (version "1.1.4.1") + (version "1.1.5") (source (origin (method url-fetch) (uri (string-append @@ -968,7 +968,7 @@ intercept and print the system calls executed by the program.") version ".tar.bz2")) (sha256 (base32 - "0xjvi381105gldhv0z872a0x58sghznyx19j45lw5iyi2h68gfwi")))) + "1rhacnlj0grvfagjx5qzsnbhw7m7lyccghqs4jsv0dnsqv9qmxpl")))) (build-system gnu-build-system) (home-page "https://www.alsa-project.org/") (synopsis "The Advanced Linux Sound Architecture libraries") @@ -980,14 +980,14 @@ MIDI functionality to the Linux-based operating system.") (define-public alsa-utils (package (name "alsa-utils") - (version "1.1.4") + (version "1.1.5") (source (origin (method url-fetch) (uri (string-append "ftp://ftp.alsa-project.org/pub/utils/" name "-" version ".tar.bz2")) (sha256 (base32 - "17cxih9ibjp1193dyd79j50pyfa9dvrs6r9kpwrvzicjvr2110x7")))) + "1s727md6mb408y2cfwzjkx23abxhampyrjdkgpyygdhxx62x42rj")))) (build-system gnu-build-system) (arguments ;; XXX: Disable man page creation until we have DocBook. @@ -1027,14 +1027,14 @@ MIDI functionality to the Linux-based operating system.") (define-public alsa-plugins (package (name "alsa-plugins") - (version "1.1.4") + (version "1.1.5") (source (origin (method url-fetch) (uri (string-append "ftp://ftp.alsa-project.org/pub/plugins/" name "-" version ".tar.bz2")) (sha256 (base32 - "12hsvm6rpinjkg06pa9hzndkdrbfw6wk6yk00cm8y1gbv8xiq3ak")))) + "073zpgvj4pldmzqq97l40wngvbqnvrkc8yw153mgny9kypwaazbr")))) (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. @@ -2991,7 +2991,7 @@ Bluetooth audio output devices like headphones or loudspeakers.") (define-public bluez (package (name "bluez") - (version "5.47") + (version "5.49") (source (origin (method url-fetch) (uri (string-append @@ -2999,7 +2999,7 @@ Bluetooth audio output devices like headphones or loudspeakers.") version ".tar.xz")) (sha256 (base32 - "1j22hfjz0fp4pgclgz9mfcwjbr4wqgah3gd2qhfg4r6msmybyxfg")))) + "15ffsaz7l3fgdg03l7g1xx9jw7xgs6pc548zxqsxawsca5x1sc1k")))) (build-system gnu-build-system) (arguments `(#:configure-flags diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 65dfa92896..f47749b380 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -2609,7 +2609,9 @@ of tools for manipulating and accessing your music.") (("add_subdirectory\\(resources/music\\)") "")))))) (build-system cmake-build-system) (arguments - '(#:tests? #f)) ; no check target + '(#:tests? #f ; no check target + ;; This flag ensures that MilkyTracker links with the JACK library. + #:configure-flags '("-DCMAKE_CXX_FLAGS=-ljack"))) (inputs `(("alsa-lib" ,alsa-lib) ("jack" ,jack-1) diff --git a/gnu/packages/nano.scm b/gnu/packages/nano.scm index d6bef33695..07c7ed36cb 100644 --- a/gnu/packages/nano.scm +++ b/gnu/packages/nano.scm @@ -30,7 +30,7 @@ (define-public nano (package (name "nano") - (version "2.9.3") + (version "2.9.4") (source (origin (method url-fetch) @@ -38,7 +38,7 @@ version ".tar.xz")) (sha256 (base32 - "04j05nbnp8vjjwja90d83p4s6ywyl6qhggflcjzw0p9d9gyvr0vp")))) + "0nm3zy4azr5rkxjq7jfybbj3cnddmvxc49rxyqm9cp2zfdp75y9c")))) (build-system gnu-build-system) (inputs `(("gettext" ,gettext-minimal) diff --git a/gnu/packages/ninja.scm b/gnu/packages/ninja.scm index adb236484f..5a168a6ada 100644 --- a/gnu/packages/ninja.scm +++ b/gnu/packages/ninja.scm @@ -48,6 +48,8 @@ (lambda _ (substitute* "src/subprocess-posix.cc" (("/bin/sh") (which "sh"))) + (substitute* "src/subprocess_test.cc" + (("/bin/echo") (which "echo"))) #t)) (replace 'build (lambda _ diff --git a/gnu/packages/parallel.scm b/gnu/packages/parallel.scm index 17423856aa..c110fab086 100644 --- a/gnu/packages/parallel.scm +++ b/gnu/packages/parallel.scm @@ -94,7 +94,7 @@ and they are executed on lists of files, hosts, users or other items.") (define-public slurm (package (name "slurm") - (version "17.11.2") + (version "17.11.3") (source (origin (method url-fetch) (uri (string-append @@ -102,7 +102,7 @@ and they are executed on lists of files, hosts, users or other items.") version ".tar.bz2")) (sha256 (base32 - "18yakb8kmhb16n0cv3zhjv8ahvsk9p0max8mmr2flb2c65fawks6")) + "1x3i6z03d9m46fvj1cslrapm1drvgyqch9pn4xf23kvbz4gkhaps")) (modules '((guix build utils))) (snippet '(begin diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-utils.scm index 96a51f0dd4..46b6e795ab 100644 --- a/gnu/packages/password-utils.scm +++ b/gnu/packages/password-utils.scm @@ -92,7 +92,7 @@ human.") (define-public keepassxc (package (name "keepassxc") - (version "2.3.0") + (version "2.3.1") (source (origin (method url-fetch) @@ -101,7 +101,7 @@ human.") version "-src.tar.xz")) (sha256 (base32 - "1v6v59fnbbsssbwy4is6hh2l4qqwy3ddb6dp2jk8clx0xbd5hn7c")))) + "1gdrbpzwbs56anc3k5vklvcackcn214pc8gm5xh5zcymsi8q4zff")))) (build-system cmake-build-system) (arguments '(#:configure-flags '("-DWITH_XC_NETWORKING=YES" @@ -200,7 +200,7 @@ applications, there is xclip integration." ) (define-public yapet (package (name "yapet") - (version "1.0") + (version "1.1") (source (origin (method url-fetch) (uri (string-append "http://www.guengel.ch/myapps/yapet/downloads/yapet-" @@ -208,7 +208,7 @@ applications, there is xclip integration." ) ".tar.bz2")) (sha256 (base32 - "0ydbnqw6icdh07pnv2w6dhvq501bdfvrklv4xmyr8znca9d753if")))) + "1lq46mpxdsbl6qw4cj58hp9q7jckmyvbsi08p5zr77rjgqadxyyy")))) (build-system gnu-build-system) (inputs `(("ncurses" ,ncurses) diff --git a/gnu/packages/patches/gnome-todo-libical-compat.patch b/gnu/packages/patches/gnome-todo-libical-compat.patch new file mode 100644 index 0000000000..34f2e254b2 --- /dev/null +++ b/gnu/packages/patches/gnome-todo-libical-compat.patch @@ -0,0 +1,17 @@ +Fix compatibility with libical 3.0. + +Patch copied from Arch Linux: +https://git.archlinux.org/svntogit/packages.git/tree/trunk/gnome-todo-3.26.2-libical-3.0.patch?h=packages/gnome-todo + +diff -up gnome-todo-3.26.2/src/gtd-task.c.libical-3.0 gnome-todo-3.26.2/src/gtd-task.c +--- gnome-todo-3.26.2/src/gtd-task.c.libical-3.0 2017-11-08 14:53:53.484294926 +0100 ++++ gnome-todo-3.26.2/src/gtd-task.c 2017-11-08 14:53:57.208294874 +0100 +@@ -778,7 +778,7 @@ gtd_task_set_complete (GtdTask *task, + dt->minute = g_date_time_get_minute (now); + dt->second = g_date_time_get_seconds (now); + dt->is_date = 0; +- dt->is_utc = 1; ++ dt->zone = icaltimezone_get_utc_timezone (); + + /* convert timezone + * diff --git a/gnu/packages/patches/gtk2-fix-failing-test.patch b/gnu/packages/patches/gtk2-fix-failing-test.patch deleted file mode 100644 index 721dc012c7..0000000000 --- a/gnu/packages/patches/gtk2-fix-failing-test.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 12d8b4e8f2f9c9a7707d1d3fccba382732212e3c Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?G=C3=A1bor=20Boskovits?= <boskovits@gmail.com> -Date: Tue, 5 Dec 2017 20:06:36 +0100 -Subject: [PATCH] Fix test failing on new GLib versions. - -This test fails on newer GLib version, because GLib exports a new public marshaller. -The additional symbol making the test fail is: -g_cclosure_marshal_BOOLEAN__BOXED_BOXED - -The fix makes the test ignore non-gtk related abi. -This ensures if future marshallers are added to glib those will not pose a problem. - -The fix also ensures that the test still checks the gtk abi for identity, and -that the library provides a superset of the required abi. - -Upstream reponse to this problem was: - -GLib added a new marshaller in its public API -And the `abicheck.sh`in GTK+ 2.24 hasn't been updated because GTK+ 2.24 is in deep -maintenance mode and very few people test it against newer versions of GLib - ---- - gtk/abicheck.sh | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/gtk/abicheck.sh b/gtk/abicheck.sh -index 0d033fb..53b7bfe 100755 ---- a/gtk/abicheck.sh -+++ b/gtk/abicheck.sh -@@ -1,5 +1,5 @@ - #! /bin/sh - - cpp -DINCLUDE_VARIABLES -P -DG_OS_UNIX -DGTK_WINDOWING_X11 -DALL_FILES ${srcdir:-.}/gtk.symbols | sed -e '/^$/d' -e 's/ G_GNUC.*$//' -e 's/ PRIVATE//' | sort > expected-abi --nm -D -g --defined-only .libs/libgtk-x11-2.0.so | cut -d ' ' -f 3 | egrep -v '^(__bss_start|_edata|_end)' | sort > actual-abi -+nm -D -g --defined-only .libs/libgtk-x11-2.0.so | cut -d ' ' -f 3 | egrep -v '^(__bss_start|_edata|_end)' | egrep '^gtk_' | sort > actual-abi - diff -u expected-abi actual-abi && rm -f expected-abi actual-abi --- -2.15.0 - diff --git a/gnu/packages/patches/json-glib-fix-tests-32bit.patch b/gnu/packages/patches/json-glib-fix-tests-32bit.patch new file mode 100644 index 0000000000..77ea134915 --- /dev/null +++ b/gnu/packages/patches/json-glib-fix-tests-32bit.patch @@ -0,0 +1,174 @@ +Fix floating point issues on 32-bit platforms: + +https://gitlab.gnome.org/GNOME/json-glib/issues/27 + +This is an amalgamation of the following upstream commits: +https://gitlab.gnome.org/GNOME/json-glib/commit/70e2648e02232c1a439a7418388f18fee9afb3fe +https://gitlab.gnome.org/GNOME/json-glib/commit/675e27505776a1d77fa1ffd1974284890caec1f4 + +diff --git a/json-glib/tests/json-test-utils.h b/json-glib/tests/json-test-utils.h +new file mode 100644 +index 0000000..83a02c6 +--- /dev/null ++++ b/json-glib/tests/json-test-utils.h +@@ -0,0 +1,21 @@ ++#include <string.h> ++#include <math.h> ++#include <float.h> ++#include <glib.h> ++#include <json-glib/json-glib.h> ++ ++#define json_fuzzy_equals(n1,n2,epsilon) \ ++ (((n1) > (n2) ? ((n1) - (n2)) : ((n2) - (n1))) < (epsilon)) ++ ++#define json_assert_fuzzy_equals(n1,n2,epsilon) \ ++ G_STMT_START { \ ++ double __n1 = (n1), __n2 = (n2), __epsilon = (epsilon); \ ++ if (json_fuzzy_equals (__n1, __n2, __epsilon)) ; else { \ ++ g_assertion_message_cmpnum (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \ ++ #n1 " == " #n2 " (+/- " #epsilon ")", \ ++ __n1, "==", __n2, 'f'); \ ++ } \ ++ } G_STMT_END ++ ++#define json_assert_almost_equals(n1,n2) \ ++ json_assert_fuzzy_equals (n1, n2, DBL_EPSILON) +diff --git a/json-glib/tests/array.c b/json-glib/tests/array.c +index 98afeab..426cd72 100644 +--- a/json-glib/tests/array.c ++++ b/json-glib/tests/array.c +@@ -1,9 +1,4 @@ +-#include <stdio.h> +-#include <stdlib.h> +-#include <string.h> +- +-#include <glib.h> +-#include <json-glib/json-glib.h> ++#include "json-test-utils.h" + + static void + test_empty_array (void) +@@ -37,7 +32,7 @@ test_add_element (void) + + json_array_add_double_element (array, 3.14); + g_assert_cmpint (json_array_get_length (array), ==, 3); +- g_assert_cmpfloat (json_array_get_double_element (array, 2), ==, 3.14); ++ json_assert_fuzzy_equals (json_array_get_double_element (array, 2), 3.14, 0.001); + + json_array_add_boolean_element (array, TRUE); + g_assert_cmpint (json_array_get_length (array), ==, 4); +diff --git a/json-glib/tests/node.c b/json-glib/tests/node.c +index 23bda63..80beb78 100644 +--- a/json-glib/tests/node.c ++++ b/json-glib/tests/node.c +@@ -1,6 +1,4 @@ +-#include <glib.h> +-#include <json-glib/json-glib.h> +-#include <string.h> ++#include "json-test-utils.h" + + static void + test_init_int (void) +@@ -19,7 +17,7 @@ test_init_double (void) + JsonNode *node = json_node_new (JSON_NODE_VALUE); + + json_node_set_double (node, 3.14159); +- g_assert_cmpfloat (json_node_get_double (node), ==, 3.14159); ++ json_assert_fuzzy_equals (json_node_get_double (node), 3.14159, 0.00001); + + json_node_free (node); + } +@@ -119,13 +117,13 @@ test_get_int (void) + + json_node_set_int (node, 0); + g_assert_cmpint (json_node_get_int (node), ==, 0); +- g_assert_cmpfloat (json_node_get_double (node), ==, 0.0); ++ json_assert_almost_equals (json_node_get_double (node), 0.0); + g_assert (!json_node_get_boolean (node)); + g_assert (!json_node_is_null (node)); + + json_node_set_int (node, 42); + g_assert_cmpint (json_node_get_int (node), ==, 42); +- g_assert_cmpfloat (json_node_get_double (node), ==, 42.0); ++ json_assert_almost_equals (json_node_get_double (node), 42.0); + g_assert (json_node_get_boolean (node)); + g_assert (!json_node_is_null (node)); + +@@ -138,7 +136,7 @@ test_get_double (void) + JsonNode *node = json_node_new (JSON_NODE_VALUE); + + json_node_set_double (node, 3.14); +- g_assert_cmpfloat (json_node_get_double (node), ==, 3.14); ++ json_assert_fuzzy_equals (json_node_get_double (node), 3.14, 0.001); + g_assert_cmpint (json_node_get_int (node), ==, 3); + g_assert (json_node_get_boolean (node)); + +@@ -232,9 +230,9 @@ test_gvalue_autopromotion (void) + g_print ("Expecting a gdouble, got a %s\n", g_type_name (G_VALUE_TYPE (&check))); + + g_assert_cmpint (G_VALUE_TYPE (&check), ==, G_TYPE_DOUBLE); +- g_assert_cmpfloat ((float) g_value_get_double (&check), ==, 3.14159f); ++ json_assert_fuzzy_equals (g_value_get_double (&check), 3.14159, 0.00001); + g_assert_cmpint (G_VALUE_TYPE (&value), !=, G_VALUE_TYPE (&check)); +- g_assert_cmpfloat ((gdouble) g_value_get_float (&value), ==, g_value_get_double (&check)); ++ json_assert_almost_equals (g_value_get_float (&value), g_value_get_double (&check)); + + g_value_unset (&value); + g_value_unset (&check); +diff --git a/json-glib/tests/parser.c b/json-glib/tests/parser.c +index f71584a..8c52a1d 100644 +--- a/json-glib/tests/parser.c ++++ b/json-glib/tests/parser.c +@@ -1,11 +1,5 @@ +-#include "config.h" +- ++#include "json-test-utils.h" + #include <stdlib.h> +-#include <stdio.h> +- +-#include <glib.h> +- +-#include <json-glib/json-glib.h> + + static const gchar *test_empty_string = ""; + static const gchar *test_empty_array_string = "[ ]"; +@@ -38,13 +32,13 @@ verify_string_value (JsonNode *node) + static void + verify_double_value (JsonNode *node) + { +- g_assert_cmpfloat (10.2e3, ==, json_node_get_double (node)); ++ json_assert_fuzzy_equals (10.2e3, json_node_get_double (node), 0.1); + } + + static void + verify_negative_double_value (JsonNode *node) + { +- g_assert_cmpfloat (-3.14, ==, json_node_get_double (node)); ++ json_assert_fuzzy_equals (-3.14, json_node_get_double (node), 0.01); + } + + static const struct { +diff --git a/json-glib/tests/reader.c b/json-glib/tests/reader.c +index 43a6aac..9bab312 100644 +--- a/json-glib/tests/reader.c ++++ b/json-glib/tests/reader.c +@@ -1,9 +1,4 @@ +-#include <stdlib.h> +-#include <stdio.h> +- +-#include <glib.h> +- +-#include <json-glib/json-glib.h> ++#include "json-test-utils.h" + + static const gchar *test_base_array_data = + "[ 0, true, null, \"foo\", 3.14, [ false ], { \"bar\" : 42 } ]"; +@@ -78,7 +73,7 @@ test_base_object (void) + g_assert (json_reader_get_error (reader) == NULL); + + json_reader_read_member (reader, "double"); +- g_assert_cmpfloat (json_reader_get_double_value (reader), ==, 42.47); ++ json_assert_fuzzy_equals (json_reader_get_double_value (reader), 42.47, 0.01); + json_reader_end_element (reader); + + g_object_unref (reader); diff --git a/gnu/packages/pciutils.scm b/gnu/packages/pciutils.scm index e052b20776..e77aa3f288 100644 --- a/gnu/packages/pciutils.scm +++ b/gnu/packages/pciutils.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014, 2015, 2017 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -30,7 +31,7 @@ (define-public pciutils (package (name "pciutils") - (version "3.5.5") + (version "3.5.6") (source (origin (method url-fetch) (uri (string-append @@ -38,7 +39,7 @@ version ".tar.xz")) (sha256 (base32 - "1x9rb5y82rzg8b67lh42yy9ag9xr7kzibz566lffd41g37xghqhx")))) + "08dvsk1b5m1r7qqzsm849h4glq67mngf8zw7bg0102ff1jwywipk")))) (build-system gnu-build-system) (arguments '(#:phases diff --git a/gnu/packages/pulseaudio.scm b/gnu/packages/pulseaudio.scm index 903b22529d..2721c231c3 100644 --- a/gnu/packages/pulseaudio.scm +++ b/gnu/packages/pulseaudio.scm @@ -47,7 +47,6 @@ (define-public libsndfile (package (name "libsndfile") - (replacement libsndfile/fixed) (version "1.0.28") (source (origin (method url-fetch) @@ -55,7 +54,8 @@ version ".tar.gz")) (patches (search-patches "libsndfile-armhf-type-checks.patch" "libsndfile-CVE-2017-8361-8363-8365.patch" - "libsndfile-CVE-2017-8362.patch")) + "libsndfile-CVE-2017-8362.patch" + "libsndfile-CVE-2017-12562.patch")) (sha256 (base32 "1afzm7jx34jhqn32clc5xghyjglccam2728yxlx37yj2y0lkkwqz")))) @@ -81,15 +81,6 @@ SPARC. Hopefully the design of the library will also make it easy to extend for reading and writing new sound file formats.") (license l:gpl2+))) -(define libsndfile/fixed - (package - (inherit libsndfile) - (source (origin - (inherit (package-source libsndfile)) - (patches (append - (origin-patches (package-source libsndfile)) - (search-patches "libsndfile-CVE-2017-12562.patch"))))))) - (define-public libsamplerate (package (name "libsamplerate") ; aka. Secret Rabbit Code (SRC) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 970c835de6..79ceaa2195 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -5464,7 +5464,7 @@ complexity of Python source code.") (package (inherit base) (propagated-inputs `(("python2-configparser" ,python2-configparser) - ("python2-enum" ,python2-enum) + ("python2-enum34" ,python2-enum34) ,@(package-propagated-inputs base)))))) ;; python-hacking requires flake8 <2.6.0. @@ -5875,6 +5875,7 @@ reading and writing MessagePack data.") (define-public python-msgpack-transitional (package (inherit python-msgpack) + (name "python-msgpack-transitional") (arguments (substitute-keyword-arguments (package-arguments python-msgpack) ((#:phases phases) @@ -10408,14 +10409,14 @@ convering text with ANSI color codes to HTML or LaTeX.") (define-public python-ddt (package (name "python-ddt") - (version "1.1.1") + (version "1.1.2") (source (origin (method url-fetch) (uri (pypi-uri "ddt" version)) (sha256 (base32 - "1c00ikkxr7lha97c81k938bzhgd4pbwamkjn0h4nkhr3xk00zp6n")))) + "1wqkmz0yhanly8sif5vb02p2iik7mwxwph8ywph2kbb8ws8szdpx")))) (build-system python-build-system) (native-inputs `(("python-mock" ,python-mock) @@ -10426,8 +10427,9 @@ convering text with ANSI color codes to HTML or LaTeX.") (home-page "https://github.com/txels/ddt") (synopsis "Data-Driven Tests") (description - "DDT (Data-Driven Tests) allows you to multiply one test case by running -it with different test data, and make it appear as multiple test cases.") + "Data-Driven Tests (@dfn{DDT}) allow you to multiply one test case by +running it with different test data, and make it appear as multiple test +cases.") (license license:expat))) (define-public python2-ddt @@ -12074,18 +12076,10 @@ ignoring formatting changes.") "Make loops show a progress bar on the console by just wrapping any iterable with @code{|tqdm(iterable)|}. Offers many options to define design and layout.") - (license (list license:mpl2.0 license:expat)) - (properties `((python2-variant . ,(delay python2-tqdm)))))) + (license (list license:mpl2.0 license:expat)))) (define-public python2-tqdm - (let ((tqdm (package-with-python2 - (strip-python2-variant python-tqdm)))) - (package - (inherit tqdm) - (native-inputs - ;; FIXME: This should be propagated from python2-flake8 instead. - `(("python2-enum34" ,python2-enum34) - ,@(package-native-inputs tqdm)))))) + (package-with-python2 python-tqdm)) (define-public python-pkginfo (package diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 7d072009a0..baedb2a522 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -541,7 +541,7 @@ libebml is a C++ library to read and write EBML files.") (define-public libva (package (name "libva") - (version "2.0.0") + (version "2.1.0") (source (origin (method url-fetch) @@ -553,7 +553,7 @@ libebml is a C++ library to read and write EBML files.") (string-append "https://www.freedesktop.org/software/vaapi/releases/" "libva/libva-" version "/libva-" version ".tar.bz2"))) (sha256 - (base32 "0cz5i62jnibmnx0i80i9yipq39v16qr6fw461f6hvrh9lbwh21mv")))) + (base32 "03sb1b3fxw8myf9kz6rxw5f3v1p0vfmk34779qx0q8fk24x9bypk")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index cfae9f9253..2b1f1bdadb 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -3506,15 +3506,18 @@ applications.") (define-public perl-uri (package (name "perl-uri") - (version "1.71") + (version "1.73") (source (origin (method url-fetch) (uri (string-append "mirror://cpan/authors/id/E/ET/ETHER/" "URI-" version ".tar.gz")) (sha256 (base32 - "05a1ck1bhvqkkk690xhsxf7276dnagk96qkh2jy4prrrgw6wm3lw")))) + "04z4xwiryrbxxi48bwbkgq9q9pwfgqry3wp0ramcrwv3dx5ap9yc")))) (build-system perl-build-system) + (native-inputs + ;; For tests. + `(("perl-test-needs" ,perl-test-needs))) (license l:perl-license) (synopsis "Perl Uniform Resource Identifiers (absolute and relative)") (description @@ -6368,7 +6371,7 @@ derivation by David Revoy from the original MonsterID by Andreas Gohr.") ;; Required by tests. ("cunit" ,cunit) - ("tzdata" ,tzdata))) + ("tzdata" ,tzdata-for-tests))) (inputs ;; Required to build the tools (i.e. without ‘--enable-lib-only’). `(("c-ares" ,c-ares) diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index a3630b3cb9..407f2f80df 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -319,7 +319,7 @@ rasterisation.") (define-public libdrm (package (name "libdrm") - (version "2.4.89") + (version "2.4.91") (source (origin (method url-fetch) @@ -329,7 +329,7 @@ rasterisation.") ".tar.bz2")) (sha256 (base32 - "0bm06vqqjbb06mlz2f2h4man0xp0dz928pyycs8q1d5vma19g7v2")) + "0068dn47c478vm1lyyhy02gilrpsma0xmcblhvs0dzqyrk80wjk3")) (patches (search-patches "libdrm-symbol-check.patch")))) (build-system gnu-build-system) (arguments @@ -885,14 +885,14 @@ Escape key when Left Control is pressed and released on its own.") (define-public libwacom (package (name "libwacom") - (version "0.26") + (version "0.29") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/linuxwacom/libwacom/" name "-" version ".tar.bz2")) (sha256 (base32 - "0xpvkjvzaj9blcmw8ha46616bzfivj99kwzvr91clxd6iaf11r63")))) + "1diklgcjhmvcxi9p1ifp6wcnyr6k7z9jhrlzfhzjqd6zipk01slw")))) (build-system glib-or-gtk-build-system) (native-inputs `(("pkg-config" ,pkg-config))) @@ -917,7 +917,7 @@ Wacom tablet applet.") (define-public xf86-input-wacom (package (name "xf86-input-wacom") - (version "0.35.0") + (version "0.36.0") (source (origin (method url-fetch) (uri (string-append @@ -925,7 +925,7 @@ Wacom tablet applet.") name "-" version ".tar.bz2")) (sha256 (base32 - "0za44snc0zirq65a4lxsmg7blp1bynj6j835hm459x8yx1qhmxjm")))) + "1xi39hl8ddgj9m7m2k2ll2r3wh0k0aq45fvrsv43651bhz9cbrza")))) (arguments `(#:configure-flags (list (string-append "--with-sdkdir=" diff --git a/gnu/packages/xiph.scm b/gnu/packages/xiph.scm index a8e7833990..f9caea4192 100644 --- a/gnu/packages/xiph.scm +++ b/gnu/packages/xiph.scm @@ -57,14 +57,14 @@ (define libogg (package (name "libogg") - (version "1.3.2") + (version "1.3.3") (source (origin (method url-fetch) (uri (string-append "http://downloads.xiph.org/releases/ogg/libogg-" version ".tar.xz")) (sha256 (base32 - "16z74q422jmprhyvy7c9x909li8cqzmvzyr8cgbm52xcsp6pqs1z")))) + "022wjlzn8fx7mfby4pcgyjwx8zir7jr7cizichh3jgaki8bwcgsg")))) (build-system gnu-build-system) (synopsis "Library for manipulating the ogg multimedia format") (description diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index d1671ba8c1..b258f446b9 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -1028,7 +1028,7 @@ of new capabilities and controls for text keyboards.") (define-public libxshmfence (package (name "libxshmfence") - (version "1.2") + (version "1.3") (source (origin (method url-fetch) (uri (string-append @@ -1036,7 +1036,7 @@ of new capabilities and controls for text keyboards.") name "-" version ".tar.bz2")) (sha256 (base32 - "032b0nlkdrpbimdld4gqvhqx53rzn8fawvf1ybhzn7lcswgjs6yj")))) + "1ir0j92mnd1nk37mrv9bz5swnccqldicgszvfsh62jd14q6k115q")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) (inputs `(("xproto" ,xproto))) @@ -3707,7 +3707,7 @@ alternative implementations like XRandR or TwinView.") (define xkbcomp-intermediate ; used as input for xkeyboard-config (package (name "xkbcomp-intermediate") - (version "1.4.0") + (version "1.4.1") (source (origin (method url-fetch) @@ -3717,7 +3717,7 @@ alternative implementations like XRandR or TwinView.") ".tar.bz2")) (sha256 (base32 - "0syfc6zscvai824mzihlnrqxhkcr27dzkpy8zndavi83iischsdw")))) + "0djp7bb0ch2ddwmc1bkg4fddxdvamiiz375x0r0ni5dcb37w93bl")))) (build-system gnu-build-system) (inputs `(("xproto" ,xproto) @@ -3821,7 +3821,7 @@ extension to the X11 protocol. It includes: (define-public xkeyboard-config (package (name "xkeyboard-config") - (version "2.22") + (version "2.23.1") (source (origin (method url-fetch) @@ -3831,7 +3831,7 @@ extension to the X11 protocol. It includes: ".tar.bz2")) (sha256 (base32 - "1garmbyfjp0han04l2l90zzwlfbdgdxl6r1qnic36i5wkycckbny")))) + "1wq27cs1c9y7d1d7zp5yhq29paj9smajdb68lyvm28d2zq2vqjra")))) (build-system gnu-build-system) (inputs `(("gettext" ,gettext-minimal) diff --git a/gnu/services/base.scm b/gnu/services/base.scm index be30f2d9c3..343123a377 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -937,119 +937,122 @@ to use as the tty. This is primarily useful for headless systems." ;; mingetty-shepherd-service). (requirement '(user-processes host-name udev)) - (start #~(let ((tty #$(default-serial-port))) - (if tty - (make-forkexec-constructor - (list #$(file-append util-linux "/sbin/agetty") - #$@extra-options - #$@(if eight-bits? - #~("--8bits") - #~()) - #$@(if no-reset? - #~("--noreset") - #~()) - #$@(if remote? - #~("--remote") - #~()) - #$@(if flow-control? - #~("--flow-control") - #~()) - #$@(if host - #~("--host" #$host) - #~()) - #$@(if no-issue? - #~("--noissue") - #~()) - #$@(if init-string - #~("--init-string" #$init-string) - #~()) - #$@(if no-clear? - #~("--noclear") - #~()) + (start #~(lambda args + (let ((defaulted-tty #$(or tty (default-serial-port)))) + (apply + (if defaulted-tty + (make-forkexec-constructor + (list #$(file-append util-linux "/sbin/agetty") + #$@extra-options + #$@(if eight-bits? + #~("--8bits") + #~()) + #$@(if no-reset? + #~("--noreset") + #~()) + #$@(if remote? + #~("--remote") + #~()) + #$@(if flow-control? + #~("--flow-control") + #~()) + #$@(if host + #~("--host" #$host) + #~()) + #$@(if no-issue? + #~("--noissue") + #~()) + #$@(if init-string + #~("--init-string" #$init-string) + #~()) + #$@(if no-clear? + #~("--noclear") + #~()) ;;; FIXME This doesn't work as expected. According to agetty(8), if this option ;;; is not passed, then the default is 'auto'. However, in my tests, when that ;;; option is selected, agetty never presents the login prompt, and the ;;; term-ttyS0 service respawns every few seconds. - #$@(if local-line - #~(#$(match local-line - ('auto "--local-line=auto") - ('always "--local-line=always") - ('never "-local-line=never"))) - #~()) - #$@(if tty - #~() - #~("--keep-baud")) - #$@(if extract-baud? - #~("--extract-baud") - #~()) - #$@(if skip-login? - #~("--skip-login") - #~()) - #$@(if no-newline? - #~("--nonewline") - #~()) - #$@(if login-options - #~("--login-options" #$login-options) - #~()) - #$@(if chroot - #~("--chroot" #$chroot) - #~()) - #$@(if hangup? - #~("--hangup") - #~()) - #$@(if keep-baud? - #~("--keep-baud") - #~()) - #$@(if timeout - #~("--timeout" #$(number->string timeout)) - #~()) - #$@(if detect-case? - #~("--detect-case") - #~()) - #$@(if wait-cr? - #~("--wait-cr") - #~()) - #$@(if no-hints? - #~("--nohints?") - #~()) - #$@(if no-hostname? - #~("--nohostname") - #~()) - #$@(if long-hostname? - #~("--long-hostname") - #~()) - #$@(if erase-characters - #~("--erase-chars" #$erase-characters) - #~()) - #$@(if kill-characters - #~("--kill-chars" #$kill-characters) - #~()) - #$@(if chdir - #~("--chdir" #$chdir) - #~()) - #$@(if delay - #~("--delay" #$(number->string delay)) - #~()) - #$@(if nice - #~("--nice" #$(number->string nice)) - #~()) - #$@(if auto-login - (list "--autologin" auto-login) - '()) - #$@(if login-program - #~("--login-program" #$login-program) - #~()) - #$@(if login-pause? - #~("--login-pause") - #~()) - #$(or tty (default-serial-port)) - #$@(if baud-rate - #~(#$baud-rate) - #~()) - #$@(if term - #~(#$term) - #~())))) - (const #f))) ; never start. + #$@(if local-line + #~(#$(match local-line + ('auto "--local-line=auto") + ('always "--local-line=always") + ('never "-local-line=never"))) + #~()) + #$@(if tty + #~() + #~("--keep-baud")) + #$@(if extract-baud? + #~("--extract-baud") + #~()) + #$@(if skip-login? + #~("--skip-login") + #~()) + #$@(if no-newline? + #~("--nonewline") + #~()) + #$@(if login-options + #~("--login-options" #$login-options) + #~()) + #$@(if chroot + #~("--chroot" #$chroot) + #~()) + #$@(if hangup? + #~("--hangup") + #~()) + #$@(if keep-baud? + #~("--keep-baud") + #~()) + #$@(if timeout + #~("--timeout" #$(number->string timeout)) + #~()) + #$@(if detect-case? + #~("--detect-case") + #~()) + #$@(if wait-cr? + #~("--wait-cr") + #~()) + #$@(if no-hints? + #~("--nohints?") + #~()) + #$@(if no-hostname? + #~("--nohostname") + #~()) + #$@(if long-hostname? + #~("--long-hostname") + #~()) + #$@(if erase-characters + #~("--erase-chars" #$erase-characters) + #~()) + #$@(if kill-characters + #~("--kill-chars" #$kill-characters) + #~()) + #$@(if chdir + #~("--chdir" #$chdir) + #~()) + #$@(if delay + #~("--delay" #$(number->string delay)) + #~()) + #$@(if nice + #~("--nice" #$(number->string nice)) + #~()) + #$@(if auto-login + (list "--autologin" auto-login) + '()) + #$@(if login-program + #~("--login-program" #$login-program) + #~()) + #$@(if login-pause? + #~("--login-pause") + #~()) + defaulted-tty + #$@(if baud-rate + #~(#$baud-rate) + #~()) + #$@(if term + #~(#$term) + #~()))) + (const #f)) ; never start. + args)))) (stop #~(make-kill-destructor))))))) (define agetty-service-type diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm index 91ff32ce9a..ae8780d2e1 100644 --- a/gnu/system/vm.scm +++ b/gnu/system/vm.scm @@ -30,6 +30,8 @@ #:use-module (guix records) #:use-module (guix modules) #:use-module (guix utils) + #:use-module (guix hash) + #:use-module (guix base32) #:use-module ((gnu build vm) #:select (qemu-command)) @@ -544,13 +546,13 @@ of the GNU system as described by OS." (define (file-system->mount-tag fs) "Return a 9p mount tag for host file system FS." - ;; QEMU mount tags cannot contain slashes and cannot start with '_'. - ;; Compute an identifier that corresponds to the rules. + ;; QEMU mount tags must be ASCII, at most 31-byte long, cannot contain + ;; slashes, and cannot start with '_'. Compute an identifier that + ;; corresponds to the rules. (string-append "TAG" - (string-map (match-lambda - (#\/ #\_) - (chr chr)) - fs))) + (string-drop (bytevector->base32-string + (sha1 (string->utf8 fs))) + 4))) (define (mapping->file-system mapping) "Return a 9p file system that realizes MAPPING." diff --git a/guix/build-system/meson.scm b/guix/build-system/meson.scm index d7754e460a..529a2b8b0f 100644 --- a/guix/build-system/meson.scm +++ b/guix/build-system/meson.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017 Peter Mikkelsen <petermikkelsen10@gmail.com> +;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -80,8 +81,15 @@ (system system) (build-inputs `(("meson" ,meson) ("ninja" ,ninja) - ;; Add patchelf for (guix build rpath) to work. - ("patchelf" ,(default-patchelf)) + ;; XXX PatchELF fails to build on armhf, so we skip + ;; the 'fix-runpath' phase there for now. It is used + ;; to avoid superfluous entries in RUNPATH as described + ;; in <https://bugs.gnu.org/28444#46>, so armhf may now + ;; have different runtime dependencies from other arches. + ,@(if (not (string-prefix? "arm" (or (%current-target-system) + (%current-system)))) + `(("patchelf" ,(default-patchelf))) + '()) ,@native-inputs)) (host-inputs `(,@(if source `(("source" ,source)) @@ -139,7 +147,11 @@ has a 'meson.build' file." #:inputs %build-inputs #:search-paths ',(map search-path-specification->sexp search-paths) - #:phases build-phases + #:phases + (if (string-prefix? "arm" ,(or (%current-target-system) + (%current-system))) + (modify-phases build-phases (delete 'fix-runpath)) + build-phases) #:configure-flags ,configure-flags #:build-type ,build-type #:tests? ,tests? diff --git a/guix/build/meson-build-system.scm b/guix/build/meson-build-system.scm index 2b92240c52..e8cb5440eb 100644 --- a/guix/build/meson-build-system.scm +++ b/guix/build/meson-build-system.scm @@ -46,6 +46,15 @@ ,(string-append "--buildtype=" build-type) ,@configure-flags ,source-dir))) + + ;; Meson lacks good facilities for dealing with RUNPATH, so we + ;; add the output "lib" directory here to avoid doing that in + ;; many users. Related issues: + ;; * <https://github.com/mesonbuild/meson/issues/314> + ;; * <https://github.com/mesonbuild/meson/issues/3038> + ;; * <https://github.com/NixOS/nixpkgs/issues/31222> + (setenv "LDFLAGS" (string-append "-Wl,-rpath=" out "/lib")) + (mkdir build-dir) (chdir build-dir) (zero? (apply system* "meson" args)))) diff --git a/guix/hash.scm b/guix/hash.scm index 773b9d4777..39834043e1 100644 --- a/guix/hash.scm +++ b/guix/hash.scm @@ -23,7 +23,9 @@ #:use-module (system foreign) #:use-module ((guix build utils) #:select (dump-port)) #:use-module (srfi srfi-11) - #:export (sha256 + #:use-module (srfi srfi-26) + #:export (sha1 + sha256 open-sha256-port port-sha256 file-sha256 @@ -44,17 +46,26 @@ ;; Value as of Libgcrypt 1.5.2. (identifier-syntax 8)) -(define sha256 +(define-syntax GCRY_MD_SHA1 + (identifier-syntax 2)) + +(define bytevector-hash (let ((hash (pointer->procedure void (libgcrypt-func "gcry_md_hash_buffer") `(,int * * ,size_t)))) - (lambda (bv) - "Return the SHA256 of BV as a bytevector." - (let ((digest (make-bytevector (/ 256 8)))) - (hash GCRY_MD_SHA256 (bytevector->pointer digest) + (lambda (bv type size) + "Return the hash TYPE, of SIZE bytes, of BV as a bytevector." + (let ((digest (make-bytevector size))) + (hash type (bytevector->pointer digest) (bytevector->pointer bv) (bytevector-length bv)) digest)))) +(define sha1 + (cut bytevector-hash <> GCRY_MD_SHA1 20)) + +(define sha256 + (cut bytevector-hash <> GCRY_MD_SHA256 (/ 256 8))) + (define open-sha256-md (let ((open (pointer->procedure int (libgcrypt-func "gcry_md_open") diff --git a/tests/hash.scm b/tests/hash.scm index b4cf2b61d6..da87616eec 100644 --- a/tests/hash.scm +++ b/tests/hash.scm @@ -40,6 +40,14 @@ (test-begin "hash") +(test-equal "sha1, empty" + (base16-string->bytevector "da39a3ee5e6b4b0d3255bfef95601890afd80709") + (sha1 #vu8())) + +(test-equal "sha1, hello" + (base16-string->bytevector "2aae6c35c94fcfb415dbe95f408b9ce91ee846ed") + (sha1 (string->utf8 "hello world"))) + (test-equal "sha256, empty" %empty-sha256 (sha256 #vu8())) |