diff --git a/Makefile.am b/Makefile.am index 0590c51519..fec9800ce7 100644 --- a/Makefile.am +++ b/Makefile.am @@ -318,7 +318,7 @@ nobase_nodist_guileobject_DATA = $(GOBJECTS) # Handy way to remove the .go files without removing all the rest. clean-go: -$(RM) -f $(GOBJECTS) - @find . -name '*.go' -print | \ + @find . -path ./test-tmp -prune -o -name '*.go' -print | \ if test -t 1; then \ xargs -r echo -e "\033[31mwarning:\033[0m stray .go files:"; \ else \ diff --git a/doc/guix.texi b/doc/guix.texi index 5a26d69eb7..a1a37771cc 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -2375,7 +2375,8 @@ The installation image described above was built using the @command{guix system} command, specifically: @example -guix system disk-image gnu/system/install.scm +guix system disk-image --file-system-type=iso9660 \ + gnu/system/install.scm @end example Have a look at @file{gnu/system/install.scm} in the source tree, @@ -7288,7 +7289,8 @@ care! Build @var{package} from the latest commit of @var{branch}. The @code{source} field of @var{package} must be an origin with the @code{git-fetch} method (@pxref{origin Reference}) or a @code{git-checkout} object; the repository URL -is taken from that @code{source}. +is taken from that @code{source}. Git sub-modules of the repository are +fetched, recursively. For instance, the following command builds @code{guile-sqlite3} from the latest commit of its @code{master} branch, and then builds @code{guix} (which @@ -14400,13 +14402,49 @@ The @code{(gnu services databases)} module provides the following services. @deffn {Scheme Procedure} postgresql-service [#:postgresql postgresql] @ [#:config-file] [#:data-directory ``/var/lib/postgresql/data''] @ - [#:port 5432] [#:locale ``en_US.utf8''] + [#:port 5432] [#:locale ``en_US.utf8''] [#:extension-packages '()] Return a service that runs @var{postgresql}, the PostgreSQL database server. The PostgreSQL daemon loads its runtime configuration from @var{config-file}, creates a database cluster with @var{locale} as the default locale, stored in @var{data-directory}. It then listens on @var{port}. + +@cindex postgresql extension-packages +Additional extensions are loaded from packages listed in +@var{extension-packages}. Extensions are available at runtime. For instance, +to create a geographic database using the @code{postgis} extension, a user can +configure the postgresql-service as in this example: + +@cindex postgis +@example +(use-package-modules databases geo) + +(operating-system + ... + ;; postgresql is required to run `psql' but postgis is not required for + ;; proper operation. + (packages (cons* postgresql %base-packages)) + (services + (cons* + (postgresql-service #:extension-packages (list postgis)) + %base-services))) +@end example + +Then the extension becomes visible and you can initialise an empty geographic +database in this way: + +@example +psql -U postgres +> create database postgistest; +> \connect postgistest; +> create extension postgis; +> create extension postgis_topology; +@end example + +There is no need to add this field for contrib extensions such as hstore or +dblink as they are already loadable by postgresql. This field is only +required to add extensions provided by other packages. @end deffn @deffn {Scheme Procedure} mysql-service [#:config (mysql-configuration)] diff --git a/gnu/local.mk b/gnu/local.mk index 45f108e768..41f81d0d0b 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -634,7 +634,8 @@ dist_patch_DATA = \ %D%/packages/patches/aegisub-icu59-include-unistr.patch \ %D%/packages/patches/aegisub-boost68.patch \ %D%/packages/patches/agg-am_c_prototype.patch \ - %D%/packages/patches/allegro-fix-compilation-mesa-18.2.5-and-later.patch \ + %D%/packages/patches/allegro-mesa-18.2.5-and-later.patch \ + %D%/packages/patches/allegro4-mesa-18.2.5-and-later.patch \ %D%/packages/patches/amule-crypto-6.patch \ %D%/packages/patches/antiword-CVE-2014-8123.patch \ %D%/packages/patches/antlr3-3_1-fix-java8-compilation.patch \ @@ -665,8 +666,6 @@ dist_patch_DATA = \ %D%/packages/patches/blast+-fix-makefile.patch \ %D%/packages/patches/boost-fix-icu-build.patch \ %D%/packages/patches/byobu-writable-status.patch \ - %D%/packages/patches/cairo-CVE-2016-9082.patch \ - %D%/packages/patches/cairo-setjmp-wrapper.patch \ %D%/packages/patches/calibre-no-updates-dialog.patch \ %D%/packages/patches/calibre-use-packaged-feedparser.patch \ %D%/packages/patches/casync-renameat2-declaration.patch \ @@ -697,9 +696,6 @@ dist_patch_DATA = \ %D%/packages/patches/coda-use-system-libs.patch \ %D%/packages/patches/combinatorial-blas-awpm.patch \ %D%/packages/patches/combinatorial-blas-io-fix.patch \ - %D%/packages/patches/cool-retro-term-dont-check-uninit-member.patch \ - %D%/packages/patches/cool-retro-term-fix-array-size.patch \ - %D%/packages/patches/cool-retro-term-memory-leak-1.patch \ %D%/packages/patches/cpio-CVE-2016-2037.patch \ %D%/packages/patches/cpufrequtils-fix-aclocal.patch \ %D%/packages/patches/cracklib-CVE-2016-6318.patch \ @@ -710,7 +706,6 @@ dist_patch_DATA = \ %D%/packages/patches/cube-nocheck.patch \ %D%/packages/patches/cursynth-wave-rand.patch \ %D%/packages/patches/cvs-2017-12836.patch \ - %D%/packages/patches/cyrus-sasl-CVE-2013-4122.patch \ %D%/packages/patches/dbus-helper-search-path.patch \ %D%/packages/patches/deja-dup-use-ref-keyword-for-iter.patch \ %D%/packages/patches/dfu-programmer-fix-libusb.patch \ @@ -724,6 +719,7 @@ dist_patch_DATA = \ %D%/packages/patches/doxygen-test.patch \ %D%/packages/patches/dropbear-CVE-2018-15599.patch \ %D%/packages/patches/dvd+rw-tools-add-include.patch \ + %D%/packages/patches/efl-mesa-compat.patch \ %D%/packages/patches/elfutils-tests-ptrace.patch \ %D%/packages/patches/einstein-build.patch \ %D%/packages/patches/emacs-exec-path.patch \ @@ -749,6 +745,7 @@ dist_patch_DATA = \ %D%/packages/patches/fasthenry-spUtils.patch \ %D%/packages/patches/fasthenry-spSolve.patch \ %D%/packages/patches/fasthenry-spFactor.patch \ + %D%/packages/patches/fbreader-curl-7.62.patch \ %D%/packages/patches/fcgi-2.4.0-gcc44-fixes.patch \ %D%/packages/patches/fcgi-2.4.0-poll.patch \ %D%/packages/patches/fifo-map-fix-flags-for-gcc.patch \ @@ -803,14 +800,12 @@ dist_patch_DATA = \ %D%/packages/patches/ghc-8.0-fall-back-to-madv_dontneed.patch \ %D%/packages/patches/ghc-dont-pass-linker-flags-via-response-files.patch \ %D%/packages/patches/ghc-haddock-library-unbundle.patch \ - %D%/packages/patches/ghostscript-CVE-2018-16509.patch \ - %D%/packages/patches/ghostscript-bug-699708.patch \ %D%/packages/patches/ghostscript-no-header-id.patch \ %D%/packages/patches/ghostscript-no-header-uuid.patch \ %D%/packages/patches/ghostscript-no-header-creationdate.patch \ %D%/packages/patches/giflib-make-reallocarray-private.patch \ - %D%/packages/patches/glib-networking-ssl-cert-file.patch \ %D%/packages/patches/glib-tests-timer.patch \ + %D%/packages/patches/glib-networking-connection.patch \ %D%/packages/patches/glibc-CVE-2015-5180.patch \ %D%/packages/patches/glibc-CVE-2015-7547.patch \ %D%/packages/patches/glibc-CVE-2016-3075.patch \ @@ -843,7 +838,6 @@ dist_patch_DATA = \ %D%/packages/patches/gnome-tweak-tool-search-paths.patch \ %D%/packages/patches/gnucash-fix-test-transaction-failure.patch \ %D%/packages/patches/gnutls-skip-trust-store-test.patch \ - %D%/packages/patches/gnutls-skip-pkgconfig-test.patch \ %D%/packages/patches/gobject-introspection-absolute-shlib-path.patch \ %D%/packages/patches/gobject-introspection-cc.patch \ %D%/packages/patches/gobject-introspection-girepository.patch \ @@ -856,6 +850,7 @@ dist_patch_DATA = \ %D%/packages/patches/grub-check-error-efibootmgr.patch \ %D%/packages/patches/gsl-test-i686.patch \ %D%/packages/patches/gspell-dash-test.patch \ + %D%/packages/patches/gst-plugins-good-libvpx-compat.patch \ %D%/packages/patches/guile-1.8-cpp-4.5.patch \ %D%/packages/patches/guile-2.2-default-utf8.patch \ %D%/packages/patches/guile-default-utf8.patch \ @@ -879,6 +874,8 @@ dist_patch_DATA = \ %D%/packages/patches/hdf4-reproducibility.patch \ %D%/packages/patches/hdf4-shared-fortran.patch \ %D%/packages/patches/hdf5-config-date.patch \ + %D%/packages/patches/hdf5-mpi-deprecations.patch \ + %D%/packages/patches/hdf5-1.8-mpi-deprecations.patch \ %D%/packages/patches/hdf-eos2-build-shared.patch \ %D%/packages/patches/hdf-eos2-remove-gctp.patch \ %D%/packages/patches/hdf-eos2-fortrantests.patch \ @@ -899,6 +896,7 @@ dist_patch_DATA = \ %D%/packages/patches/icedtea-7-hotspot-gcc-segfault-workaround.patch \ %D%/packages/patches/id3lib-CVE-2007-4460.patch \ %D%/packages/patches/ilmbase-fix-tests.patch \ + %D%/packages/patches/inkscape-poppler-compat3.patch \ %D%/packages/patches/intltool-perl-compatibility.patch \ %D%/packages/patches/irrlicht-use-system-libs.patch \ %D%/packages/patches/isl-0.11.1-aarch64-support.patch \ @@ -913,7 +911,6 @@ dist_patch_DATA = \ %D%/packages/patches/java-xerces-build_dont_unzip.patch \ %D%/packages/patches/java-xerces-xjavac_taskdef.patch \ %D%/packages/patches/jbig2dec-ignore-testtest.patch \ - %D%/packages/patches/json-glib-fix-tests-32bit.patch \ %D%/packages/patches/kdbusaddons-kinit-file-name.patch \ %D%/packages/patches/khmer-use-libraries.patch \ %D%/packages/patches/libziparchive-add-includes.patch \ @@ -981,6 +978,7 @@ dist_patch_DATA = \ %D%/packages/patches/libmad-mips-newgcc.patch \ %D%/packages/patches/libmygpo-qt-fix-qt-5.11.patch \ %D%/packages/patches/libmygpo-qt-missing-qt5-modules.patch \ + %D%/packages/patches/libreoffice-boost.patch \ %D%/packages/patches/libreoffice-icu.patch \ %D%/packages/patches/libreoffice-glm.patch \ %D%/packages/patches/libsndfile-armhf-type-checks.patch \ @@ -990,10 +988,6 @@ dist_patch_DATA = \ %D%/packages/patches/libssh2-fix-build-failure-with-gcrypt.patch \ %D%/packages/patches/libtar-CVE-2013-4420.patch \ %D%/packages/patches/libtheora-config-guess.patch \ - %D%/packages/patches/libtiff-CVE-2017-9935.patch \ - %D%/packages/patches/libtiff-CVE-2017-18013.patch \ - %D%/packages/patches/libtiff-CVE-2018-8905.patch \ - %D%/packages/patches/libtiff-CVE-2018-10963.patch \ %D%/packages/patches/libtool-skip-tests2.patch \ %D%/packages/patches/libusb-0.1-disable-tests.patch \ %D%/packages/patches/libusb-for-axoloti.patch \ @@ -1061,6 +1055,7 @@ dist_patch_DATA = \ %D%/packages/patches/mumps-build-parallelism.patch \ %D%/packages/patches/mupen64plus-ui-console-notice.patch \ %D%/packages/patches/mupen64plus-video-z64-glew-correct-path.patch \ + %D%/packages/patches/musescore-fix-use_webengine.patch \ %D%/packages/patches/mutt-store-references.patch \ %D%/packages/patches/m4-gnulib-libio.patch \ %D%/packages/patches/netcdf-date-time.patch \ @@ -1128,6 +1123,7 @@ dist_patch_DATA = \ %D%/packages/patches/pinball-src-deps.patch \ %D%/packages/patches/pinball-system-ltdl.patch \ %D%/packages/patches/pinentry-efl.patch \ + %D%/packages/patches/pingus-boost-headers.patch \ %D%/packages/patches/pingus-sdl-libs-config.patch \ %D%/packages/patches/pius.patch \ %D%/packages/patches/pixman-CVE-2016-5296.patch \ @@ -1136,9 +1132,9 @@ dist_patch_DATA = \ %D%/packages/patches/plotutils-libpng-jmpbuf.patch \ %D%/packages/patches/podofo-cmake-3.12.patch \ %D%/packages/patches/polkit-CVE-2018-19788.patch \ - %D%/packages/patches/poppler-CVE-2018-19149.patch \ %D%/packages/patches/portaudio-audacity-compat.patch \ %D%/packages/patches/portmidi-modular-build.patch \ + %D%/packages/patches/postgresql-disable-resolve_symlinks.patch \ %D%/packages/patches/potrace-tests.patch \ %D%/packages/patches/procmail-ambiguous-getline-debian.patch \ %D%/packages/patches/procmail-CVE-2014-3618.patch \ @@ -1189,7 +1185,6 @@ dist_patch_DATA = \ %D%/packages/patches/qt4-ldflags.patch \ %D%/packages/patches/qtbase-use-TZDIR.patch \ %D%/packages/patches/qtscript-disable-tests.patch \ - %D%/packages/patches/qt-5-renameat2.patch \ %D%/packages/patches/quagga-reproducible-build.patch \ %D%/packages/patches/quickswitch-fix-dmenu-check.patch \ %D%/packages/patches/quilt-test-fix-regex.patch \ @@ -1239,9 +1234,11 @@ dist_patch_DATA = \ %D%/packages/patches/soundconverter-remove-gconf-dependency.patch \ %D%/packages/patches/soundtouch-CVE-2018-14044-14045.patch \ %D%/packages/patches/soundtouch-CVE-2018-1000223.patch \ + %D%/packages/patches/sssd-curl-compat.patch \ %D%/packages/patches/steghide-fixes.patch \ %D%/packages/patches/streamlink-update-test.patch \ %D%/packages/patches/superlu-dist-awpm-grid.patch \ + %D%/packages/patches/superlu-dist-fix-mpi-deprecations.patch \ %D%/packages/patches/superlu-dist-scotchmetis.patch \ %D%/packages/patches/swig-guile-gc.patch \ %D%/packages/patches/swish-e-search.patch \ @@ -1261,6 +1258,9 @@ dist_patch_DATA = \ %D%/packages/patches/teeworlds-use-latest-wavpack.patch \ %D%/packages/patches/texinfo-perl-compat.patch \ %D%/packages/patches/texinfo-5-perl-compat.patch \ + %D%/packages/patches/texlive-bin-luatex-poppler-compat.patch \ + %D%/packages/patches/texlive-bin-pdftex-poppler-compat.patch \ + %D%/packages/patches/texlive-bin-xetex-poppler-compat.patch \ %D%/packages/patches/telegram-purple-adjust-test.patch \ %D%/packages/patches/texi2html-document-encoding.patch \ %D%/packages/patches/texi2html-i18n.patch \ @@ -1311,6 +1311,7 @@ dist_patch_DATA = \ %D%/packages/patches/wavpack-CVE-2018-7253.patch \ %D%/packages/patches/wavpack-CVE-2018-7254.patch \ %D%/packages/patches/weechat-python.patch \ + %D%/packages/patches/wesnoth-newer-boost.patch \ %D%/packages/patches/wicd-bitrate-none-fix.patch \ %D%/packages/patches/wicd-get-selected-profile-fix.patch \ %D%/packages/patches/wicd-urwid-1.3.patch \ @@ -1341,8 +1342,7 @@ dist_patch_DATA = \ %D%/packages/patches/xfce4-settings-defaults.patch \ %D%/packages/patches/xinetd-fix-fd-leak.patch \ %D%/packages/patches/xinetd-CVE-2013-4342.patch \ - %D%/packages/patches/xmodmap-asprintf.patch \ - %D%/packages/patches/zathura-plugindir-environment-variable.patch + %D%/packages/patches/xmodmap-asprintf.patch MISC_DISTRO_FILES = \ %D%/packages/ld-wrapper.in diff --git a/gnu/packages/abiword.scm b/gnu/packages/abiword.scm index 02f132f6f0..9d8c253a62 100644 --- a/gnu/packages/abiword.scm +++ b/gnu/packages/abiword.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2016, 2018 Efraim Flashner ;;; Copyright © 2017 Ricardo Wurmus ;;; Copyright © 2017 Leo Famulari +;;; Copyright © 2018 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. ;;; @@ -51,8 +52,8 @@ (origin (method url-fetch) (uri - (string-append "https://www.abisource.com/downloads/" name "/" version - "/source/" name "-" version ".tar.gz")) + (string-append "https://www.abisource.com/downloads/abiword/" version + "/source/abiword-" version ".tar.gz")) (sha256 (base32 "08imry821g81apdwym3gcs4nss0l9j5blqk31j5rv602zmcd9gxg")) (patches diff --git a/gnu/packages/accessibility.scm b/gnu/packages/accessibility.scm index 25c44fa2c0..35c8c8f19b 100644 --- a/gnu/packages/accessibility.scm +++ b/gnu/packages/accessibility.scm @@ -45,7 +45,7 @@ (origin (method url-fetch) (uri (string-append "mirror://sourceforge/florence/florence/" version - "/" name "-" version ".tar.bz2")) + "/florence-" version ".tar.bz2")) (sha256 (base32 "07h9qm22krlwayhzvc391lr23vicw81s48g7rirvx1fj0zyr4aa2")))) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 054ef3d461..f4c34e10fe 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -148,13 +148,15 @@ usual file attributes can be checked for inconsistencies.") (package (name "progress") (version "0.14") - (source (origin - (method url-fetch) - (uri (string-append "https://github.com/Xfennec/" - name "/archive/v" version ".tar.gz")) - (sha256 - (base32 "1wcanixfsi5k4i9h5vrnncgjdncalsdfqllrxibxwpgfnf20sji1")) - (file-name (string-append name "-" version ".tar.gz")))) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Xfennec/progress.git") + (commit (string-append "v" version)))) + (sha256 + (base32 "1lk2v4b767klib93an4g3f7z5qrv9kdk9jf7545vw1immc4kamrl")) + (file-name (git-file-name name version)))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -162,12 +164,12 @@ usual file attributes can be checked for inconsistencies.") (inputs `(("ncurses" ,ncurses))) (arguments - `(#:tests? #f ; There is no test suite. + `(#:tests? #f ; no test suite #:make-flags (list "CC=gcc" (string-append "PREFIX=" (assoc-ref %outputs "out"))) #:phases (modify-phases %standard-phases - (delete 'configure)))) ; There's no configure phase. + (delete 'configure)))) ; no configure script (home-page "https://github.com/Xfennec/progress") (synopsis "Program to view the progress of the coreutils commands") (description "A program that looks for coreutils basic commands (cp, mv, @@ -219,8 +221,8 @@ interface and is based on GNU Guile.") (source (origin (method url-fetch) (uri (string-append - "https://cr.yp.to/" name "/" - name "-" version ".tar.gz")) + "https://cr.yp.to/daemontools/" + "daemontools-" version ".tar.gz")) (sha256 (base32 "07scvw88faxkscxi91031pjkpccql6wspk4yrlnsbrrb5c0kamd5")))) @@ -231,7 +233,7 @@ interface and is based on GNU Guile.") (modify-phases %standard-phases (add-after 'unpack 'chdir (lambda _ - (chdir ,(string-append name "-" version)) + (chdir ,(string-append "daemontools-" version)) #t)) (delete 'configure) (add-before 'build 'patch @@ -1539,14 +1541,13 @@ degradation and failure.") (version "1.6.1") (source (origin - (method url-fetch) - (uri (string-append - "https://github.com/adrianlopezroche/fdupes/archive/v" - version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/adrianlopezroche/fdupes.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 - (base32 - "1sj9pa40pbz6xdwbxfwhdhkvhdf1xc5gvggk9mdq26c41gdnyswx")))) + (base32 "19b6vqblddaw8ccw4sn0qsqzbswlhrz8ia6n4m3hymvcxn8skpz9")))) (build-system gnu-build-system) (arguments '(#:phases (modify-phases %standard-phases @@ -1703,13 +1704,13 @@ lookup to YAML Mode. You could enable the mode with @code{(add-hook (version "0.2") (source (origin - (method url-fetch) - (uri (string-append "https://github.com/opsengine/cpulimit/archive/v" - version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/opsengine/cpulimit.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 - (base32 - "1nn2w849xd5bw4y5sqnll29nxdwl5h0cv4smc7dwmpb9qnd2ycb4")))) + (base32 "1dz045yhcsw1rdamzpz4bk8mw888in7fyqk1q1b3m1yk4pd1ahkh")))) (build-system gnu-build-system) (arguments `(#:phases (modify-phases %standard-phases @@ -1864,7 +1865,7 @@ platform-specific methods.") (version "2.8.4") (source (origin (method url-fetch) - (uri (string-append home-page name "-" version ".tar.gz")) + (uri (string-append home-page "audit-" version ".tar.gz")) (sha256 (base32 "0f4ci6ffznnmgblwgv7ich9mjfk3p6y5l6m6h3chhmzw156nj454")))) @@ -1979,22 +1980,22 @@ results (ndiff), and a packet generation and response analysis tool (nping).") (package (name "dstat") (version "0.7.3") - (source (origin - (method url-fetch) - (uri (string-append - "https://github.com/dagwieers/dstat/archive/" - version ".tar.gz")) - (file-name (string-append "dstat-" version ".tar.gz")) - (sha256 - (base32 - "16286z3y2lc9nsq8njzjkv6k2vyxrj9xiixj1k3gnsbvhlhkirj6")))) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/dagwieers/dstat.git") + (commit version))) + (file-name (git-file-name "dstat" version)) + (sha256 + (base32 "0sbpna531034gr40w4g9cwz35s2fpf9h654paznsxw9fih91rfa5")))) (build-system gnu-build-system) (arguments - `(#:tests? #f ;; no make check + `(#:tests? #f ; no make check #:make-flags (let ((out (assoc-ref %outputs "out"))) (list (string-append "DESTDIR=" out) "prefix=/")) - ;; no configure script + ;; No configure script. #:phases (modify-phases %standard-phases (delete 'configure)))) (inputs `(("python-2" ,python-2))) (synopsis "Versatile resource statistics tool") @@ -2015,15 +2016,16 @@ throughput (in the same interval).") (package (name "thefuck") (version "3.28") - (source (origin - (method url-fetch) - (uri (string-append "https://github.com/nvbn/thefuck/archive/" - version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "1i11qlnbg95nx7dcf6wqvfz7b230dqr5m981md4hvyaa1qw3xj5m")) - (patches (search-patches "thefuck-test-environ.patch")))) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/nvbn/thefuck.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "070b2sx8r0b4hry6xg97psxlikxghmz91zicg2cm6kc1yhgz4agc")) + (patches (search-patches "thefuck-test-environ.patch")))) (build-system python-build-system) (arguments '(#:phases @@ -2089,23 +2091,24 @@ produce uniform output across heterogeneous networks.") (package (name "cbatticon") (version "1.6.8") - (source (origin - (method url-fetch) - (uri (string-append "https://github.com/valr/" - name "/archive/" version ".tar.gz")) - (sha256 - (base32 - "185lzvaijvyq7y8r7dvizhri0rf9lpc1anfgbbn4lznr1fr3z7rn")) - (file-name (string-append name "-" version ".tar.gz")))) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/valr/cbatticon.git") + (commit version))) + (sha256 + (base32 "16g26vin1693dbdr9qsnw36fdchx394lp79gvp7gcbw0w1ny9av6")) + (file-name (git-file-name name version)))) (build-system gnu-build-system) (arguments - `(#:tests? #f ; no tests + `(#:tests? #f ; no tests #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")) "CC=gcc") #:phases (modify-phases %standard-phases - (delete 'configure)))) ; no configure script + (delete 'configure)))) ; no configure script (inputs `(("gtk+" ,gtk+) ("gettext" ,gettext-minimal) @@ -2123,22 +2126,22 @@ the status of your battery in the system tray.") (commit "896543735e1c99144765fdbd7b6e6b5afbd8b881")) (package (name "interrobang") - (version (string-append "0.0.0-" revision "." (string-take commit 7))) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/TrilbyWhite/interrobang") - (commit commit))) - (file-name (string-append name "-" version)) - (sha256 - (base32 - "1n13m70p1hfba5dy3i8hfclbr6k9q3d9dai3dg4jvhdhmxcpjzdf")))) + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/TrilbyWhite/interrobang.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1n13m70p1hfba5dy3i8hfclbr6k9q3d9dai3dg4jvhdhmxcpjzdf")))) (build-system gnu-build-system) (arguments - `(#:tests? #f ; no tests + `(#:tests? #f ; no tests #:phases (modify-phases %standard-phases - (delete 'configure)) ; no configure script + (delete 'configure)) ; no configure script #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))))) (inputs @@ -2158,8 +2161,8 @@ shortcut syntax and completion options.") (source (origin (method url-fetch) (uri (string-append - "https://archives.eyrie.org/software/kerberos/" name "-" - version ".tar.xz")) + "https://archives.eyrie.org/software/kerberos/" + "pam-krb5-" version ".tar.xz")) (sha256 (base32 "1qjp8i1s9bz7g6kiqrkzzkxn5pfspa4sy53b6z40fqmdf9przdfb")))) @@ -2205,11 +2208,12 @@ Kerberos and Heimdal and FAST is supported with recent MIT Kerberos.") (version "1.4.2") (source (origin - (method url-fetch) - (uri (string-append "https://github.com/linux-sunxi/" - "sunxi-tools/archive/v" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/linux-sunxi/sunxi-tools.git") + (commit (string-append "v" version)))) (sha256 - (base32 "08iqwj95qw2s7ilhrdi2lkbc8dx64zk5lzz1qk587jr0lla81x41")) + (base32 "04f3jqg8ww4jxsf9c6ddcdgy2xbhkyp0b3l5f1hvvbv94p81rjxd")) (modules '((guix build utils))) (snippet ;; Remove binaries contained in the tarball which are only for the @@ -2217,7 +2221,7 @@ Kerberos and Heimdal and FAST is supported with recent MIT Kerberos.") '(begin (delete-file-recursively "bin") #t)) - (file-name (string-append name "-" version ".tar.gz")))) + (file-name (git-file-name name version)))) (native-inputs `(("pkg-config" ,pkg-config) ("cross-gcc" ,(cross-gcc "arm-linux-gnueabihf" @@ -2300,16 +2304,16 @@ in order to be able to find it. (version "1.0") (source (origin - (method url-fetch) - (uri (string-append "https://github.com/aureliojargas/sedsed/" - "archive/v" version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/aureliojargas/sedsed.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 - (base32 - "0139jkqvm8ipiwfj7k69ry2f9b1ffgpk79arpz4r7w9kf6h23bnh")))) + (base32 "0009lsjsxhqmgaklpwq15hhd94hpiy7r4va69yy0ig3mxi6zbg2z")))) (build-system python-build-system) (arguments - `(#:tests? #f ; No tests. + `(#:tests? #f ; no tests #:python ,python-2 #:phases (modify-phases %standard-phases @@ -2364,7 +2368,7 @@ buffers.") (method url-fetch) (uri (string-append "https://cgit.freedesktop.org/xorg/app/" "intel-gpu-tools/snapshot/" - name "-" version ".tar.gz")) + "igt-gpu-tools-" version ".tar.gz")) (sha256 (base32 "0vzv2i4jfv2pkbqby5k3ap9pzidkmajwqmg3s7wnv8i1h33775iq")))) @@ -2494,7 +2498,7 @@ you are running, what theme or icon set you are using, etc.") (origin (method url-fetch) (uri (string-append "https://github.com/jarun/nnn/releases/download/v" - version "/" name "-v" version ".tar.gz")) + version "/nnn-v" version ".tar.gz")) (sha256 (base32 "1d6z12y4rlg4dzhpm30irpq2ak8hjh5zykkp2n7vxnz5m4ki89zp")))) (build-system gnu-build-system) @@ -2565,14 +2569,15 @@ on systems running the Linux kernel.") (package (name "masscan") (version "1.0.5") - (source (origin - (method url-fetch) - (uri (string-append "https://github.com/robertdavidgraham/masscan" - "/archive/" version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "0wxddsgyx27z45906icdhdbfsvfj8ij805208qpqjx46i0lnjs50")))) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/robertdavidgraham/masscan.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0q0c7bsf0pbl8napry1qyg0gl4pd8wn872h4mz9b56dx4rx90vqg")))) (build-system gnu-build-system) (inputs `(("libpcap" ,libpcap))) @@ -2608,7 +2613,7 @@ application, collecting the information received.") (method url-fetch) (uri (string-append "https://github.com/jwilk/hungrycat/" "releases/download/" version "/" - name "-" version ".tar.gz")) + "hungrycat-" version ".tar.gz")) (sha256 (base32 "03fc1zsrf99lvxa7b4ps6pbi43304wbxh1f6ci4q0vkal370yfwh")))) @@ -2640,7 +2645,7 @@ late.") (method url-fetch) (uri (string-append "https://github.com/LLNL/LaunchMON/releases/download/v" - version "/" name "-v" version ".tar.gz")) + version "/launchmon-v" version ".tar.gz")) (sha256 (base32 "0fm3nd9mydm9v2bf7bh01dbgrfnpwkapxa3dsvy3x1z0rz61qc0x")))) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 4acdb54271..64f826b3f0 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -2300,7 +2300,7 @@ external_libraries/yaml-cpp/include)")) ("eudev" ,eudev) ;for user interactions with devices ("avahi" ,avahi) ;zeroconf service discovery support ("icu4c" ,icu4c) - ("boost" ,boost-cxx14) + ("boost" ,boost) ("boost-sync" ,boost-sync) ("yaml-cpp" ,yaml-cpp))) (home-page "https://github.com/supercollider/supercollider") diff --git a/gnu/packages/avr.scm b/gnu/packages/avr.scm index a84b43da6a..eaa3c7d046 100644 --- a/gnu/packages/avr.scm +++ b/gnu/packages/avr.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2015, 2017 Ricardo Wurmus ;;; Copyright © 2016 David Thompson ;;; Copyright © 2016 Efraim Flashner +;;; Copyright © 2018 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. ;;; @@ -23,6 +24,7 @@ #:use-module ((guix licenses) #:prefix license:) #:use-module (guix utils) #:use-module (guix download) + #:use-module (guix git-download) #:use-module (guix packages) #:use-module (guix build-system gnu) #:use-module (guix build-system trivial) @@ -138,18 +140,19 @@ C++.") (package (name "microscheme") (version "0.9.3") - (source (origin - (method url-fetch) - (uri (string-append "https://github.com/ryansuchocki/" - "microscheme/archive/v" version ".tar.gz")) - (sha256 - (base32 - "1n404mh7z2icy3ga1mx249lk9x091k7idj6xpcf20hnmzabd0k0x")) - (file-name (string-append name "-" version ".tar.gz")))) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ryansuchocki/microscheme.git") + (commit (string-append "v" version)))) + (sha256 + (base32 "1r3ng4pw1s9yy1h5rafra1rq19d3vmb5pzbpcz1913wz22qdd976")) + (file-name (git-file-name name version)))) (build-system gnu-build-system) (arguments - `(#:parallel-build? #f ; fails to build otherwise - #:tests? #f ; no tests + `(#:parallel-build? #f ; fails to build otherwise + #:tests? #f ; no tests #:phases (modify-phases %standard-phases (delete 'configure)) diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index 96739b4de9..c3db665e98 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -1122,7 +1122,7 @@ command.") (define-public tzdata (package (name "tzdata") - (version "2018e") + (version "2018i") (source (origin (method url-fetch) (uri (string-append @@ -1130,7 +1130,7 @@ command.") version ".tar.gz")) (sha256 (base32 - "0bk97fv2i5ns42prpmlaadsswdjwv0ifi7whj2s4q6l44rcqwa3b")))) + "1n80ih8agibagic401smqscz3xxqvs5bm5x3lk803g539kw5xi42")))) (build-system gnu-build-system) (arguments '(#:tests? #f @@ -1180,7 +1180,7 @@ command.") version ".tar.gz")) (sha256 (base32 - "1kpb02631s58i068mwq63xlamcv1ffj4p6y4wpb9kdl01vr0qd6a")))))) + "1p1jxlnryaxknj0l768h3dmlk2jpqz5n5d24w9c9vyx6dj3xpb5a")))))) (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) @@ -1199,22 +1199,24 @@ and daylight-saving rules.") (hidden-package (package (inherit tzdata) - (version "2018d") + (version "2018g") (source (origin - (method url-fetch) - (uri (string-append "https://www.iana.org/time-zones/repository" - "/releases/tzdata" version ".tar.gz")) - (sha256 - (base32 - "0m6020dnk9r40z7k36jp13fa06xip3hn0fdx3nly66jzxgffs1ji")))) - (inputs `(("tzcode" ,(origin - (method url-fetch) - (uri (string-append - "http://www.iana.org/time-zones/repository/releases/tzcode" - version ".tar.gz")) - (sha256 - (base32 - "1nd882yhsazmcfqmcqyfig3axycryl30gmizgqhqsx5dpa2lxr3x"))))))))) + (method url-fetch) + (uri (string-append + "https://www.iana.org/time-zones/repository/releases/tzdata" + version ".tar.gz")) + (sha256 + (base32 + "05kayi3w9pvhj6ljx1hvwd0r8mxfzn436fjmwhx53xkj919xxpq2")))) + (inputs + `(("tzcode" ,(origin + (method url-fetch) + (uri (string-append + "http://www.iana.org/time-zones/repository/releases/tzcode" + version ".tar.gz")) + (sha256 + (base32 + "09y44fzcdq3c06saa8iqqa0a59cyw6ni3p31ps0j1w3hcpxz8lxa"))))))))) (define-public libiconv (package diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 23eba74175..02cafb2358 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -6020,7 +6020,7 @@ application of SortMeRNA is filtering rRNA from metatranscriptomic data.") (define-public star (package (name "star") - (version "2.7.0a") + (version "2.7.0b") (source (origin (method git-fetch) (uri (git-reference @@ -6029,7 +6029,7 @@ application of SortMeRNA is filtering rRNA from metatranscriptomic data.") (file-name (string-append name "-" version "-checkout")) (sha256 (base32 - "1yx28gra6gqdx1ps5y8mpdinsn8r0dhsc2m3gcvjfrk71i9yhd6l")) + "1lih6cbpvnvhyvvswdhy06mwyzvwax96m723378v4z6psqzsh11d")) (modules '((guix build utils))) (snippet '(begin @@ -6055,6 +6055,13 @@ application of SortMeRNA is filtering rRNA from metatranscriptomic data.") (("(COMPILATION_TIME_PLACE=\")(.*)(\")" _ pre mid post) (string-append pre "Built with Guix" post))) #t)) + ;; See https://github.com/alexdobin/STAR/pull/562 + (add-after 'enter-source-dir 'add-missing-header + (lambda _ + (substitute* "SoloReadFeature_inputRecords.cpp" + (("#include \"binarySearch2.h\"" h) + (string-append h "\n#include "))) + #t)) (add-after 'enter-source-dir 'do-not-use-bundled-htslib (lambda _ (substitute* "Makefile" @@ -8657,7 +8664,7 @@ library implementing most of the pipeline's features.") (define-public rcas-web (package (name "rcas-web") - (version "0.0.5") + (version "0.1.0") (source (origin (method url-fetch) @@ -8666,7 +8673,7 @@ library implementing most of the pipeline's features.") "/rcas-web-" version ".tar.gz")) (sha256 (base32 - "0igz7jpcf7cm9800zcag6p3gd1i649figrhbdba6cjkm8f4gfspr")))) + "0wq951aj45gqki1bickg876i993lmawkp8x24agg264br5x716db")))) (build-system gnu-build-system) (arguments `(#:phases @@ -8689,7 +8696,7 @@ library implementing most of the pipeline's features.") ("r-rcas" ,r-rcas) ("guile-next" ,guile-2.2) ("guile-json" ,guile-json) - ("guile-redis" ,guile2.2-redis))) + ("guile-redis" ,guile-redis))) (native-inputs `(("pkg-config" ,pkg-config))) (home-page "https://github.com/BIMSBbioinfo/rcas-web") diff --git a/gnu/packages/boost.scm b/gnu/packages/boost.scm index 26d0140fd0..8f5ac33700 100644 --- a/gnu/packages/boost.scm +++ b/gnu/packages/boost.scm @@ -44,16 +44,19 @@ (define-public boost (package (name "boost") - (version "1.68.0") + (version "1.69.0") (source (origin (method url-fetch) - (uri (string-append - "mirror://sourceforge/boost/boost/" version "/boost_" - (string-map (lambda (x) (if (eq? x #\.) #\_ x)) version) - ".tar.bz2")) + (uri (let ((version-with-underscores + (string-map (lambda (x) (if (eq? x #\.) #\_ x)) version))) + (list (string-append "mirror://sourceforge/boost/boost/" version + "/boost_" version-with-underscores ".tar.bz2") + (string-append "https://dl.bintray.com/boostorg/release/" + version "/source/boost_" + version-with-underscores ".tar.bz2")))) (sha256 (base32 - "1dyqsr9yb01y0nnjdq9b8q5s2kvhxbayk34832k5cpzn7jy30qbz")) + "01j4n142dz20lcgqji8d8hspp04p1nv7m8i6dz8w5lchfdhx8clg")) (patches (search-patches "boost-fix-icu-build.patch")))) (build-system gnu-build-system) (inputs `(("icu4c" ,icu4c) @@ -66,6 +69,7 @@ `(#:tests? #f #:make-flags (list "threading=multi" "link=shared" + "cxxflags=-std=c++14" ;; Set the RUNPATH to $libdir so that the libs find each other. (string-append "linkflags=-Wl,-rpath=" @@ -121,16 +125,6 @@ across a broad spectrum of applications.") (license (license:x11-style "https://www.boost.org/LICENSE_1_0.txt" "Some components have other similar licences.")))) -;; Some programs need Boost to be built with C++14 support. -(define-public boost-cxx14 - (package (inherit boost) - (arguments - (substitute-keyword-arguments (package-arguments boost) - ((#:make-flags flags) - `(append ,flags - '("cxxflags=-std=c++14"))))) - (properties '((hidden? . #t))))) - (define-public boost-for-mysql ;; Older version for MySQL 5.7.23. (package diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-tools.scm index a34e7ebff4..628b36fff5 100644 --- a/gnu/packages/build-tools.scm +++ b/gnu/packages/build-tools.scm @@ -158,7 +158,7 @@ files and generates build instructions for the Ninja build system.") (define-public meson (package (name "meson") - (version "0.47.2") + (version "0.49.0") (source (origin (method url-fetch) (uri (string-append "https://github.com/mesonbuild/meson/" @@ -166,7 +166,7 @@ files and generates build instructions for the Ninja build system.") version ".tar.gz")) (sha256 (base32 - "1swmycf6p9p0ag6yiywyyri42ffkxxj38r2ic7in24km47cszn4j")))) + "0l8m1v7cl5ybm7psfqmmdqbvmnsbb1qhb8ni3hwap3i0mk29a0zv")))) (build-system python-build-system) (arguments `(;; FIXME: Tests require many additional inputs, a fix for the RUNPATH diff --git a/gnu/packages/cdrom.scm b/gnu/packages/cdrom.scm index b44cc3bce9..546e1a20d0 100644 --- a/gnu/packages/cdrom.scm +++ b/gnu/packages/cdrom.scm @@ -525,7 +525,7 @@ from an audio CD.") (define-public abcde (package (name "abcde") - (version "2.9.2") + (version "2.9.3") (home-page "https://abcde.einval.com/") (source (origin (method url-fetch) @@ -533,19 +533,13 @@ from an audio CD.") version ".tar.gz")) (sha256 (base32 - "13c5yvp87ckqgha160ym5rdr1a4divgvyqbjh0yb6ffclip6qd9l")) + "091ip2iwb6b67bhjsj05l0sxyq2whqjycbzqpkfbpm4dlyxx0v04")) (modules '((guix build utils))) (snippet - `(begin + '(begin (substitute* "Makefile" - ;; Fix abcde 2.9.2 still thinking it's 2.9.1. - ;; XXX This will be fixed in the next release. - (("(abcde_version = abcde-)(2.9.1)" _ good bad) - (string-append good ,version)) (("/usr/bin/install") - "install") - (("^etcdir = .*$") - (string-append "etcdir = $(prefix)/etc\n"))) + "install")) #t)))) (build-system gnu-build-system) (arguments diff --git a/gnu/packages/certs.scm b/gnu/packages/certs.scm index 6af6877423..bb66d27026 100644 --- a/gnu/packages/certs.scm +++ b/gnu/packages/certs.scm @@ -76,7 +76,7 @@ (define-public nss-certs (package (name "nss-certs") - (version "3.39") + (version "3.41") (source (origin (method url-fetch) (uri (let ((version-with-underscores @@ -87,7 +87,7 @@ "nss-" version ".tar.gz"))) (sha256 (base32 - "0jw6qlfl2g47hhx056nvnj6h92bk3sn46hy3ig61a911dzblvrkb")))) + "0bbif42fzz5gk451sv3yphdrl7m4p6zgk5jk0307j06xs3sihbmb")))) (build-system gnu-build-system) (outputs '("out")) (native-inputs diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm index 64af7ea097..7550586c1f 100644 --- a/gnu/packages/check.scm +++ b/gnu/packages/check.scm @@ -672,7 +672,7 @@ standard library.") ("python-mock" ,python-mock) ("python-pytest" ,python-pytest-bootstrap) ("python-setuptools-scm" ,python-setuptools-scm))) - (home-page "http://pytest.org") + (home-page "https://docs.pytest.org/en/latest/") (synopsis "Python testing library") (description "Pytest is a testing tool that provides auto-discovery of test modules diff --git a/gnu/packages/chemistry.scm b/gnu/packages/chemistry.scm index a493af16f5..b6345b9d27 100644 --- a/gnu/packages/chemistry.scm +++ b/gnu/packages/chemistry.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2018 Konrad Hinsen ;;; Copyright © 2018 Kei Kebreau ;;; Copyright © 2018 Efraim Flashner +;;; Copyright © 2018 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. ;;; @@ -23,6 +24,7 @@ #:use-module (guix utils) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix download) + #:use-module (guix git-download) #:use-module (gnu packages) #:use-module (gnu packages algebra) #:use-module (gnu packages boost) @@ -44,18 +46,19 @@ (package (name "avogadro") (version "1.2.0") - (source (origin - (method url-fetch) - (uri (string-append "https://github.com/cryos/avogadro/archive/" - version ".tar.gz")) - (sha256 - (base32 - "02v4h6hi1m7ilv0apdf74a8l1cm6dxnxyqp0rdaidrp3i9pf6lv4")) - (file-name (string-append name "-" version ".tar.gz")) - (patches - (search-patches "avogadro-eigen3-update.patch" - "avogadro-python-eigen-lib.patch" - "avogadro-boost148.patch")))) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/cryos/avogadro.git") + (commit version))) + (sha256 + (base32 "0258py3lkba85qhs5ynancinyym61vlp0zaq9yrfs3hhnhpzv9n2")) + (file-name (git-file-name name version)) + (patches + (search-patches "avogadro-eigen3-update.patch" + "avogadro-python-eigen-lib.patch" + "avogadro-boost148.patch")))) (build-system cmake-build-system) (arguments `(#:tests? #f diff --git a/gnu/packages/cmake.scm b/gnu/packages/cmake.scm index 5abf087557..7186cf98df 100644 --- a/gnu/packages/cmake.scm +++ b/gnu/packages/cmake.scm @@ -44,7 +44,7 @@ (define-public cmake (package (name "cmake") - (version "3.12.2") + (version "3.13.1") (source (origin (method url-fetch) (uri (string-append "https://www.cmake.org/files/v" @@ -52,7 +52,7 @@ "/cmake-" version ".tar.gz")) (sha256 (base32 - "19410mxgcyvk5q42phaclb1hz6rl08z4yj8iriq706p5k5bli5qg")) + "04123d7fgnn1fs5p0nwyq397ss89r0y4wkg9a09qiwkjsvk1rzmy")) (modules '((guix build utils))) (snippet '(begin diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm index 16afda8974..6314546667 100644 --- a/gnu/packages/compression.scm +++ b/gnu/packages/compression.scm @@ -725,13 +725,13 @@ decompression of some loosely related file formats used by Microsoft.") (version "1.8.1.2") (source (origin - (method url-fetch) - (uri (string-append "https://github.com/lz4/lz4/archive/" - "v" version ".tar.gz")) + (method git-fetch) + (uri (git-reference (url "https://github.com/lz4/lz4") + (commit (string-append "v" version)))) (sha256 (base32 - "1y93h6dyi3026gvpzdv310ldcylnnhwf32n75mdjf8x9fvkskwqj")) - (file-name (string-append name "-" version ".tar.gz")))) + "1jggv4lvfav53advnj0pwqgxzn868lrj8dc9zp73iwvqlj82mhmx")) + (file-name (git-file-name name version)))) (build-system gnu-build-system) (native-inputs `(("valgrind" ,valgrind))) ; for tests (arguments @@ -1747,7 +1747,7 @@ single-member files which can't be decompressed in parallel.") (build-system cmake-build-system) (arguments `(#:tests? #f)) ;; No tests available. - (inputs `(("boost" ,boost-cxx14) + (inputs `(("boost" ,boost) ("libiconv" ,libiconv) ("xz" ,xz))) (native-inputs `(("pkg-config" ,pkg-config))) diff --git a/gnu/packages/compton.scm b/gnu/packages/compton.scm index dec9a94eba..c5b4c4ef5f 100644 --- a/gnu/packages/compton.scm +++ b/gnu/packages/compton.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017 José Miguel Sánchez García +;;; Copyright © 2018 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. ;;; @@ -19,7 +20,7 @@ (define-module (gnu packages compton) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) - #:use-module (guix download) + #:use-module (guix git-download) #:use-module (guix build-system gnu) #:use-module (gnu packages docbook) #:use-module (gnu packages documentation) @@ -38,15 +39,16 @@ (name "compton") (version (string-filter (char-set-complement (char-set #\_)) upstream-version)) - (source (origin - (method url-fetch) - (uri (string-append - "https://github.com/chjj/" name "/archive/v" - upstream-version ".tar.gz")) - (sha256 - (base32 - "02dhlqqcwnmlf2dxg7rd4lapgqahgndzixdkbpxicq9jawmdb73v")) - (file-name (string-append name "-" version "-checkout")))) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/chjj/compton.git") + (commit (string-append "v" upstream-version)))) + (sha256 + (base32 + "0v65viilhnd2xgvmdpzc1srxszcg8kj1vhi5gy9292j48w0s2fx1")) + (file-name (git-file-name name version)))) (build-system gnu-build-system) (inputs `(("dbus" ,dbus) diff --git a/gnu/packages/coq.scm b/gnu/packages/coq.scm index 51dd5dedcf..e42f8af1ab 100644 --- a/gnu/packages/coq.scm +++ b/gnu/packages/coq.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2018 Julien Lepiller +;;; Copyright © 2019 Dan Frumin ;;; ;;; This file is part of GNU Guix. ;;; @@ -31,6 +32,7 @@ #:use-module (guix build-system gnu) #:use-module (guix build-system ocaml) #:use-module (guix download) + #:use-module (guix git-download) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix utils) @@ -444,3 +446,49 @@ provides BigN, BigZ, BigQ that used to be part of Coq standard library.") simplifying the proofs of inequalities on expressions of real numbers for the Coq proof assistant.") (license license:cecill-c))) + +(define-public coq-autosubst + ;; Latest commit on that branch, where work on supporting coq 8.6 and + ;; more recent versions of coq happen. + (let ((branch "coq86-devel") + (commit "d0d73557979796b3d4be7aac72135581c33f26f7")) + (package + (name "coq-autosubst") + (version (git-version "1" branch commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "git://github.com/uds-psl/autosubst.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1852xb5cwkjw3dlc0lp2sakwa40bjzw37qmwz4bn3vqazg1hnh6r")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f + #:phases + (modify-phases %standard-phases + (delete 'configure) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (setenv "COQLIB" (string-append (assoc-ref outputs "out") "/lib/coq/")) + (invoke "make" + (string-append "COQLIB=" (assoc-ref outputs "out") + "/lib/coq/") + "install")))))) + (native-inputs + `(("coq" ,coq))) + (home-page "https://www.ps.uni-saarland.de/autosubst/") + (synopsis "Coq library for parallel de Bruijn substitutions") + (description "Formalizing syntactic theories with variable binders is +not easy. Autosubst is a library for the Coq proof assistant to +automate this process. Given an inductive definition of syntactic objects in +de Bruijn representation augmented with binding annotations, Autosubst +synthesizes the parallel substitution operation and automatically proves the +basic lemmas about substitutions. This library contains an automation +tactic that solves equations involving terms and substitutions. This makes the +usage of substitution lemmas unnecessary. The tactic is based on our current +work on a decision procedure for the equational theory of an extension of the +sigma-calculus by Abadi et al. The library is completely written in Coq and +uses Ltac to synthesize the substitution operation.") + (license license:bsd-3)))) diff --git a/gnu/packages/cups.scm b/gnu/packages/cups.scm index 40ffc0df80..9c470c4bb6 100644 --- a/gnu/packages/cups.scm +++ b/gnu/packages/cups.scm @@ -54,7 +54,7 @@ (define-public cups-filters (package (name "cups-filters") - (version "1.21.0") + (version "1.21.5") (source(origin (method url-fetch) (uri @@ -62,7 +62,7 @@ "cups-filters-" version ".tar.xz")) (sha256 (base32 - "0fs90xx9i4h8gbpligf5kkh21llv4kf5g3bgfbx4z272xkm7bsfi")) + "0azq9j7kqy18g6vgmvrbw8i4mcqdp3cbgh7q79x1b8p92w4si6rq")) (modules '((guix build utils))) (snippet ;; install backends, banners and filters to cups-filters output @@ -177,7 +177,7 @@ filters for the PDF-centric printing workflow introduced by OpenPrinting.") (define-public cups-minimal (package (name "cups-minimal") - (version "2.2.8") + (version "2.2.10") (source (origin (method url-fetch) @@ -185,7 +185,7 @@ filters for the PDF-centric printing workflow introduced by OpenPrinting.") version "/cups-" version "-source.tar.gz")) (sha256 (base32 - "1r7r7b3nqpzc1a9dczqpj2mr8rkcwf01676v11sp4j7w4qfzqs1r")))) + "1fq52aw1mini3ld2czv5gg37wbbvh4n7yc7wzzxvbs3zpfrv5j3p")))) (build-system gnu-build-system) (arguments `(#:configure-flags diff --git a/gnu/packages/curl.scm b/gnu/packages/curl.scm index 61313af7d2..24180e0073 100644 --- a/gnu/packages/curl.scm +++ b/gnu/packages/curl.scm @@ -50,15 +50,14 @@ (define-public curl (package (name "curl") - (version "7.61.1") - (replacement curl-7.62.0) + (version "7.63.0") (source (origin (method url-fetch) (uri (string-append "https://curl.haxx.se/download/curl-" version ".tar.xz")) (sha256 (base32 - "148qv1f32290r9pwg07mccawihz4srznkzsdwdl2xllvlgb16n9x")))) + "1i38v49233jirzlfqd8fy6jyf80assa953hk7w6qmysbg562604n")))) (build-system gnu-build-system) (outputs '("out" "doc")) ;1.2 MiB of man3 pages @@ -142,19 +141,6 @@ tunneling, and so on.") "See COPYING in the distribution.")) (home-page "https://curl.haxx.se/"))) -(define-public curl-7.62.0 - (package - (inherit curl) - (version "7.62.0") - (source - (origin - (method url-fetch) - (uri (string-append "https://curl.haxx.se/download/curl-" - version ".tar.xz")) - (sha256 - (base32 - "1hbm29r3pirhn4gkcnd94ylc4jzgn3v3v7qbay9awxg7bwx69dfs")))))) - (define-public kurly (package (name "kurly") diff --git a/gnu/packages/cyrus-sasl.scm b/gnu/packages/cyrus-sasl.scm index a202f10e94..f84136e631 100644 --- a/gnu/packages/cyrus-sasl.scm +++ b/gnu/packages/cyrus-sasl.scm @@ -31,7 +31,7 @@ (define-public cyrus-sasl (package (name "cyrus-sasl") - (version "2.1.26") + (version "2.1.27") (source (origin (method url-fetch) (uri (list (string-append @@ -40,13 +40,14 @@ (string-append "ftp://ftp.cyrusimap.org/cyrus-sasl/cyrus-sasl-" version ".tar.gz"))) - (patches (search-patches "cyrus-sasl-CVE-2013-4122.patch")) (sha256 (base32 - "1hvvbcsg21nlncbgs0cgn3iwlnb3vannzwsp6rwvnn9ba4v53g4g")))) + "1m85zcpgfdhm43cavpdkhb1s2zq1b31472hq1w1gs3xh94anp1i6")))) (build-system gnu-build-system) (inputs `(("gdbm" ,gdbm) - ("mit-krb5" ,mit-krb5) ("openssl" ,openssl))) + (propagated-inputs + `(;; cyrus-sasl.pc refers to -lkrb5, so propagate it. + ("mit-krb5" ,mit-krb5))) (arguments '(#:configure-flags (list (string-append "--with-plugindir=" (assoc-ref %outputs "out") diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index bff2ee0aba..33fb530509 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -18,7 +18,7 @@ ;;; Copyright © 2016 Andy Patterson ;;; Copyright © 2016 Danny Milosavljevic ;;; Copyright © 2016, 2017, 2018 Marius Bakke -;;; Copyright © 2017 Julien Lepiller +;;; Copyright © 2017, 2018 Julien Lepiller ;;; Copyright © 2017 Thomas Danckaert ;;; Copyright © 2017 Jelle Licht ;;; Copyright © 2017 Adriano Peluso @@ -583,9 +583,13 @@ Language.") "main.stat_tables_innodb" "roles.acl_statistics" - ;; FIXME: Fixed in mysql, but we have no patch. See - ;; https://bugs.mysql.com/bug.php?id=93778 + ;; This file contains a time bomb which makes it fail after + ;; 2019-01-01. See for details. "main.mysqldump" + + ;; XXX: Fails sporadically. + "innodb_fts.crash_recovery" + ;; FIXME: This test fails on i686: ;; -myisampack: Can't create/write to file (Errcode: 17 "File exists") ;; +myisampack: Can't create/write to file (Errcode: 17 "File exists) @@ -690,7 +694,8 @@ as a drop-in replacement of MySQL.") version "/postgresql-" version ".tar.bz2")) (sha256 (base32 - "0jv26y3f10svrjxzsgqxg956c86b664azyk2wppzpa5x11pjga38")))) + "0jv26y3f10svrjxzsgqxg956c86b664azyk2wppzpa5x11pjga38")) + (patches (search-patches "postgresql-disable-resolve_symlinks.patch")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--with-uuid=e2fs") diff --git a/gnu/packages/ebook.scm b/gnu/packages/ebook.scm index 0ab482c428..99e49bc172 100644 --- a/gnu/packages/ebook.scm +++ b/gnu/packages/ebook.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015, 2016 Andreas Enge -;;; Copyright © 2016 Efraim Flashner +;;; Copyright © 2016, 2018 Efraim Flashner ;;; Copyright © 2016, 2017 Alex Griffin ;;; Copyright © 2017 Brendan Tildesley ;;; Copyright © 2017 Roel Janssen @@ -25,6 +25,7 @@ #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix git-download) #:use-module (guix build-system gnu) #:use-module (gnu packages) #:use-module (guix build-system python) @@ -247,13 +248,15 @@ designed to be used in a generic text renderer.") (name "fbreader") (version "0.99.6") (source (origin - (method url-fetch) - (uri (string-append "https://github.com/geometer/FBReader/" - "archive/" version "-freebsdport.tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/geometer/FBReader") + (commit (string-append version "-freebsdport")))) + (file-name (git-file-name name version)) (sha256 (base32 - "0gf1nl562fqkwlzcn6rgkp1j8jcixzmfsnwxbc0sm49zh8n3zqib")))) + "0c0s4silpax74kwfz3dfmzn4lkv6jsyb800vfak166vii0hvbv3d")) + (patches (search-patches "fbreader-curl-7.62.patch")))) (build-system gnu-build-system) (inputs `(("curl" ,curl) @@ -278,7 +281,13 @@ designed to be used in a generic text renderer.") (assoc-ref %outputs "out") "/lib")) #:phases (modify-phases %standard-phases - (delete 'configure)))) + (delete 'configure) + (add-after 'unpack 'fix-install-locations + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (substitute* "fbreader/desktop/Makefile" + (("/usr") out)) + #t)))))) (home-page "https://fbreader.org/") (synopsis "E-Book reader") (description "@code{fbreader} is an E-Book reader. It supports the diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index d1d88ce82c..5d8aa0e863 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -4000,8 +4000,8 @@ navigate code in a tree-like fashion.") (define-public emacs-lispy ;; Release 0.26.0 was almost 3 years ago, and there have been ~772 commits ;; since. - (let ((commit "c2a358a7a15fcf056a5b7461a8e690b481b03b80") - (revision "0")) + (let ((commit "f94cfc6b8f9c3afe7d028c366928049c011023de") + (revision "1")) (package (name "emacs-lispy") (version (git-version "0.26.0" revision commit)) @@ -4011,7 +4011,7 @@ navigate code in a tree-like fashion.") (uri (git-reference (url home-page) (commit commit))) (sha256 (base32 - "1g6756qqx2n4cx8jac6mlwayilsiyc5rz8nrqjnywvzc75xdinjd")) + "1bm2cpwizg1qfpm377gpx1af1hm5maw69if1csnk5vwaphmv8c4g")) (file-name (git-file-name name version)))) (build-system emacs-build-system) (propagated-inputs @@ -4031,10 +4031,8 @@ S-expression.") (license license:gpl3+)))) (define-public emacs-lispyville - ;; Later versions need a more recent Evil, with an evil-define-key* - ;; supporting nil for the state. - (let ((commit "b4291857ed6a49a67c4ea77522889ce51fb171ab") - (revision "0")) + (let ((commit "d28b937f0cabd8ce61e2020fe9a733ca80d82c74") + (revision "1")) (package (name "emacs-lispyville") (version (git-version "0.1" revision commit)) @@ -4044,7 +4042,7 @@ S-expression.") (uri (git-reference (url home-page) (commit commit))) (sha256 (base32 - "095zibzc3naknahdrnb59g9rbljy8wz9rkc7rf8avb3wxlwvxhm3")) + "0f6srwj1qqkfkbmp5n5pjvi6gm7b7xav05p5hrs2i83rjrakzzqx")) (file-name (git-file-name name version)))) (propagated-inputs `(("emacs-evil" ,emacs-evil) @@ -5184,35 +5182,34 @@ news items, openrc and runscripts.") (license license:gpl2+))) (define-public emacs-evil - (let ((commit "230b87212c81aaa68ef5547a6b998d9c365fe139")) - (package - (name "emacs-evil") - (version (git-version "1.2.13" "1" commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/emacs-evil/evil") - (commit commit))) - (file-name (string-append name "-" version "-checkout")) - (sha256 - (base32 - "0c9zy3bpck10gcrv79kd3h7i4ygd5bgbgy773n0lg7a2r5kwn1gx")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-undo-tree" ,emacs-undo-tree) - ("emacs-goto-chg" ,emacs-goto-chg))) - (home-page "https://github.com/emacs-evil/evil") - (synopsis "Extensible Vi layer for Emacs") - (description - "Evil is an extensible vi layer for Emacs. It emulates the + (package + (name "emacs-evil") + (version "1.2.14") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/emacs-evil/evil") + (commit version))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1833w397xhac5g3pp25szr2gyvclxy91aw27azvbmsx94pyk2a3q")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-undo-tree" ,emacs-undo-tree) + ("emacs-goto-chg" ,emacs-goto-chg))) + (home-page "https://github.com/emacs-evil/evil") + (synopsis "Extensible Vi layer for Emacs") + (description + "Evil is an extensible vi layer for Emacs. It emulates the main features of Vim, and provides facilities for writing custom extensions.") - (license license:gpl3+)))) + (license license:gpl3+))) (define-public emacs-evil-collection - (let ((commit "4e1f0e0b17153d460805a0da90d6191d66b2673d") - (revision "5")) + (let ((commit "0cfdf4ecf0420aac2a9dd29ff7b54067c3433d71") + (revision "6")) (package (name "emacs-evil-collection") (version (git-version "0.0.1" revision commit)) @@ -5224,7 +5221,7 @@ extensions.") (file-name (string-append name "-" version "-checkout")) (sha256 (base32 - "11d5ppdnb2y2mwsdd9g62h7zds962kw3nss89zv5iwgcf9f1fb5x")))) + "1igsvgxvij918myc397cjhfybmm11znc7961vnbcd5xlviq2p01y")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-evil" ,emacs-evil))) @@ -11310,39 +11307,38 @@ Org-mode. It features: (license license:gpl3+)))) (define-public emacs-fish-completion - (let ((commit "bac15fda1392a891070574dfe5d2d50b10831e8b")) - (package - (name "emacs-fish-completion") - (version (git-version "20180616" "1" commit)) - (source - (origin - (method url-fetch) - (uri (string-append - "https://gitlab.com/Ambrevar/emacs-fish-completion/repository/" - "archive.tar.gz?ref=" - commit)) - (sha256 - (base32 - "093qzdrbkl7dhjk16zq8i13kh1phyigkblcfrbgbrxjqd2ndrfdi")))) - (build-system emacs-build-system) - (inputs `(("fish" ,fish))) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'configure - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((fish (assoc-ref inputs "fish"))) - ;; Specify the absolute file names of the various - ;; programs so that everything works out-of-the-box. - (emacs-substitute-variables - "fish-completion.el" - ("fish-completion-command" - (string-append fish "/bin/fish"))))))))) - (home-page - "https://gitlab.com/Ambrevar/emacs-fish-completion") - (synopsis "Fish completion for Emacs pcomplete") - (description - "This package provides completion for the Fish shell to pcomplete (used + (package + (name "emacs-fish-completion") + (version "1.0") + (source + (origin + (method url-fetch) + (uri (string-append + "https://gitlab.com/Ambrevar/emacs-fish-completion/repository/" + "archive.tar.gz?ref=" + version)) + (sha256 + (base32 + "1hpma1c5j50ja03ibr7h1xmyv7k8j3rbvqivad47kwqhlsgw0jk0")))) + (build-system emacs-build-system) + (inputs `(("fish" ,fish))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'configure + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((fish (assoc-ref inputs "fish"))) + ;; Specify the absolute file names of the various + ;; programs so that everything works out-of-the-box. + (emacs-substitute-variables + "fish-completion.el" + ("fish-completion-command" + (string-append fish "/bin/fish"))))))))) + (home-page + "https://gitlab.com/Ambrevar/emacs-fish-completion") + (synopsis "Fish completion for Emacs pcomplete") + (description + "This package provides completion for the Fish shell to pcomplete (used by shell and Eshell). You can set it up globally with: @example @@ -11357,7 +11353,7 @@ shell/Eshell mode hook. The package @code{emacs-bash-completion} is an optional dependency: if available, @code{fish-completion-complete} can be configured to fall back on bash to further try completing. See @code{fish-completion-fallback-on-bash-p}.") - (license license:gpl3+)))) + (license license:gpl3+))) (define-public emacs-gif-screencast (let ((commit "12b25442b97b84abae74ecb5190a9d14ff7cfe5a")) @@ -13089,3 +13085,29 @@ GUI.") (description "@code{emacs-google-c-style} provides an Emacs settings file for Google C and C++ style.") (license license:gpl1+)))) + +(define-public emacs-redshank + (let ((commit "f98e68f532e622bcd464292ca4a9cf5fbea14ebb") + (revision "1")) + (package + (name "emacs-redshank") + (version (git-version "0.1" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "http://www.foldr.org/~michaelw/projects/redshank.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1jdkgvd5xy9hl5q611jwah2n05abjp7qcy9sj4k1z11x0ii62b6p")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-paredit" ,emacs-paredit))) + (home-page "http://www.foldr.org/~michaelw/emacs/redshank/") + (synopsis "Common Lisp Editing Extensions (for Emacs)") + (description "Redshank is a collection of code-wrangling Emacs macros +mostly geared towards Common Lisp, but some are useful for other Lisp +dialects, too. Redshank's code transformations aim to be expression-based (as +opposed to character-based).") + (license license:gpl1+)))) diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index ea5dd885d1..ad7ae18781 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm @@ -10,6 +10,7 @@ ;;; Copyright © 2018 Clément Lassieur ;;; Copyright © 2018 Jonathan Brielmaier ;;; Copyright © 2018 Arun Isaac +;;; Copyright © 2019 Tim Stahel ;;; ;;; This file is part of GNU Guix. ;;; @@ -1911,3 +1912,24 @@ editors.") license:cc0 ; libs/optional, libs/sexpresso license:bsd-2 ; libs/optional/tests/catch.hpp license:lgpl2.1+)))) ; libs/quazip + +(define-public gpx + (package + (name "gpx") + (version "2.5.2") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/markwal/GPX.git") + (commit version))) + (sha256 + (base32 + "1yab269x8qyf7rd04vaxyqyjv4pzz9lp4sc4dwh927k23avr3rw5")))) + (build-system gnu-build-system) + (home-page "https://github.com/markwal/GPX") + (synopsis "Converting gcode to x3g files for 3D printing") + (description + "GPX is a post processing utility for converting gcode output from 3D +slicing software to x3g files for standalone 3D printing on common 3D +printers.") + (license license:gpl2+))) diff --git a/gnu/packages/enlightenment.scm b/gnu/packages/enlightenment.scm index 2bf89b2ab9..c3aa469776 100644 --- a/gnu/packages/enlightenment.scm +++ b/gnu/packages/enlightenment.scm @@ -71,6 +71,7 @@ (uri (string-append "https://download.enlightenment.org/rel/libs/efl/efl-" version ".tar.xz")) + (patches (search-patches "efl-mesa-compat.patch")) (sha256 (base32 "0a5907h896pvpix7a6idc2fspzy6d78xrzf84k8y9fyvnd14nxs4")))) diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm index 5ca81f3d91..ce67694cfe 100644 --- a/gnu/packages/finance.scm +++ b/gnu/packages/finance.scm @@ -6,7 +6,7 @@ ;;; Copyright © 2017 Carlo Zancanaro ;;; Copyright © 2017 Theodoros Foradis ;;; Copyright © 2017 Vasile Dumitrascu -;;; Copyright © 2017 Tobias Geerinckx-Rice +;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice ;;; Copyright © 2018 Eric Bavier ;;; Copyright © 2018 Adriano Peluso ;;; Copyright © 2018, 2019 Nicolas Goaziou @@ -139,17 +139,17 @@ line client and a client based on Qt.") (package (name "ledger") (version "3.1.1") - (source (origin - (method url-fetch) - (uri (string-append - "https://github.com/ledger/ledger/archive/v" - version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "12jlv3gsjhrja25q9hrwh73cdacd2l3c2yyn8qnijav9mdhnbw4h")) - (patches (search-patches "ledger-revert-boost-python-fix.patch" - "ledger-fix-uninitialized.patch")))) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ledger/ledger.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1j4p7djkmdmd858hylrsc3inamh9z0vkfl98s9wiqfmrzw51pmxp")) + (patches (search-patches "ledger-revert-boost-python-fix.patch" + "ledger-fix-uninitialized.patch")))) (build-system cmake-build-system) (arguments `(#:modules ((guix build cmake-build-system) @@ -252,16 +252,16 @@ in ability, and easy to use.") (version "0.9.13") (source (origin - (method url-fetch) - (uri (string-append "https://github.com/stesie/geierlein" - "/archive/V" version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/stesie/geierlein.git") + (commit (string-append "V" version)))) + (file-name (git-file-name name version)) (sha256 - (base32 - "11jfa7mxvvf0ldhx0hsvjbx3xwvzvn2wrfjpms8c7qmrnqhwh4wp")))) + (base32 "00zpwr3lk2vdmd60fgdwdk0xxs52wvnm19ln2m75yfphydvkglic")))) (build-system gnu-build-system) (arguments - `(#:tests? #f ; would require npm, python and a lot more + `(#:tests? #f ; would require npm, python and a lot more #:phases (modify-phases %standard-phases (delete 'configure) ; no configure script @@ -590,13 +590,13 @@ Monero GUI client.") (version "0.9.4") (source (origin - (method url-fetch) - (uri (string-append "https://github.com/romanz/trezor-agent/archive/v" - version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/romanz/trezor-agent.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 - (base32 - "0h8jb147vpjk7mqbl4za0xdh7lblhx07n9dfk80kn2plwnvrry1x")))) + (base32 "15aaqk79d9y9nbsfznf2iscz12z5ispcj8kr8v5bc0sqqj2brs12")))) (build-system python-build-system) (arguments `(#:phases @@ -604,7 +604,7 @@ Monero GUI client.") (delete 'check) (add-after 'install 'check (lambda* (#:key outputs inputs #:allow-other-keys) - ;; Make installed package available for running the tests + ;; Make installed package available for running the tests. (add-installed-pythonpath inputs outputs) (invoke "py.test")))))) (propagated-inputs diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index d85e8fc701..7c497ccc75 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -148,14 +148,14 @@ freedesktop.org project.") (define-public libinput (package (name "libinput") - (version "1.12.1") + (version "1.12.3") (source (origin (method url-fetch) (uri (string-append "https://freedesktop.org/software/libinput/" name "-" version ".tar.xz")) (sha256 (base32 - "14l6bvgq76ls63qc9c448r435q9xiig0rv8ilx6rnjvlgg64h32p")))) + "0mg2zqbjcgj0aq7d9nwawvyhx43vakilahrc83hrfyif3a3gyrpj")))) (build-system meson-build-system) (arguments `(#:configure-flags '("-Ddocumentation=false"))) @@ -433,7 +433,7 @@ applications, X servers (rootless or fullscreen) or other display servers.") (define-public wayland-protocols (package (name "wayland-protocols") - (version "1.15") + (version "1.17") (source (origin (method url-fetch) (uri (string-append @@ -441,7 +441,7 @@ applications, X servers (rootless or fullscreen) or other display servers.") "wayland-protocols-" version ".tar.xz")) (sha256 (base32 - "1qlyf9cllr2p339xxplznh023qcwj5iisp02ikx7ps349dx75fys")))) + "0bw1sqixqk2a7mqw630cs4dlgcp5yib90vyikzm3lr05jz7ij4yz")))) (build-system gnu-build-system) (inputs `(("wayland" ,wayland))) diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index 96dc3436b4..6b641be0ef 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -647,6 +647,8 @@ programming language.") (uri (string-append "https://github.com/liballeg/allegro5/" "releases/download/" version "/allegro-" version ".tar.gz")) + (patches (search-patches + "allegro4-mesa-18.2.5-and-later.patch")) (sha256 (base32 "1p0ghkmpc4kwij1z9rzxfv7adnpy4ayi0ifahlns1bdzgmbyf88v")))) @@ -687,7 +689,7 @@ etc.") "/download/" version "/allegro-" version ".tar.gz")) (patches (search-patches - "allegro-fix-compilation-mesa-18.2.5-and-later.patch")) + "allegro-mesa-18.2.5-and-later.patch")) (sha256 (base32 "1w9a5yqi5q03b2qvmx5ff90paz0xbr9cy7i7f0xiqa65ava66q9l")))) @@ -732,6 +734,8 @@ etc.") (string-drop-right version 2) version) ".tar.gz")) + (patches (search-patches + "allegro-mesa-18.2.5-and-later.patch")) (sha256 (base32 "0cd51qrh97jrr0xdmnivqgwljpmizg8pixsgvc4blqqlaz4i9zj9")))))) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 78854074dd..5d7c89a880 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -1288,14 +1288,16 @@ fight Morgoth, the Lord of Darkness.") (version "0.7.6") (source (origin - (method url-fetch) - (uri (string-append "https://github.com/Pingus/pingus/archive/v" - version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/Pingus/pingus.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 (base32 - "0r9v6as5vi7skvvy7b0fcaimhdlzmik64pyy68plgljhsghqkkf4")) - (patches (search-patches "pingus-sdl-libs-config.patch")))) + "0wp06kcmknsnxz7bjnsndb8x062z7r23fb3yrnbfnj68qhz18y74")) + (patches (search-patches "pingus-boost-headers.patch" + "pingus-sdl-libs-config.patch")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) ("scons-python2" ,scons-python2))) @@ -2005,6 +2007,13 @@ This game is based on the GPL version of the famous game TuxRacer.") "-DCMAKE_C_FLAGS=-fpermissive") #:phases (modify-phases %standard-phases + ;; see https://github.com/supertuxkart/stk-code/issues/3557 + (add-after 'unpack 'patch-for-mesa-18.3 + (lambda _ + (substitute* "src/graphics/gl_headers.hpp" + (("#if !defined\\(USE_GLES2\\)") + "#if !defined(USE_GLES2)\n# define __gl_glext_h_")) + #t)) (add-after 'unpack 'unbundle (lambda* (#:key inputs #:allow-other-keys) (substitute* "CMakeLists.txt" @@ -2086,7 +2095,8 @@ falling, themeable graphics and sounds, and replays.") name "-" version ".tar.bz2")) (sha256 (base32 - "1kgpj2f22nnx4mwd1zis3s5ny2983aasgqsmz7wnqaq7n6a7ac85")))) + "1kgpj2f22nnx4mwd1zis3s5ny2983aasgqsmz7wnqaq7n6a7ac85")) + (patches (search-patches "wesnoth-newer-boost.patch")))) (build-system cmake-build-system) (arguments `(#:tests? #f)) ; no check target diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm index 0526566e65..6ea89dc92a 100644 --- a/gnu/packages/geo.scm +++ b/gnu/packages/geo.scm @@ -637,7 +637,8 @@ utilities for data translation and processing.") (synopsis "Spatial database extender for PostgreSQL") (description "PostGIS is a spatial database extender for PostgreSQL object-relational database. It adds support for geographic objects allowing -location queries to be run in SQL.") +location queries to be run in SQL. This package provides a PostgreSQL +extension.") (license (list ;; General license license:gpl2+ diff --git a/gnu/packages/ghostscript.scm b/gnu/packages/ghostscript.scm index b46451d94e..d8c0050513 100644 --- a/gnu/packages/ghostscript.scm +++ b/gnu/packages/ghostscript.scm @@ -135,7 +135,7 @@ printing, and psresize, for adjusting page sizes.") (define-public ghostscript (package (name "ghostscript") - (version "9.24") + (version "9.26") (source (origin (method url-fetch) @@ -145,10 +145,8 @@ printing, and psresize, for adjusting page sizes.") "/ghostscript-" version ".tar.xz")) (sha256 (base32 - "1mk922rnml93w2g42yxiyn8xqanc50cm65irrgh0b6lp4kgifjfl")) - (patches (search-patches "ghostscript-CVE-2018-16509.patch" - "ghostscript-bug-699708.patch" - "ghostscript-no-header-creationdate.patch" + "1645f47all5w27bfhiq15vycdm954lmr6agqkrp68ksq6xglgvch")) + (patches (search-patches "ghostscript-no-header-creationdate.patch" "ghostscript-no-header-id.patch" "ghostscript-no-header-uuid.patch")) (modules '((guix build utils))) diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm index 62555d11f5..b673cbffe6 100644 --- a/gnu/packages/gl.scm +++ b/gnu/packages/gl.scm @@ -53,6 +53,7 @@ #:use-module (guix git-download) #:use-module (guix build-system gnu) #:use-module (guix build-system cmake) + #:use-module (guix build-system meson) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix utils) @@ -220,7 +221,7 @@ also known as DXTn or DXTC) for Mesa.") (define-public mesa (package (name "mesa") - (version "18.1.8") + (version "18.3.1") (source (origin (method url-fetch) @@ -232,7 +233,7 @@ also known as DXTn or DXTC) for Mesa.") version "/mesa-" version ".tar.xz"))) (sha256 (base32 - "06y28hpynb8w1qagznr85ml48hf8264w4ji6cmvm2fy7x5zyc6xx")) + "0qyw9dj2p9n91qzc4ylck2an7ibssjvzi2bjcpv2ajk851yq47sv")) (patches (search-patches "mesa-skip-disk-cache-test.patch")))) (build-system gnu-build-system) @@ -252,6 +253,7 @@ also known as DXTn or DXTC) for Mesa.") ("libva" ,(force libva-without-mesa)) ("libxml2" ,libxml2) ;; TODO: Add 'libxml2-python' for OpenGL ES 1.1 and 2.0 support + ("libxrandr" ,libxrandr) ("libxvmc" ,libxvmc) ,@(match (%current-system) ((or "x86_64-linux" "i686-linux") @@ -263,18 +265,15 @@ also known as DXTn or DXTC) for Mesa.") ("wayland-protocols" ,wayland-protocols))) (native-inputs `(("pkg-config" ,pkg-config) - ("python" ,python-2) - ("python2-mako" ,python2-mako) + ("python" ,python) + ("python-mako" ,python-mako) ("which" ,(@ (gnu packages base) which)))) (arguments `(#:configure-flags '(,@(match (%current-system) - ("armhf-linux" - ;; TODO: Add etnaviv,imx when libdrm supports etnaviv. - '("--with-gallium-drivers=freedreno,nouveau,r300,r600,swrast,tegra,vc4,virgl")) - ("aarch64-linux" + ((or "armhf-linux" "aarch64-linux") ;; TODO: Fix svga driver for aarch64 and armhf. - '("--with-gallium-drivers=freedreno,nouveau,pl111,r300,r600,swrast,tegra,vc4,virgl")) + '("--with-gallium-drivers=etnaviv,freedreno,imx,nouveau,pl111,r300,r600,swrast,tegra,v3d,vc4,virgl")) (_ '("--with-gallium-drivers=i915,nouveau,r300,r600,radeonsi,svga,swrast,virgl"))) ;; Enable various optional features. TODO: opencl requires libclc, @@ -289,9 +288,6 @@ also known as DXTn or DXTC) for Mesa.") "--enable-gles2" "--enable-gbm" "--enable-shared-glapi" - ;; Without floating point texture support, drivers such as Nouveau - ;; are stuck at OpenGL 2.1 instead of OpenGL 3.0+. - "--enable-texture-float" ;; Enable Vulkan on i686-linux and x86-64-linux. ,@(match (%current-system) @@ -456,14 +452,14 @@ glxgears, glxheads, and glxinfo.") (define-public glew (package (name "glew") - (version "2.0.0") + (version "2.1.0") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/glew/glew/" version "/glew-" version ".tgz")) (sha256 (base32 - "0r37fg2s1f0jrvwh6c8cz5x6v4wqmhq42qm15cs9qs349q5c6wn5")) + "159wk5dc0ykjbxvag5i1m2mhp23zkk6ra04l26y3jc3nwvkr3ph4")) (modules '((guix build utils))) (snippet '(begin @@ -546,7 +542,7 @@ OpenGL graphics API.") (define-public libepoxy (package (name "libepoxy") - (version "1.5.2") + (version "1.5.3") (source (origin (method url-fetch) (uri (string-append @@ -554,10 +550,11 @@ OpenGL graphics API.") version "/libepoxy-" version ".tar.xz")) (sha256 (base32 - "1n57xj5i6giw4mp5s59w1m9bm33sd6gjg7r00dzzvcwya6326mm9")))) + "0ga3qjv50x37my6pw5xr14g5n6z78hy5s8s06kays8c3ab2mha80")))) (arguments `(#:phases (modify-phases %standard-phases + (delete 'bootstrap) (add-before 'configure 'patch-paths (lambda* (#:key inputs #:allow-other-keys) @@ -569,7 +566,7 @@ OpenGL graphics API.") (("libGL.so.1") (string-append mesa "/lib/libGL.so.1")) (("libEGL.so.1") (string-append mesa "/lib/libEGL.so.1"))) #t)))))) - (build-system gnu-build-system) + (build-system meson-build-system) (native-inputs `(("pkg-config" ,pkg-config) ("python" ,python))) diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm index 946ed2ba19..5d2df5442f 100644 --- a/gnu/packages/glib.scm +++ b/gnu/packages/glib.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès +;;; Copyright © 2013, 2014, 2015, 2016, 2019 Ludovic Courtès ;;; Copyright © 2013, 2015 Andreas Enge ;;; Copyright © 2013 Nikita Karetnikov ;;; Copyright © 2014, 2015, 2016, 2017, 2018 Mark H Weaver @@ -82,7 +82,7 @@ (define dbus (package (name "dbus") - (version "1.12.10") + (version "1.12.12") (source (origin (method url-fetch) (uri (string-append @@ -90,7 +90,7 @@ version ".tar.gz")) (sha256 (base32 - "1xywijmgfad4m3cxp0b4l6kvypwc53ckmhwwzbrc6n32jwj3ssab")) + "1y7mxhkw2shd9mi9s62k81lz8npjkrafapr4fyfms7hs04kg4ilm")) (patches (search-patches "dbus-helper-search-path.patch")))) (build-system gnu-build-system) (arguments @@ -159,7 +159,7 @@ shared NFS home directories.") (define glib (package (name "glib") - (version "2.56.2") + (version "2.56.3") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" @@ -167,7 +167,7 @@ shared NFS home directories.") name "-" version ".tar.xz")) (sha256 (base32 - "12d738n1wpvrn39zvy9xazg5h6vzyiwsw8z1qibcj09mh4bbsjnn")) + "1cjcqz77m62zrx7224vl3f2cxwqf28r5xpqb2jy7av0vr2scb959")) (patches (search-patches "glib-tests-timer.patch")))) (build-system gnu-build-system) (outputs '("out" ; everything @@ -194,9 +194,6 @@ shared NFS home directories.") (modify-phases %standard-phases (add-before 'build 'pre-build (lambda* (#:key inputs outputs #:allow-other-keys) - ;; For building deterministic pyc files - (setenv "DETERMINISTIC_BUILD" "1") - ;; For tests/gdatetime.c. (setenv "TZDIR" (string-append (assoc-ref inputs "tzdata") @@ -495,7 +492,7 @@ by GDBus included in Glib.") (define libsigc++ (package (name "libsigc++") - (version "2.10.0") + (version "2.10.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/libsigc++/" @@ -503,7 +500,7 @@ by GDBus included in Glib.") name "-" version ".tar.xz")) (sha256 (base32 - "10cd54l4zihss9qxfhd2iip2k7mr292k37i54r2cpgv0c8sdchzq")))) + "00v08km4wwzbh6vjxb21388wb9dm6g2xh14rgwabnv4c2wk5z8n9")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) ("m4" ,m4))) @@ -722,7 +719,15 @@ up the Gnome environment, and are used in many unrelated projects.") "0z261fwrszxb28ccg3hsg9rizig4s84zvwmx6y31a4pyv7bvs5w3"))))))) (build-system gnu-build-system) (arguments - '(#:configure-flags '("--enable-vala-bindings"))) + '(#:configure-flags '("--enable-vala-bindings") + + ;; '../tools/glib-*.py' generate files but the target dependencies are + ;; (presumably) not fully specified in the makefile, leading to + ;; parallel build errors like: + ;; + ;; EOFError: EOF read where object expected + ;; make[2]: *** [Makefile:1906: _gen/register-dbus-glib-marshallers-body.h] Error 1 + #:parallel-build? #f)) (native-inputs `(("glib" ,glib "bin") ; uses glib-mkenums ("gobject-introspection" ,gobject-introspection) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 5795a8d103..850bfcf5e9 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -364,12 +364,6 @@ formats like PNG, SVG, PDF and EPS.") (arguments '(#:phases (modify-phases %standard-phases - (add-before 'check 'use-empty-ssl-cert-file - (lambda _ - ;; The ca-certificates.crt is not available in the build - ;; environment. - (setenv "SSL_CERT_FILE" "/dev/null") - #t)) (add-before 'check 'disable-failing-tests (lambda _ ;; The PicasaWeb API tests fail with gnome-online-accounts@3.24.2. @@ -2309,16 +2303,15 @@ configuration storage systems.") (define-public json-glib (package (name "json-glib") - (version "1.4.2") + (version "1.4.4") (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 - "1j3dd2xj1l9fi12m1gpmfgf5p4c1w0i970m6k62k3is98yj0jxrd")))) + "0ixwyis47v5bkx6h8a1iqlw3638cxcv57ivxv4gw2gaig51my33j")))) (build-system meson-build-system) (native-inputs `(("gettext" ,gettext-minimal) @@ -2411,7 +2404,7 @@ library.") (define-public glib-networking (package (name "glib-networking") - (version "2.54.1") + (version "2.58.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/glib-networking/" @@ -2419,29 +2412,18 @@ library.") name "-" version ".tar.xz")) (sha256 (base32 - "0bq16m9nh3gcz9x2fvygr0iwxd2pxcbrm3lj3kihsnh1afv8g9za")) - (patches - (search-patches "glib-networking-ssl-cert-file.patch")))) - (build-system gnu-build-system) + "0s006gs9nsq6mg31spqha1jffzmp6qjh10y27h0fxf1iw1ah5ymx")) + (patches (search-patches "glib-networking-connection.patch")))) + (build-system meson-build-system) (arguments - `(#:configure-flags - '("--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt") - #:phases - (modify-phases %standard-phases - (add-before 'configure 'patch-giomoduledir - ;; Install GIO modules into $out/lib/gio/modules. - (lambda _ - (substitute* "configure" - (("GIO_MODULE_DIR=.*") - (string-append "GIO_MODULE_DIR=" %output - "/lib/gio/modules\n"))) - #t)) - (add-before 'check 'use-empty-ssl-cert-file - (lambda _ - ;; The ca-certificates.crt is not available in the build - ;; environment. - (setenv "SSL_CERT_FILE" "/dev/null") - #t))))) + `(#:configure-flags '("-Dlibproxy_support=false") + #:phases (modify-phases %standard-phases + (add-before 'check 'disable-TLSv1.3 + (lambda _ + ;; XXX: One test fails when TLS 1.3 is enabled, fixed in 2.60.0: + ;; . + (setenv "G_TLS_GNUTLS_PRIORITY" "NORMAL:-VERS-TLS1.3") + #t))))) (native-inputs `(("pkg-config" ,pkg-config) ("intltool" ,intltool))) @@ -2531,9 +2513,6 @@ libxml to ease remote use of the RESTful API.") ;; The 'check-local' target runs 'env LANG=C sort -u', ;; unset 'LC_ALL' to make 'LANG' working. (unsetenv "LC_ALL") - ;; The ca-certificates.crt is not available in the build - ;; environment. - (setenv "SSL_CERT_FILE" "/dev/null") ;; HTTPD in Guix uses mod_event and does not build prefork. (substitute* "tests/httpd.conf" (("^LoadModule mpm_prefork_module.*$") "\n")) @@ -2571,7 +2550,8 @@ libxml to ease remote use of the RESTful API.") "" ;URI of subject "127.0.0.1" ;IP address of subject "" ;signing? - "" ;encryption? + "" ;encryption (RSA)? + "" ;data encryption? "" ;sign OCSP requests? "" ;sign code? "" ;time stamping? @@ -5678,7 +5658,7 @@ like switching to windows and launching applications.") (define-public gtk-vnc (package (name "gtk-vnc") - (version "0.7.1") + (version "0.9.0") (source (origin (method url-fetch) @@ -5687,7 +5667,7 @@ like switching to windows and launching applications.") name "-" version ".tar.xz")) (sha256 (base32 - "1cdaywj5lqnl5b22qzd7k7lmacsnmk8b8rc4drk6gvqmcrlsljzk")))) + "1dya1wc9vis8h0fv625pii1n70cckf1xjg1m2hndz989d118i6is")))) (build-system gnu-build-system) (arguments '(#:configure-flags '("--with-gtk=3.0"))) @@ -5767,7 +5747,7 @@ easy, safe, and automatic.") ("dbus" ,dbus) ("gstreamer" ,gstreamer) ("gst-plugins-base" ,gst-plugins-base) - ("sqlite" ,sqlite-with-fts5) + ("sqlite" ,sqlite) ("nettle" ,nettle) ; XXX why is this needed? ("poppler" ,poppler) ("libgsf" ,libgsf) diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index 6e9e6fdc2a..1f299a2b13 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -442,7 +442,7 @@ in the Mozilla clients.") (define-public nss (package (name "nss") - (version "3.39") + (version "3.41") (source (origin (method url-fetch) (uri (let ((version-with-underscores @@ -453,7 +453,7 @@ in the Mozilla clients.") "nss-" version ".tar.gz"))) (sha256 (base32 - "0jw6qlfl2g47hhx056nvnj6h92bk3sn46hy3ig61a911dzblvrkb")) + "0bbif42fzz5gk451sv3yphdrl7m4p6zgk5jk0307j06xs3sihbmb")) ;; Create nss.pc and nss-config. (patches (search-patches "nss-pkgconfig.patch" "nss-increase-test-timeout.patch")))) @@ -493,7 +493,7 @@ in the Mozilla clients.") (lambda _ ;; Use 127.0.0.1 instead of $HOST.$DOMSUF as HOSTADDR for testing. ;; The later requires a working DNS or /etc/hosts. - (setenv "DOMSUF" "(none)") + (setenv "DOMSUF" "localdomain") (setenv "USE_IP" "TRUE") (setenv "IP_ADDRESS" "127.0.0.1") @@ -501,7 +501,7 @@ in the Mozilla clients.") ;; leading to test failures: ;; . To ;; work around that, set the time to roughly the release date. - (invoke "faketime" "2018-09-01" "./nss/tests/all.sh"))) + (invoke "faketime" "2018-12-01" "./nss/tests/all.sh"))) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) @@ -827,7 +827,7 @@ from forcing GEXP-PROMISE." ("libxt" ,libxt) ("libffi" ,libffi) ("ffmpeg" ,ffmpeg) - ("libvpx" ,libvpx) + ("libvpx" ,libvpx-1.7) ("icu4c" ,icu4c) ("pixman" ,pixman) ("pulseaudio" ,pulseaudio) diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm index f43a0fc2f5..48a4dffa46 100644 --- a/gnu/packages/gstreamer.scm +++ b/gnu/packages/gstreamer.scm @@ -102,7 +102,7 @@ arrays of data.") (define-public gstreamer (package (name "gstreamer") - (version "1.14.3") + (version "1.14.4") (source (origin (method url-fetch) @@ -111,7 +111,7 @@ arrays of data.") version ".tar.xz")) (sha256 (base32 - "0mh4755an4gk0z3ygqhjpdjk0r2cwswbpwfgl0x6qmnln4757bhk")))) + "1izzhnlsy83rgr4zl3jcl1sryxqbbigrrqw3j4x3nnphqnb6ckzr")))) (build-system gnu-build-system) (outputs '("out" "doc")) (arguments @@ -150,7 +150,7 @@ This package provides the core library and elements.") (define-public gst-plugins-base (package (name "gst-plugins-base") - (version "1.14.3") + (version "1.14.4") (source (origin (method url-fetch) @@ -158,7 +158,7 @@ This package provides the core library and elements.") name "-" version ".tar.xz")) (sha256 (base32 - "0lkr1fm3bz21nqq9vi5v74mlxw6dd6i7piw00fhc5zz0dg1ikczh")))) + "0qbllw4kphchwhy4p7ivdysigx69i97gyw6q0rvkx1j81r4kjqfa")))) (build-system gnu-build-system) (outputs '("out" "doc")) (propagated-inputs @@ -209,16 +209,17 @@ for the GStreamer multimedia library.") (define-public gst-plugins-good (package (name "gst-plugins-good") - (version "1.14.3") + (version "1.14.4") (source (origin (method url-fetch) (uri (string-append "https://gstreamer.freedesktop.org/src/" name "/" name "-" version ".tar.xz")) + (patches (search-patches "gst-plugins-good-libvpx-compat.patch")) (sha256 (base32 - "0pgzgfqbfp8lz2ns68797xfxdr0cr5rpi93wd1h2grhbmzkbq4ji")))) + "0y89qynb4b6fry3h43z1r99qslmi3m8xhlq0i5baq2nbc0r5b2sz")))) (build-system gnu-build-system) (inputs `(("aalib" ,aalib) @@ -249,7 +250,8 @@ for the GStreamer multimedia library.") ("pkg-config" ,pkg-config) ("python-wrapper" ,python-wrapper))) (arguments - `(#:phases + `(#:make-flags '("CFLAGS=-DHAVE_VPX_1_8") ;XXX: Remove for >1.14. + #:phases (modify-phases %standard-phases (add-after 'unpack 'disable-failing-tests @@ -271,14 +273,14 @@ developers consider to have good quality code and correct functionality.") (define-public gst-plugins-bad (package (name "gst-plugins-bad") - (version "1.14.3") + (version "1.14.4") (source (origin (method url-fetch) (uri (string-append "https://gstreamer.freedesktop.org/src/" name "/" name "-" version ".tar.xz")) (sha256 (base32 - "1mczcna91f3kkk3yv5fkfa8nmqdr9d93aq9z4d8sv18vkiflw8mj")))) + "1r8dma3x127rbx42yab7kwq7q1bhkmvz2ykn0rnqnzl95q74w2wi")))) (outputs '("out" "doc")) (build-system gnu-build-system) (arguments @@ -346,7 +348,7 @@ par compared to the rest.") (define-public gst-plugins-ugly (package (name "gst-plugins-ugly") - (version "1.14.3") + (version "1.14.4") (source (origin (method url-fetch) @@ -354,7 +356,7 @@ par compared to the rest.") name "/" name "-" version ".tar.xz")) (sha256 (base32 - "01i31g5rvw36rjlyi9w24n0g1xa6053d14vaiba6vqpas727z123")))) + "08vd1xgwmapnviah47zv5h2r02qdd20y4f07rvv5zhv6y4vxh0mc")))) (build-system gnu-build-system) (inputs `(("gst-plugins-base" ,gst-plugins-base) @@ -381,7 +383,7 @@ distribution problems in some jurisdictions, e.g. due to patent threats.") (define-public gst-libav (package (name "gst-libav") - (version "1.14.3") + (version "1.14.4") (source (origin (method url-fetch) (uri (string-append @@ -389,7 +391,7 @@ distribution problems in some jurisdictions, e.g. due to patent threats.") name "-" version ".tar.xz")) (sha256 (base32 - "0xxnb80yhfa42x4wx1928zydaal35b2mcj0zdcdsv1apnjdm40wv")) + "1nk5g24z2xx5kaw5cg8dv8skdc516inahmkymcz8bxqxj28qbmyz")) (modules '((guix build utils))) (snippet '(begin @@ -417,7 +419,7 @@ compression formats through the use of the libav library.") (define-public python-gst (package (name "python-gst") - (version "1.14.3") + (version "1.14.4") (source (origin (method url-fetch) (uri (string-append @@ -425,7 +427,7 @@ compression formats through the use of the libav library.") "gst-python-" version ".tar.xz")) (sha256 (base32 - "01w3mpimbm8drifhrkvpns79h15kd9h9v0dynr7yb12kjrnfghsg")))) + "06ssx19fs6pg4d32p9ph9w4f0xwmxaw2dxfj17rqkn5njd7v5zfh")))) (build-system gnu-build-system) (arguments ;; XXX: Factorize python-sitedir with python-build-system. diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index ccb63e71d1..b8377ff514 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -78,7 +78,9 @@ #:use-module (gnu packages cups) #:use-module (gnu packages xml) #:use-module (gnu packages xorg) - #:use-module (gnu packages xdisorg)) + #:use-module (gnu packages xdisorg) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-26)) (define-public atk (package @@ -115,16 +117,14 @@ tools have full access to view and control running applications.") (define-public cairo (package (name "cairo") - (version "1.14.12") + (version "1.16.0") (source (origin (method url-fetch) (uri (string-append "https://cairographics.org/releases/cairo-" version ".tar.xz")) (sha256 (base32 - "05mzyxkvsfc1annjw2dja8vka01ampp9pp93lg09j8hba06g144c")) - (patches (search-patches "cairo-CVE-2016-9082.patch" - "cairo-setjmp-wrapper.patch")))) + "0c930mk5xr2bshbdljv005j3j8zr47gqmkry3q6qgvqky6rjjysy")))) (build-system gnu-build-system) (propagated-inputs `(("fontconfig" ,fontconfig) @@ -182,7 +182,7 @@ affine transformation (scale, rotation, shear, etc.).") (define-public harfbuzz (package (name "harfbuzz") - (version "1.8.8") + (version "2.2.0") (source (origin (method url-fetch) (uri (string-append "https://www.freedesktop.org/software/" @@ -190,7 +190,7 @@ affine transformation (scale, rotation, shear, etc.).") version ".tar.bz2")) (sha256 (base32 - "1ag3scnm1fcviqgx2p4858y433mr0ndqw6zccnccrqcr9mpcird8")))) + "047q63jr513azf3g1y7f5xn60b4jdjs9zsmrx04sfw5rasyzrk5p")))) (build-system gnu-build-system) (outputs '("out" "bin")) ; 160K, only hb-view depend on cairo @@ -458,7 +458,7 @@ highlighting and other features typical of a source code editor.") "0ixfmnxjylx06mjaw116apymwi1a8rnkmkbbvqaxxg2pfwy9fl6x")))) (build-system meson-build-system) (arguments - '(#:configure-flags '("-Dinstalled-tests=false") + `(#:configure-flags '("-Dinstalled_tests=false") #:phases (modify-phases %standard-phases (add-after @@ -473,12 +473,15 @@ highlighting and other features typical of a source code editor.") ;; ERROR:pixbuf-jpeg.c:74:test_type9_rotation_exif_tag: ;; assertion failed (error == NULL): Data differ ;; (gdk-pixbuf-error-quark, 0) - ((".*'pixbuf-jpeg'.*") "") - ;; Extend the timeout of the test suite. - ;; TODO: Check upstreaming effort: - ;; https://gitlab.gnome.org/GNOME/gdk-pixbuf/merge_requests/21 - (("300") "1800")) + ((".*'pixbuf-jpeg'.*") "")) #t)) + ;; The slow tests take longer than the specified timeout. + ,@(if (any (cute string=? <> (%current-system)) + '("armhf-linux" "aarch64-linux")) + '((replace 'check + (lambda _ + (invoke "meson" "test" "--timeout-multiplier" "5")))) + '()) (add-before 'configure 'aid-install-script (lambda* (#:key outputs #:allow-other-keys) ;; "build-aux/post-install.sh" invokes `gdk-pixbuf-query-loaders` @@ -690,7 +693,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.24.0") + (version "3.24.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -698,9 +701,18 @@ application suites.") name "-" version ".tar.xz")) (sha256 (base32 - "1a1jbsh9fg5ykmwrcl3svy7xfvx0b87d314qsx9n483pj8w93s82")) + "14l8mimdm44r3h5pn5hzigl1z25jna8jxvb16l88v4nc4zj0afsv")) (patches (search-patches "gtk3-respect-GUIX_GTK3_PATH.patch" - "gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch")))) + "gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Version 3.24.2 was released with a typo that broke the build. + ;; See upstream commit 2905fc861acda3d134a198e56ef2f6c962ad3061 + ;; at + (substitute* "docs/tools/shooter.c" + (("gdk_screen_get_dfeault") "gdk_screen_get_default")) + #t)))) (outputs '("out" "bin" "doc")) (propagated-inputs `(("at-spi2-atk" ,at-spi2-atk) @@ -1347,7 +1359,7 @@ and routines to assist in editing internationalized text.") (define-public girara (package (name "girara") - (version "0.2.9") + (version "0.3.2") (source (origin (method url-fetch) (uri @@ -1355,7 +1367,7 @@ and routines to assist in editing internationalized text.") version ".tar.xz")) (sha256 (base32 - "0lkxrfna818wkkr2f6mdzf15y5z8xl1b9592ylmzjbqsqya3w7x8")))) + "1kc6n1mxjxa7wvwnqy94qfg8l9jvx9qrvrr2kc7m4g0z20x3a00p")))) (native-inputs `(("pkg-config" ,pkg-config) ("check" ,check) ("gettext" ,gettext-minimal) diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm index 117d309c92..ae05197e16 100644 --- a/gnu/packages/guile-xyz.scm +++ b/gnu/packages/guile-xyz.scm @@ -560,6 +560,45 @@ HTML (via SXML) or any other format for rendering.") It has a nice, simple s-expression based syntax.") (license license:lgpl3+))) +(define-public guile-squee + (let ((commit "a85902a92bf6f58a1d35fd974a01ade163deda8d") + (revision "0")) + (package + (name "guile-squee") + (version (string-append "0-" revision "." (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://notabug.org/cwebber/guile-squee.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0p1lpsp4kx57j3ai1dkxilm4ziavzzx8wbbc42m3hpziq0a7qz5z")))) + (build-system guile-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "squee.scm" + (("dynamic-link \"libpq\"") + (string-append + "dynamic-link \"" + (assoc-ref inputs "postgresql") "/lib/libpq.so" + "\""))) + #t))))) + (inputs + `(("postgresql" ,postgresql))) + (native-inputs + `(("guile" ,guile-2.2))) + (home-page "https://notabug.org/cwebber/guile-squee") + (synopsis "Connect to PostgreSQL using Guile") + (description + "@code{squee} is a Guile library for connecting to PostgreSQL databases +using Guile's foreign function interface.") + (license license:lgpl3+)))) + (define-public guile-colorized (package (name "guile-colorized") @@ -1798,14 +1837,14 @@ interface for reading articles in any format.") (define-public guile-redis (package (name "guile-redis") - (version "1.0.0") + (version "1.3.0") (home-page "https://github.com/aconchillo/guile-redis") (source (origin (method url-fetch) (uri (string-append home-page "/archive/" version ".tar.gz")) (sha256 (base32 - "1dp5fmqvma59pvp1nfpq6hqgbmjici8sd1y8llahl87fynw1dvr9")))) + "1li70a2716my9q9zfq0qn2x5d1cir9k2vx0jm9glm464yaf1vj39")))) (build-system gnu-build-system) (native-inputs `(("autoconf" ,autoconf) diff --git a/gnu/packages/icu4c.scm b/gnu/packages/icu4c.scm index 2d28107e81..6e93d6aed9 100644 --- a/gnu/packages/icu4c.scm +++ b/gnu/packages/icu4c.scm @@ -32,7 +32,7 @@ (define-public icu4c (package (name "icu4c") - (version "62.1") + (version "63.1") (source (origin (method url-fetch) (uri (string-append @@ -42,7 +42,7 @@ (string-map (lambda (x) (if (char=? x #\.) #\_ x)) version) "-src.tgz")) (sha256 - (base32 "18ssgnwzzpm1g1fvbm9h1fvryiwxvvn5wc3fdakdsl33cs6qdn9x")))) + (base32 "17fbk0lm2clsxbmjzvyp245ayx0n4chji3ky1f3fbz2ljjv91i05")))) (build-system gnu-build-system) (inputs `(("perl" ,perl))) diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index 5975fc10ae..1f1c8433d1 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -466,7 +466,7 @@ extracting icontainer icon files.") (define-public libtiff (package (name "libtiff") - (version "4.0.9") + (version "4.0.10") (source (origin (method url-fetch) @@ -474,11 +474,7 @@ extracting icontainer icon files.") version ".tar.gz")) (sha256 (base32 - "1kfg4q01r4mqn7dj63ifhi6pmqzbf4xax6ni6kkk81ri5kndwyvf")) - (patches (search-patches "libtiff-CVE-2017-9935.patch" - "libtiff-CVE-2017-18013.patch" - "libtiff-CVE-2018-8905.patch" - "libtiff-CVE-2018-10963.patch")))) + "1r4np635gr6zlc0bic38dzvxia6iqzcrary4n1ylarzpr8fd2lic")))) (build-system gnu-build-system) (outputs '("out" "doc")) ;1.3 MiB of HTML documentation @@ -1302,14 +1298,14 @@ PNG, and performs PNG integrity checks and corrections.") (define-public libjpeg-turbo (package (name "libjpeg-turbo") - (version "2.0.0") + (version "2.0.1") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/" name "/" version "/" name "-" version ".tar.gz")) (sha256 (base32 - "0s48zz6awd493hmb200abmsizh68fh1jmz98r41n4c8dbl87d23p")))) + "1zv6z093l3x3jzygvni7b819j7xhn6d63jhcdrckj7fz67n6ry75")))) (build-system cmake-build-system) (native-inputs `(("nasm" ,nasm))) diff --git a/gnu/packages/imagemagick.scm b/gnu/packages/imagemagick.scm index fe0923f479..dafe8c76ed 100644 --- a/gnu/packages/imagemagick.scm +++ b/gnu/packages/imagemagick.scm @@ -48,14 +48,14 @@ ;; The 7 release series has an incompatible API, while the 6 series is still ;; maintained. Don't update to 7 until we've made sure that the ImageMagick ;; users are ready for the 7-series API. - (version "6.9.10-14") + (version "6.9.10-16") (source (origin (method url-fetch) (uri (string-append "mirror://imagemagick/ImageMagick-" version ".tar.xz")) (sha256 (base32 - "0vcfjvdk9in92x808djvy94l5gylpgds4a7mlr8jrxsv9snx88yi")))) + "1ylbv69r8l3d4za4i8q41cs6lq06mnhiq4qm03rvs3vp3gyp1m9x")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--with-frozenpaths" "--without-gcc-arch") diff --git a/gnu/packages/libevent.scm b/gnu/packages/libevent.scm index 3519eb2c25..b3a5471527 100644 --- a/gnu/packages/libevent.scm +++ b/gnu/packages/libevent.scm @@ -124,14 +124,14 @@ limited support for fork events.") (define-public libuv (package (name "libuv") - (version "1.23.0") + (version "1.24.0") (source (origin (method url-fetch) (uri (string-append "https://dist.libuv.org/dist/v" version "/libuv-v" version ".tar.gz")) (sha256 (base32 - "09yf7c71n8b80nbsv4lsmq5nqmb0rylhpx3z9jgkv5za9lr6sx6i")))) + "01pg0zsfr8mxlpipkbpw0dpsl26x5s966f5br7dx9ac29abk419q")))) (build-system gnu-build-system) (arguments '(;; XXX: Some tests want /dev/tty, attempt to make connections, etc. diff --git a/gnu/packages/libreoffice.scm b/gnu/packages/libreoffice.scm index 6a9fff296e..b047c34a0b 100644 --- a/gnu/packages/libreoffice.scm +++ b/gnu/packages/libreoffice.scm @@ -966,9 +966,48 @@ converting QuarkXPress file format. It supports versions 3.1 to 4.1.") (file-name "libreoffice-mdds.patch") (sha256 (base32 - "0apbmammmp4pk473xiv5vk50r4c5gjvqzf9jkficksvz58q6114f")))) - (search-patches "libreoffice-icu.patch" - "libreoffice-glm.patch"))))) + "0apbmammmp4pk473xiv5vk50r4c5gjvqzf9jkficksvz58q6114f"))) + ;; The Poppler API changed rapidly in the versions leading 0.72. + ;; Thus, we need several patches from upstream, each adapting to + ;; different Poppler changes since version 0.68. + (origin + (method url-fetch) + (uri (string-append "https://github.com/LibreOffice/core/commit/" + "1688a395d05125b83eac6cd5c43f0e3f2f66c491" + ".patch")) + (file-name "libreoffice-poppler-compat.patch") + (sha256 + (base32 + "0ia5avmj772mrgs6m4qqf01hs8hzpy3nafidj7w7gqx2zz2s5ih9"))) + (origin + (method url-fetch) + (uri (string-append "https://github.com/LibreOffice/core/commit/" + "5e8bdd9203dd642111c62a6668ee665a20d4ba19" + ".patch")) + (file-name "libreoffice-poppler-gbool.patch") + (sha256 + (base32 + "19kc74h5vnk48l2vny8zmm2lkxpwc7g8n9d3wwpg99748dvbmikd"))) + (origin + (method url-fetch) + (uri (string-append "https://github.com/LibreOffice/core/commit/" + "8ff41a26caf51544699863c89598d37d93dc1b21" + ".patch")) + (file-name "libreoffice-poppler-0.71.patch") + (sha256 + (base32 + "1dsd0gynjf7d6412dd2sx70xa2s8kld7ibyjdkwg5w9hhi2zxw2f")))) + (search-patches "libreoffice-boost.patch" + "libreoffice-icu.patch" + "libreoffice-glm.patch"))) + (modules '((guix build utils))) + (snippet + '(begin + (for-each (lambda (file) + ;; Adjust to renamed function in Poppler 0.72. + (substitute* file (("getCString") "c_str"))) + (find-files "sdext/source/pdfimport/xpdfwrapper")) + #t)))) (build-system glib-or-gtk-build-system) (native-inputs `(("bison" ,bison) diff --git a/gnu/packages/libusb.scm b/gnu/packages/libusb.scm index e27cffa331..f0725d77e8 100644 --- a/gnu/packages/libusb.scm +++ b/gnu/packages/libusb.scm @@ -368,10 +368,10 @@ connections from and to iOS devices by connecting to a socket provided by a "m")))) (propagated-inputs `(("openssl" ,openssl) + ("libplist" ,libplist) ("libusbmuxd" ,libusbmuxd))) (inputs - `(("libplist" ,libplist) - ("python" ,python))) + `(("python" ,python))) (native-inputs `(("pkg-config" ,pkg-config) ("python-cython" ,python-cython) @@ -386,6 +386,55 @@ addressbook/calendars/notes and bookmarks and (using libgpod) synchronize music and video to the device.") (license license:lgpl2.1+))) +(define-public ifuse + (package + (name "ifuse") + (version "1.1.3") + (source (origin + (method url-fetch) + (uri (string-append "http://www.libimobiledevice.org/downloads/" + "ifuse-" version ".tar.bz2")) + (sha256 + (base32 + "1p9a4n36jb194cnp6v57cz2bggwbywaz8pbpb95ch83pzdkdx257")))) + (inputs + `(("fuse" ,fuse) + ("libimobiledevice" ,libimobiledevice))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (build-system gnu-build-system) + (home-page "http://www.libimobiledevice.org/") + (synopsis "Mount iOS devices") + (description "This package provides @command{ifuse}, a command to mount +iOS devices and access their contents.") + (license license:lgpl2.1+))) + +(define-public usbmuxd + (package + (name "usbmuxd") + (version "1.1.0") + (source (origin + (method url-fetch) + (uri (string-append "http://www.libimobiledevice.org/downloads/" + "usbmuxd-" version ".tar.bz2")) + (sha256 + (base32 + "0bdlc7a8plvglqqx39qqampqm6y0hcdws76l9dffwl22zss4i29y")))) + (inputs + `(("libplist" ,libplist) + ("libusb" ,libusb) + ("libimobiledevice" ,libimobiledevice))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (build-system gnu-build-system) + (home-page "http://www.libimobiledevice.org/") + (synopsis "Multiplex connections over USB to an iOS device") + (description "This package provides the @code{usbmuxd} daemon +which multiplexes connections over USB to an iOS device. To +users, it means you can sync your music, contacts, photos, etc. +over USB.") + (license license:gpl2+))) + (define-public libmtp (package (name "libmtp") diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 2bb6f83803..f3b5476f2d 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -413,8 +413,8 @@ for ARCH and optionally VARIANT, or #f if there is no such configuration." It has been modified to remove all non-free binary blobs.") (license license:gpl2))) -(define %linux-libre-version "4.20.6") -(define %linux-libre-hash "1wn5qf40xapsl3j19wrvgfz7ar5i0sfrri72wi78ydy4c7ik3gs5") +(define %linux-libre-version "4.20.7") +(define %linux-libre-hash "05jbpg4ivcbr8xi5ki03f4n57hnhc52nfjk1ik8czag7f4ph9v0b") (define %linux-libre-4.20-patches (list %boot-logo-patch @@ -427,8 +427,8 @@ It has been modified to remove all non-free binary blobs.") #:patches %linux-libre-4.20-patches #:configuration-file kernel-config)) -(define %linux-libre-4.19-version "4.19.19") -(define %linux-libre-4.19-hash "1sgcca9zpw5hza6vkza7613pd8bmvvd2kmd2f0xkl5fyrna7dipq") +(define %linux-libre-4.19-version "4.19.20") +(define %linux-libre-4.19-hash "1rs4jvp88n23n9a6f037sn498fzl1fn96zsjjmjngb8nmjr1y9vp") (define %linux-libre-4.19-patches (list %boot-logo-patch @@ -441,8 +441,8 @@ It has been modified to remove all non-free binary blobs.") #:patches %linux-libre-4.19-patches #:configuration-file kernel-config)) -(define %linux-libre-4.14-version "4.14.97") -(define %linux-libre-4.14-hash "056cnap79a0m4n9cldqfr3sbx61wvxwnpz6x9fh6lq0byqcil26k") +(define %linux-libre-4.14-version "4.14.98") +(define %linux-libre-4.14-hash "165wlqqpb16zhrwihsb75y153xyz8q5dbi14xim7jsnvwlbh5i79") (define-public linux-libre-4.14 (make-linux-libre %linux-libre-4.14-version @@ -451,14 +451,14 @@ It has been modified to remove all non-free binary blobs.") #:configuration-file kernel-config)) (define-public linux-libre-4.9 - (make-linux-libre "4.9.154" - "18qy7d8ndjwx65s2z18z30px94y8ci3ymvbv0mgdcbp16brak9zf" + (make-linux-libre "4.9.155" + "0fyj8dqhpqi3jh6i58avyvmg4mp9bplnpiffpp3fdka4v85lx152" '("x86_64-linux" "i686-linux") #:configuration-file kernel-config)) (define-public linux-libre-4.4 - (make-linux-libre "4.4.172" - "000bz3jfg0li3rwlf2c80df6682lhi59hj1kwm4hw7whgg69xi7b" + (make-linux-libre "4.4.173" + "1iy8qzjvcssf7ppb590lqzhb01ap2fjqv9iam691q1d4r8vmgcsh" '("x86_64-linux" "i686-linux") #:configuration-file kernel-config)) @@ -1027,7 +1027,7 @@ intercept and print the system calls executed by the program.") (define-public alsa-lib (package (name "alsa-lib") - (version "1.1.6") + (version "1.1.7") (source (origin (method url-fetch) (uri (string-append @@ -1035,7 +1035,7 @@ intercept and print the system calls executed by the program.") version ".tar.bz2")) (sha256 (base32 - "096pwrnhj36yndldvs2pj4r871zhcgisks0is78f1jkjn9sd4b2z")))) + "02fw7dw202mjid49w9ki3dsfcyvid5fj488561bdzcm3haw00q4x")))) (build-system gnu-build-system) (home-page "https://www.alsa-project.org/") (synopsis "The Advanced Linux Sound Architecture libraries") @@ -1047,14 +1047,14 @@ MIDI functionality to the Linux-based operating system.") (define-public alsa-utils (package (name "alsa-utils") - (version "1.1.6") + (version "1.1.7") (source (origin (method url-fetch) (uri (string-append "ftp://ftp.alsa-project.org/pub/utils/" name "-" version ".tar.bz2")) (sha256 (base32 - "0vnkyymgwj9rfdb11nvab30dnfrylmakdfildxl0y8mj836awp0m")))) + "02jlw6a22j2rr7inggfgk2hzx3w0fjhvhs0dn1afpzdp9aspzchx")))) (build-system gnu-build-system) (arguments ;; XXX: Disable man page creation until we have DocBook. @@ -1094,14 +1094,14 @@ MIDI functionality to the Linux-based operating system.") (define-public alsa-plugins (package (name "alsa-plugins") - (version "1.1.6") + (version "1.1.7") (source (origin (method url-fetch) (uri (string-append "ftp://ftp.alsa-project.org/pub/plugins/" name "-" version ".tar.bz2")) (sha256 (base32 - "04qcwkisbh0d6lnh0rw1k6n869fbs6zbfq6yvb41rymiwgmk27bg")))) + "0iys4zl1davzyg3mn9lvil1n3k1ifrg3v1caj3k4dqyrnrd40jx7")))) (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. @@ -1110,7 +1110,12 @@ MIDI functionality to the Linux-based operating system.") ;; obsolete. (outputs '("out" "pulseaudio" "jack")) (arguments - `(#:phases + `(#:configure-flags '(;; Do not install a "local" configuration targeted + ;; for /etc/alsa. On GuixSD plugins are loaded from + ;; the ALSA service, and other distributions likely + ;; won't use these files. + "--with-alsalconfdir=/tmp/noop") + #:phases (modify-phases %standard-phases (add-after 'install 'split (lambda* (#:key inputs outputs #:allow-other-keys) @@ -1119,27 +1124,17 @@ MIDI functionality to the Linux-based operating system.") (jack (assoc-ref outputs "jack")) (jacklib (string-append jack "/lib/alsa-lib")) (pua (assoc-ref outputs "pulseaudio")) - (pualib (string-append pua "/lib/alsa-lib")) - (puaconf (string-append pua "/share/alsa/alsa.conf.d"))) + (pualib (string-append pua "/lib/alsa-lib"))) ;; For jack. (mkdir-p jacklib) (for-each (lambda (file) (rename-file file (string-append jacklib "/" (basename file)))) (find-files out ".*jack\\.(la|so)")) - ;; For pluseaudio. - (mkdir-p puaconf) + ;; For pulseaudio. (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) @@ -1257,7 +1252,7 @@ that the Ethernet protocol is much simpler than the IP protocol.") (define-public iproute (package (name "iproute2") - (version "4.19.0") + (version "4.20.0") (source (origin (method url-fetch) (uri (string-append @@ -1265,7 +1260,7 @@ that the Ethernet protocol is much simpler than the IP protocol.") version ".tar.xz")) (sha256 (base32 - "114rlb3bvrf7q6yr03mn1rj6gl7mrg0psvm2dx0qb2kxyjhmrv6r")))) + "1a7xyvqjxfnm7rk21amm0xgxa38clg7q7cmc4dmlg27q81mambf8")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no test suite @@ -2075,20 +2070,26 @@ from the module-init-tools project.") ;; The post-systemd fork, maintained by Gentoo. (package (name "eudev") - (version "3.2.5") + (version "3.2.7") (source (origin - (method url-fetch) - (uri (string-append "https://github.com/gentoo/eudev/archive/v" - version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference (url "https://github.com/gentoo/eudev") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 (base32 - "0dlkcgy7j4fdcksqrpc373zfybiif1bal3n6lpy1kfc5280j02c7")) + "1la7x7v7yqb84wnc7w0kj53sa0an0m9xp6wn01ypi8drh02wjjy2")) (patches (search-patches "eudev-rules-directory.patch")))) (build-system gnu-build-system) (arguments '(#:phases (modify-phases %standard-phases + (add-after 'unpack 'make-source-writable + (lambda _ + ;; XXX: Git checkouts are read-only, but this package needs to + ;; modify some of its files. + (for-each make-file-writable (find-files ".")) + #t)) (add-before 'bootstrap 'patch-file-names (lambda* (#:key inputs #:allow-other-keys) (substitute* "man/make.sh" @@ -4717,6 +4718,13 @@ libraries, which are often integrated directly into libfabric.") (string-append %output "/include"))) (substitute* "Makefile" (("/lib64") "/lib")) + #t)) + (add-after 'unpack 'patch-sysmacros + (lambda _ + (substitute* "ipath/ipath_proto.c" + (("#include " m) + (string-append m "\n" + "#include "))) #t))))) (synopsis "Intel Performance Scaled Messaging (PSM) Libraries") (description diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index c5e422fbd5..8ae069ba52 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -17,7 +17,7 @@ ;;; Copyright © 2016, 2017 Troy Sankey ;;; Copyright © 2016, 2017, 2018 Nils Gillmann ;;; Copyright © 2016 Clément Lassieur -;;; Copyright © 2016, 2017, 2018 Arun Isaac +;;; Copyright © 2016, 2017, 2018, 2019 Arun Isaac ;;; Copyright © 2016 John Darrington ;;; Copyright © 2016, 2018 Marius Bakke ;;; Copyright © 2017 Thomas Danckaert @@ -525,13 +525,6 @@ and corrections. It is based on a Bayesian filter.") (man (string-append out "/share/man"))) (install-file "docs/offlineimap.1" (string-append man "/man1")) (install-file "docs/offlineimapui.7" (string-append man "/man7")) - #t))) - (add-after 'install-documentation 'wrap-binary - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (bin (string-append out "/bin/offlineimap"))) - (wrap-program bin - `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))) #t)))))) (home-page "https://www.offlineimap.org") (synopsis "Sync emails between two repositories") @@ -764,14 +757,14 @@ invoking @command{notifymuch} from the post-new hook.") (define-public notmuch (package (name "notmuch") - (version "0.28") + (version "0.28.1") (source (origin (method url-fetch) (uri (string-append "https://notmuchmail.org/releases/notmuch-" version ".tar.gz")) (sha256 (base32 - "0dqarmjc8544m2w7bqrqmvsfy55fw82707z3lz9cql8nr777bjmc")))) + "0mcsfkrp6mpy374m5rwwgm9md8qzvwa3s4rbzid4cnkx2cwfj4fi")))) (build-system gnu-build-system) (arguments `(#:modules ((guix build gnu-build-system) @@ -1861,7 +1854,7 @@ converts them to maildir format directories.") (define-public mpop (package (name "mpop") - (version "1.4.0") + (version "1.4.2") (source (origin (method url-fetch) @@ -1869,7 +1862,7 @@ converts them to maildir format directories.") name "-" version ".tar.xz")) (sha256 (base32 - "14xsvpm5bc1wycisq882gqrnamnyi1q4rlk6anlw8ihzvwgm4h2j")))) + "1rx5mhgqkm7swbynrhbsz32v85h0rydb4kqfgfs9jrznd9d14m2d")))) (build-system gnu-build-system) (inputs `(("gnutls" ,gnutls) @@ -2317,7 +2310,7 @@ on the fly. Both programs are written in C and are very fast.") (define-public swaks (package (name "swaks") - (version "20170101.0") + (version "20181104.0") (source (origin (method url-fetch) @@ -2326,7 +2319,7 @@ on the fly. Both programs are written in C and are very fast.") version ".tar.gz")) (sha256 (base32 - "0pli4mlhasnqqxmmxalwyg3x7n2vhcbgsnp2xgddamjavv82vrl4")))) + "0n1yd27xcyb1ylp5gln3yv5gzi9r377hjy1j32367kgb3247ygq2")))) (build-system perl-build-system) (inputs `(("perl-net-dns" ,perl-net-dns) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 602c696567..7d3ac773b3 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -749,7 +749,7 @@ incompatible with HDF5.") (define-public hdf5 (package (name "hdf5") - (version "1.8.19") + (version "1.8.21") (source (origin (method url-fetch) @@ -759,12 +759,14 @@ incompatible with HDF5.") version ".tar.bz2") (string-append "https://support.hdfgroup.org/ftp/HDF5/" "current" - (apply string-append - (take (string-split version #\.) 2)) + (match (string-split version #\.) + ((major minor _ ...) + (string-append major minor))) "/src/hdf5-" version ".tar.bz2"))) (sha256 - (base32 "0f3jfbqpaaq21ighi40qzs52nb52kc2d2yjk541rjmsx20b3ih2r")) - (patches (list (search-patch "hdf5-config-date.patch"))))) + (base32 "03glk4w4wyb1jyb443g53y3y1ncnf6mj2cqwm6avfr2awkgb3cg5")) + (patches (search-patches "hdf5-config-date.patch" + "hdf5-1.8-mpi-deprecations.patch")))) (build-system gnu-build-system) (inputs `(("zlib" ,zlib))) @@ -877,7 +879,8 @@ extremely large and complex data collections.") "/src/hdf5-" version ".tar.bz2"))) (sha256 (base32 "1pr85fa1sh2ky6ai2hs3f21lp252grl2cq3wbyi4rh7dm83gyrqj")) - (patches (list (search-patch "hdf5-config-date.patch"))))))) + (patches (search-patches "hdf5-config-date.patch" + "hdf5-mpi-deprecations.patch")))))) (define-public hdf-java (package @@ -2331,7 +2334,8 @@ void mc64ad_dist (int *a, int *b, int *c, int *d, int *e, double *f, int *g, "RowPerm = NOROWPERM;")) #t)) (patches (search-patches "superlu-dist-scotchmetis.patch" - "superlu-dist-awpm-grid.patch")))) + "superlu-dist-awpm-grid.patch" + "superlu-dist-fix-mpi-deprecations.patch")))) (build-system cmake-build-system) (native-inputs `(("tcsh" ,tcsh))) @@ -2691,7 +2695,7 @@ to BMP, JPEG or PNG image formats.") (define-public maxima (package (name "maxima") - (version "5.42.1") + (version "5.42.2") (source (origin (method url-fetch) @@ -2699,7 +2703,7 @@ to BMP, JPEG or PNG image formats.") version "-source/" name "-" version ".tar.gz")) (sha256 (base32 - "1ka0xf70a55ndgmyrq7p5xxbd78pq7bfkqhgxsivaqdw6gn5lmcg")) + "0kdncy6137sg3rradirxzj10mkcvafxd892zlclwhr9sa7b12zhn")) (patches (search-patches "maxima-defsystem-mkdir.patch")))) (build-system gnu-build-system) (inputs @@ -2802,7 +2806,7 @@ point numbers.") (define-public wxmaxima (package (name "wxmaxima") - (version "18.11.4") + (version "19.01.3") (source (origin (method git-fetch) @@ -2812,7 +2816,7 @@ point numbers.") (file-name (git-file-name name version)) (sha256 (base32 - "1sz8n9v23q442l7yjj67pjh0dk78rl4cbcc3j8m1bm88anlfxl9r")))) + "1vwahx3zxkn3qlv4z0fm7v8wh0wspvs026alrh7ff7s0c2dcy95x")))) (build-system cmake-build-system) (native-inputs `(("gettext" ,gettext-minimal))) @@ -2926,7 +2930,7 @@ parts of it.") (define-public openblas (package (name "openblas") - (version "0.3.3") + (version "0.3.4") (source (origin (method url-fetch) @@ -2935,7 +2939,7 @@ parts of it.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0cvlixnpc3cdvvn3f30phfvsgnqljqix6wn72ps9rj7xdhvw06jg")))) + "1s56lgilyyw86dzmj3jkci9zsg24n60wq4d0zri1hrxlxb6ihimj")))) (build-system gnu-build-system) (arguments `(#:test-target "test" @@ -4244,3 +4248,485 @@ linear algebra primitives specifically targeting graph analytics.") license:gpl2+ ;include/psort/(funnel|sort)*.h license:x11 ;usort and psort license:bsd-3)))) ;CombBLAS and MersenneTwister.h + +(define-public dune-common + (package + (name "dune-common") + (version "2.6.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://dune-project.org/download/" + version "/dune-common-" version ".tar.gz")) + (sha256 + (base32 + "019wcr1qf7jwyxx1y5y290wdlglylskvbb2m01ljkzcza2xnlmhw")))) + (build-system cmake-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'build 'build-tests + (lambda* (#:key make-flags #:allow-other-keys) + (apply invoke "make" "build_tests" make-flags))) + ;; These tests fail because they require a fully functional MPI + ;; environment. + (add-after 'unpack 'disable-failing-tests + (lambda _ + (setenv "ARGS" + (string-append "--exclude-regex '(" + (string-join + (list + "remoteindicestest" + "remoteindicestest-mpi-2" + "syncertest" + "syncertest-mpi-2" + "variablesizecommunicatortest" + "variablesizecommunicatortest-mpi-2" + "arithmetictestsuitetest" + "assertandreturntest" + "assertandreturntest_ndebug" + "concept" + "debugaligntest" + "mpicollectivecommunication" + "mpicollectivecommunication-mpi-2" + "mpiguardtest" + "mpiguardtest-mpi-2" + "mpihelpertest" + "mpihelpertest-mpi-2" + "mpihelpertest2" + "mpihelpertest2-mpi-2") + "|") + ")'")) + #t))))) + (inputs + `(("gmp" ,gmp) + ("metis" ,metis) + ("openmpi" ,openmpi) + ("openblas" ,openblas) + ("python" ,python) + ("superlu" ,superlu))) + (native-inputs + `(("gfortran" ,gfortran) + ("pkg-config" ,pkg-config))) + (home-page "https://dune-project.org/") + (synopsis "Distributed and Unified Numerics Environment") + (description "DUNE, the Distributed and Unified Numerics Environment is a +modular toolbox for solving @dfn{partial differential equations} (PDEs) with +grid-based methods. It supports the easy implementation of methods like +@dfn{Finite Elements} (FE), @dfn{Finite Volumes} (FV), and also @dfn{Finite +Differences} (FD).") + ;; GPL version 2 with "runtime exception" to make it behave like LGPLv2. + (license license:gpl2))) + +(define-public dune-geometry + (package + (name "dune-geometry") + (version "2.6.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://dune-project.org/download/" + version "/dune-geometry-" version ".tar.gz")) + (sha256 + (base32 + "0hlaaxjyv9j05blasvb67sy02hd0w4g9znf68gdh3l731dd1aqbn")))) + (build-system cmake-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'build 'build-tests + (lambda* (#:key make-flags #:allow-other-keys) + (apply invoke "make" "build_tests" make-flags)))))) + (inputs + `(("dune-common" ,dune-common) + ("openmpi" ,openmpi) + ;; Optional + ("openblas" ,openblas) + ("gmp" ,gmp) + ("python" ,python))) + (native-inputs + `(("gfortran" ,gfortran) + ("pkg-config" ,pkg-config))) + (home-page "https://dune-project.org/") + (synopsis "Distributed and Unified Numerics Environment") + (description "DUNE, the Distributed and Unified Numerics Environment is a +modular toolbox for solving @dfn{partial differential equations} (PDEs) with +grid-based methods. It supports the easy implementation of methods like +@dfn{Finite Elements} (FE), @dfn{Finite Volumes} (FV), and also @dfn{Finite +Differences} (FD). + +This package contains the basic DUNE geometry classes.") + ;; GPL version 2 with "runtime exception" + (license license:gpl2))) + +(define-public dune-grid + (package + (name "dune-grid") + (version "2.6.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://dune-project.org/download/" + version "/dune-grid-" version ".tar.gz")) + (sha256 + (base32 + "1jp4vscm9yb9xg0lh7apzccfkhvgbnk652yahigmh3cvzpl4acd0")))) + (build-system cmake-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'build 'build-tests + (lambda* (#:key make-flags #:allow-other-keys) + (apply invoke "make" "build_tests" make-flags))) + ;; These tests fail because they require a fully functional MPI + ;; environment. + (add-after 'unpack 'disable-failing-tests + (lambda _ + (setenv "ARGS" + (string-append "--exclude-regex '(" + (string-join + (list + "scsgmappertest" + "conformvolumevtktest" + "gnuplottest" + "nonconformboundaryvtktest" + "subsamplingvtktest" + "vtktest" + "vtktest-mpi-2" + "vtksequencetest" + "gmshtest-onedgrid" + "test-dgf-yasp" + "test-dgf-yasp-offset" + "test-dgf-oned" + "test-geogrid-yaspgrid" + "test-gridinfo" + "test-identitygrid" + "testiteratorranges" + "test-hierarchicsearch" + "test-parallel-ug-mpi-2" + "test-yaspgrid-backuprestore-equidistant" + "test-yaspgrid-backuprestore-equidistant-mpi-2" + "test-yaspgrid-backuprestore-equidistantoffset" + "test-yaspgrid-backuprestore-equidistantoffset-mpi-2" + "test-yaspgrid-backuprestore-tensor" + "test-yaspgrid-backuprestore-tensor-mpi-2" + "test-yaspgrid-tensorgridfactory" + "test-yaspgrid-tensorgridfactory-mpi-2" + "test-yaspgrid-yaspfactory-1d" + "test-yaspgrid-yaspfactory-1d-mpi-2" + "test-yaspgrid-yaspfactory-2d" + "test-yaspgrid-yaspfactory-2d-mpi-2" + "test-yaspgrid-yaspfactory-3d" + "test-yaspgrid-yaspfactory-3d-mpi-2" + "globalindexsettest" + "persistentcontainertest" + "structuredgridfactorytest" + "tensorgridfactorytest" + "vertexordertest") + "|") + ")'")) + #t))))) + (inputs + `(("dune-common" ,dune-common) + ("dune-geometry" ,dune-geometry) + ("gmp" ,gmp) + ("metis" ,metis) + ("openblas" ,openblas) + ("openmpi" ,openmpi) + ("python" ,python))) + (native-inputs + `(("gfortran" ,gfortran) + ("pkg-config" ,pkg-config))) + (home-page "https://dune-project.org/") + (synopsis "Distributed and Unified Numerics Environment") + (description "DUNE, the Distributed and Unified Numerics Environment is a +modular toolbox for solving @dfn{partial differential equations} (PDEs) with +grid-based methods. It supports the easy implementation of methods like +@dfn{Finite Elements} (FE), @dfn{Finite Volumes} (FV), and also @dfn{Finite +Differences} (FD). + +This package contains the basic DUNE grid classes.") + ;; GPL version 2 with "runtime exception" + (license license:gpl2))) + +(define-public dune-istl + (package + (name "dune-istl") + (version "2.6.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://dune-project.org/download/" + version "/dune-istl-" version ".tar.gz")) + (sha256 + (base32 + "0l2gyrvys5w6wsmk0ckbb7295s80b7yk7qrl7x66akv2jv1nzq2w")))) + (build-system cmake-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'build 'build-tests + (lambda* (#:key make-flags #:allow-other-keys) + (apply invoke "make" "build_tests" make-flags))) + ;; These tests fail because they require a fully functional MPI + ;; environment. + (add-after 'unpack 'disable-failing-tests + (lambda _ + (setenv "ARGS" + (string-append "--exclude-regex '(" + (string-join + (list + "galerkintest" + "hierarchytest" + "pamgtest" + "pamg_comm_repart_test" + "matrixredisttest" + "vectorcommtest" + "matrixmarkettest") + "|") + ")'")) + #t))))) + (inputs + `(("dune-common" ,dune-common) + ("openmpi" ,openmpi) + ;; Optional + ("metis" ,metis) + ("superlu" ,superlu) + ("openblas" ,openblas) + ("gmp" ,gmp) + ("python" ,python))) + (native-inputs + `(("gfortran" ,gfortran) + ("pkg-config" ,pkg-config))) + (home-page "https://dune-project.org/") + (synopsis "Distributed and Unified Numerics Environment") + (description "DUNE, the Distributed and Unified Numerics Environment is a +modular toolbox for solving @dfn{partial differential equations} (PDEs) with +grid-based methods. + +This is the iterative solver template library which provides generic sparse +matrix/vector classes and a variety of solvers based on these classes. A +special feature is the use of templates to exploit the recursive block +structure of finite element matrices at compile time. Available solvers +include Krylov methods, (block-) incomplete decompositions and +aggregation-based algebraic multigrid.") + ;; GPL version 2 with "runtime exception" + (license license:gpl2))) + +(define-public dune-localfunctions + (package + (name "dune-localfunctions") + (version "2.6.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://dune-project.org/download/" + version "/dune-localfunctions-" version ".tar.gz")) + (sha256 + (base32 + "19c6zjinwwpy8jh4v4prhphyd438rapd4x80fj93apmwgw04nrhl")))) + (build-system cmake-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'build 'build-tests + (lambda* (#:key make-flags #:allow-other-keys) + (apply invoke "make" "build_tests" make-flags)))))) + (inputs + `(("dune-common" ,dune-common) + ("dune-geometry" ,dune-geometry) + ("openmpi" ,openmpi) + ;; Optional + ("metis" ,metis) + ("superlu" ,superlu) + ("gmp" ,gmp))) + (native-inputs + `(("gfortran" ,gfortran) + ("pkg-config" ,pkg-config))) + (home-page "https://dune-project.org/") + (synopsis "Distributed and Unified Numerics Environment") ; TODO + (description "This DUNE module provides interface and implementation for +shape functions defined on the DUNE reference elements. In addition to the +shape function, interpolation operators and special keys are provided which +can be used to assemble global function spaces on finite-element grids. + +This package provides an interface and implementation for shape functions +defined on the DUNE reference elements. In addition to the shape function, +interpolation operators and special keys are provided which can be used to +assemble global function spaces on finite-element grids.") + ;; GPL version 2 with "runtime exception" + (license license:gpl2))) + +(define-public dune-alugrid + (package + (name "dune-alugrid") + (version "2.6.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://dune-project.org/download/" + version "/dune-alugrid-" version ".tar.gz")) + (sha256 + (base32 + "1l9adgyjpra8mvwm445s0lpjshnb63jag85fb2hisbjn6bm320yj")))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f ; 7 of 8 tests fail because they need a full MPI + ; environment + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-include + (lambda _ + (substitute* "dune/alugrid/test/test-alugrid.cc" + (("doc/grids/gridfactory/testgrids") + "doc/dune-grid/grids/gridfactory/testgrids")) + #t)) + (add-after 'build 'build-tests + (lambda* (#:key inputs make-flags #:allow-other-keys) + (setenv "CPLUS_INCLUDE_PATH" + (string-append (assoc-ref inputs "dune-grid") "/share:" + (getenv "CPLUS_INCLUDE_PATH"))) + (apply invoke "make" "build_tests" make-flags)))))) + (inputs + `(("dune-common" ,dune-common) + ("dune-geometry" ,dune-geometry) + ("dune-grid" ,dune-grid) + ("openmpi" ,openmpi) + ;; Optional + ("metis" ,metis) + ("openblas" ,openblas) + ("python" ,python) + ("superlu" ,superlu) + ("gmp" ,gmp) + ("zlib" ,zlib))) + (native-inputs + `(("gfortran" ,gfortran) + ("pkg-config" ,pkg-config))) + (home-page "https://dune-project.org/") + (synopsis "Distributed and Unified Numerics Environment") + (description "ALUGrid is an adaptive, loadbalancing, unstructured +implementation of the DUNE grid interface supporting either simplices or +cubes.") + (license license:gpl2+))) + +(define-public dune-typetree + (package + (name "dune-typetree") + (version "2.6.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.dune-project.org/staging/dune-typetree.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0mnv6w2f22lz3j4bdpdjq55vjm8xxfx9v4vvhg9bd36xpsbjpjp9")))) + (build-system cmake-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'build 'build-tests + (lambda* (#:key make-flags #:allow-other-keys) + (apply invoke "make" "build_tests" make-flags)))))) + (inputs + `(("dune-common" ,dune-common) + ("openmpi" ,openmpi) + ;; Optional + ("openblas" ,openblas) + ("python" ,python) + ("metis" ,metis) + ("superlu" ,superlu) + ("gmp" ,gmp))) + (native-inputs + `(("gfortran" ,gfortran) + ("pkg-config" ,pkg-config))) + (home-page "https://dune-project.org/") + (synopsis "Distributed and Unified Numerics Environment") + (description "TypeTree is a template library for constructing and +operating on statically typed trees of objects.") + ;; Either GPL version 2 with "runtime exception" or LGPLv3+. + (license (list license:lgpl3+ license:gpl2)))) + +(define-public dune-functions + (package + (name "dune-functions") + (version "2.6.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.dune-project.org/staging/dune-functions.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1an8gb477n8j0kzpbrv7nr1snh8pxip0gsxq6w63jc83gg3dj200")))) + (build-system cmake-build-system) + (arguments `(#:tests? #f)) ; FIXME: tests require dune-uugrid + (inputs + `(("dune-common" ,dune-common) + ("dune-istl" ,dune-istl) + ("dune-localfunctions" ,dune-localfunctions) + ("dune-grid" ,dune-grid) + ("dune-geometry" ,dune-geometry) + ("dune-typetree" ,dune-typetree) + ("openmpi" ,openmpi) + ("openblas" ,openblas) + ("metis" ,metis) + ("python" ,python) + ("superlu" ,superlu) + ("gmp" ,gmp))) + (native-inputs + `(("gfortran" ,gfortran) + ("pkg-config" ,pkg-config))) + (home-page "https://dune-project.org/") + (synopsis "Distributed and Unified Numerics Environment") + (description "The dune-functions module provides an abstraction layer for +global finite element functions. Its two main concepts are functions +implemented as callable objects, and bases of finite element spaces.") + ;; Either GPL version 2 with "runtime exception" or LGPLv3+. + (license (list license:lgpl3+ license:gpl2)))) + +(define-public dune-pdelab + (package + (name "dune-pdelab") + (version "2.6.0-rc1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.dune-project.org/pdelab/dune-pdelab") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "07g0s9448z65vjrq88g5rv3340iifil85k170n8kbqchsvi4ny5v")))) + (build-system cmake-build-system) + (arguments '(#:tests? #f)) ; XXX: the tests cannot be compiled + (inputs + `(("dune-common" ,dune-common) + ("dune-istl" ,dune-istl) + ("dune-localfunctions" ,dune-localfunctions) + ("dune-geometry" ,dune-geometry) + ("dune-grid" ,dune-grid) + ("dune-typetree" ,dune-typetree) + ("dune-functions" ,dune-functions) + ("openmpi" ,openmpi) + ;; Optional + ("openblas" ,openblas) + ("eigen" ,eigen) + ("metis" ,metis) + ("python" ,python) + ("superlu" ,superlu) + ("gmp" ,gmp))) + (native-inputs + `(("gfortran" ,gfortran) + ("pkg-config" ,pkg-config))) + (home-page "https://dune-project.org/") + (synopsis "Differential equations solver toolbox") + (description "PDELab is a partial differential equations solver toolbox +built on top of DUNE, the Distributed and Unified Numerics Environment.") + ;; Either GPL version 2 with "runtime exception" or LGPLv3+. + (license (list license:lgpl3+ license:gpl2)))) diff --git a/gnu/packages/mpd.scm b/gnu/packages/mpd.scm index 3fe5d06f4c..bf12239a02 100644 --- a/gnu/packages/mpd.scm +++ b/gnu/packages/mpd.scm @@ -245,7 +245,7 @@ terminal using ncurses.") "0m0mjb049sl62vx13h9waavysa30mk0rphacksnvf94n13la62v5")))) (build-system gnu-build-system) (inputs `(("libmpdclient" ,libmpdclient) - ("boost" ,boost-cxx14) + ("boost" ,boost) ("readline" ,readline) ("ncurses" ,ncurses) ("taglib" ,taglib) diff --git a/gnu/packages/mpi.scm b/gnu/packages/mpi.scm index 6e56142bd1..0a43c55b7a 100644 --- a/gnu/packages/mpi.scm +++ b/gnu/packages/mpi.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2014, 2015, 2018 Eric Bavier -;;; Copyright © 2014, 2015, 2016, 2017, 2018 Ludovic Courtès +;;; Copyright © 2014, 2015, 2018, 2019 Eric Bavier +;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès ;;; Copyright © 2014 Ian Denhardt ;;; Copyright © 2016 Andreas Enge ;;; Copyright © 2017 Dave Love @@ -33,6 +33,7 @@ #:use-module (guix build-system python) #:use-module (gnu packages) #:use-module (gnu packages gcc) + #:use-module (gnu packages libevent) #:use-module (gnu packages linux) #:use-module (gnu packages pciutils) #:use-module (gnu packages xorg) @@ -40,6 +41,7 @@ #:use-module (gnu packages xml) #:use-module (gnu packages perl) #:use-module (gnu packages ncurses) + #:use-module (gnu packages parallel) #:use-module (gnu packages pkg-config) #:use-module (gnu packages valgrind) #:use-module (srfi srfi-1) @@ -156,7 +158,7 @@ bind processes, and much more.") (define-public openmpi (package (name "openmpi") - (version "3.0.1") + (version "4.0.0") (source (origin (method url-fetch) @@ -165,12 +167,13 @@ bind processes, and much more.") "/downloads/openmpi-" version ".tar.bz2")) (sha256 (base32 - "0pbqrm5faf57nasy1s81wqivl7zvxmv8lzjh8hvb0f3qxv8m0d36")))) + "0srnjwzsmyhka9hhnmqm86qck4w3xwjm8g6sbns58wzbrwv8l2rg")))) (build-system gnu-build-system) (inputs `(("hwloc" ,hwloc "lib") ("gfortran" ,gfortran) ("libfabric" ,libfabric) + ("libevent" ,libevent) ,@(if (and (not (%current-target-system)) (member (%current-system) (package-supported-systems psm))) `(("psm" ,psm)) @@ -180,7 +183,8 @@ bind processes, and much more.") `(("psm2" ,psm2)) '()) ("rdma-core" ,rdma-core) - ("valgrind" ,valgrind))) + ("valgrind" ,valgrind) + ("slurm" ,slurm))) ;for PMI support (launching via "srun") (native-inputs `(("pkg-config" ,pkg-config) ("perl" ,perl))) @@ -189,15 +193,15 @@ bind processes, and much more.") `(#:configure-flags `("--enable-mpi-ext=affinity" ;cr doesn't work "--enable-memchecker" "--with-sge" - - ;; VampirTrace is obsoleted by scorep and disabling - ;; it reduces the closure size considerably. - "--disable-vt" - - ,(string-append "--with-valgrind=" - (assoc-ref %build-inputs "valgrind")) - ,(string-append "--with-hwloc=" - (assoc-ref %build-inputs "hwloc"))) + "--with-psm" + "--with-psm2" + "--with-valgrind" + "--with-hwloc=external" + "--with-libevent" + ;; Enable support for SLURM's Process Manager + ;; Interface (PMI). + ,(string-append "--with-pmi=" + (assoc-ref %build-inputs "slurm"))) #:phases (modify-phases %standard-phases (add-before 'build 'remove-absolute (lambda _ @@ -212,8 +216,8 @@ bind processes, and much more.") (("_ABSOLUTE") "")) ;; Avoid valgrind (which pulls in gdb etc.). (substitute* - '("./ompi/mca/io/romio314/src/io_romio314_component.c") - (("MCA_io_romio314_COMPLETE_CONFIGURE_FLAGS") + '("./ompi/mca/io/romio321/src/io_romio321_component.c") + (("MCA_io_romio321_COMPLETE_CONFIGURE_FLAGS") "\"[elided to reduce closure]\"")) #t)) (add-before 'build 'scrub-timestamps ;reproducibility @@ -263,7 +267,7 @@ only provides @code{MPI_THREAD_FUNNELED}."))) (setenv "OMPI_MCA_plm_rsh_agent" (which "false")) ;; Allow oversubscription in case there are less physical cores available ;; in the build environment than the package wants while testing. - (setenv "OMPI_MCA_rmaps_base_oversubscribe" "yes") + (setenv "OMPI_MCA_rmaps_base_mapping_policy" "core:OVERSUBSCRIBE") #t)) (define-public python-mpi4py diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index a716f0e142..c4333364e1 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -3637,7 +3637,7 @@ audio samples and various soft sythesizers. It can receive input from a MIDI ke (define-public musescore (package (name "musescore") - (version "3.0.1") + (version "3.0.2") (source (origin (method git-fetch) (uri (git-reference @@ -3646,7 +3646,7 @@ audio samples and various soft sythesizers. It can receive input from a MIDI ke (file-name (git-file-name name version)) (sha256 (base32 - "085qwfv3fsgry1pnx531w83lnyvf7kbaklipdf8zqa9shi6d3x9i")) + "1w9il6gg0dh4yi20nbdcibx5z5z4bvzppq8wsqf1l916hnczsj3s")) (modules '((guix build utils))) (snippet ;; Un-bundle OpenSSL and remove unused libraries. @@ -3660,7 +3660,11 @@ audio samples and various soft sythesizers. It can receive input from a MIDI ke '("thirdparty/freetype" "thirdparty/openssl" "thirdparty/portmidi")) - #t)))) + #t)) + ;; Fix compilation error due to BUILD_WEBENGINE CMake option not + ;; properly handled. Applied upstream already: + ;; + (patches (search-patches "musescore-fix-use_webengine.patch")))) (build-system cmake-build-system) (arguments `(#:configure-flags diff --git a/gnu/packages/nettle.scm b/gnu/packages/nettle.scm index 1212f32812..1f91b74d8b 100644 --- a/gnu/packages/nettle.scm +++ b/gnu/packages/nettle.scm @@ -75,14 +75,14 @@ themselves.") ;; This version is not API-compatible with version 2. In particular, lsh ;; cannot use it yet. So keep it separate. (package (inherit nettle-2) - (version "3.4") + (version "3.4.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/nettle/nettle-" version ".tar.gz")) (sha256 (base32 - "150y8655h629wn946dvzasq16qxsc1m9nf58mifvhl350bgl4ymf")))) + "1bcji95n1iz9p9vsgdgr26v6s7zhpsxfbjjwpqcihpfd6lawyhgr")))) (arguments (substitute-keyword-arguments (package-arguments nettle-2) ((#:configure-flags flags) diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index 28f1c99e4c..07fcf92aea 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -805,64 +805,21 @@ libpanel, librsvg and quartz.") (define-public unison (package (name "unison") - (version "2.48.3") - (source - (origin - (method svn-fetch) - (uri (svn-reference - (url (string-append "https://webdav.seas.upenn.edu/svn/" - "unison/branches/" - (version-major+minor version))) - (revision 535))) - (file-name (string-append name "-" version "-checkout")) - (sha256 - (base32 - "0486s53wyayicj9f2raj2dvwvk4xyzar219rccc1iczdwixm4x05")) - (modules '((guix build utils) - (ice-9 rdelim) - (ice-9 regex) - (srfi srfi-1))) - (snippet - `(begin - ;; The svn revision in the release tarball appears to be - ;; artificially manipulated in order to set the desired point - ;; version number. Because the point version is calculated during - ;; the build, we can offset pointVersionOrigin by the desired - ;; point version and write that into "Rev: %d". We do this rather - ;; than hardcoding the necessary revision number, for - ;; maintainability. - (with-atomic-file-replacement "src/mkProjectInfo.ml" - (lambda (in out) - (let ((pt-ver (string->number (third (string-split ,version #\.)))) - (pt-rx (make-regexp "^let pointVersionOrigin = ([0-9]+)")) - (rev-rx (make-regexp "Rev: [0-9]+"))) - (let loop ((pt-origin #f)) - (let ((line (read-line in 'concat))) - (cond - ((regexp-exec pt-rx line) - => (lambda (m) - (display line out) - (loop (string->number (match:substring m 1))))) - ((regexp-exec rev-rx line) - => (lambda (m) - (format out "~aRev: ~d~a" - (match:prefix m) - (+ pt-origin pt-ver) - (match:suffix m)) - (dump-port in out))) ;done - (else - (display line out) - (loop pt-origin)))))))) - ;; Without the '-fix' argument, the html file produced does not - ;; have functioning internal hyperlinks. - (substitute* "doc/Makefile" - (("hevea unison") "hevea -fix unison")) - #t)))) + (version "2.51.2") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/bcpierce00/unison.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1bykiyc0dc5pkw8x370qkg2kygq9pq7yqzsgczd3y13b6ivm4sdq")))) (build-system gnu-build-system) (outputs '("out" "doc")) ; 1.9 MiB of documentation (native-inputs - `(("ocaml" ,ocaml-4.02) + `(("ocaml" ,ocaml) ;; For documentation ("ghostscript" ,ghostscript) ("texlive" ,texlive-tiny) @@ -5019,7 +4976,7 @@ parsexp_io.") (base32 "1qfl0m04rpcjvc4yw1hzh6r16jpwmap0sa9ax6zjji67dz4szpyb")))) (build-system dune-build-system) - (inputs + (propagated-inputs `(("ocaml-num" ,ocaml-num) ("ocaml-parsexp" ,ocaml-parsexp) ("ocaml-sexplib0" ,ocaml-sexplib0))) @@ -5046,7 +5003,7 @@ functionality for parsing and pretty-printing s-expressions.") (base32 "0j6xb4265jr41vw4fjzak6yr8s30qrnzapnc6rl1dxy8bjai0nir")))) (build-system dune-build-system) - (inputs + (propagated-inputs `(("ocaml-sexplib0" ,ocaml-sexplib0))) (arguments `(#:phases @@ -5109,8 +5066,9 @@ is now @code{Ocaml_common.Ast_helper}.") (base32 "1facajqhvq34g2wrg368y0ajxd6lrj5b3lyzyj0jhdmraxajjcwn")))) (build-system dune-build-system) - (inputs `(("ocaml-base" ,ocaml-base) - ("ocaml-sexplib0" ,ocaml-sexplib0))) + (propagated-inputs + `(("ocaml-base" ,ocaml-base) + ("ocaml-sexplib0" ,ocaml-sexplib0))) (arguments '(#:tests? #f)) ;no tests (synopsis "Standard IO library for OCaml") @@ -5139,6 +5097,7 @@ a more consistent API.") (build-system dune-build-system) (arguments '(#:tests? #f)) ;no tests + (properties `((upstream-name . "ppx_derivers"))) (synopsis "Shared @code{@@deriving} plugin registry") (description "Ppx_derivers is a tiny package whose sole purpose is to allow @@ -5162,7 +5121,7 @@ as part of the same ocaml-migrate-parsetree driver.") (base32 "1nr4igf5m4prvigvv470dnhfdhdw0p6hz6zw8gnm5bzcv7s2lg5l")))) (build-system dune-build-system) - (inputs + (propagated-inputs `(("ocaml-base" ,ocaml-base) ("ocaml-compiler-libs" ,ocaml-compiler-libs) ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree) @@ -5170,8 +5129,6 @@ as part of the same ocaml-migrate-parsetree driver.") ("ocaml-stdio" ,ocaml-stdio) ("ocaml-result" ,ocaml-result) ("ocaml-sexplib0" ,ocaml-sexplib0))) - (native-inputs - `(("ocaml-findlib" ,ocaml-findlib))) (arguments '(#:phases (modify-phases %standard-phases @@ -5179,7 +5136,7 @@ as part of the same ocaml-migrate-parsetree driver.") (lambda* (#:key inputs #:allow-other-keys) ;; add the line #directory ".." at the top of each file ;; using #use "topfind";; to be able to find topfind - (let* ((findlib-path (assoc-ref inputs "ocaml-findlib")) + (let* ((findlib-path (assoc-ref inputs "findlib")) (findlib-libdir (string-append findlib-path "/lib/ocaml/site-lib"))) (substitute* '("test/base/test.ml" @@ -5207,3 +5164,999 @@ OCaml AST in the OCaml syntax; @item a generator of open recursion classes from type definitions. @end itemize") (license license:expat))) + +(define-public ocaml-ppx-compare + (package + (name "ocaml-ppx-compare") + (version "0.11.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/janestreet/ppx_compare.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "06bq4m1bsm4jlx4g7wh5m99qky7xm4c2g52kaz6pv25hdn5agi2m")))) + (build-system dune-build-system) + (propagated-inputs + `(("ocaml-base" ,ocaml-base) + ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree) + ("ocaml-ppxlib" ,ocaml-ppxlib))) + (properties `((upstream-name . "ppx_compare"))) + (home-page "https://github.com/janestreet/ppx_compare") + (synopsis "Generation of comparison functions from types") + (description "Generation of fast comparison functions from type expressions +and definitions. Ppx_compare is a ppx rewriter that derives comparison functions +from type representations. The scaffolded functions are usually much faster +than ocaml's Pervasives.compare. Scaffolding functions also gives you more +flexibility by allowing you to override them for a specific type and more safety +by making sure that you only compare comparable values.") + (license license:asl2.0))) + +(define-public ocaml-fieldslib + (package + (name "ocaml-fieldslib") + (version "0.11.0") + (source (origin + (method url-fetch) + (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v" + (version-major+minor version) "/files/" + "fieldslib-v" version ".tar.gz")) + (sha256 + (base32 + "12948pzxrl360lybm9fzyvplgcl87zjbn4m3sk1aw75zk85p1388")))) + (build-system dune-build-system) + (arguments + ;; No tests + `(#:tests? #f)) + (propagated-inputs + `(("ocaml-base" ,ocaml-base) + ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree) + ("ocaml-ppxlib" ,ocaml-ppxlib))) + (properties `((upstream-name . "fieldslib"))) + (home-page "https://github.com/janestreet/fieldslib") + (synopsis "Syntax extension to record fields") + (description "Syntax extension to define first class values representing +record fields, to get and set record fields, iterate and fold over all fields +of a record and create new record values.") + (license license:asl2.0))) + +(define-public ocaml-variantslib + (package + (name "ocaml-variantslib") + (version "0.11.0") + (source (origin + (method url-fetch) + (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v" + (version-major+minor version) + "/files/variantslib-v" version ".tar.gz")) + (sha256 + (base32 + "1hsdwmkslvk4cznqr4lyyiy7vvk5spil226k0z2in26fxq6y0hf3")))) + (build-system dune-build-system) + (arguments + ;; No tests + `(#:tests? #f)) + (propagated-inputs + `(("ocaml-base" ,ocaml-base) + ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree) + ("ocaml-ppxlib" ,ocaml-ppxlib))) + (properties `((upstream-name . "variantslib"))) + (home-page "https://github.com/janestreet/variantslib") + (synopsis "OCaml variants as first class values") + (description "The Core suite of libraries is an alternative to OCaml's +standard library.") + (license license:asl2.0))) + +(define-public ocaml-ppx-fields-conv + (package + (name "ocaml-ppx-fields-conv") + (version "0.11.0") + (source (origin + (method url-fetch) + (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v" + (version-major+minor version) + "/files/ppx_fields_conv-v" version ".tar.gz")) + (sha256 + (base32 + "07zrd3qky2ppbfl55gpm90rvqa5860xgwcsvihrjmkrw6d0jirkc")))) + (build-system dune-build-system) + (propagated-inputs + `(("ocaml-base" ,ocaml-base) + ("ocaml-fieldslib" ,ocaml-fieldslib) + ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree) + ("ocaml-ppxlib" ,ocaml-ppxlib))) + (properties `((upstream-name . "ppx_fields_conv"))) + (home-page "https://github.com/janestreet/ppx_fields_conv") + (synopsis "Generation of accessor and iteration functions for ocaml records") + (description "Ppx_fields_conv is a ppx rewriter that can be used to define +first class values representing record fields, and additional routines, to get +and set record fields, iterate and fold over all fields of a record and create +new record values.") + (license license:asl2.0))) + +(define-public ocaml-ppx-sexp-conv + (package + (name "ocaml-ppx-sexp-conv") + (version "0.11.2") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/janestreet/ppx_sexp_conv.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0pqwnqy1xp309wvdcaax4lg02yk64lq2w03mbgfvf6ps5ry4gis9")))) + (build-system dune-build-system) + (propagated-inputs + `(("ocaml-base" ,ocaml-base) + ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree) + ("ocaml-ppxlib" ,ocaml-ppxlib))) + (properties `((upstream-name . "ppx_sexp_conv"))) + (home-page "https://github.com/janestreet/ppx_sexp_conv") + (synopsis "Generation of S-expression conversion functions from type definitions") + (description "This package generates S-expression conversion functions from type +definitions.") + (license license:asl2.0))) + +(define-public ocaml-ppx-variants-conv + (package + (name "ocaml-ppx-variants-conv") + (version "0.11.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/janestreet/ppx_variants_conv.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1yc0gsds5m2nv39zga8nnrca2n75rkqy5dz4xj1635ybz20hhbjd")))) + (build-system dune-build-system) + (propagated-inputs + `(("ocaml-base" ,ocaml-base) + ("ocaml-variantslib" ,ocaml-variantslib) + ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree) + ("ocaml-ppxlib" ,ocaml-ppxlib))) + (properties + `((upstream-name . "ppx_variants_conv"))) + (home-page + "https://github.com/janestreet/ppx_variants_conv") + (synopsis "Generation of accessor and iteration functions for OCaml variant types") + (description + "This package generates accessors and interation functions for OCaml +variant types.") + (license license:asl2.0))) + +(define-public ocaml-ppx-custom-printf + (package + (name "ocaml-ppx-custom-printf") + (version "0.11.0") + (source (origin + (method url-fetch) + (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v" + (version-major+minor version) + "/files/ppx_custom_printf-v" version ".tar.gz")) + (sha256 + (base32 + "11b73smf3g3bpd9lg014pr4rx285nk9mnk6g6464ph51jv0sqzhj")))) + (build-system dune-build-system) + (propagated-inputs + `(("ocaml-base" ,ocaml-base) + ("ocaml-ppx-sexp-conv" ,ocaml-ppx-sexp-conv) + ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree) + ("ocaml-ppxlib" ,ocaml-ppxlib))) + (properties `((upstream-name . "ppx_custom_printf"))) + (home-page "https://github.com/janestreet/ppx_custom_printf") + (synopsis "Printf-style format-strings for user-defined string conversion") + (description "Extensions to printf-style format-strings for user-defined +string conversion.") + (license license:asl2.0))) + +(define-public ocaml-bin-prot + (package + (name "ocaml-bin-prot") + (version "0.11.0") + (source (origin + (method url-fetch) + (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v" + (version-major+minor version) + "/files/bin_prot-v" version ".tar.gz")) + (sha256 + (base32 + "1rsd91gx36prj4whi76nsiz1bzpgal9nzyw3pxdz1alv4ilk2il6")))) + (build-system dune-build-system) + (inputs + `(("ocaml-base" ,ocaml-base) + ("ocaml-ppx-compare" ,ocaml-ppx-compare) + ("ocaml-ppx-custom-printf" ,ocaml-ppx-custom-printf) + ("ocaml-ppx-fields-conv" ,ocaml-ppx-fields-conv) + ("ocaml-ppx-sexp-conv" ,ocaml-ppx-sexp-conv) + ("ocaml-ppx-variants-conv" ,ocaml-ppx-variants-conv) + ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree))) + (properties `((upstream-name . "bin_prot"))) + (home-page "https://github.com/janestreet/bin_prot") + (synopsis "Binary protocol generator") + (description "This library contains functionality for reading and writing +OCaml-values in a type-safe binary protocol. It is extremely efficient, +typically supporting type-safe marshalling and unmarshalling of even highly +structured values at speeds sufficient to saturate a gigabit connection. The +protocol is also heavily optimized for size, making it ideal for long-term +storage of large amounts of data.") + (license (list + license:asl2.0 + license:bsd-3)))) + +(define-public ocaml-octavius + (package + (name "ocaml-octavius") + (version "1.2.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ocaml-doc/octavius") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0gqfbwsh0zq4b9mvvlmg3zhpbfbvq8swqr31320aibbqydwf77hr")))) + (build-system dune-build-system) + (properties `((upstream-name . "octavius"))) + (home-page "https://github.com/ocaml-doc/octavius") + (synopsis "Ocamldoc comment syntax parser") + (description "Octavius is a library to parse the `ocamldoc` comment syntax.") + (license license:isc))) + +(define-public ocaml-ppx-hash + (package + (name "ocaml-ppx-hash") + (version "0.11.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/janestreet/ppx_hash.git") + (commit (string-append "v" version)))) + (sha256 + (base32 + "1p0ic6aijxlrdggpmycj12q3cy9xksbq2vq727215maz4snvlf5p")))) + (build-system dune-build-system) + (propagated-inputs + `(("ocaml-base" ,ocaml-base) + ("ocaml-ppx-compare" ,ocaml-ppx-compare) + ("ocaml-ppx-sexp-conv" ,ocaml-ppx-sexp-conv) + ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree) + ("ocaml-ppxlib" ,ocaml-ppxlib))) + (properties `((upstream-name . "ppx_hash"))) + (home-page "https://github.com/janestreet/ppx_hash") + (synopsis "Generation of hash functions from type expressions and definitions") + (description "This package is a collecton of ppx rewriters that generate +hash functions from type exrpessions and definitions.") + (license license:asl2.0))) + +(define-public ocaml-ppx-enumerate + (package + (name "ocaml-ppx-enumerate") + (version "0.11.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/janestreet/ppx_enumerate.git") + (commit (string-append "v" version)))) + (sha256 + (base32 + "0spx9k1v7vjjb6sigbfs69yndgq76v114jhxvzjmffw7q989cyhr")))) + (build-system dune-build-system) + (arguments + ;; No tests + `(#:tests? #f)) + (propagated-inputs + `(("ocaml-base" ,ocaml-base) + ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree) + ("ocaml-ppxlib" ,ocaml-ppxlib))) + (properties `((upstream-name . "ppx_enumerate"))) + (home-page "https://github.com/janestreet/ppx_enumerate") + (synopsis "Generate a list containing all values of a finite type") + (description "Ppx_enumerate is a ppx rewriter which generates a definition +for the list of all values of a type (for a type which only has finitely +many values).") + (license license:asl2.0))) + +(define-public ocaml-ppx-bench + (package + (name "ocaml-ppx-bench") + (version "0.11.0") + (source (origin + (method url-fetch) + (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v" + (version-major+minor version) + "/files/ppx_bench-v" version ".tar.gz")) + (sha256 + (base32 + "0ys4pblbcjbk9dn073rqiwm7r6rc7fah03j7riklkwnb5n44andl")))) + (build-system dune-build-system) + (arguments + ;; No tests + `(#:tests? #f)) + (propagated-inputs + `(("ocaml-ppx-inline-test" ,ocaml-ppx-inline-test) + ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree) + ("ocaml-ppxlib" ,ocaml-ppxlib))) + (properties `((upstream-name . "ppx_bench"))) + (home-page "https://github.com/janestreet/ppx_bench") + (synopsis "Syntax extension for writing in-line benchmarks in ocaml code") + (description "Syntax extension for writing in-line benchmarks in ocaml code.") + (license license:asl2.0))) + +(define-public ocaml-ppx-here + (package + (name "ocaml-ppx-here") + (version "0.11.0") + (source (origin + (method url-fetch) + (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v" + (version-major+minor version) + "/files/ppx_here-v" version ".tar.gz")) + (sha256 + (base32 + "0wxcak3ay4jpigm3pfdcpr65qw4hxfa8whhkryhcd8gy71x056z5")))) + (build-system dune-build-system) + (arguments + ;; broken tests + `(#:tests? #f)) + (propagated-inputs + `(("ocaml-base" ,ocaml-base) + ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree) + ("ocaml-ppxlib" ,ocaml-ppxlib))) + (properties `((upstream-name . "ppx_here"))) + (home-page "https://github.com/janestreet/ppx_here") + (synopsis "Expands [%here] into its location") + (description + "Part of the Jane Street's PPX rewriters collection.") + (license license:asl2.0))) + +(define-public ocaml-typerep + (package + (name "ocaml-typerep") + (version "0.11.0") + (source (origin + (method url-fetch) + (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v" + (version-major+minor version) + "/files/typerep-v" version ".tar.gz")) + (sha256 + (base32 + "1zi7hy0prpgzqhr4lkacr04wvlvbp21jfbdfvffhrm6cd400rb5v")))) + (build-system dune-build-system) + (arguments + `(#:tests? #f)) + (propagated-inputs `(("ocaml-base" ,ocaml-base))) + (home-page "https://github.com/janestreet/typerep") + (synopsis "Typerep is a library for runtime types") + (description "Typerep is a library for runtime types.") + (license license:asl2.0))) + +(define-public ocaml-ppx-sexp-value + (package + (name "ocaml-ppx-sexp-value") + (version "0.11.0") + (source (origin + (method url-fetch) + (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v" + (version-major+minor version) + "/files/ppx_sexp_value-v" version ".tar.gz")) + (sha256 + (base32 + "1xnalfrln6k5khsyxvxkg6v32q8fpr4cqamsjqfih29jdv486xrs")))) + (build-system dune-build-system) + (propagated-inputs + `(("ocaml-base" ,ocaml-base) + ("ocaml-ppx-here" ,ocaml-ppx-here) + ("ocaml-ppx-sexp-conv" ,ocaml-ppx-sexp-conv) + ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree) + ("ocaml-ppxlib" ,ocaml-ppxlib))) + (properties `((upstream-name . "ppx_sexp_value"))) + (home-page "https://github.com/janestreet/ppx_sexp_value") + (synopsis "Simplify building s-expressions from ocaml values") + (description "A ppx rewriter that simplifies building s-expressions from +ocaml values.") + (license license:asl2.0))) + +(define-public ocaml-ppx-sexp-message + (package + (name "ocaml-ppx-sexp-message") + (version "0.11.0") + (source (origin + (method url-fetch) + (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v" + (version-major+minor version) + "/files/ppx_sexp_message-v" version ".tar.gz")) + (sha256 + (base32 + "1yh440za0w9cvrbxbmqacir8715kdaw6sw24ys9xj80av9nqpiw7")))) + (build-system dune-build-system) + (propagated-inputs + `(("ocaml-base" ,ocaml-base) + ("ocaml-ppx-here" ,ocaml-ppx-here) + ("ocaml-ppx-sexp-conv" ,ocaml-ppx-sexp-conv) + ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree) + ("ocaml-ppxlib" ,ocaml-ppxlib))) + (properties `((upstream-name . "ppx_sexp_message"))) + (home-page "https://github.com/janestreet/ppx_sexp_message") + (synopsis "A ppx rewriter for easy construction of s-expressions") + (description "Ppx_sexp_message aims to ease the creation of s-expressions +in OCaml. This is mainly motivated by writing error and debugging messages, +where one needs to construct a s-expression based on various element of the +context such as function arguments.") + (license license:asl2.0))) + +(define-public ocaml-ppx-pipebang + (package + (name "ocaml-ppx-pipebang") + (version "0.11.0") + (source (origin + (method url-fetch) + (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v" + (version-major+minor version) + "/files/ppx_pipebang-v" version ".tar.gz")) + (sha256 + (base32 + "1wrrzlb4kdvkkcmzi01fw25jar38r2jlnyn0i6pn4z0lq4gpm9m0")))) + (build-system dune-build-system) + (arguments + ;; No tests + `(#:tests? #f)) + (propagated-inputs + `(("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree) + ("ocaml-ppxlib" ,ocaml-ppxlib))) + (properties `((upstream-name . "ppx_pipebang"))) + (home-page "https://github.com/janestreet/ppx_pipebang") + (synopsis "Inline reverse application operators `|>` and `|!`") + (description "A ppx rewriter that inlines reverse application operators +@code{|>} and @code{|!}.") + (license license:asl2.0))) + +(define-public ocaml-ppx-optional + (package + (name "ocaml-ppx-optional") + (version "0.11.0") + (source (origin + (method url-fetch) + (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v" + (version-major+minor version) + "/files/ppx_optional-v" version ".tar.gz")) + (sha256 + (base32 + "1z8z2bga95k2vksljljfglg10vygkjd24kn1b37sk4z3nmp47x0h")))) + (build-system dune-build-system) + (arguments + ;; No tests + `(#:tests? #f)) + (propagated-inputs + `(("ocaml-base" ,ocaml-base) + ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree) + ("ocaml-ppxlib" ,ocaml-ppxlib))) + (properties `((upstream-name . "ppx_optional"))) + (home-page "https://github.com/janestreet/ppx_optional") + (synopsis "Pattern matching on flat options") + (description + "A ppx rewriter that rewrites simple match statements with an if then +else expression.") + (license license:asl2.0))) + +(define-public ocaml-ppx-optcomp + (package + (name "ocaml-ppx-optcomp") + (version "0.11.0") + (source (origin + (method url-fetch) + (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v" + (version-major+minor version) + "/files/ppx_optcomp-v" version ".tar.gz")) + (sha256 + (base32 + "1bb52p2j2h4s9f06vrcpla80rj93jinnzq6jzilapyx9q068929i")))) + (build-system dune-build-system) + (propagated-inputs + `(("ocaml-base" ,ocaml-base) + ("ocaml-stdio" ,ocaml-stdio) + ("ocaml-ppxlib" ,ocaml-ppxlib))) + (properties `((upstream-name . "ppx_optcomp"))) + (home-page "https://github.com/janestreet/ppx_optcomp") + (synopsis "Optional compilation for OCaml") + (description "Ppx_optcomp stands for Optional Compilation. It is a tool +used to handle optional compilations of pieces of code depending of the word +size, the version of the compiler, ...") + (license license:asl2.0))) + +(define-public ocaml-ppx-let + (package + (name "ocaml-ppx-let") + (version "0.11.0") + (source (origin + (method url-fetch) + (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v" + (version-major+minor version) + "/files/ppx_let-v" version ".tar.gz")) + (sha256 + (base32 + "1wdfw6w4xbg97a35yg6bif9gggxniy9ddnrjfw1a0inkl2yamxkj")))) + (build-system dune-build-system) + (propagated-inputs + `(("ocaml-base" ,ocaml-base) + ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree) + ("ocaml-ppxlib" ,ocaml-ppxlib))) + (properties `((upstream-name . "ppx_let"))) + (home-page "https://github.com/janestreet/ppx_let") + (synopsis "Monadic let-bindings") + (description "A ppx rewriter for monadic and applicative let bindings, +match expressions, and if expressions.") + (license license:asl2.0))) + +(define-public ocaml-ppx-fail + (package + (name "ocaml-ppx-fail") + (version "0.11.0") + (source (origin + (method url-fetch) + (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v" + (version-major+minor version) + "/files/ppx_fail-v" version ".tar.gz")) + (sha256 + (base32 + "07plqsvljiwvngggfypwq55g46s5my55y45mvlmalrxyppzr03s8")))) + (build-system dune-build-system) + (propagated-inputs + `(("ocaml-base" ,ocaml-base) + ("ocaml-ppx-here" ,ocaml-ppx-here) + ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree) + ("ocaml-ppxlib" ,ocaml-ppxlib))) + (properties `((upstream-name . "ppx_fail"))) + (home-page "https://github.com/janestreet/ppx_fail") + (synopsis "Add location to calls to failwiths") + (description "Syntax extension that makes [failwiths] always include a +position.") + (license license:asl2.0))) + +(define-public ocaml-ppx-assert + (package + (name "ocaml-ppx-assert") + (version "0.11.0") + (source (origin + (method url-fetch) + (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v" + (version-major+minor version) + "/files/ppx_assert-v" version ".tar.gz")) + (sha256 + (base32 + "17kd311n0l9f72gblf9kv8i5rghr106w37x4f0m5qwh6nlgl0j9k")))) + (build-system dune-build-system) + (propagated-inputs + `(("ocaml-base" ,ocaml-base) + ("ocaml-ppx-compare" ,ocaml-ppx-compare) + ("ocaml-ppx-here" ,ocaml-ppx-here) + ("ocaml-ppx-sexp-conv" ,ocaml-ppx-sexp-conv) + ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree) + ("ocaml-ppxlib" ,ocaml-ppxlib))) + (properties `((upstream-name . "ppx_assert"))) + (home-page "https://github.com/janestreet/ppx_assert") + (synopsis "Assert-like extension nodes that raise useful errors on failure") + (description "This package contains assert-like extension nodes that raise +useful errors on failure.") + (license license:asl2.0))) + +(define-public ocaml-ppx-expect + (package + (name "ocaml-ppx-expect") + (version "0.11.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/janestreet/ppx_expect.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0bnz3cpj3vwdw409r6f8raakl8n364q5l7wy4i6gckr34a4vla69")))) + (build-system dune-build-system) + (arguments + `(#:jbuild? #t)) + (propagated-inputs + `(("ocaml-base" ,ocaml-base) + ("ocaml-ppx-assert" ,ocaml-ppx-assert) + ("ocaml-ppx-compare" ,ocaml-ppx-compare) + ("ocaml-ppx-custom-printf" ,ocaml-ppx-custom-printf) + ("ocaml-ppx-fields-conv" ,ocaml-ppx-fields-conv) + ("ocaml-ppx-here" ,ocaml-ppx-here) + ("ocaml-ppx-inline-test" ,ocaml-ppx-inline-test) + ("ocaml-ppx-sexp-conv" ,ocaml-ppx-sexp-conv) + ("ocaml-ppx-variants-conv" ,ocaml-ppx-variants-conv) + ("ocaml-stdio" ,ocaml-stdio) + ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree) + ("ocaml-ppxlib" ,ocaml-ppxlib) + ("ocaml-re" ,ocaml-re))) + (properties `((upstream-name . "ppx_expect"))) + (home-page "https://github.com/janestreet/ppx_expect") + (synopsis "Cram like framework for OCaml") + (description "Expect-test is a framework for writing tests in OCaml, similar +to Cram. Expect-tests mimics the existing inline tests framework with the +@code{let%expect_test} construct. The body of an expect-test can contain +output-generating code, interleaved with @code{%expect} extension expressions +to denote the expected output.") + (license license:asl2.0))) + +(define-public ocaml-ppx-js-style + (package + (name "ocaml-ppx-js-style") + (version "0.11.0") + (source (origin + (method url-fetch) + (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v" + (version-major+minor version) + "/files/ppx_js_style-v" version ".tar.gz")) + (sha256 + (base32 + "0z3fc55jdjhhsblla6z4fqc13kljpcz29q79rvs5h2vsraqrldr2")))) + (build-system dune-build-system) + (arguments + ;; No tests + `(#:tests? #f)) + (propagated-inputs + `(("ocaml-base" ,ocaml-base) + ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree) + ("ocaml-octavius" ,ocaml-octavius) + ("ocaml-ppxlib" ,ocaml-ppxlib))) + (properties `((upstream-name . "ppx_js_style"))) + (home-page "https://github.com/janestreet/ppx_js_style") + (synopsis "Code style checker for Jane Street Packages") + (description "This packages is a no-op ppx rewriter. It is used as a +@code{lint} tool to enforce some coding conventions across all Jane Street +packages.") + (license license:asl2.0))) + +(define-public ocaml-ppx-typerep-conv + (package + (name "ocaml-ppx-typerep-conv") + (version "0.11.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/janestreet/ppx_typerep_conv.git") + (commit (string-append "v" version)))) + (sha256 + (base32 + "0a13dpfrrg0rsm8qni1bh7pqcda30l70z8r6yzi5a64bmwk7g5ah")))) + (build-system dune-build-system) + (arguments + `(#:test-target ".")) + (propagated-inputs + `(("ocaml-base" ,ocaml-base) + ("ocaml-typerep" ,ocaml-typerep) + ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree) + ("ocaml-ppxlib" ,ocaml-ppxlib))) + (properties `((upstream-name . "ppx_typerep_conv"))) + (home-page "https://github.com/janestreet/ppx_typerep_conv") + (synopsis "Generation of runtime types from type declarations") + (description "This package can automatically generate runtime types +from type definitions.") + (license license:asl2.0))) + +(define-public ocaml-ppx-base + (package + (name "ocaml-ppx-base") + (version "0.11.0") + (source (origin + (method url-fetch) + (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v" + (version-major+minor version) + "/files/ppx_base-v" version ".tar.gz")) + (sha256 + (base32 + "0aq206pg330jmj7lhcagiiwm3a0b3gsqm801m8ajd4ysyw7idkym")))) + (build-system dune-build-system) + (arguments + `(#:test-target ".")) + (propagated-inputs + `(("ocaml-ppx-compare" ,ocaml-ppx-compare) + ("ocaml-ppx-enumerate" ,ocaml-ppx-enumerate) + ("ocaml-ppx-hash" ,ocaml-ppx-hash) + ("ocaml-ppx-js-style" ,ocaml-ppx-js-style) + ("ocaml-ppx-sexp-conv" ,ocaml-ppx-sexp-conv) + ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree) + ("ocaml-ppxlib" ,ocaml-ppxlib))) + (properties `((upstream-name . "ppx_base"))) + (home-page "https://github.com/janestreet/ppx_base") + (synopsis "Base set of ppx rewriters") + (description "Ppx_base is the set of ppx rewriters used for Base. + +Note that Base doesn't need ppx to build, it is only used as a +verification tool.") + (license license:asl2.0))) + +(define-public ocaml-ppx-bin-prot + (package + (name "ocaml-ppx-bin-prot") + (version "0.11.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/janestreet/ppx_bin_prot.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1h60i75bzvhna1axyn662gyrzhh441l79vl142d235i5x31dmnkz")))) + (build-system dune-build-system) + (arguments + ;; Cyclic dependency with ocaml-ppx-jane + `(#:tests? #f)) + (propagated-inputs + `(("ocaml-base" ,ocaml-base) + ("ocaml-bin-prot" ,ocaml-bin-prot) + ("ocaml-ppx-here" ,ocaml-ppx-here) + ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree) + ("ocaml-ppxlib" ,ocaml-ppxlib))) + (properties `((upstream-name . "ppx_bin_prot"))) + (home-page "https://github.com/janestreet/ppx_bin_prot") + (synopsis "Generation of bin_prot readers and writers from types") + (description "Generation of binary serialization and deserialization +functions from type definitions.") + (license license:asl2.0))) + +(define-public ocaml-ppx-jane + (package + (name "ocaml-ppx-jane") + (version "0.11.0") + (source (origin + (method url-fetch) + (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v" + (version-major+minor version) + "/files/ppx_jane-v" version ".tar.gz")) + (sha256 + (base32 + "0lgppkw3aixrfnixihrsz2ipafv8fpvkdpy3pw8n0r615gg8x8la")))) + (build-system dune-build-system) + (arguments + `(#:test-target ".")) + (propagated-inputs + `(("ocaml-ppx-assert" ,ocaml-ppx-assert) + ("ocaml-ppx-base" ,ocaml-ppx-base) + ("ocaml-ppx-bench" ,ocaml-ppx-bench) + ("ocaml-ppx-bin-prot" ,ocaml-ppx-bin-prot) + ("ocaml-ppx-custom-printf" ,ocaml-ppx-custom-printf) + ("ocaml-ppx-expect" ,ocaml-ppx-expect) + ("ocaml-ppx-fail" ,ocaml-ppx-fail) + ("ocaml-ppx-fields-conv" ,ocaml-ppx-fields-conv) + ("ocaml-ppx-here" ,ocaml-ppx-here) + ("ocaml-ppx-inline-test" ,ocaml-ppx-inline-test) + ("ocaml-ppx-let" ,ocaml-ppx-let) + ("ocaml-ppx-optcomp" ,ocaml-ppx-optcomp) + ("ocaml-ppx-optional" ,ocaml-ppx-optional) + ("ocaml-ppx-pipebang" ,ocaml-ppx-pipebang) + ("ocaml-ppx-sexp-message" ,ocaml-ppx-sexp-message) + ("ocaml-ppx-sexp-value" ,ocaml-ppx-sexp-value) + ("ocaml-ppx-typerep-conv" ,ocaml-ppx-typerep-conv) + ("ocaml-ppx-variants-conv" ,ocaml-ppx-variants-conv) + ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree) + ("ocaml-ppxlib" ,ocaml-ppxlib))) + (properties `((upstream-name . "ppx_jane"))) + (home-page "https://github.com/janestreet/ppx_jane") + (synopsis "Standard Jane Street ppx rewriters") + (description "This package installs a ppx-jane executable, which is a ppx +driver including all standard Jane Street ppx rewriters.") + (license license:asl2.0))) + +(define-public ocaml-splittable-random + (package + (name "ocaml-splittable-random") + (version "0.11.0") + (source (origin + (method url-fetch) + (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v" + (version-major+minor version) + "/files/splittable_random-v" version ".tar.gz")) + (sha256 + (base32 + "0l1wbd881mymlnpzlq5q53mmdz3g5d7qjhyc7lfaq1x0iaccn5lc")))) + (build-system dune-build-system) + (propagated-inputs + `(("ocaml-base" ,ocaml-base) + ("ocaml-ppx-jane" ,ocaml-ppx-jane) + ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree))) + (properties `((upstream-name . "splittable_random"))) + (home-page "https://github.com/janestreet/splittable_random") + (synopsis "PRNG that can be split into independent streams") + (description "This package provides a splittable +@acronym{PRNG,pseudo-random number generator} functions like a PRNG that can +be used as a stream of random values; it can also be split to produce a +second, independent stream of random values. + +This library implements a splittable pseudo-random number generator that sacrifices +cryptographic-quality randomness in favor of performance.") + (license license:asl2.0))) + +(define-public ocaml-jane-street-headers + (package + (name "ocaml-jane-street-headers") + (version "0.11.0") + (source (origin + (method url-fetch) + (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v" + (version-major+minor version) + "/files/jane-street-headers-v" version ".tar.gz")) + (sha256 + (base32 + "0afhzm08l9v883fhpqqh2lmy7az609pxif40bp7x1sk8c0yszqsh")))) + (build-system dune-build-system) + (arguments + `(#:test-target ".")) + (home-page "https://github.com/janestreet/jane-street-headers") + (synopsis "Jane Street C header files") + (description "This package provides C header files shared between the +various Jane Street packages.") + (license license:asl2.0))) + +(define-public ocaml-configurator + (package + (name "ocaml-configurator") + (version "0.11.0") + (source (origin + (method url-fetch) + (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v" + (version-major+minor version) + "/files/configurator-v" version ".tar.gz")) + (sha256 + (base32 + "0kwgi3sh92v4n242dk5hgpwd85zzgnczgbkqi0q0kr6m93zgbf7p")))) + (build-system dune-build-system) + (arguments + ;; No tests + `(#:tests? #f)) + (propagated-inputs + `(("ocaml-base" ,ocaml-base) + ("ocaml-stdio" ,ocaml-stdio))) + (home-page "https://github.com/janestreet/configurator") + (synopsis "Helper library for gathering system configuration") + (description "Configurator is a small library that helps writing OCaml +scripts that test features available on the system, in order to generate config.h +files for instance. + +Configurator allows one to: +@itemize +@item test if a C program compiles +@item query pkg-config +@item import #define from OCaml header files +@item generate config.h file +@end itemize") + (license license:asl2.0))) + +(define-public ocaml-spawn + (package + (name "ocaml-spawn") + (version "0.12.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/janestreet/spawn.git") + (commit (string-append "v" version)))) + (sha256 + (base32 + "0amgj7g9sjlbjivn1mg7yjdmxd21hgp4a0ak2zrm95dmm4gi846i")))) + (build-system dune-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'check 'fix-tests + (lambda _ + (substitute* "test/tests.ml" + (("/bin/pwd") (which "pwd")) + (("/bin/echo") (which "echo"))) + #t))))) + (native-inputs + `(("ocaml-ppx-expect" ,ocaml-ppx-expect))) + (home-page "https://github.com/janestreet/spawn") + (synopsis "Spawning sub-processes") + (description + "Spawn is a small library exposing only one functionality: spawning sub-process. + +It has three main goals: + +@itemize +@item provide missing features of Unix.create_process such as providing a +working directory, +@item provide better errors when a system call fails in the +sub-process. For instance if a command is not found, you get a proper +@code{Unix.Unix_error} exception, +@item improve performances by using vfork when available. It is often +claimed that nowadays fork is as fast as vfork, however in practice +fork takes time proportional to the process memory while vfork is +constant time. In application using a lot of memory, vfork can be +thousands of times faster than fork. +@end itemize") + (license license:asl2.0))) + +(define-public ocaml-core + (package + (name "ocaml-core") + (version "0.11.3") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/janestreet/core.git") + (commit (string-append "v" version)))) + (sha256 + (base32 + "0pzl8n09z4f3i7z2wq4cjxfqrr8mj6xcdp7rbg0nxap2zdhjgvrq")))) + (build-system dune-build-system) + (arguments + `(#:jbuild? #t + ;; Require a cyclic dependency: core_extended + #:tests? #f)) + (propagated-inputs + `(("ocaml-base" ,ocaml-base) + ("ocaml-configurator" ,ocaml-configurator) + ("ocaml-core-kernel" ,ocaml-core-kernel) + ("ocaml-ppx-assert" ,ocaml-ppx-assert) + ("ocaml-ppx-jane" ,ocaml-ppx-jane) + ("ocaml-sexplib" ,ocaml-sexplib) + ("ocaml-spawn" ,ocaml-spawn) + ("ocaml-stdio" ,ocaml-stdio) + ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree) + ("ocaml-ppxlib" ,ocaml-ppxlib))) + (home-page "https://github.com/janestreet/core") + (synopsis "Alternative to OCaml's standard library") + (description "The Core suite of libraries is an alternative to OCaml's +standard library that was developed by Jane Street.") + ;; Also contains parts of OCaml, relicensed to asl2.0, as permitted + ;; by OCaml's license for consortium members (see THIRD-PARTY.txt). + (license license:asl2.0))) + +(define-public ocaml-core-kernel + (package + (name "ocaml-core-kernel") + (version "0.11.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/janestreet/core_kernel.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1dg7ygy7i64c5gaakb1cp1b26p9ks81vbxmb8fd7jff2q60j2z2g")))) + (build-system dune-build-system) + (arguments + ;; Cyclic dependency with ocaml-core + `(#:tests? #f)) + (propagated-inputs + `(("ocaml-base" ,ocaml-base) + ("ocaml-bin-prot" ,ocaml-bin-prot) + ("ocaml-configurator" ,ocaml-configurator) + ("ocaml-fieldslib" ,ocaml-fieldslib) + ("ocaml-jane-street-headers" ,ocaml-jane-street-headers) + ("ocaml-ppx-assert" ,ocaml-ppx-assert) + ("ocaml-ppx-base" ,ocaml-ppx-base) + ("ocaml-ppx-hash" ,ocaml-ppx-hash) + ("ocaml-ppx-inline-test" ,ocaml-ppx-inline-test) + ("ocaml-ppx-jane" ,ocaml-ppx-jane) + ("ocaml-ppx-sexp-conv" ,ocaml-ppx-sexp-conv) + ("ocaml-ppx-sexp-message" ,ocaml-ppx-sexp-message) + ("ocaml-sexplib" ,ocaml-sexplib) + ("ocaml-splittable-random" ,ocaml-splittable-random) + ("ocaml-stdio" ,ocaml-stdio) + ("ocaml-typerep" ,ocaml-typerep) + ("ocaml-variantslib" ,ocaml-variantslib) + ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree))) + (properties `((upstream-name . "core_kernel"))) + (home-page "https://github.com/janestreet/core_kernel") + (synopsis "Portable standard library for OCaml") + (description "Core is an alternative to the OCaml standard library. + +Core_kernel is the system-independent part of Core. It is aimed for cases when +the full Core is not available, such as in Javascript.") + (license (list + ;; this package and parts of OCaml, relicensed by janestreet + license:asl2.0 + ;; MLton and sjs + license:expat)))) diff --git a/gnu/packages/openldap.scm b/gnu/packages/openldap.scm index f65ba5245d..368a953cb5 100644 --- a/gnu/packages/openldap.scm +++ b/gnu/packages/openldap.scm @@ -92,11 +92,15 @@ ;; Give -L arguments for cyrus-sasl to avoid propagation. (lambda* (#:key inputs outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out")) - (sasl (assoc-ref inputs "cyrus-sasl"))) + (krb5 (assoc-ref inputs "mit-krb5"))) ;propagated from cyrus-sasl + + ;; The ancient Libtool bundled with OpenLDAP copies the linker flags + ;; from Cyrus-SASL and embeds them into its own .la files. Add an + ;; absolute reference to Kerberos so it does not have to be propagated. (substitute* (map (lambda (f) (string-append out "/" f)) '("lib/libldap.la" "lib/libldap_r.la")) - (("-lsasl2" lib) - (string-append "-L" sasl "/lib " lib))) + (("-lkrb5" lib) + (string-append "-L" krb5 "/lib " lib))) #t)))))) (synopsis "Implementation of the Lightweight Directory Access Protocol") (description diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index c52f5e3699..2e69cd151e 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -4,9 +4,9 @@ ;;; Copyright © 2017 Muriithi Frederick Muriuki ;;; Copyright © 2017, 2018 Oleg Pykhalov ;;; Copyright © 2017 Roel Janssen -;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice +;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice ;;; Copyright © 2018 Julien Lepiller -;;; Copyright © 2018 Rutger Helling +;;; Copyright © 2018, 2019 Rutger Helling ;;; Copyright © 2018 Sou Bunnbu ;;; Copyright © 2018 Eric Bavier ;;; Copyright © 2019 Efraim Flashner @@ -836,23 +836,14 @@ on top of GNU Guix.") (define-public gcab (package (name "gcab") - (version "1.1") + (version "1.2") (source (origin (method url-fetch) - (uri (string-append "mirror://gnome/sources/" name "/" - version "/" name "-" version ".tar.xz")) + (uri (string-append "mirror://gnome/sources/gcab/" + version "/gcab-" version ".tar.xz")) (sha256 (base32 - "0l19sr6pg0cfcddmi5n79d08mjjbhn427ip5jlsy9zddq9r24aqr")) - ;; gcab 1.1 has a hard dependency on git — even when building - ;; from a tarball. Remove it early so ‘guix environment gcab’ - ;; can actually build what ‘guix build --source gcab’ returns. - (modules '((guix build utils))) - (snippet - '(begin - (substitute* "meson.build" - (("git_version = .*$") "git_version = []\n")) - #t)))) + "038h5kk41si2hc9d9169rrlvp8xgsxq27kri7hv2vr39gvz9cbas")))) (build-system meson-build-system) (native-inputs `(("glib:bin" ,glib "bin") ; for glib-mkenums @@ -961,7 +952,7 @@ the bootloader configuration.") (define-public flatpak (package (name "flatpak") - (version "1.1.0") + (version "1.2.0") (source (origin (method url-fetch) @@ -969,7 +960,7 @@ the bootloader configuration.") version "/flatpak-" version ".tar.xz")) (sha256 (base32 - "0bkjwh49kajyd78vdh0g9arb352a7rccaifas9zxa78phhja2v2p")))) + "1bdk6qmsvy4d80245x1si9qvrga2f2yalj9qfmf1lqj5ljxxxifv")))) (build-system gnu-build-system) (arguments '(#:tests? #f ;; Tests fail due to trying to create files where it can't. @@ -988,6 +979,7 @@ the bootloader configuration.") ("pkg-config" ,pkg-config))) (inputs `(("appstream-glib" ,appstream-glib) ("bubblewrap" ,bubblewrap) + ("dconf" ,dconf) ("gdk-pixbuf" ,gdk-pixbuf) ("gpgme" ,gpgme) ("json-glib" ,json-glib) diff --git a/gnu/packages/patches/allegro-fix-compilation-mesa-18.2.5-and-later.patch b/gnu/packages/patches/allegro-mesa-18.2.5-and-later.patch similarity index 100% rename from gnu/packages/patches/allegro-fix-compilation-mesa-18.2.5-and-later.patch rename to gnu/packages/patches/allegro-mesa-18.2.5-and-later.patch diff --git a/gnu/packages/patches/allegro4-mesa-18.2.5-and-later.patch b/gnu/packages/patches/allegro4-mesa-18.2.5-and-later.patch new file mode 100644 index 0000000000..a4944821db --- /dev/null +++ b/gnu/packages/patches/allegro4-mesa-18.2.5-and-later.patch @@ -0,0 +1,41 @@ +Fixes compilation with Mesa >= 18.2.5. + +Modified from upstream to work on allegro4: + +https://github.com/liballeg/allegro5/commit/a40d30e21802ecf5c9382cf34af9b01bd3781e47 + +diff --git a/addons/allegrogl/include/alleggl.h b/addons/allegrogl/include/alleggl.h +index 0f86a6768..652dd024e 100644 +--- a/addons/allegrogl/include/alleggl.h ++++ b/addons/allegrogl/include/alleggl.h +@@ -103,10 +103,14 @@ + + /* HACK: Prevent both Mesa and SGI's broken headers from screwing us */ + #define __glext_h_ ++#define __gl_glext_h_ + #define __glxext_h_ ++#define __glx_glxext_h_ + #include + #undef __glext_h_ ++#undef __gl_glext_h_ + #undef __glxext_h_ ++#undef __glx_glxext_h_ + + #endif /* ALLEGRO_MACOSX */ + +diff --git a/addons/allegrogl/include/allegrogl/GLext/glx_ext_defs.h b/addons/allegrogl/include/allegrogl/GLext/glx_ext_defs.h +index 49c502091..fba8aea5d 100644 +--- a/addons/allegrogl/include/allegrogl/GLext/glx_ext_defs.h ++++ b/addons/allegrogl/include/allegrogl/GLext/glx_ext_defs.h +@@ -1,7 +1,9 @@ + /* HACK: Prevent both Mesa and SGI's broken headers from screwing us */ + #define __glxext_h_ ++#define __glx_glxext_h_ + #include + #undef __glxext_h_ ++#undef __glx_glxext_h_ + + #ifndef GLX_VERSION_1_3 + #define _ALLEGRO_GLX_VERSION_1_3 +-- +2.20.0 diff --git a/gnu/packages/patches/cairo-CVE-2016-9082.patch b/gnu/packages/patches/cairo-CVE-2016-9082.patch deleted file mode 100644 index ad83404194..0000000000 --- a/gnu/packages/patches/cairo-CVE-2016-9082.patch +++ /dev/null @@ -1,122 +0,0 @@ -From: Adrian Johnson -Date: Thu, 20 Oct 2016 21:12:30 +1030 -Subject: [PATCH] image: prevent invalid ptr access for > 4GB images - -Image data is often accessed using: - - image->data + y * image->stride - -On 64-bit achitectures if the image data is > 4GB, this computation -will overflow since both y and stride are 32-bit types. - -bug report: https://bugs.freedesktop.org/show_bug.cgi?id=98165 -patch: https://bugs.freedesktop.org/attachment.cgi?id=127421 ---- - boilerplate/cairo-boilerplate.c | 4 +++- - src/cairo-image-compositor.c | 4 ++-- - src/cairo-image-surface-private.h | 2 +- - src/cairo-mesh-pattern-rasterizer.c | 2 +- - src/cairo-png.c | 2 +- - src/cairo-script-surface.c | 3 ++- - 6 files changed, 10 insertions(+), 7 deletions(-) - -diff --git a/boilerplate/cairo-boilerplate.c b/boilerplate/cairo-boilerplate.c -index 7fdbf79..4804dea 100644 ---- a/boilerplate/cairo-boilerplate.c -+++ b/boilerplate/cairo-boilerplate.c -@@ -42,6 +42,7 @@ - #undef CAIRO_VERSION_H - #include "../cairo-version.h" - -+#include - #include - #include - #include -@@ -976,7 +977,8 @@ cairo_surface_t * - cairo_boilerplate_image_surface_create_from_ppm_stream (FILE *file) - { - char format; -- int width, height, stride; -+ int width, height; -+ ptrdiff_t stride; - int x, y; - unsigned char *data; - cairo_surface_t *image = NULL; -diff --git a/src/cairo-image-compositor.c b/src/cairo-image-compositor.c -index 48072f8..3ca0006 100644 ---- a/src/cairo-image-compositor.c -+++ b/src/cairo-image-compositor.c -@@ -1575,7 +1575,7 @@ typedef struct _cairo_image_span_renderer { - pixman_image_t *src, *mask; - union { - struct fill { -- int stride; -+ ptrdiff_t stride; - uint8_t *data; - uint32_t pixel; - } fill; -@@ -1594,7 +1594,7 @@ typedef struct _cairo_image_span_renderer { - struct finish { - cairo_rectangle_int_t extents; - int src_x, src_y; -- int stride; -+ ptrdiff_t stride; - uint8_t *data; - } mask; - } u; -diff --git a/src/cairo-image-surface-private.h b/src/cairo-image-surface-private.h -index 8ca694c..7e78d61 100644 ---- a/src/cairo-image-surface-private.h -+++ b/src/cairo-image-surface-private.h -@@ -71,7 +71,7 @@ struct _cairo_image_surface { - - int width; - int height; -- int stride; -+ ptrdiff_t stride; - int depth; - - unsigned owns_data : 1; -diff --git a/src/cairo-mesh-pattern-rasterizer.c b/src/cairo-mesh-pattern-rasterizer.c -index 1b63ca8..e7f0db6 100644 ---- a/src/cairo-mesh-pattern-rasterizer.c -+++ b/src/cairo-mesh-pattern-rasterizer.c -@@ -470,7 +470,7 @@ draw_pixel (unsigned char *data, int width, int height, int stride, - tg += tg >> 16; - tb += tb >> 16; - -- *((uint32_t*) (data + y*stride + 4*x)) = ((ta << 16) & 0xff000000) | -+ *((uint32_t*) (data + y*(ptrdiff_t)stride + 4*x)) = ((ta << 16) & 0xff000000) | - ((tr >> 8) & 0xff0000) | ((tg >> 16) & 0xff00) | (tb >> 24); - } - } -diff --git a/src/cairo-png.c b/src/cairo-png.c -index 562b743..aa8c227 100644 ---- a/src/cairo-png.c -+++ b/src/cairo-png.c -@@ -673,7 +673,7 @@ read_png (struct png_read_closure_t *png_closure) - } - - for (i = 0; i < png_height; i++) -- row_pointers[i] = &data[i * stride]; -+ row_pointers[i] = &data[i * (ptrdiff_t)stride]; - - png_read_image (png, row_pointers); - png_read_end (png, info); -diff --git a/src/cairo-script-surface.c b/src/cairo-script-surface.c -index ea0117d..91e4baa 100644 ---- a/src/cairo-script-surface.c -+++ b/src/cairo-script-surface.c -@@ -1202,7 +1202,8 @@ static cairo_status_t - _write_image_surface (cairo_output_stream_t *output, - const cairo_image_surface_t *image) - { -- int stride, row, width; -+ int row, width; -+ ptrdiff_t stride; - uint8_t row_stack[CAIRO_STACK_BUFFER_SIZE]; - uint8_t *rowdata; - uint8_t *data; --- -2.1.4 - diff --git a/gnu/packages/patches/cairo-setjmp-wrapper.patch b/gnu/packages/patches/cairo-setjmp-wrapper.patch deleted file mode 100644 index bffac6e041..0000000000 --- a/gnu/packages/patches/cairo-setjmp-wrapper.patch +++ /dev/null @@ -1,78 +0,0 @@ -Revert faulty commit to avoid undefined behaviour: -https://bugs.freedesktop.org/show_bug.cgi?id=104325 - -Taken from this upstream commit: -https://cgit.freedesktop.org/cairo/commit/?h=1.14&id=2acc4382c54bd8239361ceed14423412a343d311 - -diff --git a/src/cairo-bentley-ottmann-rectangular.c b/src/cairo-bentley-ottmann-rectangular.c -index cb2e30c..5541bdc 100644 ---- a/src/cairo-bentley-ottmann-rectangular.c -+++ b/src/cairo-bentley-ottmann-rectangular.c -@@ -593,12 +593,6 @@ sweep_line_insert (sweep_line_t *sweep, rectangle_t *rectangle) - pqueue_push (sweep, rectangle); - } - --static int --sweep_line_setjmp (sweep_line_t *sweep_line) --{ -- return setjmp (sweep_line->unwind); --} -- - static cairo_status_t - _cairo_bentley_ottmann_tessellate_rectangular (rectangle_t **rectangles, - int num_rectangles, -@@ -615,7 +609,7 @@ _cairo_bentley_ottmann_tessellate_rectangular (rectangle_t **rectangles, - rectangles, num_rectangles, - fill_rule, - do_traps, container); -- if ((status = sweep_line_setjmp (&sweep_line))) -+ if ((status = setjmp (sweep_line.unwind))) - return status; - - rectangle = rectangle_pop_start (&sweep_line); -diff --git a/src/cairo-png.c b/src/cairo-png.c -index e64b14a..068617d 100644 ---- a/src/cairo-png.c -+++ b/src/cairo-png.c -@@ -158,14 +158,6 @@ png_simple_warning_callback (png_structp png, - */ - } - --static int --png_setjmp (png_struct *png) --{ --#ifdef PNG_SETJMP_SUPPORTED -- return setjmp (png_jmpbuf (png)); --#endif -- return 0; --} - - /* Starting with libpng-1.2.30, we must explicitly specify an output_flush_fn. - * Otherwise, we will segfault if we are writing to a stream. */ -@@ -237,8 +229,10 @@ write_png (cairo_surface_t *surface, - goto BAIL4; - } - -- if (png_setjmp (png)) -+#ifdef PNG_SETJMP_SUPPORTED -+ if (setjmp (png_jmpbuf (png))) - goto BAIL4; -+#endif - - png_set_write_fn (png, closure, write_func, png_simple_output_flush_fn); - -@@ -577,11 +571,12 @@ read_png (struct png_read_closure_t *png_closure) - png_set_read_fn (png, png_closure, stream_read_func); - - status = CAIRO_STATUS_SUCCESS; -- -- if (png_setjmp (png)) { -+#ifdef PNG_SETJMP_SUPPORTED -+ if (setjmp (png_jmpbuf (png))) { - surface = _cairo_surface_create_in_error (status); - goto BAIL; - } -+#endif - - png_read_info (png, info); - diff --git a/gnu/packages/patches/cool-retro-term-dont-check-uninit-member.patch b/gnu/packages/patches/cool-retro-term-dont-check-uninit-member.patch deleted file mode 100644 index c6e1d27315..0000000000 --- a/gnu/packages/patches/cool-retro-term-dont-check-uninit-member.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 126a97d1f22f7d784d392b2b7d5aadf0a4e18c0d Mon Sep 17 00:00:00 2001 -From: Petter -Date: Thu, 27 Apr 2017 20:28:02 +0200 -Subject: [PATCH] Avoid checking uninitialized member + simplify condition - ---- - qmltermwidget/lib/TerminalDisplay.cpp | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/qmltermwidget/lib/TerminalDisplay.cpp b/qmltermwidget/lib/TerminalDisplay.cpp -index 189a609..36d2cd2 100644 ---- a/qmltermwidget/lib/TerminalDisplay.cpp -+++ b/qmltermwidget/lib/TerminalDisplay.cpp -@@ -325,6 +325,7 @@ TerminalDisplay::TerminalDisplay(QQuickItem *parent) - ,_terminalSizeHint(false) - ,_terminalSizeStartup(true) - ,_bidiEnabled(false) -+,_mouseMarks(false) - ,_actSel(0) - ,_wordSelectionMode(false) - ,_lineSelectionMode(false) -@@ -1846,7 +1847,7 @@ void TerminalDisplay::mousePressEvent(QMouseEvent* ev) - } - else if ( ev->button() == Qt::MidButton ) - { -- if ( _mouseMarks || (!_mouseMarks && (ev->modifiers() & Qt::ShiftModifier)) ) -+ if ( _mouseMarks || (ev->modifiers() & Qt::ShiftModifier) ) - emitSelection(true,ev->modifiers() & Qt::ControlModifier); - else - emit mouseSignal( 1, charColumn +1, charLine +1 +_scrollBar->value() -_scrollBar->maximum() , 0); --- -2.12.2 - diff --git a/gnu/packages/patches/cool-retro-term-fix-array-size.patch b/gnu/packages/patches/cool-retro-term-fix-array-size.patch deleted file mode 100644 index 04a2a27971..0000000000 --- a/gnu/packages/patches/cool-retro-term-fix-array-size.patch +++ /dev/null @@ -1,25 +0,0 @@ -From c91d7ae5dbb00c8392a9f93283dc56c3e296cccd Mon Sep 17 00:00:00 2001 -From: Petter -Date: Thu, 27 Apr 2017 20:19:21 +0200 -Subject: [PATCH] Fix size of the array passed to memset() - ---- - qmltermwidget/lib/History.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/qmltermwidget/lib/History.cpp b/qmltermwidget/lib/History.cpp -index 0f9c13f..ab6f7be 100644 ---- a/qmltermwidget/lib/History.cpp -+++ b/qmltermwidget/lib/History.cpp -@@ -515,7 +515,7 @@ void HistoryScrollBlockArray::addCells(const Character a[], int count) - // put cells in block's data - assert((count * sizeof(Character)) < ENTRIES); - -- memset(b->data, 0, ENTRIES); -+ memset(b->data, 0, sizeof(b->data)); - - memcpy(b->data, a, count * sizeof(Character)); - b->size = count * sizeof(Character); --- -2.12.2 - diff --git a/gnu/packages/patches/cool-retro-term-memory-leak-1.patch b/gnu/packages/patches/cool-retro-term-memory-leak-1.patch deleted file mode 100644 index f3fbac17de..0000000000 --- a/gnu/packages/patches/cool-retro-term-memory-leak-1.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 08628fda19128b75248548357e416bc373f14f91 Mon Sep 17 00:00:00 2001 -From: Yen Chi Hsuan -Date: Sat, 18 Mar 2017 02:50:34 +0800 -Subject: [PATCH] Fix memory leak in hotspot (URLs & emails) detection - ---- - qmltermwidget/lib/Filter.cpp | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/qmltermwidget/lib/Filter.cpp b/qmltermwidget/lib/Filter.cpp -index 5ca7bee..2e8d2fb 100644 ---- a/qmltermwidget/lib/Filter.cpp -+++ b/qmltermwidget/lib/Filter.cpp -@@ -26,6 +26,7 @@ - // Qt - #include - #include -+#include - #include - #include - #include -@@ -194,6 +195,7 @@ Filter::~Filter() - } - void Filter::reset() - { -+ qDeleteAll(_hotspotList); - _hotspots.clear(); - _hotspotList.clear(); - } --- -2.12.2 - diff --git a/gnu/packages/patches/cyrus-sasl-CVE-2013-4122.patch b/gnu/packages/patches/cyrus-sasl-CVE-2013-4122.patch deleted file mode 100644 index fc72e42e03..0000000000 --- a/gnu/packages/patches/cyrus-sasl-CVE-2013-4122.patch +++ /dev/null @@ -1,130 +0,0 @@ -Fix CVE-2013-4122. - -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-4122 - -Patch copied from upstream source repository: -https://github.com/cyrusimap/cyrus-sasl/commit/dedad73e5e7a75d01a5f3d5a6702ab8ccd2ff40d - -From dedad73e5e7a75d01a5f3d5a6702ab8ccd2ff40d Mon Sep 17 00:00:00 2001 -From: mancha -Date: Thu, 11 Jul 2013 10:08:07 +0100 -Subject: Handle NULL returns from glibc 2.17+ crypt() - -Starting with glibc 2.17 (eglibc 2.17), crypt() fails with EINVAL -(w/ NULL return) if the salt violates specifications. Additionally, -on FIPS-140 enabled Linux systems, DES/MD5-encrypted passwords -passed to crypt() fail with EPERM (w/ NULL return). - -When using glibc's crypt(), check return value to avoid a possible -NULL pointer dereference. - -Patch by mancha1@hush.com. ---- - pwcheck/pwcheck_getpwnam.c | 3 ++- - pwcheck/pwcheck_getspnam.c | 4 +++- - saslauthd/auth_getpwent.c | 4 +++- - saslauthd/auth_shadow.c | 8 +++----- - 4 files changed, 11 insertions(+), 8 deletions(-) - -diff --git a/pwcheck/pwcheck_getpwnam.c b/pwcheck/pwcheck_getpwnam.c -index 4b34222..400289c 100644 ---- a/pwcheck/pwcheck_getpwnam.c -+++ b/pwcheck/pwcheck_getpwnam.c -@@ -32,6 +32,7 @@ char *userid; - char *password; - { - char* r; -+ char* crpt_passwd; - struct passwd *pwd; - - pwd = getpwnam(userid); -@@ -41,7 +42,7 @@ char *password; - else if (pwd->pw_passwd[0] == '*') { - r = "Account disabled"; - } -- else if (strcmp(pwd->pw_passwd, crypt(password, pwd->pw_passwd)) != 0) { -+ else if (!(crpt_passwd = crypt(password, pwd->pw_passwd)) || strcmp(pwd->pw_passwd, (const char *)crpt_passwd) != 0) { - r = "Incorrect password"; - } - else { -diff --git a/pwcheck/pwcheck_getspnam.c b/pwcheck/pwcheck_getspnam.c -index 2b11286..6d607bb 100644 ---- a/pwcheck/pwcheck_getspnam.c -+++ b/pwcheck/pwcheck_getspnam.c -@@ -32,13 +32,15 @@ char *userid; - char *password; - { - struct spwd *pwd; -+ char *crpt_passwd; - - pwd = getspnam(userid); - if (!pwd) { - return "Userid not found"; - } - -- if (strcmp(pwd->sp_pwdp, crypt(password, pwd->sp_pwdp)) != 0) { -+ crpt_passwd = crypt(password, pwd->sp_pwdp); -+ if (!crpt_passwd || strcmp(pwd->sp_pwdp, (const char *)crpt_passwd) != 0) { - return "Incorrect password"; - } - else { -diff --git a/saslauthd/auth_getpwent.c b/saslauthd/auth_getpwent.c -index fc8029d..d4ebe54 100644 ---- a/saslauthd/auth_getpwent.c -+++ b/saslauthd/auth_getpwent.c -@@ -77,6 +77,7 @@ auth_getpwent ( - { - /* VARIABLES */ - struct passwd *pw; /* pointer to passwd file entry */ -+ char *crpt_passwd; /* encrypted password */ - int errnum; - /* END VARIABLES */ - -@@ -105,7 +106,8 @@ auth_getpwent ( - } - } - -- if (strcmp(pw->pw_passwd, (const char *)crypt(password, pw->pw_passwd))) { -+ crpt_passwd = crypt(password, pw->pw_passwd); -+ if (!crpt_passwd || strcmp(pw->pw_passwd, (const char *)crpt_passwd)) { - if (flags & VERBOSE) { - syslog(LOG_DEBUG, "DEBUG: auth_getpwent: %s: invalid password", login); - } -diff --git a/saslauthd/auth_shadow.c b/saslauthd/auth_shadow.c -index 677131b..1988afd 100644 ---- a/saslauthd/auth_shadow.c -+++ b/saslauthd/auth_shadow.c -@@ -210,8 +210,8 @@ auth_shadow ( - RETURN("NO Insufficient permission to access NIS authentication database (saslauthd)"); - } - -- cpw = strdup((const char *)crypt(password, sp->sp_pwdp)); -- if (strcmp(sp->sp_pwdp, cpw)) { -+ cpw = crypt(password, sp->sp_pwdp); -+ if (!cpw || strcmp(sp->sp_pwdp, (const char *)cpw)) { - if (flags & VERBOSE) { - /* - * This _should_ reveal the SHADOW_PW_LOCKED prefix to an -@@ -221,10 +221,8 @@ auth_shadow ( - syslog(LOG_DEBUG, "DEBUG: auth_shadow: pw mismatch: '%s' != '%s'", - sp->sp_pwdp, cpw); - } -- free(cpw); - RETURN("NO Incorrect password"); - } -- free(cpw); - - /* - * The following fields will be set to -1 if: -@@ -286,7 +284,7 @@ auth_shadow ( - RETURN("NO Invalid username"); - } - -- if (strcmp(upw->upw_passwd, crypt(password, upw->upw_passwd)) != 0) { -+ if (!(cpw = crypt(password, upw->upw_passwd)) || (strcmp(upw->upw_passwd, (const char *)cpw) != 0)) { - if (flags & VERBOSE) { - syslog(LOG_DEBUG, "auth_shadow: pw mismatch: %s != %s", - password, upw->upw_passwd); --- -cgit v0.12 - diff --git a/gnu/packages/patches/efl-mesa-compat.patch b/gnu/packages/patches/efl-mesa-compat.patch new file mode 100644 index 0000000000..6fe7b38428 --- /dev/null +++ b/gnu/packages/patches/efl-mesa-compat.patch @@ -0,0 +1,21 @@ +Fix build on 32-bit architectures with Mesa 18.3. Patch taken from upstream: + +https://git.enlightenment.org/core/efl.git/commit/?id=0d2b624f1e24240a1c4e651aa1cfe9a8dd10a573 + +diff --git a/src/lib/evas/Evas_GL.h b/src/lib/evas/Evas_GL.h +index b6b642400f..4f67b1695f 100644 +--- a/src/lib/evas/Evas_GL.h ++++ b/src/lib/evas/Evas_GL.h +@@ -4272,9 +4272,11 @@ typedef signed int GLfixed; // Changed khronos_int32_t + + #ifndef GL_ES_VERSION_2_0 + /* GL types for handling large vertex buffer objects */ +-#include ++# ifndef GL_VERSION_1_5 ++# include + typedef ptrdiff_t GLintptr; // Changed khronos_intptr_t + typedef ptrdiff_t GLsizeiptr; // Changed khronos_ssize_t ++# endif + #endif + + /* Some definitions from GLES 3.0. diff --git a/gnu/packages/patches/fbreader-curl-7.62.patch b/gnu/packages/patches/fbreader-curl-7.62.patch new file mode 100644 index 0000000000..e42a3375f0 --- /dev/null +++ b/gnu/packages/patches/fbreader-curl-7.62.patch @@ -0,0 +1,30 @@ +https://github.com/geometer/FBReader/commit/b7c78e965d06f78043a57e230c866c3af3f5a1eb.patch +https://github.com/geometer/FBReader/issues/310 +https://github.com/geometer/FBReader/pull/311/commits + +From b7c78e965d06f78043a57e230c866c3af3f5a1eb Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= +Date: Sun, 9 Dec 2018 10:18:03 +0100 +Subject: [PATCH] fix compatibility with curl-7.62 + +https://github.com/curl/curl/commit/3f3b26d6fe +--- + zlibrary/core/src/unix/curl/ZLCurlNetworkManager.cpp | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/zlibrary/core/src/unix/curl/ZLCurlNetworkManager.cpp b/zlibrary/core/src/unix/curl/ZLCurlNetworkManager.cpp +index 54cc37f6c..03e2a5721 100644 +--- a/zlibrary/core/src/unix/curl/ZLCurlNetworkManager.cpp ++++ b/zlibrary/core/src/unix/curl/ZLCurlNetworkManager.cpp +@@ -285,9 +285,11 @@ std::string ZLCurlNetworkManager::perform(const ZLExecutionData::Vector &dataLis + #endif + errors.insert(ZLStringUtil::printf(errorResource["peerFailedVerificationMessage"].value(), ZLNetworkUtil::hostFromUrl(url))); + break; ++#if LIBCURL_VERSION_NUM < 0x073e00 + case CURLE_SSL_CACERT: + errors.insert(ZLStringUtil::printf(errorResource["sslCertificateAuthorityMessage"].value(), ZLNetworkUtil::hostFromUrl(url))); + break; ++#endif + case CURLE_SSL_CACERT_BADFILE: + errors.insert(ZLStringUtil::printf(errorResource["sslBadCertificateFileMessage"].value(), request.sslCertificate().Path)); + break; diff --git a/gnu/packages/patches/ghostscript-CVE-2018-16509.patch b/gnu/packages/patches/ghostscript-CVE-2018-16509.patch deleted file mode 100644 index 50ffa3cb98..0000000000 --- a/gnu/packages/patches/ghostscript-CVE-2018-16509.patch +++ /dev/null @@ -1,193 +0,0 @@ -Ghostscript 9.24 was released with an incomplete fix for CVE-2018-16509: -https://nvd.nist.gov/vuln/detail/CVE-2018-16509 -https://bugs.chromium.org/p/project-zero/issues/detail?id=1640#c19 -https://bugs.ghostscript.com/show_bug.cgi?id=699718 - -The reproducers no longer work after applying these commits: - -https://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5812b1b78fc4d36fdc293b7859de69241140d590 -https://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e914f1da46e33decc534486598dc3eadf69e6efb -https://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3e5d316b72e3965b7968bb1d96baa137cd063ac6 -https://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=643b24dbd002fb9c131313253c307cf3951b3d47 - -This patch is a "squashed" version of those. - -diff --git a/Resource/Init/gs_setpd.ps b/Resource/Init/gs_setpd.ps -index bba3c8c0e..8fa7c51df 100644 ---- a/Resource/Init/gs_setpd.ps -+++ b/Resource/Init/gs_setpd.ps -@@ -95,27 +95,41 @@ level2dict begin - { % Since setpagedevice doesn't create new device objects, - % we must (carefully) reinstall the old parameters in - % the same device. -- .currentpagedevice pop //null currentdevice //null .trysetparams -+ .currentpagedevice pop //null currentdevice //null -+ { .trysetparams } .internalstopped -+ { -+ //null -+ } if - dup type /booleantype eq - { pop pop } -- { % This should never happen! -+ { - SETPDDEBUG { (Error in .trysetparams!) = pstack flush } if -- cleartomark pop pop pop -+ {cleartomark pop pop pop} .internalstopped pop -+ % if resetting the entire device state failed, at least put back the -+ % security related key -+ currentdevice //null //false mark /.LockSafetyParams -+ currentpagedevice /.LockSafetyParams .knownget not -+ {systemdict /SAFER .knownget not {//false} } if -+ .putdeviceparamsonly - /.installpagedevice cvx /rangecheck signalerror - } - ifelse pop pop - % A careful reading of the Red Book reveals that an erasepage - % should occur, but *not* an initgraphics. - erasepage .beginpage -- } bind def -+ } bind executeonly def - - /.uninstallpagedevice -- { 2 .endpage { .currentnumcopies //false .outputpage } if -+ { -+ {2 .endpage { .currentnumcopies //false .outputpage } if} .internalstopped pop - nulldevice - } bind def - - (%grestorepagedevice) cvn -- { .uninstallpagedevice grestore .installpagedevice -+ { -+ .uninstallpagedevice -+ grestore -+ .installpagedevice - } bind def - - (%grestoreallpagedevice) cvn -diff --git a/psi/zdevice2.c b/psi/zdevice2.c -index 0c7080d57..159a0c0d9 100644 ---- a/psi/zdevice2.c -+++ b/psi/zdevice2.c -@@ -251,8 +251,8 @@ z2currentgstate(i_ctx_t *i_ctx_p) - /* ------ Wrappers for operators that reset the graphics state. ------ */ - - /* Check whether we need to call out to restore the page device. */ --static bool --restore_page_device(const gs_gstate * pgs_old, const gs_gstate * pgs_new) -+static int -+restore_page_device(i_ctx_t *i_ctx_p, const gs_gstate * pgs_old, const gs_gstate * pgs_new) - { - gx_device *dev_old = gs_currentdevice(pgs_old); - gx_device *dev_new; -@@ -260,9 +260,10 @@ restore_page_device(const gs_gstate * pgs_old, const gs_gstate * pgs_new) - gx_device *dev_t2; - bool samepagedevice = obj_eq(dev_old->memory, &gs_int_gstate(pgs_old)->pagedevice, - &gs_int_gstate(pgs_new)->pagedevice); -+ bool LockSafetyParams = dev_old->LockSafetyParams; - - if ((dev_t1 = (*dev_proc(dev_old, get_page_device)) (dev_old)) == 0) -- return false; -+ return 0; - /* If we are going to putdeviceparams in a callout, we need to */ - /* unlock temporarily. The device will be re-locked as needed */ - /* by putdeviceparams from the pgs_old->pagedevice dict state. */ -@@ -271,23 +272,51 @@ restore_page_device(const gs_gstate * pgs_old, const gs_gstate * pgs_new) - dev_new = gs_currentdevice(pgs_new); - if (dev_old != dev_new) { - if ((dev_t2 = (*dev_proc(dev_new, get_page_device)) (dev_new)) == 0) -- return false; -- if (dev_t1 != dev_t2) -- return true; -+ samepagedevice = true; -+ else if (dev_t1 != dev_t2) -+ samepagedevice = false; -+ } -+ -+ if (LockSafetyParams && !samepagedevice) { -+ const int required_ops = 512; -+ const int required_es = 32; -+ -+ /* The %grestorepagedevice must complete: the biggest danger -+ is operand stack overflow. As we use get/putdeviceparams -+ that means pushing all the device params onto the stack, -+ pdfwrite having by far the largest number of parameters -+ at (currently) 212 key/value pairs - thus needing (currently) -+ 424 entries on the op stack. Allowing for working stack -+ space, and safety margin..... -+ */ -+ if (required_ops + ref_stack_count(&o_stack) >= ref_stack_max_count(&o_stack)) { -+ gs_currentdevice(pgs_old)->LockSafetyParams = LockSafetyParams; -+ return_error(gs_error_stackoverflow); -+ } -+ /* We also want enough exec stack space - 32 is an overestimate of -+ what we need to complete the Postscript call out. -+ */ -+ if (required_es + ref_stack_count(&e_stack) >= ref_stack_max_count(&e_stack)) { -+ gs_currentdevice(pgs_old)->LockSafetyParams = LockSafetyParams; -+ return_error(gs_error_execstackoverflow); -+ } - } - /* - * The current implementation of setpagedevice just sets new - * parameters in the same device object, so we have to check - * whether the page device dictionaries are the same. - */ -- return !samepagedevice; -+ return samepagedevice ? 0 : 1; - } - - /* - grestore - */ - static int - z2grestore(i_ctx_t *i_ctx_p) - { -- if (!restore_page_device(igs, gs_gstate_saved(igs))) -+ int code = restore_page_device(i_ctx_p, igs, gs_gstate_saved(igs)); -+ if (code < 0) return code; -+ -+ if (code == 0) - return gs_grestore(igs); - return push_callout(i_ctx_p, "%grestorepagedevice"); - } -@@ -297,7 +326,9 @@ static int - z2grestoreall(i_ctx_t *i_ctx_p) - { - for (;;) { -- if (!restore_page_device(igs, gs_gstate_saved(igs))) { -+ int code = restore_page_device(i_ctx_p, igs, gs_gstate_saved(igs)); -+ if (code < 0) return code; -+ if (code == 0) { - bool done = !gs_gstate_saved(gs_gstate_saved(igs)); - - gs_grestore(igs); -@@ -328,11 +359,15 @@ z2restore(i_ctx_t *i_ctx_p) - if (code < 0) return code; - - while (gs_gstate_saved(gs_gstate_saved(igs))) { -- if (restore_page_device(igs, gs_gstate_saved(igs))) -+ code = restore_page_device(i_ctx_p, igs, gs_gstate_saved(igs)); -+ if (code < 0) return code; -+ if (code > 0) - return push_callout(i_ctx_p, "%restore1pagedevice"); - gs_grestore(igs); - } -- if (restore_page_device(igs, gs_gstate_saved(igs))) -+ code = restore_page_device(i_ctx_p, igs, gs_gstate_saved(igs)); -+ if (code < 0) return code; -+ if (code > 0) - return push_callout(i_ctx_p, "%restorepagedevice"); - - code = dorestore(i_ctx_p, asave); -@@ -355,9 +390,12 @@ static int - z2setgstate(i_ctx_t *i_ctx_p) - { - os_ptr op = osp; -+ int code; - - check_stype(*op, st_igstate_obj); -- if (!restore_page_device(igs, igstate_ptr(op))) -+ code = restore_page_device(i_ctx_p, igs, igstate_ptr(op)); -+ if (code < 0) return code; -+ if (code == 0) - return zsetgstate(i_ctx_p); - return push_callout(i_ctx_p, "%setgstatepagedevice"); - } diff --git a/gnu/packages/patches/ghostscript-bug-699708.patch b/gnu/packages/patches/ghostscript-bug-699708.patch deleted file mode 100644 index 1567be1c6f..0000000000 --- a/gnu/packages/patches/ghostscript-bug-699708.patch +++ /dev/null @@ -1,160 +0,0 @@ -Additional security fix that missed 9.24. - -Taken from upstream: -http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=fb713b3818b52d8a6cf62c951eba2e1795ff9624 - -From fb713b3818b52d8a6cf62c951eba2e1795ff9624 Mon Sep 17 00:00:00 2001 -From: Chris Liddell -Date: Thu, 6 Sep 2018 09:16:22 +0100 -Subject: [PATCH] Bug 699708 (part 1): 'Hide' non-replaceable error handlers - for SAFER - -We already had a 'private' dictionary for non-standard errors: gserrordict. - -This now includes all the default error handlers, the dictionary is made -noaccess and all the prodedures are bound and executeonly. - -When running with -dSAFER, in the event of a Postscript error, instead of -pulling the handler from errordict, we'll pull it from gserrordict - thus -malicious input cannot trigger problems by the use of custom error handlers. - -errordict remains open and writeable, so files such as the Quality Logic tests -that install their own handlers will still 'work', with the exception that the -custom error handlers will not be called. - -This is a 'first pass', 'sledgehammer' approach: a nice addition would to allow -an integrator to specify a list of errors that are not to be replaced (for -example, embedded applications would probably want to ensure that VMerror is -always handled as they intend). ---- - Resource/Init/gs_init.ps | 29 ++++++++++++++++++----------- - psi/interp.c | 30 +++++++++++++++++++++--------- - 2 files changed, 39 insertions(+), 20 deletions(-) - -diff --git a/Resource/Init/gs_init.ps b/Resource/Init/gs_init.ps -index 071c39205..bc8b7951c 100644 ---- a/Resource/Init/gs_init.ps -+++ b/Resource/Init/gs_init.ps -@@ -881,7 +881,7 @@ userdict /.currentresourcefile //null put - { not exch pop exit } { pop } ifelse - } - for exch pop .quit -- } bind def -+ } bind executeonly def - /.errorhandler % .errorhandler - - { % Detect an internal 'stopped'. - 1 .instopped { //null eq { pop pop stop } if } if -@@ -926,7 +926,7 @@ userdict /.currentresourcefile //null put - $error /globalmode get $error /.nosetlocal get and .setglobal - $error /.inerror //false put - stop -- } bind def -+ } bind executeonly def - % Define the standard handleerror. We break out the printing procedure - % (.printerror) so that it can be extended for binary output - % if the Level 2 facilities are present. -@@ -976,7 +976,7 @@ userdict /.currentresourcefile //null put - ifelse % newerror - end - flush -- } bind def -+ } bind executeonly def - /.printerror_long % long error printout, - % $error is on the dict stack - { % Push the (anonymous) stack printing procedure. -@@ -1053,14 +1053,14 @@ userdict /.currentresourcefile //null put - { (Current file position is ) print position = } - if - -- } bind def -+ } bind executeonly def - % Define a procedure for clearing the error indication. - /.clearerror - { $error /newerror //false put - $error /errorname //null put - $error /errorinfo //null put - 0 .setoserrno -- } bind def -+ } bind executeonly def - - % Define $error. This must be in local VM. - .currentglobal //false .setglobal -@@ -1086,11 +1086,15 @@ end - /errordict ErrorNames length 3 add dict - .forcedef % errordict is local, systemdict is global - .setglobal % back to global VM --% For greater Adobe compatibility, we put all non-standard errors in a --% separate dictionary, gserrordict. It does not need to be in local VM, --% because PostScript programs do not access it. -+% gserrordict contains all the default error handling methods, but unlike -+% errordict it is noaccess after creation (also it is in global VM). -+% When running 'SAFER', we'll ignore the contents of errordict, which -+% may have been tampered with by the running job, and always use gserrordict -+% gserrordict also contains any non-standard errors, for better compatibility -+% with Adobe. -+% - % NOTE: the name gserrordict is known to the interpreter. --/gserrordict 5 dict def -+/gserrordict ErrorNames length 3 add dict def - % Register an error in errordict. We make this a procedure because we only - % register the Level 1 errors here: the rest are registered by "feature" - % files. However, ErrorNames contains all of the error names regardless of -@@ -1119,8 +1123,11 @@ errordict begin - } bind def - end % errordict - --% Put non-standard errors in gserrordict. --gserrordict /unknownerror errordict /unknownerror get put -+% Put all the default handlers in gserrordict -+gserrordict -+errordict {2 index 3 1 roll put} forall -+noaccess pop -+% remove the non-standard errors from errordict - errordict /unknownerror .undef - % Define a stable private copy of handleerror that we will always use under - % JOBSERVER mode. -diff --git a/psi/interp.c b/psi/interp.c -index c27b70dca..d41a9d3f5 100644 ---- a/psi/interp.c -+++ b/psi/interp.c -@@ -661,16 +661,28 @@ again: - return code; - if (gs_errorname(i_ctx_p, code, &error_name) < 0) - return code; /* out-of-range error code! */ -- /* -- * For greater Adobe compatibility, only the standard PostScript errors -- * are defined in errordict; the rest are in gserrordict. -+ -+ /* If LockFilePermissions is true, we only refer to gserrordict, which -+ * is not accessible to Postcript jobs - */ -- if (dict_find_string(systemdict, "errordict", &perrordict) <= 0 || -- (dict_find(perrordict, &error_name, &epref) <= 0 && -- (dict_find_string(systemdict, "gserrordict", &perrordict) <= 0 || -- dict_find(perrordict, &error_name, &epref) <= 0)) -- ) -- return code; /* error name not in errordict??? */ -+ if (i_ctx_p->LockFilePermissions) { -+ if (((dict_find_string(systemdict, "gserrordict", &perrordict) <= 0 || -+ dict_find(perrordict, &error_name, &epref) <= 0)) -+ ) -+ return code; /* error name not in errordict??? */ -+ } -+ else { -+ /* -+ * For greater Adobe compatibility, only the standard PostScript errors -+ * are defined in errordict; the rest are in gserrordict. -+ */ -+ if (dict_find_string(systemdict, "errordict", &perrordict) <= 0 || -+ (dict_find(perrordict, &error_name, &epref) <= 0 && -+ (dict_find_string(systemdict, "gserrordict", &perrordict) <= 0 || -+ dict_find(perrordict, &error_name, &epref) <= 0)) -+ ) -+ return code; /* error name not in errordict??? */ -+ } - doref = *epref; - epref = &doref; - /* Push the error object on the operand stack if appropriate. */ --- -2.18.0 - diff --git a/gnu/packages/patches/glib-networking-connection.patch b/gnu/packages/patches/glib-networking-connection.patch new file mode 100644 index 0000000000..f64b090ae5 --- /dev/null +++ b/gnu/packages/patches/glib-networking-connection.patch @@ -0,0 +1,51 @@ +https://gitlab.gnome.org/GNOME/glib-networking/issues/4 +https://gitlab.gnome.org/GNOME/glib-networking/commit/55daf3e5fd4bc9e4ebad1a9eab93f852dcbf527e.patch +This ultimately rejected work-around should be removed with the next +release, as the bug has supposedly been fixed for real. + + +From 55daf3e5fd4bc9e4ebad1a9eab93f852dcbf527e Mon Sep 17 00:00:00 2001 +From: Michael Catanzaro +Date: Thu, 19 Jul 2018 11:16:35 -0500 +Subject: [PATCH] Fix intermittent failures in missing client private key test + +Because our APIs do nice things like encapsulating the TLS connection +establishment, we have our test server writing to the client after +establishing the TCP connection, because the TLS connection is +established. It's fine in theory, but results in some weirdness like the +server seeing its write having completed successfully before TLS +connection establishment. Normally that's what happens and this test +passes (server sees no error), but sometimes the server sees that the +client has already failed and the test fails. + +This is unfortunate, and tricky to fix properly, so let's just remove +the bad check. The point of the test is to ensure that the TLS +connection is not established, and the client-side check is going to +have to be sufficient, because rewriting the test to wait for the TLS +connection to be established on the server side is quite tricky: my +naive attempt resulted in both sides waiting forever on the other. + +P.S. At no point in this test does the server ever examine the client +certificate. That's not quite what I expected when I added the test, but +it's fine. + +Fixes #4 +--- + tls/tests/connection.c | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/tls/tests/connection.c b/tls/tests/connection.c +index 94645c3..390275d 100644 +--- a/tls/tests/connection.c ++++ b/tls/tests/connection.c +@@ -1125,7 +1125,6 @@ test_client_auth_fail_missing_client_private_key (TestConnection *test, + g_main_loop_run (test->loop); + + g_assert_error (test->read_error, G_TLS_ERROR, G_TLS_ERROR_CERTIFICATE_REQUIRED); +- g_assert_no_error (test->server_error); + } + + static void +-- +2.18.1 + diff --git a/gnu/packages/patches/glib-networking-ssl-cert-file.patch b/gnu/packages/patches/glib-networking-ssl-cert-file.patch deleted file mode 100644 index 32bdd0790f..0000000000 --- a/gnu/packages/patches/glib-networking-ssl-cert-file.patch +++ /dev/null @@ -1,29 +0,0 @@ -From b010e41346d418220582c20ab8d7f3971e4fb78a Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= -Date: Fri, 14 Aug 2015 17:28:36 +0800 -Subject: [PATCH] gnutls: Allow overriding the anchor file location by - 'SSL_CERT_FILE' - ---- - tls/gnutls/gtlsbackend-gnutls.c | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/tls/gnutls/gtlsbackend-gnutls.c b/tls/gnutls/gtlsbackend-gnutls.c -index 55ec1a5..217d3c8 100644 ---- a/tls/gnutls/gtlsbackend-gnutls.c -+++ b/tls/gnutls/gtlsbackend-gnutls.c -@@ -101,8 +101,10 @@ g_tls_backend_gnutls_real_create_database (GTlsBackendGnutls *self, - GError **error) - { - const gchar *anchor_file = NULL; -+ anchor_file = g_getenv ("SSL_CERT_FILE"); - #ifdef GTLS_SYSTEM_CA_FILE -- anchor_file = GTLS_SYSTEM_CA_FILE; -+ if (!anchor_file) -+ anchor_file = GTLS_SYSTEM_CA_FILE; - #endif - return g_tls_file_database_new (anchor_file, error); - } --- -2.4.3 - diff --git a/gnu/packages/patches/gnutls-skip-pkgconfig-test.patch b/gnu/packages/patches/gnutls-skip-pkgconfig-test.patch deleted file mode 100644 index 1fad7c14e3..0000000000 --- a/gnu/packages/patches/gnutls-skip-pkgconfig-test.patch +++ /dev/null @@ -1,24 +0,0 @@ -FIXME: The static test fails with an error such as: - -/tmp/guix-build-gnutls-3.5.13.drv-0/ccOnGPmc.o: In function `main': -c.29617.tmp.c:(.text+0x5): undefined reference to `gnutls_global_init' -collect2: error: ld returned 1 exit status -FAIL pkgconfig.sh (exit status: 1) - -diff --git a/tests/pkgconfig.sh b/tests/pkgconfig.sh -index 6bd4e62f9..05aab8278 100755 ---- a/tests/pkgconfig.sh -+++ b/tests/pkgconfig.sh -@@ -57,11 +57,7 @@ echo "Trying dynamic linking with:" - echo " * flags: $(${PKGCONFIG} --libs gnutls)" - echo " * common: ${COMMON}" - echo " * lib: ${CFLAGS}" --cc ${TMPFILE} -o ${TMPFILE_O} $(${PKGCONFIG} --libs gnutls) $(${PKGCONFIG} --cflags gnutls) ${COMMON} -- --echo "" --echo "Trying static linking with $(${PKGCONFIG} --libs --static gnutls)" --cc ${TMPFILE} -o ${TMPFILE_O} $(${PKGCONFIG} --static --libs gnutls) $(${PKGCONFIG} --cflags gnutls) ${COMMON} -+gcc ${TMPFILE} -o ${TMPFILE_O} $(${PKGCONFIG} --libs gnutls) $(${PKGCONFIG} --cflags gnutls) ${COMMON} - - rm -f ${TMPFILE} ${TMPFILE_O} - diff --git a/gnu/packages/patches/gst-plugins-good-libvpx-compat.patch b/gnu/packages/patches/gst-plugins-good-libvpx-compat.patch new file mode 100644 index 0000000000..8306c79e56 --- /dev/null +++ b/gnu/packages/patches/gst-plugins-good-libvpx-compat.patch @@ -0,0 +1,58 @@ +Fix build with libvpx 1.8. + +Taken from this upstream commit: +https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/commit/b6e6f1ae73375ef66a5748069843aaed1a83e6a6 + +Note: Remove the HAVE_VPX_1_8 build flag with this patch. It was added +to avoid re-creating the configure script. + +diff --git a/configure.ac b/configure.ac +index 5e4cff126..8c20e5081 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1054,6 +1054,10 @@ AG_GST_CHECK_FEATURE(VPX, [VPX decoder], vpx, [ + AC_DEFINE(HAVE_VPX_1_4, 1, [Defined if the VPX library version is 1.4 or bigger]) + ], [true]) + ++ PKG_CHECK_MODULES(VPX_180, vpx >= 1.8.0, [ ++ AC_DEFINE(HAVE_VPX_1_8, 1, [Defined if the VPX library version is 1.8 or bigger]) ++ ], [true]) ++ + LIBS="$OLD_LIBS" + CFLAGS="$OLD_CFLAGS" + fi +diff --git a/ext/vpx/gstvpxdec.c b/ext/vpx/gstvpxdec.c +index c3f0f625f..da4322513 100644 +--- a/ext/vpx/gstvpxdec.c ++++ b/ext/vpx/gstvpxdec.c +@@ -62,6 +62,7 @@ gst_vpx_dec_post_processing_flags_get_type (void) + {C_FLAGS (VP8_DEBLOCK), "Deblock", "deblock"}, + {C_FLAGS (VP8_DEMACROBLOCK), "Demacroblock", "demacroblock"}, + {C_FLAGS (VP8_ADDNOISE), "Add noise", "addnoise"}, ++#ifndef HAVE_VPX_1_8 + {C_FLAGS (VP8_DEBUG_TXT_FRAME_INFO), + "Print frame information", + "visualize-frame-info"}, +@@ -74,6 +75,7 @@ gst_vpx_dec_post_processing_flags_get_type (void) + {C_FLAGS (VP8_DEBUG_TXT_RATE_INFO), + "Print video rate info", + "visualize-rate-info"}, ++#endif + {C_FLAGS (VP8_MFQE), "Multi-frame quality enhancement", "mfqe"}, + {0, NULL, NULL} + }; +diff --git a/ext/vpx/meson.build b/ext/vpx/meson.build +index 6ed440728..0d2340b32 100644 +--- a/ext/vpx/meson.build ++++ b/ext/vpx/meson.build +@@ -48,6 +48,10 @@ if vpx_dep.found() + vpx_args += '-DHAVE_VPX_1_4' + endif + ++ if dependency('vpx', version : '>=1.8.0', required : false).found() ++ vpx_args += '-DHAVE_VPX_1_8' ++ endif ++ + gstvpx = library('gstvpx', + vpx_sources, + c_args : gst_plugins_good_args + vpx_args, diff --git a/gnu/packages/patches/hdf5-1.8-mpi-deprecations.patch b/gnu/packages/patches/hdf5-1.8-mpi-deprecations.patch new file mode 100644 index 0000000000..29242dc4e8 --- /dev/null +++ b/gnu/packages/patches/hdf5-1.8-mpi-deprecations.patch @@ -0,0 +1,169 @@ +--- a/src/H5.c ++++ b/src/H5.c +@@ -138,7 +138,7 @@ + if (mpi_initialized && !mpi_finalized) { + int key_val; + +- if(MPI_SUCCESS != (mpi_code = MPI_Comm_create_keyval(MPI_NULL_COPY_FN, ++ if(MPI_SUCCESS != (mpi_code = MPI_Comm_create_keyval(MPI_COMM_NULL_COPY_FN, + (MPI_Comm_delete_attr_function *)H5_mpi_delete_cb, + &key_val, NULL))) + HMPI_GOTO_ERROR(FAIL, "MPI_Comm_create_keyval failed", mpi_code) +--- hdf5-1.8.19/testpar/t_cache.c ++++ hdf5-1.8.19/testpar/t_cache.c +@@ -1187,20 +1187,20 @@ + struct mssg_t sample; /* used to compute displacements */ + + /* setup the displacements array */ +- if ( ( MPI_SUCCESS != MPI_Address(&sample.req, &displs[0]) ) || +- ( MPI_SUCCESS != MPI_Address(&sample.src, &displs[1]) ) || +- ( MPI_SUCCESS != MPI_Address(&sample.dest, &displs[2]) ) || +- ( MPI_SUCCESS != MPI_Address(&sample.mssg_num, &displs[3]) ) || +- ( MPI_SUCCESS != MPI_Address(&sample.base_addr, &displs[4]) ) || +- ( MPI_SUCCESS != MPI_Address(&sample.len, &displs[5]) ) || +- ( MPI_SUCCESS != MPI_Address(&sample.ver, &displs[6]) ) || +- ( MPI_SUCCESS != MPI_Address(&sample.count, &displs[7]) ) || +- ( MPI_SUCCESS != MPI_Address(&sample.magic, &displs[8]) ) ) { ++ if ( ( MPI_SUCCESS != MPI_Get_address(&sample.req, &displs[0]) ) || ++ ( MPI_SUCCESS != MPI_Get_address(&sample.src, &displs[1]) ) || ++ ( MPI_SUCCESS != MPI_Get_address(&sample.dest, &displs[2]) ) || ++ ( MPI_SUCCESS != MPI_Get_address(&sample.mssg_num, &displs[3]) ) || ++ ( MPI_SUCCESS != MPI_Get_address(&sample.base_addr, &displs[4]) ) || ++ ( MPI_SUCCESS != MPI_Get_address(&sample.len, &displs[5]) ) || ++ ( MPI_SUCCESS != MPI_Get_address(&sample.ver, &displs[6]) ) || ++ ( MPI_SUCCESS != MPI_Get_address(&sample.count, &displs[7]) ) || ++ ( MPI_SUCCESS != MPI_Get_address(&sample.magic, &displs[8]) ) ) { + + nerrors++; + success = FALSE; + if ( verbose ) { +- HDfprintf(stdout, "%d:%s: MPI_Address() call failed.\n", ++ HDfprintf(stdout, "%d:%s: MPI_Get_address() call failed.\n", + world_mpi_rank, fcn_name); + } + +@@ -1215,14 +1215,14 @@ + + if ( success ) { + +- result = MPI_Type_struct(9, block_len, displs, mpi_types, &mpi_mssg_t); ++ result = MPI_Type_create_struct(9, block_len, displs, mpi_types, &mpi_mssg_t); + + if ( result != MPI_SUCCESS ) { + + nerrors++; + success = FALSE; + if ( verbose ) { +- HDfprintf(stdout, "%d:%s: MPI_Type_struct() call failed.\n", ++ HDfprintf(stdout, "%d:%s: MPI_Type_create_struct() call failed.\n", + world_mpi_rank, fcn_name); + } + } +--- hdf5-1.8.19/testpar/t_mpi.c ++++ hdf5-1.8.19/testpar/t_mpi.c +@@ -279,7 +279,7 @@ + printf("Skipped GB file range test " + "because MPI_Offset cannot support it\n"); + }else{ +- buf = HDmalloc(MB); ++ buf = (char *)HDmalloc(MB); + VRFY((buf!=NULL), "malloc succeed"); + + /* open a new file. Remove it first in case it exists. */ +@@ -624,7 +624,7 @@ + and this platform. + + 1. Details for the test: +-1) Create two derived datatypes with MPI_Type_hindexed: ++1) Create two derived datatypes with MPI_Type_create_hindexed: + datatype1: + count = 1, blocklens = 1, offsets = 0, + base type = MPI_BYTE(essentially a char) +@@ -633,7 +633,7 @@ + base type = MPI_BYTE + + 2) Using these two derived datatypes, +- Build another derived datatype with MPI_Type_struct: ++ Build another derived datatype with MPI_Type_create_struct: + advtype: derived from datatype1 and datatype2 + advtype: + count = 2, blocklens[0] = 1, blocklens[1]=1, +@@ -676,10 +676,9 @@ + int mpi_err_strlen; + int mpi_err; + int i; +- int nerrors = 0; /* number of errors */ + MPI_Datatype etype,filetype; + MPI_Datatype adv_filetype,bas_filetype[2]; +- MPI_Datatype etypenew, filetypenew; ++ MPI_Datatype filetypenew; + MPI_Offset disp; + MPI_Status Status; + MPI_Aint adv_disp[2]; +@@ -715,7 +714,7 @@ + blocklens[0] = 1; + offsets[0] = 0; + +- if((mpi_err= MPI_Type_hindexed(count,blocklens,offsets,MPI_BYTE,&filetype)) ++ if((mpi_err= MPI_Type_create_hindexed(count,blocklens,offsets,MPI_BYTE,&filetype)) + != MPI_SUCCESS){ + MPI_Error_string(mpi_err, mpi_err_str, &mpi_err_strlen); + printf("MPI_Type_contiguous failed (%s)\n", mpi_err_str); +@@ -731,7 +730,7 @@ + count = 1; + blocklens[0]=1; + offsets[0] = 1; +- if((mpi_err= MPI_Type_hindexed(count,blocklens,offsets,MPI_BYTE,&filetypenew)) ++ if((mpi_err= MPI_Type_create_hindexed(count,blocklens,offsets,MPI_BYTE,&filetypenew)) + != MPI_SUCCESS){ + MPI_Error_string(mpi_err, mpi_err_str, &mpi_err_strlen); + printf("MPI_Type_contiguous failed (%s)\n", mpi_err_str); +@@ -752,10 +751,10 @@ + bas_filetype[0] = filetype; + bas_filetype[1] = filetypenew; + +- if((mpi_err= MPI_Type_struct(outcount,adv_blocklens,adv_disp,bas_filetype,&adv_filetype)) ++ if((mpi_err= MPI_Type_create_struct(outcount,adv_blocklens,adv_disp,bas_filetype,&adv_filetype)) + != MPI_SUCCESS){ + MPI_Error_string(mpi_err, mpi_err_str, &mpi_err_strlen); +- printf("MPI_Type_struct failed (%s)\n", mpi_err_str); ++ printf("MPI_Type_create_struct failed (%s)\n", mpi_err_str); + return 1; + } + if((mpi_err=MPI_Type_commit(&adv_filetype))!=MPI_SUCCESS){ +@@ -842,7 +841,7 @@ + processes are needed. + + 1. Details for the test: +-1) Create one derived datatype with MPI_Type_hindexed: ++1) Create one derived datatype with MPI_Type_create_hindexed: + + 2) Choosing at least two processes to contribute none for IO with + the buf size inside MPI_Write_at_all to 0. +@@ -898,7 +897,7 @@ + offsets[1] = (mpi_size+mpi_rank)*count; + + if(count !=0) { +- if((mpi_err = MPI_Type_hindexed(2, ++ if((mpi_err = MPI_Type_create_hindexed(2, + blocklens, + offsets, + etype, +@@ -914,7 +913,7 @@ + return 1; + } /* end if */ + +- if((mpi_err = MPI_Type_hindexed(2, ++ if((mpi_err = MPI_Type_create_hindexed(2, + blocklens, + offsets, + etype, +@@ -1098,7 +1097,7 @@ + * calls. By then, MPI calls may not work. + */ + if (H5dont_atexit() < 0){ +- printf("Failed to turn off atexit processing. Continue.\n", mpi_rank); ++ printf("Failed to turn off atexit processing. Continue.\n"); + }; + H5open(); + if (parse_options(argc, argv) != 0){ diff --git a/gnu/packages/patches/hdf5-mpi-deprecations.patch b/gnu/packages/patches/hdf5-mpi-deprecations.patch new file mode 100644 index 0000000000..eb5d1cb681 --- /dev/null +++ b/gnu/packages/patches/hdf5-mpi-deprecations.patch @@ -0,0 +1,61 @@ +--- a/src/H5.c ++++ b/src/H5.c +@@ -138,7 +138,7 @@ + if (mpi_initialized && !mpi_finalized) { + int key_val; + +- if(MPI_SUCCESS != (mpi_code = MPI_Comm_create_keyval(MPI_NULL_COPY_FN, ++ if(MPI_SUCCESS != (mpi_code = MPI_Comm_create_keyval(MPI_COMM_NULL_COPY_FN, + (MPI_Comm_delete_attr_function *)H5_mpi_delete_cb, + &key_val, NULL))) + HMPI_GOTO_ERROR(FAIL, "MPI_Comm_create_keyval failed", mpi_code) +--- hdf5-1.10.4/testpar/t_cache.c ++++ hdf5-1.10.4/testpar/t_cache.c +@@ -1217,20 +1217,20 @@ + struct mssg_t sample; /* used to compute displacements */ + + /* setup the displacements array */ +- if ( ( MPI_SUCCESS != MPI_Address(&sample.req, &displs[0]) ) || +- ( MPI_SUCCESS != MPI_Address(&sample.src, &displs[1]) ) || +- ( MPI_SUCCESS != MPI_Address(&sample.dest, &displs[2]) ) || +- ( MPI_SUCCESS != MPI_Address(&sample.mssg_num, &displs[3]) ) || +- ( MPI_SUCCESS != MPI_Address(&sample.base_addr, &displs[4]) ) || +- ( MPI_SUCCESS != MPI_Address(&sample.len, &displs[5]) ) || +- ( MPI_SUCCESS != MPI_Address(&sample.ver, &displs[6]) ) || +- ( MPI_SUCCESS != MPI_Address(&sample.count, &displs[7]) ) || +- ( MPI_SUCCESS != MPI_Address(&sample.magic, &displs[8]) ) ) { ++ if ( ( MPI_SUCCESS != MPI_Get_address(&sample.req, &displs[0]) ) || ++ ( MPI_SUCCESS != MPI_Get_address(&sample.src, &displs[1]) ) || ++ ( MPI_SUCCESS != MPI_Get_address(&sample.dest, &displs[2]) ) || ++ ( MPI_SUCCESS != MPI_Get_address(&sample.mssg_num, &displs[3]) ) || ++ ( MPI_SUCCESS != MPI_Get_address(&sample.base_addr, &displs[4]) ) || ++ ( MPI_SUCCESS != MPI_Get_address(&sample.len, &displs[5]) ) || ++ ( MPI_SUCCESS != MPI_Get_address(&sample.ver, &displs[6]) ) || ++ ( MPI_SUCCESS != MPI_Get_address(&sample.count, &displs[7]) ) || ++ ( MPI_SUCCESS != MPI_Get_address(&sample.magic, &displs[8]) ) ) { + + nerrors++; + success = FALSE; + if ( verbose ) { +- HDfprintf(stdout, "%d:%s: MPI_Address() call failed.\n", ++ HDfprintf(stdout, "%d:%s: MPI_Get_address() call failed.\n", + world_mpi_rank, FUNC); + } + +@@ -1245,14 +1245,14 @@ + + if ( success ) { + +- result = MPI_Type_struct(9, block_len, displs, mpi_types, &mpi_mssg_t); ++ result = MPI_Type_create_struct(9, block_len, displs, mpi_types, &mpi_mssg_t); + + if ( result != MPI_SUCCESS ) { + + nerrors++; + success = FALSE; + if ( verbose ) { +- HDfprintf(stdout, "%d:%s: MPI_Type_struct() call failed.\n", ++ HDfprintf(stdout, "%d:%s: MPI_Type_create_struct() call failed.\n", + world_mpi_rank, FUNC); + } + } diff --git a/gnu/packages/patches/inkscape-poppler-compat3.patch b/gnu/packages/patches/inkscape-poppler-compat3.patch new file mode 100644 index 0000000000..eaaf7d93f1 --- /dev/null +++ b/gnu/packages/patches/inkscape-poppler-compat3.patch @@ -0,0 +1,499 @@ +Fix compatibility with Poppler >= 0.69. + +This is a combination of these upstream commits: +https://gitlab.com/inkscape/inkscape/commit/722e121361d0f784083d10e897155b7d4e44e515 +https://gitlab.com/inkscape/inkscape/commit/402c0274420fe39fd2f3393bc7d8d8879d436358 + +...with slight adjustments for the 0.92.3 release tarball. + +diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake +--- a/CMakeScripts/DefineDependsandFlags.cmake ++++ b/CMakeScripts/DefineDependsandFlags.cmake +@@ -116,18 +116,6 @@ if(ENABLE_POPPLER) + set(HAVE_POPPLER_GLIB ON) + endif() + endif() +- if(POPPLER_VERSION VERSION_GREATER "0.26.0" OR +- POPPLER_VERSION VERSION_EQUAL "0.26.0") +- set(POPPLER_EVEN_NEWER_COLOR_SPACE_API ON) +- endif() +- if(POPPLER_VERSION VERSION_GREATER "0.29.0" OR +- POPPLER_VERSION VERSION_EQUAL "0.29.0") +- set(POPPLER_EVEN_NEWER_NEW_COLOR_SPACE_API ON) +- endif() +- if(POPPLER_VERSION VERSION_GREATER "0.58.0" OR +- POPPLER_VERSION VERSION_EQUAL "0.58.0") +- set(POPPLER_NEW_OBJECT_API ON) +- endif() + else() + set(ENABLE_POPPLER_CAIRO OFF) + endif() +diff --git a/src/extension/internal/pdfinput/pdf-input.cpp b/src/extension/internal/pdfinput/pdf-input.cpp +--- a/src/extension/internal/pdfinput/pdf-input.cpp ++++ b/src/extension/internal/pdfinput/pdf-input.cpp +@@ -793,7 +793,7 @@ PdfInput::open(::Inkscape::Extension::Input * /*mod*/, const gchar * uri) { + dlg->getImportSettings(prefs); + + // Apply crop settings +- PDFRectangle *clipToBox = NULL; ++ _POPPLER_CONST PDFRectangle *clipToBox = NULL; + double crop_setting; + sp_repr_get_double(prefs, "cropTo", &crop_setting); + +diff --git a/src/extension/internal/pdfinput/pdf-input.h b/src/extension/internal/pdfinput/pdf-input.h +--- a/src/extension/internal/pdfinput/pdf-input.h ++++ b/src/extension/internal/pdfinput/pdf-input.h +@@ -15,6 +15,7 @@ + #endif + + #ifdef HAVE_POPPLER ++#include "poppler-transition-api.h" + + #include + +diff --git a/src/extension/internal/pdfinput/pdf-parser.cpp b/src/extension/internal/pdfinput/pdf-parser.cpp +--- a/src/extension/internal/pdfinput/pdf-parser.cpp ++++ b/src/extension/internal/pdfinput/pdf-parser.cpp +@@ -36,6 +36,7 @@ extern "C" { + #include "pdf-parser.h" + #include "util/units.h" + ++#include "glib/poppler-features.h" + #include "goo/gmem.h" + #include "goo/GooString.h" + #include "GlobalParams.h" +@@ -294,8 +295,8 @@ PdfParser::PdfParser(XRef *xrefA, + int /*pageNum*/, + int rotate, + Dict *resDict, +- PDFRectangle *box, +- PDFRectangle *cropBox) : ++ _POPPLER_CONST PDFRectangle *box, ++ _POPPLER_CONST PDFRectangle *cropBox) : + xref(xrefA), + builder(builderA), + subPage(gFalse), +@@ -317,7 +318,7 @@ PdfParser::PdfParser(XRef *xrefA, + builder->setDocumentSize(Inkscape::Util::Quantity::convert(state->getPageWidth(), "pt", "px"), + Inkscape::Util::Quantity::convert(state->getPageHeight(), "pt", "px")); + +- double *ctm = state->getCTM(); ++ const double *ctm = state->getCTM(); + double scaledCTM[6]; + for (int i = 0; i < 6; ++i) { + baseMatrix[i] = ctm[i]; +@@ -352,7 +353,7 @@ PdfParser::PdfParser(XRef *xrefA, + PdfParser::PdfParser(XRef *xrefA, + Inkscape::Extension::Internal::SvgBuilder *builderA, + Dict *resDict, +- PDFRectangle *box) : ++ _POPPLER_CONST PDFRectangle *box) : + xref(xrefA), + builder(builderA), + subPage(gTrue), +@@ -571,7 +572,7 @@ const char *PdfParser::getPreviousOperator(unsigned int look_back) { + + void PdfParser::execOp(Object *cmd, Object args[], int numArgs) { + PdfOperator *op; +- char *name; ++ const char *name; + Object *argPtr; + int i; + +@@ -619,7 +620,7 @@ void PdfParser::execOp(Object *cmd, Object args[], int numArgs) { + (this->*op->func)(argPtr, numArgs); + } + +-PdfOperator* PdfParser::findOp(char *name) { ++PdfOperator* PdfParser::findOp(const char *name) { + int a = -1; + int b = numOps; + int cmp = -1; +@@ -1751,7 +1752,7 @@ void PdfParser::doShadingPatternFillFallback(GfxShadingPattern *sPat, + GBool stroke, GBool eoFill) { + GfxShading *shading; + GfxPath *savedPath; +- double *ctm, *btm, *ptm; ++ const double *ctm, *btm, *ptm; + double m[6], ictm[6], m1[6]; + double xMin, yMin, xMax, yMax; + double det; +@@ -1993,7 +1994,7 @@ void PdfParser::doFunctionShFill1(GfxFunctionShading *shading, + GfxColor color0M, color1M, colorM0, colorM1, colorMM; + GfxColor colors2[4]; + double functionColorDelta = colorDeltas[pdfFunctionShading-1]; +- double *matrix; ++ const double *matrix; + double xM, yM; + int nComps, i, j; + +@@ -2173,7 +2174,7 @@ void PdfParser::doPatchMeshShFill(GfxPatchMeshShading *shading) { + } + } + +-void PdfParser::fillPatch(GfxPatch *patch, int nComps, int depth) { ++void PdfParser::fillPatch(_POPPLER_CONST GfxPatch *patch, int nComps, int depth) { + GfxPatch patch00 = blankPatch(); + GfxPatch patch01 = blankPatch(); + GfxPatch patch10 = blankPatch(); +@@ -2581,7 +2582,11 @@ void PdfParser::opShowSpaceText(Object args[], int /*numArgs*/) + } + } + ++#if POPPLER_CHECK_VERSION(0,64,0) + void PdfParser::doShowText(const GooString *s) { ++#else ++void PdfParser::doShowText(GooString *s) { ++#endif + GfxFont *font; + int wMode; + double riseX, riseY; +@@ -2590,11 +2595,15 @@ void PdfParser::doShowText(const GooString *s) { + double x, y, dx, dy, tdx, tdy; + double originX, originY, tOriginX, tOriginY; + double oldCTM[6], newCTM[6]; +- double *mat; ++ const double *mat; + Object charProc; + Dict *resDict; + Parser *oldParser; ++#if POPPLER_CHECK_VERSION(0,64,0) ++ const char *p; ++#else + char *p; ++#endif + int len, n, uLen; + + font = state->getFont(); +@@ -2630,7 +2639,7 @@ void PdfParser::doShowText(const GooString *s) { + double lineX = state->getLineX(); + double lineY = state->getLineY(); + oldParser = parser; +- p = g_strdup(s->getCString()); ++ p = s->getCString(); + len = s->getLength(); + while (len > 0) { + n = font->getNextChar(p, len, &code, +@@ -2685,7 +2694,7 @@ void PdfParser::doShowText(const GooString *s) { + + } else { + state->textTransformDelta(0, state->getRise(), &riseX, &riseY); +- p = g_strdup(s->getCString()); ++ p = s->getCString(); + len = s->getLength(); + while (len > 0) { + n = font->getNextChar(p, len, &code, +@@ -2731,7 +2740,11 @@ void PdfParser::opXObject(Object args[], int /*numArgs*/) + { + Object obj1, obj2, obj3, refObj; + +- char *name = g_strdup(args[0].getName()); ++#if POPPLER_CHECK_VERSION(0,64,0) ++ const char *name = args[0].getName(); ++#else ++ char *name = args[0].getName(); ++#endif + #if defined(POPPLER_NEW_OBJECT_API) + if ((obj1 = res->lookupXObject(name)).isNull()) { + #else +@@ -3656,7 +3669,6 @@ void PdfParser::opBeginImage(Object /*args*/[], int /*numArgs*/) + Stream *PdfParser::buildImageStream() { + Object dict; + Object obj; +- char *key; + Stream *str; + + // build dictionary +@@ -3674,26 +3686,17 @@ Stream *PdfParser::buildImageStream() { + obj.free(); + #endif + } else { +- key = copyString(obj.getName()); +-#if defined(POPPLER_NEW_OBJECT_API) +- obj = parser->getObj(); +-#else +- obj.free(); +- parser->getObj(&obj); +-#endif +- if (obj.isEOF() || obj.isError()) { +- gfree(key); ++ Object obj2; ++ _POPPLER_CALL(obj2, parser->getObj); ++ if (obj2.isEOF() || obj2.isError()) { ++ _POPPLER_FREE(obj); + break; + } +-#if defined(POPPLER_NEW_OBJECT_API) +- dict.dictAdd(key, std::move(obj)); +- } +- obj = parser->getObj(); +-#else +- dict.dictAdd(key, &obj); ++ _POPPLER_DICTADD(dict, obj.getName(), obj2); ++ _POPPLER_FREE(obj); ++ _POPPLER_FREE(obj2); + } +- parser->getObj(&obj); +-#endif ++ _POPPLER_CALL(obj, parser->getObj); + } + if (obj.isEOF()) { + error(errSyntaxError, getPos(), "End of file in inline image"); +diff --git a/src/extension/internal/pdfinput/pdf-parser.h b/src/extension/internal/pdfinput/pdf-parser.h +--- a/src/extension/internal/pdfinput/pdf-parser.h ++++ b/src/extension/internal/pdfinput/pdf-parser.h +@@ -9,6 +9,7 @@ + #define PDF_PARSER_H + + #ifdef HAVE_POPPLER ++#include "poppler-transition-api.h" + + #ifdef USE_GCC_PRAGMAS + #pragma interface +@@ -25,6 +26,7 @@ namespace Inkscape { + // TODO clean up and remove using: + using Inkscape::Extension::Internal::SvgBuilder; + ++#include "glib/poppler-features.h" + #include "goo/gtypes.h" + #include "Object.h" + +@@ -127,11 +129,14 @@ public: + + // Constructor for regular output. + PdfParser(XRef *xrefA, SvgBuilder *builderA, int pageNum, int rotate, +- Dict *resDict, PDFRectangle *box, PDFRectangle *cropBox); ++ Dict *resDict, ++ _POPPLER_CONST PDFRectangle *box, ++ _POPPLER_CONST PDFRectangle *cropBox); + + // Constructor for a sub-page object. + PdfParser(XRef *xrefA, Inkscape::Extension::Internal::SvgBuilder *builderA, +- Dict *resDict, PDFRectangle *box); ++ Dict *resDict, ++ _POPPLER_CONST PDFRectangle *box); + + virtual ~PdfParser(); + +@@ -185,7 +190,7 @@ private: + + void go(GBool topLevel); + void execOp(Object *cmd, Object args[], int numArgs); +- PdfOperator *findOp(char *name); ++ PdfOperator *findOp(const char *name); + GBool checkArg(Object *arg, TchkType type); + int getPos(); + +@@ -256,7 +261,7 @@ private: + double x2, double y2, GfxColor *color2, + int nComps, int depth); + void doPatchMeshShFill(GfxPatchMeshShading *shading); +- void fillPatch(GfxPatch *patch, int nComps, int depth); ++ void fillPatch(_POPPLER_CONST GfxPatch *patch, int nComps, int depth); + void doEndPath(); + + // path clipping operators +@@ -287,7 +292,12 @@ private: + void opMoveShowText(Object args[], int numArgs); + void opMoveSetShowText(Object args[], int numArgs); + void opShowSpaceText(Object args[], int numArgs); ++#if POPPLER_CHECK_VERSION(0,64,0) + void doShowText(const GooString *s); ++#else ++ void doShowText(GooString *s); ++#endif ++ + + // XObject operators + void opXObject(Object args[], int numArgs); +diff --git a/src/extension/internal/pdfinput/poppler-transition-api.h b/src/extension/internal/pdfinput/poppler-transition-api.h +new file mode 100644 +--- /dev/null ++++ b/src/extension/internal/pdfinput/poppler-transition-api.h +@@ -0,0 +1,39 @@ ++#ifndef SEEN_POPPLER_TRANSITION_API_H ++#define SEEN_POPPLER_TRANSITION_API_H ++ ++#include ++ ++#if POPPLER_CHECK_VERSION(0,70,0) ++#define _POPPLER_CONST const ++#else ++#define _POPPLER_CONST ++#endif ++ ++#if POPPLER_CHECK_VERSION(0,69,0) ++#define _POPPLER_DICTADD(dict, key, obj) (dict).dictAdd(key, std::move(obj)) ++#elif POPPLER_CHECK_VERSION(0,58,0) ++#define _POPPLER_DICTADD(dict, key, obj) (dict).dictAdd(copyString(key), std::move(obj)) ++#else ++#define _POPPLER_DICTADD(dict, key, obj) (dict).dictAdd(copyString(key), &obj) ++#endif ++ ++#if POPPLER_CHECK_VERSION(0,58,0) ++#define POPPLER_NEW_OBJECT_API ++#define _POPPLER_FREE(obj) ++#define _POPPLER_CALL(ret, func) (ret = func()) ++#define _POPPLER_CALL_ARGS(ret, func, ...) (ret = func(__VA_ARGS__)) ++#else ++#define _POPPLER_FREE(obj) (obj).free() ++#define _POPPLER_CALL(ret, func) (*func(&ret)) ++#define _POPPLER_CALL_ARGS(ret, func, ...) (*func(__VA_ARGS__, &ret)) ++#endif ++ ++#if POPPLER_CHECK_VERSION(0, 29, 0) ++#define POPPLER_EVEN_NEWER_NEW_COLOR_SPACE_API ++#endif ++ ++#if POPPLER_CHECK_VERSION(0, 25, 0) ++#define POPPLER_EVEN_NEWER_COLOR_SPACE_API ++#endif ++ ++#endif +diff --git a/src/extension/internal/pdfinput/svg-builder.cpp b/src/extension/internal/pdfinput/svg-builder.cpp +--- a/src/extension/internal/pdfinput/svg-builder.cpp ++++ b/src/extension/internal/pdfinput/svg-builder.cpp +@@ -625,7 +625,7 @@ gchar *SvgBuilder::_createPattern(GfxPattern *pattern, GfxState *state, bool is_ + if ( pattern != NULL ) { + if ( pattern->getType() == 2 ) { // Shading pattern + GfxShadingPattern *shading_pattern = static_cast(pattern); +- double *ptm; ++ const double *ptm; + double m[6] = {1, 0, 0, 1, 0, 0}; + double det; + +@@ -672,7 +672,7 @@ gchar *SvgBuilder::_createTilingPattern(GfxTilingPattern *tiling_pattern, + + Inkscape::XML::Node *pattern_node = _xml_doc->createElement("svg:pattern"); + // Set pattern transform matrix +- double *p2u = tiling_pattern->getMatrix(); ++ const double *p2u = tiling_pattern->getMatrix(); + double m[6] = {1, 0, 0, 1, 0, 0}; + double det; + det = _ttm[0] * _ttm[3] - _ttm[1] * _ttm[2]; // see LP Bug 1168908 +@@ -698,7 +698,7 @@ gchar *SvgBuilder::_createTilingPattern(GfxTilingPattern *tiling_pattern, + pattern_node->setAttribute("patternUnits", "userSpaceOnUse"); + // Set pattern tiling + // FIXME: don't ignore XStep and YStep +- double *bbox = tiling_pattern->getBBox(); ++ const double *bbox = tiling_pattern->getBBox(); + sp_repr_set_svg_double(pattern_node, "x", 0.0); + sp_repr_set_svg_double(pattern_node, "y", 0.0); + sp_repr_set_svg_double(pattern_node, "width", bbox[2] - bbox[0]); +@@ -751,7 +751,7 @@ gchar *SvgBuilder::_createTilingPattern(GfxTilingPattern *tiling_pattern, + */ + gchar *SvgBuilder::_createGradient(GfxShading *shading, double *matrix, bool for_shading) { + Inkscape::XML::Node *gradient; +- Function *func; ++ _POPPLER_CONST Function *func; + int num_funcs; + bool extend0, extend1; + +@@ -865,7 +865,7 @@ static bool svgGetShadingColorRGB(GfxShading *shading, double offset, GfxRGB *re + + #define INT_EPSILON 8 + bool SvgBuilder::_addGradientStops(Inkscape::XML::Node *gradient, GfxShading *shading, +- Function *func) { ++ _POPPLER_CONST Function *func) { + int type = func->getType(); + if ( type == 0 || type == 2 ) { // Sampled or exponential function + GfxRGB stop1, stop2; +@@ -877,9 +877,9 @@ bool SvgBuilder::_addGradientStops(Inkscape::XML::Node *gradient, GfxShading *sh + _addStopToGradient(gradient, 1.0, &stop2, 1.0); + } + } else if ( type == 3 ) { // Stitching +- StitchingFunction *stitchingFunc = static_cast(func); +- double *bounds = stitchingFunc->getBounds(); +- double *encode = stitchingFunc->getEncode(); ++ auto stitchingFunc = static_cast<_POPPLER_CONST StitchingFunction*>(func); ++ const double *bounds = stitchingFunc->getBounds(); ++ const double *encode = stitchingFunc->getEncode(); + int num_funcs = stitchingFunc->getNumFuncs(); + + // Add stops from all the stitched functions +@@ -890,7 +890,7 @@ bool SvgBuilder::_addGradientStops(Inkscape::XML::Node *gradient, GfxShading *sh + svgGetShadingColorRGB(shading, bounds[i + 1], &color); + // Add stops + if (stitchingFunc->getFunc(i)->getType() == 2) { // process exponential fxn +- double expE = (static_cast(stitchingFunc->getFunc(i)))->getE(); ++ double expE = (static_cast<_POPPLER_CONST ExponentialFunction*>(stitchingFunc->getFunc(i)))->getE(); + if (expE > 1.0) { + expE = (bounds[i + 1] - bounds[i])/expE; // approximate exponential as a single straight line at x=1 + if (encode[2*i] == 0) { // normal sequence +@@ -1020,9 +1020,9 @@ void SvgBuilder::updateFont(GfxState *state) { + GfxFont *font = state->getFont(); + // Store original name + if (font->getName()) { +- _font_specification = g_strdup(font->getName()->getCString()); ++ _font_specification = font->getName()->getCString(); + } else { +- _font_specification = (char*) "Arial"; ++ _font_specification = "Arial"; + } + + // Prune the font name to get the correct font family name +@@ -1030,7 +1030,7 @@ void SvgBuilder::updateFont(GfxState *state) { + char *font_family = NULL; + char *font_style = NULL; + char *font_style_lowercase = NULL; +- char *plus_sign = strstr(_font_specification, "+"); ++ const char *plus_sign = strstr(_font_specification, "+"); + if (plus_sign) { + font_family = g_strdup(plus_sign + 1); + _font_specification = plus_sign + 1; +@@ -1148,7 +1148,7 @@ void SvgBuilder::updateFont(GfxState *state) { + Inkscape::CSSOStringStream os_font_size; + double css_font_size = _font_scaling * state->getFontSize(); + if ( font->getType() == fontType3 ) { +- double *font_matrix = font->getFontMatrix(); ++ const double *font_matrix = font->getFontMatrix(); + if ( font_matrix[0] != 0.0 ) { + css_font_size *= font_matrix[3] / font_matrix[0]; + } +@@ -1193,7 +1193,7 @@ void SvgBuilder::updateTextPosition(double tx, double ty) { + void SvgBuilder::updateTextMatrix(GfxState *state) { + _flushText(); + // Update text matrix +- double *text_matrix = state->getTextMat(); ++ const double *text_matrix = state->getTextMat(); + double w_scale = sqrt( text_matrix[0] * text_matrix[0] + text_matrix[2] * text_matrix[2] ); + double h_scale = sqrt( text_matrix[1] * text_matrix[1] + text_matrix[3] * text_matrix[3] ); + double max_scale; +diff --git a/src/extension/internal/pdfinput/svg-builder.h b/src/extension/internal/pdfinput/svg-builder.h +--- a/src/extension/internal/pdfinput/svg-builder.h ++++ b/src/extension/internal/pdfinput/svg-builder.h +@@ -15,6 +15,7 @@ + #endif + + #ifdef HAVE_POPPLER ++#include "poppler-transition-api.h" + + class SPDocument; + namespace Inkscape { +@@ -80,7 +81,7 @@ struct SvgGlyph { + bool style_changed; // Set to true if style has to be reset + SPCSSAttr *style; + int render_mode; // Text render mode +- char *font_specification; // Pointer to current font specification ++ const char *font_specification; // Pointer to current font specification + }; + + /** +@@ -174,7 +175,7 @@ private: + void _addStopToGradient(Inkscape::XML::Node *gradient, double offset, + GfxRGB *color, double opacity); + bool _addGradientStops(Inkscape::XML::Node *gradient, GfxShading *shading, +- Function *func); ++ _POPPLER_CONST Function *func); + gchar *_createTilingPattern(GfxTilingPattern *tiling_pattern, GfxState *state, + bool is_stroke=false); + // Image/mask creation +@@ -202,7 +203,7 @@ private: + + SPCSSAttr *_font_style; // Current font style + GfxFont *_current_font; +- char *_font_specification; ++ const char *_font_specification; + double _font_scaling; + bool _need_font_update; + Geom::Affine _text_matrix; diff --git a/gnu/packages/patches/json-glib-fix-tests-32bit.patch b/gnu/packages/patches/json-glib-fix-tests-32bit.patch deleted file mode 100644 index 77ea134915..0000000000 --- a/gnu/packages/patches/json-glib-fix-tests-32bit.patch +++ /dev/null @@ -1,174 +0,0 @@ -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 -+#include -+#include -+#include -+#include -+ -+#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 --#include --#include -- --#include --#include -+#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 --#include --#include -+#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 --#include -- --#include -- --#include - - 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 --#include -- --#include -- --#include -+#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/patches/libreoffice-boost.patch b/gnu/packages/patches/libreoffice-boost.patch new file mode 100644 index 0000000000..b50664226b --- /dev/null +++ b/gnu/packages/patches/libreoffice-boost.patch @@ -0,0 +1,17 @@ +Fix compatibility with newer Boost. + +Extracted from this upstream commit: +https://cgit.freedesktop.org/libreoffice/core/commit/?id=23a8d5ffbbe58761b89f590f0735abccd69a3681 + +diff --git a/sfx2/source/appl/shutdownicon.cxx b/sfx2/source/appl/shutdownicon.cxx +--- a/sfx2/source/appl/shutdownicon.cxx ++++ b/sfx2/source/appl/shutdownicon.cxx +@@ -144,7 +144,7 @@ bool LoadModule() + #endif // ENABLE_QUICKSTART_APPLET + } + assert(!boost::logic::indeterminate(loaded)); +- return loaded; ++ return bool(loaded); + } + + } diff --git a/gnu/packages/patches/libtiff-CVE-2017-18013.patch b/gnu/packages/patches/libtiff-CVE-2017-18013.patch deleted file mode 100644 index ba03c83847..0000000000 --- a/gnu/packages/patches/libtiff-CVE-2017-18013.patch +++ /dev/null @@ -1,45 +0,0 @@ -Fix CVE-2017-18013: - -http://bugzilla.maptools.org/show_bug.cgi?id=2770 -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-18013 - -Patch copied from upstream source repository: - -https://gitlab.com/libtiff/libtiff/commit/c6f41df7b581402dfba3c19a1e3df4454c551a01 - -From c6f41df7b581402dfba3c19a1e3df4454c551a01 Mon Sep 17 00:00:00 2001 -From: Even Rouault -Date: Sun, 31 Dec 2017 15:09:41 +0100 -Subject: [PATCH] libtiff/tif_print.c: TIFFPrintDirectory(): fix null pointer - dereference on corrupted file. Fixes - http://bugzilla.maptools.org/show_bug.cgi?id=2770 - ---- - libtiff/tif_print.c | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/libtiff/tif_print.c b/libtiff/tif_print.c -index 9959d353..8deceb2b 100644 ---- a/libtiff/tif_print.c -+++ b/libtiff/tif_print.c -@@ -665,13 +665,13 @@ TIFFPrintDirectory(TIFF* tif, FILE* fd, long flags) - #if defined(__WIN32__) && (defined(_MSC_VER) || defined(__MINGW32__)) - fprintf(fd, " %3lu: [%8I64u, %8I64u]\n", - (unsigned long) s, -- (unsigned __int64) td->td_stripoffset[s], -- (unsigned __int64) td->td_stripbytecount[s]); -+ td->td_stripoffset ? (unsigned __int64) td->td_stripoffset[s] : 0, -+ td->td_stripbytecount ? (unsigned __int64) td->td_stripbytecount[s] : 0); - #else - fprintf(fd, " %3lu: [%8llu, %8llu]\n", - (unsigned long) s, -- (unsigned long long) td->td_stripoffset[s], -- (unsigned long long) td->td_stripbytecount[s]); -+ td->td_stripoffset ? (unsigned long long) td->td_stripoffset[s] : 0, -+ td->td_stripbytecount ? (unsigned long long) td->td_stripbytecount[s] : 0); - #endif - } - } --- -2.16.1 - diff --git a/gnu/packages/patches/libtiff-CVE-2017-9935.patch b/gnu/packages/patches/libtiff-CVE-2017-9935.patch deleted file mode 100644 index 5685d81f68..0000000000 --- a/gnu/packages/patches/libtiff-CVE-2017-9935.patch +++ /dev/null @@ -1,162 +0,0 @@ -Fix CVE-2017-9935 - -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-9935 -http://bugzilla.maptools.org/show_bug.cgi?id=2704 - -Patch copied from upstream source repository: - -https://gitlab.com/libtiff/libtiff/commit/3dd8f6a357981a4090f126ab9025056c938b6940 - -From 3dd8f6a357981a4090f126ab9025056c938b6940 Mon Sep 17 00:00:00 2001 -From: Brian May -Date: Thu, 7 Dec 2017 07:46:47 +1100 -Subject: [PATCH] tiff2pdf: Fix CVE-2017-9935 - -Fix for http://bugzilla.maptools.org/show_bug.cgi?id=2704 - -This vulnerability - at least for the supplied test case - is because we -assume that a tiff will only have one transfer function that is the same -for all pages. This is not required by the TIFF standards. - -We than read the transfer function for every page. Depending on the -transfer function, we allocate either 2 or 4 bytes to the XREF buffer. -We allocate this memory after we read in the transfer function for the -page. - -For the first exploit - POC1, this file has 3 pages. For the first page -we allocate 2 extra extra XREF entries. Then for the next page 2 more -entries. Then for the last page the transfer function changes and we -allocate 4 more entries. - -When we read the file into memory, we assume we have 4 bytes extra for -each and every page (as per the last transfer function we read). Which -is not correct, we only have 2 bytes extra for the first 2 pages. As a -result, we end up writing past the end of the buffer. - -There are also some related issues that this also fixes. For example, -TIFFGetField can return uninitalized pointer values, and the logic to -detect a N=3 vs N=1 transfer function seemed rather strange. - -It is also strange that we declare the transfer functions to be of type -float, when the standard says they are unsigned 16 bit values. This is -fixed in another patch. - -This patch will check to ensure that the N value for every transfer -function is the same for every page. If this changes, we abort with an -error. In theory, we should perhaps check that the transfer function -itself is identical for every page, however we don't do that due to the -confusion of the type of the data in the transfer function. ---- - libtiff/tif_dir.c | 3 +++ - tools/tiff2pdf.c | 65 +++++++++++++++++++++++++++++++++++++------------------ - 2 files changed, 47 insertions(+), 21 deletions(-) - -diff --git a/libtiff/tif_dir.c b/libtiff/tif_dir.c -index 2ccaf448..cbf2b693 100644 ---- a/libtiff/tif_dir.c -+++ b/libtiff/tif_dir.c -@@ -1065,6 +1065,9 @@ _TIFFVGetField(TIFF* tif, uint32 tag, va_list ap) - if (td->td_samplesperpixel - td->td_extrasamples > 1) { - *va_arg(ap, uint16**) = td->td_transferfunction[1]; - *va_arg(ap, uint16**) = td->td_transferfunction[2]; -+ } else { -+ *va_arg(ap, uint16**) = NULL; -+ *va_arg(ap, uint16**) = NULL; - } - break; - case TIFFTAG_REFERENCEBLACKWHITE: -diff --git a/tools/tiff2pdf.c b/tools/tiff2pdf.c -index d1a9b095..c3ec0746 100644 ---- a/tools/tiff2pdf.c -+++ b/tools/tiff2pdf.c -@@ -1047,6 +1047,8 @@ void t2p_read_tiff_init(T2P* t2p, TIFF* input){ - uint16 pagen=0; - uint16 paged=0; - uint16 xuint16=0; -+ uint16 tiff_transferfunctioncount=0; -+ float* tiff_transferfunction[3]; - - directorycount=TIFFNumberOfDirectories(input); - t2p->tiff_pages = (T2P_PAGE*) _TIFFmalloc(TIFFSafeMultiply(tmsize_t,directorycount,sizeof(T2P_PAGE))); -@@ -1147,26 +1149,48 @@ void t2p_read_tiff_init(T2P* t2p, TIFF* input){ - } - #endif - if (TIFFGetField(input, TIFFTAG_TRANSFERFUNCTION, -- &(t2p->tiff_transferfunction[0]), -- &(t2p->tiff_transferfunction[1]), -- &(t2p->tiff_transferfunction[2]))) { -- if((t2p->tiff_transferfunction[1] != (float*) NULL) && -- (t2p->tiff_transferfunction[2] != (float*) NULL) && -- (t2p->tiff_transferfunction[1] != -- t2p->tiff_transferfunction[0])) { -- t2p->tiff_transferfunctioncount = 3; -- t2p->tiff_pages[i].page_extra += 4; -- t2p->pdf_xrefcount += 4; -- } else { -- t2p->tiff_transferfunctioncount = 1; -- t2p->tiff_pages[i].page_extra += 2; -- t2p->pdf_xrefcount += 2; -- } -- if(t2p->pdf_minorversion < 2) -- t2p->pdf_minorversion = 2; -+ &(tiff_transferfunction[0]), -+ &(tiff_transferfunction[1]), -+ &(tiff_transferfunction[2]))) { -+ -+ if((tiff_transferfunction[1] != (float*) NULL) && -+ (tiff_transferfunction[2] != (float*) NULL) -+ ) { -+ tiff_transferfunctioncount=3; -+ } else { -+ tiff_transferfunctioncount=1; -+ } - } else { -- t2p->tiff_transferfunctioncount=0; -+ tiff_transferfunctioncount=0; - } -+ -+ if (i > 0){ -+ if (tiff_transferfunctioncount != t2p->tiff_transferfunctioncount){ -+ TIFFError( -+ TIFF2PDF_MODULE, -+ "Different transfer function on page %d", -+ i); -+ t2p->t2p_error = T2P_ERR_ERROR; -+ return; -+ } -+ } -+ -+ t2p->tiff_transferfunctioncount = tiff_transferfunctioncount; -+ t2p->tiff_transferfunction[0] = tiff_transferfunction[0]; -+ t2p->tiff_transferfunction[1] = tiff_transferfunction[1]; -+ t2p->tiff_transferfunction[2] = tiff_transferfunction[2]; -+ if(tiff_transferfunctioncount == 3){ -+ t2p->tiff_pages[i].page_extra += 4; -+ t2p->pdf_xrefcount += 4; -+ if(t2p->pdf_minorversion < 2) -+ t2p->pdf_minorversion = 2; -+ } else if (tiff_transferfunctioncount == 1){ -+ t2p->tiff_pages[i].page_extra += 2; -+ t2p->pdf_xrefcount += 2; -+ if(t2p->pdf_minorversion < 2) -+ t2p->pdf_minorversion = 2; -+ } -+ - if( TIFFGetField( - input, - TIFFTAG_ICCPROFILE, -@@ -1828,9 +1852,8 @@ void t2p_read_tiff_data(T2P* t2p, TIFF* input){ - &(t2p->tiff_transferfunction[1]), - &(t2p->tiff_transferfunction[2]))) { - if((t2p->tiff_transferfunction[1] != (float*) NULL) && -- (t2p->tiff_transferfunction[2] != (float*) NULL) && -- (t2p->tiff_transferfunction[1] != -- t2p->tiff_transferfunction[0])) { -+ (t2p->tiff_transferfunction[2] != (float*) NULL) -+ ) { - t2p->tiff_transferfunctioncount=3; - } else { - t2p->tiff_transferfunctioncount=1; --- -2.16.1 - diff --git a/gnu/packages/patches/libtiff-CVE-2018-10963.patch b/gnu/packages/patches/libtiff-CVE-2018-10963.patch deleted file mode 100644 index d31c12399d..0000000000 --- a/gnu/packages/patches/libtiff-CVE-2018-10963.patch +++ /dev/null @@ -1,40 +0,0 @@ -Fix CVE-2018-10963: - -http://bugzilla.maptools.org/show_bug.cgi?id=2795 -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-10963 - -Patch copied from upstream source repository: - -https://gitlab.com/libtiff/libtiff/commit/de144fd228e4be8aa484c3caf3d814b6fa88c6d9 - -From de144fd228e4be8aa484c3caf3d814b6fa88c6d9 Mon Sep 17 00:00:00 2001 -From: Even Rouault -Date: Sat, 12 May 2018 14:24:15 +0200 -Subject: [PATCH] TIFFWriteDirectorySec: avoid assertion. Fixes - http://bugzilla.maptools.org/show_bug.cgi?id=2795. CVE-2018-10963 - ---- - libtiff/tif_dirwrite.c | 7 +++++-- - 1 file changed, 5 insertions(+), 2 deletions(-) - -diff --git a/libtiff/tif_dirwrite.c b/libtiff/tif_dirwrite.c -index 2430de6d..c15a28db 100644 ---- a/libtiff/tif_dirwrite.c -+++ b/libtiff/tif_dirwrite.c -@@ -695,8 +695,11 @@ TIFFWriteDirectorySec(TIFF* tif, int isimage, int imagedone, uint64* pdiroff) - } - break; - default: -- assert(0); /* we should never get here */ -- break; -+ TIFFErrorExt(tif->tif_clientdata,module, -+ "Cannot write tag %d (%s)", -+ TIFFFieldTag(o), -+ o->field_name ? o->field_name : "unknown"); -+ goto bad; - } - } - } --- -2.17.0 - diff --git a/gnu/packages/patches/libtiff-CVE-2018-8905.patch b/gnu/packages/patches/libtiff-CVE-2018-8905.patch deleted file mode 100644 index f49815789e..0000000000 --- a/gnu/packages/patches/libtiff-CVE-2018-8905.patch +++ /dev/null @@ -1,61 +0,0 @@ -Fix CVE-2018-8095: - -http://bugzilla.maptools.org/show_bug.cgi?id=2780 -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-8905 - -Patch copied from upstream source repository: - -https://gitlab.com/libtiff/libtiff/commit/58a898cb4459055bb488ca815c23b880c242a27d - -From 58a898cb4459055bb488ca815c23b880c242a27d Mon Sep 17 00:00:00 2001 -From: Even Rouault -Date: Sat, 12 May 2018 15:32:31 +0200 -Subject: [PATCH] LZWDecodeCompat(): fix potential index-out-of-bounds write. - Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2780 / CVE-2018-8905 - -The fix consists in using the similar code LZWDecode() to validate we -don't write outside of the output buffer. ---- - libtiff/tif_lzw.c | 18 ++++++++++++------ - 1 file changed, 12 insertions(+), 6 deletions(-) - -diff --git a/libtiff/tif_lzw.c b/libtiff/tif_lzw.c -index 4ccb443c..94d85e38 100644 ---- a/libtiff/tif_lzw.c -+++ b/libtiff/tif_lzw.c -@@ -602,6 +602,7 @@ LZWDecodeCompat(TIFF* tif, uint8* op0, tmsize_t occ0, uint16 s) - char *tp; - unsigned char *bp; - int code, nbits; -+ int len; - long nextbits, nextdata, nbitsmask; - code_t *codep, *free_entp, *maxcodep, *oldcodep; - -@@ -753,13 +754,18 @@ LZWDecodeCompat(TIFF* tif, uint8* op0, tmsize_t occ0, uint16 s) - } while (--occ); - break; - } -- assert(occ >= codep->length); -- op += codep->length; -- occ -= codep->length; -- tp = op; -+ len = codep->length; -+ tp = op + len; - do { -- *--tp = codep->value; -- } while( (codep = codep->next) != NULL ); -+ int t; -+ --tp; -+ t = codep->value; -+ codep = codep->next; -+ *tp = (char)t; -+ } while (codep && tp > op); -+ assert(occ >= len); -+ op += len; -+ occ -= len; - } else { - *op++ = (char)code; - occ--; --- -2.17.0 - diff --git a/gnu/packages/patches/musescore-fix-use_webengine.patch b/gnu/packages/patches/musescore-fix-use_webengine.patch new file mode 100644 index 0000000000..b0b8216a42 --- /dev/null +++ b/gnu/packages/patches/musescore-fix-use_webengine.patch @@ -0,0 +1,165 @@ +From bb0c1a9b4940f3f6b52c0df535289ec8a3bc9e03 Mon Sep 17 00:00:00 2001 +From: Dmitri Ovodok +Date: Mon, 4 Feb 2019 21:35:25 +0300 +Subject: [PATCH] Fix build without USE_WEBENGINE and SCRIPT_INTERFACE + +Old-style login dialog is used if USE_WEBENGINE is turned off +--- + mscore/logindialog.h | 2 ++ + mscore/musescore.cpp | 4 +++- + mscore/network/loginmanager.cpp | 13 +++++++++++-- + mscore/network/loginmanager.h | 4 ++++ + mscore/network/loginmanager_p.h | 4 ++++ + 5 files changed, 24 insertions(+), 3 deletions(-) + +diff --git a/mscore/logindialog.h b/mscore/logindialog.h +index 4e86ae7985..f44511d8c0 100644 +--- a/mscore/logindialog.h ++++ b/mscore/logindialog.h +@@ -21,6 +21,8 @@ class LoginManager; + + //--------------------------------------------------------- + // LoginDialog ++// Old-style login dialog in case QtWebEngine is ++// unavailable. + //--------------------------------------------------------- + + class LoginDialog : public QDialog, public Ui::LoginDialog +diff --git a/mscore/musescore.cpp b/mscore/musescore.cpp +index 80c712aea9..5bb8354992 100644 +--- a/mscore/musescore.cpp ++++ b/mscore/musescore.cpp +@@ -7572,12 +7572,14 @@ bool MuseScore::exportPartsPdfsToJSON(const QString& inFilePath, const QString& + } + + //--------------------------------------------------------- +-// getQmlEngine ++// getPluginEngine + //--------------------------------------------------------- + ++#ifdef SCRIPT_INTERFACE + QmlPluginEngine* MuseScore::getPluginEngine() + { + if (!_qmlEngine) + _qmlEngine = new QmlPluginEngine(this); + return _qmlEngine; + } ++#endif +diff --git a/mscore/network/loginmanager.cpp b/mscore/network/loginmanager.cpp +index a53d7fe811..664786ccc8 100644 +--- a/mscore/network/loginmanager.cpp ++++ b/mscore/network/loginmanager.cpp +@@ -18,7 +18,9 @@ + #include "kQOAuth/kqoauthrequest.h" + #include "kQOAuth/kqoauthrequest_xauth.h" + ++#ifdef USE_WEBENGINE + #include ++#endif + + namespace Ms { + +@@ -286,8 +288,11 @@ void LoginManager::onTryLoginError(const QString& error) + disconnect(this, SIGNAL(getUserError(QString)), this, SLOT(onTryLoginError(QString))); + connect(this, SIGNAL(loginSuccess()), this, SLOT(tryLogin())); + logout(); ++#ifdef USE_WEBENGINE + loginInteractive(); +-// mscore->showLoginDialog(); // TODO: switch depending on USE_WEBENGINE ++#else ++ mscore->showLoginDialog(); ++#endif + } + /*------- END - TRY LOGIN ROUTINES ----------------------------*/ + +@@ -295,6 +300,7 @@ void LoginManager::onTryLoginError(const QString& error) + // loginInteractive + //--------------------------------------------------------- + ++#ifdef USE_WEBENGINE + void LoginManager::loginInteractive() + { + QWebEngineView* webView = new QWebEngineView; +@@ -326,6 +332,7 @@ void LoginManager::loginInteractive() + webView->load(ApiInfo::loginUrl); + webView->show(); + } ++#endif + + //--------------------------------------------------------- + // login +@@ -346,7 +353,7 @@ void LoginManager::login(QString login, QString password) + connect(reply, &QNetworkReply::finished, this, [this, reply] { + onReplyFinished(reply, RequestType::LOGIN); + }); +- } ++ } + + //--------------------------------------------------------- + // onLoginSuccessReply +@@ -874,6 +881,7 @@ ApiRequest ApiRequestBuilder::build() const + // musescore.com + //--------------------------------------------------------- + ++#ifdef USE_WEBENGINE + void ApiWebEngineRequestInterceptor::interceptRequest(QWebEngineUrlRequestInfo& request) + { + const ApiInfo& apiInfo = ApiInfo::instance(); +@@ -881,4 +889,5 @@ void ApiWebEngineRequestInterceptor::interceptRequest(QWebEngineUrlRequestInfo& + request.setHttpHeader(apiInfo.clientIdHeader, apiInfo.clientId); + request.setHttpHeader(apiInfo.apiKeyHeader, apiInfo.apiKey); + } ++#endif + } +diff --git a/mscore/network/loginmanager.h b/mscore/network/loginmanager.h +index 584eeea30d..327d9fc966 100644 +--- a/mscore/network/loginmanager.h ++++ b/mscore/network/loginmanager.h +@@ -13,6 +13,8 @@ + #ifndef __LOGINMANAGER_H__ + #define __LOGINMANAGER_H__ + ++#include "config.h" ++ + namespace Ms { + + //--------------------------------------------------------- +@@ -83,7 +85,9 @@ class LoginManager : public QObject + public: + LoginManager(QAction* uploadAudioMenuAction, QObject* parent = 0); + void login(QString login, QString password); ++#ifdef USE_WEBENGINE + void loginInteractive(); ++#endif + void upload(const QString& path, int nid, const QString& title, const QString& description, const QString& priv, const QString& license, const QString& tags, const QString& changes); + bool hasAccessToken(); + void getUser(); +diff --git a/mscore/network/loginmanager_p.h b/mscore/network/loginmanager_p.h +index 88228a3958..2848dde35a 100644 +--- a/mscore/network/loginmanager_p.h ++++ b/mscore/network/loginmanager_p.h +@@ -20,6 +20,8 @@ + #ifndef __LOGINMANAGER_P_H__ + #define __LOGINMANAGER_P_H__ + ++#include "config.h" ++ + namespace Ms { + + //--------------------------------------------------------- +@@ -102,6 +104,7 @@ class ApiRequestBuilder + // ApiWebEngineRequestInterceptor + //--------------------------------------------------------- + ++#ifdef USE_WEBENGINE + class ApiWebEngineRequestInterceptor : public QWebEngineUrlRequestInterceptor + { + Q_OBJECT +@@ -109,6 +112,7 @@ class ApiWebEngineRequestInterceptor : public QWebEngineUrlRequestInterceptor + ApiWebEngineRequestInterceptor(QObject* parent) : QWebEngineUrlRequestInterceptor(parent) {} + void interceptRequest(QWebEngineUrlRequestInfo& info) override; + }; ++#endif + + //--------------------------------------------------------- + // HttpStatus diff --git a/gnu/packages/patches/pingus-boost-headers.patch b/gnu/packages/patches/pingus-boost-headers.patch new file mode 100644 index 0000000000..f820f5851c --- /dev/null +++ b/gnu/packages/patches/pingus-boost-headers.patch @@ -0,0 +1,379 @@ +https://github.com/Pingus/pingus/commit/fef8cf6512fa4aa09e87643c22ef66de9ec7bb41.patch + +From fef8cf6512fa4aa09e87643c22ef66de9ec7bb41 Mon Sep 17 00:00:00 2001 +From: Ingo Ruhnke +Date: Sat, 26 Jul 2014 20:49:11 +0200 +Subject: [PATCH] Switched to boost::signals2 + +--- + SConscript | 5 ++--- + src/editor/button.hpp | 4 ++-- + src/editor/checkbox.hpp | 4 ++-- + src/editor/combobox.hpp | 4 ++-- + src/editor/file_list.hpp | 4 ++-- + src/editor/inputbox.hpp | 6 +++--- + src/editor/message_box.hpp | 2 +- + src/editor/object_selector.cpp | 4 ++-- + src/editor/viewport.hpp | 4 ++-- + src/pingus/components/check_box.hpp | 4 ++-- + src/pingus/components/choice_box.hpp | 4 ++-- + src/pingus/components/slider_box.hpp | 4 ++-- + src/pingus/config_manager.hpp | 28 ++++++++++++++-------------- + src/pingus/screens/option_menu.hpp | 4 ++-- + 14 files changed, 40 insertions(+), 41 deletions(-) + +diff --git a/SConscript b/SConscript +index 758567f51..c4d25a8a9 100644 +--- a/SConscript ++++ b/SConscript +@@ -187,9 +187,8 @@ class Project: + 'src/engine/input/xinput/xinput_device.cpp']) + + def configure_boost(self): +- if not self.conf.CheckLibWithHeader('boost_signals', 'boost/signals.hpp', 'c++'): +- if not self.conf.CheckLibWithHeader('boost_signals-mt', 'boost/signals.hpp', 'c++'): +- self.fatal_error += " * library 'boost_signals' not found\n" ++ if not self.conf.CheckHeader('boost/signals2.hpp', '<>', 'c++'): ++ self.fatal_error += " * library 'boost_signals2' not found\n" + + def configure_png(self): + if self.conf.CheckMyProgram('pkg-config'): +diff --git a/src/editor/button.hpp b/src/editor/button.hpp +index c85d7da9e..d89dfe669 100644 +--- a/src/editor/button.hpp ++++ b/src/editor/button.hpp +@@ -17,7 +17,7 @@ + #ifndef HEADER_PINGUS_EDITOR_BUTTON_HPP + #define HEADER_PINGUS_EDITOR_BUTTON_HPP + +-#include ++#include + + #include "engine/gui/rect_component.hpp" + +@@ -48,7 +48,7 @@ class Button : public GUI::RectComponent + void enable() { enabled = true; } + void disable() { enabled = false; } + +- boost::signal on_click; ++ boost::signals2::signal on_click; + + private: + Button (const Button&); +diff --git a/src/editor/checkbox.hpp b/src/editor/checkbox.hpp +index 7c3bc835f..66382d79b 100644 +--- a/src/editor/checkbox.hpp ++++ b/src/editor/checkbox.hpp +@@ -17,7 +17,7 @@ + #ifndef HEADER_PINGUS_EDITOR_CHECKBOX_HPP + #define HEADER_PINGUS_EDITOR_CHECKBOX_HPP + +-#include ++#include + + #include "engine/gui/rect_component.hpp" + +@@ -40,7 +40,7 @@ class Checkbox : public GUI::RectComponent + bool is_checked() const { return checked; } + void on_primary_button_press(int x, int y); + +- boost::signal on_change; ++ boost::signals2::signal on_change; + + private: + Checkbox (const Checkbox&); +diff --git a/src/editor/combobox.hpp b/src/editor/combobox.hpp +index 0ca742593..603556bd9 100644 +--- a/src/editor/combobox.hpp ++++ b/src/editor/combobox.hpp +@@ -18,7 +18,7 @@ + #ifndef HEADER_PINGUS_EDITOR_COMBOBOX_HPP + #define HEADER_PINGUS_EDITOR_COMBOBOX_HPP + +-#include ++#include + + #include "engine/display/sprite.hpp" + #include "engine/gui/rect_component.hpp" +@@ -88,7 +88,7 @@ class Combobox : public GUI::RectComponent + + void update_layout() {} + +- boost::signal on_select; ++ boost::signals2::signal on_select; + + private: + Combobox(); +diff --git a/src/editor/file_list.hpp b/src/editor/file_list.hpp +index cc4bba2de..85efe6aa0 100644 +--- a/src/editor/file_list.hpp ++++ b/src/editor/file_list.hpp +@@ -17,7 +17,7 @@ + #ifndef HEADER_PINGUS_EDITOR_FILE_LIST_HPP + #define HEADER_PINGUS_EDITOR_FILE_LIST_HPP + +-#include ++#include + + #include "engine/display/sprite.hpp" + #include "engine/gui/rect_component.hpp" +@@ -61,7 +61,7 @@ class FileList : public GUI::RectComponent + bool has_more_next_pages(); + bool has_more_prev_pages(); + +- boost::signal on_click; ++ boost::signals2::signal on_click; + + private: + int items_per_page(); +diff --git a/src/editor/inputbox.hpp b/src/editor/inputbox.hpp +index cad9663ec..87321dbba 100644 +--- a/src/editor/inputbox.hpp ++++ b/src/editor/inputbox.hpp +@@ -17,7 +17,7 @@ + #ifndef HEADER_PINGUS_EDITOR_INPUTBOX_HPP + #define HEADER_PINGUS_EDITOR_INPUTBOX_HPP + +-#include ++#include + + #include "engine/gui/rect_component.hpp" + +@@ -40,8 +40,8 @@ class Inputbox : public GUI::RectComponent + + void update_layout() {} + +- boost::signal on_change; +- boost::signal on_enter; ++ boost::signals2::signal on_change; ++ boost::signals2::signal on_enter; + + private: + Inputbox (const Inputbox&); +diff --git a/src/editor/message_box.hpp b/src/editor/message_box.hpp +index 385387a61..d885767cf 100644 +--- a/src/editor/message_box.hpp ++++ b/src/editor/message_box.hpp +@@ -45,7 +45,7 @@ class MessageBox : public GUI::GroupComponent + void on_cancel_button(); + + public: +- boost::signal on_ok; ++ boost::signals2::signal on_ok; + + private: + MessageBox(const MessageBox&); +diff --git a/src/editor/object_selector.cpp b/src/editor/object_selector.cpp +index 28e306826..f3a36b5e8 100644 +--- a/src/editor/object_selector.cpp ++++ b/src/editor/object_selector.cpp +@@ -16,7 +16,7 @@ + + #include "editor/object_selector.hpp" + +-#include ++#include + + #include "editor/generic_level_obj.hpp" + #include "editor/gui_style.hpp" +@@ -47,7 +47,7 @@ class ObjectSelectorButton : public GUI::RectComponent + std::string tooltip; + + public: +- boost::signal on_click; ++ boost::signals2::signal on_click; + + public: + ObjectSelectorButton(ObjectSelectorList* object_list_, +diff --git a/src/editor/viewport.hpp b/src/editor/viewport.hpp +index 1ae9eff7c..18868254d 100644 +--- a/src/editor/viewport.hpp ++++ b/src/editor/viewport.hpp +@@ -18,7 +18,7 @@ + #ifndef HEADER_PINGUS_EDITOR_VIEWPORT_HPP + #define HEADER_PINGUS_EDITOR_VIEWPORT_HPP + +-#include ++#include + #include + + #include "editor/selection.hpp" +@@ -148,7 +148,7 @@ class Viewport : public GUI::RectComponent + + void clear_selection(); + +- boost::signal selection_changed; ++ boost::signals2::signal selection_changed; + private: + Viewport(); + Viewport (const Viewport&); +diff --git a/src/pingus/components/check_box.hpp b/src/pingus/components/check_box.hpp +index 00e23b764..5bef50f6b 100644 +--- a/src/pingus/components/check_box.hpp ++++ b/src/pingus/components/check_box.hpp +@@ -17,7 +17,7 @@ + #ifndef HEADER_PINGUS_PINGUS_COMPONENTS_CHECK_BOX_HPP + #define HEADER_PINGUS_PINGUS_COMPONENTS_CHECK_BOX_HPP + +-#include ++#include + + #include "engine/display/sprite.hpp" + #include "engine/gui/rect_component.hpp" +@@ -39,7 +39,7 @@ class CheckBox : public GUI::RectComponent + + void set_state(bool v, bool send_signal); + +- boost::signal on_change; ++ boost::signals2::signal on_change; + + private: + CheckBox (const CheckBox&); +diff --git a/src/pingus/components/choice_box.hpp b/src/pingus/components/choice_box.hpp +index 49d6e1948..ef51b6dd2 100644 +--- a/src/pingus/components/choice_box.hpp ++++ b/src/pingus/components/choice_box.hpp +@@ -17,7 +17,7 @@ + #ifndef HEADER_PINGUS_PINGUS_COMPONENTS_CHOICE_BOX_HPP + #define HEADER_PINGUS_PINGUS_COMPONENTS_CHOICE_BOX_HPP + +-#include ++#include + + #include "engine/gui/rect_component.hpp" + +@@ -36,7 +36,7 @@ class ChoiceBox : public GUI::RectComponent + void add_choice(const std::string& str); + void set_current_choice(int choice); + +- boost::signal on_change; ++ boost::signals2::signal on_change; + + private: + ChoiceBox (const ChoiceBox&); +diff --git a/src/pingus/components/slider_box.hpp b/src/pingus/components/slider_box.hpp +index ae4d92406..75118eac2 100644 +--- a/src/pingus/components/slider_box.hpp ++++ b/src/pingus/components/slider_box.hpp +@@ -17,7 +17,7 @@ + #ifndef HEADER_PINGUS_PINGUS_COMPONENTS_SLIDER_BOX_HPP + #define HEADER_PINGUS_PINGUS_COMPONENTS_SLIDER_BOX_HPP + +-#include ++#include + + #include "engine/gui/rect_component.hpp" + +@@ -39,7 +39,7 @@ class SliderBox : public GUI::RectComponent + + void set_value(int v); + +- boost::signal on_change; ++ boost::signals2::signal on_change; + + private: + SliderBox (const SliderBox&); +diff --git a/src/pingus/config_manager.hpp b/src/pingus/config_manager.hpp +index b07b83e65..4cf08e046 100644 +--- a/src/pingus/config_manager.hpp ++++ b/src/pingus/config_manager.hpp +@@ -17,7 +17,7 @@ + #ifndef HEADER_PINGUS_PINGUS_CONFIG_MANAGER_HPP + #define HEADER_PINGUS_PINGUS_CONFIG_MANAGER_HPP + +-#include ++#include + + #include "math/size.hpp" + #include "pingus/options.hpp" +@@ -39,55 +39,55 @@ class ConfigManager + + void set_master_volume(int); + int get_master_volume() const; +- boost::signal on_master_volume_change; ++ boost::signals2::signal on_master_volume_change; + + void set_sound_volume(int); + int get_sound_volume() const; +- boost::signal on_sound_volume_change; ++ boost::signals2::signal on_sound_volume_change; + + void set_music_volume(int); + int get_music_volume() const; +- boost::signal on_music_volume_change; ++ boost::signals2::signal on_music_volume_change; + + void set_fullscreen_resolution(const Size& size); + Size get_fullscreen_resolution() const; +- boost::signal on_fullscreen_resolution_change; ++ boost::signals2::signal on_fullscreen_resolution_change; + + void set_fullscreen(bool); + bool get_fullscreen() const; +- boost::signal on_fullscreen_change; ++ boost::signals2::signal on_fullscreen_change; + + void set_renderer(FramebufferType type); + FramebufferType get_renderer() const; +- boost::signal on_renderer_change; ++ boost::signals2::signal on_renderer_change; + + void set_resizable(bool); + bool get_resizable() const; +- boost::signal on_resizable_change; ++ boost::signals2::signal on_resizable_change; + + void set_mouse_grab(bool); + bool get_mouse_grab() const; +- boost::signal on_mouse_grab_change; ++ boost::signals2::signal on_mouse_grab_change; + + void set_print_fps(bool); + bool get_print_fps() const; +- boost::signal on_print_fps_change; ++ boost::signals2::signal on_print_fps_change; + + void set_language(const tinygettext::Language&); + tinygettext::Language get_language() const; +- boost::signal on_language_change; ++ boost::signals2::signal on_language_change; + + void set_software_cursor(bool); + bool get_software_cursor() const; +- boost::signal on_software_cursor_change; ++ boost::signals2::signal on_software_cursor_change; + + void set_auto_scrolling(bool); + bool get_auto_scrolling() const; +- boost::signal on_auto_scrolling_change; ++ boost::signals2::signal on_auto_scrolling_change; + + void set_drag_drop_scrolling(bool); + bool get_drag_drop_scrolling() const; +- boost::signal on_drag_drop_scrolling_change; ++ boost::signals2::signal on_drag_drop_scrolling_change; + + private: + ConfigManager (const ConfigManager&); +diff --git a/src/pingus/screens/option_menu.hpp b/src/pingus/screens/option_menu.hpp +index 60b1578d2..154ef0f69 100644 +--- a/src/pingus/screens/option_menu.hpp ++++ b/src/pingus/screens/option_menu.hpp +@@ -17,7 +17,7 @@ + #ifndef HEADER_PINGUS_PINGUS_SCREENS_OPTION_MENU_HPP + #define HEADER_PINGUS_PINGUS_SCREENS_OPTION_MENU_HPP + +-#include ++#include + #include + #include + +@@ -66,7 +66,7 @@ class OptionMenu : public GUIScreen + //Label* defaults_label; + //CheckBox* defaults_box; + +- typedef std::vector Connections; ++ typedef std::vector Connections; + Connections connections; + + tinygettext::Language m_language; diff --git a/gnu/packages/patches/poppler-CVE-2018-19149.patch b/gnu/packages/patches/poppler-CVE-2018-19149.patch deleted file mode 100644 index 3641f5f078..0000000000 --- a/gnu/packages/patches/poppler-CVE-2018-19149.patch +++ /dev/null @@ -1,80 +0,0 @@ -Fix CVE-2018-19149: - -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-19149 -https://gitlab.freedesktop.org/poppler/poppler/issues/664 - -Patch copied from upstream source repository: - -https://gitlab.freedesktop.org/poppler/poppler/commit/f162ecdea0dda5dbbdb45503c1d55d9afaa41d44 - -From f162ecdea0dda5dbbdb45503c1d55d9afaa41d44 Mon Sep 17 00:00:00 2001 -From: Marek Kasik -Date: Fri, 20 Apr 2018 11:38:13 +0200 -Subject: [PATCH] Fix crash on missing embedded file - -Check whether an embedded file is actually present in the PDF -and show warning in that case. - -https://bugs.freedesktop.org/show_bug.cgi?id=106137 -https://gitlab.freedesktop.org/poppler/poppler/issues/236 ---- - glib/poppler-attachment.cc | 26 +++++++++++++++++--------- - glib/poppler-document.cc | 3 ++- - 2 files changed, 19 insertions(+), 10 deletions(-) - -diff --git a/glib/poppler-attachment.cc b/glib/poppler-attachment.cc -index c6502e9d..11ba5bb5 100644 ---- a/glib/poppler-attachment.cc -+++ b/glib/poppler-attachment.cc -@@ -111,17 +111,25 @@ _poppler_attachment_new (FileSpec *emb_file) - attachment->description = _poppler_goo_string_to_utf8 (emb_file->getDescription ()); - - embFile = emb_file->getEmbeddedFile(); -- attachment->size = embFile->size (); -+ if (embFile != NULL && embFile->streamObject()->isStream()) -+ { -+ attachment->size = embFile->size (); - -- if (embFile->createDate ()) -- _poppler_convert_pdf_date_to_gtime (embFile->createDate (), (time_t *)&attachment->ctime); -- if (embFile->modDate ()) -- _poppler_convert_pdf_date_to_gtime (embFile->modDate (), (time_t *)&attachment->mtime); -+ if (embFile->createDate ()) -+ _poppler_convert_pdf_date_to_gtime (embFile->createDate (), (time_t *)&attachment->ctime); -+ if (embFile->modDate ()) -+ _poppler_convert_pdf_date_to_gtime (embFile->modDate (), (time_t *)&attachment->mtime); - -- if (embFile->checksum () && embFile->checksum ()->getLength () > 0) -- attachment->checksum = g_string_new_len (embFile->checksum ()->getCString (), -- embFile->checksum ()->getLength ()); -- priv->obj_stream = embFile->streamObject()->copy(); -+ if (embFile->checksum () && embFile->checksum ()->getLength () > 0) -+ attachment->checksum = g_string_new_len (embFile->checksum ()->getCString (), -+ embFile->checksum ()->getLength ()); -+ priv->obj_stream = embFile->streamObject()->copy(); -+ } -+ else -+ { -+ g_warning ("Missing stream object for embedded file"); -+ g_clear_object (&attachment); -+ } - - return attachment; - } -diff --git a/glib/poppler-document.cc b/glib/poppler-document.cc -index 83f6aea6..ea319344 100644 ---- a/glib/poppler-document.cc -+++ b/glib/poppler-document.cc -@@ -670,7 +670,8 @@ poppler_document_get_attachments (PopplerDocument *document) - attachment = _poppler_attachment_new (emb_file); - delete emb_file; - -- retval = g_list_prepend (retval, attachment); -+ if (attachment != NULL) -+ retval = g_list_prepend (retval, attachment); - } - return g_list_reverse (retval); - } --- -2.19.1 - diff --git a/gnu/packages/patches/postgresql-disable-resolve_symlinks.patch b/gnu/packages/patches/postgresql-disable-resolve_symlinks.patch new file mode 100644 index 0000000000..97ef6928fe --- /dev/null +++ b/gnu/packages/patches/postgresql-disable-resolve_symlinks.patch @@ -0,0 +1,25 @@ +From 223c82d1d6ed1f29f26307249827ff679e09c780 Mon Sep 17 00:00:00 2001 +From: Julien Lepiller +Date: Sat, 28 Jul 2018 12:22:12 +0200 +Subject: [PATCH] disable resolve_symlink + +--- + src/common/exec.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/src/common/exec.c b/src/common/exec.c +index 878fc29..6b3e283 100644 +--- a/src/common/exec.c ++++ b/src/common/exec.c +@@ -218,6 +218,8 @@ find_my_exec(const char *argv0, char *retpath) + static int + resolve_symlinks(char *path) + { ++ // On GuixSD we *want* stuff relative to symlinks. ++ return 0; + #ifdef HAVE_READLINK + struct stat buf; + char orig_wd[MAXPGPATH], +-- +2.18.0 + diff --git a/gnu/packages/patches/pyqt-public-sip.patch b/gnu/packages/patches/pyqt-public-sip.patch index 5ec45f032b..44cdcb6371 100644 --- a/gnu/packages/patches/pyqt-public-sip.patch +++ b/gnu/packages/patches/pyqt-public-sip.patch @@ -1,4 +1,4 @@ -https://sources.debian.org/data/main/p/pyqt5/5.11.2+dfsg-1/debian/patches/public_sip.diff +https://sources.debian.org/data/main/p/pyqt5/5.11.3+dfsg-1/debian/patches/public_sip.diff From: Dmitry Shachnev Date: Tue, 3 Jul 2018 09:46:42 +0300 @@ -6,30 +6,16 @@ Subject: Use the public version of sip module Per https://www.debian.org/doc/debian-policy/#convenience-copies-of-code. --- - configure.py | 19 +------------------ - 1 file changed, 1 insertion(+), 18 deletions(-) + configure.py | 2 +- + designer/pluginloader.cpp | 2 +- + qmlscene/pluginloader.cpp | 4 ++-- + 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/configure.py b/configure.py -index 7c48136..ca23f93 100644 +index 32d03a0..3c43a14 100644 --- a/configure.py +++ b/configure.py -@@ -642,15 +642,6 @@ class TargetConfiguration: - "Unable to import enum. Please install the enum34 " - "package from PyPI.") - -- # Check there is a private copy of the sip module already installed. -- try: -- from PyQt5 import sip -- except ImportError: -- error( -- "Unable to import PyQt5.sip. Make sure you have " -- "configured SIP to create a private copy of the sip " -- "module.") -- - # Get the details of the Python interpreter library. - py_major = self.py_version >> 16 - py_minor = (self.py_version >> 8) & 0x0ff -@@ -2438,7 +2429,7 @@ def get_sip_flags(target_config): +@@ -2440,7 +2440,7 @@ def get_sip_flags(target_config): the target configuration. """ @@ -38,18 +24,32 @@ index 7c48136..ca23f93 100644 # If we don't check for signed interpreters, we exclude the 'VendorID' # feature -@@ -2914,14 +2905,6 @@ def check_sip(target_config): - target_config is the target configuration. - """ +diff --git a/designer/pluginloader.cpp b/designer/pluginloader.cpp +index f41d391..3ca8b11 100644 +--- a/designer/pluginloader.cpp ++++ b/designer/pluginloader.cpp +@@ -167,7 +167,7 @@ bool PyCustomWidgets::importPlugins(const QString &dir, const QStringList &plugi + // Make sure we have sip.unwrapinstance. + if (!sip_unwrapinstance) + { +- sip_unwrapinstance = getModuleAttr("PyQt5.sip", "unwrapinstance"); ++ sip_unwrapinstance = getModuleAttr("sip", "unwrapinstance"); -- # Check there is a private copy of the sip module already installed. -- try: -- from PyQt5 import sip -- except ImportError: -- error( -- "Unable to import PyQt5.sip. Make sure you have configured " -- "SIP to create a private copy of the sip module.") -- - if target_config.sip is None: - error( - "Make sure you have a working sip on your PATH or use the " + if (!sip_unwrapinstance) + return true; +diff --git a/qmlscene/pluginloader.cpp b/qmlscene/pluginloader.cpp +index e14b946..140e80c 100644 +--- a/qmlscene/pluginloader.cpp ++++ b/qmlscene/pluginloader.cpp +@@ -412,9 +412,9 @@ PyObject *PyQt5QmlPlugin::getModuleAttr(const char *module, const char *attr) + void PyQt5QmlPlugin::getSipAPI() + { + #if defined(SIP_USE_PYCAPSULE) +- sip = (const sipAPIDef *)PyCapsule_Import("PyQt5.sip._C_API", 0); ++ sip = (const sipAPIDef *)PyCapsule_Import("sip._C_API", 0); + #else +- PyObject *c_api = getModuleAttr("PyQt5.sip", "_C_API"); ++ PyObject *c_api = getModuleAttr("sip", "_C_API"); + + if (c_api) + { diff --git a/gnu/packages/patches/qt-5-renameat2.patch b/gnu/packages/patches/qt-5-renameat2.patch deleted file mode 100644 index 036070c7ff..0000000000 --- a/gnu/packages/patches/qt-5-renameat2.patch +++ /dev/null @@ -1,35 +0,0 @@ -Avoid conflicting declaration of 'renameat2' on glibc 2.28 -(see .) - -Patch from -by Andreas Müller . - ---- - src/corelib/io/qfilesystemengine_unix.cpp | 11 ++++++++++++ - 1 file changed, 11 insertions(+) - -diff --git a/src/corelib/io/qfilesystemengine_unix.cpp b/src/corelib/io/qfilesystemengine_unix.cpp -index be6ce48d0cb..1bf1bebc7f1 100644 ---- a/qtbase/src/corelib/io/qfilesystemengine_unix.cpp -+++ b/qtbase/src/corelib/io/qfilesystemengine_unix.cpp -@@ -98,6 +98,17 @@ extern "C" NSString *NSTemporaryDirectory(); - # define FICLONE _IOW(0x94, 9, int) - #endif - -+// renameat2/statx features for non bootstrapped build -+#ifndef QT_BOOTSTRAPPED -+#ifdef __GLIBC_PREREQ -+# define QT_FEATURE_renameat2 (__GLIBC_PREREQ(2, 28) ? 1 : -1) -+# define QT_FEATURE_statx (__GLIBC_PREREQ(2, 28) ? 1 : -1) -+#else -+# define QT_FEATURE_renameat2 -1 -+# define QT_FEATURE_statx -1 -+#endif -+#endif -+ - # if defined(Q_OS_ANDROID) - // renameat2() and statx() are disabled on Android because quite a few systems - // come with sandboxes that kill applications that make system calls outside a --- -2.14.4 - diff --git a/gnu/packages/patches/sssd-curl-compat.patch b/gnu/packages/patches/sssd-curl-compat.patch new file mode 100644 index 0000000000..ecab737153 --- /dev/null +++ b/gnu/packages/patches/sssd-curl-compat.patch @@ -0,0 +1,18 @@ +Fix build with curl >= 7.62. Patch taken from upstream: + +https://pagure.io/SSSD/sssd/c/4d3841ca379afc01184453ba45ab3e75ffec60da?branch=sssd-1-16 + +diff --git a/src/util/tev_curl.c b/src/util/tev_curl.c +index 6a7a580..d70a429 100644 +--- a/src/util/tev_curl.c ++++ b/src/util/tev_curl.c +@@ -97,7 +97,9 @@ static errno_t curl_code2errno(CURLcode crv) + return ETIMEDOUT; + case CURLE_SSL_ISSUER_ERROR: + case CURLE_SSL_CACERT_BADFILE: ++#if LIBCURL_VERSION_NUM < 0x073e00 + case CURLE_SSL_CACERT: ++#endif + case CURLE_SSL_CERTPROBLEM: + return ERR_INVALID_CERT; + diff --git a/gnu/packages/patches/superlu-dist-fix-mpi-deprecations.patch b/gnu/packages/patches/superlu-dist-fix-mpi-deprecations.patch new file mode 100644 index 0000000000..25f0aaf2f3 --- /dev/null +++ b/gnu/packages/patches/superlu-dist-fix-mpi-deprecations.patch @@ -0,0 +1,57 @@ +From c9cbcf8730221e366c7495073f8f8d819ee8ce89 Mon Sep 17 00:00:00 2001 +From: Eric Bavier +Date: Wed, 6 Feb 2019 10:06:59 -0600 +Subject: [PATCH] Replace deprecated MPI_Attr_get. + +Fixes build with OpenMPI version 4.0. + +* SRC/pdgstrf.c, SRC/pdgstrf.c, SRC/superlu_grid.c: 'MPI_Attr_get' -> + 'MPI_Comm_get_attr'. +--- + SRC/pdgstrf.c | 2 +- + SRC/pzgstrf.c | 2 +- + SRC/superlu_grid.c | 2 +- + 3 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/SRC/pdgstrf.c b/SRC/pdgstrf.c +index 736ffa2..f92a1ba 100644 +--- a/SRC/pdgstrf.c ++++ b/SRC/pdgstrf.c +@@ -426,7 +426,7 @@ pdgstrf(superlu_dist_options_t * options, int m, int n, double anorm, + s_eps = smach_dist("Epsilon"); + thresh = s_eps * anorm; + +- MPI_Attr_get (MPI_COMM_WORLD, MPI_TAG_UB, &attr_val, &flag); ++ MPI_Comm_get_attr (MPI_COMM_WORLD, MPI_TAG_UB, &attr_val, &flag); + if (!flag) { + fprintf (stderr, "Could not get TAG_UB\n"); + return (-1); +diff --git a/SRC/pzgstrf.c b/SRC/pzgstrf.c +index 8896548..8800057 100644 +--- a/SRC/pzgstrf.c ++++ b/SRC/pzgstrf.c +@@ -426,7 +426,7 @@ pzgstrf(superlu_dist_options_t * options, int m, int n, double anorm, + s_eps = smach_dist("Epsilon"); + thresh = s_eps * anorm; + +- MPI_Attr_get (MPI_COMM_WORLD, MPI_TAG_UB, &attr_val, &flag); ++ MPI_Comm_get_attr (MPI_COMM_WORLD, MPI_TAG_UB, &attr_val, &flag); + if (!flag) { + fprintf (stderr, "Could not get TAG_UB\n"); + return (-1); +diff --git a/SRC/superlu_grid.c b/SRC/superlu_grid.c +index 1213d27..0c0fb90 100644 +--- a/SRC/superlu_grid.c ++++ b/SRC/superlu_grid.c +@@ -150,7 +150,7 @@ void superlu_gridmap( + { + int tag_ub; + if ( !grid->iam ) { +- MPI_Attr_get(Bcomm, MPI_TAG_UB, &tag_ub, &info); ++ MPI_Comm_get_attr(Bcomm, MPI_TAG_UB, &tag_ub, &info); + printf("MPI_TAG_UB %d\n", tag_ub); + /* returns 4295677672 + In reality it is restricted to no greater than 16384. */ +-- +2.20.1 + diff --git a/gnu/packages/patches/texlive-bin-luatex-poppler-compat.patch b/gnu/packages/patches/texlive-bin-luatex-poppler-compat.patch new file mode 100644 index 0000000000..d8b9bf172a --- /dev/null +++ b/gnu/packages/patches/texlive-bin-luatex-poppler-compat.patch @@ -0,0 +1,318 @@ +Fix LuaTeX compatibility with Poppler 0.72. + +Upstream LuaTeX have moved from Poppler to "pplib" and thus upstream +fixes are unavailable. This is based on Arch Linux patches, with minor +changes for Poppler 0.72: +https://git.archlinux.org/svntogit/packages.git/tree/trunk?h=packages/texlive-bin&id=f1b424435c8fa31d9296c7a6dc17f939a8332780 + +diff --git a/texk/web2c/luatexdir/image/pdftoepdf.w b/texk/web2c/luatexdir/image/pdftoepdf.w +--- a/texk/web2c/luatexdir/image/pdftoepdf.w ++++ b/texk/web2c/luatexdir/image/pdftoepdf.w +@@ -35,7 +35,7 @@ + + extern void md5(Guchar *msg, int msgLen, Guchar *digest); + +-static GBool isInit = gFalse; ++static bool isInit = false; + + /* Maintain AVL tree of all PDF files for embedding */ + +@@ -363,10 +363,10 @@ void copyReal(PDF pdf, double d) + + static void copyString(PDF pdf, GooString * string) + { +- char *p; ++ const char *p; + unsigned char c; + size_t i, l; +- p = string->getCString(); ++ p = string->c_str(); + l = (size_t) string->getLength(); + if (pdf->cave) + pdf_out(pdf, ' '); +@@ -393,7 +393,7 @@ static void copyString(PDF pdf, GooString * string) + pdf->cave = true; + } + +-static void copyName(PDF pdf, char *s) ++static void copyName(PDF pdf, const char *s) + { + pdf_out(pdf, '/'); + for (; *s != 0; s++) { +@@ -468,14 +468,14 @@ static void copyObject(PDF pdf, PdfDocument * pdf_doc, Object * obj) + break; + /* + case objNum: +- GBool isNum() { return type == objInt || type == objReal; } ++ bool isNum() { return type == objInt || type == objReal; } + break; + */ + case objString: + copyString(pdf, (GooString *)obj->getString()); + break; + case objName: +- copyName(pdf, (char *)obj->getName()); ++ copyName(pdf, obj->getName()); + break; + case objNull: + pdf_add_null(pdf); +@@ -531,22 +531,22 @@ static PDFRectangle *get_pagebox(Page * page, int pagebox_spec) + { + switch (pagebox_spec) { + case PDF_BOX_SPEC_MEDIA: +- return page->getMediaBox(); ++ return (PDFRectangle *) page->getMediaBox(); + break; + case PDF_BOX_SPEC_CROP: +- return page->getCropBox(); ++ return (PDFRectangle *) page->getCropBox(); + break; + case PDF_BOX_SPEC_BLEED: +- return page->getBleedBox(); ++ return (PDFRectangle *) page->getBleedBox(); + break; + case PDF_BOX_SPEC_TRIM: +- return page->getTrimBox(); ++ return (PDFRectangle *) page->getTrimBox(); + break; + case PDF_BOX_SPEC_ART: +- return page->getArtBox(); ++ return (PDFRectangle *) page->getArtBox(); + break; + default: +- return page->getMediaBox(); ++ return (PDFRectangle *) page->getMediaBox(); + break; + } + } +@@ -587,11 +587,11 @@ void read_pdf_info(image_dict * idict) + PDFRectangle *pagebox; + int pdf_major_version_found, pdf_minor_version_found; + float xsize, ysize, xorig, yorig; +- if (isInit == gFalse) { ++ if (isInit == false) { + if (!(globalParams)) + globalParams = new GlobalParams(); +- globalParams->setErrQuiet(gFalse); +- isInit = gTrue; ++ globalParams->setErrQuiet(false); ++ isInit = true; + } + if (img_type(idict) == IMG_TYPE_PDF) + pdf_doc = refPdfDocument(img_filepath(idict), FE_FAIL); +@@ -966,7 +966,7 @@ void epdf_free() + if (PdfDocumentTree != NULL) + avl_destroy(PdfDocumentTree, destroyPdfDocument); + PdfDocumentTree = NULL; +- if (isInit == gTrue) ++ if (isInit == true) + delete globalParams; +- isInit = gFalse; ++ isInit = false; + } +diff --git a/texk/web2c/luatexdir/lua/lepdflib.cc b/texk/web2c/luatexdir/lua/lepdflib.cc +--- a/texk/web2c/luatexdir/lua/lepdflib.cc ++++ b/texk/web2c/luatexdir/lua/lepdflib.cc +@@ -240,7 +240,7 @@ static int l_new_Attribute(lua_State * L) + if (uobj->pd != NULL && uobj->pd->pc != uobj->pc) + pdfdoc_changed_error(L); + uout = new_Attribute_userdata(L); +- uout->d = new Attribute(n, nlen, (Object *)uobj->d); ++ uout->d = new Attribute((GooString)n, (Object *)uobj->d); + uout->atype = ALLOC_LEPDF; + uout->pc = uobj->pc; + uout->pd = uobj->pd; +@@ -439,7 +439,7 @@ static int l_new_Object(lua_State * L) + break; + case 1: + if (lua_isboolean (L,1)) { +- uout->d = new Object(lua_toboolean(L, 1)? gTrue : gFalse); ++ uout->d = new Object(lua_toboolean(L, 1)? true : false); + uout->atype = ALLOC_LEPDF; + uout->pc = 0; + uout->pd = NULL; +@@ -596,7 +596,7 @@ static int m_##in##_##function(lua_State * L) \ + uin = (udstruct *) luaL_checkudata(L, 1, M_##in); \ + if (uin->pd != NULL && uin->pd->pc != uin->pc) \ + pdfdoc_changed_error(L); \ +- o = ((in *) uin->d)->function(); \ ++ o = (out *) ((in *) uin->d)->function(); \ + if (o != NULL) { \ + uout = new_##out##_userdata(L); \ + uout->d = o; \ +@@ -676,7 +676,7 @@ static int m_##in##_##function(lua_State * L) \ + pdfdoc_changed_error(L); \ + gs = (GooString *)((in *) uin->d)->function(); \ + if (gs != NULL) \ +- lua_pushlstring(L, gs->getCString(), gs->getLength()); \ ++ lua_pushlstring(L, gs->c_str(), gs->getLength()); \ + else \ + lua_pushnil(L); \ + return 1; \ +@@ -911,7 +911,7 @@ static int m_Array_getString(lua_State * L) + if (i > 0 && i <= len) { + gs = new GooString(); + if (((Array *) uin->d)->getString(i - 1, gs)) +- lua_pushlstring(L, gs->getCString(), gs->getLength()); ++ lua_pushlstring(L, gs->c_str(), gs->getLength()); + else + lua_pushnil(L); + delete gs; +@@ -1063,7 +1063,7 @@ static int m_Catalog_getJS(lua_State * L) + if (i > 0 && i <= len) { + gs = ((Catalog *) uin->d)->getJS(i - 1); + if (gs != NULL) +- lua_pushlstring(L, gs->getCString(), gs->getLength()); ++ lua_pushlstring(L, gs->c_str(), gs->getLength()); + else + lua_pushnil(L); + delete gs; +@@ -1125,12 +1125,12 @@ m_poppler_get_INT(Dict, getLength); + + static int m_Dict_add(lua_State * L) + { +- char *s; ++ const char *s; + udstruct *uin, *uobj; + uin = (udstruct *) luaL_checkudata(L, 1, M_Dict); + if (uin->pd != NULL && uin->pd->pc != uin->pc) + pdfdoc_changed_error(L); +- s = copyString(luaL_checkstring(L, 2)); ++ s = luaL_checkstring(L, 2); + uobj = (udstruct *) luaL_checkudata(L, 3, M_Object); + ((Dict *) uin->d)->add(s, std::move(*((Object *) uobj->d))); + return 0; +@@ -1378,7 +1378,7 @@ static int m_GooString__tostring(lua_State * L) + uin = (udstruct *) luaL_checkudata(L, 1, M_GooString); + if (uin->pd != NULL && uin->pd->pc != uin->pc) + pdfdoc_changed_error(L); +- lua_pushlstring(L, ((GooString *) uin->d)->getCString(), ++ lua_pushlstring(L, ((GooString *) uin->d)->c_str(), + ((GooString *) uin->d)->getLength()); + return 1; + } +@@ -1527,9 +1527,9 @@ static int m_Object_initBool(lua_State * L) + pdfdoc_changed_error(L); + luaL_checktype(L, 2, LUA_TBOOLEAN); + if (lua_toboolean(L, 2) != 0) +- *((Object *) uin->d) = Object(gTrue); ++ *((Object *) uin->d) = Object(true); + else +- *((Object *) uin->d) = Object(gFalse); ++ *((Object *) uin->d) = Object(false); + return 0; + } + +@@ -1814,7 +1814,7 @@ static int m_Object_getString(lua_State * L) + pdfdoc_changed_error(L); + if (((Object *) uin->d)->isString()) { + gs = (GooString *)((Object *) uin->d)->getString(); +- lua_pushlstring(L, gs->getCString(), gs->getLength()); ++ lua_pushlstring(L, gs->c_str(), gs->getLength()); + } else + lua_pushnil(L); + return 1; +@@ -2051,7 +2051,7 @@ static int m_Object_dictAdd(lua_State * L) + pdfdoc_changed_error(L); + if (!((Object *) uin->d)->isDict()) + luaL_error(L, "Object is not a Dict"); +- ((Object *) uin->d)->dictAdd(copyString(s), std::move(*((Object *) uobj->d))); ++ ((Object *) uin->d)->dictAdd(s, std::move(*((Object *) uobj->d))); + return 0; + } + +@@ -2470,9 +2470,9 @@ static int m_PDFDoc_getFileName(lua_State * L) + uin = (udstruct *) luaL_checkudata(L, 1, M_PDFDoc); + if (uin->pd != NULL && uin->pd->pc != uin->pc) + pdfdoc_changed_error(L); +- gs = ((PdfDocument *) uin->d)->doc->getFileName(); ++ gs = (GooString *) ((PdfDocument *) uin->d)->doc->getFileName(); + if (gs != NULL) +- lua_pushlstring(L, gs->getCString(), gs->getLength()); ++ lua_pushlstring(L, gs->c_str(), gs->getLength()); + else + lua_pushnil(L); + return 1; +@@ -2559,9 +2559,9 @@ static int m_PDFDoc_readMetadata(lua_State * L) + if (uin->pd != NULL && uin->pd->pc != uin->pc) + pdfdoc_changed_error(L); + if (((PdfDocument *) uin->d)->doc->getCatalog()->isOk()) { +- gs = ((PdfDocument *) uin->d)->doc->readMetadata(); ++ gs = (GooString *) ((PdfDocument *) uin->d)->doc->readMetadata(); + if (gs != NULL) +- lua_pushlstring(L, gs->getCString(), gs->getLength()); ++ lua_pushlstring(L, gs->c_str(), gs->getLength()); + else + lua_pushnil(L); + } else +@@ -2577,7 +2577,7 @@ static int m_PDFDoc_getStructTreeRoot(lua_State * L) + if (uin->pd != NULL && uin->pd->pc != uin->pc) + pdfdoc_changed_error(L); + if (((PdfDocument *) uin->d)->doc->getCatalog()->isOk()) { +- obj = ((PdfDocument *) uin->d)->doc->getStructTreeRoot(); ++ obj = (StructTreeRoot *) ((PdfDocument *) uin->d)->doc->getStructTreeRoot(); + uout = new_StructTreeRoot_userdata(L); + uout->d = obj; + uout->pc = uin->pc; +@@ -3038,12 +3038,12 @@ m_poppler_get_BOOL(Attribute, isHidden); + + static int m_Attribute_setHidden(lua_State * L) + { +- GBool i; ++ bool i; + udstruct *uin; + uin = (udstruct *) luaL_checkudata(L, 1, M_Attribute); + if (uin->pd != NULL && uin->pd->pc != uin->pc) + pdfdoc_changed_error(L); +- i = (GBool) lua_toboolean(L, 2); ++ i = (bool) lua_toboolean(L, 2); + ((Attribute *) uin->d)->setHidden(i); + return 0; + } +@@ -3180,7 +3180,7 @@ static int m_StructElement_getParentRef(lua_State * L) + // Ref is false if the C++ functione return false + static int m_StructElement_getPageRef(lua_State * L) + { +- GBool b; ++ bool b; + Ref *r; + udstruct *uin, *uout; + uin = (udstruct *) luaL_checkudata(L, 1, M_StructElement); +@@ -3226,16 +3226,16 @@ static int m_StructElement_setRevision(lua_State * L) + + static int m_StructElement_getText(lua_State * L) + { +- GBool i; ++ bool i; + GooString *gs; + udstruct *uin; + uin = (udstruct *) luaL_checkudata(L, 1, M_StructElement); + if (uin->pd != NULL && uin->pd->pc != uin->pc) + pdfdoc_changed_error(L); +- i = (GBool) lua_toboolean(L, 2); ++ i = (bool) lua_toboolean(L, 2); + gs = ((StructElement *) uin->d)->getText(i); + if (gs != NULL) +- lua_pushlstring(L, gs->getCString(), gs->getLength()); ++ lua_pushlstring(L, gs->c_str(), gs->getLength()); + else + lua_pushnil(L); + return 1; +@@ -3321,7 +3321,7 @@ static int m_StructElement_findAttribute(lua_State * L) + { + Attribute::Type t; + Attribute::Owner o; +- GBool g; ++ bool g; + udstruct *uin, *uout; + const Attribute *a; + uin = (udstruct *) luaL_checkudata(L, 1, M_StructElement); +@@ -3329,7 +3329,7 @@ static int m_StructElement_findAttribute(lua_State * L) + pdfdoc_changed_error(L); + t = (Attribute::Type) luaL_checkint(L,1); + o = (Attribute::Owner) luaL_checkint(L,2); +- g = (GBool) lua_toboolean(L, 3); ++ g = (bool) lua_toboolean(L, 3); + a = ((StructElement *) uin->d)->findAttribute(t,g,o); + + if (a!=NULL){ diff --git a/gnu/packages/patches/texlive-bin-pdftex-poppler-compat.patch b/gnu/packages/patches/texlive-bin-pdftex-poppler-compat.patch new file mode 100644 index 0000000000..eba4733f32 --- /dev/null +++ b/gnu/packages/patches/texlive-bin-pdftex-poppler-compat.patch @@ -0,0 +1,188 @@ +Fix compatibility with Poppler 0.72. + +These files are taken from the upstream "poppler0.72.0.cc" variants and +diffed against the "newpoppler" files from the 20180414 distribution. + +See revision 49336: +https://tug.org/svn/texlive/trunk/Build/source/texk/web2c/pdftexdir/ + +--- a/texk/web2c/pdftexdir/pdftoepdf-newpoppler.cc 1970-01-01 01:00:00.000000000 +0100 ++++ b/texk/web2c/pdftexdir/pdftoepdf-newpoppler.cc 2018-12-09 21:14:58.479732695 +0100 +@@ -22,7 +22,7 @@ + https://git.archlinux.org/svntogit/packages.git/plain/texlive-bin/trunk + by Arch Linux. A little modifications are made to avoid a crash for + some kind of pdf images, such as figure_missing.pdf in gnuplot. +-The poppler should be 0.59.0 or newer versions. ++The poppler should be 0.72.0 or newer versions. + POPPLER_VERSION should be defined. + */ + +@@ -120,7 +120,7 @@ + + static InObj *inObjList; + static UsedEncoding *encodingList; +-static GBool isInit = gFalse; ++static bool isInit = false; + + // -------------------------------------------------------------------- + // Maintain list of open embedded PDF files +@@ -317,7 +317,7 @@ + pdf_puts("<<\n"); + assert(r->type == objFont); // FontDescriptor is in fd_tree + for (i = 0, l = obj->dictGetLength(); i < l; ++i) { +- key = obj->dictGetKey(i); ++ key = (char *)obj->dictGetKey(i); + if (strncmp("FontDescriptor", key, strlen("FontDescriptor")) == 0 + || strncmp("BaseFont", key, strlen("BaseFont")) == 0 + || strncmp("Encoding", key, strlen("Encoding")) == 0) +@@ -427,7 +427,7 @@ + charset = fontdesc.dictLookup("CharSet"); + if (!charset.isNull() && + charset.isString() && is_subsetable(fontmap)) +- epdf_mark_glyphs(fd, (char *)charset.getString()->getCString()); ++ epdf_mark_glyphs(fd, (char *)charset.getString()->c_str()); + else + embed_whole_font(fd); + addFontDesc(fontdescRef.getRef(), fd); +@@ -454,7 +454,7 @@ + for (i = 0, l = obj->dictGetLength(); i < l; ++i) { + fontRef = obj->dictGetValNF(i); + if (fontRef.isRef()) +- copyFont(obj->dictGetKey(i), &fontRef); ++ copyFont((char *)obj->dictGetKey(i), &fontRef); + else if (fontRef.isDict()) { // some programs generate pdf with embedded font object + copyName((char *)obj->dictGetKey(i)); + pdf_puts(" "); +@@ -566,7 +566,7 @@ + pdf_printf("%s", convertNumToPDF(obj->getNum())); + } else if (obj->isString()) { + s = (GooString *)obj->getString(); +- p = s->getCString(); ++ p = (char *)s->c_str(); + l = s->getLength(); + if (strlen(p) == (unsigned int) l) { + pdf_puts("("); +@@ -664,7 +664,7 @@ + ("PDF inclusion: CID fonts are not supported" + " (try to disable font replacement to fix this)"); + } +- if ((s = ((Gfx8BitFont *) r->font)->getCharName(i)) != 0) ++ if ((s = (char *)((Gfx8BitFont *) r->font)->getCharName(i)) != 0) + glyphNames[i] = s; + else + glyphNames[i] = notdef; +@@ -683,7 +683,7 @@ + } + + // get the pagebox according to the pagebox_spec +-static PDFRectangle *get_pagebox(Page * page, int pagebox_spec) ++static const PDFRectangle *get_pagebox(Page * page, int pagebox_spec) + { + if (pagebox_spec == pdfboxspecmedia) + return page->getMediaBox(); +@@ -715,7 +715,7 @@ + { + PdfDocument *pdf_doc; + Page *page; +- PDFRectangle *pagebox; ++ const PDFRectangle *pagebox; + #ifdef POPPLER_VERSION + int pdf_major_version_found, pdf_minor_version_found; + #else +@@ -724,8 +724,8 @@ + // initialize + if (!isInit) { + globalParams = new GlobalParams(); +- globalParams->setErrQuiet(gFalse); +- isInit = gTrue; ++ globalParams->setErrQuiet(false); ++ isInit = true; + } + // open PDF file + pdf_doc = find_add_document(image_name); +@@ -849,7 +849,7 @@ + pageObj = xref->fetch(pageRef->num, pageRef->gen); + pageDict = pageObj.getDict(); + rotate = page->getRotate(); +- PDFRectangle *pagebox; ++ const PDFRectangle *pagebox; + // write the Page header + pdf_puts("/Type /XObject\n"); + pdf_puts("/Subtype /Form\n"); +@@ -977,7 +977,7 @@ + } + l = dic1.getLength(); + for (i = 0; i < l; i++) { +- groupDict.dictAdd(copyString(dic1.getKey(i)), ++ groupDict.dictAdd((const char *)copyString(dic1.getKey(i)), + dic1.getValNF(i)); + } + // end modification +@@ -1001,14 +1001,14 @@ + pdf_puts("/Resources <<\n"); + for (i = 0, l = obj1->dictGetLength(); i < l; ++i) { + obj2 = obj1->dictGetVal(i); +- key = obj1->dictGetKey(i); ++ key = (char *)obj1->dictGetKey(i); + if (strcmp("Font", key) == 0) + copyFontResources(&obj2); + else if (strcmp("ProcSet", key) == 0) + copyProcSet(&obj2); + else +- copyOtherResources(&obj2, key); ++ copyOtherResources(&obj2, (char *)key); + } + pdf_puts(">>\n"); + } + +--- a/texk/web2c/pdftexdir/pdftosrc-newpoppler.cc 1970-01-01 01:00:00.000000000 +0100 ++++ b/texk/web2c/pdftexdir/pdftosrc-newpoppler.cc 2018-12-09 21:14:58.479732695 +0100 +@@ -20,7 +20,7 @@ + /* + This is based on the patch texlive-poppler-0.59.patch <2017-09-19> at + https://git.archlinux.org/svntogit/packages.git/plain/texlive-bin/trunk +-by Arch Linux. The poppler should be 0.59.0 or newer versions. ++by Arch Linux. The poppler should be 0.72.0 or newer versions. + POPPLER_VERSION should be defined. + */ + +@@ -109,7 +109,7 @@ + fprintf(stderr, "No SourceName found\n"); + exit(1); + } +- outname = (char *)srcName.getString()->getCString(); ++ outname = (char *)srcName.getString()->c_str(); + // We cannot free srcName, as objname shares its string. + // srcName.free(); + } else if (objnum > 0) { +@@ -118,7 +118,7 @@ + fprintf(stderr, "Not a Stream object\n"); + exit(1); + } +- sprintf(buf, "%s", fileName->getCString()); ++ sprintf(buf, "%s", fileName->c_str()); + if ((p = strrchr(buf, '.')) == 0) + p = strchr(buf, 0); + if (objgen == 0) +@@ -128,7 +128,7 @@ + outname = buf; + } else { // objnum < 0 means we are extracting the XRef table + extract_xref_table = true; +- sprintf(buf, "%s", fileName->getCString()); ++ sprintf(buf, "%s", fileName->c_str()); + if ((p = strrchr(buf, '.')) == 0) + p = strchr(buf, 0); + sprintf(p, ".xref"); +@@ -173,9 +173,9 @@ + + // parse the header: object numbers and offsets + objStr.streamReset(); +- str = new EmbedStream(objStr.getStream(), Object(objNull), gTrue, first); ++ str = new EmbedStream(objStr.getStream(), Object(objNull), true, first); + lexer = new Lexer(xref, str); +- parser = new Parser(xref, lexer, gFalse); ++ parser = new Parser(xref, lexer, false); + for (n = 0; n < nObjects; ++n) { + obj1 = parser->getObj(); + obj2 = parser->getObj(); + diff --git a/gnu/packages/patches/texlive-bin-xetex-poppler-compat.patch b/gnu/packages/patches/texlive-bin-xetex-poppler-compat.patch new file mode 100644 index 0000000000..cac716cc59 --- /dev/null +++ b/gnu/packages/patches/texlive-bin-xetex-poppler-compat.patch @@ -0,0 +1,31 @@ +Fix compatibility with Poppler 0.72. + +Patch taken from upstream: +https://tug.org/svn/texlive/trunk/Build/source/texk/web2c/xetexdir/pdfimage.cpp?r1=44964&r2=48969&diff_format=u + +--- a/texk/web2c/xetexdir/pdfimage.cpp 2017/08/06 07:12:02 44964 ++++ b/texk/web2c/xetexdir/pdfimage.cpp 2018/10/22 04:01:42 48969 +@@ -82,19 +82,19 @@ + switch (pdf_box) { + default: + case pdfbox_crop: +- r = page->getCropBox(); ++ r = (PDFRectangle *)page->getCropBox(); + break; + case pdfbox_media: +- r = page->getMediaBox(); ++ r = (PDFRectangle *)page->getMediaBox(); + break; + case pdfbox_bleed: +- r = page->getBleedBox(); ++ r = (PDFRectangle *)page->getBleedBox(); + break; + case pdfbox_trim: +- r = page->getTrimBox(); ++ r = (PDFRectangle *)page->getTrimBox(); + break; + case pdfbox_art: +- r = page->getArtBox(); ++ r = (PDFRectangle *)page->getArtBox(); + break; + } diff --git a/gnu/packages/patches/wesnoth-newer-boost.patch b/gnu/packages/patches/wesnoth-newer-boost.patch new file mode 100644 index 0000000000..d48a48e801 --- /dev/null +++ b/gnu/packages/patches/wesnoth-newer-boost.patch @@ -0,0 +1,46 @@ +https://github.com/wesnoth/wesnoth/commit/f6a32792d023d182d350b5a2ed9e469ad67484c8.patch +This should be able to be removed with wesnoth@1.14.6 + +From f6a32792d023d182d350b5a2ed9e469ad67484c8 Mon Sep 17 00:00:00 2001 +From: Wedge009 +Date: Thu, 27 Dec 2018 08:15:10 +1100 +Subject: [PATCH] Use explicit casts to accommodate changes to boost's tribool + in 1.69. + +(fixes #3646) +--- + src/units/frame.cpp | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/src/units/frame.cpp b/src/units/frame.cpp +index 3215fa4fa79d..6370ad69566b 100644 +--- a/src/units/frame.cpp ++++ b/src/units/frame.cpp +@@ -460,15 +460,15 @@ std::vector frame_parsed_parameters::debug_strings() const + } + + if(!boost::indeterminate(auto_vflip_)) { +- v.emplace_back("auto_vflip=" + utils::bool_string(auto_vflip_)); ++ v.emplace_back("auto_vflip=" + utils::bool_string(static_cast(auto_vflip_))); + } + + if(!boost::indeterminate(auto_hflip_)) { +- v.emplace_back("auto_hflip=" + utils::bool_string(auto_hflip_)); ++ v.emplace_back("auto_hflip=" + utils::bool_string(static_cast(auto_hflip_))); + } + + if(!boost::indeterminate(primary_frame_)) { +- v.emplace_back("primary_frame=" + utils::bool_string(primary_frame_)); ++ v.emplace_back("primary_frame=" + utils::bool_string(static_cast(primary_frame_))); + } + + if(!drawing_layer_.get_original().empty()) { +@@ -768,7 +768,7 @@ const frame_parameters unit_frame::merge_parameters(int current_time, const fram + } + + // Convert the tribool to bool +- const bool primary = result.primary_frame == true || boost::logic::indeterminate(result.primary_frame); ++ const bool primary = static_cast(result.primary_frame) || boost::logic::indeterminate(result.primary_frame); + + /** The engine provides a default image to use for the unit when none is available */ + result.image = current_val.image.is_void() || current_val.image.get_filename().empty() diff --git a/gnu/packages/patches/zathura-plugindir-environment-variable.patch b/gnu/packages/patches/zathura-plugindir-environment-variable.patch deleted file mode 100644 index a8ffff965a..0000000000 --- a/gnu/packages/patches/zathura-plugindir-environment-variable.patch +++ /dev/null @@ -1,32 +0,0 @@ -From ae8e4cc9ab57ff25d2ba6c4b369e8531ce43a6d2 Mon Sep 17 00:00:00 2001 -From: Paul van der Walt -Date: Mon, 2 Mar 2015 22:15:39 +0100 -Subject: [PATCH] Search path environment variable for Zathura. - -Adds a search path environment variable for zathura plugins (for reading -different file formats) called ZATHURA_PLUGIN_PATH. Command line option --p still takes precedence. - -Patch by Paul van der Walt -Adjusted for Zathura 0.3.9 by Tobias Geerinckx-Rice ---- - zathura/zathura.c | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/zathura/zathura.c b/zathura/zathura.c ---- a/zathura/zathura.c -+++ b/zathura/zathura.c -@@ -597,6 +597,13 @@ zathura_set_plugin_dir(zathura_t* zathura, const char* dir) - g_return_if_fail(zathura != NULL); - g_return_if_fail(zathura->plugins.manager != NULL); - -+ /* Added for Guix: check if environment variable -+ * is set to specify location of zathura plugins. -+ */ -+ -+ if (dir == NULL) -+ dir = g_getenv("ZATHURA_PLUGIN_PATH"); -+ - if (dir != NULL) { - set_plugin_dir(zathura, dir); - #ifdef ZATHURA_PLUGINDIR diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm index 96c0f9e3ad..33bd0062ff 100644 --- a/gnu/packages/pdf.scm +++ b/gnu/packages/pdf.scm @@ -83,15 +83,14 @@ (define-public poppler (package (name "poppler") - (replacement poppler/fixed) - (version "0.68.0") + (version "0.72.0") (source (origin (method url-fetch) (uri (string-append "https://poppler.freedesktop.org/poppler-" version ".tar.xz")) (sha256 (base32 - "0n0f7mv24lzv9p3dlzakpdhqg7ygcvl6l40grcz95xldzgq083gr")))) + "0lfs1b1jfamxl13zbl5n448dqvl9n8frbv8180y7b7kfyaw7wx61")))) (build-system cmake-build-system) ;; FIXME: ;; use libcurl: no @@ -133,14 +132,6 @@ (license license:gpl2+) (home-page "https://poppler.freedesktop.org/"))) -(define poppler/fixed - (package - (inherit poppler) - (source (origin - (inherit (package-source poppler)) - (patches (append (origin-patches (package-source poppler)) - (search-patches "poppler-CVE-2018-19149.patch"))))))) - (define-public poppler-data (package (name "poppler-data") @@ -506,7 +497,7 @@ by using the poppler rendering engine.") (define-public zathura (package (name "zathura") - (version "0.4.0") + (version "0.4.3") (source (origin (method url-fetch) (uri @@ -514,9 +505,7 @@ by using the poppler rendering engine.") version ".tar.xz")) (sha256 (base32 - "1j0yah09adv3bsjhhbqra5lambal32svk8fxmf89wwmcqrcr4qma")) - (patches (search-patches - "zathura-plugindir-environment-variable.patch")))) + "0hgx5x09i6d0z45llzdmh4l348fxh1y102sb1w76f2fp4r21j4ky")))) (native-inputs `(("pkg-config" ,pkg-config) ("gettext" ,gettext-minimal) ("glib:bin" ,glib "bin") @@ -533,7 +522,7 @@ by using the poppler rendering engine.") ("girara" ,girara))) (native-search-paths (list (search-path-specification - (variable "ZATHURA_PLUGIN_PATH") + (variable "ZATHURA_PLUGINS_PATH") (files '("lib/zathura"))))) (build-system meson-build-system) (arguments diff --git a/gnu/packages/perl-compression.scm b/gnu/packages/perl-compression.scm index 477f686755..ea71492262 100644 --- a/gnu/packages/perl-compression.scm +++ b/gnu/packages/perl-compression.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 John Darrington ;;; Copyright © 2015 Eric Bavier -;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice +;;; Copyright © 2016, 2017, 2018, 2019 Tobias Geerinckx-Rice ;;; Copyright © 2017 Petter ;;; Copyright © 2017, 2019 Efraim Flashner ;;; @@ -34,7 +34,7 @@ (define-public perl-compress-raw-bzip2 (package (name "perl-compress-raw-bzip2") - (version "2.081") + (version "2.084") (source (origin (method url-fetch) @@ -42,7 +42,7 @@ "Compress-Raw-Bzip2-" version ".tar.gz")) (sha256 (base32 - "081mpkjy688lg48997fqh3d7ja12vazmz02fw84495civg4vb4l6")))) + "0kwjrsl519bv48b7698a9anj6l0n3z1vrd1a7im2r1pbffxxw5kx")))) (build-system perl-build-system) ;; TODO: Use our bzip2 package. (home-page "https://metacpan.org/release/Compress-Raw-Bzip2") @@ -54,7 +54,7 @@ compression library.") (define-public perl-compress-raw-zlib (package (name "perl-compress-raw-zlib") - (version "2.081") + (version "2.084") (source (origin (method url-fetch) @@ -62,7 +62,7 @@ compression library.") "Compress-Raw-Zlib-" version ".tar.gz")) (sha256 (base32 - "06rsm9ahp20xfyvd3jc69sd0k8vqysryxc6apzdbn96jbcsdwmp1")))) + "0vv69a8kjx64cxhjgaccidy2yyij2j3aqlrv1r0dwa1fl9xijpim")))) (build-system perl-build-system) (inputs `(("zlib" ,zlib))) @@ -90,7 +90,7 @@ compression library.") (define-public perl-io-compress (package (name "perl-io-compress") - (version "2.081") + (version "2.084") (source (origin (method url-fetch) @@ -98,7 +98,7 @@ compression library.") "IO-Compress-" version ".tar.gz")) (sha256 (base32 - "1na66ns1g3nni0m9q5494ym4swr21hfgpv88mw8wbj2daiswf4aj")))) + "1dbdsxhbikmbbfsdam3crv8474l8ax6d9d7r3s6safk4v8z51g8x")))) (build-system perl-build-system) (propagated-inputs `(("perl-compress-raw-zlib" ,perl-compress-raw-zlib) ; >=2.081 diff --git a/gnu/packages/photo.scm b/gnu/packages/photo.scm index c7bb9afe29..15857c6cad 100644 --- a/gnu/packages/photo.scm +++ b/gnu/packages/photo.scm @@ -4,7 +4,7 @@ ;;; Copyright © 2015, 2017 Andreas Enge ;;; Copyright © 2016, 2017, 2018 Efraim Flashner ;;; Copyright © 2017 Roel Janssen -;;; Copyright © 2018 Tobias Geerinckx-Rice +;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice ;;; Copyright © 2018 Leo Famulari ;;; ;;; This file is part of GNU Guix. @@ -70,14 +70,14 @@ (define-public libraw (package (name "libraw") - (version "0.19.1") + (version "0.19.2") (source (origin (method url-fetch) (uri (string-append "https://www.libraw.org/data/LibRaw-" version ".tar.gz")) (sha256 (base32 - "1xjyw4n9gfr2r637pjbpbi3h98h9mdjn61b0hsxwqynq2vdij452")))) + "0i4nhjm5556xgn966x0i503ygk2wafq6z83kg0lisacjjab4f3a0")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) diff --git a/gnu/packages/php.scm b/gnu/packages/php.scm index 392ac92430..eba11943b0 100644 --- a/gnu/packages/php.scm +++ b/gnu/packages/php.scm @@ -259,6 +259,8 @@ ;; XXX: These test failures appear legitimate, needs investigation. ;; open_basedir() restriction failure. "ext/curl/tests/bug61948.phpt" + ;; Fails on recent curl https://bugs.php.net/patch-display.php?bug_id=77493 + "ext/curl/tests/curl_basic_009.phpt" ;; Expects a false boolean, gets empty array from glob(). "ext/standard/tests/file/bug41655_1.phpt" "ext/standard/tests/file/glob_variation5.phpt" diff --git a/gnu/packages/python-compression.scm b/gnu/packages/python-compression.scm index 3792f37328..e13227b616 100644 --- a/gnu/packages/python-compression.scm +++ b/gnu/packages/python-compression.scm @@ -174,14 +174,15 @@ algorithm within the Numpy framework.") (name "bitshuffle-for-snappy") (build-system gnu-build-system) (arguments - `(#:tests? #f - #:phases - (modify-phases %standard-phases - (replace 'configure - (lambda* (#:key outputs #:allow-other-keys) - (with-output-to-file "Makefile" - (lambda _ - (format #t "\ + (substitute-keyword-arguments (package-arguments bitshuffle) + ((#:tests? _ #f) #f) + ((#:phases phases) + `(modify-phases %standard-phases + (replace 'configure + (lambda* (#:key outputs #:allow-other-keys) + (with-output-to-file "Makefile" + (lambda _ + (format #t "\ libbitshuffle.so: src/bitshuffle.o src/bitshuffle_core.o src/iochain.o lz4/lz4.o \tgcc -O3 -ffast-math -std=c99 -o $@ -shared -fPIC $^ @@ -201,6 +202,6 @@ install: libbitshuffle.so \tinstall -m644 src/iochain.h $(INCLUDEDIR) \tinstall -m644 lz4/lz4.h $(INCLUDEDIR) " (assoc-ref outputs "out")))) - #t))))) + #t)))))) (inputs '()) (native-inputs '()))) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 3ebd808b56..34126c1fe1 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -57,6 +57,7 @@ ;;; Copyright © 2018 Maxim Cournoyer ;;; Copyright © 2018 Luther Thompson ;;; Copyright © 2018 Vagrant Cascadian +;;; Copyright © 2019 Brett Gilio ;;; ;;; This file is part of GNU Guix. ;;; @@ -1695,14 +1696,14 @@ with sensible defaults out of the box.") (define-public python-wheel (package (name "python-wheel") - (version "0.30.0a0") + (version "0.32.3") (source (origin (method url-fetch) (uri (pypi-uri "wheel" version)) (sha256 (base32 - "1nm6mn8isny0hr86rhbfrpfj867c0phf001xgsd69xfp9ady1wwq")))) + "1dhxl1bf18bx9szmqcnxbg6204hp3im8089q3hkwh5jfa6zh75q2")))) (build-system python-build-system) (native-inputs `(("python-jsonschema" ,python-jsonschema) @@ -7108,13 +7109,13 @@ config files.") (define-public python-configargparse (package (name "python-configargparse") - (version "0.12.0") + (version "0.14.0") (source (origin (method url-fetch) (uri (pypi-uri "ConfigArgParse" version)) (sha256 (base32 - "0fgkiqh6r3rbkdq3k8c48m85g52k96686rw3a6jg4lcncrkpvk98")))) + "149fy4zya0rsnlkvxbbq43cyr8lscb5k4pj1m6n7f1grwcmzwbif")))) (build-system python-build-system) (native-inputs `(("python-pyyaml" ,python-pyyaml))) @@ -8754,14 +8755,14 @@ Python. It generates C++ code and a Makefile.")) (define-public python2-rope (package (name "python2-rope") - (version "0.10.3") + (version "0.11.0") (source (origin (method url-fetch) (uri (pypi-uri "rope" version)) (sha256 (base32 - "18k5znhpwvrfck3yp0jmhd5j8r0f0s8bk1zh5yhs2cfgmfhbwigb")))) + "1cppm0pa9aqgsbkq130lskrzmrvjs5vpiavjjbhpz2fdw52w8251")))) (arguments ;; Rope is currently python-2 only. ;; https://github.com/python-rope/rope/issues/57 @@ -11403,7 +11404,7 @@ of @code{functools.lru_cache} from python 3.3.") (base32 "0waq40as14abwzbb321hfz4vr1fi363nscy32ga14qvfygrg96wa")))) (build-system python-build-system) - (home-page "http://docs.python.org/py3k/library/configparser.html") + (home-page "https://github.com/jaraco/configparser/") (synopsis "Backport of configparser from python 3.5") (description "@code{python-configparser} is a backport of @code{configparser} from Python 3.5 so that it can be used directly diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index dfc0a3b6c9..2e8f2d1135 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -111,7 +111,7 @@ system, and the core design of Django is reused in Grantlee.") (define-public qt (package (name "qt") - (version "5.11.2") + (version "5.11.3") (outputs '("out" "examples")) (source (origin (method url-fetch) @@ -124,8 +124,7 @@ system, and the core design of Django is reused in Grantlee.") version ".tar.xz")) (sha256 (base32 - "10faac59jvz6dxxljdkaknlxazpnaxgvqdcszabfbbkc1f24n466")) - (patches (search-patches "qt-5-renameat2.patch")) + "0kgzy32s1fr22fxxfhcyncfryb3qxrznlr737r4y5khk4xj1g545")) (modules '((guix build utils))) (snippet '(begin @@ -502,7 +501,7 @@ system, and the core design of Django is reused in Grantlee.") (define-public qtbase (package (name "qtbase") - (version "5.11.2") + (version "5.11.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -511,20 +510,19 @@ system, and the core design of Django is reused in Grantlee.") version ".tar.xz")) (sha256 (base32 - "01q1rn5rp9biq3z38953z2hgm4nirvp2jfv8wg7isnld8v1yg0b3")) + "071yc9iz14qs4s8yvrwllyfdzp5yjxsdpvbjxdrf0g5q69vqigy6")) ;; Use TZDIR to avoid depending on package "tzdata". (patches (search-patches "qtbase-use-TZDIR.patch")) (modules '((guix build utils))) (snippet ;; corelib uses bundled harfbuzz, md4, md5, sha3 '(begin - (for-each - (lambda (dir) - (delete-file-recursively (string-append "src/3rdparty/" dir))) - (list "double-conversion" "freetype" "harfbuzz-ng" - "libpng" "libjpeg" "pcre2" "sqlite" "xcb" - "xkbcommon" "zlib")) - #t)))) + (with-directory-excursion "src/3rdparty" + (for-each delete-file-recursively + (list "double-conversion" "freetype" "harfbuzz-ng" + "libpng" "libjpeg" "pcre2" "sqlite" "xcb" + "xkbcommon" "zlib")) + #t))))) (build-system gnu-build-system) (propagated-inputs `(("mesa" ,mesa) @@ -742,7 +740,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") (define-public qtsvg (package (inherit qtbase) (name "qtsvg") - (version "5.11.2") + (version "5.11.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -751,7 +749,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") version ".tar.xz")) (sha256 (base32 - "0rni3cdcli91v7k8ra9s9phpznvkza8qqvcrv9yyfrmlapwbn5mw")))) + "14a4rprbj9f9rhixbk7143xdz34d7d39xh9v2sc1w43q9sf2rsi1")))) (propagated-inputs `()) (native-inputs `(("perl" ,perl))) (inputs @@ -817,7 +815,7 @@ HostData=lib/qt5 (define-public qtimageformats (package (inherit qtsvg) (name "qtimageformats") - (version "5.11.2") + (version "5.11.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -826,7 +824,7 @@ HostData=lib/qt5 version ".tar.xz")) (sha256 (base32 - "0s1s33k0wrnf9fi1wlm1kaq9hs1fx89597nhk53vzdfha42x3r97")) + "0zq8igsjyyhxsjr43vpaasrqjw3x0g6rwqf8kaz7y9vs7ny63ch4")) (modules '((guix build utils))) (snippet '(begin @@ -848,7 +846,7 @@ support for MNG, TGA, TIFF and WBMP image formats."))) (define-public qtx11extras (package (inherit qtsvg) (name "qtx11extras") - (version "5.11.2") + (version "5.11.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -857,7 +855,7 @@ support for MNG, TGA, TIFF and WBMP image formats."))) version ".tar.xz")) (sha256 (base32 - "12cha7pd3cjx7zr0l7rbi1j2pfwmfpdwc7w3dsqbyi1d0mhwl1zl")))) + "11fd2mc20qmnyv1vqhaqad2q6m0i4lmkr432rmqvpkgphpkfp7pr")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests @@ -872,7 +870,7 @@ from within Qt 5."))) (define-public qtxmlpatterns (package (inherit qtsvg) (name "qtxmlpatterns") - (version "5.11.2") + (version "5.11.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -881,7 +879,7 @@ from within Qt 5."))) version ".tar.xz")) (sha256 (base32 - "0ik7m1a0shjsyzs8n9hfx8m9hy1p3wg505slcs0xznj0pa0gdmaz")))) + "1vhfvgi39miqsx3iq7c9sii2sykq0yfng69b70i0smr20zihpl4b")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:phases phases) @@ -901,7 +899,7 @@ xmlpatternsvalidator."))) (define-public qtdeclarative (package (inherit qtsvg) (name "qtdeclarative") - (version "5.11.2") + (version "5.11.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -910,7 +908,7 @@ xmlpatternsvalidator."))) version ".tar.xz")) (sha256 (base32 - "1kgj6q53rk573yi47j32mn1mfk5ag98zvhv9qgrlb78y0gw8c392")))) + "1rhsf9bma2zwwpixk2fsg31x7c1pmsk144npypgc9w86swhkc9lf")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests @@ -933,7 +931,7 @@ with JavaScript and C++."))) (define-public qtconnectivity (package (inherit qtsvg) (name "qtconnectivity") - (version "5.11.2") + (version "5.11.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -942,7 +940,7 @@ with JavaScript and C++."))) version ".tar.xz")) (sha256 (base32 - "1ia21llw610wd7licdm81p8zpkrkvkc5yc7y4wplgg6k2jyip42q")))) + "0amks3qad31i7cha85kvcaxvlmmgkc3gm4jdkw2p02ixxfygr30l")))) (native-inputs `(("perl" ,perl) ("pkg-config" ,pkg-config) @@ -957,7 +955,7 @@ with Bluetooth and NFC."))) (define-public qtwebsockets (package (inherit qtsvg) (name "qtwebsockets") - (version "5.11.2") + (version "5.11.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -966,7 +964,7 @@ with Bluetooth and NFC."))) version ".tar.xz")) (sha256 (base32 - "13cbr2pffv1hwvm8d8kzask0pyc2j3brgq23vi5i1i70kihrfqdf")))) + "1ffmapfy68xwwbxbg19ng6b5h8v42cf78s21j7rgq49gm70r0402")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests @@ -984,7 +982,7 @@ consume data received from the server, or both."))) (define-public qtsensors (package (inherit qtsvg) (name "qtsensors") - (version "5.11.2") + (version "5.11.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -993,7 +991,7 @@ consume data received from the server, or both."))) version ".tar.xz")) (sha256 (base32 - "1iv3gmk121myqdr64d9lf2m816ypxrb526gn0ssxx8gp4j4c69qf")))) + "0n88c8xi9pbyh7q1pcqv4yjv6nx62abflj8qgfr4qzb0sp8m6mx7")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:parallel-tests? _ #f) #f) ; can lead to race condition @@ -1017,7 +1015,7 @@ recognition API for devices."))) (define-public qtmultimedia (package (inherit qtsvg) (name "qtmultimedia") - (version "5.11.2") + (version "5.11.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1026,7 +1024,7 @@ recognition API for devices."))) version ".tar.xz")) (sha256 (base32 - "0vbjrxsdahgbgpc2zcvgg3mpijzd5kknz5clfcw2cq3310yqyq15")) + "0h9wx86zj20n4xc3qnml0i360x2dc1yd2z2af1flj8fwyzppi03j")) (modules '((guix build utils))) (snippet '(begin @@ -1068,7 +1066,7 @@ set of plugins for interacting with pulseaudio and GStreamer."))) (define-public qtwayland (package (inherit qtsvg) (name "qtwayland") - (version "5.11.2") + (version "5.11.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1077,7 +1075,7 @@ set of plugins for interacting with pulseaudio and GStreamer."))) version ".tar.xz")) (sha256 (base32 - "0wdpxjr3zfmgcfg14zlwd8mjbc191pvlchj1xxd0lj30ldfy2daf")) + "1chz4wchgkzd45h143i5hkqg0whcgdbj37gkg7j4kj31whllzjb2")) (modules '((guix build utils))) (snippet ;; The examples try to build and cause the build to fail @@ -1120,7 +1118,7 @@ compositor libraries."))) (define-public qtserialport (package (inherit qtsvg) (name "qtserialport") - (version "5.11.2") + (version "5.11.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1129,7 +1127,7 @@ compositor libraries."))) version ".tar.xz")) (sha256 (base32 - "0vkgvicm67vds2iqmhnjsqwnx1f8zhbzc31w6q198i0x8b76j6xh")))) + "1nkbfsxzgicwns3k11hhzjxy2hgrigj8xcw2by0jc1j71mnmxi4n")))) (native-inputs `(("perl" ,perl))) (inputs `(("qtbase" ,qtbase) @@ -1154,7 +1152,7 @@ interacting with serial ports from within Qt."))) (define-public qtserialbus (package (inherit qtsvg) (name "qtserialbus") - (version "5.11.2") + (version "5.11.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1163,7 +1161,7 @@ interacting with serial ports from within Qt."))) version ".tar.xz")) (sha256 (base32 - "07k4g5qfh657das2f5i6ph0hl4bva13yzlmxnay7qpzqcb0w4x0p")))) + "0vf12jk1ma0v0dlpliw1x9i04iaik1kjkiaby7gaxm2abprxwr2n")))) (inputs `(("qtbase" ,qtbase) ("qtserialport" ,qtserialport))) @@ -1175,7 +1173,7 @@ and others."))) (define-public qtwebchannel (package (inherit qtsvg) (name "qtwebchannel") - (version "5.11.2") + (version "5.11.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1184,7 +1182,7 @@ and others."))) version ".tar.xz")) (sha256 (base32 - "1z02dhrd1h2rpdhww9py9dnhss80xwf45n568y7gr3gay7ldlpwl")))) + "1wrdawlqvcw84h8q52mvbjhp1vkd6fhz6c8ijlg9rw0s3fj4y99w")))) (native-inputs `(("perl" ,perl) ("qtdeclarative" ,qtdeclarative) @@ -1199,7 +1197,7 @@ popular web engines, Qt WebKit 2 and Qt WebEngine."))) (define-public qtwebglplugin (package (inherit qtsvg) (name "qtwebglplugin") - (version "5.11.2") + (version "5.11.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1208,7 +1206,7 @@ popular web engines, Qt WebKit 2 and Qt WebEngine."))) version ".tar.xz")) (sha256 (base32 - "0vazz9yr1qgpcq7p77vg9mrjxy6hjabvwj9irw5l5w7fmsk2ns0n")))) + "0wqz8lycmi7pffzy0pz5960w109lbk4mkbw0l1lh64avl6clq7b9")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:phases phases) @@ -1234,7 +1232,7 @@ OpenGL ES 2.0 and can be used in HTML5 canvas elements"))) (define-public qtwebview (package (inherit qtsvg) (name "qtwebview") - (version "5.11.2") + (version "5.11.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1243,7 +1241,7 @@ OpenGL ES 2.0 and can be used in HTML5 canvas elements"))) version ".tar.xz")) (sha256 (base32 - "1r30n9vjcgh2cd2iycfwwwpmbz7grrd3iqrc0afwnri3vylnfqil")))) + "1njmn1n03dp4md8cz58cq2z6bsxd8nwlw0238zmavh7px3jzc9kh")))) (native-inputs `(("perl" ,perl))) (inputs @@ -1257,7 +1255,7 @@ native APIs where it makes sense."))) (define-public qtlocation (package (inherit qtsvg) (name "qtlocation") - (version "5.11.2") + (version "5.11.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1266,7 +1264,7 @@ native APIs where it makes sense."))) version ".tar.xz")) (sha256 (base32 - "0kh2c2ahg8xkpvqsva13i35ndsc0x0ypnmd6vix5pm5jvwg9366n")))) + "1sq0f41jwmsimv9a1wl2nk5nifjppm5j92rr4n4s7qwnnjjrir2q")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests @@ -1287,7 +1285,7 @@ positioning and geolocation plugins."))) (define-public qttools (package (inherit qtsvg) (name "qttools") - (version "5.11.2") + (version "5.11.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1296,7 +1294,7 @@ positioning and geolocation plugins."))) version ".tar.xz")) (sha256 (base32 - "1f1iqvksrlgkxdbagb6vvjib3argbv9l7iis6ymb8n0rfwn37s7h")))) + "13lzdxxi02yhvx4mflhisl6aqv2fiss5m804cqccd1wvp8dyh1f2")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests @@ -1315,7 +1313,7 @@ that helps in Qt development."))) (define-public qtscript (package (inherit qtsvg) (name "qtscript") - (version "5.11.2") + (version "5.11.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1324,7 +1322,7 @@ that helps in Qt development."))) version ".tar.xz")) (sha256 (base32 - "0xprhd1brn30dqf5vy4inqgzpq48i8nlc428x9rr8fk5hdm4dhmj")) + "027cvggbcvwyz76cn1bl1zvqg0nq7iica1b7yx7xyy0hb36g715v")) (patches (search-patches "qtscript-disable-tests.patch")))) (native-inputs `(("perl" ,perl) @@ -1339,7 +1337,7 @@ ECMAScript and Qt."))) (define-public qtquickcontrols (package (inherit qtsvg) (name "qtquickcontrols") - (version "5.11.2") + (version "5.11.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1348,7 +1346,7 @@ ECMAScript and Qt."))) version ".tar.xz")) (sha256 (base32 - "1q11nr85436xzrf4mbrbav306hrz0s2qaclqhhb0g88vzcq2wxww")))) + "0dvmy31qbl76yy0j5y8m7mvnmqyg2c01fmlkn0snvc5h5ah5skjf")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests @@ -1363,7 +1361,7 @@ can be used to build complete interfaces in Qt Quick."))) (define-public qtquickcontrols2 (package (inherit qtsvg) (name "qtquickcontrols2") - (version "5.11.2") + (version "5.11.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1372,7 +1370,7 @@ can be used to build complete interfaces in Qt Quick."))) version ".tar.xz")) (sha256 (base32 - "116b5nhmsx898626s37r446yci7kxd3k7xap1dh9spqklkwlj1da")))) + "11nhpb0xckv5jjkqj5szr94c2rvyjwr89ch58hh64nsqaav30mpl")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests @@ -1388,7 +1386,7 @@ not available."))) (define-public qtgraphicaleffects (package (inherit qtsvg) (name "qtgraphicaleffects") - (version "5.11.2") + (version "5.11.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1397,7 +1395,7 @@ not available."))) version ".tar.xz")) (sha256 (base32 - "1zd9wjh2hhd6lby0z3ak0ff6zkbv73hh0drrg9qp2yrgjfismp59")))) + "1qjpdzkamf27cg5n1wsf0zk939lcgppgydfjzap9s4fxzj1nkn0l")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests @@ -1443,7 +1441,7 @@ backend for QtQuick scene graph.") (define-public qtgamepad (package (inherit qtsvg) (name "qtgamepad") - (version "5.11.2") + (version "5.11.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1452,7 +1450,7 @@ backend for QtQuick scene graph.") version ".tar.xz")) (sha256 (base32 - "076874iyadj7pkprlk24h257nb8i4sni9c6kbixm5zrr2y73fbxf")))) + "1k222cx18zq48sfna91hmy427qzk2n2xz3dlyz59iyz72k6915g9")))) (native-inputs `(("perl" ,perl) ("pkg-config" ,pkg-config))) @@ -1473,7 +1471,7 @@ and mobile applications targeting TV-like form factors."))) (define-public qtscxml (package (inherit qtsvg) (name "qtscxml") - (version "5.11.2") + (version "5.11.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1482,7 +1480,7 @@ and mobile applications targeting TV-like form factors."))) version ".tar.xz")) (sha256 (base32 - "197p5x1dadgjb39pd2vw60r63lvz68i0pm5i8xbyzgzm94hwn9fn")) + "1mv8mz36v34dckrzy5r41mq3sqznbalrhndk3avz2154xmkjf5qk")) (modules '((guix build utils))) (snippet '(begin @@ -1504,7 +1502,7 @@ also contains functionality to support data models and executable content."))) (define-public qtpurchasing (package (inherit qtsvg) (name "qtpurchasing") - (version "5.11.2") + (version "5.11.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1513,7 +1511,7 @@ also contains functionality to support data models and executable content."))) version ".tar.xz")) (sha256 (base32 - "1xld1yx085mhnqdipy29g2yy5af67hfm0wy4mvj7pl6y5qj8jw9d")))) + "1fd0gxdj5mrh81iwimq1243i3n47sqv9ik8nslahfh0q3dsx7k8n")))) (inputs `(("qtbase" ,qtbase) ("qtdeclarative" ,qtdeclarative))) @@ -1524,7 +1522,7 @@ purchasing goods and services."))) (define-public qtcanvas3d (package (inherit qtsvg) (name "qtcanvas3d") - (version "5.11.2") + (version "5.11.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1533,7 +1531,7 @@ purchasing goods and services."))) version ".tar.xz")) (sha256 (base32 - "0h7arss7wr0jwl87kiwgbf0nlcgpbriyf7cnv9j4h7g8d09a777x")) + "0f110z7cmkzns9k00aa5zhzq2fpybfxkd7gdlwzcbhc8hn20986m")) (modules '((guix build utils))) (snippet '(begin @@ -1563,7 +1561,7 @@ drawing calls from Qt Quick JavaScript."))) (define-public qtcharts (package (inherit qtsvg) (name "qtcharts") - (version "5.11.2") + (version "5.11.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1572,7 +1570,7 @@ drawing calls from Qt Quick JavaScript."))) version ".tar.xz")) (sha256 (base32 - "0551qfqnsfiy8kb1ng2v0yn7s6ggy7ghcmis983sbzxzjv2i58zn")))) + "1p4m1nkbbxlkwmbmasx5r83skzssmlcgfzyvj30x2dyrqkmz7627")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests @@ -1590,7 +1588,7 @@ selecting one of the charts themes.") (define-public qtdatavis3d (package (inherit qtsvg) (name "qtdatavis3d") - (version "5.11.2") + (version "5.11.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1599,7 +1597,7 @@ selecting one of the charts themes.") version ".tar.xz")) (sha256 (base32 - "05pzvrhvxhxjlav4axrhwlnxjzlr7mi8k3f06g59ryrwmb99kd37")))) + "1kqwr3avcvcyy4i28vjgxk1bsjj9011zr668hsk1zrjxnnwjwdl3")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests @@ -1617,7 +1615,7 @@ customized by using themes or by adding custom items and labels to them.") (define-public qtnetworkauth (package (inherit qtsvg) (name "qtnetworkauth") - (version "5.11.2") + (version "5.11.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1626,7 +1624,7 @@ customized by using themes or by adding custom items and labels to them.") version ".tar.xz")) (sha256 (base32 - "1zmpvkhf2kmnr8vsa6jq675d5cpnmsg3f8yds6g91yq1g3prqdvr")))) + "0dd35698wzg89975vi2ijl2lym495fjizsl03mjixsjnvb1x0q50")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:phases phases) @@ -1646,7 +1644,7 @@ implementation of OAuth and OAuth2 authenticathon methods for Qt."))) (define-public qtremoteobjects (package (inherit qtsvg) (name "qtremoteobjects") - (version "5.11.2") + (version "5.11.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1655,7 +1653,7 @@ implementation of OAuth and OAuth2 authenticathon methods for Qt."))) version ".tar.xz")) (sha256 (base32 - "06awsaf15rch1y9p2q9kdlmlaa8g28whbzf04b10zfflyijnvg7j")))) + "1d3jzsxfyjhgb6wj9iv1388bv7j6pi08346nmkm1c1a4iykhc0zp")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:phases phases) @@ -1679,7 +1677,7 @@ processes or computers."))) (define-public qtspeech (package (inherit qtsvg) (name "qtspeech") - (version "5.11.2") + (version "5.11.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1688,7 +1686,7 @@ processes or computers."))) version ".tar.xz")) (sha256 (base32 - "110xr2y174sayi9f6swzp1wx7mx4sw9rifcdx2bkbsnbfab6zg8a")))) + "158p7zqd0vg55gf88jzc3d4f7649ihh80k0m1q46m2yp6fpdjbxr")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests @@ -1711,7 +1709,7 @@ message."))) (define-public python-sip (package (name "python-sip") - (version "4.19.12") + (version "4.19.13") (source (origin (method url-fetch) @@ -1720,7 +1718,7 @@ message."))) "sip-" version "/sip-" version ".tar.gz")) (sha256 (base32 - "08iqj9qyanc6a4bllbd87gv8pd1gkplw1jhfa1sz0gcq3g1pyq94")))) + "0pniq03jk1n5bs90yjihw3s3rsmjd8m89y9zbnymzgwrcl2sflz3")))) (build-system gnu-build-system) (native-inputs `(("python" ,python-wrapper))) @@ -1773,7 +1771,7 @@ module provides support functions to the automatically generated code.") (define-public python-pyqt (package (name "python-pyqt") - (version "5.11.2") + (version "5.11.3") (source (origin (method url-fetch) @@ -1783,7 +1781,7 @@ module provides support functions to the automatically generated code.") version ".tar.gz")) (sha256 (base32 - "00wn9svgyp0fsrkc4ma15zcxg31pw4gsgaz6nwb3fhy3al8miakw")) + "0wqh4srqkcc03rvkwrcshaa028psrq58xkys6npnyhqxc0apvdf9")) (patches (search-patches "pyqt-configure.patch" "pyqt-public-sip.patch")))) (build-system gnu-build-system) @@ -1920,7 +1918,7 @@ contain over 620 classes.") (define-public qscintilla (package (name "qscintilla") - (version "2.10.7") + (version "2.10.8") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/pyqt/QScintilla2/" @@ -1928,7 +1926,7 @@ contain over 620 classes.") version ".tar.gz")) (sha256 (base32 - "06hs6civq13dvzlws0spjb7gwyk6kynpnfwg5plhahnxf7g5h137")))) + "1swjr786w04r514pry9pn32ivza4il1cg35s60qy39cwc175pka6")))) (build-system gnu-build-system) (arguments `(#:phases @@ -1976,19 +1974,21 @@ indicators, code completion and call tips.") #:phases (modify-phases %standard-phases (replace 'configure - (lambda* (#:key outputs configure-flags #:allow-other-keys) - (chdir "Python") - (apply invoke "python3" "configure.py" - configure-flags) - ;; Install to the right directory - (substitute* '("Makefile" - "Qsci/Makefile") - (("\\$\\(INSTALL_ROOT\\)/gnu/store/[^/]+") - (assoc-ref outputs "out"))) - ;; And fix the installed.txt file - (substitute* "installed.txt" - (("/gnu/store/[^/]+") - (assoc-ref outputs "out"))) + (lambda* (#:key inputs outputs configure-flags #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (python (assoc-ref inputs "python"))) + (chdir "Python") + (apply invoke "python3" "configure.py" + configure-flags) + ;; Install to the right directory + (substitute* '("Makefile" + "Qsci/Makefile") + (("\\$\\(INSTALL_ROOT\\)/gnu/store/[^/]+") out) + (((string-append python "/lib")) + (string-append out "/lib"))) + ;; And fix the installed.txt file + (substitute* "installed.txt" + (("/gnu/store/[^/]+") out))) #t))))) (inputs `(("qscintilla" ,qscintilla) diff --git a/gnu/packages/rdesktop.scm b/gnu/packages/rdesktop.scm index 3c8444b00a..777606d77f 100644 --- a/gnu/packages/rdesktop.scm +++ b/gnu/packages/rdesktop.scm @@ -49,8 +49,8 @@ (source (origin (method url-fetch) (uri (string-append - "mirror://sourceforge/" name "/" name "/" version "/" - name "-" version ".tar.gz")) + "mirror://sourceforge/rdesktop/rdesktop/" version "/" + "rdesktop-" version ".tar.gz")) (sha256 (base32 "1r7c1rjmw2xzq8fw0scyb453gy9z19774z1z8ldmzzsfndb03cl8")))) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index c6a65ffc58..18c6335911 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -60,7 +60,7 @@ (define-public ruby (package (name "ruby") - (version "2.4.3") + (version "2.5.3") (source (origin (method url-fetch) @@ -69,8 +69,7 @@ "/ruby-" version ".tar.xz")) (sha256 (base32 - "0l9bv67dgsphk42lmiskhrnh47hbyj6rfg2rcjx22xivpx07srr3")) - (patches (search-patches "ruby-rubygems-276-for-ruby24.patch")) + "0vrhrw7kcz9mg0jkqnihkcxqy5k05v8k1j0y2735z8wfk8sx1j8w")) (modules '((guix build utils))) (snippet `(begin ;; Remove bundled libffi @@ -112,6 +111,26 @@ a focus on simplicity and productivity.") (home-page "https://www.ruby-lang.org") (license license:ruby))) +(define-public ruby-2.4 + (package + (inherit ruby) + (version "2.4.3") + (source + (origin + (method url-fetch) + (uri (string-append "http://cache.ruby-lang.org/pub/ruby/" + (version-major+minor version) + "/ruby-" version ".tar.xz")) + (sha256 + (base32 + "0l9bv67dgsphk42lmiskhrnh47hbyj6rfg2rcjx22xivpx07srr3")) + (patches (search-patches "ruby-rubygems-276-for-ruby24.patch")) + (modules '((guix build utils))) + (snippet `(begin + ;; Remove bundled libffi + (delete-file-recursively "ext/fiddle/libffi-3.2.1") + #t)))))) + (define-public ruby-2.3 (package (inherit ruby) diff --git a/gnu/packages/scribus.scm b/gnu/packages/scribus.scm index 615d7e23a2..20795da275 100644 --- a/gnu/packages/scribus.scm +++ b/gnu/packages/scribus.scm @@ -56,7 +56,59 @@ (sha256 (base32 "00ys0p6h3iq77kh72dkl0qrf7qvznq18qdrgiq10gfxja1995034")) - (patches (search-patches "scribus-poppler.patch")))) + (patches (append + ;; Scribus relies heavily on Poppler internals, which have + ;; changed a lot since the latest Scribus release (2018-04). + ;; Thus, we require a bunch of patches to stay compatible. + (search-patches "scribus-poppler.patch") + (list (origin + (method url-fetch) + (uri (string-append + "https://github.com/scribusproject/scribus/commit/" + "7d4ceeb5cac32287769e3c0238699e0b3e56c24d.patch")) + (file-name "scribus-poppler-0.64.patch") + (sha256 + (base32 + "1kr27bfzkpabrh42nsrrvlqyycdg9isbavpaa5spgmrhidcg02xj"))) + (origin + (method url-fetch) + (uri (string-append + "https://github.com/scribusproject/scribus/commit/" + "76561c1a55cd07c268f8f2b2fea888532933700b.patch")) + (file-name "scribus-poppler-config.patch") + (sha256 + (base32 + "01k18xjj82c3ndzp89dlpfhhdccc8z0acf8b04r592jyr5y9rc19"))) + (origin + (method url-fetch) + (uri (string-append + "https://github.com/scribusproject/scribus/commit/" + "8e05d26c19097ac2ad5b4ebbf40a3771ee6faf9c.patch")) + (file-name "scribus-poppler-0.69.patch") + (sha256 + (base32 + "1avdmsj5l543j0irq18nxgiw99n395jj56ih5dsal59fn0wbqk42"))) + (origin + (method url-fetch) + (uri (string-append "https://git.archlinux.org/svntogit/" + "community.git/plain/trunk/scribus-" + "poppler-0.70.patch?h=packages/scribus&id=" + "8ef43ee2fceb0753ed5a76bb0a11c84775898ffc")) + (file-name "scribus-poppler-0.70.patch") + (sha256 + (base32 + "0dw7ix3jaj0y1q97cmmqwb2qgdx760yhxx86wa8rnx0xhfi5x6qr")))))) + (modules '((guix build utils))) + (snippet + '(begin + (for-each (lambda (file) + (substitute* file + ;; These are required for compatibility with Poppler 0.71. + (("GBool") "bool") (("gTrue") "true") (("gFalse") "false") + ;; ...and this for Poppler 0.72. + (("getCString") "c_str"))) + (find-files "scribus/plugins/import/pdf")) + #t)))) (build-system cmake-build-system) (arguments `(#:tests? #f ;no test target diff --git a/gnu/packages/sdl.scm b/gnu/packages/sdl.scm index 6198925727..ee143497e5 100644 --- a/gnu/packages/sdl.scm +++ b/gnu/packages/sdl.scm @@ -386,7 +386,7 @@ directory.") (define-public sdl2-ttf (package (inherit sdl-ttf) (name "sdl2-ttf") - (version "2.0.14") + (version "2.0.15") (source (origin (method url-fetch) (uri @@ -399,7 +399,7 @@ directory.") #t)) (sha256 (base32 - "0xljwcpvd2knrjdfag5b257xqayplz55mqlszrqp0kpnphh5xnrl")))) + "0cyd48dipc0m399qy8s03lci8b0bpiy8xlkvrm2ia7wcv0dfpv59")))) (propagated-inputs (propagated-inputs-with-sdl2 sdl-ttf)))) diff --git a/gnu/packages/spice.scm b/gnu/packages/spice.scm index 94e6aa8438..6a580c6226 100644 --- a/gnu/packages/spice.scm +++ b/gnu/packages/spice.scm @@ -96,7 +96,7 @@ system to use the host GPU to accelerate 3D rendering.") (define-public spice-protocol (package (name "spice-protocol") - (version "0.12.14") + (version "0.12.15") (source (origin (method url-fetch) (uri (string-append @@ -104,7 +104,7 @@ system to use the host GPU to accelerate 3D rendering.") "spice-protocol-" version ".tar.bz2")) (sha256 (base32 - "170ckpgazvqv7hxy209myg67pqnd6c0gvr4ysbqgsfch6320nd90")))) + "06b461i4jv741in8617jjpfk28wk7zs9p7841njkf4sbm8xv4kcb")))) (build-system gnu-build-system) (synopsis "Protocol headers for the SPICE protocol") (description "SPICE (the Simple Protocol for Independent Computing @@ -213,11 +213,7 @@ which allows users to view a desktop computing environment.") "--enable-automated-tests") ;; Several tests appear to be opening the same sockets concurrently. - #:parallel-tests? #f - - #:phases (modify-phases %standard-phases - (add-before 'check 'use-empty-ssl-cert-file - (lambda _ (setenv "SSL_CERT_FILE" "/dev/null") #t))))) + #:parallel-tests? #f)) (synopsis "Server implementation of the SPICE protocol") (description "SPICE is a remote display system built for virtual environments which allows you to view a computing 'desktop' environment diff --git a/gnu/packages/sqlite.scm b/gnu/packages/sqlite.scm index d40fc119e0..794c030385 100644 --- a/gnu/packages/sqlite.scm +++ b/gnu/packages/sqlite.scm @@ -82,15 +82,6 @@ widely deployed SQL database engine in the world. The source code for SQLite is in the public domain.") (license license:public-domain))) -;; This is used by Tracker. -(define-public sqlite-with-fts5 - (package/inherit sqlite - (name "sqlite-with-fts5") - (arguments - (substitute-keyword-arguments (package-arguments sqlite) - ((#:configure-flags flags) - `(cons "--enable-fts5" ,flags)))))) - ;; This is used by Qt. (define-public sqlite-with-column-metadata (package/inherit sqlite diff --git a/gnu/packages/sssd.scm b/gnu/packages/sssd.scm index 0ff94cdd24..75ce7c854b 100644 --- a/gnu/packages/sssd.scm +++ b/gnu/packages/sssd.scm @@ -86,6 +86,7 @@ fundamental object types for C.") (method url-fetch) (uri (string-append "http://releases.pagure.org/SSSD/sssd/" "sssd-" version ".tar.gz")) + (patches (search-patches "sssd-curl-compat.patch")) (sha256 (base32 "032ppk57qs1lnvz7pb7lw9ldwm9i1yagh9fzgqgn6na3bg61ynzy")))) diff --git a/gnu/packages/storage.scm b/gnu/packages/storage.scm index c475c5e6fa..063825f429 100644 --- a/gnu/packages/storage.scm +++ b/gnu/packages/storage.scm @@ -322,7 +322,7 @@ ("python2-testtools" ,python2-testtools) ("python2-tox" ,python2-tox))) (inputs - `(("boost" ,boost-cxx14) + `(("boost" ,boost) ("curl" ,curl) ("cryptsetup" ,cryptsetup) ("expat" ,expat) diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm index 7f52c6efd4..1c38cb3834 100644 --- a/gnu/packages/terminals.scm +++ b/gnu/packages/terminals.scm @@ -13,6 +13,7 @@ ;;; Copyright © 2018 Arun Isaac ;;; Copyright © 2018 Gabriel Hondet ;;; Copyright © 2019 Rutger Helling +;;; Copyright © 2018, 2019 Eric Bavier ;;; ;;; This file is part of GNU Guix. ;;; @@ -472,11 +473,11 @@ embedded kernel situations.") (license license:expat))) (define-public cool-retro-term - (let ((commit "dd799cf5c0eda92cf44f3938c0c2dcae5651a99e") - (revision "1")) + (let ((commit "1.1.1") + (revision "0")) ;not used currently (package (name "cool-retro-term") - (version (string-append "1.0.1-" revision "." (string-take commit 7))) + (version "1.1.1") (source (origin (method git-fetch) (file-name (string-append name "-" version "-checkout")) @@ -485,11 +486,7 @@ embedded kernel situations.") (commit commit) (recursive? #t))) (sha256 - (base32 "08mrvj8zk9ck15q90ipjzza1acnnsjhprv2rxg8yyck0xl9p40jd")) - (patches - (search-patches "cool-retro-term-fix-array-size.patch" - "cool-retro-term-dont-check-uninit-member.patch" - "cool-retro-term-memory-leak-1.patch")) + (base32 "0wb6anchxa5jpn9c73kr4byrf2xlj8x8qzc5x7ny6saj7kbbvp75")) (modules '((guix build utils) (srfi srfi-1) (srfi srfi-26) @@ -497,20 +494,18 @@ embedded kernel situations.") (ice-9 regex))) (snippet '(let* ((fonts '(;"1971-ibm-3278" ; BSD 3-clause - ;"1975-knight-tv" ; GPL "1977-apple2" ; Non-Free "1977-commodore-pet" ; Non-Free "1979-atari-400-800" ; Non-Free - "1982-commodore64" ; Non-Free - "1985-atari-st" ; ? - "1985-ibm-pc-vga" ; Unclear + ;"1981-ibm-pc ; CC-SA 4.0 + "1982-commodore64")) ; Non-Free + ;"1985-ibm-pc-vga" ; CC-SA 4.0 ;"modern-fixedsys-excelsior" ; Redistributable ;"modern-hermit" ; SIL ;"modern-inconsolata"; SIL ;"modern-pro-font-win-tweaked" ; X11 ;"modern-proggy-tiny"; X11 ;"modern-terminus" ; SIL - "modern-monaco")) ; Apple Non-Free (name-rx (make-regexp " *name: *\"([^\"]*)\"")) (source-rx (make-regexp " *source: \"fonts/([^/]*)[^\"]*\"")) (fontname-rx (make-regexp "\"fontName\":\"([^\"]*).*")) @@ -626,7 +621,8 @@ embedded kernel situations.") (lambda* (#:key outputs #:allow-other-keys) (let ((bin (string-append (assoc-ref outputs "out") "/bin"))) (symlink (string-append bin "/cool-retro-term") - (string-append bin "/crt"))))) + (string-append bin "/crt")) + #t))) (add-after 'install 'install-man (lambda* (#:key outputs #:allow-other-keys) (let ((mandir (string-append (assoc-ref outputs "out") diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 2a135080b5..5f294dc84c 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -104,15 +104,19 @@ (patches (list ;; This is required for compatibility with Poppler 0.64.0 and to fix a - ;; segmentation fault in dvipdfm-x from XeTeX. + ;; segmentation fault in dvipdfm-x from XeTeX, and also contains a fix + ;; for CVE-2018-17407. (origin (method url-fetch) (uri (string-append "http://www.linuxfromscratch.org/patches/blfs/" - "svn/texlive-" version "-source-upstream_fixes-1.patch")) + "svn/texlive-" version "-source-upstream_fixes-2.patch")) (file-name "texlive-poppler-compat.patch") (sha256 (base32 - "0f8vhyj167y4xj0jx47vkybrcacfpxw0wdn1b777yq3xmhlahhlg"))))))) + "04sxy1qv9y575mxwyg3y7rx7mh540pfjqx7yni7ncb5wjbq9pq1a"))) + (search-patch "texlive-bin-luatex-poppler-compat.patch") + (search-patch "texlive-bin-pdftex-poppler-compat.patch") + (search-patch "texlive-bin-xetex-poppler-compat.patch"))))) (build-system gnu-build-system) (inputs `(("texlive-extra-src" ,texlive-extra-src) diff --git a/gnu/packages/time.scm b/gnu/packages/time.scm index e491970300..948d2b995c 100644 --- a/gnu/packages/time.scm +++ b/gnu/packages/time.scm @@ -14,6 +14,7 @@ ;;; Copyright © 2017 Nils Gillmann ;;; Copyright © 2017 Julien Lepiller ;;; Copyright © 2018 Alex Vong +;;; Copyright © 2019 Kyle Meyer ;;; ;;; This file is part of GNU Guix. ;;; @@ -34,10 +35,12 @@ #:use-module (guix licenses) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix git-download) #:use-module (guix build-system gnu) #:use-module (guix build-system python) #:use-module (gnu packages check) #:use-module (gnu packages compression) + #:use-module (gnu packages perl) #:use-module (gnu packages python) #:use-module (gnu packages python-xyz)) @@ -377,3 +380,41 @@ datetime type.") (define-public python2-aniso8601 (package-with-python2 python-aniso8601)) + +(define-public datefudge + (package + (name "datefudge") + (version "1.22") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://salsa.debian.org/debian/datefudge.git") + (commit (string-append "debian/" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1fmd05r00wx4zc90lbi804jl7xwdl11jq2a1kp5lqimk3yyvfw4c")))) + (build-system gnu-build-system) + (arguments + `(#:test-target "test" + #:make-flags (list "CC=gcc" + (string-append "prefix=" (assoc-ref %outputs "out"))) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-makefile + (lambda _ + (substitute* "Makefile" + ((" -o root -g root") "") + (("VERSION := \\$\\(shell dpkg-parsechangelog .*") + (string-append "VERSION = " ,version))) + #t)) + (delete 'configure)))) + (native-inputs + `(("perl" ,perl))) + (home-page "https://salsa.debian.org/debian/datefudge") + (synopsis "Pretend the system date is different") + (description + "Utility that fakes the system time by pre-loading a small library that +modifies the @code{time}, @code{gettimeofday} and @code{clock_gettime} system +calls.") + (license gpl2))) diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index f00886d8c2..c025bfc56f 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -164,7 +164,7 @@ living in the same process.") (define-public gnutls (package (name "gnutls") - (version "3.5.18") + (version "3.6.5") (source (origin (method url-fetch) (uri @@ -173,12 +173,19 @@ living in the same process.") (string-append "mirror://gnupg/gnutls/v" (version-major+minor version) "/gnutls-" version ".tar.xz")) - (patches - (search-patches "gnutls-skip-trust-store-test.patch" - "gnutls-skip-pkgconfig-test.patch")) + (patches (search-patches "gnutls-skip-trust-store-test.patch")) (sha256 (base32 - "0d02x28fwkkx7xzn7807nww6idchizzq3plx8sfcyiw7wzclh8mf")))) + "0ddvg97dyrh8dkffv1mdc0knxx5my3qdbzv97s4a6jggmk9wwgh7")) + (modules '((guix build utils))) + (snippet + '(begin + ;; XXX: The generated configure script in GnuTLS 3.6.5 + ;; apparently does not know about Guile 2.2. + (substitute* "configure" + (("guile_versions_to_search=\"2\\.0 1\\.8\"") + "guile_versions_to_search=\"2.2 2.0 1.8\"")) + #t)))) (build-system gnu-build-system) (arguments `(; Ensure we don't keep a reference to this buggy software. diff --git a/gnu/packages/tor.scm b/gnu/packages/tor.scm index db3e1451e9..ec86d7d241 100644 --- a/gnu/packages/tor.scm +++ b/gnu/packages/tor.scm @@ -91,27 +91,24 @@ the application layer) you need to install @code{torsocks}.") (define-public torsocks (package (name "torsocks") - (version "2.2.0") + (version "2.3.0") (source (origin (method url-fetch) (uri (string-append "https://people.torproject.org/~dgoulet/" - name "/" name "-" version ".tar.xz")) + "torsocks/torsocks-" version ".tar.xz")) (sha256 (base32 - "0byr9ga9w79qz4vp0m11sbmspad7fsal9wm67r4znzb7zb7cis19")))) + "08inrkap29gikb6sdmb58z43hw4abwrfw7ny40c4xzdkss0vkwdr")))) (build-system gnu-build-system) (inputs - `(("which" ,which) - ("libcap" ,libcap))) + `(("libcap" ,libcap))) (arguments `(#:phases (modify-phases %standard-phases (add-after 'build 'absolutize (lambda* (#:key inputs #:allow-other-keys) (substitute* "src/bin/torsocks" - (("getcap=`.*`") - (string-append "getcap=" (which "getcap"))) - (("`which") - (string-append "`" (which "which")))) + (("getcap=.*") + (string-append "getcap=" (which "getcap") "\n"))) #t))))) (home-page "https://www.torproject.org/") (synopsis "Use socks-friendly applications with Tor") diff --git a/gnu/packages/uml.scm b/gnu/packages/uml.scm index d598ac04c7..b49a85d932 100644 --- a/gnu/packages/uml.scm +++ b/gnu/packages/uml.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016 Theodoros Foradis +;;; Copyright © 2019 Arun Isaac ;;; ;;; This file is part of GNU Guix. ;;; @@ -28,15 +29,14 @@ (define-public plantuml (package (name "plantuml") - (version "8048") + (version "1.2019.0") (source (origin (method url-fetch) - (uri (string-append - "mirror://sourceforge/plantuml/plantuml-" - version ".tar.gz")) + (uri (string-append "mirror://sourceforge/plantuml/" + version "/plantuml-" version ".tar.gz")) (sha256 (base32 - "1vipxd6p7isb1k1qqh4hrpfcj27hx1nll2yp0rfwpvps1w2d936i")))) + "0mws7g0w3fn0wxizccg2iqisq9ljkn95i5qf8ma07lbw3nj0h48n")))) (build-system ant-build-system) (arguments `(#:tests? #f ; no tests diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 7a1520c991..5aab6bc396 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -23,7 +23,7 @@ ;;; Copyright © 2017 Gregor Giesen ;;; Copyright © 2017, 2018, 2019 Rutger Helling ;;; Copyright © 2018 Roel Janssen -;;; Copyright © 2018 Marius Bakke +;;; Copyright © 2018, 2019 Marius Bakke ;;; Copyright © 2018 Pierre Neidhardt ;;; Copyright © 2018 Leo Famulari ;;; Copyright © 2018 Brendan Tildesley @@ -627,7 +627,7 @@ libebml is a C++ library to read and write EBML files.") (define-public libva (package (name "libva") - (version "2.2.0") + (version "2.3.0") (source (origin (method url-fetch) @@ -639,7 +639,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 "1wjfrs261fp9wkhgpmrlz5smnhxrmsk31way646x6i2mg16a0v3g")))) + (base32 "1r6wiw4k044cpb39rfqqdw6qmzw0268whpz124hywck9v980x130")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) @@ -1301,7 +1301,7 @@ access to mpv's powerful playback capabilities.") (define-public libvpx (package (name "libvpx") - (version "1.7.0") + (version "1.8.0") (source (origin ;; XXX: Upstream does not provide tarballs for > 1.6.1. (method git-fetch) @@ -1311,9 +1311,8 @@ access to mpv's powerful playback capabilities.") (file-name (git-file-name name version)) (sha256 (base32 - "0vvh89hvp8qg9an9vcmwb7d9k3nixhxaz6zi65qdjnd0i56kkcz6")) - (patches (search-patches "libvpx-use-after-free-in-postproc.patch" - "libvpx-CVE-2016-2818.patch")))) + "079pb80am08lj8y5rx99vdr99mdqis9067f172zq12alkz849n93")) + (patches (search-patches "libvpx-CVE-2016-2818.patch")))) (build-system gnu-build-system) (arguments `(#:configure-flags (list "--enable-shared" @@ -1338,6 +1337,25 @@ access to mpv's powerful playback capabilities.") (license license:bsd-3) (home-page "https://www.webmproject.org/"))) +;; GNU IceCat fails to build against 1.8.0, so keep this version for now. +(define-public libvpx-1.7 + (package + (inherit libvpx) + (version "1.7.0") + (source (origin + (inherit (package-source libvpx)) + (uri (git-reference + (url "https://chromium.googlesource.com/webm/libvpx") + (commit (string-append "v" version)))) + (file-name (git-file-name "libvpx" version)) + (sha256 + (base32 + "0vvh89hvp8qg9an9vcmwb7d9k3nixhxaz6zi65qdjnd0i56kkcz6")) + (patches + (append + (origin-patches (package-source libvpx)) + (search-patches "libvpx-use-after-free-in-postproc.patch"))))))) + (define-public youtube-dl (package (name "youtube-dl") diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm index 26855b8007..04165a9b8c 100644 --- a/gnu/packages/virtualization.scm +++ b/gnu/packages/virtualization.scm @@ -904,7 +904,7 @@ Open Container Initiative specification.") (define-public umoci (package (name "umoci") - (version "0.4.3") + (version "0.4.4") (source (origin (method url-fetch) (uri (string-append @@ -913,7 +913,7 @@ Open Container Initiative specification.") (file-name (string-append "umoci-" version ".tar.xz")) (sha256 (base32 - "1hy3gcs8z25153qpw4rk2lispfaf2c90hv1q64xwyjxn22j9ayy9")))) + "1wchmha5k2f370jfijmx9fqp0cp99zfa9ajmfbq3j24qc8p5k8lk")))) (build-system go-build-system) (arguments '(#:import-path "github.com/openSUSE/umoci" diff --git a/gnu/packages/vulkan.scm b/gnu/packages/vulkan.scm index 91a7baed9d..fbed97ead0 100644 --- a/gnu/packages/vulkan.scm +++ b/gnu/packages/vulkan.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2017, 2018 Rutger Helling +;;; Copyright © 2017, 2018, 2019 Rutger Helling ;;; Copyright © 2018 Tobias Geerinckx-Rice ;;; Copyright © 2018 Efraim Flashner ;;; @@ -163,19 +163,19 @@ interpretation of the specifications for these languages.") (define-public vulkan-headers (package (name "vulkan-headers") - (version "1.1.85.0") + (version "1.1.99") (source (origin - (method url-fetch) - (uri (string-append - "https://github.com/KhronosGroup/Vulkan-Headers/" - "archive/sdk-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/KhronosGroup/Vulkan-Headers") + (commit (string-append "v" version)))) (sha256 (base32 - "166hqqb97kjg6h9vp8yxb1cq02i1kqaxvl693482gf8v21fl7ink")))) + "166z6wn5kxnqm55zgzhmqa9hg48d11bfmi3wnf1mqhsx48xw6b8z")))) (build-system cmake-build-system) (arguments - `(#:tests? #f)) ; No tests. + `(#:tests? #f)) ; No tests. (home-page "https://github.com/KhronosGroup/Vulkan-Headers") (synopsis "Vulkan Header files and API registry") @@ -189,13 +189,13 @@ interpretation of the specifications for these languages.") (version (package-version vulkan-headers)) (source (origin - (method url-fetch) - (uri (string-append - "https://github.com/KhronosGroup/Vulkan-Loader/" - "archive/sdk-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/KhronosGroup/Vulkan-Loader") + (commit (string-append "v" version)))) (sha256 (base32 - "04d53ynlc0ww8r67hv4sxwg5sirjhpr1laaa9hc6j4niliw0166n")))) + "02m3sdcbl8s6qr1nsba5621vg3f4akkfaa7g9hi70cpvws4x0gg8")))) (build-system cmake-build-system) (arguments `(#:tests? #f ;FIXME: 23/39 tests fail. Try "tests/run_all_tests.sh". @@ -210,7 +210,7 @@ interpretation of the specifications for these languages.") "-DBUILD_LAYERS=OFF" ; FIXME: Fails to build. "-DBUILD_TESTS=OFF" ; FIXME: Needs 'googletest' submodule. (string-append "-DCMAKE_INSTALL_LIBDIR=" - (assoc-ref %outputs "out") "/lib")))) + (assoc-ref %outputs "out") "/lib")))) (inputs `(("glslang" ,glslang) ("libxcb" ,libxcb) ("libx11" ,libx11) @@ -242,16 +242,16 @@ and the ICD.") (define-public vulkan-tools (package (name "vulkan-tools") - (version (package-version vulkan-headers)) + (version "1.1.97.0") (source (origin - (method url-fetch) - (uri (string-append - "https://github.com/KhronosGroup/Vulkan-Tools/" - "archive/sdk-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/KhronosGroup/Vulkan-Tools") + (commit (string-append "sdk-" version)))) (sha256 (base32 - "0r26px9rh09giddajlmafv21rx1la1y3bbnjgnpai8aw98wvq9mm")))) + "1p70wk0x546w1dlvlghrqm4l4b6ql0x08pdybyagnwwph0gdvqy3")))) (build-system cmake-build-system) (inputs `(("glslang" ,glslang) @@ -264,7 +264,7 @@ and the ICD.") `(("pkg-config" ,pkg-config) ("python" ,python))) (arguments - `(#:tests? #f)) ; No tests. + `(#:tests? #f)) ; No tests. (home-page "https://github.com/KhronosGroup/Vulkan-Tools") (synopsis "Tools and utilities for Vulkan") diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 88d7dac4b5..45ea77ad36 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -77,6 +77,7 @@ #:use-module (gnu packages flex) #:use-module (gnu packages freedesktop) #:use-module (gnu packages kerberos) + #:use-module (gnu packages gcc) #:use-module (gnu packages gd) #:use-module (gnu packages gettext) #:use-module (gnu packages glib) @@ -507,16 +508,18 @@ libraries for working with JNLP applets.") (define-public jansson (package (name "jansson") - (version "2.11") + (version "2.12") (source (origin (method url-fetch) (uri (string-append "http://www.digip.org/jansson/releases/jansson-" - version ".tar.gz")) + version ".tar.bz2")) (sha256 (base32 - "1x5jllzzqamq6kahx9d9a5mrarm9m3f30vfxvcqpi6p4mcnz91bf")))) + "1lp1mv8pjp5yziws66cy0dhpcam4bbjqhffk13v4vgdybp674pb4")))) (build-system gnu-build-system) + (arguments + `(#:configure-flags '("--disable-static"))) (home-page "http://www.digip.org/jansson/") (synopsis "JSON C library") (description @@ -3993,15 +3996,6 @@ you'd expect.") (base32 "163py4klka423x7li2b685gmg3a6hjf074mlff2ajhmi3l0lm8x6")))) (build-system glib-or-gtk-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-before 'check 'use-empty-ssl-cert-file - (lambda _ - ;; Search for ca-certificates.crt files - ;; during the check phase. - (setenv "SSL_CERT_FILE" "/dev/null") - #t))))) (native-inputs `(("gobject-introspection" ,gobject-introspection) ;; For check phase. @@ -6244,7 +6238,7 @@ derivation by David Revoy from the original MonsterID by Andreas Gohr.") (define-public nghttp2 (package (name "nghttp2") - (version "1.32.0") + (version "1.35.1") (source (origin (method url-fetch) @@ -6253,12 +6247,13 @@ derivation by David Revoy from the original MonsterID by Andreas Gohr.") name "-" version ".tar.xz")) (sha256 (base32 - "0zbgp8f80h2zlfn8cd2ldrmgl81jzcdh1141n71aqmfckzaqj2kh")))) + "0fi6qg2w82636wixwkqy7bclpgxslmvg82r431hs8h6aqc4mnzwv")))) (build-system gnu-build-system) (outputs (list "out" "lib")) ; only libnghttp2 (native-inputs `(("pkg-config" ,pkg-config) + ("gcc" ,gcc-7) ; 1.35.0 requires GCC6 or later ;; Required by tests. ("cunit" ,cunit) @@ -6290,6 +6285,9 @@ derivation by David Revoy from the original MonsterID by Andreas Gohr.") (("@prefix@") (assoc-ref outputs "lib"))) #t)) + (add-before 'configure 'work-around-bug-30756 + (lambda _ + (for-each unsetenv '("C_INCLUDE_PATH" "CPLUS_INCLUDE_PATH")) #t)) (add-before 'check 'set-timezone-directory (lambda* (#:key inputs #:allow-other-keys) (setenv "TZDIR" (string-append (assoc-ref inputs "tzdata") diff --git a/gnu/packages/webkit.scm b/gnu/packages/webkit.scm index 73cd510981..91c6c7d02a 100644 --- a/gnu/packages/webkit.scm +++ b/gnu/packages/webkit.scm @@ -168,14 +168,14 @@ HTML/CSS applications to full-fledged web browsers.") (define-public webkitgtk-2.22 (package/inherit webkitgtk (name "webkitgtk") - (version "2.22.5") + (version "2.22.6") (source (origin (method url-fetch) (uri (string-append "https://www.webkitgtk.org/releases/" name "-" version ".tar.xz")) (sha256 (base32 - "04ybyvaz5xhfkd2k65pc0sqizngjvd82j1p56wz3lz4a84zqdlwr")))) + "0ny8azipr2dmdk79qrf4hvb2p4k5b3af38szjhmhg8mh1nfdp46z")))) (native-inputs `(("gcc" ,gcc-7) ; webkitgtk-2.22 requires gcc-6 or newer ,@(package-native-inputs webkitgtk))) diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm index fa0e467f31..fd89df0c16 100644 --- a/gnu/packages/wm.scm +++ b/gnu/packages/wm.scm @@ -108,14 +108,13 @@ nested include statements).") (version "0.9.5") (source (origin - (file-name (string-append name "-" version ".tar.gz")) - (method url-fetch) - (uri (string-append - "https://github.com/baskerville/bspwm/archive/" - version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/baskerville/bspwm.git") + (commit version))) + (file-name (git-file-name name version)) (sha256 - (base32 - "10pph8wxqysgk7b2h0svs0nwacn1a4y44jnzzry32pd1ysx92d97")))) + (base32 "09h3g1rxxjyw861mk32lj774nmwkx8cwxq4wfgmf4dpbizymvhhr")))) (build-system gnu-build-system) (inputs `(("libxcb" ,libxcb) @@ -250,7 +249,7 @@ developers.") (sha256 (base32 "15rnrcajzyrmhlz1a21qqsjlj3dkib70806dlb386fliylc2kisb")) - (file-name (string-append name "-" version "-checkout")))) + (file-name (git-file-name name version)))) (build-system gnu-build-system) (arguments `(#:make-flags (list "CC=gcc" (string-append "PREFIX=" %output)) diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index b293a138f3..5f01c8c6a6 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -14,7 +14,7 @@ ;;; Copyright © 2016, 2017, 2018 Efraim Flashner ;;; Copyright © 2016 Leo Famulari ;;; Copyright © 2016 Alex Kost -;;; Copyright © 2016, 2017 Marius Bakke +;;; Copyright © 2016, 2017, 2019 Marius Bakke ;;; Copyright © 2016 Petter ;;; Copyright © 2017 Mekeor Melire ;;; Copyright © 2017 Nils Gillmann @@ -298,7 +298,7 @@ following the mouse.") (define-public pixman (package (name "pixman") - (version "0.34.0") + (version "0.36.0") (source (origin (method url-fetch) (uri (string-append @@ -306,7 +306,7 @@ following the mouse.") version ".tar.gz")) (sha256 (base32 - "13m842m9ffac3m9r0b4lvwjhwzg3w4353djkjpf00s0wnm4v5di1")) + "1blzrx50ssdv0pn56hcv2v0zw0vrjwj1sx22pkgjls1p9n6rr88w")) (patches (search-patches "pixman-CVE-2016-5296.patch")))) (build-system gnu-build-system) (inputs @@ -324,7 +324,7 @@ rasterisation.") (define-public libdrm (package (name "libdrm") - (version "2.4.93") + (version "2.4.96") (source (origin (method url-fetch) @@ -334,7 +334,7 @@ rasterisation.") ".tar.bz2")) (sha256 (base32 - "0g6d9wsnb7lx8r1m4kq8js0wsc5jl20cz1csnlh6z9s8jpfd313f")) + "14xkip83qgljjaahzq40qgl60j54q7k00la1hbf5kk5lgg7ilmhd")) (patches (search-patches "libdrm-symbol-check.patch")))) (build-system gnu-build-system) (arguments @@ -343,14 +343,12 @@ rasterisation.") ("armhf-linux" '("--enable-exynos-experimental-api" "--enable-omap-experimental-api" - ;; XXX: This fails a symbol check on a build machine: - ;; - ;; TODO: Update the list of symbols. - ;;"--enable-etnaviv-experimental-api" + "--enable-etnaviv-experimental-api" "--enable-tegra-experimental-api" "--enable-freedreno-kgsl")) ("aarch64-linux" '("--enable-tegra-experimental-api" + "--enable-etnaviv-experimental-api" "--enable-freedreno-kgsl")) (_ '()))))) (inputs @@ -643,6 +641,36 @@ to find buttons, etc, on the screen to click on.") (home-page "https://www.hoopajoo.net/projects/xautomation.html") (license license:gpl2+))) +(define-public xbanish + (package + (name "xbanish") + (version "1.6") + (home-page "https://github.com/jcs/xbanish") + (source (origin + (method git-fetch) + (uri (git-reference (url home-page) + (commit (string-append "v" version)))) + (sha256 + (base32 + "0vp8ja68hpmqkl61zyjar3czhmny1hbm74m8f393incfz1ymr3i8")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ;no tests + #:make-flags (list "CC=gcc" + (string-append "PREFIX=" (assoc-ref %outputs "out"))) + #:phases (modify-phases %standard-phases + (delete 'configure)))) + (inputs + `(("libx11" ,libx11) + ("libxfixes" ,libxfixes) + ("libxi" ,libxi) + ("libxt" ,libxt))) + (synopsis "Banish the mouse cursor") + (description + "@command{xbanish} hides the mouse cursor when you start typing, and +shows it again when the mouse cursor moves or a mouse button is pressed.") + (license license:bsd-3))) + (define-public xlockmore (package (name "xlockmore") diff --git a/gnu/services/databases.scm b/gnu/services/databases.scm index aff78a0566..7113f1f2a1 100644 --- a/gnu/services/databases.scm +++ b/gnu/services/databases.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2016 Leo Famulari ;;; Copyright © 2017 Christopher Baines ;;; Copyright © 2018 Clément Lassieur +;;; Copyright © 2018 Julien Lepiller ;;; ;;; This file is part of GNU Guix. ;;; @@ -26,7 +27,10 @@ #:use-module (gnu system shadow) #:use-module (gnu packages admin) #:use-module (gnu packages databases) + #:use-module (guix build-system trivial) + #:use-module (guix build union) #:use-module (guix modules) + #:use-module (guix packages) #:use-module (guix records) #:use-module (guix gexp) #:use-module (srfi srfi-1) @@ -141,16 +145,18 @@ host all all ::1/128 trust")) (define-record-type* postgresql-configuration make-postgresql-configuration postgresql-configuration? - (postgresql postgresql-configuration-postgresql ; - (default postgresql)) - (port postgresql-configuration-port - (default 5432)) - (locale postgresql-configuration-locale - (default "en_US.utf8")) - (config-file postgresql-configuration-file - (default (postgresql-config-file))) - (data-directory postgresql-configuration-data-directory - (default "/var/lib/postgresql/data"))) + (postgresql postgresql-configuration-postgresql ; + (default postgresql)) + (port postgresql-configuration-port + (default 5432)) + (locale postgresql-configuration-locale + (default "en_US.utf8")) + (config-file postgresql-configuration-file + (default (postgresql-config-file))) + (data-directory postgresql-configuration-data-directory + (default "/var/lib/postgresql/data")) + (extension-packages postgresql-configuration-extension-packages + (default '()))) (define %postgresql-accounts (list (user-group (name "postgres") (system? #t)) @@ -162,15 +168,36 @@ host all all ::1/128 trust")) (home-directory "/var/empty") (shell (file-append shadow "/sbin/nologin"))))) +(define (final-postgresql postgresql extension-packages) + (if (null? extension-packages) + postgresql + (package + (inherit postgresql) + (source #f) + (build-system trivial-build-system) + (arguments + `(#:modules ((guix build utils) (guix build union)) + #:builder + (begin + (use-modules (guix build utils) (guix build union) (srfi srfi-26)) + (union-build (assoc-ref %outputs "out") (map (lambda (input) (cdr input)) %build-inputs)) + #t))) + (inputs + `(("postgresql" ,postgresql) + ,@(map (lambda (extension) (list "extension" extension)) + extension-packages)))))) + (define postgresql-activation (match-lambda - (($ postgresql port locale config-file data-directory) + (($ postgresql port locale config-file data-directory + extension-packages) #~(begin (use-modules (guix build utils) (ice-9 match)) (let ((user (getpwnam "postgres")) - (initdb (string-append #$postgresql "/bin/initdb")) + (initdb (string-append #$(final-postgresql postgresql extension-packages) + "/bin/initdb")) (initdb-args (append (if #$locale @@ -202,7 +229,8 @@ host all all ::1/128 trust")) (define postgresql-shepherd-service (match-lambda - (($ postgresql port locale config-file data-directory) + (($ postgresql port locale config-file data-directory + extension-packages) (let* ((pg_ctl-wrapper ;; Wrapper script that switches to the 'postgres' user before ;; launching daemon. @@ -214,7 +242,8 @@ host all all ::1/128 trust")) (match (command-line) ((_ mode) (let ((user (getpwnam "postgres")) - (pg_ctl #$(file-append postgresql "/bin/pg_ctl")) + (pg_ctl #$(file-append (final-postgresql postgresql extension-packages) + "/bin/pg_ctl")) (options (format #f "--config-file=~a -p ~d" #$config-file #$port))) (setgid (passwd:gid user)) @@ -253,7 +282,8 @@ host all all ::1/128 trust")) (port 5432) (locale "en_US.utf8") (config-file (postgresql-config-file)) - (data-directory "/var/lib/postgresql/data")) + (data-directory "/var/lib/postgresql/data") + (extension-packages '())) "Return a service that runs @var{postgresql}, the PostgreSQL database server. The PostgreSQL daemon loads its runtime configuration from @var{config-file} @@ -264,7 +294,8 @@ and stores the database cluster in @var{data-directory}." (port port) (locale locale) (config-file config-file) - (data-directory data-directory)))) + (data-directory data-directory) + (extension-packages extension-packages)))) ;;; diff --git a/guix/build/download.scm b/guix/build/download.scm index c08221b3b2..a64e0f0bd3 100644 --- a/guix/build/download.scm +++ b/guix/build/download.scm @@ -157,7 +157,8 @@ out if the connection could not be established in less than TIMEOUT seconds." ;; XXX: Use this hack instead of #:autoload to avoid compilation errors. ;; See . (module-autoload! (current-module) - '(gnutls) '(make-session connection-end/client)) + '(gnutls) + '(gnutls-version make-session connection-end/client)) (define %tls-ports ;; Mapping of session record ports to the underlying file port. @@ -268,7 +269,18 @@ host name without trailing dot." ;; "(gnutls) Priority Strings"); see . ;; Explicitly disable SSLv3, which is insecure: ;; . - (set-session-priorities! session "NORMAL:%COMPAT:-VERS-SSL3.0") + ;; + ;; FIXME: Since we currently fail to handle TLS 1.3 (with GnuTLS 3.6.5), + ;; remove it; see . + (set-session-priorities! session + (string-append + "NORMAL:%COMPAT:-VERS-SSL3.0" + + ;; The "VERS-TLS1.3" priority string is not + ;; supported by GnuTLS 3.5. + (if (string-prefix? "3.5." (gnutls-version)) + "" + ":-VERS-TLS1.3"))) (set-session-credentials! session (if (and verify-certificate? ca-certs) diff --git a/guix/gexp.scm b/guix/gexp.scm index f7c064297b..5b5b064b59 100644 --- a/guix/gexp.scm +++ b/guix/gexp.scm @@ -920,7 +920,18 @@ and in the current monad setting (system type, etc.)" (simple-format #f "~a:~a" line column))) ""))) -(define-syntax-parameter current-imported-modules +(define-syntax-rule (define-syntax-parameter-once name proc) + ;; Like 'define-syntax-parameter' but ensure the top-level binding for NAME + ;; does not get redefined. This works around a race condition in a + ;; multi-threaded context with Guile <= 2.2.4: . + (eval-when (load eval expand compile) + (define name + (if (module-locally-bound? (current-module) 'name) + (module-ref (current-module) 'name) + (make-syntax-transformer 'name 'syntax-parameter + (list proc)))))) + +(define-syntax-parameter-once current-imported-modules ;; Current list of imported modules. (identifier-syntax '())) @@ -931,7 +942,7 @@ environment." (identifier-syntax modules))) body ...)) -(define-syntax-parameter current-imported-extensions +(define-syntax-parameter-once current-imported-extensions ;; Current list of extensions. (identifier-syntax '())) diff --git a/guix/git.scm b/guix/git.scm index 0666f0c0a9..0e3ce37e26 100644 --- a/guix/git.scm +++ b/guix/git.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017 Mathieu Othacehe -;;; Copyright © 2018 Ludovic Courtès +;;; Copyright © 2018, 2019 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -35,6 +35,8 @@ #:use-module (srfi srfi-34) #:use-module (srfi srfi-35) #:export (%repository-cache-directory + honor-system-x509-certificates! + update-cached-checkout latest-repository-commit @@ -43,25 +45,70 @@ git-checkout-url git-checkout-branch)) +;; XXX: Use this hack instead of #:autoload to avoid compilation errors. +;; See . +(module-autoload! (current-module) + '(git submodule) '(repository-submodules)) + (define %repository-cache-directory (make-parameter (string-append (cache-directory #:ensure? #f) "/checkouts"))) +(define (honor-system-x509-certificates!) + "Use the system's X.509 certificates for Git checkouts over HTTPS. Honor +the 'SSL_CERT_FILE' and 'SSL_CERT_DIR' environment variables." + ;; On distros such as CentOS 7, /etc/ssl/certs contains only a couple of + ;; files (instead of all the certificates) among which "ca-bundle.crt". On + ;; other distros /etc/ssl/certs usually contains the whole set of + ;; certificates along with "ca-certificates.crt". Try to choose the right + ;; one. + (let ((file (letrec-syntax ((choose + (syntax-rules () + ((_ file rest ...) + (let ((f file)) + (if (and f (file-exists? f)) + f + (choose rest ...)))) + ((_) + #f)))) + (choose (getenv "SSL_CERT_FILE") + "/etc/ssl/certs/ca-certificates.crt" + "/etc/ssl/certs/ca-bundle.crt"))) + (directory (or (getenv "SSL_CERT_DIR") "/etc/ssl/certs"))) + (and (or file + (and=> (stat directory #f) + (lambda (st) + (> (stat:nlink st) 2)))) + (begin + (set-tls-certificate-locations! directory file) + #t)))) + +(define %certificates-initialized? + ;; Whether 'honor-system-x509-certificates!' has already been called. + #f) + (define-syntax-rule (with-libgit2 thunk ...) (begin ;; XXX: The right thing to do would be to call (libgit2-shutdown) here, ;; but pointer finalizers used in guile-git may be called after shutdown, ;; resulting in a segfault. Hence, let's skip shutdown call for now. (libgit2-init!) + (unless %certificates-initialized? + (honor-system-x509-certificates!) + (set! %certificates-initialized? #t)) thunk ...)) (define* (url-cache-directory url #:optional (cache-directory - (%repository-cache-directory))) + (%repository-cache-directory)) + #:key recursive?) "Return the directory associated to URL in %repository-cache-directory." (string-append cache-directory "/" - (bytevector->base32-string (sha256 (string->utf8 url))))) + (bytevector->base32-string + (sha256 (string->utf8 (if recursive? + (string-append "R:" url) + url)))))) (define (clone* url directory) "Clone git repository at URL into DIRECTORY. Upon failure, @@ -119,18 +166,62 @@ OID (roughly the commit hash) corresponding to REF." (reset repository obj RESET_HARD) (object-id obj)) +(define (call-with-repository directory proc) + (let ((repository #f)) + (dynamic-wind + (lambda () + (set! repository (repository-open directory))) + (lambda () + (proc repository)) + (lambda () + (repository-close! repository))))) + +(define-syntax-rule (with-repository directory repository exp ...) + "Open the repository at DIRECTORY and bind REPOSITORY to it within the +dynamic extent of EXP." + (call-with-repository directory + (lambda (repository) exp ...))) + +(define* (update-submodules repository + #:key (log-port (current-error-port))) + "Update the submodules of REPOSITORY, a Git repository object." + ;; Guile-Git < 0.2.0 did not have (git submodule). + (if (false-if-exception (resolve-interface '(git submodule))) + (for-each (lambda (name) + (let ((submodule (submodule-lookup repository name))) + (format log-port (G_ "updating submodule '~a'...~%") + name) + (submodule-update submodule) + + ;; Recurse in SUBMODULE. + (let ((directory (string-append + (repository-working-directory repository) + "/" (submodule-path submodule)))) + (with-repository directory repository + (update-submodules repository + #:log-port log-port))))) + (repository-submodules repository)) + (format (current-error-port) + (G_ "Support for submodules is missing; \ +please upgrade Guile-Git.~%")))) + (define* (update-cached-checkout url #:key (ref '(branch . "master")) + recursive? + (log-port (%make-void-port "w")) (cache-directory (url-cache-directory - url (%repository-cache-directory)))) + url (%repository-cache-directory) + #:recursive? recursive?))) "Update the cached checkout of URL to REF in CACHE-DIRECTORY. Return two values: the cache directory name, and the SHA1 commit (a string) corresponding to REF. REF is pair whose key is [branch | commit | tag] and value the associated -data, respectively [ | | ]." +data, respectively [ | | ]. + +When RECURSIVE? is true, check out submodules as well, if any." (define canonical-ref ;; We used to require callers to specify "origin/" for each branch, which ;; made little sense since the cache should be transparent to them. So @@ -150,6 +241,8 @@ data, respectively [ | | ]." ;; Only fetch remote if it has not been cloned just before. (when cache-exists? (remote-fetch (remote-lookup repository "origin"))) + (when recursive? + (update-submodules repository #:log-port log-port)) (let ((oid (switch-to-ref repository canonical-ref))) ;; Reclaim file descriptors and memory mappings associated with @@ -162,6 +255,7 @@ data, respectively [ | | ]." (define* (latest-repository-commit store url #:key + recursive? (log-port (%make-void-port "w")) (cache-directory (%repository-cache-directory)) @@ -172,21 +266,33 @@ reference to be checkout, once the repository is fetched, is specified by REF. REF is pair whose key is [branch | commit | tag] and value the associated data, respectively [ | | ]. +When RECURSIVE? is true, check out submodules as well, if any. + Git repositories are kept in the cache directory specified by %repository-cache-directory parameter. Log progress and checkout info to LOG-PORT." (define (dot-git? file stat) (and (string=? (basename file) ".git") - (eq? 'directory (stat:type stat)))) + (or (eq? 'directory (stat:type stat)) + + ;; Submodule checkouts end up with a '.git' regular file that + ;; contains metadata about where their actual '.git' directory + ;; lives. + (and recursive? + (eq? 'regular (stat:type stat)))))) (format log-port "updating checkout of '~a'...~%" url) (let*-values (((checkout commit) (update-cached-checkout url + #:recursive? recursive? #:ref ref #:cache-directory - (url-cache-directory url cache-directory))) + (url-cache-directory url cache-directory + #:recursive? + recursive?) + #:log-port log-port)) ((name) (url+commit->name url commit))) (format log-port "retrieved commit ~a~%" commit) @@ -205,9 +311,10 @@ Log progress and checkout info to LOG-PORT." git-checkout? (url git-checkout-url) (branch git-checkout-branch (default "master")) - (commit git-checkout-commit (default #f))) + (commit git-checkout-commit (default #f)) + (recursive? git-checkout-recursive? (default #f))) -(define* (latest-repository-commit* url #:key ref log-port) +(define* (latest-repository-commit* url #:key ref recursive? log-port) ;; Monadic variant of 'latest-repository-commit'. (lambda (store) ;; The caller--e.g., (guix scripts build)--may not handle 'git-error' so @@ -216,7 +323,9 @@ Log progress and checkout info to LOG-PORT." (catch 'git-error (lambda () (values (latest-repository-commit store url - #:ref ref #:log-port log-port) + #:ref ref + #:recursive? recursive? + #:log-port log-port) store)) (lambda (key error . _) (raise (condition @@ -238,9 +347,14 @@ Log progress and checkout info to LOG-PORT." ;; "Compile" CHECKOUT by updating the local checkout and adding it to the ;; store. (match checkout - (($ url branch commit) + (($ url branch commit recursive?) (latest-repository-commit* url #:ref (if commit `(commit . ,commit) `(branch . ,branch)) + #:recursive? recursive? #:log-port (current-error-port))))) + +;; Local Variables: +;; eval: (put 'with-repository 'scheme-indent-function 2) +;; End: diff --git a/guix/import/opam.scm b/guix/import/opam.scm index c254db5f2c..7b2e832e92 100644 --- a/guix/import/opam.scm +++ b/guix/import/opam.scm @@ -1,4 +1,3 @@ -;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2018 Julien Lepiller ;;; ;;; This file is part of GNU Guix. @@ -90,8 +89,8 @@ (define-peg-pattern condition-lower all (and (ignore "<") (* SP) condition-string)) (define-peg-pattern condition-and all (and condition-form2 (* SP) (? (ignore "&")) (* SP) condition-form)) (define-peg-pattern condition-or all (and condition-form2 (* SP) (ignore "|") (* SP) condition-form)) -(define-peg-pattern condition-eq all (and condition-content (* SP) (ignore "=") (* SP) condition-content)) -(define-peg-pattern condition-neq all (and condition-content (* SP) (ignore (and "!" "=")) (* SP) condition-content)) +(define-peg-pattern condition-eq all (and (? condition-content) (* SP) (ignore "=") (* SP) condition-content)) +(define-peg-pattern condition-neq all (and (? condition-content) (* SP) (ignore (and "!" "=")) (* SP) condition-content)) (define-peg-pattern condition-content body (or condition-string condition-var)) (define-peg-pattern condition-content2 body (and condition-content (* SP) (not-followed-by (or "&" "=" "!")))) (define-peg-pattern condition-string all (and QUOTE (* STRCHR) QUOTE)) @@ -117,7 +116,11 @@ path to the repository." (lambda (dir) (string-join (cdr (string-split dir #\.)) ".")) versions))) - (latest-version versions)) + ;; Workaround for janestreet re-versionning + (let ((v-versions (filter (lambda (version) (string-prefix? "v" version)) versions))) + (if (null? v-versions) + (latest-version versions) + (string-append "v" (latest-version (map (lambda (version) (substring version 1)) v-versions)))))) (begin (format #t (G_ "Package not found in opam repository: ~a~%") package) #f)))) @@ -127,12 +130,17 @@ path to the repository." (lambda _ (peg:tree (match-pattern records (get-string-all (current-input-port))))))) +(define (substitute-char str what with) + (string-join (string-split str what) with)) + (define (ocaml-name->guix-name name) - (cond - ((equal? name "ocamlfind") "ocaml-findlib") - ((string-prefix? "ocaml" name) name) - ((string-prefix? "conf-" name) (substring name 5)) - (else (string-append "ocaml-" name)))) + (substitute-char + (cond + ((equal? name "ocamlfind") "ocaml-findlib") + ((string-prefix? "ocaml" name) name) + ((string-prefix? "conf-" name) (substring name 5)) + (else (string-append "ocaml-" name))) + #\_ "-")) (define (metadata-ref file lookup) (fold (lambda (record acc) @@ -234,7 +242,9 @@ path to the repository." (values `(package (name ,(ocaml-name->guix-name name)) - (version ,version) + (version ,(if (string-prefix? "v" version) + (substring version 1) + version)) (source (origin (method url-fetch) @@ -247,6 +257,10 @@ path to the repository." ,@(if (null? native-inputs) '() `((native-inputs ,(list 'quasiquote native-inputs)))) + ,@(if (equal? name (guix-name->opam-name (ocaml-name->guix-name name))) + '() + `((properties + ,(list 'quasiquote `((upstream-name . ,name)))))) (home-page ,(metadata-ref opam-content "homepage")) (synopsis ,(metadata-ref opam-content "synopsis")) (description ,(metadata-ref opam-content "description")) @@ -259,6 +273,11 @@ path to the repository." (opam->guix-package name)) #:guix-name ocaml-name->guix-name)) +(define (guix-name->opam-name name) + (if (string-prefix? "ocaml-" name) + (substring name 6) + name)) + (define (guix-package->opam-name package) "Given an OCaml PACKAGE built from OPAM, return the name of the package in OPAM." @@ -266,10 +285,9 @@ package in OPAM." (package-properties package) 'upstream-name)) (name (package-name package))) - (cond - (upstream-name upstream-name) - ((string-prefix? "ocaml-" name) (substring name 6)) - (else name)))) + (if upstream-name + upstream-name + (guix-name->opam-name name)))) (define (opam-package? package) "Return true if PACKAGE is an OCaml package from OPAM" diff --git a/guix/monads.scm b/guix/monads.scm index 6ae616aca9..6924471345 100644 --- a/guix/monads.scm +++ b/guix/monads.scm @@ -274,12 +274,23 @@ more optimizations." (_ #'generic-name)))))))))) -(define-syntax-parameter >>= +(define-syntax-rule (define-syntax-parameter-once name proc) + ;; Like 'define-syntax-parameter' but ensure the top-level binding for NAME + ;; does not get redefined. This works around a race condition in a + ;; multi-threaded context with Guile <= 2.2.4: . + (eval-when (load eval expand compile) + (define name + (if (module-locally-bound? (current-module) 'name) + (module-ref (current-module) 'name) + (make-syntax-transformer 'name 'syntax-parameter + (list proc)))))) + +(define-syntax-parameter-once >>= ;; The name 'bind' is already taken, so we choose this (obscure) symbol. (lambda (s) (syntax-violation '>>= ">>= (bind) used outside of 'with-monad'" s))) -(define-syntax-parameter return +(define-syntax-parameter-once return (lambda (s) (syntax-violation 'return "return used outside of 'with-monad'" s))) diff --git a/guix/profiles.scm b/guix/profiles.scm index efe5ecb9dc..6564526aee 100644 --- a/guix/profiles.scm +++ b/guix/profiles.scm @@ -63,6 +63,10 @@ &missing-generation-error missing-generation-error? missing-generation-error-generation + &unmatched-pattern-error + unmatched-pattern-error? + unmatched-pattern-error-pattern + unmatched-pattern-error-manifest manifest make-manifest manifest? @@ -156,6 +160,11 @@ (entry profile-collision-error-entry) ; (conflict profile-collision-error-conflict)) ; +(define-condition-type &unmatched-pattern-error &error + unmatched-pattern-error? + (pattern unmatched-pattern-error-pattern) ; + (manifest unmatched-pattern-error-manifest)) ; + (define-condition-type &missing-generation-error &profile-error missing-generation-error? (generation missing-generation-error-generation)) @@ -559,16 +568,21 @@ no match.." (->bool (manifest-lookup manifest pattern))) (define (manifest-matching-entries manifest patterns) - "Return all the entries of MANIFEST that match one of the PATTERNS." - (define predicates - (map entry-predicate patterns)) - - (define (matches? entry) - (any (lambda (pred) - (pred entry)) - predicates)) - - (filter matches? (manifest-entries manifest))) + "Return all the entries of MANIFEST that match one of the PATTERNS. Raise +an '&unmatched-pattern-error' if none of the entries of MANIFEST matches one +of PATTERNS." + (fold-right (lambda (pattern matches) + (match (filter (entry-predicate pattern) + (manifest-entries manifest)) + (() + (raise (condition + (&unmatched-pattern-error + (pattern pattern) + (manifest manifest))))) + (lst + (append lst matches)))) + '() + patterns)) (define (manifest-search-paths manifest) "Return the list of search path specifications that apply to MANIFEST, diff --git a/guix/scripts/build.scm b/guix/scripts/build.scm index 5a158799ae..fb7e04904d 100644 --- a/guix/scripts/build.scm +++ b/guix/scripts/build.scm @@ -308,7 +308,8 @@ strings like \"guile-next=stable-3.0\" meaning that packages are built using (package (inherit old) (version (string-append "git." branch)) - (source (git-checkout (url url) (branch branch))))) + (source (git-checkout (url url) (branch branch) + (recursive? #t))))) (let* ((replacements (evaluate-git-replacement-specs replacement-specs replace)) diff --git a/guix/scripts/pull.scm b/guix/scripts/pull.scm index 683ab3f059..3320200c07 100644 --- a/guix/scripts/pull.scm +++ b/guix/scripts/pull.scm @@ -216,30 +216,8 @@ true, display what would be built without actually building it." (define (honor-x509-certificates store) "Use the right X.509 certificates for Git checkouts over HTTPS." - ;; On distros such as CentOS 7, /etc/ssl/certs contains only a couple of - ;; files (instead of all the certificates) among which "ca-bundle.crt". On - ;; other distros /etc/ssl/certs usually contains the whole set of - ;; certificates along with "ca-certificates.crt". Try to choose the right - ;; one. - (let ((file (letrec-syntax ((choose - (syntax-rules () - ((_ file rest ...) - (let ((f file)) - (if (and f (file-exists? f)) - f - (choose rest ...)))) - ((_) - #f)))) - (choose (getenv "SSL_CERT_FILE") - "/etc/ssl/certs/ca-certificates.crt" - "/etc/ssl/certs/ca-bundle.crt"))) - (directory (or (getenv "SSL_CERT_DIR") "/etc/ssl/certs"))) - (if (or file - (and=> (stat directory #f) - (lambda (st) - (> (stat:nlink st) 2)))) - (set-tls-certificate-locations! directory file) - (honor-lets-encrypt-certificates! store)))) + (unless (honor-system-x509-certificates!) + (honor-lets-encrypt-certificates! store))) (define (report-git-error error) "Report the given Guile-Git error." diff --git a/guix/status.scm b/guix/status.scm index 984f329964..cd5027ef17 100644 --- a/guix/status.scm +++ b/guix/status.scm @@ -498,14 +498,12 @@ addition to build events." (spin! #f port)))))) (define erase-current-line* - (if (isatty?* port) - (lambda (port) + (if (and (not print-log?) (isatty?* port)) + (lambda () (erase-current-line port) (force-output port)) (const #t))) - (unless print-log? - (erase-current-line* port)) ;clear the spinner or progress bar (match event (('build-started drv . _) (let ((properties (derivation-properties @@ -530,6 +528,7 @@ addition to build events." (format port (info (G_ "building ~a...")) drv)))) (newline port)) (('build-succeeded drv . _) + (erase-current-line*) ;erase spinner or progress bar (when (or print-log? (not (extended-build-trace-supported?))) (format port (success (G_ "successfully built ~a")) drv) (newline port)) @@ -542,6 +541,7 @@ addition to build events." (length ongoing)) (map build-derivation ongoing))))) (('build-failed drv . _) + (erase-current-line*) ;erase spinner or progress bar (format port (failure (G_ "build of ~a failed")) drv) (newline port) (match (derivation-log-file drv) diff --git a/guix/ui.scm b/guix/ui.scm index 9eab4ba3f7..f0465519b6 100644 --- a/guix/ui.scm +++ b/guix/ui.scm @@ -643,6 +643,14 @@ or remove one of them from the profile.") (leave (G_ "generation ~a of profile '~a' does not exist~%") (missing-generation-error-generation c) (profile-error-profile c))) + ((unmatched-pattern-error? c) + (let ((pattern (unmatched-pattern-error-pattern c))) + (leave (G_ "package '~a~@[@~a~]~@[:~a~]' not found in profile~%") + (manifest-pattern-name pattern) + (manifest-pattern-version pattern) + (match (manifest-pattern-output pattern) + ("out" #f) + (output output))))) ((profile-collision-error? c) (let ((entry (profile-collision-error-entry c)) (conflict (profile-collision-error-conflict c))) diff --git a/nix/libstore/build.cc b/nix/libstore/build.cc index f4a866c68f..06bc7601b9 100644 --- a/nix/libstore/build.cc +++ b/nix/libstore/build.cc @@ -2502,6 +2502,10 @@ void DerivationGoal::registerOutputs() throw Error(format("derivation `%1%' may not be deterministic: output `%2%' differs") % drvPath % path); } + + if (settings.printBuildTrace) + printMsg(lvlError, format("@ build-succeeded %1% -") % drvPath); + continue; } diff --git a/tests/guix-package.sh b/tests/guix-package.sh index 7eeb4304d1..0d60481895 100644 --- a/tests/guix-package.sh +++ b/tests/guix-package.sh @@ -1,5 +1,5 @@ # GNU Guix --- Functional package management for GNU -# Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès +# Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès # Copyright © 2013 Nikita Karetnikov # # This file is part of GNU Guix. @@ -97,6 +97,11 @@ then false; else true; fi if guix package --bootstrap -i "guile-bootstrap:does-not-exist" -p "$profile"; then false; else true; fi +# Make sure we get an error when trying to remove something that's not +# installed. +if guix package --bootstrap -r something-not-installed -p "$profile"; +then false; else true; fi + # Check whether `--list-available' returns something sensible. guix package -p "$profile" -A 'gui.*e' | grep guile diff --git a/tests/opam.scm b/tests/opam.scm index e0ec5ef3d4..e8c0d15198 100644 --- a/tests/opam.scm +++ b/tests/opam.scm @@ -192,6 +192,8 @@ url { ("{>= \"0.2.0\" | build}" . (condition-or (condition-greater-or-equal (condition-string "0.2.0")) - (condition-var "build")))))) + (condition-var "build"))) + ("{ = \"1.0+beta19\" }" . (condition-eq + (condition-string "1.0+beta19")))))) (test-end "opam") diff --git a/tests/profiles.scm b/tests/profiles.scm index 9a05030aff..eef93e24cf 100644 --- a/tests/profiles.scm +++ b/tests/profiles.scm @@ -93,10 +93,7 @@ (test-assert "manifest-matching-entries" (let* ((e (list guile-2.0.9 guile-2.0.9:debug)) (m (manifest e))) - (and (null? (manifest-matching-entries m - (list (manifest-pattern - (name "python"))))) - (equal? e + (and (equal? e (manifest-matching-entries m (list (manifest-pattern (name "guile") @@ -107,6 +104,15 @@ (name "guile") (version "2.0.9")))))))) +(test-assert "manifest-matching-entries, no match" + (let ((m (manifest (list guile-2.0.9))) + (p (manifest-pattern (name "python")))) + (guard (c ((unmatched-pattern-error? c) + (and (eq? p (unmatched-pattern-error-pattern c)) + (eq? m (unmatched-pattern-error-manifest c))))) + (manifest-matching-entries m (list p)) + #f))) + (test-assert "manifest-remove" (let* ((m0 (manifest (list guile-2.0.9 guile-2.0.9:debug))) (m1 (manifest-remove m0 @@ -165,8 +171,7 @@ (test-assert "manifest-transaction-effects" (let* ((m0 (manifest (list guile-1.8.8))) (t (manifest-transaction - (install (list guile-2.0.9 glibc)) - (remove (list (manifest-pattern (name "coreutils"))))))) + (install (list guile-2.0.9 glibc))))) (let-values (((remove install upgrade downgrade) (manifest-transaction-effects m0 t))) (and (null? remove) (null? downgrade) diff --git a/tests/store.scm b/tests/store.scm index e28c0c5aaa..df66feaebb 100644 --- a/tests/store.scm +++ b/tests/store.scm @@ -917,6 +917,19 @@ (build-mode check)) #f)))))))) +(test-assert "build-succeeded trace in check mode" + (string-contains + (call-with-output-string + (lambda (port) + (let ((d (build-expression->derivation + %store "foo" '(mkdir (assoc-ref %outputs "out")) + #:guile-for-build + (package-derivation %store %bootstrap-guile)))) + (build-derivations %store (list d)) + (parameterize ((current-build-output-port port)) + (build-derivations %store (list d) (build-mode check)))))) + "@ build-succeeded")) + (test-assert "build multiple times" (with-store store ;; Ask to build twice.