diff options
Diffstat (limited to 'gnu')
53 files changed, 1628 insertions, 193 deletions
diff --git a/gnu/build/linux-container.scm b/gnu/build/linux-container.scm index 3fccc9addb..b71d6a5f88 100644 --- a/gnu/build/linux-container.scm +++ b/gnu/build/linux-container.scm @@ -24,6 +24,7 @@ #:use-module (guix utils) #:use-module (guix build utils) #:use-module (guix build syscalls) + #:use-module (gnu system file-systems) ;<file-system> #:use-module ((gnu build file-systems) #:select (mount-file-system)) #:export (user-namespace-supported? unprivileged-user-namespace-supported? @@ -72,8 +73,9 @@ exists." ;; specification: ;; https://raw.githubusercontent.com/docker/libcontainer/master/SPEC.md (define* (mount-file-systems root mounts #:key mount-/sys? mount-/proc?) - "Mount the essential file systems and the those in the MOUNTS list relative -to ROOT, then make ROOT the new root directory for the process." + "Mount the essential file systems and the those in MOUNTS, a list of +<file-system> objects, relative to ROOT; then make ROOT the new root directory +for the process." (define (scope dir) (string-append root dir)) @@ -141,8 +143,9 @@ to ROOT, then make ROOT the new root directory for the process." (symlink "/proc/self/fd/2" (scope "/dev/stderr")) ;; Mount user-specified file systems. - (for-each (lambda (spec) - (mount-file-system spec #:root root)) + (for-each (lambda (file-system) + (mount-file-system (file-system->spec file-system) + #:root root)) mounts) ;; Jail the process inside the container's root file system. @@ -197,8 +200,8 @@ corresponds to the symbols in NAMESPACES." (define (run-container root mounts namespaces host-uids thunk) "Run THUNK in a new container process and return its PID. ROOT specifies -the root directory for the container. MOUNTS is a list of file system specs -that specify the mapping of host file systems into the container. NAMESPACES +the root directory for the container. MOUNTS is a list of <file-system> +objects that specify file systems to mount inside the container. NAMESPACES is a list of symbols that correspond to the possible Linux namespaces: mnt, ipc, uts, user, and net. HOST-UIDS specifies the number of host user identifiers to map into the user namespace." @@ -256,8 +259,8 @@ host user identifiers to map into the user namespace." (define* (call-with-container mounts thunk #:key (namespaces %namespaces) (host-uids 1)) "Run THUNK in a new container process and return its exit status. -MOUNTS is a list of file system specs that specify the mapping of host file -systems into the container. NAMESPACES is a list of symbols corresponding to +MOUNTS is a list of <file-system> objects that specify file systems to mount +inside the container. NAMESPACES is a list of symbols corresponding to the identifiers for Linux namespaces: mnt, ipc, uts, pid, user, and net. By default, all namespaces are used. HOST-UIDS is the number of host user identifiers to map into the container's user namespace, if there is one. By diff --git a/gnu/local.mk b/gnu/local.mk index e1fd8ce8a9..ce0fdebe03 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -8,6 +8,7 @@ # Copyright © 2016 Rene Saavedra <rennes@openmailbox.org> # Copyright © 2016 Adonay "adfeno" Felipe Nogueira <https://libreplanet.org/wiki/User:Adfeno> <adfeno@openmailbox.org> # Copyright © 2016 Ricardo Wurmus <rekado@elephly.net> +# Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com> # # This file is part of GNU Guix. # @@ -348,6 +349,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/swig.scm \ %D%/packages/sxiv.scm \ %D%/packages/synergy.scm \ + %D%/packages/syndication.scm \ %D%/packages/task-management.scm \ %D%/packages/tbb.scm \ %D%/packages/tcl.scm \ @@ -361,6 +363,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/tmux.scm \ %D%/packages/tor.scm \ %D%/packages/tv.scm \ + %D%/packages/uml.scm \ %D%/packages/unrtf.scm \ %D%/packages/upnp.scm \ %D%/packages/uucp.scm \ @@ -401,6 +404,7 @@ GNU_SYSTEM_MODULES = \ %D%/services/dbus.scm \ %D%/services/desktop.scm \ %D%/services/dict.scm \ + %D%/services/kerberos.scm \ %D%/services/lirc.scm \ %D%/services/mail.scm \ %D%/services/mcron.scm \ @@ -541,6 +545,7 @@ dist_patch_DATA = \ %D%/packages/patches/gcc-arm-link-spec-fix.patch \ %D%/packages/patches/gcc-cross-environment-variables.patch \ %D%/packages/patches/gcc-libvtv-runpath.patch \ + %D%/packages/patches/gcc-strmov-store-file-names.patch \ %D%/packages/patches/gcc-5.0-libvtv-runpath.patch \ %D%/packages/patches/gcc-6-arm-none-eabi-multilib.patch \ %D%/packages/patches/gcc-6-cross-environment-variables.patch \ @@ -661,6 +666,7 @@ dist_patch_DATA = \ %D%/packages/patches/libtiff-CVE-2016-5321.patch \ %D%/packages/patches/libtiff-CVE-2016-5323.patch \ %D%/packages/patches/libtiff-CVE-2016-5652.patch \ + %D%/packages/patches/libtiff-CVE-2016-9273.patch \ %D%/packages/patches/libtiff-oob-accesses-in-decode.patch \ %D%/packages/patches/libtiff-oob-write-in-nextdecode.patch \ %D%/packages/patches/libtool-skip-tests2.patch \ @@ -681,6 +687,7 @@ dist_patch_DATA = \ %D%/packages/patches/libwmf-CVE-2015-4695.patch \ %D%/packages/patches/libwmf-CVE-2015-4696.patch \ %D%/packages/patches/libxslt-generated-ids.patch \ + %D%/packages/patches/libxslt-CVE-2016-4738.patch \ %D%/packages/patches/linux-pam-no-setfsuid.patch \ %D%/packages/patches/lirc-localstatedir.patch \ %D%/packages/patches/llvm-for-extempore.patch \ @@ -713,7 +720,14 @@ dist_patch_DATA = \ %D%/packages/patches/mupdf-build-with-openjpeg-2.1.patch \ %D%/packages/patches/mupdf-CVE-2016-6265.patch \ %D%/packages/patches/mupdf-CVE-2016-6525.patch \ + %D%/packages/patches/mupdf-CVE-2016-7504.patch \ + %D%/packages/patches/mupdf-CVE-2016-7505.patch \ + %D%/packages/patches/mupdf-CVE-2016-7506.patch \ + %D%/packages/patches/mupdf-CVE-2016-7563.patch \ + %D%/packages/patches/mupdf-CVE-2016-7564.patch \ %D%/packages/patches/mupdf-CVE-2016-8674.patch \ + %D%/packages/patches/mupdf-CVE-2016-9017.patch \ + %D%/packages/patches/mupdf-CVE-2016-9136.patch \ %D%/packages/patches/mupen64plus-ui-console-notice.patch \ %D%/packages/patches/musl-CVE-2016-8859.patch \ %D%/packages/patches/mutt-store-references.patch \ @@ -822,6 +836,7 @@ dist_patch_DATA = \ %D%/packages/patches/ruby-rack-ignore-failing-test.patch \ %D%/packages/patches/ruby-symlinkfix.patch \ %D%/packages/patches/ruby-tzinfo-data-ignore-broken-test.patch\ + %D%/packages/patches/ruby-yard-fix-skip-of-markdown-tests.patch \ %D%/packages/patches/sed-hurd-path-max.patch \ %D%/packages/patches/scheme48-tests.patch \ %D%/packages/patches/scotch-test-threading.patch \ diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 994c6e4e04..7d2e2d2a4b 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -47,6 +47,7 @@ #:use-module (gnu packages compression) #:use-module (gnu packages curl) #:use-module (gnu packages databases) + #:use-module (gnu packages emacs) #:use-module (gnu packages file) #:use-module (gnu packages flex) #:use-module (gnu packages fltk) @@ -55,11 +56,13 @@ #:use-module (gnu packages glib) #:use-module (gnu packages gtk) #:use-module (gnu packages gnome) + #:use-module (gnu packages gnunet) ; libmicrohttpd #:use-module (gnu packages gperf) #:use-module (gnu packages image) #:use-module (gnu packages ncurses) #:use-module (gnu packages qt) #:use-module (gnu packages linux) + #:use-module (gnu packages llvm) #:use-module (gnu packages mp3) ;taglib #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) @@ -67,7 +70,9 @@ #:use-module (gnu packages python) #:use-module (gnu packages rdf) #:use-module (gnu packages readline) + #:use-module (gnu packages tls) #:use-module (gnu packages video) + #:use-module (gnu packages vim) ;xxd #:use-module (gnu packages webkit) #:use-module (gnu packages xiph) #:use-module (gnu packages xml) @@ -928,6 +933,36 @@ PS, and DAB+.") "Faust is a programming language for realtime audio signal processing.") (license license:gpl2+))) +(define-public faust-2 + (package + (inherit faust) + (version "2.0.a51") + (source (origin + (method url-fetch) + (uri (string-append + "mirror://sourceforge/faudiostream/faust-" version ".tgz")) + (sha256 + (base32 + "1yryjqfqmxs7lxy95hjgmrncvl9kig3rcsmg0v49ghzz7vs7haxf")))) + (build-system gnu-build-system) + (arguments + (substitute-keyword-arguments (package-arguments faust) + ((#:make-flags flags) + `(list (string-append "prefix=" (assoc-ref %outputs "out")) + "world")))) + (native-inputs + `(("llvm" ,llvm-with-rtti) + ("which" ,which) + ("xxd" ,vim) + ("ctags" ,emacs-minimal) ; for ctags + ("pkg-config" ,pkg-config))) + (inputs + `(("libsndfile" ,libsndfile) + ("libmicrohttpd" ,libmicrohttpd) + ("ncurses" ,ncurses) + ("openssl" ,openssl) + ("zlib" ,zlib))))) + (define-public freepats (package (name "freepats") diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 4dfac15040..5444f0a2a1 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -2048,7 +2048,7 @@ identify enrichments with functional annotations of the genome.") (define-public diamond (package (name "diamond") - (version "0.8.23") + (version "0.8.26") (source (origin (method url-fetch) (uri (string-append @@ -2057,7 +2057,7 @@ identify enrichments with functional annotations of the genome.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0xpcq3fbk4c52xbpgyk5brl58rljvl83bg8nkxy8vs00pxanm7i2")))) + "17s38pgjih6yc2z81040pircbv60c9wr33mbcyki2rfpv8rbxlh0")))) (build-system cmake-build-system) (arguments '(#:tests? #f ; no "check" target @@ -6869,7 +6869,7 @@ downloaded from Encode.") (define-public r-org-hs-eg-db (package (name "r-org-hs-eg-db") - (version "3.3.0") + (version "3.4.0") (source (origin (method url-fetch) ;; We cannot use bioconductor-uri here because this tarball is @@ -6879,7 +6879,7 @@ downloaded from Encode.") "org.Hs.eg.db_" version ".tar.gz")) (sha256 (base32 - "09zb43yjd82ny210n5a0wsrji4w56l2r6ana6d9lx0nn9mzd7rzp")))) + "19mg64pw8zcvb9yxzzyf7caz1kvdrkfsj1hd84bzq7crrh8kc4y6")))) (properties `((upstream-name . "org.Hs.eg.db"))) (build-system r-build-system) @@ -6895,7 +6895,7 @@ annotations for the human genome.") (define-public r-org-ce-eg-db (package (name "r-org-ce-eg-db") - (version "3.3.0") + (version "3.4.0") (source (origin (method url-fetch) ;; We cannot use bioconductor-uri here because this tarball is @@ -6905,7 +6905,7 @@ annotations for the human genome.") "org.Ce.eg.db_" version ".tar.gz")) (sha256 (base32 - "17mvb2ci2jgac3zi420cbf70n4zswqinzxlk1v2fjnp8vvydl2fw")))) + "12llfzrrc09kj2wzbisdspv38qzkzgpsbn8kv7qkwg746k3pq436")))) (properties `((upstream-name . "org.Ce.eg.db"))) (build-system r-build-system) @@ -6921,7 +6921,7 @@ annotations for the genome of the model worm Caenorhabditis elegans.") (define-public r-org-dm-eg-db (package (name "r-org-dm-eg-db") - (version "3.3.0") + (version "3.4.0") (source (origin (method url-fetch) ;; We cannot use bioconductor-uri here because this tarball is @@ -6931,7 +6931,7 @@ annotations for the genome of the model worm Caenorhabditis elegans.") "org.Dm.eg.db_" version ".tar.gz")) (sha256 (base32 - "15kzvw78xwa54yk1d69l6pmgny4726ydpdkk8lic26vr0yiwicla")))) + "1vzbphbrh1cf7xi5cksia9xy9a9l42js2z2qsajvjxvddiphrb7j")))) (properties `((upstream-name . "org.Dm.eg.db"))) (build-system r-build-system) @@ -6947,7 +6947,7 @@ annotations for the genome of the model fruit fly Drosophila melanogaster.") (define-public r-org-mm-eg-db (package (name "r-org-mm-eg-db") - (version "3.3.0") + (version "3.4.0") (source (origin (method url-fetch) ;; We cannot use bioconductor-uri here because this tarball is @@ -6957,7 +6957,7 @@ annotations for the genome of the model fruit fly Drosophila melanogaster.") "org.Mm.eg.db_" version ".tar.gz")) (sha256 (base32 - "0r939vfmsqqdwfimix1nv0bkhnixawy9c6avbclrncfanw3kgjax")))) + "1lykjqjaf01fmgg3cvfcvwd5xjq6zc5vbxnm5r4l32fzvl89q50c")))) (properties `((upstream-name . "org.Mm.eg.db"))) (build-system r-build-system) diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index 8d69def5b7..0323a51838 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -285,7 +285,7 @@ Language.") (define-public mariadb (package (name "mariadb") - (version "10.1.18") + (version "10.1.19") (source (origin (method url-fetch) (uri (string-append "https://downloads.mariadb.org/f/" @@ -293,7 +293,7 @@ Language.") name "-" version ".tar.gz")) (sha256 (base32 - "0wrvhyck95czhz553834i9im7ljvn8k2byakcinlji7zx43njcyp")))) + "108s4mimdbmgmmn5pcr9a405j70cyny9adzv49s75lg22krp74sv")))) (build-system cmake-build-system) (arguments '(#:configure-flags @@ -353,14 +353,14 @@ as a drop-in replacement of MySQL.") (define-public postgresql (package (name "postgresql") - (version "9.5.4") + (version "9.5.5") (source (origin (method url-fetch) (uri (string-append "https://ftp.postgresql.org/pub/source/v" version "/postgresql-" version ".tar.bz2")) (sha256 (base32 - "1l3fqxlpxgl6nrcd4h6lpi2hsiv56yg83n3xrn704rmdch8mfpng")))) + "157kf6mdazmxfmd11f0akya2xcz6sfgprn7yqc26dpklps855ih2")))) (build-system gnu-build-system) (arguments `(#:phases @@ -375,7 +375,7 @@ as a drop-in replacement of MySQL.") (inputs `(("readline" ,readline) ("zlib" ,zlib))) - (home-page "http://www.postgresql.org/") + (home-page "https://www.postgresql.org/") (synopsis "Powerful object-relational database system") (description "PostgreSQL is a powerful object-relational database system. It is fully diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index 9eb37957dc..e190e508a7 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -358,7 +358,8 @@ Go. It also includes runtime support libraries for these languages.") (sha256 (base32 "0fihlcy5hnksdxk0sn6bvgnyq8gfrgs8m794b1jxwd1dxinzg3b0")) - (patches (search-patches "gcc-5.0-libvtv-runpath.patch")))))) + (patches (search-patches "gcc-strmov-store-file-names.patch" + "gcc-5.0-libvtv-runpath.patch")))))) (define-public gcc-6 (package @@ -371,7 +372,8 @@ Go. It also includes runtime support libraries for these languages.") (sha256 (base32 "1idpf43988v1a6i8lw9ak1r7igcfg1bm5kn011iydlr2qygmhi4r")) - (patches (search-patches "gcc-5.0-libvtv-runpath.patch")))))) + (patches (search-patches "gcc-strmov-store-file-names.patch" + "gcc-5.0-libvtv-runpath.patch")))))) ;; Note: When changing the default gcc version, update ;; the gcc-toolchain-* definitions accordingly. diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index b246d3a6ad..5d4293c290 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -28,6 +28,7 @@ (define-module (gnu packages guile) #:use-module (guix licenses) #:use-module (gnu packages) + #:use-module (gnu packages aspell) #:use-module (gnu packages bash) #:use-module (gnu packages bdw-gc) #:use-module (gnu packages gawk) @@ -1373,4 +1374,40 @@ an abstraction over raw memory. It's also more powerful than the C type system, elevating types to first-class status.") (license gpl3+))) +(define-public guile-aspell + (package + (name "guile-aspell") + (version "0.3") + (source (origin + (method url-fetch) + (uri (string-append + "http://lonelycactus.com/tarball/guile_aspell-" + version ".tar.gz")) + (sha256 + (base32 + "1wknn57x2qcsbn7zw6sbn1ma6fjsg8cvpnf78ak47s8jw6k6j75n")))) + (build-system gnu-build-system) + (arguments + '(#:configure-flags (list (string-append "--with-guilesitedir=" + (assoc-ref %outputs "out") + "/share/guile/site/2.0")) + #:phases (modify-phases %standard-phases + (add-before 'build 'set-libaspell-file-name + (lambda* (#:key inputs #:allow-other-keys) + (let ((aspell (assoc-ref inputs "aspell"))) + (substitute* "aspell/aspell.scm" + (("\"libaspell\\.so\"") + (string-append "\"" aspell + "/lib/libaspell\""))) + #t)))))) + (native-inputs `(("pkg-config" ,pkg-config))) + (inputs `(("guile" ,guile-2.0) + ("aspell" ,aspell))) + (home-page "https://github.com/spk121/guile-aspell") + (synopsis "Spell-checking from Guile") + (description + "guile-aspell is a Guile Scheme library for comparing a string against a +dictionary and suggesting spelling corrections.") + (license gpl3+))) + ;;; guile.scm ends here diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index 47544a629e..a40b212710 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -299,7 +299,8 @@ collection of tools for doing simple manipulations of TIFF images.") "libtiff-CVE-2016-5314.patch" "libtiff-CVE-2016-5321.patch" "libtiff-CVE-2016-5323.patch" - "libtiff-CVE-2016-5652.patch")))))) + "libtiff-CVE-2016-5652.patch" + "libtiff-CVE-2016-9273.patch")))))) (define-public libwmf (package diff --git a/gnu/packages/imagemagick.scm b/gnu/packages/imagemagick.scm index 071d42a165..8dcfbc72c5 100644 --- a/gnu/packages/imagemagick.scm +++ b/gnu/packages/imagemagick.scm @@ -43,14 +43,14 @@ (define-public imagemagick (package (name "imagemagick") - (version "6.9.6-3") + (version "6.9.6-4") (source (origin (method url-fetch) (uri (string-append "mirror://imagemagick/ImageMagick-" version ".tar.xz")) (sha256 (base32 - "0min87mdhv6bni5hz99i3j1wkrjrqp88dx4ckjzmilg28p9ick63")))) + "1mv2qihr9jfagz1dds42q46zirh0dvx0rai7pkqmbzy2bp2c48ym")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--with-frozenpaths" "--without-gcc-arch") diff --git a/gnu/packages/inkscape.scm b/gnu/packages/inkscape.scm index 16f83fc474..d98a4cd7a9 100644 --- a/gnu/packages/inkscape.scm +++ b/gnu/packages/inkscape.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 John Darrington <jmd@gnu.org> ;;; Copyright © 2014, 2016 Mark H Weaver <mhw@netris.org> +;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -80,13 +81,13 @@ `(;; Add '-std=c++11', required by recent versions of GLibmm & co. ;; Use '-g0' to reduce disk usage during the build. #:configure-flags '("CXXFLAGS=-g0 -O2 -fopenmp -std=c++11") - - #:phases (alist-cons-after - 'unpack 'fix-test-includes - (lambda _ - (substitute* "src/cxxtests.cpp" - (("\\.\\./\\.\\./src") "../src"))) - %standard-phases))) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-test-includes + (lambda _ + (substitute* "src/cxxtests.cpp" + (("\\.\\./\\.\\./src") "../src")) + #t))))) (home-page "http://inkscape.org/") (synopsis "Vector graphics editor") (description "Inkscape is a vector graphics editor. What sets Inkscape diff --git a/gnu/packages/kde.scm b/gnu/packages/kde.scm index 34a5046d20..82e7ed2cc7 100644 --- a/gnu/packages/kde.scm +++ b/gnu/packages/kde.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2016 Thomas Danckaert <post@thomasdanckaert.be> ;;; ;;; This file is part of GNU Guix. ;;; @@ -27,6 +28,63 @@ #:use-module (gnu packages tls) #:use-module (gnu packages qt)) +(define-public kdevelop-pg-qt + (package + (name "kdevelop-pg-qt") + (version "2.0.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/KDE/kdevelop-pg-qt/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "1av8plqz7hyhrd07avnmn6ryslqlarmxn0pw7swzvb6ddiqp59j4")))) + (native-inputs + `(("extra-cmake-modules" ,extra-cmake-modules))) + (inputs + `(("qtbase" ,qtbase))) + (build-system cmake-build-system) + (home-page "https://kde.org") + (synopsis "Parser generator library for KDevplatform") + (description "KDevelop-PG-Qt is the parser generator used in KDevplatform +for some KDevelop language plugins (Ruby, PHP, CSS...).") + (license license:lgpl2.0+))) + +(define-public libkomparediff2 + (package + (name "libkomparediff2") + (version "16.08.2") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/KDE/libkomparediff2/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1lafifrwfxvn0jwhz67kwv7m38lm4syips3fq77rwcvfhmkiijmh")))) + (native-inputs + `(("extra-cmake-modules" ,extra-cmake-modules) + ("pkg-config" ,pkg-config))) + (inputs + `(("kcodecs" ,kcodecs) + ("kconfig" ,kconfig) + ("kcoreaddons" ,kcoreaddons) + ("ki18n" ,ki18n) + ("kio" ,kio) + ("kxmlgui" ,kxmlgui) + ("qtbase" ,qtbase))) + (build-system cmake-build-system) + (home-page "https://kde.org") + (synopsis "Library to compare files and strings, used in Kompare and KDevelop") + (description "Libkomparediff2 is a library to work with diffs and patches, +used in KDE development tools Kompare and KDevelop.") + + ;; GPL, some files are also licensed under LGPL or BSD, see COPYING in the + ;; source archive + (license (list license:gpl2+ license:lgpl2.0+ license:bsd-3)))) + (define-public qca (package (name "qca") diff --git a/gnu/packages/libusb.scm b/gnu/packages/libusb.scm index 2c66eca372..215cecee1f 100644 --- a/gnu/packages/libusb.scm +++ b/gnu/packages/libusb.scm @@ -237,4 +237,4 @@ HID-Class devices.") ;; HIDAPI can be used under one of three licenses. (license (list gpl3 bsd-3 - non-copyleft "file://LICENSE-orig.txt")))) + (non-copyleft "file://LICENSE-orig.txt"))))) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 01f5d6c88d..a3c65979d9 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -15,6 +15,7 @@ ;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2016 David Craven <david@craven.ch> ;;; Copyright © 2016 John Darrington <jmd@gnu.org> +;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2016 Rene Saavedra <rennes@openmailbox.org> ;;; ;;; This file is part of GNU Guix. @@ -63,6 +64,7 @@ #:use-module (gnu packages perl) #:use-module (gnu packages pciutils) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages popt) #:use-module (gnu packages pulseaudio) #:use-module (gnu packages python) #:use-module (gnu packages readline) @@ -325,14 +327,14 @@ It has been modified to remove all non-free binary blobs.") (define %intel-compatible-systems '("x86_64-linux" "i686-linux")) (define-public linux-libre - (make-linux-libre "4.8.6" - "07h618x13yyp3lnf77px4v60pdcz7il0fa7p466wa5gp3h0yhvmi" + (make-linux-libre "4.8.7" + "1jbwm131zv59iyr6qw7qcbcfz49qqb2hhx30230gb99flyc5h4hg" %intel-compatible-systems #:configuration-file kernel-config)) (define-public linux-libre-4.4 - (make-linux-libre "4.4.30" - "16jjcjfbf3s4mrifk6v7kmnm8l7yywispfap98wcv6gw6mv9sxdx" + (make-linux-libre "4.4.31" + "1s4xdllvxw02g4yqlafcacgsgdpxccf6dlqafpqffm873q1y9n4d" %intel-compatible-systems #:configuration-file kernel-config)) @@ -343,8 +345,8 @@ It has been modified to remove all non-free binary blobs.") #:configuration-file kernel-config)) ;; Avoid rebuilding kernel variants when there is a minor version bump. -(define %linux-libre-version "4.8.6") -(define %linux-libre-hash "07h618x13yyp3lnf77px4v60pdcz7il0fa7p466wa5gp3h0yhvmi") +(define %linux-libre-version "4.8.7") +(define %linux-libre-hash "1jbwm131zv59iyr6qw7qcbcfz49qqb2hhx30230gb99flyc5h4hg") (define-public linux-libre-arm-generic (make-linux-libre %linux-libre-version @@ -3140,3 +3142,80 @@ activity of the GPU as a whole, which is also accurate during OpenCL computations, as well as separate component statistics that are only meaningful under OpenGL graphics workloads.") (license license:gpl3))) + +(define-public efivar + (package + (name "efivar") + (version "30") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/rhinstaller/" name + "/releases/download/" version "/" name + "-" version ".tar.bz2")) + (sha256 + (base32 + "12qjnm44yi55ffqxjpgrxy82s89yjziy84w2rfjjknsd8flj0mqz")))) + (build-system gnu-build-system) + (arguments + `(;; Tests require a UEFI system and is not detected in the chroot. + #:tests? #f + #:make-flags (list (string-append "prefix=" %output) + (string-append "libdir=" %output "/lib") + (string-append "LDFLAGS=-Wl,-rpath=" %output "/lib")) + #:phases + (modify-phases %standard-phases + (delete 'configure)))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("popt" ,popt))) + (home-page "https://github.com/rhinstaller/efivar") + (synopsis "Tool and library to manipulate EFI variables") + (description "This package provides a library and a command line +interface to the variable facility of UEFI boot firmware.") + (license license:lgpl2.1+))) + +(define-public efibootmgr + (package + (name "efibootmgr") + (version "14") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/rhinstaller/" name + "/releases/download/" version "/" name + "-" version ".tar.bz2")) + (sha256 + (base32 + "1n3sydvpr6yl040hhf460k7mrxby7laqd9dqs6pq0js1hijc2zip")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; No tests. + #:make-flags (list (string-append "prefix=" %output) + (string-append "libdir=" %output "/lib") + ;; Override CFLAGS to add efivar include directory. + (string-append "CFLAGS=-O2 -g -flto -I" + (assoc-ref %build-inputs "efivar") + "/include/efivar")) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'branding + ;; Replace default loader path with something more familiar. + (lambda _ + (substitute* "src/efibootmgr.c" + (("EFI\\\\\\\\redhat") ; Matches 'EFI\\redhat'. + "EFI\\\\gnu")) + #t)) + (delete 'configure)))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("efivar" ,efivar) + ("popt" ,popt))) + (home-page "https://github.com/rhinstaller/efibootmgr") + (synopsis "Modify the Extensible Firmware Interface (EFI) boot manager") + (description + "@code{efibootmgr} is a user-space application to modify the Intel +Extensible Firmware Interface (EFI) Boot Manager. This application can +create and destroy boot entries, change the boot order, change the next +running boot option, and more.") + (license license:gpl2+))) diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm index 1a1f7eef6c..96679bf97b 100644 --- a/gnu/packages/llvm.scm +++ b/gnu/packages/llvm.scm @@ -85,6 +85,17 @@ languages is in development. The compiler infrastructure includes mirror sets of programming tools as well as libraries with equivalent functionality.") (license license:ncsa))) +(define-public llvm-with-rtti + (package (inherit llvm) + (name "llvm-with-rtti") + (arguments + (substitute-keyword-arguments (package-arguments llvm) + ((#:configure-flags flags) + `(append '("-DCMAKE_SKIP_BUILD_RPATH=FALSE" + "-DCMAKE_BUILD_WITH_INSTALL_RPATH=FALSE" + "-DLLVM_REQUIRES_RTTI=1") + ,flags)))))) + (define (clang-runtime-from-llvm llvm hash) (package (name "clang-runtime") diff --git a/gnu/packages/lua.scm b/gnu/packages/lua.scm index fe0ec208aa..f95da3587d 100644 --- a/gnu/packages/lua.scm +++ b/gnu/packages/lua.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2016 doncatnip <gnopap@gmail.com> +;;; Copyright © 2016 Clément Lassieur <clement@lassieur.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -280,6 +281,18 @@ communication. It takes an already established TCP connection and creates a secure session between the peers.") (license (package-license lua-5.1)))) +(define-public lua5.1-sec-0.5 + (package + (inherit lua5.1-sec) + (version "0.5.1") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/brunoos/luasec/archive/" + "luasec-" version ".tar.gz")) + (sha256 + (base32 + "01llf5bcrjmqqy6m65avqkajz7h79rvkka6rd131kwr10n75yp3d")))))) + (define-public lua-lgi (package (name "lua-lgi") diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 1408e2e030..0e09c5c594 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -727,7 +727,7 @@ MailCore 2.") (define-public claws-mail (package (name "claws-mail") - (version "3.14.0") + (version "3.14.1") (source (origin (method url-fetch) (uri (string-append @@ -735,7 +735,7 @@ MailCore 2.") ".tar.xz")) (sha256 (base32 - "0nfchgga3ir91s8rky0a0vnz8cgj2f6h716wh3cmb466a01xfss6")))) + "0df34gj4r5cbb92834hph19gnh7ih9rgmmw47rliyg8b9z01v6mp")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) (inputs `(("bogofilter" ,bogofilter) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 5665c2a7b8..f7a4bbe75f 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -949,14 +949,14 @@ script files.") (define-public gmsh (package (name "gmsh") - (version "2.11.0") + (version "2.14.1") (source (origin (method url-fetch) - (uri (string-append "http://www.geuz.org/gmsh/src/gmsh-" + (uri (string-append "http://gmsh.info/src/gmsh-" version "-source.tgz")) (sha256 - (base32 "1ilplibvjgf7a905grpnclrvkmqy9fgrpl7xyp3w4yl1qc682v9b")) + (base32 "1vsxp47j6srmy8kqb3p1z9pmlm42whhhz7r0vzpa2a86gga4zx17")) (modules '((guix build utils))) (snippet ;; Remove non-free METIS code diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index 66cf231cfb..72b89067f0 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 ng0 <ngillmann@runbox.com> ;;; Copyright © 2016 Andy Patterson <ajpatter@uwaterloo.ca> +;;; Copyright © 2016 Clément Lassieur <clement@lassieur.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -563,7 +564,8 @@ end-to-end encryption support; XML console.") ("lua5.1-expat" ,lua5.1-expat) ("lua5.1-socket" ,lua5.1-socket) ("lua5.1-filesystem" ,lua5.1-filesystem) - ("lua5.1-sec" ,lua5.1-sec))) + ;; See <https://prosody.im/doc/depends#luasec>. + ("lua5.1-sec" ,lua5.1-sec-0.5))) (home-page "https://prosody.im/") (synopsis "Jabber (XMPP) server") (description "Prosody is a modern XMPP communication server. It aims to diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 9ad7bab335..abcc498599 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -1896,7 +1896,7 @@ of tools for manipulating and accessing your music.") (version "0.90.86") (source (origin (method url-fetch) - (uri (string-append "http://milkytracker.org/files/" + (uri (string-append "http://milkytracker.titandemo.org/files/" name "-" version ".tar.bz2")) (sha256 (base32 @@ -1916,7 +1916,7 @@ of tools for manipulating and accessing your music.") module files. It attempts to recreate the module replay and user experience of the popular DOS program Fasttracker II, with special playback modes available for improved Amiga ProTracker 2/3 compatibility.") - (home-page "http://milkytracker.org/") + (home-page "http://milkytracker.titandemo.org/") ;; 'src/milkyplay' is under Modified BSD, the rest is under GPL3 or later. (license (list license:bsd-3 license:gpl3+)))) diff --git a/gnu/packages/nano.scm b/gnu/packages/nano.scm index 01ef5dc800..e1830d291b 100644 --- a/gnu/packages/nano.scm +++ b/gnu/packages/nano.scm @@ -29,7 +29,7 @@ (define-public nano (package (name "nano") - (version "2.7.0") + (version "2.7.1") (source (origin (method url-fetch) @@ -37,12 +37,12 @@ version ".tar.gz")) (sha256 (base32 - "1hzazcrbwjqiw89jjvlj97q0wf385qqkzcm0870pdrixiv7yklax")))) + "06715a39hmp2dl0qz0979cyv8brpb91z5hn94q224ymbsc876m41")))) (build-system gnu-build-system) (inputs `(("gettext" ,gettext-minimal) ("ncurses" ,ncurses))) - (home-page "http://www.nano-editor.org/") + (home-page "https://www.nano-editor.org/") (synopsis "Small, user-friendly console text editor") (description "GNU Nano is a small and simple text editor. In addition to basic diff --git a/gnu/packages/ncurses.scm b/gnu/packages/ncurses.scm index 97991670f3..e21e477f4f 100644 --- a/gnu/packages/ncurses.scm +++ b/gnu/packages/ncurses.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2014 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015 Leo Famulari <leo@famulari.name> ;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is> +;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> ;;; ;;; This file is part of GNU Guix. ;;; @@ -26,7 +27,8 @@ #:use-module (guix build-system gnu) #:use-module (guix build-system perl) #:use-module (gnu packages) - #:use-module (gnu packages perl)) + #:use-module (gnu packages perl) + #:use-module (gnu packages swig)) (define-public ncurses (let ((patch-makefile-phase @@ -207,3 +209,42 @@ curses widgets, such as dialog boxes.") "@code{Curses} is the interface between Perl and the curses library of your system.") (license (package-license perl)))) + +(define-public stfl + (package + (name "stfl") + (version "0.24") + (source + (origin + (method url-fetch) + (uri (string-append "http://www.clifford.at/stfl/stfl-" + version ".tar.gz")) + (sha256 + (base32 + "1460d5lc780p3q38l3wc9jfr2a7zlyrcra0li65aynj738cam9yl")))) + (build-system gnu-build-system) + (arguments + '(#:tests? #f ; no test target + #:make-flags (list (string-append "prefix=" (assoc-ref %outputs "out"))) + #:phases + (modify-phases %standard-phases + (delete 'configure) ; there is no configure script + ;; in our ncurses, the headers are in /include + (add-before 'build 'patch-ncursesw + (lambda _ + (substitute* "stfl_internals.h" + (("ncursesw/") "")) + #t)) + (add-after 'install 'install-missing-symlink + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (lib (string-append out "/lib"))) + ;; Some programs look for libstfl.so.0. + (symlink "libstfl.so" (string-append lib "/libstfl.so.0")))))))) + (inputs `(("ncurses" ,ncurses))) + (native-inputs `(("swig" ,swig))) + (home-page "http://www.clifford.at/stfl/") + (synopsis "Structured terminal forms library") + (description "Stfl is a library which implements a curses-based widget +set for text terminals.") + (license lgpl3+))) diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm index fc865d36e0..43a6490b22 100644 --- a/gnu/packages/openstack.scm +++ b/gnu/packages/openstack.scm @@ -206,14 +206,14 @@ tested on Python version 3.2, 2.7 and 2.6.") (define-public python-os-testr (package (name "python-os-testr") - (version "0.5.0") + (version "0.8.0") (source (origin (method url-fetch) (uri (pypi-uri "os-testr" version)) (sha256 (base32 - "0bv03wnmvxhyi8y08hjh9clxrwqc2251529v4kh5khvca0fsbqdp")))) + "0mknd9hlmxmihr755gjkxyjp180380jajq5i3zm34q7y7bi62lss")))) (build-system python-build-system) (arguments ;; os-testr uses itself to run the tests. It seems like pbr writes the @@ -227,7 +227,7 @@ tested on Python version 3.2, 2.7 and 2.6.") (inputs `(("python-babel" ,python-babel) ("python-setuptools" ,python-setuptools))) - (home-page "http://www.openstack.org/") + (home-page "https://www.openstack.org/") (synopsis "Testr wrapper to provide functionality for OpenStack projects") (description "Os-testr provides developers with a testr wrapper and an output filter @@ -320,14 +320,14 @@ extensions.") (define-public python-tempest-lib (package (name "python-tempest-lib") - (version "0.12.0") + (version "1.0.0") (source (origin (method url-fetch) (uri (pypi-uri "tempest-lib" version)) (sha256 (base32 - "0f15wxk394cb2kw34krpxq8mvy1rxw0lnl5wfiv14cq1s1fm9cjd")))) + "1cpp2vwmawpd29hjsklsps181lq2ah91cl412qvpnz228nf9sqn5")))) (build-system python-build-system) (arguments `(#:phases @@ -352,7 +352,7 @@ extensions.") ("python-os-testr" ,python-os-testr) ("python-oslotest" ,python-oslotest) ("python-setuptools" ,python-setuptools))) - (home-page "http://www.openstack.org/") + (home-page "https://www.openstack.org/") (synopsis "OpenStack functional testing library") (description "Tempest-lib is a functional testing library for OpenStack. It provides diff --git a/gnu/packages/owncloud.scm b/gnu/packages/owncloud.scm index f755df4f0b..6b40bd3ada 100644 --- a/gnu/packages/owncloud.scm +++ b/gnu/packages/owncloud.scm @@ -21,27 +21,26 @@ #:use-module (guix build-system cmake) #:use-module (guix download) #:use-module (guix packages) + #:use-module (gnu packages check) #:use-module (gnu packages compression) #:use-module (gnu packages databases) #:use-module (gnu packages linux) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) - #:use-module (gnu packages python) #:use-module (gnu packages qt) - #:use-module (gnu packages ruby) #:use-module (gnu packages tls)) (define-public owncloud-client (package (name "owncloud-client") - (version "2.2.2") + (version "2.2.4") (source (origin (method url-fetch) (uri (string-append "https://download.owncloud.com/desktop/stable/" "owncloudclient-" version ".tar.xz")) (sha256 - (base32 "0m0pxv12w72qqgxim9fh8w3bgkgnhpjyay8ldll3nnzq1jmhk09n")) + (base32 "1lz7v5sscj5489panz5ng372g9l66ng0srx6xaz8drnsgi7m64zk")) (modules '((guix build utils))) (snippet '(begin @@ -71,16 +70,29 @@ "src/crashreporter/CMakeLists.txt" "src/gui/CMakeLists.txt") ;; This has the same issue as the substitution above. - (("\\/\\$\\{APPLICATION_EXECUTABLE\\}\\\"") "\""))))))) - (native-inputs `(("pkg-config" ,pkg-config))) + (("\\/\\$\\{APPLICATION_EXECUTABLE\\}\\\"") "\"")) + #t)) + (add-after 'unpack 'delete-failing-tests + ;; These tests fail for no apparent reason + (lambda _ + (substitute* "test/CMakeLists.txt" + (("owncloud_add_test\\(FileSystem \"\"\\)" test) + (string-append "#" test)) + (("owncloud_add_test\\(Utility \"\"\\)" test) + (string-append "#" test))) + #t))) + #:configure-flags '("-DUNIT_TESTING=ON"))) + (native-inputs + `(("cmocka" ,cmocka) + ("perl" ,perl) + ("pkg-config" ,pkg-config) + ("qtlinguist" ,qttools))) (inputs `(("inotify-tools" ,inotify-tools) ("openssl" ,openssl) - ("perl" ,perl) - ("python-wrapper" ,python-wrapper) - ("qt" ,qt) + ("qtbase" ,qtbase) ("qtkeychain" ,qtkeychain) - ("ruby" ,ruby) + ("qtwebkit" ,qtwebkit) ("sqlite" ,sqlite) ("zlib" ,zlib))) (home-page "https://owncloud.org") diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 9b3a4d3981..b917ee7246 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -222,9 +222,9 @@ the Nix package manager.") ;; ;; Note: use a very short commit id; with a longer one, the limit on ;; hash-bang lines would be exceeded while running the tests. - (let ((commit "4420940f20a2f36f29519f686bca7b85be6be5c9")) + (let ((commit "166ba5b10207f44360e218d9e3f00772d09bc7cd")) (package (inherit guix-0.11.0) - (version (string-append "0.11.0-1." (string-take commit 4))) + (version (string-append "0.11.0-2." (string-take commit 4))) (source (origin (method git-fetch) (uri (git-reference @@ -234,7 +234,7 @@ the Nix package manager.") (commit commit))) (sha256 (base32 - "1c1rqsfc4vrclkk03aj1m8r1lzk9pfa61ax9hhhj5nw23bilsixc")) + "144ld5l2gnjcw819cz8mninfwhxr0ijv3wac3j3xf0pzqhxfi29c")) (file-name (string-append "guix-" version "-checkout")))) (arguments (substitute-keyword-arguments (package-arguments guix-0.11.0) diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-utils.scm index 30b538d630..55c14762e9 100644 --- a/gnu/packages/password-utils.scm +++ b/gnu/packages/password-utils.scm @@ -71,7 +71,7 @@ human.") (define-public keepassx (package (name "keepassx") - (version "2.0.2") + (version "2.0.3") (source (origin (method url-fetch) @@ -79,10 +79,11 @@ human.") "/keepassx-" version ".tar.gz")) (sha256 (base32 - "1f1nlbd669rmpzr52d9dgfgclg4jcaq2jkrby3b8q1vjkksdqjr0")))) + "1ia7cqx9ias38mnffsl7da7g1f66bcbjsi23k49sln0c6spb9zr3")))) (build-system cmake-build-system) (inputs `(("libgcrypt" ,libgcrypt) + ("libxi" ,libxi) ("libxtst" ,libxtst) ("qt" ,qt-4))) (native-inputs diff --git a/gnu/packages/patches/gcc-strmov-store-file-names.patch b/gnu/packages/patches/gcc-strmov-store-file-names.patch new file mode 100644 index 0000000000..7951b87616 --- /dev/null +++ b/gnu/packages/patches/gcc-strmov-store-file-names.patch @@ -0,0 +1,66 @@ +Make sure that statements such as: + + strcpy (dst, "/gnu/store/…"); + +do not result in chunked /gnu/store strings that are undetectable by +Guix's GC and its grafting code. See <http://bugs.gnu.org/24703>. + +--- gcc-5.3.0/gcc/builtins.c 2016-10-18 10:50:46.080616285 +0200 ++++ gcc-5.3.0/gcc/builtins.c 2016-11-09 15:26:43.693042737 +0100 +@@ -3192,6 +3192,42 @@ determine_block_size (tree len, rtx len_ + GET_MODE_MASK (GET_MODE (len_rtx))); + } + ++/* Return true if STR contains the string "/gnu/store". */ ++ ++static bool ++store_reference_p (tree str) ++{ ++ if (TREE_CODE (str) == ADDR_EXPR) ++ str = TREE_OPERAND (str, 0); ++ ++ if (TREE_CODE (str) != STRING_CST) ++ return false; ++ ++ int len; ++ const char *store; ++ ++ store = getenv ("NIX_STORE") ? getenv ("NIX_STORE") : "/gnu/store"; ++ len = strlen (store); ++ ++ /* Size of the hash part of store file names, including leading slash and ++ trailing hyphen. */ ++ const int hash_len = 34; ++ ++ if (TREE_STRING_LENGTH (str) < len + hash_len) ++ return false; ++ ++ /* We cannot use 'strstr' because 'TREE_STRING_POINTER' returns a string ++ that is not necessarily NUL-terminated. */ ++ ++ for (int i = 0; i < TREE_STRING_LENGTH (str) - (len + hash_len); i++) ++ { ++ if (strncmp (TREE_STRING_POINTER (str) + i, store, len) == 0) ++ return true; ++ } ++ ++ return false; ++} ++ + /* Helper function to do the actual work for expand_builtin_memcpy. */ + + static rtx +@@ -3207,6 +3243,13 @@ expand_builtin_memcpy_args (tree dest, t + unsigned HOST_WIDE_INT max_size; + unsigned HOST_WIDE_INT probable_max_size; + ++ /* Do not emit block moves, which translate to the 'movabs' instruction on ++ x86_64, when SRC refers to store items. That way, store references ++ remain visible to the Guix GC and grafting code. See ++ <http://bugs.gnu.org/24703>. */ ++ if (store_reference_p (src)) ++ return NULL_RTX; ++ + /* If DEST is not a pointer type, call the normal function. */ + if (dest_align == 0) + return NULL_RTX; diff --git a/gnu/packages/patches/libtiff-CVE-2016-9273.patch b/gnu/packages/patches/libtiff-CVE-2016-9273.patch new file mode 100644 index 0000000000..9cd6b3d8c5 --- /dev/null +++ b/gnu/packages/patches/libtiff-CVE-2016-9273.patch @@ -0,0 +1,41 @@ +Fix CVE-2016-9273: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-9273 +http://bugzilla.maptools.org/show_bug.cgi?id=2587 + +Patch extracted from upstream CVS repo: + +2016-11-10 Even Rouault <even.rouault at spatialys.com> + +revision 1.37 +date: 2016-11-09 18:00:49 -0500; author: erouault; state: Exp; lines: +10 -1; commitid: pzKipPxDJO2dxvtz; +* libtiff/tif_strip.c: make TIFFNumberOfStrips() return the td->td_nstrips +value when it is non-zero, instead of recomputing it. This is needed in +TIFF_STRIPCHOP mode where td_nstrips is modified. Fixes a read outsize of +array in tiffsplit (or other utilities using TIFFNumberOfStrips()). +Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2587 + +Index: libtiff/tif_strip.c +=================================================================== +RCS file: /cvs/maptools/cvsroot/libtiff/libtiff/tif_strip.c,v +retrieving revision 1.36 +retrieving revision 1.37 +diff -u -r1.36 -r1.37 +--- a/libtiff/tif_strip.c 7 Jun 2015 22:35:40 -0000 1.36 ++++ b/libtiff/tif_strip.c 9 Nov 2016 23:00:49 -0000 1.37 +@@ -63,6 +63,15 @@ + TIFFDirectory *td = &tif->tif_dir; + uint32 nstrips; + ++ /* If the value was already computed and store in td_nstrips, then return it, ++ since ChopUpSingleUncompressedStrip might have altered and resized the ++ since the td_stripbytecount and td_stripoffset arrays to the new value ++ after the initial affectation of td_nstrips = TIFFNumberOfStrips() in ++ tif_dirread.c ~line 3612. ++ See http://bugzilla.maptools.org/show_bug.cgi?id=2587 */ ++ if( td->td_nstrips ) ++ return td->td_nstrips; ++ + nstrips = (td->td_rowsperstrip == (uint32) -1 ? 1 : + TIFFhowmany_32(td->td_imagelength, td->td_rowsperstrip)); + if (td->td_planarconfig == PLANARCONFIG_SEPARATE) diff --git a/gnu/packages/patches/libxslt-CVE-2016-4738.patch b/gnu/packages/patches/libxslt-CVE-2016-4738.patch new file mode 100644 index 0000000000..a7537c66ca --- /dev/null +++ b/gnu/packages/patches/libxslt-CVE-2016-4738.patch @@ -0,0 +1,39 @@ +Fix CVE-2016-4738: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-4738 +https://bugs.chromium.org/p/chromium/issues/detail?id=619006 + +Patch copied from upstream source repository: +https://git.gnome.org/browse/libxslt/commit/?id=eb1030de31165b68487f288308f9d1810fed6880 + +From eb1030de31165b68487f288308f9d1810fed6880 Mon Sep 17 00:00:00 2001 +From: Nick Wellnhofer <wellnhofer@aevum.de> +Date: Fri, 10 Jun 2016 14:23:58 +0200 +Subject: [PATCH] Fix heap overread in xsltFormatNumberConversion + +An empty decimal-separator could cause a heap overread. This can be +exploited to leak a couple of bytes after the buffer that holds the +pattern string. + +Found with afl-fuzz and ASan. +--- + libxslt/numbers.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/libxslt/numbers.c b/libxslt/numbers.c +index d1549b4..e78c46b 100644 +--- a/libxslt/numbers.c ++++ b/libxslt/numbers.c +@@ -1090,7 +1090,8 @@ xsltFormatNumberConversion(xsltDecimalFormatPtr self, + } + + /* We have finished the integer part, now work on fraction */ +- if (xsltUTF8Charcmp(the_format, self->decimalPoint) == 0) { ++ if ( (*the_format != 0) && ++ (xsltUTF8Charcmp(the_format, self->decimalPoint) == 0) ) { + format_info.add_decimal = TRUE; + the_format += xsltUTF8Size(the_format); /* Skip over the decimal */ + } +-- +2.10.2 + diff --git a/gnu/packages/patches/mupdf-CVE-2016-7504.patch b/gnu/packages/patches/mupdf-CVE-2016-7504.patch new file mode 100644 index 0000000000..4bbb4411c0 --- /dev/null +++ b/gnu/packages/patches/mupdf-CVE-2016-7504.patch @@ -0,0 +1,99 @@ +Fix CVE-2016-7504: +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-7504 +http://bugs.ghostscript.com/show_bug.cgi?id=697142 + +Patch copied from upstream source repository: +http://git.ghostscript.com/?p=mujs.git;a=commitdiff;h=5c337af4b3df80cf967e4f9f6a21522de84b392a + +From 5c337af4b3df80cf967e4f9f6a21522de84b392a Mon Sep 17 00:00:00 2001 +From: Tor Andersson <tor.andersson@artifex.com> +Date: Wed, 21 Sep 2016 16:01:08 +0200 +Subject: [PATCH] Fix bug 697142: Stale string pointer stored in regexp object. + +Make sure to make a copy of the source pattern string. +A case we missed when adding short and memory strings to the runtime. +The code assumed all strings passed to it were either literal or interned. +--- + jsgc.c | 4 +++- + jsi.h | 1 + + jsregexp.c | 2 +- + jsrun.c | 8 ++++++++ + jsvalue.h | 2 +- + 5 files changed, 14 insertions(+), 3 deletions(-) + +diff --git a/jsgc.c b/jsgc.c +index 9bd6482..4f7e7dc 100644 +--- a/thirdparty/mujs/jsgc.c ++++ b/thirdparty/mujs/jsgc.c +@@ -44,8 +44,10 @@ static void jsG_freeobject(js_State *J, js_Object *obj) + { + if (obj->head) + jsG_freeproperty(J, obj->head); +- if (obj->type == JS_CREGEXP) ++ if (obj->type == JS_CREGEXP) { ++ js_free(J, obj->u.r.source); + js_regfree(obj->u.r.prog); ++ } + if (obj->type == JS_CITERATOR) + jsG_freeiterator(J, obj->u.iter.head); + if (obj->type == JS_CUSERDATA && obj->u.user.finalize) +diff --git a/jsi.h b/jsi.h +index 7d9f7c7..e855045 100644 +--- a/thirdparty/mujs/jsi.h ++++ b/thirdparty/mujs/jsi.h +@@ -79,6 +79,7 @@ typedef unsigned short js_Instruction; + + /* String interning */ + ++char *js_strdup(js_State *J, const char *s); + const char *js_intern(js_State *J, const char *s); + void jsS_dumpstrings(js_State *J); + void jsS_freestrings(js_State *J); +diff --git a/jsregexp.c b/jsregexp.c +index 2a056b7..a2d5156 100644 +--- a/thirdparty/mujs/jsregexp.c ++++ b/thirdparty/mujs/jsregexp.c +@@ -21,7 +21,7 @@ void js_newregexp(js_State *J, const char *pattern, int flags) + js_syntaxerror(J, "regular expression: %s", error); + + obj->u.r.prog = prog; +- obj->u.r.source = pattern; ++ obj->u.r.source = js_strdup(J, pattern); + obj->u.r.flags = flags; + obj->u.r.last = 0; + js_pushobject(J, obj); +diff --git a/jsrun.c b/jsrun.c +index 2648c4c..ee80845 100644 +--- a/thirdparty/mujs/jsrun.c ++++ b/thirdparty/mujs/jsrun.c +@@ -45,6 +45,14 @@ void *js_realloc(js_State *J, void *ptr, int size) + return ptr; + } + ++char *js_strdup(js_State *J, const char *s) ++{ ++ int n = strlen(s) + 1; ++ char *p = js_malloc(J, n); ++ memcpy(p, s, n); ++ return p; ++} ++ + void js_free(js_State *J, void *ptr) + { + J->alloc(J->actx, ptr, 0); +diff --git a/jsvalue.h b/jsvalue.h +index 6cfbd89..8fb5016 100644 +--- a/thirdparty/mujs/jsvalue.h ++++ b/thirdparty/mujs/jsvalue.h +@@ -71,7 +71,7 @@ struct js_String + struct js_Regexp + { + void *prog; +- const char *source; ++ char *source; + unsigned short flags; + unsigned short last; + }; +-- +2.10.2 + diff --git a/gnu/packages/patches/mupdf-CVE-2016-7505.patch b/gnu/packages/patches/mupdf-CVE-2016-7505.patch new file mode 100644 index 0000000000..15e4f374d6 --- /dev/null +++ b/gnu/packages/patches/mupdf-CVE-2016-7505.patch @@ -0,0 +1,32 @@ +Fix CVE-2016-7505: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-7505 +http://bugs.ghostscript.com/show_bug.cgi?id=697140 + +Patch copied from upstream source repository: +http://git.ghostscript.com/?p=mujs.git;a=commitdiff;h=8c805b4eb19cf2af689c860b77e6111d2ee439d5 + +From 8c805b4eb19cf2af689c860b77e6111d2ee439d5 Mon Sep 17 00:00:00 2001 +From: Tor Andersson <tor.andersson@artifex.com> +Date: Wed, 21 Sep 2016 15:21:04 +0200 +Subject: [PATCH] Fix bug 697140: Overflow check in ascii division in strtod. + +--- + jsdtoa.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/jsdtoa.c b/jsdtoa.c +index 2e52368..920c1a7 100644 +--- a/thirdparty/mujs/jsdtoa.c ++++ b/thirdparty/mujs/jsdtoa.c +@@ -735,6 +735,7 @@ xx: + n -= c<<b; + *p++ = c + '0'; + (*na)++; ++ if (*na >= Ndig) break; /* abort if overflowing */ + } + *p = 0; + } +-- +2.10.2 + diff --git a/gnu/packages/patches/mupdf-CVE-2016-7506.patch b/gnu/packages/patches/mupdf-CVE-2016-7506.patch new file mode 100644 index 0000000000..733249acaa --- /dev/null +++ b/gnu/packages/patches/mupdf-CVE-2016-7506.patch @@ -0,0 +1,42 @@ +Fix CVE-2016-7506: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-7506 +http://bugs.ghostscript.com/show_bug.cgi?id=697141 + +Patch copied from upstream source repository: +http://git.ghostscript.com/?p=mujs.git;a=commitdiff;h=5000749f5afe3b956fc916e407309de840997f4a + +From 5000749f5afe3b956fc916e407309de840997f4a Mon Sep 17 00:00:00 2001 +From: Tor Andersson <tor.andersson@artifex.com> +Date: Wed, 21 Sep 2016 16:02:11 +0200 +Subject: [PATCH] Fix bug 697141: buffer overrun in regexp string substitution. + +A '$' escape at the end of the string would read past the zero terminator +when looking for the escaped character. +--- + jsstring.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/jsstring.c b/jsstring.c +index 66f6a89..0209a8e 100644 +--- a/thirdparty/mujs/jsstring.c ++++ b/thirdparty/mujs/jsstring.c +@@ -421,6 +421,7 @@ loop: + while (*r) { + if (*r == '$') { + switch (*(++r)) { ++ case 0: --r; /* end of string; back up and fall through */ + case '$': js_putc(J, &sb, '$'); break; + case '`': js_putm(J, &sb, source, s); break; + case '\'': js_puts(J, &sb, s + n); break; +@@ -516,6 +517,7 @@ static void Sp_replace_string(js_State *J) + while (*r) { + if (*r == '$') { + switch (*(++r)) { ++ case 0: --r; /* end of string; back up and fall through */ + case '$': js_putc(J, &sb, '$'); break; + case '&': js_putm(J, &sb, s, s + n); break; + case '`': js_putm(J, &sb, source, s); break; +-- +2.10.2 + diff --git a/gnu/packages/patches/mupdf-CVE-2016-7563.patch b/gnu/packages/patches/mupdf-CVE-2016-7563.patch new file mode 100644 index 0000000000..288c9ab2df --- /dev/null +++ b/gnu/packages/patches/mupdf-CVE-2016-7563.patch @@ -0,0 +1,37 @@ +Fix CVE-2016-7563: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-7563 +http://bugs.ghostscript.com/show_bug.cgi?id=697136 + +Patch copied from upstream source repository: +http://git.ghostscript.com/?p=mujs.git;a=commitdiff;h=f8234d830e17fc5e8fe09eb76d86dad3f6233c59 + +From f8234d830e17fc5e8fe09eb76d86dad3f6233c59 Mon Sep 17 00:00:00 2001 +From: Tor Andersson <tor.andersson@artifex.com> +Date: Tue, 20 Sep 2016 17:11:32 +0200 +Subject: [PATCH] Fix bug 697136. + +We were unconditionally reading the next character if we encountered +a '*' in a multi-line comment; possibly reading past the end of +the input. +--- + jslex.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/jslex.c b/jslex.c +index 7b80800..cbd0eeb 100644 +--- a/thirdparty/mujs/jslex.c ++++ b/thirdparty/mujs/jslex.c +@@ -225,7 +225,8 @@ static int lexcomment(js_State *J) + if (jsY_accept(J, '/')) + return 0; + } +- jsY_next(J); ++ else ++ jsY_next(J); + } + return -1; + } +-- +2.10.2 + diff --git a/gnu/packages/patches/mupdf-CVE-2016-7564.patch b/gnu/packages/patches/mupdf-CVE-2016-7564.patch new file mode 100644 index 0000000000..c2ce33d1df --- /dev/null +++ b/gnu/packages/patches/mupdf-CVE-2016-7564.patch @@ -0,0 +1,34 @@ +Fix CVE-2016-7564: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-7564 +http://bugs.ghostscript.com/show_bug.cgi?id=697137 + +Patch copied from upstream source repository: +http://git.ghostscript.com/?p=mujs.git;a=commitdiff;h=a3a4fe840b80706c706e86160352af5936f292d8 + +From a3a4fe840b80706c706e86160352af5936f292d8 Mon Sep 17 00:00:00 2001 +From: Tor Andersson <tor.andersson@artifex.com> +Date: Tue, 20 Sep 2016 17:19:06 +0200 +Subject: [PATCH] Fix bug 697137: off by one in string length calculation. + +We were not allocating space for the terminating zero byte. +--- + jsfunction.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/jsfunction.c b/jsfunction.c +index 8b5b18e..28f7aa7 100644 +--- a/thirdparty/mujs/jsfunction.c ++++ b/thirdparty/mujs/jsfunction.c +@@ -61,7 +61,7 @@ static void Fp_toString(js_State *J) + n += strlen(F->name); + for (i = 0; i < F->numparams; ++i) + n += strlen(F->vartab[i]) + 1; +- s = js_malloc(J, n); ++ s = js_malloc(J, n + 1); + strcpy(s, "function "); + strcat(s, F->name); + strcat(s, "("); +-- +2.10.2 + diff --git a/gnu/packages/patches/mupdf-CVE-2016-9017.patch b/gnu/packages/patches/mupdf-CVE-2016-9017.patch new file mode 100644 index 0000000000..1e2b7c3258 --- /dev/null +++ b/gnu/packages/patches/mupdf-CVE-2016-9017.patch @@ -0,0 +1,46 @@ +Fix CVE-2016-9017: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-9107 +http://bugs.ghostscript.com/show_bug.cgi?id=697171 + +Patch copied from upstream source repository: +http://git.ghostscript.com/?p=mujs.git;a=commitdiff;h=a5c747f1d40e8d6659a37a8d25f13fb5acf8e767 + +From a5c747f1d40e8d6659a37a8d25f13fb5acf8e767 Mon Sep 17 00:00:00 2001 +From: Tor Andersson <tor.andersson@artifex.com> +Date: Tue, 25 Oct 2016 14:08:27 +0200 +Subject: [PATCH] Fix 697171: missed an operand in the bytecode debugger dump. + +--- + jscompile.h | 2 +- + jsdump.c | 1 + + 2 files changed, 2 insertions(+), 1 deletion(-) + +diff --git a/jscompile.h b/jscompile.h +index 802cc9e..3054d13 100644 +--- a/thirdparty/mujs/jscompile.h ++++ b/thirdparty/mujs/jscompile.h +@@ -21,7 +21,7 @@ enum js_OpCode + + OP_NEWARRAY, + OP_NEWOBJECT, +- OP_NEWREGEXP, ++ OP_NEWREGEXP, /* -S,opts- <regexp> */ + + OP_UNDEF, + OP_NULL, +diff --git a/jsdump.c b/jsdump.c +index 1c51c29..37ad88c 100644 +--- a/thirdparty/mujs/jsdump.c ++++ b/thirdparty/mujs/jsdump.c +@@ -750,6 +750,7 @@ void jsC_dumpfunction(js_State *J, js_Function *F) + case OP_INITVAR: + case OP_DEFVAR: + case OP_GETVAR: ++ case OP_HASVAR: + case OP_SETVAR: + case OP_DELVAR: + case OP_GETPROP_S: +-- +2.10.2 + diff --git a/gnu/packages/patches/mupdf-CVE-2016-9136.patch b/gnu/packages/patches/mupdf-CVE-2016-9136.patch new file mode 100644 index 0000000000..1f68839a52 --- /dev/null +++ b/gnu/packages/patches/mupdf-CVE-2016-9136.patch @@ -0,0 +1,32 @@ +Fix CVE-2016-9136: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-9136 +http://bugs.ghostscript.com/show_bug.cgi?id=697244 + +Patch copied from upstream source repository: +http://git.ghostscript.com/?p=mujs.git;a=commitdiff;h=a0ceaf5050faf419401fe1b83acfa950ec8a8a89 +From a0ceaf5050faf419401fe1b83acfa950ec8a8a89 Mon Sep 17 00:00:00 2001 +From: Tor Andersson <tor.andersson@artifex.com> +Date: Mon, 31 Oct 2016 13:05:37 +0100 +Subject: [PATCH] Fix 697244: Check for incomplete escape sequence at end of + input. + +--- + jslex.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/jslex.c b/jslex.c +index cbd0eeb..aaafdac 100644 +--- a/thirdparty/mujs/jslex.c ++++ b/thirdparty/mujs/jslex.c +@@ -377,6 +377,7 @@ static int lexescape(js_State *J) + return 0; + + switch (J->lexchar) { ++ case 0: jsY_error(J, "unterminated escape sequence"); + case 'u': + jsY_next(J); + if (!jsY_ishex(J->lexchar)) return 1; else { x |= jsY_tohex(J->lexchar) << 12; jsY_next(J); } +-- +2.10.2 + diff --git a/gnu/packages/patches/ruby-yard-fix-skip-of-markdown-tests.patch b/gnu/packages/patches/ruby-yard-fix-skip-of-markdown-tests.patch new file mode 100644 index 0000000000..f592f5cd51 --- /dev/null +++ b/gnu/packages/patches/ruby-yard-fix-skip-of-markdown-tests.patch @@ -0,0 +1,17 @@ +The tests currently fail due to use of 'skip' rather than 'pending' to skip a +test usually not skipped by upstream. This patch has been proposed upstream +at https://github.com/lsegal/yard/pull/1033 + +diff --git a/spec/templates/helpers/html_helper_spec.rb b/spec/templates/helpers/html_helper_spec.rb +index 84624c3..9c4fc2b 100644 +--- a/spec/templates/helpers/html_helper_spec.rb ++++ b/spec/templates/helpers/html_helper_spec.rb +@@ -184,7 +184,7 @@ describe YARD::Templates::Helpers::HtmlHelper do + it "creates tables (markdown specific)" do + log.enter_level(Logger::FATAL) do + unless markup_class(:markdown).to_s == "RedcarpetCompat" +- skip "This test depends on a markdown engine that supports tables" ++ pending "This test depends on a markdown engine that supports tables" + end + end + diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm index bfb457fcb3..9c6e9a967e 100644 --- a/gnu/packages/pdf.scm +++ b/gnu/packages/pdf.scm @@ -491,7 +491,14 @@ extracting content or merging files.") (patches (search-patches "mupdf-build-with-openjpeg-2.1.patch" "mupdf-CVE-2016-6265.patch" "mupdf-CVE-2016-6525.patch" - "mupdf-CVE-2016-8674.patch")) + "mupdf-CVE-2016-7504.patch" + "mupdf-CVE-2016-7505.patch" + "mupdf-CVE-2016-7506.patch" + "mupdf-CVE-2016-7563.patch" + "mupdf-CVE-2016-7564.patch" + "mupdf-CVE-2016-8674.patch" + "mupdf-CVE-2016-9017.patch" + "mupdf-CVE-2016-9136.patch")) (modules '((guix build utils))) (snippet ;; Delete all the bundled libraries except for mujs, which is @@ -778,3 +785,106 @@ the framebuffer.") (description "@command{pdf2svg} is a simple command-line PDF to SVG converter using the Poppler and Cairo libraries.") (license license:gpl2+))) + +(define-public python-pypdf2 + (package + (name "python-pypdf2") + (version "1.26.0") + (source (origin + (method url-fetch) + (uri (pypi-uri "PyPDF2" version)) + (sha256 + (base32 + "11a3aqljg4sawjijkvzhs3irpw0y67zivqpbjpm065ha5wpr13z2")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after + 'unpack 'patch-test-suite + (lambda _ + ;; The text-file needs to be opened in binary mode for Python 3, + ;; so patch in the "b" + (substitute* "Tests/tests.py" + (("pdftext_file = open\\(.* 'crazyones.txt'\\), 'r" line) + (string-append line "b"))) + #t)) + (replace 'check + (lambda _ + (zero? (system* "python" "-m" "unittest" "Tests.tests"))))))) + (home-page "http://mstamy2.github.com/PyPDF2") + (synopsis "Pure Python PDF toolkit") + (description "PyPDF2 is a pure Python PDF library capable of: + +@enumerate +@item extracting document information (title, author, …) +@item splitting documents page by page +@item merging documents page by page +@item cropping pages +@item merging multiple pages into a single page +@item encrypting and decrypting PDF files +@end enumerate + +By being pure Python, it should run on any Python platform without any +dependencies on external libraries. It can also work entirely on +@code{StringIO} objects rather than file streams, allowing for PDF +manipulation in memory. It is therefore a useful tool for websites that +manage or manipulate PDFs.") + (license license:bsd-3))) + +(define-public python2-pypdf2 + (package-with-python2 python-pypdf2)) + +(define-public python2-pypdf + (package + (name "python2-pypdf") + (version "1.13") + (source (origin + (method url-fetch) + (uri (pypi-uri "pyPdf" version)) + (sha256 + (base32 + "0fqfvamir7k41w84c73rghzkiv891gdr17q5iz4hgbf6r71y9v9s")))) + (build-system python-build-system) + (arguments + `(#:tests? #f ; no tests + #:python ,python-2)) + (home-page "http://pybrary.net/pyPdf/") + (synopsis "Pure Python PDF toolkit") + (description "PyPDF2 is a pure Python PDF toolkit. + +Note: This module isn't maintained anymore. For new projects please use +python-pypdf2 instead.") + (license license:bsd-3))) + +(define-public pdfposter + (package + (name "pdfposter") + (version "0.6.0") + (source (origin + (method url-fetch) + (uri (pypi-uri "pdftools.pdfposter" version ".tar.bz2")) + (sha256 + (base32 + "1i9jqawf279va089ykicglcq4zlsnwgcnsdzaa8vnm836lqhywma")))) + (build-system python-build-system) + (arguments + `(#:tests? #f ; no test suite, only for visual control + #:python ,python-2)) + (inputs + ;; pdfposter 0.6.0 still uses the old pyPdf + `(("python2-pypdf" ,python2-pypdf))) + (native-inputs + `(("python2-setuptools" ,python2-setuptools))) + (home-page "https://pythonhosted.org/pdftools.pdfposter/") + (synopsis "Scale and tile PDF images/pages to print on multiple pages") + (description "@command{pdfposter} can be used to create a large poster by +building it from multple pages and/or printing it on large media. It expects +as input a PDF file, normally printing on a single page. The output is again +a PDF file, maybe containing multiple pages together building the poster. The +input page will be scaled to obtain the desired size. + +This is much like @command{poster} does for Postscript files, but working with +PDF. Since sometimes @command{poster} does not like your files converted from +PDF. Indeed @command{pdfposter} was inspired by @command{poster}.") + (license license:gpl3+))) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 7beca849c8..a044a32b32 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -3506,6 +3506,31 @@ just write a method to handle handles, and methods for handling strings and file names are added for you.") (license (package-license perl)))) +(define-public perl-modern-perl + (package + (name "perl-modern-perl") + (version "1.20150127") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/C/CH/CHROMATIC/Modern-Perl-" + version + ".tar.gz")) + (sha256 + (base32 + "0iv2crfxl3xh6mq36g1gv9fr8iqq3kpbj8afxy5qi60hh7v3xhcl")))) + (build-system perl-build-system) + (native-inputs + `(("perl-module-build" ,perl-module-build))) + (home-page + "http://search.cpan.org/dist/Modern-Perl") + (synopsis + "Enable all of the features of Modern Perl with one import") + (description "@code{Modern::Perl} provides a simple way to enable +multiple, by now, standard libraries in a Perl program.") + (license (package-license perl)))) + (define-public perl-module-build-tiny (package (name "perl-module-build-tiny") diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index eb08a451b8..23934196db 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -2521,9 +2521,8 @@ version numbers.") (base32 "0hddbqjm4jq63y8jf44nswina1crjs16l9snb6m3vvgyg31klrrn")))) (build-system python-build-system) - (inputs - `(("python-setuptools" ,python-setuptools) - ("python-vcversioner" ,python-vcversioner))) + (native-inputs + `(("python-vcversioner" ,python-vcversioner))) (home-page "http://github.com/Julian/jsonschema") (synopsis "Implementation of JSON Schema for Python") (description @@ -2535,9 +2534,11 @@ version numbers.") (let ((jsonschema (package-with-python2 (strip-python2-variant python-jsonschema)))) (package (inherit jsonschema) - (inputs - `(("python2-functools32" ,python2-functools32) - ,@(package-inputs jsonschema)))))) + (native-inputs + `(("python2-setuptools" ,python2-setuptools) + ,@(package-native-inputs jsonschema))) + (propagated-inputs + `(("python2-functools32" ,python2-functools32)))))) (define-public python-unidecode (package @@ -4078,7 +4079,19 @@ both of which are installed automatically if you install this library.") (synopsis "Various utility functions for SQLAlchemy") (description "SQLAlchemy-utils provides various utility functions and custom data types -for SQLAlchemy. SQLAlchemy is an SQL database abstraction library for Python.") +for SQLAlchemy. SQLAlchemy is an SQL database abstraction library for Python. + +You might also want to install the following optional dependencies: +@enumerate +@item @code{python-passlib} +@item @code{python-babel} +@item @code{python-cryptography} +@item @code{python-pytz} +@item @code{python-psycopg2} +@item @code{python-furl} +@item @code{python-flask-babel} +@end enumerate +") (properties `((python2-variant . ,(delay python2-sqlalchemy-utils)))) (license license:bsd-3))) @@ -4190,14 +4203,14 @@ services for your Python modules and applications.") (define-public python-pillow (package (name "python-pillow") - (version "3.3.1") + (version "3.3.3") (source (origin (method url-fetch) (uri (pypi-uri "Pillow" version)) (sha256 (base32 - "1w9x3dfrg8b5lqhpjl0fczfyf9842wbqwgxbjjq4vfpxv5jwm49l")))) + "0xkv0p1d73gz0a1qaasf0ai4262g8f334j07vd60bjrxs2wr3nmj")))) (build-system python-build-system) (native-inputs `(("python-setuptools" ,python-setuptools) @@ -6583,14 +6596,14 @@ responses, rather than doing any computation.") (define-public python-cryptography-vectors (package (name "python-cryptography-vectors") - (version "1.3.4") + (version "1.5.3") (source (origin (method url-fetch) (uri (pypi-uri "cryptography_vectors" version)) (sha256 (base32 - "15h1iz2klnpb4f8djxy7cpbnyn3wbjp7bnj4pz6s7w6plghbq524")))) + "1bnd1bricyhxa27rhr0ljk0kacxzvysd3ar2j2hlv13a2k6zw4z5")))) (build-system python-build-system) (native-inputs `(("python-setuptools" ,python-setuptools))) @@ -6607,14 +6620,14 @@ responses, rather than doing any computation.") (define-public python-cryptography (package (name "python-cryptography") - (version "1.3.4") + (version "1.5.3") (source (origin (method url-fetch) (uri (pypi-uri "cryptography" version)) (sha256 (base32 - "1a85l548w5vvq3yhz0az7ajg2ijixzp6gagapw6wgrqvq28ghgs2")))) + "1raanvkdfw5ai56ymlij6ghc4k126fs7jx948ig7yn4vj6ndv0ng")))) (build-system python-build-system) (arguments `(#:phases @@ -6645,7 +6658,8 @@ responses, rather than doing any computation.") ("python-pretend" ,python-pretend) ("python-pyasn1" ,python-pyasn1) ("python-pyasn1-modules" ,python-pyasn1-modules) - ("python-pytest" ,python-pytest))) + ("python-pytz" ,python-pytz) + ("python-pytest" ,python-pytest-2.9.2))) (home-page "https://github.com/pyca/cryptography") (synopsis "Cryptographic recipes and primitives for Python") (description @@ -12303,3 +12317,84 @@ asynchronous messaging environments.") (define-public python2-axolotl (package-with-python2 python-axolotl)) + +(define-public python-termstyle + (package + (name "python-termstyle") + (version "0.1.11") + (source + (origin + (method url-fetch) + (uri (pypi-uri "termstyle" version)) + (sha256 + (base32 + "17wzkkcqy5zc0g68xlad3kcv66iw14d2pwqc0h9420gak0vbhx7g")))) + (build-system python-build-system) + (home-page "http://github.com/gfxmonk/termstyle") + (synopsis "Console text coloring for Python") + (description "This package provides console text coloring for Python.") + (license license:bsd-3))) + +(define-public python-rednose + (package + (name "python-rednose") + (version "1.2.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "rednose" version)) + (sha256 + (base32 + "0b0bsna217lr1nykyhl5fgjly15zhdvqd4prg4wy1zrgfv7al6m0")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-deps + (lambda _ + ;; See <https://github.com/JBKahn/rednose/issues/12> + (substitute* "setup.py" + (("python-termstyle") "termstyle")) + #t))))) + (propagated-inputs + `(("python-colorama" ,python-colorama) + ("python-termstyle" ,python-termstyle))) + (native-inputs + `(("python-six" ,python-six) + ("python-nose" ,python-nose))) + (home-page "https://github.com/JBKahn/rednose") + (synopsis "Colored output for Python nosetests") + (description "This package provides colored output for the +@command{nosetests} command of the Python Nose unit test framework.") + (license license:bsd-3))) + +(define-public python-flask-restplus + (package + (name "python-flask-restplus") + (version "0.9.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "flask-restplus" version)) + (sha256 + (base32 + "11his6ii5brpkhld0d5bwzjjw4q3vmplpd6fmgzjrvvklsbk0cf4")))) + (build-system python-build-system) + (propagated-inputs + `(("python-aniso8601" ,python-aniso8601) + ("python-flask" ,python-flask) + ("python-jsonschema" ,python-jsonschema) + ("python-pytz" ,python-pytz) + ("python-six" ,python-six))) + (native-inputs + `(("python-tzlocal" ,python-tzlocal) + ("python-blinker" ,python-blinker) + ("python-nose" ,python-nose) + ("python-rednose" ,python-rednose))) + (home-page "https://github.com/noirbizarre/flask-restplus") + (synopsis "Framework for documented API development with Flask") + (description "This package provides a framework for API development with +the Flask web framework in Python. It is similar to package +@code{python-flask-restful} but supports the @code{python-swagger} +documentation builder.") + (license license:expat))) diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index 8559b17492..b442356530 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -1171,3 +1171,117 @@ different kinds of sliders, and much more.") (license:non-copyleft "http://qwt.sourceforge.net/qwtlicense.html") ;; textengines/mathml/qwt_mml_document.{cpp,h} is dual LGPL2.1/GPL3 (either). license:lgpl2.1 license:gpl3)))) + +(define-public qtwebkit + (package + (name "qtwebkit") + (version "5.7.0") + (source + (origin + (method url-fetch) + (uri (string-append "http://download.qt.io/community_releases/" + (version-major+minor version) + "/" version "/qtwebkit-opensource-src-" version + ".tar.xz")) + ;; Note: since Qt 5.6, Qt no longer officially supports qtwebkit: + ;; <http://lists.qt-project.org/pipermail/development/2016-May/025923.html>. + (sha256 + (base32 + "1prlpl3zslzpr1iv7m3irvxjxn3v8nlxh21v9k2kaq4fpwy2b8y7")))) + (build-system gnu-build-system) + (native-inputs + `(("perl" ,perl) + ("python" ,python-2.7) + ("ruby" ,ruby) + ("bison" ,bison) + ("flex" ,flex) + ("gperf" ,gperf) + ("pkg-config" ,pkg-config))) + (inputs + `(("icu" ,icu4c) + ("libjpeg" ,libjpeg) + ("libpng" ,libpng) + ("libwebp" ,libwebp) + ("sqlite" ,sqlite) + ("fontconfig" ,fontconfig) + ("libxrender", libxrender) + ("qtbase" ,qtbase) + ("qtdeclarative" ,qtdeclarative) + ("qtmultimedia" ,qtmultimedia) + ("libxml2" ,libxml2) + ("libxslt" ,libxslt) + ("libx11" ,libx11) + ("libxcomposite" ,libxcomposite))) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (setenv "QMAKEPATH" + (string-append (getcwd) "/Tools/qmake:" + (getenv "QMAKEPATH"))) + (system* "qmake")))) + ;; prevent webkit from trying to install into the qtbase store directory, + ;; and replace references to the build directory in linker options: + (add-before 'build 'patch-installpaths + (lambda* (#:key outputs inputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (qtbase (assoc-ref inputs "qtbase")) + (builddir (getcwd)) + (linkbuild (string-append "-L" builddir)) + (linkout (string-append "-L" out)) + (makefiles + (map-in-order + (lambda (i) + (let* ((in (car i)) + (mf (string-append (dirname in) "/" + (cdr i)))) + ;; by default, these Makefiles are + ;; generated during install, but we need + ;; to generate them now + (system* "qmake" in "-o" mf) + mf)) + '(("Source/api.pri" . "Makefile.api") + ("Source/widgetsapi.pri" + . "Makefile.widgetsapi") + ("Source/WebKit2/WebProcess.pro" + . "Makefile.WebProcess") + ("Source/WebKit2/PluginProcess.pro" + . "Makefile.PluginProcess") + ("Source/WebKit/qt/declarative/public.pri" + . "Makefile.declarative.public") + ("Source/WebKit/qt/declarative/experimental/experimental.pri" + . "Makefile.declarative.experimental") + ("Source/WebKit/qt/examples/platformplugin/platformplugin.pro" + . "Makefile"))))) + ;; Order of qmake calls and substitutions matters here. + (system* "qmake" "-prl" "Source/widgetsapi.pri" + "-o" "Source/Makefile") + (substitute* (find-files "lib" "libQt5.*\\.prl") + ((linkbuild) linkout)) + (substitute* (find-files "lib" + "libQt5WebKit.*\\.la") + (("libdir='.*'") + (string-append "libdir='" out "/lib'")) + ((linkbuild) linkout)) + (substitute* (find-files "lib/pkgconfig" + "Qt5WebKit.*\\.pc") + (((string-append "prefix=" qtbase)) + (string-append "prefix=" out)) + ((linkbuild) linkout)) + ;; Makefiles must be modified after .prl/.la/.pc + ;; files, lest they get rebuilt: + (substitute* makefiles + (((string-append "\\$\\(INSTALL_ROOT\\)" qtbase)) + out ) + (((string-append "-Wl,-rpath," builddir)) + (string-append "-Wl,-rpath," out))))))))) + (home-page "https://www.webkit.org") + (synopsis "Web browser engine and classes to render and interact with web +content") + (description "QtWebKit provides a Web browser engine that makes it easy to +embed content from the World Wide Web into your Qt application. At the same +time Web content can be enhanced with native controls.") + + (license license:lgpl2.1+))) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 60f1992281..42beda3d44 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -178,13 +178,13 @@ a focus on simplicity and productivity.") (define-public ruby-hoe (package (name "ruby-hoe") - (version "3.13.1") + (version "3.15.2") (source (origin (method url-fetch) (uri (rubygems-uri "hoe" version)) (sha256 (base32 - "1mac13krdrasn9819dd65xj27kklfy0xdbj3p6s2ij4vlcb46h8q"))) ) + "1riyf9j9vp7dzgpw5xj9xx1vqkdmg6lr7qiprmn91hcdp81kaszp"))) ) (build-system ruby-build-system) (synopsis "Ruby project management helper") (description @@ -199,13 +199,13 @@ announcement.") (define-public ruby-rake-compiler (package (name "ruby-rake-compiler") - (version "0.9.5") + (version "1.0.1") (source (origin (method url-fetch) (uri (rubygems-uri "rake-compiler" version)) (sha256 (base32 - "1k8im2vzj849xdgjk6wafspkiwwapqwm738majchb4dnhnsk64cx")))) + "1lf91nf1fcnmsh54mxz06wyfmjkwh58vljr35zns5cwbg8fwmi20")))) (build-system ruby-build-system) (arguments '(#:tests? #f)) ; needs cucumber @@ -262,13 +262,13 @@ an extensible architecture with a swappable backend.") (define-public ruby-rspec-core (package (name "ruby-rspec-core") - (version "3.5.1") + (version "3.5.4") (source (origin (method url-fetch) (uri (rubygems-uri "rspec-core" version)) (sha256 (base32 - "0brfq51fwkkh5g6vw7smky5fvip46pryi243jmin0nzn7iwh9j5g")))) + "1nacs062qbr98fx6czf1vwppn1js956nv2c8vfwj6i65axdfs46i")))) (build-system ruby-build-system) (arguments '(#:tests? #f)) ; avoid dependency cycles @@ -423,13 +423,13 @@ expectations and mocks frameworks.") (define-public bundler (package (name "bundler") - (version "1.13.5") + (version "1.13.6") (source (origin (method url-fetch) (uri (rubygems-uri "bundler" version)) (sha256 (base32 - "0fxr7aq7qhlga423mygy7q96cwxmvqlcy676v2x5swlw8rlha2in")))) + "1xyhy9cn8w9passp64p6hb3df2fpiqbds6rj7xha1335xpgj5zgs")))) (build-system ruby-build-system) (arguments '(#:tests? #f)) ; avoid dependency cycles @@ -710,16 +710,17 @@ interfaces.") (define-public ruby-lumberjack (package (name "ruby-lumberjack") - (version "1.0.9") + (version "1.0.10") (source (origin (method url-fetch) (uri (rubygems-uri "lumberjack" version)) (sha256 (base32 - "162frm2bwy58pj8ccsdqa4a6i0csrhb9h5l3inhkl1ivgfc8814l")))) + "0ily8j83q959w19zb7qm6m7y53sdj9afxj4x6mn2adl4i7vpdsv4")))) (build-system ruby-build-system) (native-inputs - `(("ruby-rspec" ,ruby-rspec))) + `(("ruby-rspec" ,ruby-rspec) + ("ruby-timecop" ,ruby-timecop))) (synopsis "Logging utility library for Ruby") (description "Lumberjack is a simple logging utility that can be a drop in replacement for Logger or ActiveSupport::BufferedLogger. It provides support @@ -1839,13 +1840,13 @@ net/http library.") (define-public ruby-arel (package (name "ruby-arel") - (version "7.1.1") + (version "7.1.4") (source (origin (method url-fetch) (uri (rubygems-uri "arel" version)) (sha256 (base32 - "0d6kfsh7qf5gls0n1nrppxv89zyli27kw8nklpq2by3z7cxjcvjg")))) + "0l757dkkaxk5fq3368l79jpyzq9a9driricjamhiwhwvh0h7xcyx")))) (build-system ruby-build-system) (arguments '(#:tests? #f)) ; no tests (home-page "https://github.com/rails/arel") @@ -2115,7 +2116,7 @@ aware transformations between times in different time zones.") (define-public ruby-tzinfo-data (package (name "ruby-tzinfo-data") - (version "1.2016.7") + (version "1.2016.9") (source (origin (method url-fetch) @@ -2128,7 +2129,7 @@ aware transformations between times in different time zones.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0vh75hkfmqk4hdjv6nm7acw64izwpnv7slkmh2kj7qlfz133yh9l")) + "0i8vz2j7wmcpr4pd066qvlg4if5blscjrgxk2imavfa49nq5lp06")) ;; Remove the known test failure. ;; https://github.com/tzinfo/tzinfo-data/issues/10 ;; https://bugs.launchpad.net/ubuntu/+source/glibc/+bug/1587128 @@ -3047,43 +3048,44 @@ features such as filtering and fine grained logging.") (license license:expat))) (define-public ruby-yard - (package - (name "ruby-yard") - (version "0.8.7.6") - (source - (origin - (method url-fetch) - (uri (rubygems-uri "yard" version)) - (sha256 - (base32 - "1dj6ibc0qqvmb5a5r5kk0vhr04mnrz9b26gnfrs5p8jgp620i89x")))) - (build-system ruby-build-system) - (arguments - `(#:test-target "specs" - #:phases - (modify-phases %standard-phases - (add-before 'check 'set-HOME-and-disable-failing-test - (lambda _ - ;; $HOME needs to be set to somewhere writeable for tests to run - (setenv "HOME" "/tmp") - ;; Disable tests which fails on Ruby 2.3. See - ;; https://github.com/lsegal/yard/issues/927 - (substitute* "spec/parser/ruby/ruby_parser_spec.rb" - (("comment.type.should == :comment") "") - (("comment.docstring_hash_flag.should be_true") "") - (("comment.docstring.strip.should == .*") "")) - #t))))) - (native-inputs - `(("ruby-rspec" ,ruby-rspec-2) - ("ruby-rack" ,ruby-rack))) - (synopsis "Documentation generation tool for Ruby") - (description - "YARD is a documentation generation tool for the Ruby programming + ;; Use git reference because gem is >100 commits out of date and the tests + ;; do not pass with the released gem. + (let ((commit "d816482a0d4850506c3bcccc9434550c536c28c6")) + (package + (name "ruby-yard") + (version (string-append "0.9.5-1." (string-take commit 8))) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/lsegal/yard.git") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1j16c85x22if7y0fzi3c900p9wzkx2riq1y7vsj92a0zvwsxai4i")) + (patches (search-patches "ruby-yard-fix-skip-of-markdown-tests.patch")))) + (build-system ruby-build-system) + (arguments + `(#:test-target "spec" + #:phases + (modify-phases %standard-phases + (add-before 'check 'set-HOME-and-disable-failing-test + (lambda _ + ;; $HOME needs to be set to somewhere writeable for tests to run + (setenv "HOME" "/tmp") + #t))))) + (native-inputs + `(("ruby-rspec" ,ruby-rspec-2) + ("ruby-rack" ,ruby-rack))) + (synopsis "Documentation generation tool for Ruby") + (description + "YARD is a documentation generation tool for the Ruby programming language. It enables the user to generate consistent, usable documentation that can be exported to a number of formats very easily, and also supports extending for custom Ruby constructs such as custom class level definitions.") - (home-page "http://yardoc.org") - (license license:expat))) + (home-page "http://yardoc.org") + (license license:expat)))) (define-public ruby-clap (package @@ -3301,14 +3303,14 @@ neither too verbose nor too minimal.") (define-public ruby-sqlite3 (package (name "ruby-sqlite3") - (version "1.3.11") + (version "1.3.12") (source (origin (method url-fetch) (uri (rubygems-uri "sqlite3" version)) (sha256 (base32 - "19r06wglnm6479ffj9dl0fa4p5j2wi6dj7k6k3d0rbx7036cv3ny")))) + "0hld87rvwyy31xsxzhicv2lj3g3kmvmwfxj09kw13g6lacdjz4bx")))) (build-system ruby-build-system) (arguments `(#:phases @@ -3333,14 +3335,14 @@ engine.") (define-public ruby-shoulda-context (package (name "ruby-shoulda-context") - (version "1.2.1") + (version "1.2.2") (source (origin (method url-fetch) (uri (rubygems-uri "shoulda-context" version)) (sha256 (base32 - "06wv2ika5zrbxn0m3qxwk0zkbspxids3zmlq3xxays5qmvl1qb55")))) + "1l0ncsxycb4s8n47dml97kdnixw4mizljbkwqc3rh05r70csq9bc")))) (build-system ruby-build-system) (arguments `(#:phases @@ -3469,14 +3471,14 @@ support to both Ruby and JRuby. It uses @code{unf_ext} on CRuby and (define-public ruby-domain-name (package (name "ruby-domain-name") - (version "0.5.20160826") + (version "0.5.20161021") (source (origin (method url-fetch) (uri (rubygems-uri "domain_name" version)) (sha256 (base32 - "0rg7gvp45xmb5qz8ydp7ivw05hhplh6k7mbawrpvkysl2c77w5xx")))) + "1y5c96gzyh6z4nrnkisljqngfvljdba36dww657ka0x7khzvx7jl")))) (build-system ruby-build-system) (arguments `(#:phases @@ -3509,14 +3511,14 @@ Suffix List.") (define-public ruby-http-cookie (package (name "ruby-http-cookie") - (version "1.0.2") + (version "1.0.3") (source (origin (method url-fetch) (uri (rubygems-uri "http-cookie" version)) (sha256 (base32 - "0cz2fdkngs3jc5w32a6xcl511hy03a7zdiy988jk1sf3bf5v3hdw")))) + "004cgs4xg5n6byjs7qld0xhsjq3n6ydfh897myr2mibvh6fjc49g")))) (build-system ruby-build-system) (arguments `(#:phases @@ -4043,14 +4045,14 @@ generation.") (define-public ruby-sequel (package (name "ruby-sequel") - (version "4.39.0") + (version "4.40.0") (source (origin (method url-fetch) (uri (rubygems-uri "sequel" version)) (sha256 (base32 - "01zqd6mi9wvhbg76b91k35jppha0c944ar9f816gi400cf9817bg")))) + "0r39dv3yprai0cy7hslfxswjr4fg783xwxskmbih8ry24f18lbk0")))) (build-system ruby-build-system) (arguments '(#:tests? #f)) ; Avoid dependency loop with ruby-minitest-hooks. diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 9501f2235c..700a8957cc 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -2155,20 +2155,6 @@ encoder/decoder, round-off-error-free sum and cumsum, etc.") "1czvkaz1ji3jyj6qrvbswisqs9d05ljqc4vjkfdrf6hygix7azd0")))) (properties `((upstream-name . "rmarkdown"))) (build-system r-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - ;; See https://github.com/rstudio/rmarkdown/pull/800 - ;; The resource files are in the store and have mode 444. After - ;; copying the files R fails to remove them again because it doesn't - ;; have write access to them. - (add-after 'unpack 'copy-files-without-mode - (lambda _ - (substitute* "R/render.R" - (("file.copy\\(from = from," prefix) - (string-append prefix - " copy.mode = FALSE, "))) - #t))))) (propagated-inputs `(("r-catools" ,r-catools) ("r-evaluate" ,r-evaluate) diff --git a/gnu/packages/syndication.scm b/gnu/packages/syndication.scm new file mode 100644 index 0000000000..f4668de0c0 --- /dev/null +++ b/gnu/packages/syndication.scm @@ -0,0 +1,75 @@ +;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gnu packages syndication) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix download) + #:use-module (guix packages) + #:use-module (guix build-system gnu) + #:use-module (gnu packages curl) + #:use-module (gnu packages databases) + #:use-module (gnu packages gettext) + #:use-module (gnu packages ncurses) + #:use-module (gnu packages perl) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages ruby) + #:use-module (gnu packages xml) + #:use-module (gnu packages web)) + +(define-public newsbeuter + (package + (name "newsbeuter") + (version "2.9") + (source + (origin + (method url-fetch) + (uri (string-append "https://newsbeuter.org/downloads/newsbeuter-" + version ".tar.gz")) + (sha256 + (base32 + "1j1x0hgwxz11dckk81ncalgylj5y5fgw5bcmp9qb5hq9kc0vza3l")))) + (build-system gnu-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (replace 'configure + (lambda _ + (substitute* "config.sh" + ;; try to remove this at the next release + (("ncursesw5") "ncursesw6")) + #t))) + #:make-flags (list (string-append "prefix=" (assoc-ref %outputs "out"))) + #:test-target "test")) + (native-inputs + `(("gettext" ,gnu-gettext) + ("perl" ,perl) + ("pkg-config" ,pkg-config) + ("ruby" ,ruby))) ; for tests + (inputs + `(("curl" ,curl) + ("json-c" ,json-c) + ("ncurses" ,ncurses) + ("stfl" ,stfl) + ("sqlite" ,sqlite) + ("libxml2" ,libxml2))) + (home-page "https://newsbeuter.org/") + (synopsis "Text mode rss feed reader with podcast support") + (description "Newsbeuter is an innovative RSS feed reader for the text +console. It supports OPML import/exports, HTML rendering, podcast (podbeuter), +offline reading, searching and storing articles to your filesystem, and many +more features. Its user interface is coherent, easy to use, and might look +common to users of @command{mutt} and @command{slrn}.") + (license (list license:gpl2+ ; filter/* + license:x11)))) diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index c8114c2077..9186e4693a 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -5,6 +5,7 @@ ;;; Copyright © 2016 Roel Janssen <roel@gnu.org> ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Federico Beffa <beffa@fbengineering.ch> +;;; Copyright © 2016 Thomas Danckaert <post@thomasdanckaert.be> ;;; ;;; This file is part of GNU Guix. ;;; @@ -439,7 +440,9 @@ PDF documents.") "texmaker.pro")))))))) (inputs `(("poppler-qt5" ,poppler-qt5) - ("qt" ,qt) + ("qtbase" ,qtbase) + ("qtscript" ,qtscript) + ("qtwebkit" ,qtwebkit) ("zlib" ,zlib))) (native-inputs `(("pkg-config" ,pkg-config))) diff --git a/gnu/packages/uml.scm b/gnu/packages/uml.scm new file mode 100644 index 0000000000..8f6e1d8a5e --- /dev/null +++ b/gnu/packages/uml.scm @@ -0,0 +1,91 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2016 Theodoros Foradis <theodoros.for@openmailbox.org> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gnu packages uml) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix utils) + #:use-module (guix build-system ant) + #:use-module (gnu packages graphviz) + #:use-module (gnu packages java)) + +(define-public plantuml + (package + (name "plantuml") + (version "8048") + (source (origin + (method url-fetch) + (uri (string-append + "mirror://sourceforge/plantuml/plantuml-" + version ".tar.gz")) + (sha256 + (base32 + "1vipxd6p7isb1k1qqh4hrpfcj27hx1nll2yp0rfwpvps1w2d936i")))) + (build-system ant-build-system) + (arguments + `(#:tests? #f ; no tests + #:build-target "dist" + #:phases + (modify-phases %standard-phases + (add-before 'build 'delete-extra-from-classpath + (lambda _ + (substitute* "build.xml" + (("1.6") "1.7") + (("<attribute name=\"Class-Path\"") "<!--") + (("j2v8_macosx_x86_64-3.1.7.jar\" />") "-->")) + #t)) + (add-after 'delete-extra-from-classpath 'patch-usr-bin-dot + (lambda* (#:key inputs #:allow-other-keys) + (let ((dot (string-append (assoc-ref inputs "graphviz") + "/bin/dot"))) + (substitute* + "src/net/sourceforge/plantuml/cucadiagram/dot/GraphvizLinux.java" + (("/usr/bin/dot") dot))) + #t)) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (install-file "plantuml.jar" (string-append + (assoc-ref outputs "out") + "/share/java")) + #t)) + (add-after 'install 'make-wrapper + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (wrapper (string-append out "/bin/plantuml"))) + (mkdir-p (string-append out "/bin")) + (with-output-to-file wrapper + (lambda _ + (display + (string-append + "#!/bin/sh\n\n" + (assoc-ref inputs "jre") "/bin/java -jar " + out "/share/java/plantuml.jar \"$@\"\n")))) + (chmod wrapper #o555)) + #t))))) + (inputs + `(("graphviz" ,graphviz) + ("jre" ,icedtea))) + (home-page "http://plantuml.com/") + (synopsis "Draw UML diagrams from simple textual description") + (description + "Plantuml is a tool to generate sequence, usecase, class, activity, +component, state, deployment and object UML diagrams, using a simple and +human readable text description. Contains @code{salt}, a tool that can design +simple graphical interfaces.") + (license license:gpl3+))) diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index 1f7d60148c..e06a611164 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -313,7 +313,7 @@ everything from small to very large projects with speed and efficiency.") (define-public libgit2 (package (name "libgit2") - (version "0.24.2") + (version "0.24.3") (source (origin (method url-fetch) (uri (string-append "https://github.com/libgit2/libgit2/" @@ -321,7 +321,7 @@ everything from small to very large projects with speed and efficiency.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1rkmfjiv5h80ycra42w9idbcrgj9rz581k5c06badys3650agw00")))) + "0m37b2jq8g70bmxlgrhbj4p23c893vxwmlmw1v5ywfxz3njyc90a")))) (build-system cmake-build-system) (arguments `(#:phases diff --git a/gnu/packages/vim.scm b/gnu/packages/vim.scm index 172d6105bb..b283e975d5 100644 --- a/gnu/packages/vim.scm +++ b/gnu/packages/vim.scm @@ -31,6 +31,7 @@ #:use-module (gnu packages gawk) #:use-module (gnu packages gettext) #:use-module (gnu packages glib) + #:use-module (gnu packages groff) #:use-module (gnu packages gtk) #:use-module (gnu packages image) #:use-module (gnu packages linux) @@ -48,7 +49,7 @@ (define-public vim (package (name "vim") - (version "8.0.0069") + (version "8.0.0073") (source (origin (method url-fetch) (uri (string-append "https://github.com/vim/vim/archive/v" @@ -56,7 +57,7 @@ (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1xxg0m296jqcg7wxxw1zcr0i10j1a85aw6ainpql2h4jrqbwqvy9")))) + "1snbzgj89scjs0v3m86p53wvpal9jgs1s6i3hv7jyknpnjvqv5q5")))) (build-system gnu-build-system) (arguments `(#:test-target "test" @@ -147,3 +148,62 @@ configuration files.") ("ruby" ,ruby) ("tcl" ,tcl) ,@(package-inputs vim))))) + +(define-public vifm + (package + (name "vifm") + (version "0.8.2") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/vifm/vifm/vifm-" + version ".tar.bz2")) + (sha256 + (base32 + "07r15kq7kjl3a41sd11ncpsii866xxps4f90zh3lv8jqcrv6silb")))) + (build-system gnu-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-after 'patch-source-shebangs 'patch-test-shebangs + (lambda _ + (substitute* (find-files "tests" "\\.c$") + (("/bin/sh") (which "sh"))) + #t))))) + (native-inputs + `(("groff" ,groff) ; for the documentation + ("perl" ,perl))) + (inputs + `(("libx11" ,libx11) + ("ncurses" ,ncurses))) + (home-page "http://vifm.info/") + (synopsis "Flexible vi-like file manager using ncurses") + (description "Vifm is a file manager providing a @command{vi}-like usage +experience. It has similar keybindings and modes (e.g. normal, command line, +visual). The interface uses ncurses, thus vifm can be used in text-only +environments. It supports a wide range of features, some of which are known +from the @command{vi}-editor: +@enumerate +@item utf8 support +@item user mappings (almost like in @code{vi}) +@item ranges in command +@item line commands +@item user defined commands (with support for ranges) +@item registers +@item operation undoing/redoing +@item fuse file systems support +@item trash +@item multiple files renaming +@item support of filename modifiers +@item colorschemes support +@item file name color according to file type +@item path specific colorscheme customization +@item bookmarks +@item operation backgrounding +@item customizable file viewers +@item handy @code{less}-like preview mode +@item filtering out and searching for files using regular expressions +@item one or two panes view +@end enumerate +With the package comes a plugin to use vifm as a vim file selector.") + (license license:gpl2+))) diff --git a/gnu/packages/wordnet.scm b/gnu/packages/wordnet.scm index 357c19351b..42076645c4 100644 --- a/gnu/packages/wordnet.scm +++ b/gnu/packages/wordnet.scm @@ -23,6 +23,7 @@ #:use-module (guix licenses) #:use-module (guix download) #:use-module (gnu packages) + #:use-module (gnu packages gcc) #:use-module (gnu packages tcl)) (define-public wordnet @@ -51,22 +52,7 @@ ;; Provide the `result' field in `Tcl_Interp'. ;; See <https://bugs.gentoo.org/show_bug.cgi?id=452034>. - ;; - ;; The 'DEFAULTPATH' string literal, which - ;; contains the output path, only appears as - ;; the operand of one 'strcpy' call. As a - ;; consequence, GCC does not store the string - ;; literal as is but instead introduces "gaps" - ;; for alignment reasons presumably---like - ;; "/gnu/sto?????re/8jp8b??????ky105…". This - ;; makes this string invisible to the GC, which - ;; in turns causes problems when running a - ;; grafted WordNet because that grafted WordNet - ;; keeps referring to the ungrafted variant, - ;; which is not protected from GC. Thus, - ;; disable use of '__builtin_strcpy' to avoid - ;; that. - "CFLAGS=-DUSE_INTERP_RESULT -O2 -fno-builtin-strcpy") + "CFLAGS=-DUSE_INTERP_RESULT -O2") #:phases (modify-phases %standard-phases (add-after 'install 'post-install @@ -93,6 +79,12 @@ #t)))))) (outputs '("out" "tk")) ; for the Tcl/Tk GUI + + ;; Build with a patched GCC to work around <http://bugs.gnu.org/24703>. + ;; (Specifically the 'DEFAULTPATH' string literal is what we want to + ;; prevent from being chunked so that grafting can "see" it and patch it.) + (native-inputs `(("gcc@6" ,gcc-6))) + (inputs `(("tk" ,tk) ("tcl" ,tcl))) (home-page "http://wordnet.princeton.edu/") diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm index 94a017d1d5..505d585e66 100644 --- a/gnu/packages/xml.scm +++ b/gnu/packages/xml.scm @@ -134,6 +134,7 @@ project (but it is usable outside of the Gnome platform).") (define-public libxslt (package (name "libxslt") + (replacement libxslt/fixed) (version "1.1.29") (source (origin (method url-fetch) @@ -155,6 +156,14 @@ project (but it is usable outside of the Gnome platform).") based on libxml for XML parsing, tree manipulation and XPath support.") (license license:x11))) +(define libxslt/fixed + (package + (inherit libxslt) + (name "libxslt") + (source (origin + (inherit (package-source libxslt)) + (patches (search-patches "libxslt-CVE-2016-4738.patch")))))) + (define-public perl-graph-readwrite (package (name "perl-graph-readwrite") diff --git a/gnu/services/kerberos.scm b/gnu/services/kerberos.scm new file mode 100644 index 0000000000..144c71bba0 --- /dev/null +++ b/gnu/services/kerberos.scm @@ -0,0 +1,67 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2016 John Darrington <jmd@gnu.org> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gnu services kerberos) + #:use-module (gnu packages admin) + #:use-module (gnu services) + #:use-module (gnu system pam) + #:use-module (guix gexp) + #:use-module (guix records) + #:export (pam-krb5-configuration + pam-krb5-configuration? + pam-krb5-service-type)) + +(define-record-type* <pam-krb5-configuration> + pam-krb5-configuration make-pam-krb5-configuration + pam-krb5-configuration? + (pam-krb5 pam-krb5-configuration-pam-krb5 + (default pam-krb5)) + (minimum-uid pam-krb5-configuration-minimum-uid + (default 1000))) + +(define (pam-krb5-pam-service config) + "Return a PAM service for Kerberos authentication." + (lambda (pam) + (define pam-krb5-module + #~(string-append #$(pam-krb5-configuration-pam-krb5 config) "/lib/security/pam_krb5.so")) + + (let ((pam-krb5-sufficient + (pam-entry + (control "sufficient") + (module pam-krb5-module) + (arguments (list + (format #f "minimum_uid=~a" + (pam-krb5-configuration-minimum-uid config))))))) + (pam-service + (inherit pam) + (auth (cons* pam-krb5-sufficient + (pam-service-auth pam))) + (session (cons* pam-krb5-sufficient + (pam-service-session pam))) + (account (cons* pam-krb5-sufficient + (pam-service-account pam))))))) + +(define (pam-krb5-pam-services config) + (list (pam-krb5-pam-service config))) + +(define pam-krb5-service-type + (service-type (name 'pam-krb5) + (extensions + (list + (service-extension pam-root-service-type + pam-krb5-pam-services))))) diff --git a/gnu/system/file-systems.scm b/gnu/system/file-systems.scm index b51d57f079..4cc1221eb8 100644 --- a/gnu/system/file-systems.scm +++ b/gnu/system/file-systems.scm @@ -40,6 +40,7 @@ file-system-dependencies file-system->spec + spec->file-system specification->file-system-mapping uuid @@ -107,6 +108,16 @@ initrd code." (($ <file-system> device title mount-point type flags options _ _ check?) (list device title mount-point type flags options check?)))) +(define (spec->file-system sexp) + "Deserialize SEXP, a list, to the corresponding <file-system> object." + (match sexp + ((device title mount-point type flags options check?) + (file-system + (device device) (title title) + (mount-point mount-point) (type type) + (flags flags) (options options) + (check? check?))))) + (define (specification->file-system-mapping spec writable?) "Read the SPEC and return the corresponding <file-system-mapping>. SPEC is a string of the form \"SOURCE\" or \"SOURCE=TARGET\". The former specifies diff --git a/gnu/system/grub.scm b/gnu/system/grub.scm index 5c9d0f15a1..4657b06b5f 100644 --- a/gnu/system/grub.scm +++ b/gnu/system/grub.scm @@ -51,6 +51,7 @@ grub-configuration grub-configuration? grub-configuration-device + grub-configuration-grub menu-entry menu-entry? diff --git a/gnu/system/linux-container.scm b/gnu/system/linux-container.scm index d3c0036f47..24e61c3ead 100644 --- a/gnu/system/linux-container.scm +++ b/gnu/system/linux-container.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 David Thompson <davet@gnu.org> +;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -24,6 +25,7 @@ #:use-module (guix gexp) #:use-module (guix derivations) #:use-module (guix monads) + #:use-module (guix modules) #:use-module (gnu build linux-container) #:use-module (gnu services) #:use-module (gnu system) @@ -87,19 +89,15 @@ that will be shared with the host system." #:container? #t))) (define script - (with-imported-modules '((guix config) - (guix utils) - (guix combinators) - (guix build utils) - (guix build syscalls) - (guix build bournish) - (gnu build file-systems) - (gnu build linux-container)) + (with-imported-modules (source-module-closure + '((guix build utils) + (gnu build linux-container))) #~(begin (use-modules (gnu build linux-container) + (gnu system file-systems) ;spec->file-system (guix build utils)) - (call-with-container '#$specs + (call-with-container (map spec->file-system '#$specs) (lambda () (setenv "HOME" "/root") (setenv "TMPDIR" "/tmp") |